Changeset: 18f6322a519a for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=18f6322a519a Modified Files: monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single monetdb5/optimizer/opt_pipes.c sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 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.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/Tests/setoptimizer.stable.err sql/test/Tests/setoptimizer.stable.out sql/test/Tests/setoptimizer.stable.out.Windows Branch: default Log Message:
Fix for bug 3361 The alias removal optimizer is called before the commonterms optimizer. This can sometimes improve the code. Some collateral outputs should be re-approved. diffs (truncated from 3529 to 300 lines): diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err @@ -30,16 +30,16 @@ stderr of test 'opt_sql_append` in direc # 22:58:57 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=rome" "--port=36275" # 22:58:57 > -MAPI = (monetdb) /var/tmp/mtest-25270/.s.monetdb.33644 +MAPI = (monetdb) /var/tmp/mtest-6841/.s.monetdb.39148 QUERY = explain copy into ttt from '\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz -MAPI = (monetdb) /var/tmp/mtest-25270/.s.monetdb.33644 +MAPI = (monetdb) /var/tmp/mtest-6841/.s.monetdb.39148 QUERY = explain copy into ttt from 'a:\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: a:\tmp/xyz -MAPI = (monetdb) /var/tmp/mtest-25270/.s.monetdb.33644 +MAPI = (monetdb) /var/tmp/mtest-6841/.s.monetdb.39148 QUERY = explain copy into ttt from '\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz -MAPI = (monetdb) /var/tmp/mtest-25270/.s.monetdb.33644 +MAPI = (monetdb) /var/tmp/mtest-6841/.s.monetdb.39148 QUERY = explain copy into ttt from 'Z:/tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: Z:/tmp/xyz 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 @@ -55,8 +55,8 @@ Ready. % .L # table_name % def # name % clob # type -% 449 # length -[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();" ] +% 469 # length +[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name @@ -89,8 +89,8 @@ end user.s4_1; % .L # table_name % def # name % clob # type -% 472 # length -[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();" ] +% 492 # length +[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single @@ -55,8 +55,8 @@ Ready. % .L # table_name % def # name % clob # type -% 449 # length -[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();" ] +% 469 # length +[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name @@ -87,8 +87,8 @@ end user.s4_1; % .L # table_name % def # name % clob # type -% 472 # length -[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();" ] +% 492 # length +[ "optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c --- a/monetdb5/optimizer/opt_pipes.c +++ b/monetdb5/optimizer/opt_pipes.c @@ -72,6 +72,7 @@ static struct PIPELINES { "optimizer.mitosis();" "optimizer.mergetable();" "optimizer.deadcode();" + "optimizer.aliases();" "optimizer.commonTerms();" "optimizer.joinPath();" "optimizer.reorder();" @@ -104,6 +105,7 @@ static struct PIPELINES { "optimizer.pushselect();" "optimizer.mergetable();" "optimizer.deadcode();" + "optimizer.aliases();" "optimizer.commonTerms();" "optimizer.joinPath();" "optimizer.reorder();" @@ -136,6 +138,7 @@ static struct PIPELINES { "optimizer.pushselect();" "optimizer.mergetable();" "optimizer.deadcode();" + "optimizer.aliases();" "optimizer.commonTerms();" "optimizer.joinPath();" "optimizer.reorder();" @@ -161,6 +164,7 @@ static struct PIPELINES { "optimizer.pushselect();" "optimizer.mitosis();" "optimizer.mergetable();" + "optimizer.aliases();" "optimizer.deadcode();" "optimizer.commonTerms();" "optimizer.joinPath();" diff --git a/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 b/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 --- a/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 +++ b/sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 @@ -38,48 +38,47 @@ Ready. % clob # type % 265 # length function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int):void; - X_71:void := querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_year = 1993\n\t\tand lo_discount between 1 and 3\n\t\tand lo_quantity < 25;","sequential_pipe",44); + X_70:void := querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_year = 1993\n\t\tand lo_discount between 1 and 3\n\t\tand lo_quantity < 25;","sequential_pipe",43); X_6 := sql.mvc(); X_10:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_quantity",0); X_18:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_discount",0); X_7:bat[:oid,:oid] := sql.tid(X_6,"sys","lineorder"); - X_91 := algebra.subselect(X_18,X_7,A1,A2,true,true,false); + X_90 := algebra.subselect(X_18,X_7,A1,A2,true,true,false); (X_20,r1_23) := sql.bind(X_6,"sys","lineorder","lo_discount",2); - X_92 := algebra.subselect(r1_23,nil:bat[:oid,:oid],A1,A2,true,true,false); + X_91 := algebra.subselect(r1_23,nil:bat[:oid,:oid],A1,A2,true,true,false); X_22:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_discount",1); - X_94 := algebra.subselect(X_22,X_7,A1,A2,true,true,false); - X_23 := sql.subdelta(X_91,X_7,X_20,X_92,X_94); - X_95 := algebra.thetasubselect(X_10,X_23,A3,"<"); + X_93 := algebra.subselect(X_22,X_7,A1,A2,true,true,false); + X_23 := sql.subdelta(X_90,X_7,X_20,X_91,X_93); + X_94 := algebra.thetasubselect(X_10,X_23,A3,"<"); (X_13,r1_13) := sql.bind(X_6,"sys","lineorder","lo_quantity",2); - X_96 := algebra.thetasubselect(r1_13,nil:bat[:oid,:oid],A3,"<"); + X_95 := algebra.thetasubselect(r1_13,nil:bat[:oid,:oid],A3,"<"); X_16:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_quantity",1); - X_98 := algebra.thetasubselect(X_16,X_23,A3,"<"); - X_25 := sql.subdelta(X_95,X_23,X_13,X_96,X_98); + X_97 := algebra.thetasubselect(X_16,X_23,A3,"<"); + X_25 := sql.subdelta(X_94,X_23,X_13,X_95,X_97); X_27:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",0); (X_29,r1_36) := sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",2); X_31:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","lineorder","lineorder_lo_orderdate_fkey",1); X_32 := sql.projectdelta(X_25,X_27,X_29,r1_36,X_31); X_36:bat[:oid,:int] := sql.bind(X_6,"sys","dwdate","d_year",0); X_33:bat[:oid,:oid] := sql.tid(X_6,"sys","dwdate"); - X_99 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); + X_98 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); (X_39,r1_48) := sql.bind(X_6,"sys","dwdate","d_year",2); - X_100 := algebra.subselect(r1_48,nil:bat[:oid,:oid],A0,A0,true,true,false); + X_99 := algebra.subselect(r1_48,nil:bat[:oid,:oid],A0,A0,true,true,false); X_42:bat[:oid,:int] := sql.bind(X_6,"sys","dwdate","d_year",1); - X_102 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); - X_44 := sql.subdelta(X_99,X_33,X_39,X_100,X_102); - X_46 := X_44; - (X_47,r1_59) := algebra.subjoin(X_32,X_46,nil:BAT,nil:BAT,false,nil:lng); - X_51:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_extendedprice",0); - (X_54,r1_66) := sql.bind(X_6,"sys","lineorder","lo_extendedprice",2); - X_56:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_extendedprice",1); - X_57 := sql.projectdelta(X_25,X_51,X_54,r1_66,X_56); - X_58 := algebra.leftfetchjoin(X_47,X_57); - X_59 := batcalc.lng(X_58); - X_60 := sql.projectdelta(X_25,X_18,X_20,r1_23,X_22); - X_61 := algebra.leftfetchjoin(X_47,X_60); - X_62:bat[:oid,:lng] := batcalc.*(X_59,X_61); - X_63:hge := aggr.sum(X_62); - sql.resultSet("sys.L1","revenue","hugeint",128,0,7,X_63); + X_101 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); + X_44 := sql.subdelta(X_98,X_33,X_39,X_99,X_101); + (X_46,r1_59) := algebra.subjoin(X_32,X_44,nil:BAT,nil:BAT,false,nil:lng); + X_50:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_extendedprice",0); + (X_53,r1_66) := sql.bind(X_6,"sys","lineorder","lo_extendedprice",2); + X_55:bat[:oid,:int] := sql.bind(X_6,"sys","lineorder","lo_extendedprice",1); + X_56 := sql.projectdelta(X_25,X_50,X_53,r1_66,X_55); + X_57 := algebra.leftfetchjoin(X_46,X_56); + X_58 := batcalc.lng(X_57); + X_59 := sql.projectdelta(X_25,X_18,X_20,r1_23,X_22); + X_60 := algebra.leftfetchjoin(X_46,X_59); + X_61:bat[:oid,:lng] := batcalc.*(X_58,X_60); + X_62:hge := aggr.sum(X_61); + sql.resultSet("sys.L1","revenue","hugeint",128,0,7,X_62); end user.s2_1; # 23:10:45 > diff --git a/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 b/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 --- a/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 +++ b/sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 @@ -38,48 +38,47 @@ Ready. % clob # type % 288 # length function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int):void; - X_71:void := querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_yearmonthnum = 199401\n\t\tand lo_discount between 4 and 6\n\t\tand lo_quantity between 26 and 35;","sequential_pipe",44); + X_70:void := querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_yearmonthnum = 199401\n\t\tand lo_discount between 4 and 6\n\t\tand lo_quantity between 26 and 35;","sequential_pipe",43); X_7 := sql.mvc(); X_11:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_quantity",0); X_19:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_discount",0); X_8:bat[:oid,:oid] := sql.tid(X_7,"sys","lineorder"); - X_91 := algebra.subselect(X_19,X_8,A1,A2,true,true,false); + X_90 := algebra.subselect(X_19,X_8,A1,A2,true,true,false); (X_21,r1_25) := sql.bind(X_7,"sys","lineorder","lo_discount",2); - X_92 := algebra.subselect(r1_25,nil:bat[:oid,:oid],A1,A2,true,true,false); + X_91 := algebra.subselect(r1_25,nil:bat[:oid,:oid],A1,A2,true,true,false); X_23:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_discount",1); - X_94 := algebra.subselect(X_23,X_8,A1,A2,true,true,false); - X_24 := sql.subdelta(X_91,X_8,X_21,X_92,X_94); - X_95 := algebra.subselect(X_11,X_24,A3,A4,true,true,false); + X_93 := algebra.subselect(X_23,X_8,A1,A2,true,true,false); + X_24 := sql.subdelta(X_90,X_8,X_21,X_91,X_93); + X_94 := algebra.subselect(X_11,X_24,A3,A4,true,true,false); (X_14,r1_14) := sql.bind(X_7,"sys","lineorder","lo_quantity",2); - X_96 := algebra.subselect(r1_14,nil:bat[:oid,:oid],A3,A4,true,true,false); + X_95 := algebra.subselect(r1_14,nil:bat[:oid,:oid],A3,A4,true,true,false); X_17:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_quantity",1); - X_98 := algebra.subselect(X_17,X_24,A3,A4,true,true,false); - X_26 := sql.subdelta(X_95,X_24,X_14,X_96,X_98); + X_97 := algebra.subselect(X_17,X_24,A3,A4,true,true,false); + X_26 := sql.subdelta(X_94,X_24,X_14,X_95,X_97); X_27:bat[:oid,:oid] := sql.bind_idxbat(X_7,"sys","lineorder","lineorder_lo_orderdate_fkey",0); (X_29,r1_37) := sql.bind_idxbat(X_7,"sys","lineorder","lineorder_lo_orderdate_fkey",2); X_31:bat[:oid,:oid] := sql.bind_idxbat(X_7,"sys","lineorder","lineorder_lo_orderdate_fkey",1); X_32 := sql.projectdelta(X_26,X_27,X_29,r1_37,X_31); X_36:bat[:oid,:int] := sql.bind(X_7,"sys","dwdate","d_yearmonthnum",0); X_33:bat[:oid,:oid] := sql.tid(X_7,"sys","dwdate"); - X_99 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); + X_98 := algebra.subselect(X_36,X_33,A0,A0,true,true,false); (X_39,r1_49) := sql.bind(X_7,"sys","dwdate","d_yearmonthnum",2); - X_100 := algebra.subselect(r1_49,nil:bat[:oid,:oid],A0,A0,true,true,false); + X_99 := algebra.subselect(r1_49,nil:bat[:oid,:oid],A0,A0,true,true,false); X_42:bat[:oid,:int] := sql.bind(X_7,"sys","dwdate","d_yearmonthnum",1); - X_102 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); - X_44 := sql.subdelta(X_99,X_33,X_39,X_100,X_102); - X_46 := X_44; - (X_47,r1_60) := algebra.subjoin(X_32,X_46,nil:BAT,nil:BAT,false,nil:lng); - X_51:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_extendedprice",0); - (X_54,r1_67) := sql.bind(X_7,"sys","lineorder","lo_extendedprice",2); - X_56:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_extendedprice",1); - X_57 := sql.projectdelta(X_26,X_51,X_54,r1_67,X_56); - X_58 := algebra.leftfetchjoin(X_47,X_57); - X_59 := batcalc.lng(X_58); - X_60 := sql.projectdelta(X_26,X_19,X_21,r1_25,X_23); - X_61 := algebra.leftfetchjoin(X_47,X_60); - X_62:bat[:oid,:lng] := batcalc.*(X_59,X_61); - X_63:hge := aggr.sum(X_62); - sql.resultSet("sys.L1","revenue","hugeint",128,0,7,X_63); + X_101 := algebra.subselect(X_42,X_33,A0,A0,true,true,false); + X_44 := sql.subdelta(X_98,X_33,X_39,X_99,X_101); + (X_46,r1_60) := algebra.subjoin(X_32,X_44,nil:BAT,nil:BAT,false,nil:lng); + X_50:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_extendedprice",0); + (X_53,r1_67) := sql.bind(X_7,"sys","lineorder","lo_extendedprice",2); + X_55:bat[:oid,:int] := sql.bind(X_7,"sys","lineorder","lo_extendedprice",1); + X_56 := sql.projectdelta(X_26,X_50,X_53,r1_67,X_55); + X_57 := algebra.leftfetchjoin(X_46,X_56); + X_58 := batcalc.lng(X_57); + X_59 := sql.projectdelta(X_26,X_19,X_21,r1_25,X_23); + X_60 := algebra.leftfetchjoin(X_46,X_59); + X_61:bat[:oid,:lng] := batcalc.*(X_58,X_60); + X_62:hge := aggr.sum(X_61); + sql.resultSet("sys.L1","revenue","hugeint",128,0,7,X_62); end user.s2_1; # 23:10:45 > diff --git a/sql/benchmarks/ssbm/Tests/03-explain.stable.out b/sql/benchmarks/ssbm/Tests/03-explain.stable.out --- a/sql/benchmarks/ssbm/Tests/03-explain.stable.out +++ b/sql/benchmarks/ssbm/Tests/03-explain.stable.out @@ -38,23 +38,23 @@ Ready. % clob # type % 302 # length function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int,A5:int):void; - X_80:void := querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_weeknuminyear = 6 and d_year = 1994\n\t\tand lo_discount between 5 and 7\n\t\tand lo_quantity between 36 and 40;","sequential_pipe",51); + X_79:void := querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand d_weeknuminyear = 6 and d_year = 1994\n\t\tand lo_discount between 5 and 7\n\t\tand lo_quantity between 36 and 40;","sequential_pipe",50); X_8 := sql.mvc(); X_12:bat[:oid,:int] := sql.bind(X_8,"sys","lineorder","lo_quantity",0); X_20:bat[:oid,:int] := sql.bind(X_8,"sys","lineorder","lo_discount",0); X_9:bat[:oid,:oid] := sql.tid(X_8,"sys","lineorder"); - X_101 := algebra.subselect(X_20,X_9,A2,A3,true,true,false); + X_100 := algebra.subselect(X_20,X_9,A2,A3,true,true,false); (X_22,r1_26) := sql.bind(X_8,"sys","lineorder","lo_discount",2); - X_102 := algebra.subselect(r1_26,nil:bat[:oid,:oid],A2,A3,true,true,false); + X_101 := algebra.subselect(r1_26,nil:bat[:oid,:oid],A2,A3,true,true,false); X_24:bat[:oid,:int] := sql.bind(X_8,"sys","lineorder","lo_discount",1); - X_104 := algebra.subselect(X_24,X_9,A2,A3,true,true,false); - X_25 := sql.subdelta(X_101,X_9,X_22,X_102,X_104); - X_105 := algebra.subselect(X_12,X_25,A4,A5,true,true,false); + X_103 := algebra.subselect(X_24,X_9,A2,A3,true,true,false); + X_25 := sql.subdelta(X_100,X_9,X_22,X_101,X_103); + X_104 := algebra.subselect(X_12,X_25,A4,A5,true,true,false); (X_15,r1_15) := sql.bind(X_8,"sys","lineorder","lo_quantity",2); - X_106 := algebra.subselect(r1_15,nil:bat[:oid,:oid],A4,A5,true,true,false); + X_105 := algebra.subselect(r1_15,nil:bat[:oid,:oid],A4,A5,true,true,false); X_18:bat[:oid,:int] := sql.bind(X_8,"sys","lineorder","lo_quantity",1); - X_108 := algebra.subselect(X_18,X_25,A4,A5,true,true,false); - X_27 := sql.subdelta(X_105,X_25,X_15,X_106,X_108); + X_107 := algebra.subselect(X_18,X_25,A4,A5,true,true,false); + X_27 := sql.subdelta(X_104,X_25,X_15,X_105,X_107); X_28:bat[:oid,:oid] := sql.bind_idxbat(X_8,"sys","lineorder","lineorder_lo_orderdate_fkey",0); (X_30,r1_38) := sql.bind_idxbat(X_8,"sys","lineorder","lineorder_lo_orderdate_fkey",2); X_32:bat[:oid,:oid] := sql.bind_idxbat(X_8,"sys","lineorder","lineorder_lo_orderdate_fkey",1); diff --git a/sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 b/sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list