mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
MDEV-5298 Illegal mix of collations on timestamp
Fixed.
This commit is contained in:
parent
1f4f425a20
commit
03f6778d61
11 changed files with 542 additions and 6 deletions
|
@ -1,6 +1,6 @@
|
||||||
#
|
--echo #
|
||||||
# Bug#32390 Character sets: casting utf32 to/from date doesn't work
|
--echo # Bug#32390 Character sets: casting utf32 to/from date doesn't work
|
||||||
#
|
--echo #
|
||||||
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
||||||
SET timestamp=1216359724;
|
SET timestamp=1216359724;
|
||||||
INSERT INTO t1 VALUES (current_date);
|
INSERT INTO t1 VALUES (current_date);
|
||||||
|
@ -9,3 +9,43 @@ INSERT INTO t1 VALUES (current_timestamp);
|
||||||
SELECT s1, hex(s1) FROM t1;
|
SELECT s1, hex(s1) FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET timestamp=0;
|
SET timestamp=0;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-5298 Illegal mix of collations on timestamp
|
||||||
|
--echo #
|
||||||
|
SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
|
||||||
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
SELECT CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
|
||||||
|
CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
SELECT HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
SELECT CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
SELECT HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (t TIMESTAMP NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('2001-01-01 00:00:00');
|
||||||
|
SELECT * FROM t1 WHERE t < '2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
SELECT * FROM t1 WHERE t = '2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
SELECT * FROM t1 WHERE t < CONCAT('2013-11-15 00:41:28',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
|
@ -7,4 +7,5 @@ a
|
||||||
2002-03-04
|
2002-03-04
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 2000-01-01
|
Note 1003 2000-01-01
|
||||||
|
Note 1003 2000-01-06
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
|
@ -560,6 +560,113 @@ BEBBBADFDF
|
||||||
select hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE));
|
select hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE));
|
||||||
hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE))
|
hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE))
|
||||||
DFDFBABBBE
|
DFDFBABBBE
|
||||||
|
#
|
||||||
|
# Bug#32390 Character sets: casting utf32 to/from date doesn't work
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
||||||
|
SET timestamp=1216359724;
|
||||||
|
INSERT INTO t1 VALUES (current_date);
|
||||||
|
INSERT INTO t1 VALUES (current_time);
|
||||||
|
INSERT INTO t1 VALUES (current_timestamp);
|
||||||
|
SELECT s1, hex(s1) FROM t1;
|
||||||
|
s1 hex(s1)
|
||||||
|
2008-07-18 323030382D30372D3138
|
||||||
|
09:42:04 30393A34323A3034
|
||||||
|
2008-07-18 09:42:04 323030382D30372D31382030393A34323A3034
|
||||||
|
DROP TABLE t1;
|
||||||
|
SET timestamp=0;
|
||||||
|
#
|
||||||
|
# MDEV-5298 Illegal mix of collations on timestamp
|
||||||
|
#
|
||||||
|
SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
latin2
|
||||||
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
4
|
||||||
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
binary
|
||||||
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
5
|
||||||
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
latin2
|
||||||
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
latin2
|
||||||
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
latin2
|
||||||
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
323030312D30312D30312030303A30303A3030
|
||||||
|
SELECT CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
latin2
|
||||||
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
323030312D30312D30312030303A30303A3030
|
||||||
|
CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(64) CHARACTER SET latin2 NOT NULL DEFAULT ''
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
latin2
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
323030312D30312D30312030303A30303A3030
|
||||||
|
SELECT CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
latin2
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
323030312D30312D30312030303A30303A3030
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (t TIMESTAMP NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('2001-01-01 00:00:00');
|
||||||
|
SELECT * FROM t1 WHERE t < '2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = '2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < CONCAT('2013-11-15 00:41:28',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
DROP TABLE t1;
|
||||||
set collation_connection=latin2_bin;
|
set collation_connection=latin2_bin;
|
||||||
select @@collation_connection;
|
select @@collation_connection;
|
||||||
@@collation_connection
|
@@collation_connection
|
||||||
|
|
|
@ -4869,6 +4869,9 @@ DROP TABLE t1;
|
||||||
# Test how character set works with date/time
|
# Test how character set works with date/time
|
||||||
#
|
#
|
||||||
SET collation_connection=ucs2_general_ci;
|
SET collation_connection=ucs2_general_ci;
|
||||||
|
#
|
||||||
|
# Bug#32390 Character sets: casting utf32 to/from date doesn't work
|
||||||
|
#
|
||||||
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
||||||
SET timestamp=1216359724;
|
SET timestamp=1216359724;
|
||||||
INSERT INTO t1 VALUES (current_date);
|
INSERT INTO t1 VALUES (current_date);
|
||||||
|
@ -4881,6 +4884,98 @@ s1 hex(s1)
|
||||||
2008-07-18 08:42:04 0032003000300038002D00300037002D00310038002000300038003A00340032003A00300034
|
2008-07-18 08:42:04 0032003000300038002D00300037002D00310038002000300038003A00340032003A00300034
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET timestamp=0;
|
SET timestamp=0;
|
||||||
|
#
|
||||||
|
# MDEV-5298 Illegal mix of collations on timestamp
|
||||||
|
#
|
||||||
|
SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
ucs2
|
||||||
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
4
|
||||||
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
binary
|
||||||
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
5
|
||||||
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
ucs2
|
||||||
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
ucs2
|
||||||
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
ucs2
|
||||||
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
SELECT CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
ucs2
|
||||||
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(64) CHARACTER SET ucs2 NOT NULL DEFAULT ''
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
ucs2
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
SELECT CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
ucs2
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (t TIMESTAMP NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('2001-01-01 00:00:00');
|
||||||
|
SELECT * FROM t1 WHERE t < '2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = '2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < CONCAT('2013-11-15 00:41:28',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
DROP TABLE t1;
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
#
|
#
|
||||||
# WL#4013 Unicode german2 collation
|
# WL#4013 Unicode german2 collation
|
||||||
|
|
|
@ -1198,6 +1198,9 @@ NULL
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set names latin1;
|
set names latin1;
|
||||||
SET collation_connection=utf16_general_ci;
|
SET collation_connection=utf16_general_ci;
|
||||||
|
#
|
||||||
|
# Bug#32390 Character sets: casting utf32 to/from date doesn't work
|
||||||
|
#
|
||||||
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
||||||
SET timestamp=1216359724;
|
SET timestamp=1216359724;
|
||||||
INSERT INTO t1 VALUES (current_date);
|
INSERT INTO t1 VALUES (current_date);
|
||||||
|
@ -1210,6 +1213,98 @@ s1 hex(s1)
|
||||||
2008-07-18 08:42:04 0032003000300038002D00300037002D00310038002000300038003A00340032003A00300034
|
2008-07-18 08:42:04 0032003000300038002D00300037002D00310038002000300038003A00340032003A00300034
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET timestamp=0;
|
SET timestamp=0;
|
||||||
|
#
|
||||||
|
# MDEV-5298 Illegal mix of collations on timestamp
|
||||||
|
#
|
||||||
|
SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
utf16
|
||||||
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
4
|
||||||
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
binary
|
||||||
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
5
|
||||||
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
utf16
|
||||||
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
utf16
|
||||||
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16
|
||||||
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
SELECT CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16
|
||||||
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(64) CHARACTER SET utf16 NOT NULL DEFAULT ''
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
SELECT CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (t TIMESTAMP NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('2001-01-01 00:00:00');
|
||||||
|
SELECT * FROM t1 WHERE t < '2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = '2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < CONCAT('2013-11-15 00:41:28',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
DROP TABLE t1;
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
SET collation_connection=utf16_general_ci;
|
SET collation_connection=utf16_general_ci;
|
||||||
CREATE TABLE t1 AS SELECT repeat('a',2) as s1 LIMIT 0;
|
CREATE TABLE t1 AS SELECT repeat('a',2) as s1 LIMIT 0;
|
||||||
|
|
|
@ -1469,6 +1469,9 @@ drop table t1;
|
||||||
#
|
#
|
||||||
# Test how CHARACTER SET works with date/time
|
# Test how CHARACTER SET works with date/time
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
# Bug#32390 Character sets: casting utf32 to/from date doesn't work
|
||||||
|
#
|
||||||
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
||||||
SET timestamp=1216359724;
|
SET timestamp=1216359724;
|
||||||
INSERT INTO t1 VALUES (current_date);
|
INSERT INTO t1 VALUES (current_date);
|
||||||
|
@ -1482,6 +1485,98 @@ s1 hex(s1)
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET timestamp=0;
|
SET timestamp=0;
|
||||||
#
|
#
|
||||||
|
# MDEV-5298 Illegal mix of collations on timestamp
|
||||||
|
#
|
||||||
|
SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
utf16le
|
||||||
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
4
|
||||||
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
binary
|
||||||
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
5
|
||||||
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
utf16le
|
||||||
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
utf16le
|
||||||
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16le
|
||||||
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
||||||
|
SELECT CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16le
|
||||||
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
||||||
|
CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(64) CHARACTER SET utf16le NOT NULL DEFAULT ''
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16le
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
||||||
|
SELECT CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf16le
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (t TIMESTAMP NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('2001-01-01 00:00:00');
|
||||||
|
SELECT * FROM t1 WHERE t < '2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = '2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < CONCAT('2013-11-15 00:41:28',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# Bug#33073 Character sets: ordering fails with utf32
|
# Bug#33073 Character sets: ordering fails with utf32
|
||||||
#
|
#
|
||||||
SET NAMES utf8, collation_connection=utf16le_general_ci;
|
SET NAMES utf8, collation_connection=utf16le_general_ci;
|
||||||
|
|
|
@ -1146,6 +1146,9 @@ Table Op Msg_type Msg_text
|
||||||
test.t1 check status OK
|
test.t1 check status OK
|
||||||
drop table t1;
|
drop table t1;
|
||||||
SET collation_connection=utf32_general_ci;
|
SET collation_connection=utf32_general_ci;
|
||||||
|
#
|
||||||
|
# Bug#32390 Character sets: casting utf32 to/from date doesn't work
|
||||||
|
#
|
||||||
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0;
|
||||||
SET timestamp=1216359724;
|
SET timestamp=1216359724;
|
||||||
INSERT INTO t1 VALUES (current_date);
|
INSERT INTO t1 VALUES (current_date);
|
||||||
|
@ -1158,6 +1161,98 @@ s1 hex(s1)
|
||||||
2008-07-18 08:42:04 000000320000003000000030000000380000002D00000030000000370000002D00000031000000380000002000000030000000380000003A00000034000000320000003A0000003000000034
|
2008-07-18 08:42:04 000000320000003000000030000000380000002D00000030000000370000002D00000031000000380000002000000030000000380000003A00000034000000320000003A0000003000000034
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET timestamp=0;
|
SET timestamp=0;
|
||||||
|
#
|
||||||
|
# MDEV-5298 Illegal mix of collations on timestamp
|
||||||
|
#
|
||||||
|
SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
utf32
|
||||||
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
4
|
||||||
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
binary
|
||||||
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
|
5
|
||||||
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
utf32
|
||||||
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
utf32
|
||||||
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf32
|
||||||
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
||||||
|
SELECT CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf32
|
||||||
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
4
|
||||||
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
||||||
|
CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` varchar(64) CHARACTER SET utf32 NOT NULL DEFAULT ''
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf32
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
||||||
|
SELECT CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
utf32
|
||||||
|
SELECT COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
2
|
||||||
|
SELECT HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1;
|
||||||
|
HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
|
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (t TIMESTAMP NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('2001-01-01 00:00:00');
|
||||||
|
SELECT * FROM t1 WHERE t < '2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = '2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < CONCAT('2013-11-15 00:41:28',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY;
|
||||||
|
t
|
||||||
|
2001-01-01 00:00:00
|
||||||
|
DROP TABLE t1;
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
set collation_connection=utf32_general_ci;
|
set collation_connection=utf32_general_ci;
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
|
|
|
@ -65,6 +65,7 @@ drop table t1;
|
||||||
set names latin2;
|
set names latin2;
|
||||||
--source include/weight_string.inc
|
--source include/weight_string.inc
|
||||||
--source include/weight_string_l1.inc
|
--source include/weight_string_l1.inc
|
||||||
|
--source include/ctype_datetime.inc
|
||||||
|
|
||||||
set collation_connection=latin2_bin;
|
set collation_connection=latin2_bin;
|
||||||
--source include/weight_string.inc
|
--source include/weight_string.inc
|
||||||
|
|
|
@ -549,8 +549,8 @@ void Item_bool_func2::fix_length_and_dec()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DTCollation coll;
|
DTCollation coll;
|
||||||
if (args[0]->result_type() == STRING_RESULT &&
|
if (args[0]->cmp_type() == STRING_RESULT &&
|
||||||
args[1]->result_type() == STRING_RESULT &&
|
args[1]->cmp_type() == STRING_RESULT &&
|
||||||
agg_arg_charsets_for_comparison(coll, args, 2))
|
agg_arg_charsets_for_comparison(coll, args, 2))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -1467,7 +1467,9 @@ void Item_temporal_func::fix_length_and_dec()
|
||||||
(MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE);
|
(MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE);
|
||||||
collation.set(field_type() == MYSQL_TYPE_STRING ?
|
collation.set(field_type() == MYSQL_TYPE_STRING ?
|
||||||
default_charset() : &my_charset_numeric,
|
default_charset() : &my_charset_numeric,
|
||||||
DERIVATION_NUMERIC, MY_REPERTOIRE_ASCII);
|
field_type() == MYSQL_TYPE_STRING ?
|
||||||
|
DERIVATION_COERCIBLE : DERIVATION_NUMERIC,
|
||||||
|
MY_REPERTOIRE_ASCII);
|
||||||
fix_char_length(char_length);
|
fix_char_length(char_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -524,6 +524,11 @@ public:
|
||||||
Item_temporal_hybrid_func(Item *a,Item *b)
|
Item_temporal_hybrid_func(Item *a,Item *b)
|
||||||
:Item_temporal_func(a,b) {}
|
:Item_temporal_func(a,b) {}
|
||||||
enum_field_types field_type() const { return cached_field_type; }
|
enum_field_types field_type() const { return cached_field_type; }
|
||||||
|
Item_result cmp_type() const
|
||||||
|
{
|
||||||
|
return cached_field_type == MYSQL_TYPE_STRING ?
|
||||||
|
STRING_RESULT : TIME_RESULT;
|
||||||
|
}
|
||||||
const CHARSET_INFO *charset_for_protocol() const
|
const CHARSET_INFO *charset_for_protocol() const
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue