START TRANSACTION; auto commit mode: off EXPLAIN select p_brand, p_type, p_size, count(distinct ps_suppkey) as supplier_cnt from partsupp, part where p_partkey = ps_partkey and p_brand <> 'Brand#32' and p_type not like 'ECONOMY ANODIZED%' and p_size in (5, 47, 44, 20, 43, 49, 15, 38) and ps_suppkey not in ( select s_suppkey from supplier where s_comment like '%Customer%Complaints%' ) group by p_brand, p_type, p_size order by supplier_cnt desc, p_brand, p_type, p_size; +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | mal | +============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ | function user.s1_1(A0:str,A1:str,A2:int,A3:int,A4:int,A5:int,A6:int,A7:int,A8:int,A9:int,A10:str):void; | | X_207:void := querylog.define("explain\n\n\nselect\n\tp_brand,\n\tp_type,\n\tp_size,\n\tcount(distinct ps_suppkey) as supplier_cnt\nfrom\n\tpartsupp,\n\tpart\nwhere\n\tp_partkey = ps_partkey\n\tand p_brand <> \\'Brand#32\\'\n\tand p_type not like \\'ECONOMY ANODIZED%\\'\n\tand p_size in (5, 47, 44, 20, 43, 49, 15, 38)\n\tand ps_suppkey not in (\n\t\tselect\n\t\t\ts_suppkey\n\t\tfrom\n\t\t\tsupplier\n\t\twhere\n\t\t\ts_comment like \\'%Customer%Complaints%\\'\n\t)\ngroup by\n\tp_brand,\n\tp_type,\n\tp_size\norder by\n\tsupplier_cnt desc,\n\tp_brand,\n\tp_type,\n\tp_size;","default_pipe",145); | | barrier X_251 := language.dataflow(); | | X_164 := bat.new(nil:oid,nil:str); | | X_172 := bat.append(X_164,"sys.part"); | | X_182 := bat.append(X_172,"sys.part"); | | X_190 := bat.append(X_182,"sys.part"); | | X_198 := bat.append(X_190,"sys.L4"); | | X_167 := bat.new(nil:oid,nil:str); | | X_174 := bat.append(X_167,"p_brand"); | | X_183 := bat.append(X_174,"p_type"); | | X_191 := bat.append(X_183,"p_size"); | | X_200 := bat.append(X_191,"supplier_cnt"); | | X_168 := bat.new(nil:oid,nil:str); | | X_176 := bat.append(X_168,"char"); | | X_185 := bat.append(X_176,"varchar"); | | X_193 := bat.append(X_185,"int"); | | X_202 := bat.append(X_193,"wrd"); | | X_169 := bat.new(nil:oid,nil:int); | | X_178 := bat.append(X_169,10); | | X_187 := bat.append(X_178,25); | | X_195 := bat.append(X_187,32); | | X_204 := bat.append(X_195,64); | | X_171 := bat.new(nil:oid,nil:int); | | X_180 := bat.append(X_171,0); | | X_189 := bat.append(X_180,0); | | X_197 := bat.append(X_189,0); | | X_206 := bat.append(X_197,0); | | X_12 := sql.mvc(); | | X_13:bat[:oid,:oid] := sql.tid(X_12,"sys","partsupp"); | | X_16:bat[:oid,:int] := sql.bind(X_12,"sys","partsupp","ps_suppkey",0); | | (X_19,r1_19) := sql.bind(X_12,"sys","partsupp","ps_suppkey",2); | | X_22:bat[:oid,:int] := sql.bind(X_12,"sys","partsupp","ps_suppkey",1); | | X_24 := sql.delta(X_16,X_19,r1_19,X_22); | | X_25 := algebra.leftfetchjoin(X_13,X_24); | | X_26 := bat.mirror(X_25); | | X_27:bat[:oid,:oid] := sql.tid(X_12,"sys","supplier"); | | X_29:bat[:oid,:str] := sql.bind(X_12,"sys","supplier","s_comment",0); | | (X_31,r1_31) := sql.bind(X_12,"sys","supplier","s_comment",2); | | X_33:bat[:oid,:str] := sql.bind(X_12,"sys","supplier","s_comment",1); | | X_34 := sql.delta(X_29,X_31,r1_31,X_33); | | X_35 := algebra.leftfetchjoin(X_27,X_34); | | X_37 := algebra.likesubselect(X_35,nil:BAT,A10,"",false); | | X_40:bat[:oid,:int] := sql.bind(X_12,"sys","supplier","s_suppkey",0); | | (X_42,r1_44) := sql.bind(X_12,"sys","supplier","s_suppkey",2); | | X_44:bat[:oid,:int] := sql.bind(X_12,"sys","supplier","s_suppkey",1); | | X_46 := sql.delta(X_40,X_42,r1_44,X_44); | | X_47:bat[:oid,:int] := algebra.leftfetchjoinPath(X_37,X_27,X_46); | | (X_48,r1_51) := algebra.subjoin(X_25,X_47,nil:BAT,nil:BAT,false,nil:lng); | | X_51 := algebra.tdiff(X_26,X_48); | | X_52:bat[:oid,:oid] := sql.bind_idxbat(X_12,"sys","partsupp","partsupp_partkey",0); | | (X_56,r1_59) := sql.bind_idxbat(X_12,"sys","partsupp","partsupp_partkey",2); | | X_59:bat[:oid,:oid] := sql.bind_idxbat(X_12,"sys","partsupp","partsupp_partkey",1); | | X_61 := sql.delta(X_52,X_56,r1_59,X_59); | | X_62:bat[:oid,:oid] := algebra.leftfetchjoinPath(X_51,X_13,X_61); | | X_63:bat[:oid,:oid] := sql.tid(X_12,"sys","part"); | | X_65:bat[:oid,:int] := sql.bind(X_12,"sys","part","p_size",0); | | (X_67,r1_71) := sql.bind(X_12,"sys","part","p_size",2); | | X_69:bat[:oid,:int] := sql.bind(X_12,"sys","part","p_size",1); | | X_70 := sql.delta(X_65,X_67,r1_71,X_69); | | X_71 := algebra.leftfetchjoin(X_63,X_70); | | X_72:bat[:oid,:str] := sql.bind(X_12,"sys","part","p_type",0); | | (X_74,r1_79) := sql.bind(X_12,"sys","part","p_type",2); | | X_77:bat[:oid,:str] := sql.bind(X_12,"sys","part","p_type",1); | | X_78 := sql.delta(X_72,X_74,r1_79,X_77); | | X_79 := algebra.leftfetchjoin(X_63,X_78); | | X_81:bat[:oid,:str] := sql.bind(X_12,"sys","part","p_brand",0); | | (X_83,r1_90) := sql.bind(X_12,"sys","part","p_brand",2); | | X_85:bat[:oid,:str] := sql.bind(X_12,"sys","part","p_brand",1); | | X_86 := sql.delta(X_81,X_83,r1_90,X_85); | | X_87 := algebra.leftfetchjoin(X_63,X_86); | | X_88 := algebra.subselect(X_87,A0,A0,true,true,true); | | X_90 := algebra.likesubselect(X_79,X_88,A1,"",true); | | X_91 := algebra.subselect(X_71,X_90,A2,A2,true,false,false); | | X_93 := algebra.subselect(X_71,X_90,A3,A3,true,false,false); | | X_94 := bat.mergecand(X_91,X_93); | | X_95 := algebra.subselect(X_71,X_90,A4,A4,true,false,false); | | X_96 := bat.mergecand(X_94,X_95); | | X_97 := algebra.subselect(X_71,X_90,A5,A5,true,false,false); | | X_98 := bat.mergecand(X_96,X_97); | | X_99 := algebra.subselect(X_71,X_90,A6,A6,true,false,false); | | X_100 := bat.mergecand(X_98,X_99); | | X_101 := algebra.subselect(X_71,X_90,A7,A7,true,false,false); | | X_102 := bat.mergecand(X_100,X_101); | | X_103 := algebra.subselect(X_71,X_90,A8,A8,true,false,false); | | X_104 := bat.mergecand(X_102,X_103); | | X_105 := algebra.subselect(X_71,X_90,A9,A9,true,false,false); | | X_106 := bat.mergecand(X_104,X_105); | | X_107 := algebra.leftfetchjoin(X_106,X_63); | | (X_108,r1_123) := algebra.subjoin(X_62,X_107,nil:BAT,nil:BAT,false,nil:lng); | | X_112:bat[:oid,:str] := algebra.leftfetchjoinPath(r1_123,X_106,X_79); | | X_113:bat[:oid,:int] := algebra.leftfetchjoinPath(r1_123,X_106,X_71); | | X_114:bat[:oid,:int] := algebra.leftfetchjoinPath(X_108,X_51,X_25); | | X_115:bat[:oid,:str] := algebra.leftfetchjoinPath(r1_123,X_106,X_87); | | (X_116,r1_135,r2_135) := group.subgroup(X_115); | | (X_119,r1_138,r2_138) := group.subgroup(X_114,X_116); | | (X_122,r1_141,r2_141) := group.subgroup(X_113,X_119); | | (X_125,r1_144,r2_144) := group.subgroupdone(X_112,X_122); | | X_128 := algebra.leftfetchjoin(r1_144,X_112); | | X_129 := algebra.leftfetchjoin(r1_144,X_113); | | X_130 := algebra.leftfetchjoin(r1_144,X_115); | | X_143 := algebra.leftfetchjoin(r1_144,X_114); | | (X_131,r1_150,r2_150) := group.subgroup(X_130); | | (X_134,r1_153,r2_153) := group.subgroup(X_129,X_131); | | (X_137,r1_156,r2_156) := group.subgroupdone(X_128,X_134); | | X_140 := algebra.leftfetchjoin(r1_156,X_129); | | X_141 := algebra.leftfetchjoin(r1_156,X_128); | | X_142 := algebra.leftfetchjoin(r1_156,X_130); | | X_144:bat[:oid,:wrd] := aggr.subcount(X_143,X_137,r1_156,true); | | (X_146,r1_165,r2_165) := algebra.subsort(X_144,true,false); | | (X_150,r1_169,r2_169) := algebra.subsort(X_142,r1_165,r2_165,false,false); | | (X_153,r1_172,r2_172) := algebra.subsort(X_141,r1_169,r2_169,false,false); | | (X_156,r1_175,r2_175) := algebra.subsort(X_140,r1_172,r2_172,false,false); | | X_159 := algebra.leftfetchjoin(r1_175,X_142); | | X_160 := algebra.leftfetchjoin(r1_175,X_141); | | X_161 := algebra.leftfetchjoin(r1_175,X_140); | | X_162 := algebra.leftfetchjoin(r1_175,X_144); | | language.pass(X_27); | | language.pass(X_13); | | language.pass(X_90); | | language.pass(X_63); | | language.pass(X_79); | | language.pass(X_71); | | language.pass(X_51); | | language.pass(X_25); | | language.pass(r1_123); | | language.pass(X_106); | | language.pass(X_87); | | language.pass(X_112); | | language.pass(X_113); | | language.pass(X_115); | | language.pass(r1_144); | | language.pass(X_114); | | language.pass(X_129); | | language.pass(X_128); | | language.pass(X_130); | | language.pass(r1_156); | | language.pass(X_142); | | language.pass(X_141); | | language.pass(X_140); | | language.pass(r1_175); | | language.pass(X_144); | | exit X_251; | | sql.resultSet(X_198,X_200,X_202,X_204,X_206,X_159,X_160,X_161,X_162); | | end user.s1_1; | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 145 tuples COMMIT; auto commit mode: on