Changeset: e5451cf8596e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5451cf8596e
Modified Files:
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        monetdb5/mal/mal_instruction.c
        sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_gencode.h
        sql/backends/monet5/sql_scenario.c
        sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
        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/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
        
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.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/aggregate_incorrect_precision_scale.Bug-3182.stable.out
        
sql/test/BugTracker-2012/Tests/aggregate_incorrect_precision_scale.Bug-3182.stable.out.int128
        
sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.stable.out
        sql/test/BugTracker-2012/Tests/algebra_find.Bug-2728.stable.out
        sql/test/BugTracker-2012/Tests/any_null.Bug-2594.stable.out
        sql/test/BugTracker-2012/Tests/boolean_coersion.Bug-3012.stable.out
        
sql/test/BugTracker-2012/Tests/case_evaluated_too_early.Bug-3186.stable.out
        sql/test/BugTracker-2012/Tests/cast-tinyint-Bug-3137.stable.out
        
sql/test/BugTracker-2012/Tests/cast_varchar_to_double.Bug-3071.stable.out
        
sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.stable.out
        sql/test/BugTracker-2012/Tests/currenttime.Bug-2781.stable.out
        sql/test/BugTracker-2012/Tests/date_script_test.Bug-2973.stable.out
        
sql/test/BugTracker-2012/Tests/day-of-month-localization.Bug-2962.stable.out
        
sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.stable.out
        sql/test/BugTracker-2012/Tests/float-mod.Bug-3086.stable.out
        
sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.out
        
sql/test/BugTracker-2012/Tests/large-number-operation-strange-results.Bug-2929.stable.out.int128
        
sql/test/BugTracker-2012/Tests/many-columns-truncated.Bug-3161.stable.out
        sql/test/BugTracker-2012/Tests/not-equal-Bug.3139.stable.out
        
sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.stable.out
        sql/test/BugTracker-2012/Tests/null_except_null.Bug-3040.stable.out
        
sql/test/BugTracker-2012/Tests/order_by_on_column_exp.Bug-3193.stable.out
        sql/test/BugTracker-2012/Tests/power_priority.Bug-2291.stable.out
        sql/test/BugTracker-2012/Tests/power_priority.Bug-2291.stable.out.int128
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        sql/test/BugTracker-2012/Tests/round-type-inference.Bug-2987.stable.out
        
sql/test/BugTracker-2012/Tests/row_number_does_not_work_in_complex_query.Bug-2805.stable.out
        
sql/test/BugTracker-2012/Tests/scalar_subquery_with_alias.Bug-3093.stable.out
        sql/test/BugTracker-2012/Tests/server-crash.Bug-3046.stable.out
        sql/test/BugTracker-2012/Tests/set_operation.Bug-3059.stable.out
        sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.out
        sql/test/BugTracker-2012/Tests/sticky-precision.Bug-2969.stable.out
        sql/test/BugTracker-2012/Tests/timestamp-diff.Bug-3190.stable.out
        
sql/test/BugTracker-2012/Tests/tuples_INTERSECT_vs_count_intersect_differs.Bug-2659.stable.out
        sql/test/BugTracker-2012/Tests/url_script_test.Bug-2972.stable.out
        
sql/test/BugTracker-2012/Tests/user_defined_decimal_function.Bug-2992.stable.out
        sql/test/BugTracker-2012/Tests/with_and_exists.Bug-3099.stable.out
        sql/test/BugTracker-2012/Tests/with_in_derived_table.Bug-3043.stable.out
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128
        sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single
        sql/test/BugTracker-2014/Tests/queueError.Bug-3604.stable.out
        sql/test/BugTracker-2015/Tests/schemadiff.Bug-3778.stable.out
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out
        
sql/test/BugTracker-2016/Tests/CREATE_INDEX_breaks_table_queries.Bug-4053.stable.out
        
sql/test/BugTracker-2016/Tests/DISTINCT_with_correlated_scalar_subquery_crashes_mserver.Bug-3920.stable.out
        sql/test/BugTracker-2016/Tests/assert-on-project.Bug-6078.stable.out
        
