Changeset: b7e69e104736 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b7e69e104736
Modified Files:
        sql/benchmarks/ssbm/Tests/02-explain.stable.out
        sql/benchmarks/ssbm/Tests/02-plan.stable.out
        sql/benchmarks/ssbm/Tests/03-explain.stable.out
        sql/benchmarks/ssbm/Tests/03-plan.stable.out
        sql/benchmarks/ssbm/Tests/07-explain.stable.out
        sql/benchmarks/ssbm/Tests/07-plan.stable.out
        sql/benchmarks/ssbm/Tests/08-explain.stable.out
        sql/benchmarks/ssbm/Tests/08-plan.stable.out
        sql/benchmarks/tpch/Tests/01-explain.stable.out
        sql/benchmarks/tpch/Tests/01-plan.stable.out
        sql/benchmarks/tpch/Tests/03-explain.stable.out
        sql/benchmarks/tpch/Tests/03-plan.stable.out
        sql/benchmarks/tpch/Tests/08-explain.stable.out
        sql/benchmarks/tpch/Tests/08-plan.stable.out
        sql/benchmarks/tpch/Tests/17-plan.stable.out
        sql/benchmarks/tpch/Tests/22-plan.stable.out
        sql/common/sql_types.c
        sql/server/rel_optimizer.c
        
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
        sql/test/BugTracker/Tests/between_with_column.SF-1959410.stable.err
Branch: Jan2014
Log Message:

properly handle type equality for floating point types


diffs (truncated from 782 to 300 lines):

diff --git a/sql/benchmarks/ssbm/Tests/02-explain.stable.out 
b/sql/benchmarks/ssbm/Tests/02-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/02-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/02-explain.stable.out
@@ -39,20 +39,20 @@ Ready.
 % 269 # length
 function user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int):void;
     X_7 := sql.mvc();
-    X_11 := sql.bind(X_7,"sys","lineorder","lo_discount",0);
-    X_19 := sql.bind(X_7,"sys","lineorder","lo_quantity",0);
+    X_11 := sql.bind(X_7,"sys","lineorder","lo_quantity",0);
+    X_19 := sql.bind(X_7,"sys","lineorder","lo_discount",0);
     X_8:bat[:oid,:oid]  := sql.tid(X_7,"sys","lineorder");
