Changeset: d363882c6898 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d363882c6898
Added Files:
sql/test/mergetables/Tests/doubletable.stable.err
sql/test/mergetables/Tests/doubletable.stable.out
sql/test/mergetables/Tests/forex1.stable.err
sql/test/mergetables/Tests/forex1.stable.out
Modified Files:
sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/16-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/20-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit
sql/server/rel_optimizer.c
sql/server/rel_schema.c
sql/storage/store.c
sql/test/BugTracker-2014/Tests/typecast_error.Bug-3622.sql
sql/test/BugTracker-2014/Tests/typecast_error.Bug-3622.stable.out
sql/test/BugTracker-2015/Tests/readonly.Bug-3709.stable.err
sql/test/mergetables/Tests/forex.stable.out
sql/test/mergetables/Tests/forex.stable.out.int128
sql/test/mergetables/Tests/forex1.sql
Branch: geo
Log Message:
Merge with default branch.
diffs (truncated from 1411 to 300 lines):
diff --git a/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
b/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
--- a/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
+++ b/sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
@@ -52,17 +52,17 @@ Ready.
% clob # type
% 622 # length
function user.s2_1{autoCommit=true}(A0:bte,A1:bte,A2:bte,A3:date,A4:lng):void;
- X_165:void := querylog.define("explain
select\n\tl_returnflag,\n\tl_linestatus,\n\tsum(l_quantity) as
sum_qty,\n\tsum(l_extendedprice) as sum_base_price,\n\tsum(l_extendedprice * (1
- l_discount)) as sum_disc_price,\n\tsum(l_extendedprice * (1 - l_discount) *
(1 + l_tax)) as sum_charge,\n\tavg(l_quantity) as
avg_qty,\n\tavg(l_extendedprice) as avg_price,\n\tavg(l_discount) as
avg_disc,\n\tcount(*) as count_order\nfrom\n\tlineitem\nwhere\n\tl_shipdate <=
date \\'1998-12-01\\' - interval \\'90\\' day (3)\ngroup
by\n\tl_returnflag,\n\tl_linestatus\norder
by\n\tl_returnflag,\n\tl_linestatus;","sequential_pipe",85);
+ X_163:void := querylog.define("explain
select\n\tl_returnflag,\n\tl_linestatus,\n\tsum(l_quantity) as
sum_qty,\n\tsum(l_extendedprice) as sum_base_price,\n\tsum(l_extendedprice * (1
- l_discount)) as sum_disc_price,\n\tsum(l_extendedprice * (1 - l_discount) *
(1 + l_tax)) as sum_charge,\n\tavg(l_quantity) as
avg_qty,\n\tavg(l_extendedprice) as avg_price,\n\tavg(l_discount) as
avg_disc,\n\tcount(*) as count_order\nfrom\n\tlineitem\nwhere\n\tl_shipdate <=
date \\'1998-12-01\\' - interval \\'90\\' day (3)\ngroup
by\n\tl_returnflag,\n\tl_linestatus\norder
by\n\tl_returnflag,\n\tl_linestatus;","sequential_pipe",86);
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_183 := algebra.thetasubselect(X_11,X_8,X_19,"<=");
+ X_182 := algebra.thetasubselect(X_11,X_8,X_19,"<=");
(X_14,r1_14) := sql.bind(X_7,"sys","lineitem","l_shipdate",2);
- X_184 := algebra.thetasubselect(r1_14,X_19,"<=");
+ X_183 := algebra.thetasubselect(r1_14,nil:bat[:oid,:oid],X_19,"<=");
X_17:bat[:oid,:date] := sql.bind(X_7,"sys","lineitem","l_shipdate",1);
X_185 := algebra.thetasubselect(X_17,X_8,X_19,"<=");
- X_20 := sql.subdelta(X_183,X_8,X_14,X_184,X_185);
+ X_20 := sql.subdelta(X_182,X_8,X_14,X_183,X_185);
X_22:bat[:oid,:str] := sql.bind(X_7,"sys","lineitem","l_linestatus",0);
(X_24,r1_28) := sql.bind(X_7,"sys","lineitem","l_linestatus",2);
X_26:bat[:oid,:str] := sql.bind(X_7,"sys","lineitem","l_linestatus",1);
@@ -126,16 +126,16 @@ function user.s2_1{autoCommit=true}(A0:b
X_117 := sql.resultSet(10,1,X_49);
sql.rsColumn(X_117,"sys.lineitem","l_returnflag","char",1,0,X_49);
sql.rsColumn(X_117,"sys.lineitem","l_linestatus","char",1,0,X_50);
- sql.rsColumn(X_117,"sys.L1","sum_qty","decimal",15,2,X_64);
- sql.rsColumn(X_117,"sys.L2","sum_base_price","decimal",15,2,X_72);
+ sql.rsColumn(X_117,"sys.L1","sum_qty","decimal",19,2,X_64);
+ sql.rsColumn(X_117,"sys.L2","sum_base_price","decimal",19,2,X_72);
sql.rsColumn(X_117,"sys.L3","sum_disc_price","decimal",19,4,X_86);
sql.rsColumn(X_117,"sys.L4","sum_charge","decimal",19,6,X_104);
sql.rsColumn(X_117,"sys.L5","avg_qty","double",53,0,X_107);
sql.rsColumn(X_117,"sys.L6","avg_price","double",53,0,X_110);
sql.rsColumn(X_117,"sys.L7","avg_disc","double",53,0,X_113);
sql.rsColumn(X_117,"sys.L10","count_order","wrd",32,0,X_116);
- X_162 := io.stdout();
- sql.exportResult(X_162,X_117);
+ X_161 := io.stdout();
+ sql.exportResult(X_161,X_117);
end user.s2_1;
# 22:53:25 >
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
@@ -86,26 +86,25 @@ function user.s2_1{autoCommit=true}(A0:d
X_58:bat[:oid,:int] := sql.bind(X_5,"sys","lineitem","l_orderkey",1);
X_59 := sql.delta(X_54,X_56,r1_62,X_58);
X_60:bat[:oid,:int] := algebra.leftfetchjoinPath(X_51,X_30,X_59);
- (X_61,r1_68) := algebra.join(X_28,X_60);
- X_63 := algebra.tinter(X_29,X_61);
- X_64:bat[:oid,:str] := sql.bind(X_5,"sys","orders","o_orderpriority",0);
- (X_67,r1_74) := sql.bind(X_5,"sys","orders","o_orderpriority",2);
- X_70:bat[:oid,:str] := sql.bind(X_5,"sys","orders","o_orderpriority",1);
- X_71 := sql.delta(X_64,X_67,r1_74,X_70);
- X_72:bat[:oid,:str] := algebra.leftfetchjoinPath(X_63,X_119,X_71);
- (X_73,r1_82,r2_82) := group.subgroupdone(X_72);
- X_76 := algebra.leftfetchjoin(r1_82,X_72);
- X_81:bat[:oid,:wrd] := aggr.subcount(X_73,X_73,r1_82,false);
- (X_77,r1_86,r2_86) := algebra.subsort(X_76,false,false);
- X_80 := algebra.leftfetchjoin(r1_86,X_76);
- X_82 := algebra.leftfetchjoin(r1_86,X_81);
- X_83 := sql.resultSet(2,1,X_80);
- sql.rsColumn(X_83,"sys.orders","o_orderpriority","char",15,0,X_80);
- sql.rsColumn(X_83,"sys.L1","order_count","wrd",32,0,X_82);
- X_96 := io.stdout();
- sql.exportResult(X_96,X_83);
-end s2_1;
-# querylog.define("explain select\n\to_orderpriority,\n\tcount(*) as
order_count\nfrom\n\torders\nwhere\n\to_orderdate >= date
\\'1993-07-01\\'\n\tand o_orderdate < date \\'1993-07-01\\' + interval \\'3\\'
month\n\tand exists
(\n\t\tselect\n\t\t\t*\n\t\tfrom\n\t\t\tlineitem\n\t\twhere\n\t\t\tl_orderkey =
o_orderkey\n\t\t\tand l_commitdate < l_receiptdate\n\t)\ngroup
by\n\to_orderpriority\norder by\n\to_orderpriority;","sequential_pipe")
+ (X_61,r1_68) := algebra.subjoin(X_28,X_60,nil:BAT,nil:BAT,false,nil:lng);
+ X_65 := algebra.tinter(X_29,X_61);
+ X_66:bat[:oid,:str] := sql.bind(X_5,"sys","orders","o_orderpriority",0);
+ (X_70,r1_77) := sql.bind(X_5,"sys","orders","o_orderpriority",2);
+ X_72:bat[:oid,:str] := sql.bind(X_5,"sys","orders","o_orderpriority",1);
+ X_73 := sql.delta(X_66,X_70,r1_77,X_72);
+ X_74:bat[:oid,:str] := algebra.leftfetchjoinPath(X_65,X_20,X_6,X_73);
+ (X_75,r1_84,r2_84) := group.subgroupdone(X_74);
+ X_78 := algebra.leftfetchjoin(r1_84,X_74);
+ X_83:bat[:oid,:wrd] := aggr.subcount(X_75,X_75,r1_84,false);
+ (X_79,r1_88,r2_88) := algebra.subsort(X_78,false,false);
+ X_82 := algebra.leftfetchjoin(r1_88,X_78);
+ X_85 := algebra.leftfetchjoin(r1_88,X_83);
+ X_86 := sql.resultSet(2,1,X_82);
+ sql.rsColumn(X_86,"sys.orders","o_orderpriority","char",15,0,X_82);
+ sql.rsColumn(X_86,"sys.L1","order_count","wrd",32,0,X_85);
+ X_99 := io.stdout();
+ sql.exportResult(X_99,X_86);
+end user.s2_1;
# 22:53:26 >
# 22:53:26 > "Done."
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
@@ -53,120 +53,119 @@ Ready.
% .explain # table_name
% mal # name
% clob # type
-% 571 # length
+% 592 # length
function user.s2_1{autoCommit=true}(A0:bte,A1:str,A2:date,A3:date,A4:int):void;
+ X_202:void := querylog.define("explain
select\n\tn_name,\n\tsum(l_extendedprice * (1 - l_discount)) as
revenue\nfrom\n\tcustomer,\n\torders,\n\tlineitem,\n\tsupplier,\n\tnation,\n\tregion\nwhere\n\tc_custkey
= o_custkey\n\tand l_orderkey = o_orderkey\n\tand l_suppkey = s_suppkey\n\tand
c_nationkey = s_nationkey\n\tand s_nationkey = n_nationkey\n\tand n_regionkey =
r_regionkey\n\tand r_name = \\'ASIA\\'\n\tand o_orderdate >= date
\\'1994-01-01\\'\n\tand o_orderdate < date \\'1994-01-01\\' + interval \\'1\\'
year\ngroup by\n\tn_name\norder by\n\trevenue desc;","sequential_pipe",112);
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_236 := algebra.subselect(X_11,X_8,A2,X_19,true,false,false);
+ X_242 := 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_237 := algebra.subselect(r1_14,A2,X_19,true,false,false);
+ X_243 :=
algebra.subselect(r1_14,nil:bat[:oid,:oid],A2,X_19,true,false,false);
X_17:bat[:oid,:date] := sql.bind(X_7,"sys","orders","o_orderdate",1);
- X_238 := algebra.subselect(X_17,X_8,A2,X_19,true,false,false);
- X_20 := sql.subdelta(X_236,X_8,X_14,X_237,X_238);
+ X_245 := algebra.subselect(X_17,X_8,A2,X_19,true,false,false);
+ X_20 := sql.subdelta(X_242,X_8,X_14,X_243,X_245);
X_22:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","orders","orders_o_custkey_fkey",0);
(X_24,r1_29) :=
sql.bind_idxbat(X_7,"sys","orders","orders_o_custkey_fkey",2);
X_26:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","orders","orders_o_custkey_fkey",1);
X_27 := sql.projectdelta(X_20,X_22,X_24,r1_29,X_26);
X_28:bat[:oid,:oid] := sql.tid(X_7,"sys","customer");
- (X_30,r1_37) := algebra.join(X_27,X_28);
- X_32 := X_20;
- X_33 := algebra.leftfetchjoin(X_30,X_32);
- X_34:bat[:oid,:oid] := sql.tid(X_7,"sys","lineitem");
- X_37:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","lineitem","lineitem_l_orderkey_fkey",0);
- (X_40,r1_47) :=
sql.bind_idxbat(X_7,"sys","lineitem","lineitem_l_orderkey_fkey",2);
- X_43:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","lineitem","lineitem_l_orderkey_fkey",1);
- X_45 := sql.projectdelta(X_34,X_37,X_40,r1_47,X_43);
- (X_46,r1_54) := algebra.join(X_33,X_45);
- X_48:bat[:oid,:int] := sql.bind(X_7,"sys","lineitem","l_suppkey",0);
- (X_50,r1_58) := sql.bind(X_7,"sys","lineitem","l_suppkey",2);
- X_52:bat[:oid,:int] := sql.bind(X_7,"sys","lineitem","l_suppkey",1);
- X_53 := sql.projectdelta(X_34,X_48,X_50,r1_58,X_52);
- X_54 := algebra.leftfetchjoin(r1_54,X_53);
- X_55:bat[:oid,:wrd] := batmkey.hash(X_54);
- X_57:bat[:oid,:int] := sql.bind(X_7,"sys","customer","c_nationkey",0);
- (X_60,r1_72) := sql.bind(X_7,"sys","customer","c_nationkey",2);
- X_62:bat[:oid,:int] := sql.bind(X_7,"sys","customer","c_nationkey",1);
- X_64 := sql.projectdelta(X_28,X_57,X_60,r1_72,X_62);
- X_65:bat[:oid,:int] := algebra.leftfetchjoinPath(X_46,r1_37,X_64);
- X_66:bat[:oid,:wrd] := mkey.bulk_rotate_xor_hash(X_55,11,X_65);
- X_67:bat[:oid,:oid] := sql.tid(X_7,"sys","supplier");
- X_69:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_suppkey",0);
- (X_72,r1_86) := sql.bind(X_7,"sys","supplier","s_suppkey",2);
- X_75:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_suppkey",1);
- X_77 := sql.projectdelta(X_67,X_69,X_72,r1_86,X_75);
- X_78:bat[:oid,:wrd] := batmkey.hash(X_77);
- X_79:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_nationkey",0);
- (X_81,r1_97) := sql.bind(X_7,"sys","supplier","s_nationkey",2);
- X_83:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_nationkey",1);
- X_84 := sql.projectdelta(X_67,X_79,X_81,r1_97,X_83);
- X_85:bat[:oid,:wrd] := mkey.bulk_rotate_xor_hash(X_78,11,X_84);
- (X_86,r1_103) := algebra.join(X_66,X_85);
- X_88 := algebra.leftfetchjoin(X_86,X_54);
- X_89 := algebra.leftfetchjoin(r1_103,X_77);
- X_90:bat[:oid,:bit] := batcalc.==(X_88,X_89);
- X_92 := algebra.subselect(X_90,true,true,true,true,false);
- X_94 := algebra.leftfetchjoin(X_92,X_86);
- X_95 := algebra.leftfetchjoin(X_94,X_65);
- X_96 := algebra.leftfetchjoin(X_92,r1_103);
- X_97 := algebra.leftfetchjoin(X_96,X_84);
- X_98:bat[:oid,:bit] := batcalc.==(X_95,X_97);
- X_99 := algebra.subselect(X_98,true,true,true,true,false);
- X_100:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","supplier","supplier_s_nationkey_fkey",0);
- (X_105,r1_127) :=
sql.bind_idxbat(X_7,"sys","supplier","supplier_s_nationkey_fkey",2);
- X_108:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","supplier","supplier_s_nationkey_fkey",1);
- X_110 := sql.projectdelta(X_67,X_100,X_105,r1_127,X_108);
- X_111:bat[:oid,:oid] := algebra.leftfetchjoinPath(X_99,X_96,X_110);
- X_112:bat[:oid,:oid] := sql.tid(X_7,"sys","nation");
- (X_114,r1_137) := algebra.join(X_111,X_112);
- X_116:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","nation","nation_n_regionkey_fkey",0);
- (X_118,r1_141) :=
sql.bind_idxbat(X_7,"sys","nation","nation_n_regionkey_fkey",2);
- X_120:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","nation","nation_n_regionkey_fkey",1);
- X_121 := sql.projectdelta(X_112,X_116,X_118,r1_141,X_120);
- X_122 := algebra.leftfetchjoin(r1_137,X_121);
- X_125:bat[:oid,:str] := sql.bind(X_7,"sys","region","r_name",0);
- X_123:bat[:oid,:oid] := sql.tid(X_7,"sys","region");
- X_239 := algebra.subselect(X_125,X_123,A1,A1,true,true,false);
- (X_127,r1_151) := sql.bind(X_7,"sys","region","r_name",2);
- X_240 := algebra.subselect(r1_151,A1,A1,true,true,false);
- X_129:bat[:oid,:str] := sql.bind(X_7,"sys","region","r_name",1);
- X_241 := algebra.subselect(X_129,X_123,A1,A1,true,true,false);
- X_130 := sql.subdelta(X_239,X_123,X_127,X_240,X_241);
- X_133 := X_130;
- (X_134,r1_161) := algebra.join(X_122,X_133);
- X_242 := algebra.leftfetchjoin(X_134,X_114);
- X_136 := algebra.leftfetchjoin(X_99,X_94);
- X_137:bat[:oid,:lng] :=
sql.bind(X_7,"sys","lineitem","l_extendedprice",0);
- (X_142,r1_169) := sql.bind(X_7,"sys","lineitem","l_extendedprice",2);
- X_145:bat[:oid,:lng] :=
sql.bind(X_7,"sys","lineitem","l_extendedprice",1);
- X_147 := sql.projectdelta(X_34,X_137,X_142,r1_169,X_145);
- X_148:bat[:oid,:lng] :=
algebra.leftfetchjoinPath(X_242,X_136,r1_54,X_147);
- X_149 := calc.lng(A0,15,2);
- X_151:bat[:oid,:lng] := sql.bind(X_7,"sys","lineitem","l_discount",0);
- (X_153,r1_185) := sql.bind(X_7,"sys","lineitem","l_discount",2);
- X_155:bat[:oid,:lng] := sql.bind(X_7,"sys","lineitem","l_discount",1);
- X_156 := sql.projectdelta(X_34,X_151,X_153,r1_185,X_155);
- X_157:bat[:oid,:lng] :=
algebra.leftfetchjoinPath(X_242,X_136,r1_54,X_156);
- X_158:bat[:oid,:lng] := batcalc.-(X_149,X_157);
- X_159:bat[:oid,:lng] := batcalc.*(X_148,X_158);
- X_160:bat[:oid,:str] := sql.bind(X_7,"sys","nation","n_name",0);
- (X_165,r1_204) := sql.bind(X_7,"sys","nation","n_name",2);
- X_168:bat[:oid,:str] := sql.bind(X_7,"sys","nation","n_name",1);
- X_170 := sql.projectdelta(X_112,X_160,X_165,r1_204,X_168);
- X_171:bat[:oid,:str] := algebra.leftfetchjoinPath(X_134,r1_137,X_170);
- (X_172,r1_213,r2_213) := group.subgroupdone(X_171);
- X_175:bat[:oid,:lng] := aggr.subsum(X_159,X_172,r1_213,true,true);
- (X_177,r1_218,r2_218) := algebra.subsort(X_175,true,false);
- X_181:bat[:oid,:str] := algebra.leftfetchjoinPath(r1_218,r1_213,X_171);
- X_182 := algebra.leftfetchjoin(r1_218,X_175);
- X_183 := sql.resultSet(2,1,X_181);
- sql.rsColumn(X_183,"sys.nation","n_name","char",25,0,X_181);
- sql.rsColumn(X_183,"sys.L1","revenue","decimal",19,4,X_182);
- X_194 := io.stdout();
- sql.exportResult(X_194,X_183);
-end s2_1;
-# querylog.define("explain select\n\tn_name,\n\tsum(l_extendedprice * (1 -
l_discount)) as
revenue\nfrom\n\tcustomer,\n\torders,\n\tlineitem,\n\tsupplier,\n\tnation,\n\tregion\nwhere\n\tc_custkey
= o_custkey\n\tand l_orderkey = o_orderkey\n\tand l_suppkey = s_suppkey\n\tand
c_nationkey = s_nationkey\n\tand s_nationkey = n_nationkey\n\tand n_regionkey =
r_regionkey\n\tand r_name = \\'ASIA\\'\n\tand o_orderdate >= date
\\'1994-01-01\\'\n\tand o_orderdate < date \\'1994-01-01\\' + interval \\'1\\'
year\ngroup by\n\tn_name\norder by\n\trevenue desc;","sequential_pipe")
+ (X_30,r1_37) := algebra.subjoin(X_27,X_28,nil:BAT,nil:BAT,false,nil:lng);
+ X_34 := X_20;
+ X_35 := algebra.leftfetchjoin(X_30,X_34);
+ X_36:bat[:oid,:oid] := sql.tid(X_7,"sys","lineitem");
+ X_39:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","lineitem","lineitem_l_orderkey_fkey",0);
+ (X_42,r1_49) :=
sql.bind_idxbat(X_7,"sys","lineitem","lineitem_l_orderkey_fkey",2);
+ X_45:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","lineitem","lineitem_l_orderkey_fkey",1);
+ X_47 := sql.projectdelta(X_36,X_39,X_42,r1_49,X_45);
+ (X_48,r1_56) := algebra.subjoin(X_35,X_47,nil:BAT,nil:BAT,false,nil:lng);
+ X_50:bat[:oid,:int] := sql.bind(X_7,"sys","lineitem","l_suppkey",0);
+ (X_52,r1_60) := sql.bind(X_7,"sys","lineitem","l_suppkey",2);
+ X_54:bat[:oid,:int] := sql.bind(X_7,"sys","lineitem","l_suppkey",1);
+ X_55 := sql.projectdelta(X_36,X_50,X_52,r1_60,X_54);
+ X_56 := algebra.leftfetchjoin(r1_56,X_55);
+ X_57:bat[:oid,:wrd] := batmkey.hash(X_56);
+ X_59:bat[:oid,:int] := sql.bind(X_7,"sys","customer","c_nationkey",0);
+ (X_62,r1_74) := sql.bind(X_7,"sys","customer","c_nationkey",2);
+ X_64:bat[:oid,:int] := sql.bind(X_7,"sys","customer","c_nationkey",1);
+ X_66 := sql.projectdelta(X_28,X_59,X_62,r1_74,X_64);
+ X_67:bat[:oid,:int] := algebra.leftfetchjoinPath(X_48,r1_37,X_66);
+ X_68:bat[:oid,:wrd] := mkey.bulk_rotate_xor_hash(X_57,11,X_67);
+ X_69:bat[:oid,:oid] := sql.tid(X_7,"sys","supplier");
+ X_71:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_suppkey",0);
+ (X_74,r1_88) := sql.bind(X_7,"sys","supplier","s_suppkey",2);
+ X_77:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_suppkey",1);
+ X_79 := sql.projectdelta(X_69,X_71,X_74,r1_88,X_77);
+ X_80:bat[:oid,:wrd] := batmkey.hash(X_79);
+ X_81:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_nationkey",0);
+ (X_83,r1_99) := sql.bind(X_7,"sys","supplier","s_nationkey",2);
+ X_85:bat[:oid,:int] := sql.bind(X_7,"sys","supplier","s_nationkey",1);
+ X_86 := sql.projectdelta(X_69,X_81,X_83,r1_99,X_85);
+ X_87:bat[:oid,:wrd] := mkey.bulk_rotate_xor_hash(X_80,11,X_86);
+ (X_88,r1_105) := algebra.subjoin(X_68,X_87,nil:BAT,nil:BAT,false,nil:lng);
+ X_93 := algebra.leftfetchjoin(X_88,X_56);
+ X_94 := algebra.leftfetchjoin(r1_105,X_79);
+ X_95:bat[:oid,:bit] := batcalc.==(X_93,X_94);
+ X_97 := algebra.subselect(X_95,true,true,true,true,false);
+ X_98 := algebra.leftfetchjoin(X_97,X_88);
+ X_99 := algebra.leftfetchjoin(X_98,X_67);
+ X_100 := algebra.leftfetchjoin(X_97,r1_105);
+ X_101 := algebra.leftfetchjoin(X_100,X_86);
+ X_102:bat[:oid,:bit] := batcalc.==(X_99,X_101);
+ X_103 := algebra.subselect(X_102,true,true,true,true,false);
+ X_104:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","supplier","supplier_s_nationkey_fkey",0);
+ (X_109,r1_131) :=
sql.bind_idxbat(X_7,"sys","supplier","supplier_s_nationkey_fkey",2);
+ X_112:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","supplier","supplier_s_nationkey_fkey",1);
+ X_114 := sql.projectdelta(X_69,X_104,X_109,r1_131,X_112);
+ X_115:bat[:oid,:oid] := algebra.leftfetchjoinPath(X_103,X_100,X_114);
+ X_116:bat[:oid,:oid] := sql.tid(X_7,"sys","nation");
+ (X_118,r1_141) :=
algebra.subjoin(X_115,X_116,nil:BAT,nil:BAT,false,nil:lng);
+ X_123:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","nation","nation_n_regionkey_fkey",0);
+ (X_125,r1_148) :=
sql.bind_idxbat(X_7,"sys","nation","nation_n_regionkey_fkey",2);
+ X_127:bat[:oid,:oid] :=
sql.bind_idxbat(X_7,"sys","nation","nation_n_regionkey_fkey",1);
+ X_128 := sql.projectdelta(X_116,X_123,X_125,r1_148,X_127);
+ X_129 := algebra.leftfetchjoin(r1_141,X_128);
+ X_132:bat[:oid,:str] := sql.bind(X_7,"sys","region","r_name",0);
+ X_130:bat[:oid,:oid] := sql.tid(X_7,"sys","region");
+ X_246 := algebra.subselect(X_132,X_130,A1,A1,true,true,false);
+ (X_134,r1_158) := sql.bind(X_7,"sys","region","r_name",2);
+ X_247 :=
algebra.subselect(r1_158,nil:bat[:oid,:oid],A1,A1,true,true,false);
+ X_137:bat[:oid,:str] := sql.bind(X_7,"sys","region","r_name",1);
+ X_249 := algebra.subselect(X_137,X_130,A1,A1,true,true,false);
+ X_138 := sql.subdelta(X_246,X_130,X_134,X_247,X_249);
+ X_140 := X_138;
+ (X_141,r1_168) :=
algebra.subjoin(X_129,X_140,nil:BAT,nil:BAT,false,nil:lng);
+ X_143 := algebra.leftfetchjoin(X_103,X_98);
+ X_144:bat[:oid,:lng] := sql.bind(X_7,"sys","lineitem","l_extendedprice",0);
+ (X_148,r1_175) := sql.bind(X_7,"sys","lineitem","l_extendedprice",2);
+ X_151:bat[:oid,:lng] := sql.bind(X_7,"sys","lineitem","l_extendedprice",1);
+ X_153 := sql.projectdelta(X_36,X_144,X_148,r1_175,X_151);
+ X_154:bat[:oid,:lng] :=
algebra.leftfetchjoinPath(X_141,X_118,X_143,r1_56,X_153);
+ X_155 := calc.lng(A0,15,2);
+ X_157:bat[:oid,:lng] := sql.bind(X_7,"sys","lineitem","l_discount",0);
+ (X_159,r1_191) := sql.bind(X_7,"sys","lineitem","l_discount",2);
+ X_162:bat[:oid,:lng] := sql.bind(X_7,"sys","lineitem","l_discount",1);
+ X_163 := sql.projectdelta(X_36,X_157,X_159,r1_191,X_162);
+ X_164:bat[:oid,:lng] :=
algebra.leftfetchjoinPath(X_141,X_118,X_143,r1_56,X_163);
+ X_165:bat[:oid,:lng] := batcalc.-(X_155,X_164);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list