Changeset: d318a5973f0c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d318a5973f0c
Added Files:
        sql/test/BugTracker-2019/Tests/orderby-alias-expr.Bug-6799.sql
        sql/test/BugTracker-2019/Tests/orderby-alias-expr.Bug-6799.stable.err
        sql/test/BugTracker-2019/Tests/orderby-alias-expr.Bug-6799.stable.out
        
sql/test/BugTracker-2019/Tests/prepared-select-with-error-causes-hang.Bug-6761.sql
        
sql/test/BugTracker-2019/Tests/prepared-select-with-error-causes-hang.Bug-6761.stable.err
        
sql/test/BugTracker-2019/Tests/prepared-select-with-error-causes-hang.Bug-6761.stable.out
Modified Files:
        sql/backends/monet5/sql_scenario.c
        sql/test/BugTracker-2019/Tests/All
        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: default
Log Message:

Merge with Nov2019


diffs (truncated from 552 to 300 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1390,32 +1390,38 @@ SQLCacheRemove(Client c, str nme)
 str
 SQLcallback(Client c, str msg)
 {
-       char *newerr;
+       char *newerr = NULL;
 
-       if (msg &&
-           (newerr = GDKmalloc(strlen(msg) + 1)) != NULL) {
-               /* remove exception decoration */
-               char *m, *n, *p, *s;
-               size_t l;
+       if (msg) {
+               if (!(newerr = GDKmalloc(strlen(msg) + 1))) {
+                       msg = createException(SQL, "SQLcallback", 
SQLSTATE(HY001) MAL_MALLOC_FAIL);
+               } else {
+                       /* remove exception decoration */
+                       char *m, *n, *p, *s;
+                       size_t l;
 
-               m = msg;
-               p = newerr;
-               while (m && *m) {
-                       n = strchr(m, '\n');
-                       s = getExceptionMessageAndState(m);
-                       if (n) {
-                               n++; /* include newline */
-                               l = n - s;
-                       } else {
-                               l = strlen(s);
+                       m = msg;
+                       p = newerr;
+                       while (m && *m) {
+                               n = strchr(m, '\n');
+                               s = getExceptionMessageAndState(m);
+                               if (n) {
+                                       n++; /* include newline */
+                                       l = n - s;
+                               } else {
+                                       l = strlen(s);
+                               }
+                               memcpy(p, s, l);
+                               p += l;
+                               m = n;
                        }
-                       memcpy(p, s, l);
-                       p += l;
-                       m = n;
+                       *p = 0;
+                       freeException(msg);
+                       if (!(msg = GDKrealloc(newerr, strlen(newerr) + 1))) {
+                               GDKfree(newerr);
+                               msg = createException(SQL, "SQLcallback", 
SQLSTATE(HY001) MAL_MALLOC_FAIL);
+                       }
                }
-               *p = 0;
-               freeException(msg);
-               msg = GDKrealloc(newerr, strlen(newerr) + 1);
        }
        return MALcallback(c, msg);
 }
diff --git a/sql/test/BugTracker-2019/Tests/All 
b/sql/test/BugTracker-2019/Tests/All
--- a/sql/test/BugTracker-2019/Tests/All
+++ b/sql/test/BugTracker-2019/Tests/All
@@ -37,11 +37,11 @@ merge-table-limit.Bug-6756
 double-free.Bug-6757
 HAVE_LIBPY3?python-loader-string.Bug-6759
 select-char.Bug-6761
+prepared-select-with-error-causes-hang.Bug-6761
 grant-select-column.Bug-6765
 next-get-value-bulk.Bug-6766
 filter_json_null.Bug-6773
 prod-decimals.Bug-6774
-prepared-select-with-error-causes-hang.Jira-292
 NOT_IN-AND-OR-wrong-results.Bug-6775
 outer-join-varchar.Bug-6776
 msqldump-mapi-cache.Bug-6777
@@ -56,3 +56,4 @@ cast-interval.Bug-6793
 could-not-allocate-space.Bug-6795
 HAVE_LIBPY3?python3-udf-modules.Bug-6797
 json-text-empty-separator.Bug-6798
+orderby-alias-expr.Bug-6799
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
@@ -103,6 +103,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';
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-31 23:59:59.987654   ]
+#select date_trunc('microseconds', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-31 23:59:59.987654   ]
+#select date_trunc('milliseconds', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-31 23:59:59.987000   ]
+#select date_trunc('second', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-31 23:59:59.000000   ]
+#select date_trunc('minute', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-31 23:59:00.000000   ]
+#select date_trunc('hour', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-31 23:36:00.000000   ]
+#select date_trunc('day', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-31 00:00:00.000000   ]
+#select date_trunc('week', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-27 00:00:00.000000   ]
+#select date_trunc('month', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-12-01 00:00:00.000000   ]
+#select date_trunc('quarter', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-04-01 00:00:00.000000   ]
+#select date_trunc('year', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1999-01-01 00:00:00.000000   ]
+#select date_trunc('decade', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1990-01-01 00:00:00.000000   ]
+#select date_trunc('century', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # name
+% timestamp # type
+% 26 # length
+[ 1900-01-01 00:00:00.000000   ]
+#select date_trunc('millennium', timestamp '1999-12-31 23:59:59.987654');
+% . # table_name
+% %1 # 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,6 +36,7 @@ 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;
 % . # table_name
 % %1 # name
@@ -41,6 +44,7 @@ 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('milliseconds', t) from dt_tmp;
 % . # table_name
 % %1 # name
@@ -48,6 +52,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 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;
 % . # table_name
 % %1 # name
@@ -55,6 +60,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 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;
 % . # table_name
 % %1 # name
@@ -62,6 +68,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 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;
 % . # table_name
 % %1 # name
@@ -69,6 +76,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 26 # length
 [ 2119-02-17 02:00:00.000000   ]
 [ NULL ]
+[ 1999-12-31 23:36:00.000000   ]
 #select date_trunc('day', t) from dt_tmp;
 % . # table_name
 % %1 # name
@@ -76,6 +84,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 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;
 % . # table_name
 % %1 # name
@@ -83,6 +92,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 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;
 % . # table_name
 % %1 # name
@@ -90,6 +100,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 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;
 % . # table_name
 % %1 # name
@@ -97,6 +108,7 @@ stdout of test 'date_trunc_bulk` in dire
 % 26 # length
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to