Changeset: dba7a38b2f1f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dba7a38b2f1f Modified Files: sql/test/BugTracker-2019/Tests/date_trunc.sql sql/test/BugTracker-2019/Tests/date_trunc.stable.out sql/test/BugTracker-2019/Tests/date_trunc_bulk.sql sql/test/BugTracker-2019/Tests/date_trunc_bulk.stable.out Branch: Nov2019 Log Message:
Extended sys.date_trunc(txt string, t timestamp) test with on timestamp '1999-12-31 23:59:59.987654'. For two cases it returns the incorrect output: date_trunc('hour', timestamp '1999-12-31 23:59:59.987654') and date_trunc('quarter', timestamp '1999-12-31 23:59:59.987654') diffs (279 lines): diff --git a/sql/test/BugTracker-2019/Tests/date_trunc.sql b/sql/test/BugTracker-2019/Tests/date_trunc.sql --- a/sql/test/BugTracker-2019/Tests/date_trunc.sql +++ b/sql/test/BugTracker-2019/Tests/date_trunc.sql @@ -14,3 +14,20 @@ select date_trunc('year', timestamp '211 select date_trunc('decade', timestamp '2119-02-17 02:08:12.345678'); select date_trunc('century', timestamp '2119-02-17 02:08:12.345678'); select date_trunc('millennium', timestamp '2119-02-17 02:08:12.345678'); + +select timestamp '1999-12-31 23:59:59.987654'; + +select date_trunc('microseconds', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('milliseconds', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('second', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('minute', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('hour', timestamp '1999-12-31 23:59:59.987654'); + +select date_trunc('day', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('week', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('month', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('quarter', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('year', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('decade', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('century', timestamp '1999-12-31 23:59:59.987654'); +select date_trunc('millennium', timestamp '1999-12-31 23:59:59.987654'); diff --git a/sql/test/BugTracker-2019/Tests/date_trunc.stable.out b/sql/test/BugTracker-2019/Tests/date_trunc.stable.out --- a/sql/test/BugTracker-2019/Tests/date_trunc.stable.out +++ b/sql/test/BugTracker-2019/Tests/date_trunc.stable.out @@ -107,6 +107,90 @@ stdout of test 'date_trunc` in directory % timestamp # type % 26 # length [ 2000-01-01 00:00:00.000000 ] +#select timestamp '1999-12-31 23:59:59.987654'; +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-31 23:59:59.987654 ] +#select date_trunc('microseconds', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-31 23:59:59.987654 ] +#select date_trunc('milliseconds', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-31 23:59:59.987000 ] +#select date_trunc('second', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-31 23:59:59.000000 ] +#select date_trunc('minute', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-31 23:59:00.000000 ] +#select date_trunc('hour', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-31 23:00:00.000000 ] +#select date_trunc('day', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-31 00:00:00.000000 ] +#select date_trunc('week', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-27 00:00:00.000000 ] +#select date_trunc('month', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-12-01 00:00:00.000000 ] +#select date_trunc('quarter', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-10-01 00:00:00.000000 ] +#select date_trunc('year', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1999-01-01 00:00:00.000000 ] +#select date_trunc('decade', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1990-01-01 00:00:00.000000 ] +#select date_trunc('century', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1900-01-01 00:00:00.000000 ] +#select date_trunc('millennium', timestamp '1999-12-31 23:59:59.987654'); +% .L2 # table_name +% L2 # name +% timestamp # type +% 26 # length +[ 1000-01-01 00:00:00.000000 ] # 08:07:24 > # 08:07:24 > "Done." diff --git a/sql/test/BugTracker-2019/Tests/date_trunc_bulk.sql b/sql/test/BugTracker-2019/Tests/date_trunc_bulk.sql --- a/sql/test/BugTracker-2019/Tests/date_trunc_bulk.sql +++ b/sql/test/BugTracker-2019/Tests/date_trunc_bulk.sql @@ -1,6 +1,7 @@ start transaction; create table dt_tmp( t timestamp); insert into dt_tmp values (timestamp '2119-02-17 02:08:12.345678'), (null); +insert into dt_tmp values (timestamp '1999-12-31 23:59:59.987654'); select * from dt_tmp; diff --git a/sql/test/BugTracker-2019/Tests/date_trunc_bulk.stable.out b/sql/test/BugTracker-2019/Tests/date_trunc_bulk.stable.out --- a/sql/test/BugTracker-2019/Tests/date_trunc_bulk.stable.out +++ b/sql/test/BugTracker-2019/Tests/date_trunc_bulk.stable.out @@ -27,6 +27,8 @@ stdout of test 'date_trunc_bulk` in dire #create table dt_tmp( t timestamp); #insert into dt_tmp values (timestamp '2119-02-17 02:08:12.345678'), (null); [ 2 ] +#insert into dt_tmp values (timestamp '1999-12-31 23:59:59.987654'); +[ 1 ] #select * from dt_tmp; % sys.dt_tmp # table_name % t # name @@ -34,97 +36,111 @@ stdout of test 'date_trunc_bulk` in dire % 26 # length [ 2119-02-17 02:08:12.345678 ] [ NULL ] +[ 1999-12-31 23:59:59.987654 ] #select date_trunc('microseconds', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-17 02:08:12.345678 ] [ NULL ] +[ 1999-12-31 23:59:59.987654 ] #select date_trunc('milliseconds', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-17 02:08:12.345000 ] [ NULL ] +[ 1999-12-31 23:59:59.987000 ] #select date_trunc('second', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-17 02:08:12.000000 ] [ NULL ] +[ 1999-12-31 23:59:59.000000 ] #select date_trunc('minute', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-17 02:08:00.000000 ] [ NULL ] +[ 1999-12-31 23:59:00.000000 ] #select date_trunc('hour', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-17 02:00:00.000000 ] [ NULL ] +[ 1999-12-31 23:00:00.000000 ] #select date_trunc('day', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-17 00:00:00.000000 ] [ NULL ] +[ 1999-12-31 00:00:00.000000 ] #select date_trunc('week', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-13 00:00:00.000000 ] [ NULL ] +[ 1999-12-27 00:00:00.000000 ] #select date_trunc('month', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-02-01 00:00:00.000000 ] [ NULL ] +[ 1999-12-01 00:00:00.000000 ] #select date_trunc('quarter', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-01-01 00:00:00.000000 ] [ NULL ] +[ 1999-10-01 00:00:00.000000 ] #select date_trunc('year', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2119-01-01 00:00:00.000000 ] [ NULL ] +[ 1999-01-01 00:00:00.000000 ] #select date_trunc('decade', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2110-01-01 00:00:00.000000 ] [ NULL ] +[ 1990-01-01 00:00:00.000000 ] #select date_trunc('century', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2100-01-01 00:00:00.000000 ] [ NULL ] +[ 1900-01-01 00:00:00.000000 ] #select date_trunc('millennium', t) from dt_tmp; -% .L2 # table_name -% L2 # name +% .L1 # table_name +% L1 # name % timestamp # type % 26 # length [ 2000-01-01 00:00:00.000000 ] [ NULL ] +[ 1000-01-01 00:00:00.000000 ] #rollback; # 21:03:25 > _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list