-    X_90 := algebra.subselect(X_19,X_8,A3,A4,true,true,false);
-    (X_21,r1_25) := sql.bind(X_7,"sys","lineorder","lo_quantity",2);
-    X_91 := algebra.subselect(r1_25,A3,A4,true,true,false);
-    X_23 := sql.bind(X_7,"sys","lineorder","lo_quantity",1);
-    X_92 := algebra.subselect(X_23,X_8,A3,A4,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_91 := algebra.subselect(r1_25,A1,A2,true,true,false);
+    X_23 := sql.bind(X_7,"sys","lineorder","lo_discount",1);
+    X_92 := algebra.subselect(X_23,X_8,A1,A2,true,true,false);
     X_24 := sql.subdelta(X_90,X_8,X_21,X_91,X_92);
-    X_93 := algebra.subselect(X_11,X_24,A1,A2,true,true,false);
-    (X_14,r1_14) := sql.bind(X_7,"sys","lineorder","lo_discount",2);
-    X_94 := algebra.subselect(r1_14,A1,A2,true,true,false);
-    X_17 := sql.bind(X_7,"sys","lineorder","lo_discount",1);
-    X_95 := algebra.subselect(X_17,X_24,A1,A2,true,true,false);
+    X_93 := 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_94 := algebra.subselect(r1_14,A3,A4,true,true,false);
+    X_17 := sql.bind(X_7,"sys","lineorder","lo_quantity",1);
+    X_95 := algebra.subselect(X_17,X_24,A3,A4,true,true,false);
     X_26 := sql.subdelta(X_93,X_24,X_14,X_94,X_95);
     X_27 := 
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);
@@ -74,7 +74,7 @@ function user.s2_1{autoCommit=true}(A0:i
     X_55 := sql.projectdelta(X_26,X_49,X_52,r1_65,X_54);
     X_56 := algebra.leftfetchjoin(X_47,X_55);
     X_57 := batcalc.lng(X_56);
-    X_58 := sql.projectdelta(X_26,X_11,X_14,r1_14,X_17);
+    X_58 := sql.projectdelta(X_26,X_19,X_21,r1_25,X_23);
     X_59 := algebra.leftfetchjoin(X_47,X_58);
     X_60:bat[:oid,:lng]  := batcalc.*(X_57,X_59);
     X_61 := algebra.selectNotNil(X_60);
diff --git a/sql/benchmarks/ssbm/Tests/02-plan.stable.out 
b/sql/benchmarks/ssbm/Tests/02-plan.stable.out
--- a/sql/benchmarks/ssbm/Tests/02-plan.stable.out
+++ b/sql/benchmarks/ssbm/Tests/02-plan.stable.out
@@ -41,7 +41,7 @@ project (
 | | join (
 | | | select (
 | | | | table(sys.lineorder) [ lineorder.lo_quantity, 
lineorder.lo_extendedprice, lineorder.lo_discount, 
lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX 
sys.lineorder.lineorder_lo_orderdate_fkey ] COUNT 
-| | | ) [ int[tinyint "26"] <= lineorder.lo_quantity <= int[tinyint "35"], 
int[tinyint "4"] <= lineorder.lo_discount <= int[tinyint "6"] ],
+| | | ) [ int[tinyint "4"] <= lineorder.lo_discount <= int[tinyint "6"], 
int[tinyint "26"] <= lineorder.lo_quantity <= int[tinyint "35"] ],
 | | | select (
 | | | | table(sys.dwdate) [ dwdate.d_yearmonthnum, dwdate.%TID% NOT NULL ] 
COUNT 
 | | | ) [ dwdate.d_yearmonthnum = int "199401" ]
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
@@ -39,20 +39,20 @@ Ready.
 % 283 # length
 function 
user.s2_1{autoCommit=true}(A0:int,A1:int,A2:int,A3:int,A4:int,A5:int):void;
     X_8 := sql.mvc();
-    X_12 := sql.bind(X_8,"sys","lineorder","lo_discount",0);
-    X_20 := sql.bind(X_8,"sys","lineorder","lo_quantity",0);
+    X_12 := sql.bind(X_8,"sys","lineorder","lo_quantity",0);
+    X_20 := 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,A4,A5,true,true,false);
-    (X_22,r1_26) := sql.bind(X_8,"sys","lineorder","lo_quantity",2);
-    X_102 := algebra.subselect(r1_26,A4,A5,true,true,false);
-    X_24 := sql.bind(X_8,"sys","lineorder","lo_quantity",1);
-    X_103 := algebra.subselect(X_24,X_9,A4,A5,true,true,false);
+    X_101 := 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,A2,A3,true,true,false);
+    X_24 := sql.bind(X_8,"sys","lineorder","lo_discount",1);
+    X_103 := algebra.subselect(X_24,X_9,A2,A3,true,true,false);
     X_25 := sql.subdelta(X_101,X_9,X_22,X_102,X_103);
