mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fix for a bug #2422, where CONVERT(expr, cast) was masked by
CONVERT(expr, expr, expr);
This commit is contained in:
@ -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;
|
|||||||
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`;
|
|||||||
|
|
||||||
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;
|
|||||||
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);
|
|||||||
# 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;
|
|||||||
|
|
||||||
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;
|
|||||||
|
|
||||||
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);
|
|||||||
|
|
||||||
%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:
|
|||||||
$$= $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:
|
|||||||
| 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
|
||||||
|
Reference in New Issue
Block a user