sql/test/BugTracker-2016/Tests/assert-on-push-project-up.Bug-6077.stable.out
        
sql/test/BugTracker-2016/Tests/assert-on-table-producing-function.Bug-6076.stable.out
        sql/test/BugTracker-2016/Tests/case-with-string-Bug.3932.stable.out
        sql/test/BugTracker-2016/Tests/cast_and_floor.Bug-6071.stable.out
        
sql/test/BugTracker-2016/Tests/catalog_name_qualifier.Bug-3948.stable.out
        
sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out
        
sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out.int128
        sql/test/BugTracker-2016/Tests/column_not_found.Bug-4064.stable.out
        
sql/test/BugTracker-2016/Tests/convert-function-test-hge.Bug-3460.stable.out
        sql/test/BugTracker-2016/Tests/crash.Bug-6081.stable.out
        
sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out
        sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
        sql/test/BugTracker-2016/Tests/epoch.Bug-3979.stable.out
        sql/test/BugTracker-2016/Tests/fk-smaller-pk.Bug-3983.stable.out
        
sql/test/BugTracker-2016/Tests/group_distinct_quantile.Bug-3927.stable.out
        sql/test/BugTracker-2016/Tests/ifthenelse-void.Bug-6075.stable.out
        sql/test/BugTracker-2016/Tests/isaUUID_function.Bug-3997.stable.out
        
sql/test/BugTracker-2016/Tests/like_in_non_sys_schema.Bug-4062.stable.out
        
sql/test/BugTracker-2016/Tests/min-max-uuid-column-wrong-results.Bug-3953.stable.out
        
sql/test/BugTracker-2016/Tests/name_conflict_in_union.Bug-6065.stable.out
        
sql/test/BugTracker-2016/Tests/nested-mal-with-multiplex.Bug-4035.stable.out
        sql/test/BugTracker-2016/Tests/null_in_null.Bug-3900.stable.out
        
sql/test/BugTracker-2016/Tests/outer_constant_predicate.Bug-4070.stable.out
        sql/test/BugTracker-2016/Tests/storagemodel.stable.out
        sql/test/BugTracker-2016/Tests/storagemodel.stable.out.32bit
        sql/test/BugTracker-2016/Tests/storagemodel.stable.out.int128
        sql/test/BugTracker-2016/Tests/string-length.Bug-3999.stable.out
        sql/test/BugTracker-2016/Tests/subcorr-missing.Bug-3978.stable.out
        sql/test/BugTracker-2016/Tests/union.Bug-6069.stable.out
        
sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937.stable.out
        sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.err
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        
sql/test/BugTracker/Tests/groupby_orderby_nonselected.SF-1723863.stable.err
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        sql/test/BugTracker/Tests/subquery_orderby.SF-1688915.stable.err
        sql/test/leaks/Tests/check1.stable.out.int128
        sql/test/leaks/Tests/check2.stable.out.int128
        sql/test/leaks/Tests/check3.stable.out.int128
        sql/test/leaks/Tests/check4.stable.out.int128
        sql/test/leaks/Tests/check5.stable.out.int128
        sql/test/mapi/Tests/sql_int128.stable.out
        sql/test/mergetables/Tests/mergequery.stable.out
        sql/test/remote/Tests/partition_elim.stable.out
        sql/test/remote/Tests/ssbm.stable.out
        sql/test/remote/Tests/ssbm.stable.out.int128
Branch: default
Log Message:

Merge with Dec2016 branch.


diffs (truncated from 7277 to 300 lines):

diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
@@ -63,14 +63,14 @@ Ready.
 % clob # type
 % 126 # length
 function user.s8_1():void;
-    X_38:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","default_pipe",10);
-    X_0 := sql.mvc();
-    (X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-    X_25 := sql.append(X_0,"sys","ttt","a",X_21);
-    X_30 := sql.append(X_25,"sys","ttt","b",X_22);
-    X_33 := sql.append(X_30,"sys","ttt","c",X_23);
-    X_35 := aggr.count(X_23);
-    sql.affectedRows(X_33,X_35);
+    X_41:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","default_pipe",11);
+    X_3 := sql.mvc();
+    (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
+    X_28 := sql.append(X_3,"sys","ttt","a",X_24);
+    X_33 := sql.append(X_28,"sys","ttt","b",X_25);
+    X_36 := sql.append(X_33,"sys","ttt","c",X_26);
+    X_38 := aggr.count(X_26);
+    sql.affectedRows(X_36,X_38);
 end user.s8_1;
 #inline               actions= 0 time=1 usec 
 #candidates           actions= 1 time=14 usec 
@@ -122,14 +122,14 @@ end user.s8_1;
 % clob # type
 % 126 # length
 function user.s24_1():void;
-    X_38:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","user_1",10);
-    X_0 := sql.mvc();
-    (X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-    X_25 := sql.append(X_0,"sys","ttt","a",X_21);
-    X_30 := sql.append(X_25,"sys","ttt","b",X_22);
-    X_35 := aggr.count(X_23);
-    X_33 := sql.append(X_30,"sys","ttt","c",X_23);
-    sql.affectedRows(X_33,X_35);
+    X_41:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';","user_1",11);
+    X_3 := sql.mvc();
+    (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := 
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
+    X_28 := sql.append(X_3,"sys","ttt","a",X_24);
+    X_33 := sql.append(X_28,"sys","ttt","b",X_25);
+    X_38 := aggr.count(X_26);
+    X_36 := sql.append(X_33,"sys","ttt","c",X_26);
+    sql.affectedRows(X_36,X_38);
 end user.s24_1;
 #inline               actions= 0 time=1 usec 
 #candidates           actions= 1 time=14 usec 
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -722,15 +722,14 @@ makeVarSpace(MalBlkPtr mb)
                VarPtr *new;
                int s = mb->vsize * 2;
 
-               new = (VarPtr *) GDKzalloc(s * sizeof(VarPtr));
+               new = GDKrealloc(mb->var, s * sizeof(VarPtr));
                if (new == NULL) {
                        mb->errors++;
                        showScriptException(GDKout, mb, 0, MAL, "newMalBlk:no 
storage left\n");
                        assert(0);
                        return -1;
                }
-               memcpy((char *) new, (char *) mb->var, sizeof(VarPtr) * 
mb->vtop);
-               GDKfree(mb->var);
+               memset(new + mb->vsize, 0, (s - mb->vsize) * sizeof(VarPtr));
                mb->vsize = s;
                mb->var = new;
        }
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
@@ -29,9 +29,10 @@ Ready.
 % clob # type
 % 82 # length
 function user.s4_1():void;
-    X_11:void := querylog.define("explain select 
fuse(1,2);","sequential_pipe",5);
-    X_3:sht := udf.fuse(1,2);
-    sql.resultSet(".L2","L2","smallint",16,0,7,X_3);
+    X_14:void := querylog.define("explain select 
fuse(1,2);","sequential_pipe",6);
+    X_6:sht := udf.fuse(1,2);
+# querylog.define("explain select fuse(1,2);","sequential_pipe")
+    sql.resultSet(".L2","L2","smallint",16,0,7,X_6);
 end user.s4_1;
 #inline               actions= 0 time=2 usec 
 #candidates           actions= 1 time=12 usec 
@@ -70,9 +71,10 @@ end user.s4_1;
 % clob # type
 % 88 # length
 function user.s6_1():void;
-    X_11:void := querylog.define("explain select 
fuse(1000,2000);","sequential_pipe",5);
-    X_3:int := udf.fuse(1000,2000);
-    sql.resultSet(".L2","L2","int",32,0,7,X_3);
+    X_14:void := querylog.define("explain select 
fuse(1000,2000);","sequential_pipe",6);
+    X_6:int := udf.fuse(1000,2000);
+# querylog.define("explain select fuse(1000,2000);","sequential_pipe")
+    sql.resultSet(".L2","L2","int",32,0,7,X_6);
 end user.s6_1;
 #inline               actions= 0 time=2 usec 
 #candidates           actions= 1 time=10 usec 
@@ -111,9 +113,10 @@ end user.s6_1;
 % clob # type
 % 94 # length
 function user.s8_1():void;
-    X_11:void := querylog.define("explain select 
fuse(1000000,2000000);","sequential_pipe",5);
-    X_3:lng := udf.fuse(1000000,2000000);
-    sql.resultSet(".L2","L2","bigint",64,0,7,X_3);
+    X_14:void := querylog.define("explain select 
fuse(1000000,2000000);","sequential_pipe",6);
+    X_6:lng := udf.fuse(1000000,2000000);
+# querylog.define("explain select fuse(1000000,2000000);","sequential_pipe")
+    sql.resultSet(".L2","L2","bigint",64,0,7,X_6);
 end user.s8_1;
 #inline               actions= 0 time=3 usec 
 #candidates           actions= 1 time=10 usec 
@@ -170,25 +173,25 @@ end user.s8_1;
 % clob # type
 % 97 # length
 function user.s16_1():void;
-    X_42:void := querylog.define("explain select fuse(a,b) from 
udf_fuse;","sequential_pipe",21);
-    X_25 := bat.new(nil:str);
-    X_32 := bat.append(X_25,"sys.L2");
-    X_27 := bat.new(nil:str);
-    X_34 := bat.append(X_27,"L2");
+    X_45:void := querylog.define("explain select fuse(a,b) from 
udf_fuse;","sequential_pipe",22);
     X_28 := bat.new(nil:str);
-    X_36 := bat.append(X_28,"smallint");
-    X_29 := bat.new(nil:int);
-    X_38 := bat.append(X_29,16);
-    X_31 := bat.new(nil:int);
-    X_40 := bat.append(X_31,0);
-    X_0 := sql.mvc();
-    C_1:bat[:oid] := sql.tid(X_0,"sys","udf_fuse");
-    X_4:bat[:bte] := sql.bind(X_0,"sys","udf_fuse","a",0);
-    X_13 := algebra.projection(C_1,X_4);
-    X_14:bat[:bte] := sql.bind(X_0,"sys","udf_fuse","b",0);
-    X_20 := algebra.projection(C_1,X_14);
-    X_21:bat[:sht] := batudf.fuse(X_13,X_20);
-    sql.resultSet(X_32,X_34,X_36,X_38,X_40,X_21);
+    X_35 := bat.append(X_28,"sys.L2");
+    X_30 := bat.new(nil:str);
+    X_37 := bat.append(X_30,"L2");
+    X_31 := bat.new(nil:str);
+    X_39 := bat.append(X_31,"smallint");
+    X_32 := bat.new(nil:int);
+    X_41 := bat.append(X_32,16);
+    X_34 := bat.new(nil:int);
+    X_43 := bat.append(X_34,0);
+    X_3 := sql.mvc();
+    C_4:bat[:oid] := sql.tid(X_3,"sys","udf_fuse");
+    X_7:bat[:bte] := sql.bind(X_3,"sys","udf_fuse","a",0);
+    X_16 := algebra.projection(C_4,X_7);
+    X_17:bat[:bte] := sql.bind(X_3,"sys","udf_fuse","b",0);
+    X_23 := algebra.projection(C_4,X_17);
+    X_24:bat[:sht] := batudf.fuse(X_16,X_23);
+    sql.resultSet(X_35,X_37,X_39,X_41,X_43,X_24);
 end user.s16_1;
 #inline               actions= 0 time=4 usec 
 #candidates           actions= 1 time=19 usec 
@@ -221,25 +224,25 @@ end user.s16_1;
 % clob # type
 % 97 # length
 function user.s18_1():void;
-    X_42:void := querylog.define("explain select fuse(c,d) from 
udf_fuse;","sequential_pipe",21);
-    X_25 := bat.new(nil:str);
-    X_32 := bat.append(X_25,"sys.L2");
-    X_27 := bat.new(nil:str);
-    X_34 := bat.append(X_27,"L2");
+    X_45:void := querylog.define("explain select fuse(c,d) from 
udf_fuse;","sequential_pipe",22);
     X_28 := bat.new(nil:str);
-    X_36 := bat.append(X_28,"int");
-    X_29 := bat.new(nil:int);
-    X_38 := bat.append(X_29,32);
-    X_31 := bat.new(nil:int);
-    X_40 := bat.append(X_31,0);
-    X_0 := sql.mvc();
-    C_1:bat[:oid] := sql.tid(X_0,"sys","udf_fuse");
-    X_4:bat[:sht] := sql.bind(X_0,"sys","udf_fuse","c",0);
-    X_13 := algebra.projection(C_1,X_4);
-    X_14:bat[:sht] := sql.bind(X_0,"sys","udf_fuse","d",0);
-    X_20 := algebra.projection(C_1,X_14);
-    X_21:bat[:int] := batudf.fuse(X_13,X_20);
-    sql.resultSet(X_32,X_34,X_36,X_38,X_40,X_21);
+    X_35 := bat.append(X_28,"sys.L2");
+    X_30 := bat.new(nil:str);
+    X_37 := bat.append(X_30,"L2");
+    X_31 := bat.new(nil:str);
+    X_39 := bat.append(X_31,"int");
+    X_32 := bat.new(nil:int);
+    X_41 := bat.append(X_32,32);
+    X_34 := bat.new(nil:int);
+    X_43 := bat.append(X_34,0);
+    X_3 := sql.mvc();
+    C_4:bat[:oid] := sql.tid(X_3,"sys","udf_fuse");
+    X_7:bat[:sht] := sql.bind(X_3,"sys","udf_fuse","c",0);
+    X_16 := algebra.projection(C_4,X_7);
+    X_17:bat[:sht] := sql.bind(X_3,"sys","udf_fuse","d",0);
+    X_23 := algebra.projection(C_4,X_17);
+    X_24:bat[:int] := batudf.fuse(X_16,X_23);
+    sql.resultSet(X_35,X_37,X_39,X_41,X_43,X_24);
 end user.s18_1;
 #inline               actions= 0 time=2 usec 
 #candidates           actions= 1 time=19 usec 
@@ -272,25 +275,25 @@ end user.s18_1;
 % clob # type
 % 97 # length
 function user.s20_1():void;
-    X_42:void := querylog.define("explain select fuse(e,f) from 
udf_fuse;","sequential_pipe",21);
-    X_25 := bat.new(nil:str);
-    X_32 := bat.append(X_25,"sys.L2");
-    X_27 := bat.new(nil:str);
-    X_34 := bat.append(X_27,"L2");
+    X_45:void := querylog.define("explain select fuse(e,f) from 
udf_fuse;","sequential_pipe",22);
     X_28 := bat.new(nil:str);
-    X_36 := bat.append(X_28,"bigint");
-    X_29 := bat.new(nil:int);
-    X_38 := bat.append(X_29,64);
-    X_31 := bat.new(nil:int);
-    X_40 := bat.append(X_31,0);
-    X_0 := sql.mvc();
-    C_1:bat[:oid] := sql.tid(X_0,"sys","udf_fuse");
-    X_4:bat[:int] := sql.bind(X_0,"sys","udf_fuse","e",0);
-    X_13 := algebra.projection(C_1,X_4);
-    X_14:bat[:int] := sql.bind(X_0,"sys","udf_fuse","f",0);
-    X_20 := algebra.projection(C_1,X_14);
-    X_21:bat[:lng] := batudf.fuse(X_13,X_20);
-    sql.resultSet(X_32,X_34,X_36,X_38,X_40,X_21);
+    X_35 := bat.append(X_28,"sys.L2");
+    X_30 := bat.new(nil:str);
+    X_37 := bat.append(X_30,"L2");
+    X_31 := bat.new(nil:str);
+    X_39 := bat.append(X_31,"bigint");
+    X_32 := bat.new(nil:int);
+    X_41 := bat.append(X_32,64);
+    X_34 := bat.new(nil:int);
+    X_43 := bat.append(X_34,0);
+    X_3 := sql.mvc();
+    C_4:bat[:oid] := sql.tid(X_3,"sys","udf_fuse");
+    X_7:bat[:int] := sql.bind(X_3,"sys","udf_fuse","e",0);
+    X_16 := algebra.projection(C_4,X_7);
+    X_17:bat[:int] := sql.bind(X_3,"sys","udf_fuse","f",0);
+    X_23 := algebra.projection(C_4,X_17);
+    X_24:bat[:lng] := batudf.fuse(X_16,X_23);
+    sql.resultSet(X_35,X_37,X_39,X_41,X_43,X_24);
 end user.s20_1;
 #inline               actions= 0 time=2 usec 
 #candidates           actions= 1 time=18 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
@@ -50,9 +50,10 @@ Ready.
 % clob # type
 % 95 # length
 function user.s4_1():void;
-    X_10:void := querylog.define("explain select 
reverse(\\'MonetDB\\');","sequential_pipe",5);
-    X_2:str := udf.reverse("MonetDB");
-    sql.resultSet(".L2","L2","clob",0,0,4,X_2);
+    X_13:void := querylog.define("explain select 
reverse(\\'MonetDB\\');","sequential_pipe",6);
+    X_5:str := udf.reverse("MonetDB");
+# querylog.define("explain select reverse(\\'MonetDB\\');","sequential_pipe")
+    sql.resultSet(".L2","L2","clob",0,0,4,X_5);
 end user.s4_1;
 #inline               actions= 0 time=2 usec 
 #candidates           actions= 1 time=8 usec 
@@ -109,23 +110,23 @@ end user.s4_1;
 % clob # type
 % 101 # length
 function user.s12_1():void;
-    X_33:void := querylog.define("explain select reverse(x) from 
udf_reverse;","sequential_pipe",19);
-    X_18 := bat.new(nil:str);
-    X_25 := bat.append(X_18,"sys.L2");
-    X_20 := bat.new(nil:str);
-    X_27 := bat.append(X_20,"L2");
+    X_36:void := querylog.define("explain select reverse(x) from 
udf_reverse;","sequential_pipe",20);
     X_21 := bat.new(nil:str);
-    X_29 := bat.append(X_21,"clob");
-    X_22 := bat.new(nil:int);
-    X_31 := bat.append(X_22,0);
-    X_24 := bat.new(nil:int);
-    X_32 := bat.append(X_24,0);
-    X_0 := sql.mvc();
-    C_1:bat[:oid] := sql.tid(X_0,"sys","udf_reverse");
-    X_4:bat[:str] := sql.bind(X_0,"sys","udf_reverse","x",0);
-    X_13 := algebra.projection(C_1,X_4);
-    X_14:bat[:str] := batudf.reverse(X_13);
-    sql.resultSet(X_25,X_27,X_29,X_31,X_32,X_14);
+    X_28 := bat.append(X_21,"sys.L2");
+    X_23 := bat.new(nil:str);
+    X_30 := bat.append(X_23,"L2");
+    X_24 := bat.new(nil:str);
+    X_32 := bat.append(X_24,"clob");
+    X_25 := bat.new(nil:int);
+    X_34 := bat.append(X_25,0);
+    X_27 := bat.new(nil:int);
+    X_35 := bat.append(X_27,0);
+    X_3 := sql.mvc();
+    C_4:bat[:oid] := sql.tid(X_3,"sys","udf_reverse");
+    X_7:bat[:str] := sql.bind(X_3,"sys","udf_reverse","x",0);
+    X_16 := algebra.projection(C_4,X_7);
+    X_17:bat[:str] := batudf.reverse(X_16);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to