-    X_104 := algebra.subselect(X_12,X_25,A2,A3,true,true,false);
-    (X_15,r1_15) := sql.bind(X_8,"sys","lineorder","lo_discount",2);
-    X_105 := algebra.subselect(r1_15,A2,A3,true,true,false);
-    X_18 := sql.bind(X_8,"sys","lineorder","lo_discount",1);
-    X_106 := algebra.subselect(X_18,X_25,A2,A3,true,true,false);
+    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_105 := algebra.subselect(r1_15,A4,A5,true,true,false);
+    X_18 := sql.bind(X_8,"sys","lineorder","lo_quantity",1);
+    X_106 := algebra.subselect(X_18,X_25,A4,A5,true,true,false);
     X_27 := sql.subdelta(X_104,X_25,X_15,X_105,X_106);
     X_28 := 
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);
@@ -81,7 +81,7 @@ function user.s2_1{autoCommit=true}(A0:i
     X_64 := sql.projectdelta(X_27,X_57,X_60,r1_76,X_63);
     X_65 := algebra.leftfetchjoin(X_55,X_64);
     X_66 := batcalc.lng(X_65);
-    X_67 := sql.projectdelta(X_27,X_12,X_15,r1_15,X_18);
+    X_67 := sql.projectdelta(X_27,X_20,X_22,r1_26,X_24);
     X_68 := algebra.leftfetchjoin(X_55,X_67);
     X_69:bat[:oid,:lng]  := batcalc.*(X_66,X_68);
     X_70 := algebra.selectNotNil(X_69);
diff --git a/sql/benchmarks/ssbm/Tests/03-plan.stable.out 
b/sql/benchmarks/ssbm/Tests/03-plan.stable.out
--- a/sql/benchmarks/ssbm/Tests/03-plan.stable.out
+++ b/sql/benchmarks/ssbm/Tests/03-plan.stable.out
@@ -41,7 +41,7 @@ project (
 | | join (
 | | | select (
 | | | | table(sys.lineorder) [ lineorder.lo_quantity, 
lineorder.lo_extendedprice, lineorder.lo_discount, 
lineorder.%lineorder_lo_orderdate_fkey NOT NULL JOINIDX 
sys.lineorder.lineorder_lo_orderdate_fkey ] COUNT 
-| | | ) [ int[tinyint "36"] <= lineorder.lo_quantity <= int[tinyint "40"], 
int[tinyint "5"] <= lineorder.lo_discount <= int[tinyint "7"] ],
+| | | ) [ int[tinyint "5"] <= lineorder.lo_discount <= int[tinyint "7"], 
int[tinyint "36"] <= lineorder.lo_quantity <= int[tinyint "40"] ],
 | | | select (
 | | | | table(sys.dwdate) [ dwdate.d_year, dwdate.d_weeknuminyear, 
dwdate.%TID% NOT NULL ] COUNT 
 | | | ) [ dwdate.d_year = int[smallint "1994"], dwdate.d_weeknuminyear = 
int[tinyint "6"] ]
diff --git a/sql/benchmarks/ssbm/Tests/07-explain.stable.out 
b/sql/benchmarks/ssbm/Tests/07-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/07-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/07-explain.stable.out
@@ -95,16 +95,16 @@ function user.s2_1{autoCommit=true}(A0:s
     X_81 := sql.bind(X_6,"sys","lineorder","lo_revenue",1);
     X_84 := sql.projectdelta(X_7,X_75,X_78,r1_92,X_81);
     X_85:bat[:oid,:int]  := algebra.leftfetchjoinPath(X_189,X_29,X_84);
-    X_86 := sql.bind(X_6,"sys","customer","c_nation",0);
-    (X_89,r1_106) := sql.bind(X_6,"sys","customer","c_nation",2);
-    X_91 := sql.bind(X_6,"sys","customer","c_nation",1);
-    X_92 := sql.projectdelta(X_26,X_86,X_89,r1_106,X_91);
-    X_93:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_189,r1_33,X_92);
-    X_94 := sql.bind(X_6,"sys","supplier","s_nation",0);
-    (X_98,r1_119) := sql.bind(X_6,"sys","supplier","s_nation",2);
-    X_100 := sql.bind(X_6,"sys","supplier","s_nation",1);
-    X_101 := sql.projectdelta(X_49,X_94,X_98,r1_119,X_100);
-    X_102:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_73,r1_60,X_101);
+    X_86 := sql.bind(X_6,"sys","supplier","s_nation",0);
+    (X_89,r1_106) := sql.bind(X_6,"sys","supplier","s_nation",2);
+    X_91 := sql.bind(X_6,"sys","supplier","s_nation",1);
+    X_92 := sql.projectdelta(X_49,X_86,X_89,r1_106,X_91);
+    X_93:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_73,r1_60,X_92);
+    X_94 := sql.bind(X_6,"sys","customer","c_nation",0);
+    (X_98,r1_118) := sql.bind(X_6,"sys","customer","c_nation",2);
+    X_100 := sql.bind(X_6,"sys","customer","c_nation",1);
+    X_101 := sql.projectdelta(X_26,X_94,X_98,r1_118,X_100);
+    X_102:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_189,r1_33,X_101);
     X_103 := sql.projectdelta(X_70,X_64,X_66,r1_76,X_69);
     X_104 := algebra.leftfetchjoin(r1_87,X_103);
     (X_105,r1_129,r2_129) := group.subgroup(X_104);
