Changeset: 06e7ddcdd814 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=06e7ddcdd814
Added Files:
        
sql/test/BugTracker-2017/Tests/group-by-on-constant.Bug-6082.stable.out.int128
        sql/test/BugTracker-2017/Tests/integer_addition_overflow.Bug-6205.sql
        
sql/test/BugTracker-2017/Tests/integer_addition_overflow.Bug-6205.stable.err
        
sql/test/BugTracker-2017/Tests/integer_addition_overflow.Bug-6205.stable.out
Removed Files:
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.err.single
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out.single
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out.single
Modified Files:
        gdk/Makefile.ag
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
        sql/backends/monet5/rel_bin.c
        sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
        
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
        
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
        
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
        sql/test/BugTracker-2011/Tests/case-overflow.Bug-2239.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        sql/test/BugTracker-2013/Tests/between.Bug-3259.sql
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out
        sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.sql
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.sql
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.sql
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out
        sql/test/BugTracker-2017/Tests/All
        sql/test/BugTracker-2017/Tests/group-by-on-constant.Bug-6082.stable.err
        sql/test/BugTracker-2017/Tests/group-by-on-constant.Bug-6082.stable.out
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        sql/test/mergetables/Tests/mergequery.stable.out
        sql/test/pg_regress/Tests/float8.stable.err.Windows
        sql/test/remote/Tests/partition_elim.stable.out
Branch: default
Log Message:

Merge with Dec2016 branch.


diffs (truncated from 2434 to 300 lines):

diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag
--- a/gdk/Makefile.ag
+++ b/gdk/Makefile.ag
@@ -34,7 +34,6 @@ lib_gdk = {
                gdk_unique.c \
                gdk_interprocess.c gdk_interprocess.h \
                gdk_firstn.c \
-               bat.feps bat1.feps bat2.feps \
                libbat.rc
        LIBS = ../common/options/libmoptions \
                ../common/stream/libstream \
diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
--- a/monetdb5/optimizer/opt_support.c
+++ b/monetdb5/optimizer/opt_support.c
@@ -398,6 +398,10 @@ hasSideEffects(InstrPtr p, int strict)
 {
        if( getFunctionId(p) == NULL) return FALSE;
 
+       /* update instructions have side effects */
+       if (isUpdateInstruction(p))
+               return TRUE;
+
        if ( (getModuleId(p) == batRef || getModuleId(p)==sqlRef) &&
             (getFunctionId(p) == setAccessRef ||
                  getFunctionId(p) == setWriteModeRef ||
@@ -442,10 +446,6 @@ hasSideEffects(InstrPtr p, int strict)
                if (getFunctionId(p) == zero_or_oneRef) return FALSE;
                if (getFunctionId(p) == mvcRef) return FALSE;
                if (getFunctionId(p) == singleRef) return FALSE;
-               /* the update instructions for SQL has side effects.
-                  whether this is relevant should be explicitly checked
-                  in the environment of the call */
-               if (isUpdateInstruction(p)) return TRUE;
                return TRUE;
        }
        if( getModuleId(p) == languageRef){
diff --git a/sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out 
b/sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
--- a/sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
+++ b/sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
@@ -172,15 +172,10 @@ end user.s8_1;
 function user.s16_1():void;
     X_1:void := querylog.define("explain select fuse(a,b) from udf_fuse;", 
"sequential_pipe", 27:int);
     X_29 := bat.new(nil:str);
-    X_36 := bat.append(X_29, "sys.L2");
+    X_35 := bat.new(nil:int);
+    X_33 := bat.new(nil:int);
+    X_32 := bat.new(nil:str);
     X_31 := bat.new(nil:str);
-    X_38 := bat.append(X_31, "L2");
-    X_32 := bat.new(nil:str);
-    X_40 := bat.append(X_32, "smallint");
-    X_33 := bat.new(nil:int);
-    X_42 := bat.append(X_33, 16:int);
-    X_35 := bat.new(nil:int);
-    X_44 := bat.append(X_35, 0:int);
     X_4 := sql.mvc();
     C_5:bat[:oid] := sql.tid(X_4, "sys", "udf_fuse");
     X_8:bat[:bte] := sql.bind(X_4, "sys", "udf_fuse", "a", 0:int);
@@ -188,6 +183,11 @@ function user.s16_1():void;
     X_18:bat[:bte] := sql.bind(X_4, "sys", "udf_fuse", "b", 0:int);
     X_24 := algebra.projection(C_5, X_18);
     X_25:bat[:sht] := batudf.fuse(X_17, X_24);
+    X_36 := bat.append(X_29, "sys.L2");
+    X_38 := bat.append(X_31, "L2");
+    X_40 := bat.append(X_32, "smallint");
+    X_42 := bat.append(X_33, 16:int);
+    X_44 := bat.append(X_35, 0:int);
     sql.resultSet(X_36, X_38, X_40, X_42, X_44, X_25);
 end user.s16_1;
 #inline               actions= 0 time=4 usec 
@@ -223,15 +223,10 @@ end user.s16_1;
 function user.s18_1():void;
     X_1:void := querylog.define("explain select fuse(c,d) from udf_fuse;", 
"sequential_pipe", 27:int);
     X_29 := bat.new(nil:str);
-    X_36 := bat.append(X_29, "sys.L2");
+    X_35 := bat.new(nil:int);
+    X_33 := bat.new(nil:int);
+    X_32 := bat.new(nil:str);
     X_31 := bat.new(nil:str);
-    X_38 := bat.append(X_31, "L2");
-    X_32 := bat.new(nil:str);
-    X_40 := bat.append(X_32, "int");
-    X_33 := bat.new(nil:int);
-    X_42 := bat.append(X_33, 32:int);
-    X_35 := bat.new(nil:int);
-    X_44 := bat.append(X_35, 0:int);
     X_4 := sql.mvc();
     C_5:bat[:oid] := sql.tid(X_4, "sys", "udf_fuse");
     X_8:bat[:sht] := sql.bind(X_4, "sys", "udf_fuse", "c", 0:int);
@@ -239,6 +234,11 @@ function user.s18_1():void;
     X_18:bat[:sht] := sql.bind(X_4, "sys", "udf_fuse", "d", 0:int);
     X_24 := algebra.projection(C_5, X_18);
     X_25:bat[:int] := batudf.fuse(X_17, X_24);
+    X_36 := bat.append(X_29, "sys.L2");
+    X_38 := bat.append(X_31, "L2");
+    X_40 := bat.append(X_32, "int");
+    X_42 := bat.append(X_33, 32:int);
+    X_44 := bat.append(X_35, 0:int);
     sql.resultSet(X_36, X_38, X_40, X_42, X_44, X_25);
 end user.s18_1;
 #inline               actions= 0 time=2 usec 
@@ -274,15 +274,10 @@ end user.s18_1;
 function user.s20_1():void;
     X_1:void := querylog.define("explain select fuse(e,f) from udf_fuse;", 
"sequential_pipe", 27:int);
     X_29 := bat.new(nil:str);
-    X_36 := bat.append(X_29, "sys.L2");
+    X_35 := bat.new(nil:int);
+    X_33 := bat.new(nil:int);
+    X_32 := bat.new(nil:str);
     X_31 := bat.new(nil:str);
-    X_38 := bat.append(X_31, "L2");
-    X_32 := bat.new(nil:str);
-    X_40 := bat.append(X_32, "bigint");
-    X_33 := bat.new(nil:int);
-    X_42 := bat.append(X_33, 64:int);
-    X_35 := bat.new(nil:int);
-    X_44 := bat.append(X_35, 0:int);
     X_4 := sql.mvc();
     C_5:bat[:oid] := sql.tid(X_4, "sys", "udf_fuse");
     X_8:bat[:int] := sql.bind(X_4, "sys", "udf_fuse", "e", 0:int);
@@ -290,6 +285,11 @@ function user.s20_1():void;
     X_18:bat[:int] := sql.bind(X_4, "sys", "udf_fuse", "f", 0:int);
     X_24 := algebra.projection(C_5, X_18);
     X_25:bat[:lng] := batudf.fuse(X_17, X_24);
+    X_36 := bat.append(X_29, "sys.L2");
+    X_38 := bat.append(X_31, "L2");
+    X_40 := bat.append(X_32, "bigint");
+    X_42 := bat.append(X_33, 64:int);
+    X_44 := bat.append(X_35, 0:int);
     sql.resultSet(X_36, X_38, X_40, X_42, X_44, X_25);
 end user.s20_1;
 #inline               actions= 0 time=2 usec 
diff --git a/sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out 
b/sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
--- a/sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
+++ b/sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
@@ -111,20 +111,20 @@ end user.s4_1;
 function user.s12_1():void;
     X_1:void := querylog.define("explain select reverse(x) from udf_reverse;", 
"sequential_pipe", 22:int);
     X_22 := bat.new(nil:str);
-    X_29 := bat.append(X_22, "sys.L2");
+    X_28 := bat.new(nil:int);
+    X_26 := bat.new(nil:int);
+    X_25 := bat.new(nil:str);
     X_24 := bat.new(nil:str);
-    X_31 := bat.append(X_24, "L2");
-    X_25 := bat.new(nil:str);
-    X_33 := bat.append(X_25, "clob");
-    X_26 := bat.new(nil:int);
-    X_35 := bat.append(X_26, 0:int);
-    X_28 := bat.new(nil:int);
-    X_36 := bat.append(X_28, 0:int);
     X_4 := sql.mvc();
     C_5:bat[:oid] := sql.tid(X_4, "sys", "udf_reverse");
     X_8:bat[:str] := sql.bind(X_4, "sys", "udf_reverse", "x", 0:int);
     X_17 := algebra.projection(C_5, X_8);
     X_18:bat[:str] := batudf.reverse(X_17);
+    X_29 := bat.append(X_22, "sys.L2");
+    X_31 := bat.append(X_24, "L2");
+    X_33 := bat.append(X_25, "clob");
+    X_35 := bat.append(X_26, 0:int);
+    X_36 := bat.append(X_28, 0:int);
     sql.resultSet(X_29, X_31, X_33, X_35, X_36, X_18);
 end user.s12_1;
 #inline               actions= 0 time=4 usec 
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -2632,6 +2632,8 @@ rel2bin_groupby(backend *be, sql_rel *re
                                assert(0);
                                return NULL;
                        }
+                       if (!gbcol->nrcols)
+                               gbcol = stmt_const(be, bin_first_column(be, 
sub), gbcol);
                        groupby = stmt_group(be, gbcol, grp, ext, cnt, 
!en->next);
                        grp = stmt_result(be, groupby, 0);
                        ext = stmt_result(be, groupby, 1);
diff --git 
a/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out 
b/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
--- a/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
+++ b/sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
@@ -36,21 +36,20 @@ Ready.
 % .explain # table_name
 % mal # name
 % clob # type
-% 121 # length
+% 122 # length
 function user.s8_1():void;
-    X_58:void := querylog.define("explain alter table blabla add constraint 
dada unique (id);","sequential_pipe",16:int);
-# querylog.define("explain alter table blabla add constraint dada unique 
(id);","sequential_pipe")
-    sql.catalog(29:int,"sys",nil:ptr,0:int);
-    X_39 := bat.new(nil:int);
-    C_42 := algebra.subselect(X_39,nil:int,nil:int,true,true,true);
-    X_45 := algebra.projection(C_42,X_39);
-    (X_46,X_47,X_48) := group.groupdone(X_45);
-    X_49:lng := aggr.sum(X_48);
-    X_53 := aggr.count(X_48);
-    X_51:bit := calc.isnil(X_49);
-    X_52:lng := calc.ifthenelse(X_51,0:lng,X_49);
-    X_54:bit := calc.!=(X_53,X_52);
-    sql.assert(X_54,"UPDATE: UNIQUE constraint 'blabla.dada' violated");
+    X_1:void := querylog.define("explain alter table blabla add constraint 
dada unique (id);", "sequential_pipe", 40:int);
+    sqlcatalog.alter_table("sys", "blabla", nil:ptr, 0:int);
+    X_40 := bat.new(nil:int);
+    C_43 := algebra.select(X_40, nil:int, nil:int, true, true, true);
+    X_46 := algebra.projection(C_43, X_40);
+    (X_47, C_48, X_49) := group.groupdone(X_46);
+    X_50:lng := aggr.sum(X_49);
+    X_54 := aggr.count(X_49);
+    X_52:bit := calc.isnil(X_50);
+    X_53:lng := calc.ifthenelse(X_52, 0:lng, X_50);
+    X_55:bit := calc.!=(X_54, X_53);
+    sql.assert(X_55, "UPDATE: UNIQUE constraint 'blabla.dada' violated");
     sql.exportOperation();
 end user.s8_1;
 #inline               actions= 0 time=1 usec 
@@ -78,21 +77,20 @@ end user.s8_1;
 % .explain # table_name
 % mal # name
 % clob # type
-% 121 # length
+% 122 # length
 function user.s10_1():void;
-    X_58:void := querylog.define("explain alter table blabla add constraint 
dada unique (id);","sequential_pipe",16:int);
-# querylog.define("explain alter table blabla add constraint dada unique 
(id);","sequential_pipe")
-    sql.catalog(29:int,"sys",nil:ptr,0:int);
-    X_39 := bat.new(nil:int);
-    C_42 := algebra.subselect(X_39,nil:int,nil:int,true,true,true);
-    X_45 := algebra.projection(C_42,X_39);
-    (X_46,X_47,X_48) := group.groupdone(X_45);
-    X_49:lng := aggr.sum(X_48);
-    X_53 := aggr.count(X_48);
-    X_51:bit := calc.isnil(X_49);
-    X_52:lng := calc.ifthenelse(X_51,0:lng,X_49);
-    X_54:bit := calc.!=(X_53,X_52);
-    sql.assert(X_54,"UPDATE: UNIQUE constraint 'blabla.dada' violated");
+    X_1:void := querylog.define("explain alter table blabla add constraint 
dada unique (id);", "sequential_pipe", 40:int);
+    sqlcatalog.alter_table("sys", "blabla", nil:ptr, 0:int);
+    X_40 := bat.new(nil:int);
+    C_43 := algebra.select(X_40, nil:int, nil:int, true, true, true);
+    X_46 := algebra.projection(C_43, X_40);
+    (X_47, C_48, X_49) := group.groupdone(X_46);
+    X_50:lng := aggr.sum(X_49);
+    X_54 := aggr.count(X_49);
+    X_52:bit := calc.isnil(X_50);
+    X_53:lng := calc.ifthenelse(X_52, 0:lng, X_50);
+    X_55:bit := calc.!=(X_54, X_53);
+    sql.assert(X_55, "UPDATE: UNIQUE constraint 'blabla.dada' violated");
     sql.exportOperation();
 end user.s10_1;
 #inline               actions= 0 time=1 usec 
@@ -132,21 +130,20 @@ end user.s10_1;
 % .explain # table_name
 % mal # name
 % clob # type
-% 121 # length
+% 122 # length
 function user.s18_1():void;
-    X_58:void := querylog.define("explain alter table blabla add constraint 
dada unique (id);","sequential_pipe",16:int);
-# querylog.define("explain alter table blabla add constraint dada unique 
(id);","sequential_pipe")
-    sql.catalog(29:int,"sys",nil:ptr,0:int);
-    X_39 := bat.new(nil:int);
-    C_42 := algebra.subselect(X_39,nil:int,nil:int,true,true,true);
-    X_45 := algebra.projection(C_42,X_39);
-    (X_46,X_47,X_48) := group.groupdone(X_45);
-    X_49:lng := aggr.sum(X_48);
-    X_53 := aggr.count(X_48);
-    X_51:bit := calc.isnil(X_49);
-    X_52:lng := calc.ifthenelse(X_51,0:lng,X_49);
-    X_54:bit := calc.!=(X_53,X_52);
-    sql.assert(X_54,"UPDATE: UNIQUE constraint 'blabla.dada' violated");
+    X_1:void := querylog.define("explain alter table blabla add constraint 
dada unique (id);", "sequential_pipe", 40:int);
+    sqlcatalog.alter_table("sys", "blabla", nil:ptr, 0:int);
+    X_40 := bat.new(nil:int);
+    C_43 := algebra.select(X_40, nil:int, nil:int, true, true, true);
+    X_46 := algebra.projection(C_43, X_40);
+    (X_47, C_48, X_49) := group.groupdone(X_46);
+    X_50:lng := aggr.sum(X_49);
+    X_54 := aggr.count(X_49);
+    X_52:bit := calc.isnil(X_50);
+    X_53:lng := calc.ifthenelse(X_52, 0:lng, X_50);
+    X_55:bit := calc.!=(X_54, X_53);
+    sql.assert(X_55, "UPDATE: UNIQUE constraint 'blabla.dada' violated");
     sql.exportOperation();
 end user.s18_1;
 #inline               actions= 0 time=1 usec 
diff --git 
a/sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
 
b/sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
--- 
a/sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
+++ 
b/sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
@@ -22,7 +22,7 @@ Ready.
 
 #debug select * from tables;
 mdb>#X_1=0@0:void := querylog.define("debug select * from tables;", 
"sequential_pipe", 191:int);
-mdb>#X_195=nil:bat[:str] := bat.new(nil:str);
+mdb>#X_161=nil:bat[:int] := bat.new(nil:int);
 
 # 16:24:01 >  
 # 16:24:01 >  "Done."
diff --git 
a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
 
b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
--- 
a/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
+++ 
b/sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
@@ -38,42 +38,55 @@ Ready.
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to