Changeset: 983b8e240c9a for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=983b8e240c9a Added Files: sql/test/BugTracker-2016/Tests/assert-on-project.Bug-6078.sql sql/test/BugTracker-2016/Tests/assert-on-project.Bug-6078.stable.err sql/test/BugTracker-2016/Tests/assert-on-project.Bug-6078.stable.out sql/test/BugTracker-2016/Tests/assert-on-push-project-up.Bug-6077.sql sql/test/BugTracker-2016/Tests/assert-on-push-project-up.Bug-6077.stable.err 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.sql sql/test/BugTracker-2016/Tests/assert-on-table-producing-function.Bug-6076.stable.err sql/test/BugTracker-2016/Tests/assert-on-table-producing-function.Bug-6076.stable.out Modified Files: sql/backends/monet5/Tests/pyapi29.stable.out sql/backends/monet5/UDF/cudf/Tests/udf-fuse.stable.out sql/backends/monet5/UDF/cudf/Tests/udf-reverse.stable.out sql/backends/monet5/sql_gencode.c sql/benchmarks/ssbm/Tests/01-explain.stable.out sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/02-explain.stable.out sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/04-explain.stable.out sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/11-explain.stable.out sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/12-explain.stable.out sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/13-explain.stable.out sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128 sql/benchmarks/tpch/Tests/01-explain.stable.out sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/04-explain.stable.out sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit sql/benchmarks/tpch/Tests/05-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 sql/benchmarks/tpch/Tests/06-explain.stable.out sql/benchmarks/tpch/Tests/06-explain.stable.out.int128 sql/benchmarks/tpch/Tests/07-explain.stable.out sql/benchmarks/tpch/Tests/07-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-explain.stable.out sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/09-explain.stable.out sql/benchmarks/tpch/Tests/09-explain.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/11-explain.stable.out sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 sql/benchmarks/tpch/Tests/13-explain.stable.out sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 sql/benchmarks/tpch/Tests/15-explain.stable.out sql/benchmarks/tpch/Tests/15-explain.stable.out.int128 sql/benchmarks/tpch/Tests/16-explain.stable.out sql/benchmarks/tpch/Tests/16-explain.stable.out.32bit sql/benchmarks/tpch/Tests/17-explain.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/18-explain.stable.out sql/benchmarks/tpch/Tests/18-explain.stable.out.int128 sql/benchmarks/tpch/Tests/19-explain.stable.out sql/benchmarks/tpch/Tests/19-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-explain.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out.32bit sql/benchmarks/tpch/Tests/20-explain.stable.out.int128 sql/benchmarks/tpch/Tests/21-explain.stable.out sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit sql/benchmarks/tpch/Tests/22-explain.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit sql/benchmarks/tpch/Tests/22-explain.stable.out.int128 sql/server/rel_exp.c sql/server/rel_exp.h sql/server/rel_select.c sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out sql/test/BugTracker-2009/Tests/error_while_drop_func_returns_table_type.SF-2604573.stable.out sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.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-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit sql/test/BugTracker-2011/Tests/UDF_in_schema.Bug-2817.stable.out sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out sql/test/BugTracker-2012/Tests/mal_syntax_error.Bug-2949.stable.out sql/test/BugTracker-2012/Tests/querycache.Bug-3212.stable.out sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out 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/useless_casts.Bug-3756.stable.out sql/test/BugTracker-2016/Tests/All sql/test/BugTracker-2016/Tests/outer_constant_predicate.Bug-4070.sql sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out.32bit sql/test/mergetables/Tests/mergequery.stable.out Branch: Dec2016 Log Message:
merged with Dec2016 diffs (truncated from 930 to 300 lines): diff --git a/sql/backends/monet5/Tests/pyapi29.stable.out b/sql/backends/monet5/Tests/pyapi29.stable.out --- a/sql/backends/monet5/Tests/pyapi29.stable.out +++ b/sql/backends/monet5/Tests/pyapi29.stable.out @@ -76,11 +76,11 @@ Ready. # return result #}; #SELECT * FROM myfunc(); -% . # table_name +% .L1 # table_name % n # name % clob # type % 20 # length -[ "{'L5': array([ 5.])}" ] +[ "{'L6': array([ 5.])}" ] #DROP TABLE mytable; #DROP FUNCTION myfunc; #ROLLBACK; diff --git a/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit b/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit --- a/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit +++ b/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit @@ -113,17 +113,17 @@ function user.s2_1(A0:bte,A1:bte,A2:bte, C_7:bat[:oid] := sql.tid(X_6,"sys","lineitem"); X_18:date := mtime.date_sub_msec_interval(A3,A4); C_198 := algebra.thetasubselect(X_10,C_7,X_18,"<="); - (C_13,r1_13) := sql.bind(X_6,"sys","lineitem","l_shipdate",2); + (C_13:bat[:oid],r1_13:bat[:date]) := sql.bind(X_6,"sys","lineitem","l_shipdate",2); C_199 := algebra.thetasubselect(r1_13,nil:bat[:oid],X_18,"<="); X_16:bat[:date] := sql.bind(X_6,"sys","lineitem","l_shipdate",1); C_201 := algebra.thetasubselect(X_16,C_7,X_18,"<="); C_19 := sql.subdelta(C_198,C_7,C_13,C_199,C_201); X_21:bat[:str] := sql.bind(X_6,"sys","lineitem","l_linestatus",0); - (C_23,r1_27) := sql.bind(X_6,"sys","lineitem","l_linestatus",2); + (C_23:bat[:oid],r1_27:bat[:str]) := sql.bind(X_6,"sys","lineitem","l_linestatus",2); X_25:bat[:str] := sql.bind(X_6,"sys","lineitem","l_linestatus",1); X_26 := sql.projectdelta(C_19,X_21,C_23,r1_27,X_25); X_27:bat[:str] := sql.bind(X_6,"sys","lineitem","l_returnflag",0); - (C_29,r1_35) := sql.bind(X_6,"sys","lineitem","l_returnflag",2); + (C_29:bat[:oid],r1_35:bat[:str]) := sql.bind(X_6,"sys","lineitem","l_returnflag",2); X_31:bat[:str] := sql.bind(X_6,"sys","lineitem","l_returnflag",1); X_32 := sql.projectdelta(C_19,X_27,C_29,r1_35,X_31); (X_33,r1_41,r2_41) := group.subgroup(X_32); diff --git a/sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit b/sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit --- a/sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit +++ b/sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit @@ -71,40 +71,40 @@ function user.s2_1(A0:date,A1:date,A2:in X_4 := sql.mvc(); C_5:bat[:oid] := sql.tid(X_4,"sys","orders"); X_8:bat[:date] := sql.bind(X_4,"sys","orders","o_orderdate",0); - (C_11,r1_11) := sql.bind(X_4,"sys","orders","o_orderdate",2); + (C_11:bat[:oid],r1_11:bat[:date]) := sql.bind(X_4,"sys","orders","o_orderdate",2); X_14:bat[:date] := sql.bind(X_4,"sys","orders","o_orderdate",1); X_16 := sql.delta(X_8,C_11,r1_11,X_14); X_17 := algebra.projection(C_5,X_16); X_18:date := mtime.addmonths(A1,A2); C_19 := algebra.subselect(X_17,A0,X_18,true,false,false); X_22:bat[:int] := sql.bind(X_4,"sys","orders","o_orderkey",0); - (C_24,r1_28) := sql.bind(X_4,"sys","orders","o_orderkey",2); + (C_24:bat[:oid],r1_28:bat[:int]) := sql.bind(X_4,"sys","orders","o_orderkey",2); X_26:bat[:int] := sql.bind(X_4,"sys","orders","o_orderkey",1); X_27 := sql.delta(X_22,C_24,r1_28,X_26); X_28:bat[:int] := algebra.projectionpath(C_19,C_5,X_27); X_29 := bat.mirror(X_28); C_30:bat[:oid] := sql.tid(X_4,"sys","lineitem"); X_32:bat[:date] := sql.bind(X_4,"sys","lineitem","l_commitdate",0); - (C_34,r1_39) := sql.bind(X_4,"sys","lineitem","l_commitdate",2); + (C_34:bat[:oid],r1_39:bat[:date]) := sql.bind(X_4,"sys","lineitem","l_commitdate",2); X_36:bat[:date] := sql.bind(X_4,"sys","lineitem","l_commitdate",1); X_37 := sql.delta(X_32,C_34,r1_39,X_36); X_38 := algebra.projection(C_30,X_37); X_39:bat[:date] := sql.bind(X_4,"sys","lineitem","l_receiptdate",0); - (C_41,r1_46) := sql.bind(X_4,"sys","lineitem","l_receiptdate",2); + (C_41:bat[:oid],r1_46:bat[:date]) := sql.bind(X_4,"sys","lineitem","l_receiptdate",2); X_43:bat[:date] := sql.bind(X_4,"sys","lineitem","l_receiptdate",1); X_44 := sql.delta(X_39,C_41,r1_46,X_43); X_45 := algebra.projection(C_30,X_44); X_46:bat[:bit] := batcalc.<(X_38,X_45); C_47 := algebra.subselect(X_46,true,true,true,true,false); X_48:bat[:int] := sql.bind(X_4,"sys","lineitem","l_orderkey",0); - (C_50,r1_57) := sql.bind(X_4,"sys","lineitem","l_orderkey",2); + (C_50:bat[:oid],r1_57:bat[:int]) := sql.bind(X_4,"sys","lineitem","l_orderkey",2); X_52:bat[:int] := sql.bind(X_4,"sys","lineitem","l_orderkey",1); X_53 := sql.delta(X_48,C_50,r1_57,X_52); X_54:bat[:int] := algebra.projectionpath(C_47,C_30,X_53); (X_55,r1_63) := algebra.subjoin(X_28,X_54,nil:BAT,nil:BAT,false,nil:lng); C_59 := algebra.subinter(X_29,X_55,nil:BAT,nil:BAT,false,nil:lng); X_60:bat[:str] := sql.bind(X_4,"sys","orders","o_orderpriority",0); - (C_62,r1_72) := sql.bind(X_4,"sys","orders","o_orderpriority",2); + (C_62:bat[:oid],r1_72:bat[:str]) := sql.bind(X_4,"sys","orders","o_orderpriority",2); X_64:bat[:str] := sql.bind(X_4,"sys","orders","o_orderpriority",1); X_65 := sql.delta(X_60,C_62,r1_72,X_64); X_66:bat[:str] := algebra.projectionpath(C_59,C_19,C_5,X_65); diff --git a/sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit b/sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit --- a/sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit +++ b/sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit @@ -78,19 +78,19 @@ function user.s2_1(A0:str):void; X_20 := algebra.projection(C_9,X_19); (X_21,r1_21) := algebra.subjoin(C_6,X_20,nil:BAT,nil:BAT,false,nil:lng); X_26:bat[:str] := sql.bind(X_2,"sys","orders","o_comment",0); - (C_28,r1_29) := sql.bind(X_2,"sys","orders","o_comment",2); + (C_28:bat[:oid],r1_29:bat[:str]) := sql.bind(X_2,"sys","orders","o_comment",2); X_30:bat[:str] := sql.bind(X_2,"sys","orders","o_comment",1); X_31 := sql.delta(X_26,C_28,r1_29,X_30); X_32:bat[:str] := algebra.projectionpath(r1_21,C_9,X_31); C_34 := algebra.likesubselect(X_32,nil:BAT,A0,"",true); X_36:bat[:int] := sql.bind(X_2,"sys","orders","o_orderkey",0); - (C_38,r1_43) := sql.bind(X_2,"sys","orders","o_orderkey",2); + (C_38:bat[:oid],r1_43:bat[:int]) := sql.bind(X_2,"sys","orders","o_orderkey",2); X_40:bat[:int] := sql.bind(X_2,"sys","orders","o_orderkey",1); X_41 := sql.delta(X_36,C_38,r1_43,X_40); X_42:bat[:int] := algebra.projectionpath(C_34,r1_21,C_9,X_41); X_43 := bat.append(X_3,X_42,true); X_44:bat[:int] := sql.bind(X_2,"sys","customer","c_custkey",0); - (C_46,r1_52) := sql.bind(X_2,"sys","customer","c_custkey",2); + (C_46:bat[:oid],r1_52:bat[:int]) := sql.bind(X_2,"sys","customer","c_custkey",2); X_48:bat[:int] := sql.bind(X_2,"sys","customer","c_custkey",1); X_49 := sql.delta(X_44,C_46,r1_52,X_48); X_50 := algebra.projection(C_6,X_49); diff --git a/sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit b/sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit --- a/sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit +++ b/sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit @@ -81,12 +81,12 @@ function user.s2_1(A0:str,A1:str):void; X_3 := sql.mvc(); C_4:bat[:oid] := sql.tid(X_3,"sys","lineitem"); X_7:bat[:date] := sql.bind(X_3,"sys","lineitem","l_receiptdate",0); - (C_10,r1_10) := sql.bind(X_3,"sys","lineitem","l_receiptdate",2); + (C_10:bat[:oid],r1_10:bat[:date]) := sql.bind(X_3,"sys","lineitem","l_receiptdate",2); X_13:bat[:date] := sql.bind(X_3,"sys","lineitem","l_receiptdate",1); X_15 := sql.delta(X_7,C_10,r1_10,X_13); X_16 := algebra.projection(C_4,X_15); X_17:bat[:date] := sql.bind(X_3,"sys","lineitem","l_commitdate",0); - (C_19,r1_19) := sql.bind(X_3,"sys","lineitem","l_commitdate",2); + (C_19:bat[:oid],r1_19:bat[:date]) := sql.bind(X_3,"sys","lineitem","l_commitdate",2); X_21:bat[:date] := sql.bind(X_3,"sys","lineitem","l_commitdate",1); X_22 := sql.delta(X_17,C_19,r1_19,X_21); X_23 := algebra.projection(C_4,X_22); @@ -99,7 +99,7 @@ function user.s2_1(A0:str,A1:str):void; X_34:bat[:oid] := algebra.projectionpath(C_25,C_4,X_33); C_35:bat[:oid] := sql.tid(X_3,"sys","orders"); X_37:bat[:str] := sql.bind(X_3,"sys","orders","o_orderstatus",0); - (C_39,r1_43) := sql.bind(X_3,"sys","orders","o_orderstatus",2); + (C_39:bat[:oid],r1_43:bat[:str]) := sql.bind(X_3,"sys","orders","o_orderstatus",2); X_41:bat[:str] := sql.bind(X_3,"sys","orders","o_orderstatus",1); X_42 := sql.delta(X_37,C_39,r1_43,X_41); X_43 := algebra.projection(C_35,X_42); @@ -107,7 +107,7 @@ function user.s2_1(A0:str,A1:str):void; X_45 := algebra.projection(C_44,C_35); (X_46,r1_51) := algebra.subjoin(X_34,X_45,nil:BAT,nil:BAT,false,nil:lng); X_50:bat[:int] := sql.bind(X_3,"sys","lineitem","l_suppkey",0); - (C_52,r1_58) := sql.bind(X_3,"sys","lineitem","l_suppkey",2); + (C_52:bat[:oid],r1_58:bat[:int]) := sql.bind(X_3,"sys","lineitem","l_suppkey",2); X_54:bat[:int] := sql.bind(X_3,"sys","lineitem","l_suppkey",1); X_55 := sql.delta(X_50,C_52,r1_58,X_54); X_56 := algebra.projection(C_4,X_55); @@ -115,7 +115,7 @@ function user.s2_1(A0:str,A1:str):void; X_58 := algebra.projection(X_46,X_57); C_59:bat[:oid] := sql.tid(X_3,"sys","supplier"); X_61:bat[:int] := sql.bind(X_3,"sys","supplier","s_suppkey",0); - (C_63,r1_69) := sql.bind(X_3,"sys","supplier","s_suppkey",2); + (C_63:bat[:oid],r1_69:bat[:int]) := sql.bind(X_3,"sys","supplier","s_suppkey",2); X_65:bat[:int] := sql.bind(X_3,"sys","supplier","s_suppkey",1); X_66 := sql.delta(X_61,C_63,r1_69,X_65); X_67 := algebra.projection(C_59,X_66); @@ -127,7 +127,7 @@ function user.s2_1(A0:str,A1:str):void; X_76:bat[:oid] := algebra.projectionpath(r1_74,C_59,X_75); C_77:bat[:oid] := sql.tid(X_3,"sys","nation"); X_79:bat[:str] := sql.bind(X_3,"sys","nation","n_name",0); - (C_81,r1_89) := sql.bind(X_3,"sys","nation","n_name",2); + (C_81:bat[:oid],r1_89:bat[:str]) := sql.bind(X_3,"sys","nation","n_name",2); X_83:bat[:str] := sql.bind(X_3,"sys","nation","n_name",1); X_84 := sql.delta(X_79,C_81,r1_89,X_83); X_85 := algebra.projection(C_77,X_84); @@ -137,7 +137,7 @@ function user.s2_1(A0:str,A1:str):void; X_90:bat[:int] := algebra.projectionpath(X_88,r1_74,X_67); X_91 := bat.mirror(X_90); X_92:bat[:int] := sql.bind(X_3,"sys","lineitem","l_orderkey",0); - (C_94,r1_108) := sql.bind(X_3,"sys","lineitem","l_orderkey",2); + (C_94:bat[:oid],r1_108:bat[:int]) := sql.bind(X_3,"sys","lineitem","l_orderkey",2); X_96:bat[:int] := sql.bind(X_3,"sys","lineitem","l_orderkey",1); X_97 := sql.delta(X_92,C_94,r1_108,X_96); X_98 := algebra.projection(C_4,X_97); @@ -162,7 +162,7 @@ function user.s2_1(A0:str,A1:str):void; X_119 := algebra.projection(C_118,X_113); X_120 := algebra.subdiff(X_111,X_119,nil:BAT,nil:BAT,false,nil:lng); X_121:bat[:str] := sql.bind(X_3,"sys","supplier","s_name",0); - (C_123,r1_202) := sql.bind(X_3,"sys","supplier","s_name",2); + (C_123:bat[:oid],r1_202:bat[:str]) := sql.bind(X_3,"sys","supplier","s_name",2); X_125:bat[:str] := sql.bind(X_3,"sys","supplier","s_name",1); X_126 := sql.delta(X_121,C_123,r1_202,X_125); X_127:bat[:str] := algebra.projectionpath(X_120,C_109,X_88,r1_74,C_59,X_126); diff --git a/sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit b/sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit --- a/sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit +++ b/sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit @@ -82,7 +82,7 @@ function user.s2_1(A0:int,A1:int,A2:int, X_22 := sql.mvc(); C_23:bat[:oid] := sql.tid(X_22,"sys","customer"); X_26:bat[:str] := sql.bind(X_22,"sys","customer","c_phone",0); - (C_29,r1_29) := sql.bind(X_22,"sys","customer","c_phone",2); + (C_29:bat[:oid],r1_29:bat[:str]) := sql.bind(X_22,"sys","customer","c_phone",2); X_32:bat[:str] := sql.bind(X_22,"sys","customer","c_phone",1); X_34 := sql.delta(X_26,C_29,r1_29,X_32); X_35 := algebra.projection(C_23,X_34); @@ -101,13 +101,13 @@ function user.s2_1(A0:int,A1:int,A2:int, C_50 := algebra.subselect(X_36,A10,A10,true,false,false); X_51 := bat.mergecand(X_49,C_50); X_52:bat[:int] := sql.bind(X_22,"sys","customer","c_custkey",0); - (C_54,r1_66) := sql.bind(X_22,"sys","customer","c_custkey",2); + (C_54:bat[:oid],r1_66:bat[:int]) := sql.bind(X_22,"sys","customer","c_custkey",2); X_56:bat[:int] := sql.bind(X_22,"sys","customer","c_custkey",1); X_57 := sql.delta(X_52,C_54,r1_66,X_56); X_58:bat[:int] := algebra.projectionpath(X_51,C_23,X_57); X_59 := bat.mirror(X_58); X_60:bat[:lng] := sql.bind(X_22,"sys","customer","c_acctbal",0); - (C_62,r1_75) := sql.bind(X_22,"sys","customer","c_acctbal",2); + (C_62:bat[:oid],r1_75:bat[:lng]) := sql.bind(X_22,"sys","customer","c_acctbal",2); X_64:bat[:lng] := sql.bind(X_22,"sys","customer","c_acctbal",1); X_65 := sql.delta(X_60,C_62,r1_75,X_64); X_66 := algebra.projection(C_23,X_65); @@ -139,7 +139,7 @@ function user.s2_1(A0:int,A1:int,A2:int, X_97 := bat.mirror(X_96); C_98:bat[:oid] := sql.tid(X_22,"sys","orders"); X_100:bat[:int] := sql.bind(X_22,"sys","orders","o_custkey",0); - (C_102,r1_155) := sql.bind(X_22,"sys","orders","o_custkey",2); + (C_102:bat[:oid],r1_155:bat[:int]) := sql.bind(X_22,"sys","orders","o_custkey",2); X_104:bat[:int] := sql.bind(X_22,"sys","orders","o_custkey",1); X_105 := sql.delta(X_100,C_102,r1_155,X_104); X_106 := algebra.projection(C_98,X_105); diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -615,14 +615,19 @@ exp_setrelname(sql_allocator *sa, sql_ex e->rname = sa_strdup(sa, nme); } -sql_exp* -exp_label(sql_allocator *sa, sql_exp *e, int nr) +char * +make_label(sql_allocator *sa, int nr) { char name[16], *nme; nme = number2name(name, 16, nr); - e->name = sa_strdup(sa, nme); - e->rname = sa_strdup(sa, nme); + return sa_strdup(sa, nme); +} + +sql_exp* +exp_label(sql_allocator *sa, sql_exp *e, int nr) +{ + e->rname = e->name = make_label(sa, nr); return e; } diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h --- a/sql/server/rel_exp.h +++ b/sql/server/rel_exp.h @@ -84,6 +84,7 @@ extern void exp_setname(sql_allocator *s extern void exp_setrelname(sql_allocator *sa, sql_exp *e, int nr ); extern void noninternexp_setname(sql_allocator *sa, sql_exp *e, const char *rname, const char *name ); +extern char* make_label(sql_allocator *sa, int nr); extern sql_exp* exp_label(sql_allocator *sa, sql_exp *e, int nr); extern sql_exp * exp_copy( sql_allocator *sa, sql_exp *e); diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -641,6 +641,8 @@ rel_named_table_function(mvc *sql, sql_r if (query->data.lval->h->next->data.sym) tname = query->data.lval->h->next->data.sym->data.lval->h->data.sval; + else + tname = make_label(sql->sa, ++sql->label); /* column or table function */ sf = e->f; diff --git a/sql/test/BugTracker-2009/Tests/error_while_drop_func_returns_table_type.SF-2604573.stable.out b/sql/test/BugTracker-2009/Tests/error_while_drop_func_returns_table_type.SF-2604573.stable.out --- a/sql/test/BugTracker-2009/Tests/error_while_drop_func_returns_table_type.SF-2604573.stable.out +++ b/sql/test/BugTracker-2009/Tests/error_while_drop_func_returns_table_type.SF-2604573.stable.out @@ -24,13 +24,35 @@ Ready. # 00:56:20 > mclient -lsql -umonetdb -Pmonetdb --host=alviss --port=35664 # 00:56:20 > -% . # table_name +# 14:45:08 > +# 14:45:08 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-2914" "--port=33884" +# 14:45:08 > + +#start transaction; +#create function test_002() returns table(i int) +#begin +#declare table tbl(i int); +#insert into tbl values(110); +#insert into tbl values(210); +#return tbl; +#end; +#select * from test_002(); +% .L1 # table_name % i # name % int # type _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list