@@ -115,10 +115,10 @@ function user.s2_1{autoCommit=true}(A0:s
     (X_117,r1_141,r2_141) := algebra.subsort(X_116,false,false);
     (X_121,r1_145,r2_145) := algebra.subsort(X_114,r1_141,r2_141,true,false);
     X_190 := algebra.leftfetchjoin(r1_145,r1_135);
-    X_124:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_93);
+    X_124:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_102);
     X_127 := algebra.leftfetchjoin(r1_145,X_114);
     X_126 := algebra.leftfetchjoin(r1_145,X_116);
-    X_125:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_102);
+    X_125:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_93);
     X_128 := sql.resultSet(4,1,X_124);
     sql.rsColumn(X_128,"sys.customer","c_nation","clob",0,0,X_124);
     sql.rsColumn(X_128,"sys.supplier","s_nation","clob",0,0,X_125);
diff --git a/sql/benchmarks/ssbm/Tests/07-plan.stable.out 
b/sql/benchmarks/ssbm/Tests/07-plan.stable.out
--- a/sql/benchmarks/ssbm/Tests/07-plan.stable.out
+++ b/sql/benchmarks/ssbm/Tests/07-plan.stable.out
@@ -58,7 +58,7 @@ project (
 | | | | table(sys.dwdate) [ dwdate.d_year, dwdate.%TID% NOT NULL ] COUNT 
 | | | ) [ int[smallint "1992"] <= dwdate.d_year <= int[smallint "1997"] ]
 | | ) [ lineorder.%lineorder_lo_orderdate_fkey NOT NULL = dwdate.%TID% NOT 
NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ]
-| ) [ dwdate.d_year, supplier.s_nation, customer.c_nation ] [ 
customer.c_nation, supplier.s_nation, dwdate.d_year, sys.sum no nil 
(lineorder.lo_revenue) as L1.L1 ]
+| ) [ dwdate.d_year, customer.c_nation, supplier.s_nation ] [ 
customer.c_nation, supplier.s_nation, dwdate.d_year, sys.sum no nil 
(lineorder.lo_revenue) as L1.L1 ]
 ) [ customer.c_nation, supplier.s_nation, dwdate.d_year, L1 as L1.revenue ] [ 
dwdate.d_year ASC, L1.revenue ]
 
 # 23:08:58 >  
diff --git a/sql/benchmarks/ssbm/Tests/08-explain.stable.out 
b/sql/benchmarks/ssbm/Tests/08-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/08-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/08-explain.stable.out
@@ -95,16 +95,16 @@ function user.s2_1{autoCommit=true}(A0:s
     X_81 := sql.bind(X_6,"sys","lineorder","lo_revenue",1);
     X_84 := sql.projectdelta(X_7,X_75,X_78,r1_92,X_81);
     X_85:bat[:oid,:int]  := algebra.leftfetchjoinPath(X_189,X_29,X_84);
-    X_86 := sql.bind(X_6,"sys","customer","c_city",0);
-    (X_89,r1_106) := sql.bind(X_6,"sys","customer","c_city",2);
-    X_91 := sql.bind(X_6,"sys","customer","c_city",1);
-    X_92 := sql.projectdelta(X_26,X_86,X_89,r1_106,X_91);
-    X_93:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_189,r1_33,X_92);
-    X_94 := sql.bind(X_6,"sys","supplier","s_city",0);
-    (X_98,r1_119) := sql.bind(X_6,"sys","supplier","s_city",2);
-    X_100 := sql.bind(X_6,"sys","supplier","s_city",1);
-    X_101 := sql.projectdelta(X_49,X_94,X_98,r1_119,X_100);
-    X_102:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_73,r1_60,X_101);
+    X_86 := sql.bind(X_6,"sys","supplier","s_city",0);
+    (X_89,r1_106) := sql.bind(X_6,"sys","supplier","s_city",2);
+    X_91 := sql.bind(X_6,"sys","supplier","s_city",1);
+    X_92 := sql.projectdelta(X_49,X_86,X_89,r1_106,X_91);
+    X_93:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_73,r1_60,X_92);
+    X_94 := sql.bind(X_6,"sys","customer","c_city",0);
+    (X_98,r1_118) := sql.bind(X_6,"sys","customer","c_city",2);
+    X_100 := sql.bind(X_6,"sys","customer","c_city",1);
+    X_101 := sql.projectdelta(X_26,X_94,X_98,r1_118,X_100);
+    X_102:bat[:oid,:str]  := algebra.leftfetchjoinPath(X_189,r1_33,X_101);
     X_103 := sql.projectdelta(X_70,X_64,X_66,r1_76,X_69);
     X_104 := algebra.leftfetchjoin(r1_87,X_103);
     (X_105,r1_129,r2_129) := group.subgroup(X_104);
@@ -115,10 +115,10 @@ function user.s2_1{autoCommit=true}(A0:s
     (X_117,r1_141,r2_141) := algebra.subsort(X_116,false,false);
     (X_121,r1_145,r2_145) := algebra.subsort(X_114,r1_141,r2_141,true,false);
     X_190 := algebra.leftfetchjoin(r1_145,r1_135);
-    X_124:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_93);
+    X_124:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_102);
     X_127 := algebra.leftfetchjoin(r1_145,X_114);
     X_126 := algebra.leftfetchjoin(r1_145,X_116);
-    X_125:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_102);
+    X_125:bat[:oid,:str]  := algebra.leftfetchjoin(X_190,X_93);
     X_128 := sql.resultSet(4,1,X_124);
     sql.rsColumn(X_128,"sys.customer","c_city","clob",0,0,X_124);
     sql.rsColumn(X_128,"sys.supplier","s_city","clob",0,0,X_125);
diff --git a/sql/benchmarks/ssbm/Tests/08-plan.stable.out 
b/sql/benchmarks/ssbm/Tests/08-plan.stable.out
--- a/sql/benchmarks/ssbm/Tests/08-plan.stable.out
+++ b/sql/benchmarks/ssbm/Tests/08-plan.stable.out
@@ -58,7 +58,7 @@ project (
 | | | | table(sys.dwdate) [ dwdate.d_year, dwdate.%TID% NOT NULL ] COUNT 
 | | | ) [ int[smallint "1992"] <= dwdate.d_year <= int[smallint "1997"] ]
 | | ) [ lineorder.%lineorder_lo_orderdate_fkey NOT NULL = dwdate.%TID% NOT 
NULL JOINIDX sys.lineorder.lineorder_lo_orderdate_fkey ]
-| ) [ dwdate.d_year, supplier.s_city, customer.c_city ] [ customer.c_city, 
supplier.s_city, dwdate.d_year, sys.sum no nil (lineorder.lo_revenue) as L1.L1 ]
+| ) [ dwdate.d_year, customer.c_city, supplier.s_city ] [ customer.c_city, 
supplier.s_city, dwdate.d_year, sys.sum no nil (lineorder.lo_revenue) as L1.L1 ]
 ) [ customer.c_city, supplier.s_city, dwdate.d_year, L1 as L1.revenue ] [ 
dwdate.d_year ASC, L1.revenue ]
 
 # 23:08:58 >  
