Current Path : /home/usr.opt/mysql57/mysql-test/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/t/temporal_literal.test |
#Get deafult engine value --let $DEFAULT_ENGINE = `select @@global.default_storage_engine` --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings SET NAMES latin1; SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; --echo # --echo # Testing DATE literals --echo # --error ER_WRONG_VALUE SELECT DATE'xxxx'; --error ER_WRONG_VALUE SELECT DATE'01'; --error ER_WRONG_VALUE SELECT DATE'01-01'; --error ER_WRONG_VALUE SELECT DATE'2001'; --error ER_WRONG_VALUE SELECT DATE'2001-01'; SELECT DATE'2001-00-00'; SELECT DATE'2001-01-00'; SELECT DATE'0000-00-00'; --error ER_WRONG_VALUE SELECT DATE'2001-01-01 00:00:00'; SELECT DATE'01:01:01'; SELECT DATE'01-01-01'; SELECT DATE'2010-01-01'; SELECT DATE '2010-01-01'; CREATE TABLE t1 AS SELECT DATE'2010-01-01'; #Replace default engine value with static engine string --replace_result $DEFAULT_ENGINE ENGINE SHOW CREATE TABLE t1; DROP TABLE t1; CREATE TABLE t1 AS SELECT {d'2001-01-01'}, {d'2001-01-01 10:10:10'}; #Replace default engine value with static engine string --replace_result $DEFAULT_ENGINE ENGINE SHOW CREATE TABLE t1; DROP TABLE t1; EXPLAIN EXTENDED SELECT {d'2010-01-01'}; EXPLAIN EXTENDED SELECT DATE'2010-01-01'; --echo # --echo # Testing DATE literals in non-default sql_mode --echo # SET sql_mode='NO_ZERO_IN_DATE'; --error ER_WRONG_VALUE SELECT DATE'2001-00-00'; --error ER_WRONG_VALUE SELECT DATE'2001-01-00'; SET sql_mode = ''; SELECT DATE'0000-00-00'; SET sql_mode=default; --echo # --echo # Testing TIME literals --echo # --error ER_WRONG_VALUE SELECT TIME'xxxx'; --error ER_WRONG_VALUE SELECT TIME'900:00:00'; --error ER_WRONG_VALUE SELECT TIME'-900:00:00'; SELECT TIME'1 24:00:00'; SELECT TIME'30 24:00:00'; --error ER_WRONG_VALUE SELECT TIME'0000-00-00 00:00:00'; --error ER_WRONG_VALUE SELECT TIME'40 24:00:00'; SELECT TIME'10'; SELECT TIME'10:10'; SELECT TIME'10:11.12'; SELECT TIME'10:10:10'; SELECT TIME'10:10:10.'; SELECT TIME'10:10:10.1'; SELECT TIME'10:10:10.12'; SELECT TIME'10:10:10.123'; SELECT TIME'10:10:10.1234'; SELECT TIME'10:10:10.12345'; SELECT TIME'10:10:10.123456'; SELECT TIME'-10:00:00'; SELECT TIME '10:11:12'; CREATE TABLE t1 AS SELECT TIME'10:10:10', TIME'10:10:10.', TIME'10:10:10.1', TIME'10:10:10.12', TIME'10:10:10.123', TIME'10:10:10.1234', TIME'10:10:10.12345', TIME'10:10:10.123456'; #Replace default engine value with static engine string --replace_result $DEFAULT_ENGINE ENGINE SHOW CREATE TABLE t1; DROP TABLE t1; CREATE TABLE t1 AS SELECT {t'10:10:10'}, {t'10:10:10.'}, {t'10:10:10.123456'}, {t'2001-01-01'}; #Replace default engine value with static engine string --replace_result $DEFAULT_ENGINE ENGINE SHOW CREATE TABLE t1; DROP TABLE t1; EXPLAIN EXTENDED SELECT {t'10:01:01'}; EXPLAIN EXTENDED SELECT TIME'10:01:01'; --echo # --echo # Testing TIMESTAMP literals --echo # --error ER_WRONG_VALUE SELECT TIMESTAMP'xxxx'; --error ER_WRONG_VALUE SELECT TIMESTAMP'2010'; --error ER_WRONG_VALUE SELECT TIMESTAMP'2010-01'; --error ER_WRONG_VALUE SELECT TIMESTAMP'2010-01-01'; SELECT TIMESTAMP'2010-01-01 00'; SELECT TIMESTAMP'2010-01-01 00:01'; SELECT TIMESTAMP'2010-01-01 10:10:10'; SELECT TIMESTAMP'2010-01-01 10:10:10.'; SELECT TIMESTAMP'2010-01-01 10:10:10.1'; SELECT TIMESTAMP'2010-01-01 10:10:10.12'; SELECT TIMESTAMP'2010-01-01 10:10:10.123'; SELECT TIMESTAMP'2010-01-01 10:10:10.1234'; SELECT TIMESTAMP'2010-01-01 10:10:10.12345'; SELECT TIMESTAMP'2010-01-01 10:10:10.123456'; SELECT TIMESTAMP '2010-01-01 10:20:30'; CREATE TABLE t1 AS SELECT TIMESTAMP'2010-01-01 10:10:10', TIMESTAMP'2010-01-01 10:10:10.', TIMESTAMP'2010-01-01 10:10:10.1', TIMESTAMP'2010-01-01 10:10:10.12', TIMESTAMP'2010-01-01 10:10:10.123', TIMESTAMP'2010-01-01 10:10:10.1234', TIMESTAMP'2010-01-01 10:10:10.12345', TIMESTAMP'2010-01-01 10:10:10.123456'; #Replace default engine value with static engine string --replace_result $DEFAULT_ENGINE ENGINE SHOW CREATE TABLE t1; DROP TABLE t1; CREATE TABLE t1 AS SELECT {ts'2001-01-01 10:10:10'}, {ts'2001-01-01 10:10:10.'}, {ts'2001-01-01 10:10:10.123456'}, {ts'2001-01-01'}; #Replace default engine value with static engine string --replace_result $DEFAULT_ENGINE ENGINE SHOW CREATE TABLE t1; DROP TABLE t1; EXPLAIN EXTENDED SELECT {ts'2010-01-01 10:10:10'}; EXPLAIN EXTENDED SELECT TIMESTAMP'2010-01-01 10:10:10'; --echo # --echo # Testing nanosecond rounding for TIMESTAMP literals with bad dates --echo # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; SELECT TIMESTAMP'2001-00-00 00:00:00.999999'; SELECT TIMESTAMP'2001-00-01 00:00:00.999999'; SELECT TIMESTAMP'2001-01-00 00:00:00.999999'; --error ER_WRONG_VALUE SELECT TIMESTAMP'2001-00-00 00:00:00.9999999'; --error ER_WRONG_VALUE SELECT TIMESTAMP'2001-00-01 00:00:00.9999999'; --error ER_WRONG_VALUE SELECT TIMESTAMP'2001-01-00 00:00:00.9999999'; --echo # --echo # String literal with bad dates and nanoseconds to DATETIME(N) --echo # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-00-00 00:00:00.9999999'); INSERT INTO t1 VALUES ('2001-00-01 00:00:00.9999999'); INSERT INTO t1 VALUES ('2001-01-00 00:00:00.9999999'); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1 (a DATETIME(5)); INSERT INTO t1 VALUES ('2001-00-00 00:00:00.9999999'); INSERT INTO t1 VALUES ('2001-00-01 00:00:00.9999999'); INSERT INTO t1 VALUES ('2001-01-00 00:00:00.9999999'); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1 (a DATETIME); INSERT INTO t1 VALUES ('2001-00-00 00:00:00.9999999'); INSERT INTO t1 VALUES ('2001-00-01 00:00:00.9999999'); INSERT INTO t1 VALUES ('2001-01-00 00:00:00.9999999'); SELECT * FROM t1; DROP TABLE t1; --echo # --echo # Testing Item_date_literal::eq --echo # CREATE TABLE t1 (a DATE); INSERT INTO t1 VALUES ('2001-01-01'),('2003-01-01'); SELECT * FROM t1 WHERE a BETWEEN DATE'2001-01-01' AND DATE'2002-01-01'; SELECT DATE'2001-01-01' FROM t1 GROUP BY DATE'2001-01-01'; DROP TABLE t1; SET sql_mode = default; --echo # --echo # BUG #16812821: INCONSISTANT RESULTS WHEN ODBC DATE FORMAT IS USED --echo # CREATE TABLE t1(c1 INT, c2 DATE, c3 TIME, c4 TIMESTAMP); CREATE TABLE t2(c11 INT, C12 INT); INSERT INTO t1 VALUES (1, '2014-01-02', '01:01:01', '2014-01-02 01:01:01'), (2, '2014-01-04', '01:01:01', '2014-01-02 01:01:01'); INSERT INTO t2 VALUES (3, 4), (5, 6); SELECT * FROM t1 LEFT JOIN t2 ON c1 = c11 WHERE c2 BETWEEN {d'2014-01-01'} AND {d'2014-01-05'}; SELECT * FROM t1 LEFT JOIN t2 ON c1 = c11 WHERE c3 BETWEEN {t'01:01:01'} AND {t'01:01:05'}; SELECT * FROM t1 LEFT JOIN t2 ON c1 = c11 WHERE c4 BETWEEN {ts'2014-01-01 01:01:01'} AND {ts'2014-01-05 01:01:01'}; SELECT * FROM t1 LEFT JOIN t2 ON c1 = c11 WHERE c2 BETWEEN DATE'2014-01-01' AND DATE'2014-01-05'; SELECT * FROM t1 LEFT JOIN t2 ON c1 = c11 WHERE c3 BETWEEN TIME'01:01:01' AND TIME'01:01:05'; SELECT * FROM t1 LEFT JOIN t2 ON c1 = c11 WHERE c4 BETWEEN TIMESTAMP'2014-01-01 01:01:01' AND TIMESTAMP'2014-01-05 01:01:01'; DROP TABLE t1, t2;