Commit 989cb2f2 authored by unknown's avatar unknown

Fix for a bug #2422, where CONVERT(expr, cast) was masked by

CONVERT(expr, expr, expr);


mysql-test/t/mysqldump.test:
  fix for my previous result fix of Jani's changes.
parent d0123ed5
...@@ -33,6 +33,9 @@ cast("2001-1-1" as DATE) cast("2001-1-1" as DATETIME) ...@@ -33,6 +33,9 @@ cast("2001-1-1" as DATE) cast("2001-1-1" as DATETIME)
select cast("1:2:3" as TIME); select cast("1:2:3" as TIME);
cast("1:2:3" as TIME) cast("1:2:3" as TIME)
01:02:03 01:02:03
select CONVERT("2004-01-22 21:45:33",DATE);
CONVERT("2004-01-22 21:45:33",DATE)
2004-01-22
set names binary; set names binary;
select cast(_latin1'test' as char character set latin2); select cast(_latin1'test' as char character set latin2);
cast(_latin1'test' as char character set latin2) cast(_latin1'test' as char character set latin2)
......
...@@ -13,6 +13,7 @@ select cast(5 as unsigned) -6.0; ...@@ -13,6 +13,7 @@ select cast(5 as unsigned) -6.0;
select cast("A" as binary) = "a", cast(BINARY "a" as CHAR) = "A"; select cast("A" as binary) = "a", cast(BINARY "a" as CHAR) = "A";
select cast("2001-1-1" as DATE), cast("2001-1-1" as DATETIME); select cast("2001-1-1" as DATE), cast("2001-1-1" as DATETIME);
select cast("1:2:3" as TIME); select cast("1:2:3" as TIME);
select CONVERT("2004-01-22 21:45:33",DATE);
# #
# Character set convertion # Character set convertion
......
...@@ -6,7 +6,7 @@ DROP TABLE IF EXISTS t1, `"t"1`; ...@@ -6,7 +6,7 @@ DROP TABLE IF EXISTS t1, `"t"1`;
CREATE TABLE t1(a int); CREATE TABLE t1(a int);
INSERT INTO t1 VALUES (1), (2); INSERT INTO t1 VALUES (1), (2);
--exec $MYSQL_DUMP --disable-quote --skip-all --skip-comments -X test t1 --exec $MYSQL_DUMP --skip-all --skip-comments -X test t1
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -16,7 +16,7 @@ DROP TABLE t1; ...@@ -16,7 +16,7 @@ DROP TABLE t1;
CREATE TABLE t1 (a decimal(240, 20)); CREATE TABLE t1 (a decimal(240, 20));
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"), INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
("0987654321098765432109876543210987654321"); ("0987654321098765432109876543210987654321");
--exec $MYSQL_DUMP --disable-quote --skip-comments test t1 --exec $MYSQL_DUMP --skip-comments test t1
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -28,12 +28,12 @@ INSERT INTO t1 VALUES (-9e999999); ...@@ -28,12 +28,12 @@ INSERT INTO t1 VALUES (-9e999999);
# The following replaces is here because some systems replaces the above # The following replaces is here because some systems replaces the above
# double with '-inf' and others with MAX_DOUBLE # double with '-inf' and others with MAX_DOUBLE
--replace_result (-1.79769313486232e+308) (RES) (NULL) (RES) --replace_result (-1.79769313486232e+308) (RES) (NULL) (RES)
--exec $MYSQL_DUMP --disable-quote --skip-comments test t1 --exec $MYSQL_DUMP --skip-comments test t1
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1(a int, b text, c varchar(3)); CREATE TABLE t1(a int, b text, c varchar(3));
INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES"); INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
--exec $MYSQL_DUMP --disable-quote --skip-all --skip-comments -X test t1 --exec $MYSQL_DUMP --skip-all --skip-comments -X test t1
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -42,7 +42,7 @@ DROP TABLE t1; ...@@ -42,7 +42,7 @@ DROP TABLE t1;
CREATE TABLE t1 (`a"b"` char(2)); CREATE TABLE t1 (`a"b"` char(2));
INSERT INTO t1 VALUES ("1\""), ("\"2"); INSERT INTO t1 VALUES ("1\""), ("\"2");
--exec $MYSQL_DUMP --disable-quote --skip-all --skip-comments -X test t1 --exec $MYSQL_DUMP --skip-all --skip-comments -X test t1
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -51,5 +51,5 @@ DROP TABLE t1; ...@@ -51,5 +51,5 @@ DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r; CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'); INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5');
--exec $MYSQL_DUMP --disable-quote --skip-comments test t1 --exec $MYSQL_DUMP --skip-comments test t1
DROP TABLE t1; DROP TABLE t1;
...@@ -664,7 +664,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); ...@@ -664,7 +664,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%type <ha_rkey_mode> handler_rkey_mode %type <ha_rkey_mode> handler_rkey_mode
%type <cast_type> cast_type cast_type_finalize %type <cast_type> cast_type
%type <udf_type> udf_func_type %type <udf_type> udf_func_type
...@@ -3003,11 +3003,7 @@ in_sum_expr: ...@@ -3003,11 +3003,7 @@ in_sum_expr:
$$= $3; $$= $3;
}; };
cast_type_init: cast_type:
{ Lex->charset= NULL; Lex->length= (char*)0; }
;
cast_type_finalize:
BINARY { $$=ITEM_CAST_BINARY; } BINARY { $$=ITEM_CAST_BINARY; }
| CHAR_SYM opt_len opt_binary { $$=ITEM_CAST_CHAR; } | CHAR_SYM opt_len opt_binary { $$=ITEM_CAST_CHAR; }
| NCHAR_SYM opt_len { $$=ITEM_CAST_CHAR; Lex->charset= national_charset_info; } | NCHAR_SYM opt_len { $$=ITEM_CAST_CHAR; Lex->charset= national_charset_info; }
...@@ -3020,10 +3016,6 @@ cast_type_finalize: ...@@ -3020,10 +3016,6 @@ cast_type_finalize:
| DATETIME { $$=ITEM_CAST_DATETIME; } | DATETIME { $$=ITEM_CAST_DATETIME; }
; ;
cast_type:
cast_type_init cast_type_finalize { $$= $2; }
;
expr_list: expr_list:
{ Select->expr_list.push_front(new List<Item>); } { Select->expr_list.push_front(new List<Item>); }
expr_list2 expr_list2
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment