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

Reply via email to