START TRANSACTION; auto commit mode: off EXPLAIN select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue from customer, orders, lineitem, supplier, nation, region where c_custkey = o_custkey and l_orderkey = o_orderkey and l_suppkey = s_suppkey and c_nationkey = s_nationkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'MIDDLE EAST' and o_orderdate >= date '1995-01-01' and o_orderdate < date '1995-01-01' + interval '1' year group by n_name order by revenue desc; +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | mal | +===========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ | function user.s1_1(A0:bte,A1:str,A2:date,A3:date,A4:int):void; | | X_224:void := querylog.define("explain\n\n\nselect\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 = \\'MIDDLE EAST\\'\n\tand o_orderdate >= date \\'1995-01-01\\'\n\tand o_orderdate < date \\'1995-01-01\\' + interval \\'1\\' year\ngroup by\n\tn_name\norder by\n\trevenue desc;","default_pipe",155); | | barrier X_294 := language.dataflow(); | | X_196 := bat.new(nil:oid,nil:str); | | X_204 := bat.append(X_196,"sys.nation"); | | X_214 := bat.append(X_204,"sys.L1"); | | X_199 := bat.new(nil:oid,nil:str); | | X_206 := bat.append(X_199,"n_name"); | | X_216 := bat.append(X_206,"revenue"); | | X_200 := bat.new(nil:oid,nil:str); | | X_208 := bat.append(X_200,"char"); | | X_218 := bat.append(X_208,"decimal"); | | X_201 := bat.new(nil:oid,nil:int); | | X_210 := bat.append(X_201,25); | | X_220 := bat.append(X_210,39); | | X_203 := bat.new(nil:oid,nil:int); | | X_212 := bat.append(X_203,0); | | X_222 := bat.append(X_212,4); | | X_6 := sql.mvc(); | | X_7:bat[:oid,:oid] := sql.tid(X_6,"sys","lineitem"); | | X_10:bat[:oid,:int] := sql.bind(X_6,"sys","lineitem","l_orderkey",0); | | (X_13,r1_13) := sql.bind(X_6,"sys","lineitem","l_orderkey",2); | | X_16:bat[:oid,:int] := sql.bind(X_6,"sys","lineitem","l_orderkey",1); | | X_18 := sql.projectdelta(X_7,X_10,X_13,r1_13,X_16); | | X_21:bat[:oid,:date] := sql.bind(X_6,"sys","orders","o_orderdate",0); | | X_19:bat[:oid,:oid] := sql.tid(X_6,"sys","orders"); | | X_26:date := mtime.addmonths(A3,A4); | | X_259 := algebra.subselect(X_21,X_19,A2,X_26,true,false,false); | | (X_23,r1_24) := sql.bind(X_6,"sys","orders","o_orderdate",2); | | X_260 := algebra.subselect(r1_24,nil:bat[:oid,:oid],A2,X_26,true,false,false); | | X_25:bat[:oid,:date] := sql.bind(X_6,"sys","orders","o_orderdate",1); | | X_262 := algebra.subselect(X_25,X_19,A2,X_26,true,false,false); | | X_27 := sql.subdelta(X_259,X_19,X_23,X_260,X_262); | | X_30:bat[:oid,:int] := sql.bind(X_6,"sys","orders","o_orderkey",0); | | (X_32,r1_38) := sql.bind(X_6,"sys","orders","o_orderkey",2); | | X_34:bat[:oid,:int] := sql.bind(X_6,"sys","orders","o_orderkey",1); | | X_36 := sql.projectdelta(X_27,X_30,X_32,r1_38,X_34); | | (X_37,r1_45) := algebra.subjoin(X_18,X_36,nil:BAT,nil:BAT,false,nil:lng); | | X_41:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","orders","order_custkey",0); | | (X_44,r1_52) := sql.bind_idxbat(X_6,"sys","orders","order_custkey",2); | | X_48:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","orders","order_custkey",1); | | X_50 := sql.projectdelta(X_27,X_41,X_44,r1_52,X_48); | | X_51 := algebra.leftfetchjoin(r1_45,X_50); | | X_52:bat[:oid,:oid] := sql.tid(X_6,"sys","customer"); | | (X_54,r1_64) := algebra.subjoin(X_51,X_52,nil:BAT,nil:BAT,false,nil:lng); | | X_56:bat[:oid,:int] := sql.bind(X_6,"sys","lineitem","l_suppkey",0); | | (X_59,r1_69) := sql.bind(X_6,"sys","lineitem","l_suppkey",2); | | X_61:bat[:oid,:int] := sql.bind(X_6,"sys","lineitem","l_suppkey",1); | | X_62 := sql.projectdelta(X_7,X_56,X_59,r1_69,X_61); | | X_63:bat[:oid,:int] := algebra.leftfetchjoinPath(X_54,X_37,X_62); | | X_64:bat[:oid,:wrd] := batmkey.hash(X_63); | | X_66:bat[:oid,:int] := sql.bind(X_6,"sys","customer","c_nationkey",0); | | (X_70,r1_85) := sql.bind(X_6,"sys","customer","c_nationkey",2); | | X_72:bat[:oid,:int] := sql.bind(X_6,"sys","customer","c_nationkey",1); | | X_73 := sql.projectdelta(X_52,X_66,X_70,r1_85,X_72); | | X_74 := algebra.leftfetchjoin(r1_64,X_73); | | X_75:bat[:oid,:wrd] := mkey.bulk_rotate_xor_hash(X_64,22,X_74); | | X_76:bat[:oid,:oid] := sql.tid(X_6,"sys","supplier"); | | X_78:bat[:oid,:int] := sql.bind(X_6,"sys","supplier","s_suppkey",0); | | (X_80,r1_96) := sql.bind(X_6,"sys","supplier","s_suppkey",2); | | X_83:bat[:oid,:int] := sql.bind(X_6,"sys","supplier","s_suppkey",1); | | X_85 := sql.projectdelta(X_76,X_78,X_80,r1_96,X_83); | | X_86:bat[:oid,:wrd] := batmkey.hash(X_85); | | X_87:bat[:oid,:int] := sql.bind(X_6,"sys","supplier","s_nationkey",0); | | (X_89,r1_107) := sql.bind(X_6,"sys","supplier","s_nationkey",2); | | X_91:bat[:oid,:int] := sql.bind(X_6,"sys","supplier","s_nationkey",1); | | X_92 := sql.projectdelta(X_76,X_87,X_89,r1_107,X_91); | | X_93:bat[:oid,:wrd] := mkey.bulk_rotate_xor_hash(X_86,22,X_92); | | (X_94,r1_113) := algebra.subjoin(X_75,X_93,nil:BAT,nil:BAT,false,nil:lng); | | X_99 := algebra.leftfetchjoin(X_94,X_63); | | X_100 := algebra.leftfetchjoin(r1_113,X_85); | | X_101:bat[:oid,:bit] := batcalc.==(X_99,X_100); | | X_103 := algebra.subselect(X_101,true,true,true,false,false); | | X_104 := algebra.leftfetchjoin(X_103,X_94); | | X_105 := algebra.leftfetchjoin(X_104,X_74); | | X_106 := algebra.leftfetchjoin(X_103,r1_113); | | X_107 := algebra.leftfetchjoin(X_106,X_92); | | X_108:bat[:oid,:bit] := batcalc.==(X_105,X_107); | | X_109 := algebra.subselect(X_108,true,true,true,false,false); | | X_110:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","supplier","supplier_nationkey",0); | | (X_115,r1_139) := sql.bind_idxbat(X_6,"sys","supplier","supplier_nationkey",2); | | X_118:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","supplier","supplier_nationkey",1); | | X_120 := sql.projectdelta(X_76,X_110,X_115,r1_139,X_118); | | X_121:bat[:oid,:oid] := algebra.leftfetchjoinPath(X_109,X_106,X_120); | | X_122:bat[:oid,:oid] := sql.tid(X_6,"sys","nation"); | | (X_124,r1_149) := algebra.subjoin(X_121,X_122,nil:BAT,nil:BAT,false,nil:lng); | | X_129:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","nation","nation_regionkey",0); | | (X_131,r1_156) := sql.bind_idxbat(X_6,"sys","nation","nation_regionkey",2); | | X_133:bat[:oid,:oid] := sql.bind_idxbat(X_6,"sys","nation","nation_regionkey",1); | | X_134 := sql.projectdelta(X_122,X_129,X_131,r1_156,X_133); | | X_135 := algebra.leftfetchjoin(r1_149,X_134); | | X_138:bat[:oid,:str] := sql.bind(X_6,"sys","region","r_name",0); | | X_136:bat[:oid,:oid] := sql.tid(X_6,"sys","region"); | | X_263 := algebra.subselect(X_138,X_136,A1,A1,true,false,false); | | (X_140,r1_166) := sql.bind(X_6,"sys","region","r_name",2); | | X_264 := algebra.subselect(r1_166,nil:bat[:oid,:oid],A1,A1,true,false,false); | | X_143:bat[:oid,:str] := sql.bind(X_6,"sys","region","r_name",1); | | X_266 := algebra.subselect(X_143,X_136,A1,A1,true,false,false); | | X_144 := sql.subdelta(X_263,X_136,X_140,X_264,X_266); | | X_146 := X_144; | | (X_147,r1_176) := algebra.subjoin(X_135,X_146,nil:BAT,nil:BAT,false,nil:lng); | | X_149 := algebra.leftfetchjoin(X_109,X_104); | | X_150:bat[:oid,:lng] := sql.bind(X_6,"sys","lineitem","l_extendedprice",0); | | (X_154,r1_183) := sql.bind(X_6,"sys","lineitem","l_extendedprice",2); | | X_157:bat[:oid,:lng] := sql.bind(X_6,"sys","lineitem","l_extendedprice",1); | | X_159 := sql.projectdelta(X_7,X_150,X_154,r1_183,X_157); | | X_160:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_147,X_124,X_149,X_54,X_37,X_159); | | X_161 := calc.lng(A0,15,2); | | X_163:bat[:oid,:lng] := sql.bind(X_6,"sys","lineitem","l_discount",0); | | (X_166,r1_205) := sql.bind(X_6,"sys","lineitem","l_discount",2); | | X_168:bat[:oid,:lng] := sql.bind(X_6,"sys","lineitem","l_discount",1); | | X_169 := sql.projectdelta(X_7,X_163,X_166,r1_205,X_168); | | X_170:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_147,X_124,X_149,X_54,X_37,X_169); | | X_171:bat[:oid,:lng] := batcalc.-(X_161,X_170); | | X_172:bat[:oid,:hge] := batcalc.*(X_160,X_171); | | X_173:bat[:oid,:str] := sql.bind(X_6,"sys","nation","n_name",0); | | (X_177,r1_223) := sql.bind(X_6,"sys","nation","n_name",2); | | X_180:bat[:oid,:str] := sql.bind(X_6,"sys","nation","n_name",1); | | X_182 := sql.projectdelta(X_122,X_173,X_177,r1_223,X_180); | | X_183:bat[:oid,:str] := algebra.leftfetchjoinPath(X_147,r1_149,X_182); | | (X_184,r1_232,r2_232) := group.subgroupdone(X_183); | | X_187:bat[:oid,:hge] := aggr.subsum(X_172,X_184,r1_232,true,true); | | (X_189,r1_237,r2_237) := algebra.subsort(X_187,true,false); | | X_193:bat[:oid,:str] := algebra.leftfetchjoinPath(r1_237,r1_232,X_183); | | X_194 := algebra.leftfetchjoin(r1_237,X_187); | | language.pass(X_19); | | language.pass(X_27); | | language.pass(X_52); | | language.pass(X_63); | | language.pass(X_85); | | language.pass(X_94); | | language.pass(X_74); | | language.pass(X_103); | | language.pass(r1_113); | | language.pass(X_92); | | language.pass(X_76); | | language.pass(X_106); | | language.pass(X_136); | | language.pass(X_109); | | language.pass(X_104); | | language.pass(X_7); | | language.pass(X_124); | | language.pass(X_149); | | language.pass(X_54); | | language.pass(X_37); | | language.pass(X_122); | | language.pass(X_147); | | language.pass(r1_149); | | language.pass(r1_232); | | language.pass(X_183); | | language.pass(r1_237); | | language.pass(X_187); | | exit X_294; | | sql.resultSet(X_214,X_216,X_218,X_220,X_222,X_193,X_194); | | end user.s1_1; | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 155 tuples COMMIT; auto commit mode: on