diff --git a/sql/benchmarks/tpch/Tests/01-explain.stable.out 
b/sql/benchmarks/tpch/Tests/01-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/01-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/01-explain.stable.out
@@ -62,17 +62,17 @@ function user.s2_1{autoCommit=true}(A0:b
     X_17 := sql.bind(X_7,"sys","lineitem","l_shipdate",1);
     X_183 := algebra.thetasubselect(X_17,X_8,X_19,"<=");
     X_20 := sql.subdelta(X_181,X_8,X_14,X_182,X_183);
-    X_28 := sql.bind(X_7,"sys","lineitem","l_linestatus",0);
-    (X_30,r1_36) := sql.bind(X_7,"sys","lineitem","l_linestatus",2);
-    X_32 := sql.bind(X_7,"sys","lineitem","l_linestatus",1);
+    X_28 := sql.bind(X_7,"sys","lineitem","l_returnflag",0);
+    (X_30,r1_36) := sql.bind(X_7,"sys","lineitem","l_returnflag",2);
+    X_32 := sql.bind(X_7,"sys","lineitem","l_returnflag",1);
     X_33 := sql.projectdelta(X_20,X_28,X_30,r1_36,X_32);
-    X_22 := sql.bind(X_7,"sys","lineitem","l_returnflag",0);
-    (X_24,r1_28) := sql.bind(X_7,"sys","lineitem","l_returnflag",2);
-    X_26 := sql.bind(X_7,"sys","lineitem","l_returnflag",1);
+    X_22 := sql.bind(X_7,"sys","lineitem","l_linestatus",0);
+    (X_24,r1_28) := sql.bind(X_7,"sys","lineitem","l_linestatus",2);
+    X_26 := sql.bind(X_7,"sys","lineitem","l_linestatus",1);
     X_27 := sql.projectdelta(X_20,X_22,X_24,r1_28,X_26);
     (X_34,r1_45,r2_45) := group.subgroup(X_33,X_27);
-    X_37 := algebra.leftfetchjoin(r1_45,X_33);
-    X_38 := algebra.leftfetchjoin(r1_45,X_27);
+    X_37 := algebra.leftfetchjoin(r1_45,X_27);
+    X_38 := algebra.leftfetchjoin(r1_45,X_33);
     X_48 := sql.bind(X_7,"sys","lineitem","l_quantity",0);
     (X_53,r1_64) := sql.bind(X_7,"sys","lineitem","l_quantity",2);
     X_56 := sql.bind(X_7,"sys","lineitem","l_quantity",1);
diff --git a/sql/benchmarks/tpch/Tests/01-plan.stable.out 
b/sql/benchmarks/tpch/Tests/01-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/01-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/01-plan.stable.out
@@ -55,7 +55,7 @@ project (
 | | select (
 | | | table(sys.lineitem) [ lineitem.l_quantity NOT NULL, 
lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, lineitem.l_tax 
NOT NULL, lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, 
lineitem.l_shipdate NOT NULL ] COUNT 
 | | ) [ lineitem.l_shipdate NOT NULL <= sys.sql_sub(date "1998-12-01", 
sec_interval(4) "7776000000") ]
-| ) [ lineitem.l_linestatus NOT NULL, lineitem.l_returnflag NOT NULL ] [ 
lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, sys.sum no nil 
(lineitem.l_quantity NOT NULL) NOT NULL as L1.L1, sys.sum no nil 
(lineitem.l_extendedprice NOT NULL) NOT NULL as L2.L2, sys.sum no nil 
(sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL))) as 
L3.L3, sys.sum no nil (sys.sql_mul(sys.sql_mul(lineitem.l_extendedprice NOT 
NULL, sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL)), 
sys.sql_add(decimal(15,2)[tinyint "1"], lineitem.l_tax NOT NULL))) as L4.L4, 
sys.avg no nil (double[lineitem.l_quantity NOT NULL] as lineitem.l_quantity) as 
L5.L5, sys.avg no nil (double[lineitem.l_extendedprice NOT NULL] as 
lineitem.l_extendedprice) as L6.L6, sys.avg no nil (double[lineitem.l_discount 
NOT NULL] as lineitem.l_discount) as L7.L7, sys.count() NOT NULL as L10.L10 ]
+| ) [ lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL ] [ 
lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, sys.sum no nil 
(lineitem.l_quantity NOT NULL) NOT NULL as L1.L1, sys.sum no nil 
(lineitem.l_extendedprice NOT NULL) NOT NULL as L2.L2, sys.sum no nil 
(sys.sql_mul(lineitem.l_extendedprice NOT NULL, 
sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL))) as 
L3.L3, sys.sum no nil (sys.sql_mul(sys.sql_mul(lineitem.l_extendedprice NOT 
NULL, sys.sql_sub(decimal(15,2)[tinyint "1"], lineitem.l_discount NOT NULL)), 
sys.sql_add(decimal(15,2)[tinyint "1"], lineitem.l_tax NOT NULL))) as L4.L4, 
sys.avg no nil (double[lineitem.l_quantity NOT NULL] as lineitem.l_quantity) as 
L5.L5, sys.avg no nil (double[lineitem.l_extendedprice NOT NULL] as 
lineitem.l_extendedprice) as L6.L6, sys.avg no nil (double[lineitem.l_discount 
NOT NULL] as lineitem.l_discount) as L7.L7, sys.count() NOT NULL as L10.L10 ]
 ) [ lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, L1 NOT 
NULL as L1.sum_qty, L2 NOT NULL as L2.sum_base_price, L3 as L3.sum_disc_price, 
L4 as L4.sum_charge, L5 as L5.avg_qty, L6 as L6.avg_price, L7 as L7.avg_disc, 
L10 NOT NULL as L10.count_order ] [ lineitem.l_returnflag ASC NOT NULL, 
lineitem.l_linestatus ASC NOT NULL ]
 
 # 22:46:28 >  
