Changeset: ace788ab38e4 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ace788ab38e4 Modified Files: sql/backends/monet5/UDF/Tests/udf-fuse.stable.out sql/backends/monet5/UDF/Tests/udf-reverse.stable.out sql/backends/monet5/sql_gencode.c sql/benchmarks/tpch/Tests/01-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/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/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/17-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/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out 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/mapi/Tests/sql_int128.stable.out Branch: Jul2015 Log Message:
backported rapi fixes diffs (truncated from 562 to 300 lines): diff --git a/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out b/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out --- a/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out +++ b/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out @@ -30,7 +30,7 @@ Ready. % 82 # length function user.s2_1{autoCommit=true}(A0:bte,A1:bte):void; X_12:void := querylog.define("explain select fuse(1,2);","sequential_pipe",5); - X_4 := udf.fuse(A0,A1); + X_4:sht := udf.fuse(A0,A1); sql.resultSet(".L","fuse_single_value","smallint",16,0,7,X_4); end user.s2_1; #select fuse(1,2); @@ -46,7 +46,7 @@ end user.s2_1; % 88 # length function user.s3_1{autoCommit=true}(A0:sht,A1:sht):void; X_12:void := querylog.define("explain select fuse(1000,2000);","sequential_pipe",5); - X_4 := udf.fuse(A0,A1); + X_4:int := udf.fuse(A0,A1); sql.resultSet(".L","fuse_single_value","int",32,0,7,X_4); end user.s3_1; #select fuse(1000,2000); @@ -62,7 +62,7 @@ end user.s3_1; % 94 # length function user.s4_1{autoCommit=true}(A0:int,A1:int):void; X_12:void := querylog.define("explain select fuse(1000000,2000000);","sequential_pipe",5); - X_4 := udf.fuse(A0,A1); + X_4:lng := udf.fuse(A0,A1); sql.resultSet(".L","fuse_single_value","bigint",64,0,7,X_4); end user.s4_1; #select fuse(1000000,2000000); diff --git a/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out b/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out --- a/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out +++ b/sql/backends/monet5/UDF/Tests/udf-reverse.stable.out @@ -51,7 +51,7 @@ Ready. % 95 # length function user.s2_1{autoCommit=true}(A0:str):void; X_10:void := querylog.define("explain select reverse(\\'MonetDB\\');","sequential_pipe",5); - X_3 := udf.reverse(A0); + X_3:str := udf.reverse(A0); sql.resultSet(".L","reverse_single_value","clob",0,0,4,X_3); end user.s2_1; #select reverse('MonetDB'); diff --git a/sql/backends/monet5/sql_gencode.c b/sql/backends/monet5/sql_gencode.c --- a/sql/backends/monet5/sql_gencode.c +++ b/sql/backends/monet5/sql_gencode.c @@ -1986,7 +1986,13 @@ static int } else { fimp = convertOperator(fimp); q = newStmt(mb, mod, fimp); + + if (f->res && list_length(f->res)) { + sql_subtype *res = f->res->h->data; + setVarType(mb, getArg(q, 0), res->type->localtype); + setVarUDFtype(mb, getArg(q, 0)); + } } if (LANG_EXT(f->func->lang)) q = pushPtr(mb, q, f->func); diff --git a/sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 b/sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 @@ -111,7 +111,7 @@ function user.s2_1{autoCommit=true}(A0:b X_7 := sql.mvc(); X_11:bat[:oid,:date] := sql.bind(X_7,"sys","lineitem","l_shipdate",0); X_8:bat[:oid,:oid] := sql.tid(X_7,"sys","lineitem"); - X_19 := mtime.date_sub_msec_interval(A3,A4); + X_19:date := mtime.date_sub_msec_interval(A3,A4); X_229 := algebra.thetasubselect(X_11,X_8,X_19,"<="); (X_14,r1_14) := sql.bind(X_7,"sys","lineitem","l_shipdate",2); X_230 := algebra.thetasubselect(r1_14,nil:bat[:oid,:oid],X_19,"<="); diff --git a/sql/benchmarks/tpch/Tests/04-explain.stable.out b/sql/benchmarks/tpch/Tests/04-explain.stable.out --- a/sql/benchmarks/tpch/Tests/04-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/04-explain.stable.out @@ -75,7 +75,7 @@ function user.s2_1{autoCommit=true}(A0:d X_15:bat[:oid,:date] := sql.bind(X_5,"sys","orders","o_orderdate",1); X_17 := sql.delta(X_9,X_12,r1_12,X_15); X_18 := algebra.leftfetchjoin(X_6,X_17); - X_19 := mtime.addmonths(A1,A2); + X_19:date := mtime.addmonths(A1,A2); X_20 := algebra.subselect(X_18,A0,X_19,true,false,false); X_22:bat[:oid,:int] := sql.bind(X_5,"sys","orders","o_orderkey",0); (X_24,r1_27) := sql.bind(X_5,"sys","orders","o_orderkey",2); 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 @@ -75,7 +75,7 @@ function user.s2_1{autoCommit=true}(A0:d X_15:bat[:oid,:date] := sql.bind(X_5,"sys","orders","o_orderdate",1); X_17 := sql.delta(X_9,X_12,r1_12,X_15); X_18 := algebra.leftfetchjoin(X_6,X_17); - X_19 := mtime.addmonths(A1,A2); + X_19:date := mtime.addmonths(A1,A2); X_20 := algebra.subselect(X_18,A0,X_19,true,false,false); X_22:bat[:oid,:int] := sql.bind(X_5,"sys","orders","o_orderkey",0); (X_24,r1_27) := sql.bind(X_5,"sys","orders","o_orderkey",2); diff --git a/sql/benchmarks/tpch/Tests/05-explain.stable.out b/sql/benchmarks/tpch/Tests/05-explain.stable.out --- a/sql/benchmarks/tpch/Tests/05-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/05-explain.stable.out @@ -74,7 +74,7 @@ function user.s2_1{autoCommit=true}(A0:b X_7 := sql.mvc(); X_11:bat[:oid,:date] := sql.bind(X_7,"sys","orders","o_orderdate",0); X_8:bat[:oid,:oid] := sql.tid(X_7,"sys","orders"); - X_19 := mtime.addmonths(A3,A4); + X_19:date := mtime.addmonths(A3,A4); X_258 := algebra.subselect(X_11,X_8,A2,X_19,true,false,false); (X_14,r1_14) := sql.bind(X_7,"sys","orders","o_orderdate",2); X_259 := algebra.subselect(r1_14,nil:bat[:oid,:oid],A2,X_19,true,false,false); diff --git a/sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit b/sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit --- a/sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit +++ b/sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit @@ -74,7 +74,7 @@ function user.s2_1{autoCommit=true}(A0:b X_7 := sql.mvc(); X_11:bat[:oid,:date] := sql.bind(X_7,"sys","orders","o_orderdate",0); X_8:bat[:oid,:oid] := sql.tid(X_7,"sys","orders"); - X_19 := mtime.addmonths(A3,A4); + X_19:date := mtime.addmonths(A3,A4); X_258 := algebra.subselect(X_11,X_8,A2,X_19,true,false,false); (X_14,r1_14) := sql.bind(X_7,"sys","orders","o_orderdate",2); X_259 := algebra.subselect(r1_14,nil:bat[:oid,:oid],A2,X_19,true,false,false); diff --git a/sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 b/sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 @@ -74,7 +74,7 @@ function user.s2_1{autoCommit=true}(A0:b X_7 := sql.mvc(); X_11:bat[:oid,:date] := sql.bind(X_7,"sys","orders","o_orderdate",0); X_8:bat[:oid,:oid] := sql.tid(X_7,"sys","orders"); - X_19 := mtime.addmonths(A3,A4); + X_19:date := mtime.addmonths(A3,A4); X_258 := algebra.subselect(X_11,X_8,A2,X_19,true,false,false); (X_14,r1_14) := sql.bind(X_7,"sys","orders","o_orderdate",2); X_259 := algebra.subselect(r1_14,nil:bat[:oid,:oid],A2,X_19,true,false,false); diff --git a/sql/benchmarks/tpch/Tests/06-explain.stable.out b/sql/benchmarks/tpch/Tests/06-explain.stable.out --- a/sql/benchmarks/tpch/Tests/06-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/06-explain.stable.out @@ -46,7 +46,7 @@ function user.s2_1{autoCommit=true}(A0:d X_24:bat[:oid,:lng] := sql.bind(X_10,"sys","lineitem","l_discount",0); X_36:bat[:oid,:date] := sql.bind(X_10,"sys","lineitem","l_shipdate",0); X_11:bat[:oid,:oid] := sql.tid(X_10,"sys","lineitem"); - X_46 := mtime.addmonths(A1,A2); + X_46:date := mtime.addmonths(A1,A2); X_85 := algebra.subselect(X_36,X_11,A0,X_46,true,false,false); (X_41,r1_50) := sql.bind(X_10,"sys","lineitem","l_shipdate",2); X_86 := algebra.subselect(r1_50,nil:bat[:oid,:oid],A0,X_46,true,false,false); @@ -54,10 +54,10 @@ function user.s2_1{autoCommit=true}(A0:d X_88 := algebra.subselect(X_44,X_11,A0,X_46,true,false,false); X_47 := sql.subdelta(X_85,X_11,X_41,X_86,X_88); X_29 := calc.sht(2,A3,3,2); - X_31 := calc.-(X_29,A4); + X_31:sht := calc.-(X_29,A4); X_32 := calc.lng(2,X_31,15,2); X_33 := calc.sht(2,A5,3,2); - X_34 := calc.+(X_33,A6); + X_34:sht := calc.+(X_33,A6); X_35 := calc.lng(2,X_34,15,2); X_89 := algebra.subselect(X_24,X_47,X_32,X_35,true,true,false); (X_26,r1_29) := sql.bind(X_10,"sys","lineitem","l_discount",2); diff --git a/sql/benchmarks/tpch/Tests/06-explain.stable.out.int128 b/sql/benchmarks/tpch/Tests/06-explain.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/06-explain.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/06-explain.stable.out.int128 @@ -46,7 +46,7 @@ function user.s2_1{autoCommit=true}(A0:d X_24:bat[:oid,:lng] := sql.bind(X_10,"sys","lineitem","l_discount",0); X_36:bat[:oid,:date] := sql.bind(X_10,"sys","lineitem","l_shipdate",0); X_11:bat[:oid,:oid] := sql.tid(X_10,"sys","lineitem"); - X_46 := mtime.addmonths(A1,A2); + X_46:date := mtime.addmonths(A1,A2); X_85 := algebra.subselect(X_36,X_11,A0,X_46,true,false,false); (X_41,r1_50) := sql.bind(X_10,"sys","lineitem","l_shipdate",2); X_86 := algebra.subselect(r1_50,nil:bat[:oid,:oid],A0,X_46,true,false,false); @@ -54,10 +54,10 @@ function user.s2_1{autoCommit=true}(A0:d X_88 := algebra.subselect(X_44,X_11,A0,X_46,true,false,false); X_47 := sql.subdelta(X_85,X_11,X_41,X_86,X_88); X_29 := calc.sht(2,A3,3,2); - X_31 := calc.-(X_29,A4); + X_31:sht := calc.-(X_29,A4); X_32 := calc.lng(2,X_31,15,2); X_33 := calc.sht(2,A5,3,2); - X_34 := calc.+(X_33,A6); + X_34:sht := calc.+(X_33,A6); X_35 := calc.lng(2,X_34,15,2); X_89 := algebra.subselect(X_24,X_47,X_32,X_35,true,true,false); (X_26,r1_29) := sql.bind(X_10,"sys","lineitem","l_discount",2); diff --git a/sql/benchmarks/tpch/Tests/10-explain.stable.out b/sql/benchmarks/tpch/Tests/10-explain.stable.out --- a/sql/benchmarks/tpch/Tests/10-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/10-explain.stable.out @@ -124,7 +124,7 @@ function user.s2_1{autoCommit=true}(A0:b X_26 := sql.projectdelta(X_19,X_21,X_23,r1_26,X_25); X_29:bat[:oid,:date] := sql.bind(X_7,"sys","orders","o_orderdate",0); X_27:bat[:oid,:oid] := sql.tid(X_7,"sys","orders"); - X_34 := mtime.addmonths(A2,A3); + X_34:date := mtime.addmonths(A2,A3); X_299 := algebra.subselect(X_29,X_27,A1,X_34,true,false,false); (X_31,r1_36) := sql.bind(X_7,"sys","orders","o_orderdate",2); X_300 := algebra.subselect(r1_36,nil:bat[:oid,:oid],A1,X_34,true,false,false); diff --git a/sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 b/sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 @@ -124,7 +124,7 @@ function user.s2_1{autoCommit=true}(A0:b X_26 := sql.projectdelta(X_19,X_21,X_23,r1_26,X_25); X_29:bat[:oid,:date] := sql.bind(X_7,"sys","orders","o_orderdate",0); X_27:bat[:oid,:oid] := sql.tid(X_7,"sys","orders"); - X_34 := mtime.addmonths(A2,A3); + X_34:date := mtime.addmonths(A2,A3); X_299 := algebra.subselect(X_29,X_27,A1,X_34,true,false,false); (X_31,r1_36) := sql.bind(X_7,"sys","orders","o_orderdate",2); X_300 := algebra.subselect(r1_36,nil:bat[:oid,:oid],A1,X_34,true,false,false); diff --git a/sql/benchmarks/tpch/Tests/11-explain.stable.out b/sql/benchmarks/tpch/Tests/11-explain.stable.out --- a/sql/benchmarks/tpch/Tests/11-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/11-explain.stable.out @@ -115,7 +115,7 @@ function user.s2_1{autoCommit=true}(A0:s X_61 := algebra.leftfetchjoin(r1_60,X_57); X_82:bat[:oid,:lng] := aggr.subsum(X_81,X_58,r1_60,true,true); X_62 := bat.mirror(X_61); - X_101 := sql.dec_round(X_99,100); + X_101:hge := sql.dec_round(X_99,100); X_117 := bat.new(nil:oid,nil:str); X_125 := bat.append(X_117,"sys.partsupp"); X_135 := bat.append(X_125,"sys.L1"); diff --git a/sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 b/sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 @@ -97,7 +97,7 @@ function user.s2_1{autoCommit=true}(A0:s X_96 := algebra.leftfetchjoin(r1_131,X_79); X_97:bat[:oid,:hge] := batcalc.*(X_95,X_96); X_98:hge := aggr.sum(X_97); - X_99 := calc.*(X_98,A1); + X_99:hge := calc.*(X_98,A1); X_28 := algebra.subselect(X_27,A0,A0,true,false,false); X_30 := algebra.leftfetchjoin(X_28,X_19); (X_31,r1_32) := algebra.subjoin(X_18,X_30,nil:BAT,nil:BAT,false,nil:lng); @@ -115,7 +115,7 @@ function user.s2_1{autoCommit=true}(A0:s X_61 := algebra.leftfetchjoin(r1_60,X_57); X_82:bat[:oid,:hge] := aggr.subsum(X_81,X_58,r1_60,true,true); X_62 := bat.mirror(X_61); - X_101 := sql.dec_round(X_99,100); + X_101:hge := sql.dec_round(X_99,100); X_117 := bat.new(nil:oid,nil:str); X_125 := bat.append(X_117,"sys.partsupp"); X_135 := bat.append(X_125,"sys.L1"); diff --git a/sql/benchmarks/tpch/Tests/12-explain.stable.out b/sql/benchmarks/tpch/Tests/12-explain.stable.out --- a/sql/benchmarks/tpch/Tests/12-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/12-explain.stable.out @@ -98,7 +98,7 @@ function user.s2_1{autoCommit=true}(A0:s X_16:bat[:oid,:oid] := sql.tid(X_15,"sys","lineitem"); X_52 := algebra.subselect(X_51,X_16,true,true,true,true,false); X_56 := algebra.subselect(X_55,X_52,true,true,true,true,false); - X_34 := mtime.addmonths(A11,A12); + X_34:date := mtime.addmonths(A11,A12); X_169 := algebra.subselect(X_27,X_56,A10,X_34,true,false,false); X_170 := algebra.subselect(r1_32,nil:bat[:oid,:oid],A10,X_34,true,false,false); X_172 := algebra.subselect(X_31,X_56,A10,X_34,true,false,false); diff --git a/sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 b/sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 @@ -98,7 +98,7 @@ function user.s2_1{autoCommit=true}(A0:s X_16:bat[:oid,:oid] := sql.tid(X_15,"sys","lineitem"); X_52 := algebra.subselect(X_51,X_16,true,true,true,true,false); X_56 := algebra.subselect(X_55,X_52,true,true,true,true,false); - X_34 := mtime.addmonths(A11,A12); + X_34:date := mtime.addmonths(A11,A12); X_169 := algebra.subselect(X_27,X_56,A10,X_34,true,false,false); X_170 := algebra.subselect(r1_32,nil:bat[:oid,:oid],A10,X_34,true,false,false); X_172 := algebra.subselect(X_31,X_56,A10,X_34,true,false,false); diff --git a/sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 b/sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 --- a/sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 +++ b/sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 @@ -48,7 +48,7 @@ function user.s2_1{autoCommit=true}(A0:s X_10 := sql.mvc(); X_14:bat[:oid,:date] := sql.bind(X_10,"sys","lineitem","l_shipdate",0); X_11:bat[:oid,:oid] := sql.tid(X_10,"sys","lineitem"); - X_22 := mtime.addmonths(A6,A7); + X_22:date := mtime.addmonths(A6,A7); X_124 := algebra.subselect(X_14,X_11,A5,X_22,true,false,false); (X_17,r1_18) := sql.bind(X_10,"sys","lineitem","l_shipdate",2); X_125 := algebra.subselect(r1_18,nil:bat[:oid,:oid],A5,X_22,true,false,false); @@ -89,13 +89,13 @@ function user.s2_1{autoCommit=true}(A0:s X_82 := calc.hge(A3,33,4); X_84:bat[:oid,:hge] := batcalc.ifthenelse(X_57,X_81,X_82); X_85:hge := aggr.sum(X_84); - X_86 := calc.*(A0,X_85); + X_86:hge := calc.*(A0,X_85); X_87 := calc.hge(5,X_86,39,9); X_92 := calc.lng(A4,15,2); X_94:bat[:oid,:lng] := batcalc.-(X_92,X_79); X_95:bat[:oid,:hge] := batcalc.*(X_66,X_94); X_96:hge := aggr.sum(X_95); - X_97 := calc./(X_87,X_96); + X_97:hge := calc./(X_87,X_96); sql.resultSet(".L2","promo_revenue","decimal",39,5,10,X_97); end user.s2_1; diff --git a/sql/benchmarks/tpch/Tests/15-explain.stable.out b/sql/benchmarks/tpch/Tests/15-explain.stable.out --- a/sql/benchmarks/tpch/Tests/15-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/15-explain.stable.out @@ -105,7 +105,7 @@ function user.s3_1{autoCommit=true}():vo X_22:bat[:oid,:date] := sql.bind(X_2,"sys","lineitem","l_shipdate",1); X_23 := sql.delta(X_18,X_20,r1_20,X_22); X_24 := algebra.leftfetchjoin(X_16,X_23); - X_27 := mtime.addmonths("1996-01-01",3); + X_27:date := mtime.addmonths("1996-01-01",3); X_28 := algebra.subselect(X_24,"1996-01-01",X_27,true,false,false); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list