--source include/have_partition.inc let type=datetime; --source include/type_hrtime.inc # # partitioning # eval CREATE TABLE t1 ( taken $type(5) NOT NULL DEFAULT '0000-00-00 00:00:00', id int(11) NOT NULL DEFAULT '0', PRIMARY KEY (id,taken), KEY taken (taken) ) PARTITION BY RANGE (to_days(taken)) ( PARTITION p01 VALUES LESS THAN (732920), PARTITION p02 VALUES LESS THAN (732950), PARTITION p03 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES ('2006-09-27 21:50:01.123456',0), ('2006-09-27 21:50:01.123456',1), ('2006-09-27 21:50:01.123456',2), ('2006-09-28 21:50:01.123456',3), ('2006-09-29 21:50:01.123456',4), ('2006-09-29 21:50:01.123456',5), ('2006-09-30 21:50:01.123456',6), ('2006-10-01 21:50:01.123456',7), ('2006-10-02 21:50:01.123456',8), ('2006-10-02 21:50:01.123456',9); SELECT id,to_days(taken) FROM t1 order by 2; eval CREATE TABLE t2 ( taken $type(5) NOT NULL DEFAULT '0000-00-00 00:00:00', id int(11) NOT NULL DEFAULT '0', PRIMARY KEY (id,taken), KEY taken (taken) ) PARTITION BY RANGE (extract(microsecond from taken)) ( PARTITION p01 VALUES LESS THAN (123000), PARTITION p02 VALUES LESS THAN (500000), PARTITION p03 VALUES LESS THAN MAXVALUE); INSERT INTO t2 VALUES ('2006-09-27 21:50:01',0), ('2006-09-27 21:50:01.1',1), ('2006-09-27 21:50:01.12',2), ('2006-09-28 21:50:01.123',3), ('2006-09-29 21:50:01.1234',4), ('2006-09-29 21:50:01.12345',5), ('2006-09-30 21:50:01.123456',6), ('2006-10-01 21:50:01.56',7), ('2006-10-02 21:50:01.567',8), ('2006-10-02 21:50:01.5678',9); --sorted_result select table_name,partition_name,partition_method,partition_expression,partition_description,table_rows from information_schema.partitions where table_name in ('t1', 't2'); drop table t1, t2; create table t1 (a datetime, b datetime(6)); insert t1 values ('2010-01-02 03:04:05.678912', '2010-01-02 03:04:05.678912'); update t1 set b=a; select * from t1; alter table t1 modify b datetime, modify a datetime(6); select * from t1; drop table t1; --echo # --echo # MDEV-4651 Crash in my_decimal2decimal in a ORDER BY query --echo # SET @@time_zone='+00:00'; CREATE TABLE t1 (a DATETIME(4) NOT NULL); INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2000-00-00 00:00:00'); SELECT UNIX_TIMESTAMP(a) FROM t1 ORDER BY 1; DROP TABLE t1; SET @@time_zone=DEFAULT; --echo # --echo # Start of 10.4 tests --echo # --echo # --echo # MDEV-20397 Support TIMESTAMP, DATETIME, TIME in ROUND() and TRUNCATE() --echo # CREATE TABLE t1 (a1 DATETIME(6), a2 DATETIME(6) NOT NULL); CREATE TABLE t2 AS SELECT ROUND(a1) AS r1, ROUND(a2) AS r2, TRUNCATE(a1,0) AS t1, TRUNCATE(a2,0) AS t2 FROM t1; SHOW CREATE TABLE t2; DROP TABLE t2; DROP TABLE t1; CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999999'), ('0000-00-00 23:59:59.999999'), ('0000-00-01 00:00:00.999999'), ('0000-00-01 23:59:59.999999'), ('0000-00-31 23:59:59.999999'), ('0000-01-01 00:00:00.999999'), ('0000-01-01 23:59:59.999999'), ('0000-01-31 23:59:59.999999'), ('0000-02-28 23:59:59.999999'), ('0000-12-31 23:59:59.999999'), ('0001-01-01 00:00:00.999999'), ('0001-02-28 23:59:59.999999'), ('0001-12-31 23:59:59.999999'), ('0004-02-28 23:59:59.999999'), ('0004-02-29 23:59:59.999999'), ('2000-02-29 23:59:59.999999'), ('2000-12-31 23:59:59.999999'), ('9999-12-31 23:59:59.999999'); SELECT a, TRUNCATE(a,0) FROM t1; SELECT a, TRUNCATE(a,1) FROM t1; SELECT a, TRUNCATE(a,2) FROM t1; SELECT a, TRUNCATE(a,3) FROM t1; SELECT a, TRUNCATE(a,4) FROM t1; SELECT a, TRUNCATE(a,5) FROM t1; SELECT a, TRUNCATE(a,6) FROM t1; SELECT a, TRUNCATE(a,7) FROM t1; SELECT a, TRUNCATE(a,-1) FROM t1; SELECT a, TRUNCATE(a,-6) FROM t1; SELECT a, ROUND(a) FROM t1; SELECT a, ROUND(a,0) FROM t1; SELECT a, ROUND(a,1) FROM t1; SELECT a, ROUND(a,2) FROM t1; SELECT a, ROUND(a,3) FROM t1; SELECT a, ROUND(a,4) FROM t1; SELECT a, ROUND(a,5) FROM t1; SELECT a, ROUND(a,6) FROM t1; SELECT a, ROUND(a,7) FROM t1; SELECT a, ROUND(a,-1) FROM t1; SELECT a, ROUND(a,-6) FROM t1; DROP TABLE t1; --echo # --echo # End of 10.4 tests --echo #