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

Reply via email to