diff --git a/sql/benchmarks/tpch/Tests/03-explain.stable.out 
b/sql/benchmarks/tpch/Tests/03-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/03-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/03-explain.stable.out
@@ -57,36 +57,36 @@ function user.s2_1{autoCommit=true}(A0:b
     X_6 := sql.mvc();
     X_10 := sql.bind(X_6,"sys","orders","o_orderdate",0);
     X_7:bat[:oid,:oid]  := sql.tid(X_6,"sys","orders");
-    X_179 := algebra.thetasubselect(X_10,X_7,A2,"<");
+    X_183 := algebra.thetasubselect(X_10,X_7,A2,"<");
     (X_13,r1_13) := sql.bind(X_6,"sys","orders","o_orderdate",2);
-    X_180 := algebra.thetasubselect(r1_13,A2,"<");
+    X_184 := algebra.thetasubselect(r1_13,A2,"<");
     X_16 := sql.bind(X_6,"sys","orders","o_orderdate",1);
-    X_181 := algebra.thetasubselect(X_16,X_7,A2,"<");
-    X_18 := sql.subdelta(X_179,X_7,X_13,X_180,X_181);
+    X_185 := algebra.thetasubselect(X_16,X_7,A2,"<");
+    X_18 := sql.subdelta(X_183,X_7,X_13,X_184,X_185);
     X_20 := sql.bind_idxbat(X_6,"sys","orders","orders_o_custkey_fkey",0);
     (X_22,r1_25) := 
sql.bind_idxbat(X_6,"sys","orders","orders_o_custkey_fkey",2);
     X_24 := sql.bind_idxbat(X_6,"sys","orders","orders_o_custkey_fkey",1);
     X_25 := sql.projectdelta(X_18,X_20,X_22,r1_25,X_24);
     X_28 := sql.bind(X_6,"sys","customer","c_mktsegment",0);
     X_26:bat[:oid,:oid]  := sql.tid(X_6,"sys","customer");
-    X_182 := algebra.subselect(X_28,X_26,A1,A1,true,true,false);
+    X_186 := algebra.subselect(X_28,X_26,A1,A1,true,true,false);
     (X_30,r1_35) := sql.bind(X_6,"sys","customer","c_mktsegment",2);
-    X_183 := algebra.subselect(r1_35,A1,A1,true,true,false);
+    X_187 := algebra.subselect(r1_35,A1,A1,true,true,false);
     X_32 := sql.bind(X_6,"sys","customer","c_mktsegment",1);
-    X_184 := algebra.subselect(X_32,X_26,A1,A1,true,true,false);
-    X_33 := sql.subdelta(X_182,X_26,X_30,X_183,X_184);
+    X_188 := algebra.subselect(X_32,X_26,A1,A1,true,true,false);
+    X_33 := sql.subdelta(X_186,X_26,X_30,X_187,X_188);
     X_36 := X_33;
     (X_37,r1_45) := algebra.join(X_25,X_36);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to