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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list