START TRANSACTION; auto commit mode: off EXPLAIN select cntrycode, count(*) as numcust, sum(c_acctbal) as totacctbal from ( select substring(c_phone, 1, 2) as cntrycode, c_acctbal from customer where substring(c_phone, 1, 2) in ('18', '31', '34', '17', '29', '32', '30') and c_acctbal > ( select avg(c_acctbal) from customer where c_acctbal > 0.00 and substring(c_phone, 1, 2) in ('18', '31', '34', '17', '29', '32', '30') ) and not exists ( select * from orders +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | mal | +===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ | function user.s1_1(A0:int,A1:int,A2:int,A3:int,A4:str,A5:str,A6:str,A7:str,A8:str,A9:str,A10:str,A11:bte,A12:int,A13:int,A14:str,A15:str,A16:str,A17:str,A18:str,A19:str,A20:str):void; | | X_178:void := querylog.define("explain\n\n\nselect\n\tcntrycode,\n\tcount(*) as numcust,\n\tsum(c_acctbal) as totacctbal\nfrom\n\t(\n\t\tselect\n\t\t\tsubstring(c_phone, 1, 2) as cntrycode,\n\t\t\tc_acctbal\n\t\tfrom\n\t\t\tcustomer\n\t\twhere\n\t\t\tsubstring(c_phone, 1, 2) in\n\t\t\t\t(\\'18\\', \\'31\\', \\'34\\', \\'17\\', \\'29\\', \\'32\\', \\'30\\')\n\t\t\tand c_acctbal > (\n\t\t\t\tselect\n\t\t\t\t\tavg(c_acctbal)\n\t\t\t\tfrom\n\t\t\t\t\tcustomer\n\t\t\t\twhere\n\t\t\t\t\tc_acctbal > 0.00\n\t\t\t\t\tand substring(c_phone, 1, 2) in\n\t\t\t\t\t\t(\\'18\\', \\'31\\', \\'34\\', \\'17\\', \\'29\\', \\'32\\', \\'30\\')\n\t\t\t)\n\t\t\tand not exists (\n\t\t\t\tselect\n\t\t\t\t\t*\n\t\t\t\tfrom\n\t\t\t\t\torders\n\t\t\t\twhere\n\t\t\t\t\to_custkey = c_custkey\n\t\t\t)\n\t) as vip\ngroup by\n\tcntrycode\norder by\n\tcntrycode;","default_pipe",120); | | barrier X_211 := language.dataflow(); | | X_141 := bat.new(nil:oid,nil:str); | | X_149 := bat.append(X_141,"sys.vip"); | | X_159 := bat.append(X_149,"sys.L2"); | | X_168 := bat.append(X_159,"sys.L3"); | | X_144 := bat.new(nil:oid,nil:str); | | X_151 := bat.append(X_144,"cntrycode"); | | X_161 := bat.append(X_151,"numcust"); | | X_170 := bat.append(X_161,"totacctbal"); | | X_145 := bat.new(nil:oid,nil:str); | | X_153 := bat.append(X_145,"char"); | | X_163 := bat.append(X_153,"wrd"); | | X_172 := bat.append(X_163,"decimal"); | | X_146 := bat.new(nil:oid,nil:int); | | X_155 := bat.append(X_146,15); | | X_165 := bat.append(X_155,64); | | X_174 := bat.append(X_165,39); | | X_148 := bat.new(nil:oid,nil:int); | | X_157 := bat.append(X_148,0); | | X_167 := bat.append(X_157,0); | | X_176 := bat.append(X_167,2); | | X_22 := sql.mvc(); | | X_23:bat[:oid,:oid] := sql.tid(X_22,"sys","customer"); | | X_26:bat[:oid,:str] := sql.bind(X_22,"sys","customer","c_phone",0); | | (X_29,r1_29) := sql.bind(X_22,"sys","customer","c_phone",2); | | X_32:bat[:oid,:str] := sql.bind(X_22,"sys","customer","c_phone",1); | | X_34 := sql.delta(X_26,X_29,r1_29,X_32); | | X_35 := algebra.leftfetchjoin(X_23,X_34); | | X_36:bat[:oid,:str] := batstr.substring(X_35,A2,A3); | | X_37 := algebra.subselect(X_36,A4,A4,true,false,false); | | X_40 := algebra.subselect(X_36,A5,A5,true,false,false); | | X_41 := bat.mergecand(X_37,X_40); | | X_42 := algebra.subselect(X_36,A6,A6,true,false,false); | | X_43 := bat.mergecand(X_41,X_42); | | X_44 := algebra.subselect(X_36,A7,A7,true,false,false); | | X_45 := bat.mergecand(X_43,X_44); | | X_46 := algebra.subselect(X_36,A8,A8,true,false,false); | | X_47 := bat.mergecand(X_45,X_46); | | X_48 := algebra.subselect(X_36,A9,A9,true,false,false); | | X_49 := bat.mergecand(X_47,X_48); | | X_50 := algebra.subselect(X_36,A10,A10,true,false,false); | | X_51 := bat.mergecand(X_49,X_50); | | X_52:bat[:oid,:int] := sql.bind(X_22,"sys","customer","c_custkey",0); | | (X_57,r1_68) := sql.bind(X_22,"sys","customer","c_custkey",2); | | X_60:bat[:oid,:int] := sql.bind(X_22,"sys","customer","c_custkey",1); | | X_62 := sql.delta(X_52,X_57,r1_68,X_60); | | X_63:bat[:oid,:int] := algebra.leftfetchjoinPath(X_51,X_23,X_62); | | X_64 := bat.mirror(X_63); | | X_65:bat[:oid,:lng] := sql.bind(X_22,"sys","customer","c_acctbal",0); | | (X_67,r1_79) := sql.bind(X_22,"sys","customer","c_acctbal",2); | | X_69:bat[:oid,:lng] := sql.bind(X_22,"sys","customer","c_acctbal",1); | | X_70 := sql.delta(X_65,X_67,r1_79,X_69); | | X_71 := algebra.leftfetchjoin(X_23,X_70); | | X_72 := algebra.leftfetchjoin(X_51,X_71); | | X_73:bat[:oid,:dbl] := batcalc.dbl(2,X_72); | | X_74:bat[:oid,:str] := batstr.substring(X_35,A12,A13); | | X_77 := calc.lng(1,A11,15,2); | | X_79 := algebra.thetasubselect(X_71,X_77,">"); | | X_81 := algebra.subselect(X_74,X_79,A14,A14,true,false,false); | | X_84 := algebra.subselect(X_74,X_79,A15,A15,true,false,false); | | X_85 := bat.mergecand(X_81,X_84); | | X_86 := algebra.subselect(X_74,X_79,A16,A16,true,false,false); | | X_87 := bat.mergecand(X_85,X_86); | | X_88 := algebra.subselect(X_74,X_79,A17,A17,true,false,false); | | X_89 := bat.mergecand(X_87,X_88); | | X_90 := algebra.subselect(X_74,X_79,A18,A18,true,false,false); | | X_91 := bat.mergecand(X_89,X_90); | | X_92 := algebra.subselect(X_74,X_79,A19,A19,true,false,false); | | X_93 := bat.mergecand(X_91,X_92); | | X_94 := algebra.subselect(X_74,X_79,A20,A20,true,false,false); | | X_95 := bat.mergecand(X_93,X_94); | | X_96 := algebra.leftfetchjoin(X_95,X_71); | | X_97:bat[:oid,:dbl] := batcalc.dbl(2,X_96); | | X_99:dbl := aggr.avg(X_97); | | X_100 := sql.single(X_99); | | (X_101,r1_146) := algebra.subthetajoin(X_73,X_100,nil:BAT,nil:BAT,1,true,nil:lng); | | X_106 := algebra.tinter(X_64,X_101); | | X_107 := algebra.leftfetchjoin(X_106,X_63); | | X_108 := bat.mirror(X_107); | | X_109:bat[:oid,:oid] := sql.tid(X_22,"sys","orders"); | | X_112:bat[:oid,:int] := sql.bind(X_22,"sys","orders","o_custkey",0); | | (X_115,r1_160) := sql.bind(X_22,"sys","orders","o_custkey",2); | | X_117:bat[:oid,:int] := sql.bind(X_22,"sys","orders","o_custkey",1); | | X_118 := sql.delta(X_112,X_115,r1_160,X_117); | | X_119 := algebra.leftfetchjoin(X_109,X_118); | | (X_120,r1_165) := algebra.subjoin(X_107,X_119,nil:BAT,nil:BAT,false,nil:lng); | | X_123 := algebra.tdiff(X_108,X_120); | | X_124:bat[:oid,:str] := algebra.leftfetchjoinPath(X_123,X_106,X_51,X_35); | | X_125:bat[:oid,:str] := batstr.substring(X_124,A0,A1); | | (X_126,r1_177,r2_177) := group.subgroupdone(X_125); | | X_129 := algebra.leftfetchjoin(r1_177,X_125); | | X_134:bat[:oid,:wrd] := aggr.subcount(X_126,X_126,r1_177,false); | | X_136:bat[:oid,:lng] := algebra.leftfetchjoinPath(X_123,X_106,X_72); | | X_137:bat[:oid,:hge] := aggr.subsum(X_136,X_126,r1_177,true,true); | | (X_130,r1_181,r2_181) := algebra.subsort(X_129,false,false); | | X_133 := algebra.leftfetchjoin(r1_181,X_129); | | X_135 := algebra.leftfetchjoin(r1_181,X_134); | | X_139 := algebra.leftfetchjoin(r1_181,X_137); | | language.pass(X_36); | | language.pass(X_23); | | language.pass(X_74); | | language.pass(X_79); | | language.pass(X_71); | | language.pass(X_63); | | language.pass(X_107); | | language.pass(X_51); | | language.pass(X_35); | | language.pass(X_125); | | language.pass(X_123); | | language.pass(X_106); | | language.pass(X_72); | | language.pass(X_126); | | language.pass(r1_177); | | language.pass(X_129); | | language.pass(r1_181); | | exit X_211; | | sql.resultSet(X_168,X_170,X_172,X_174,X_176,X_133,X_135,X_139); | | end user.s1_1; | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 120 tuples COMMIT; auto commit mode: on