Changeset: 041d7927d2e1 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=041d7927d2e1 Modified Files: sql/benchmarks/tpch/Tests/01-explain.stable.out sql/benchmarks/tpch/Tests/01-plan.stable.out sql/benchmarks/tpch/Tests/02-explain.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/10-explain.stable.out sql/benchmarks/tpch/Tests/18-explain.stable.out sql/benchmarks/tpch/Tests/21-explain.stable.out Branch: default Log Message:
approved output. Plan changes because of stricter groupby/select expression ordering. Explains changed because of plan and/or new topn implementation. diffs (truncated from 1120 to 300 lines): 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,18 +62,18 @@ function user.s2_1{autoCommit=true}(A0:b X_17 := sql.bind(X_7,"sys","lineitem","l_shipdate",1); X_186 := algebra.thetasubselect(X_17,X_8,X_19,"<="); X_20 := sql.subdelta(X_184,X_8,X_14,X_185,X_186); - 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_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_34,r1_42,r2_42) := group.subgroup(X_33); (X_37,r1_45,r2_45) := group.subgroupdone(X_27,X_34); - X_40 := algebra.leftfetchjoin(r1_45,X_33); - X_41 := algebra.leftfetchjoin(r1_45,X_27); + X_40 := algebra.leftfetchjoin(r1_45,X_27); + X_41 := algebra.leftfetchjoin(r1_45,X_33); X_51 := sql.bind(X_7,"sys","lineitem","l_quantity",0); (X_56,r1_64) := sql.bind(X_7,"sys","lineitem","l_quantity",2); X_59 := 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/02-explain.stable.out b/sql/benchmarks/tpch/Tests/02-explain.stable.out --- a/sql/benchmarks/tpch/Tests/02-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/02-explain.stable.out @@ -74,12 +74,12 @@ function user.s2_1{autoCommit=true}(A0:i X_18 := sql.projectdelta(X_7,X_10,X_13,r1_13,X_16); X_21 := sql.bind(X_6,"sys","region","r_name",0); X_19:bat[:oid,:oid] := sql.tid(X_6,"sys","region"); - X_326 := algebra.subselect(X_21,X_19,A3,A3,true,true,false); + X_336 := algebra.subselect(X_21,X_19,A3,A3,true,true,false); (X_23,r1_24) := sql.bind(X_6,"sys","region","r_name",2); - X_327 := algebra.subselect(r1_24,A3,A3,true,true,false); + X_337 := algebra.subselect(r1_24,A3,A3,true,true,false); X_25 := sql.bind(X_6,"sys","region","r_name",1); - X_328 := algebra.subselect(X_25,X_19,A3,A3,true,true,false); - X_26 := sql.subdelta(X_326,X_19,X_23,X_327,X_328); + X_338 := algebra.subselect(X_25,X_19,A3,A3,true,true,false); + X_26 := sql.subdelta(X_336,X_19,X_23,X_337,X_338); X_28 := X_26; (X_29,r1_33) := algebra.join(X_18,X_28); X_31 := algebra.leftfetchjoin(X_29,X_7); @@ -108,18 +108,18 @@ function user.s2_1{autoCommit=true}(A0:i X_73 := sql.bind(X_6,"sys","part","p_type",0); X_79 := sql.bind(X_6,"sys","part","p_size",0); X_71:bat[:oid,:oid] := sql.tid(X_6,"sys","part"); - X_329 := algebra.subselect(X_79,X_71,A0,A0,true,true,false); + X_339 := algebra.subselect(X_79,X_71,A0,A0,true,true,false); (X_82,r1_95) := sql.bind(X_6,"sys","part","p_size",2); - X_330 := algebra.subselect(r1_95,A0,A0,true,true,false); + X_340 := algebra.subselect(r1_95,A0,A0,true,true,false); X_85 := sql.bind(X_6,"sys","part","p_size",1); - X_331 := algebra.subselect(X_85,X_71,A0,A0,true,true,false); - X_87 := sql.subdelta(X_329,X_71,X_82,X_330,X_331); - X_332 := algebra.likesubselect(X_73,X_87,A1,"",false); + X_341 := algebra.subselect(X_85,X_71,A0,A0,true,true,false); + X_87 := sql.subdelta(X_339,X_71,X_82,X_340,X_341); + X_342 := algebra.likesubselect(X_73,X_87,A1,"",false); (X_75,r1_84) := sql.bind(X_6,"sys","part","p_type",2); - X_333 := algebra.likesubselect(r1_84,A1,"",false); + X_343 := algebra.likesubselect(r1_84,A1,"",false); X_77 := sql.bind(X_6,"sys","part","p_type",1); - X_334 := algebra.likesubselect(X_77,X_87,A1,"",false); - X_90 := sql.subdelta(X_332,X_87,X_75,X_333,X_334); + X_344 := algebra.likesubselect(X_77,X_87,A1,"",false); + X_90 := sql.subdelta(X_342,X_87,X_75,X_343,X_344); X_91 := X_90; (X_92,r1_108) := algebra.join(X_70,X_91); X_95 := algebra.leftfetchjoin(X_92,X_54); @@ -134,101 +134,101 @@ function user.s2_1{autoCommit=true}(A0:i X_112 := algebra.leftfetchjoin(r1_134,X_111); X_116 := sql.bind(X_6,"sys","region","r_name",0); X_113:bat[:oid,:oid] := sql.tid(X_6,"sys","region"); - X_335 := algebra.subselect(X_116,X_113,A2,A2,true,true,false); + X_345 := algebra.subselect(X_116,X_113,A2,A2,true,true,false); (X_118,r1_152) := sql.bind(X_6,"sys","region","r_name",2); - X_336 := algebra.subselect(r1_152,A2,A2,true,true,false); + X_346 := algebra.subselect(r1_152,A2,A2,true,true,false); X_120 := sql.bind(X_6,"sys","region","r_name",1); - X_337 := algebra.subselect(X_120,X_113,A2,A2,true,true,false); - X_121 := sql.subdelta(X_335,X_113,X_118,X_336,X_337); + X_347 := algebra.subselect(X_120,X_113,A2,A2,true,true,false); + X_121 := sql.subdelta(X_345,X_113,X_118,X_346,X_347); X_124 := X_121; (X_125,r1_162) := algebra.join(X_112,X_124); - X_338 := algebra.leftfetchjoin(X_125,X_101); + X_348 := algebra.leftfetchjoin(X_125,X_101); X_127 := sql.bind(X_6,"sys","part","p_partkey",0); (X_130,r1_167) := sql.bind(X_6,"sys","part","p_partkey",2); X_132 := sql.bind(X_6,"sys","part","p_partkey",1); X_133 := sql.projectdelta(X_90,X_127,X_130,r1_167,X_132); - X_134:bat[:oid,:int] := algebra.leftfetchjoinPath(X_338,X_96,r1_108,X_133); + X_134:bat[:oid,:int] := algebra.leftfetchjoinPath(X_348,X_96,r1_108,X_133); (X_135,r1_177) := algebra.join(X_63,X_134); X_137:bat[:oid,:oid] := batcalc.identity(X_134); X_138 := algebra.leftfetchjoin(r1_177,X_137); (X_139,r1_183,r2_183) := group.subgroupdone(X_138); - X_339 := algebra.leftfetchjoin(r1_183,r1_177); + X_349 := algebra.leftfetchjoin(r1_183,r1_177); X_142 := sql.bind(X_6,"sys","partsupp","ps_supplycost",0); (X_147,r1_191) := sql.bind(X_6,"sys","partsupp","ps_supplycost",2); X_150 := sql.bind(X_6,"sys","partsupp","ps_supplycost",1); X_152 := sql.projectdelta(X_44,X_142,X_147,r1_191,X_150); X_154:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_135,r1_61,X_152); X_155:bat[:oid,:lng] := aggr.submin(X_154,X_139,r1_183,true); - X_153:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_339,X_125,X_101,X_96,X_92,X_152); + X_153:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_349,X_125,X_101,X_96,X_92,X_152); X_157:bat[:oid,:bit] := batcalc.==(X_153,X_155); X_158 := algebra.subselect(X_157,true,true,true,true,false); - X_340 := algebra.leftfetchjoin(X_158,r1_183); - X_160 := sql.bind(X_6,"sys","supplier","s_acctbal",0); - (X_165,r1_224) := sql.bind(X_6,"sys","supplier","s_acctbal",2); - X_168 := sql.bind(X_6,"sys","supplier","s_acctbal",1); - X_170 := sql.projectdelta(X_32,X_160,X_165,r1_224,X_168); - X_171:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_340,r1_177,X_125,X_101,r1_122,X_170); - X_172 := pqueue.utopn_min(X_171,100:wrd); - X_173 := bat.mirror(X_172); - X_174 := sql.bind(X_6,"sys","nation","n_name",0); - (X_177,r1_247) := sql.bind(X_6,"sys","nation","n_name",2); - X_179 := sql.bind(X_6,"sys","nation","n_name",1); - X_180 := sql.projectdelta(X_99,X_174,X_177,r1_247,X_179); - X_181:bat[:oid,:str] := algebra.leftfetchjoinPath(X_340,r1_177,X_125,r1_134,X_180); - X_182 := algebra.leftjoin(X_173,X_181); - X_183 := pqueue.utopn_max(X_172,X_182,100:wrd); - X_184 := bat.mirror(X_183); - X_185 := sql.bind(X_6,"sys","supplier","s_name",0); - (X_190,r1_267) := sql.bind(X_6,"sys","supplier","s_name",2); - X_193 := sql.bind(X_6,"sys","supplier","s_name",1); - X_195 := sql.projectdelta(X_32,X_185,X_190,r1_267,X_193); - X_196:bat[:oid,:str] := algebra.leftfetchjoinPath(X_340,r1_177,X_125,X_101,r1_122,X_195); - X_197 := algebra.leftjoin(X_184,X_196); - X_199 := pqueue.utopn_max(X_183,X_197,100:wrd); - X_200 := bat.mirror(X_199); - X_201:bat[:oid,:int] := algebra.leftfetchjoinPath(X_340,r1_177,X_134); - X_202 := algebra.leftjoin(X_200,X_201); - X_203 := pqueue.topn_max(X_199,X_202,100:wrd); - X_205 := algebra.markT(X_203,0@0); - X_206 := bat.reverse(X_205); - X_213 := sql.bind(X_6,"sys","part","p_mfgr",0); - (X_218,r1_316) := sql.bind(X_6,"sys","part","p_mfgr",2); - X_221 := sql.bind(X_6,"sys","part","p_mfgr",1); - X_223 := sql.projectdelta(X_90,X_213,X_218,r1_316,X_221); - X_207 := algebra.leftfetchjoin(X_206,X_171); - X_208 := algebra.subslice(X_207,0:wrd,99:wrd); - X_341 := algebra.leftfetchjoin(X_208,X_206); - X_224:bat[:oid,:str] := algebra.leftfetchjoinPath(X_341,X_158,r1_183,r1_177,X_125,X_101,X_96,r1_108,X_223); - X_225 := sql.bind(X_6,"sys","supplier","s_address",0); - (X_228,r1_336) := sql.bind(X_6,"sys","supplier","s_address",2); - X_230 := sql.bind(X_6,"sys","supplier","s_address",1); - X_231 := sql.projectdelta(X_32,X_225,X_228,r1_336,X_230); - X_232:bat[:oid,:str] := algebra.leftfetchjoinPath(X_341,X_158,r1_183,r1_177,X_125,X_101,r1_122,X_231); - X_233 := sql.bind(X_6,"sys","supplier","s_phone",0); - (X_237,r1_353) := sql.bind(X_6,"sys","supplier","s_phone",2); - X_240 := sql.bind(X_6,"sys","supplier","s_phone",1); - X_242 := sql.projectdelta(X_32,X_233,X_237,r1_353,X_240); - X_243:bat[:oid,:str] := algebra.leftfetchjoinPath(X_341,X_158,r1_183,r1_177,X_125,X_101,r1_122,X_242); - X_244 := sql.bind(X_6,"sys","supplier","s_comment",0); - (X_247,r1_371) := sql.bind(X_6,"sys","supplier","s_comment",2); - X_249 := sql.bind(X_6,"sys","supplier","s_comment",1); - X_250 := sql.projectdelta(X_32,X_244,X_247,r1_371,X_249); - X_251:bat[:oid,:str] := algebra.leftfetchjoinPath(X_341,X_158,r1_183,r1_177,X_125,X_101,r1_122,X_250); - X_209 := algebra.leftfetchjoin(X_208,X_207); - X_212:bat[:oid,:int] := algebra.leftfetchjoin(X_341,X_201); - X_211:bat[:oid,:str] := algebra.leftfetchjoin(X_341,X_181); - X_210:bat[:oid,:str] := algebra.leftfetchjoin(X_341,X_196); - X_252 := sql.resultSet(8,1,X_209); - sql.rsColumn(X_252,"sys.supplier","s_acctbal","decimal",15,2,X_209); - sql.rsColumn(X_252,"sys.supplier","s_name","varchar",25,0,X_210); - sql.rsColumn(X_252,"sys.nation","n_name","varchar",25,0,X_211); - sql.rsColumn(X_252,"sys.part","p_partkey","int",32,0,X_212); - sql.rsColumn(X_252,"sys.part","p_mfgr","varchar",25,0,X_224); - sql.rsColumn(X_252,"sys.supplier","s_address","varchar",40,0,X_232); - sql.rsColumn(X_252,"sys.supplier","s_phone","varchar",15,0,X_243); - sql.rsColumn(X_252,"sys.supplier","s_comment","varchar",101,0,X_251); - X_283 := io.stdout(); - sql.exportResult(X_283,X_252); + X_350 := algebra.leftfetchjoin(X_158,r1_183); + r1_285:bat[:oid,:int] := algebra.leftfetchjoinPath(X_350,r1_177,X_134); + X_161 := sql.bind(X_6,"sys","supplier","s_name",0); + (X_166,r1_227) := sql.bind(X_6,"sys","supplier","s_name",2); + X_169 := sql.bind(X_6,"sys","supplier","s_name",1); + X_171 := sql.projectdelta(X_32,X_161,X_166,r1_227,X_169); + X_172:bat[:oid,:str] := algebra.leftfetchjoinPath(X_350,r1_177,X_125,X_101,r1_122,X_171); + X_173 := sql.bind(X_6,"sys","nation","n_name",0); + (X_176,r1_243) := sql.bind(X_6,"sys","nation","n_name",2); + X_178 := sql.bind(X_6,"sys","nation","n_name",1); + X_179 := sql.projectdelta(X_99,X_173,X_176,r1_243,X_178); + X_180:bat[:oid,:str] := algebra.leftfetchjoinPath(X_350,r1_177,X_125,r1_134,X_179); + X_181 := sql.bind(X_6,"sys","supplier","s_acctbal",0); + (X_183,r1_255) := sql.bind(X_6,"sys","supplier","s_acctbal",2); + X_187 := sql.bind(X_6,"sys","supplier","s_acctbal",1); + X_188 := sql.projectdelta(X_32,X_181,X_183,r1_255,X_187); + X_189:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_350,r1_177,X_125,X_101,r1_122,X_188); + (X_190,r1_273) := pqueue.topn_min(X_189,100:wrd); + (X_192,r1_277) := pqueue.topn_max(X_180,X_190,r1_273,100:wrd); + (X_194,r1_281) := pqueue.topn_max(X_172,X_192,r1_277,100:wrd); + X_196 := pqueue.topn_max(r1_285,X_194,r1_281,100:wrd); + X_223 := sql.bind(X_6,"sys","part","p_mfgr",0); + (X_228,r1_325) := sql.bind(X_6,"sys","part","p_mfgr",2); + X_231 := sql.bind(X_6,"sys","part","p_mfgr",1); + X_232 := sql.projectdelta(X_90,X_223,X_228,r1_325,X_231); + X_197 := algebra.leftfetchjoin(X_196,r1_285); + X_198 := algebra.leftfetchjoin(X_196,X_172); + X_199 := algebra.leftfetchjoin(X_196,X_180); + X_200 := algebra.leftfetchjoin(X_196,X_189); + (X_201,r1_290,r2_290) := algebra.subsort(X_200,true,false); + (X_206,r1_295,r2_295) := algebra.subsort(X_199,r1_290,r2_290,false,false); + (X_209,r1_298,r2_298) := algebra.subsort(X_198,r1_295,r2_295,false,false); + (X_212,r1_301,r2_301) := algebra.subsort(X_197,r1_298,r2_298,false,false); + X_215 := algebra.leftfetchjoin(r1_301,X_200); + X_218 := algebra.subslice(X_215,0:wrd,99:wrd); + X_351 := algebra.leftfetchjoin(X_218,r1_301); + X_233:bat[:oid,:str] := algebra.leftfetchjoinPath(X_351,X_196,X_158,r1_183,r1_177,X_125,X_101,X_96,r1_108,X_232); + X_234 := sql.bind(X_6,"sys","supplier","s_address",0); + (X_237,r1_345) := sql.bind(X_6,"sys","supplier","s_address",2); + X_239 := sql.bind(X_6,"sys","supplier","s_address",1); + X_241 := sql.projectdelta(X_32,X_234,X_237,r1_345,X_239); + X_242:bat[:oid,:str] := algebra.leftfetchjoinPath(X_351,X_196,X_158,r1_183,r1_177,X_125,X_101,r1_122,X_241); + X_243 := sql.bind(X_6,"sys","supplier","s_phone",0); + (X_247,r1_364) := sql.bind(X_6,"sys","supplier","s_phone",2); + X_250 := sql.bind(X_6,"sys","supplier","s_phone",1); + X_251 := sql.projectdelta(X_32,X_243,X_247,r1_364,X_250); + X_252:bat[:oid,:str] := algebra.leftfetchjoinPath(X_351,X_196,X_158,r1_183,r1_177,X_125,X_101,r1_122,X_251); + X_253 := sql.bind(X_6,"sys","supplier","s_comment",0); + (X_256,r1_382) := sql.bind(X_6,"sys","supplier","s_comment",2); + X_258 := sql.bind(X_6,"sys","supplier","s_comment",1); + X_260 := sql.projectdelta(X_32,X_253,X_256,r1_382,X_258); + X_261:bat[:oid,:str] := algebra.leftfetchjoinPath(X_351,X_196,X_158,r1_183,r1_177,X_125,X_101,r1_122,X_260); + X_219 := algebra.leftfetchjoin(X_218,X_215); + X_222:bat[:oid,:int] := algebra.leftfetchjoin(X_351,X_197); + X_221:bat[:oid,:str] := algebra.leftfetchjoin(X_351,X_199); + X_220:bat[:oid,:str] := algebra.leftfetchjoin(X_351,X_198); + X_262 := sql.resultSet(8,1,X_219); + sql.rsColumn(X_262,"sys.supplier","s_acctbal","decimal",15,2,X_219); + sql.rsColumn(X_262,"sys.supplier","s_name","varchar",25,0,X_220); + sql.rsColumn(X_262,"sys.nation","n_name","varchar",25,0,X_221); + sql.rsColumn(X_262,"sys.part","p_partkey","int",32,0,X_222); + sql.rsColumn(X_262,"sys.part","p_mfgr","varchar",25,0,X_233); + sql.rsColumn(X_262,"sys.supplier","s_address","varchar",40,0,X_242); + sql.rsColumn(X_262,"sys.supplier","s_phone","varchar",15,0,X_252); + sql.rsColumn(X_262,"sys.supplier","s_comment","varchar",101,0,X_261); + X_293 := io.stdout(); + sql.exportResult(X_293,X_262); end s2_1; # querylog.define("explain select\n\ts_acctbal,\n\ts_name,\n\tn_name,\n\tp_partkey,\n\tp_mfgr,\n\ts_address,\n\ts_phone,\n\ts_comment\nfrom\n\tpart,\n\tsupplier,\n\tpartsupp,\n\tnation,\n\tregion\nwhere\n\tp_partkey = ps_partkey\n\tand s_suppkey = ps_suppkey\n\tand p_size = 15\n\tand p_type like \\'%BRASS\\'\n\tand s_nationkey = n_nationkey\n\tand n_regionkey = r_regionkey\n\tand r_name = \\'EUROPE\\'\n\tand ps_supplycost = (\n\t\tselect\n\t\t\tmin(ps_supplycost)\n\t\tfrom\n\t\t\tpartsupp,\n\t\t\tsupplier,\n\t\t\tnation,\n\t\t\tregion\n\t\twhere\n\t\t\tp_partkey = ps_partkey\n\t\t\tand s_suppkey = ps_suppkey\n\t\t\tand s_nationkey = n_nationkey\n\t\t\tand n_regionkey = r_regionkey\n\t\t\tand r_name = \\'EUROPE\\'\n\t)\norder by\n\ts_acctbal desc,\n\tn_name,\n\ts_name,\n\tp_partkey\nlimit 100;","sequential_pipe") 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,93 +57,93 @@ 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_188 := 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_189 := 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_190 := algebra.thetasubselect(X_16,X_7,A2,"<"); + X_18 := sql.subdelta(X_188,X_7,X_13,X_189,X_190); 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_191 := 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_192 := 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_193 := algebra.subselect(X_32,X_26,A1,A1,true,true,false); + X_33 := sql.subdelta(X_191,X_26,X_30,X_192,X_193); X_36 := X_33; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list