Changeset: ac86389e4b3c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ac86389e4b3c Modified Files: sql/test/mergetables/Tests/mergequery.stable.out Branch: unlock Log Message:
approved output diffs (truncated from 417 to 300 lines): diff --git a/sql/test/mergetables/Tests/mergequery.stable.out b/sql/test/mergetables/Tests/mergequery.stable.out --- a/sql/test/mergetables/Tests/mergequery.stable.out +++ b/sql/test/mergetables/Tests/mergequery.stable.out @@ -55,7 +55,7 @@ stdout of test 'mergequery` in directory [ 2, 1, 0 ] [ 3, 1, 0 ] #SELECT * FROM complete where x>=0.0 AND x <=1.0; -% .complete, .complete, .complete # table_name +% sys.complete, sys.complete, sys.complete # table_name % x, y, z # name % double, double, double # type % 24, 24, 24 # length @@ -64,7 +64,7 @@ stdout of test 'mergequery` in directory [ 0, 1, 0 ] [ 1, 1, 0 ] #SELECT * FROM complete where x>=2.0 AND x <=3.0; -% .complete, .complete, .complete # table_name +% sys.complete, sys.complete, sys.complete # table_name % x, y, z # name % double, double, double # type % 24, 24, 24 # length @@ -72,7 +72,107 @@ stdout of test 'mergequery` in directory [ 3, 0, 0 ] [ 2, 1, 0 ] [ 3, 1, 0 ] -#SELECT * FROM complete where x>=1.0 AND x <=2.0; +#PLAN SELECT * FROM complete where x = 0.0; --only part1 passes +% .plan # table_name +% rel # name +% clob # type +% 78 # length +project ( +| select ( +| | table(sys.part1) [ "complete"."x", "complete"."y", "complete"."z" ] COUNT +| ) [ "complete"."x" = double(53,1) "0" ] +) [ "complete"."x", "complete"."y", "complete"."z" ] +#SELECT * FROM complete where x = 0.0; +% sys.complete, sys.complete, sys.complete # table_name +% x, y, z # name +% double, double, double # type +% 24, 24, 24 # length +[ 0, 0, 0 ] +[ 0, 1, 0 ] +#PLAN SELECT * FROM complete where x = 3.0; --only part2 passes +% .plan # table_name +% rel # name +% clob # type +% 78 # length +project ( +| select ( +| | table(sys.part2) [ "complete"."x", "complete"."y", "complete"."z" ] COUNT +| ) [ "complete"."x" = double(53,1) "3" ] +) [ "complete"."x", "complete"."y", "complete"."z" ] +#SELECT * FROM complete where x = 3.0; +% sys.complete, sys.complete, sys.complete # table_name +% x, y, z # name +% double, double, double # type +% 24, 24, 24 # length +[ 3, 0, 0 ] +[ 3, 1, 0 ] +#PLAN SELECT * FROM complete where x >= 1.0 AND x < 2.0; --only part1 passes +% .plan # table_name +% rel # name +% clob # type +% 78 # length +project ( +| select ( +| | table(sys.part1) [ "complete"."x", "complete"."y", "complete"."z" ] COUNT +| ) [ double(53,1) "1" <= "complete"."x" < double(53,1) "2" BETWEEN ] +) [ "complete"."x", "complete"."y", "complete"."z" ] +#SELECT * FROM complete where x >= 1.0 AND x < 2.0; +% sys.complete, sys.complete, sys.complete # table_name +% x, y, z # name +% double, double, double # type +% 24, 24, 24 # length +[ 1, 0, 0 ] +[ 1, 1, 0 ] +#PLAN SELECT * FROM complete where x > 1.0 AND x <= 2.0; --only part2 passes +% .plan # table_name +% rel # name +% clob # type +% 78 # length +project ( +| select ( +| | table(sys.part2) [ "complete"."x", "complete"."y", "complete"."z" ] COUNT +| ) [ double(53,1) "1" < "complete"."x" <= double(53,1) "2" BETWEEN ] +) [ "complete"."x", "complete"."y", "complete"."z" ] +#SELECT * FROM complete where x > 1.0 AND x <= 2.0; +% sys.complete, sys.complete, sys.complete # table_name +% x, y, z # name +% double, double, double # type +% 24, 24, 24 # length +[ 2, 0, 0 ] +[ 2, 1, 0 ] +#PLAN SELECT * FROM complete where x > 1.0 AND x < 2.0; --no part passes +% .plan # table_name +% rel # name +% clob # type +% 103 # length +project ( +| select ( +| | [ boolean "true" ] +| ) [ boolean "false" ] +) [ double "NULL" as "complete"."x", double "NULL" as "complete"."y", double "NULL" as "complete"."z" ] +#SELECT * FROM complete where x > 1.0 AND x < 2.0; +% .complete, .complete, .complete # table_name +% x, y, z # name +% double, double, double # type +% 24, 24, 24 # length +#PLAN SELECT * FROM complete where x >= 1.0 AND x <= 2.0; +% .plan # table_name +% rel # name +% clob # type +% 125 # length +union ( +| project ( +| | select ( +| | | table(sys.part1) [ "part1"."x" as "complete"."x", "part1"."y" as "complete"."y", "part1"."z" as "complete"."z" ] COUNT +| | ) [ double(53,1) "1" <= "complete"."x" <= double(53,1) "2" BETWEEN ] +| ) [ "complete"."x", "complete"."y", "complete"."z" ], +| project ( +| | select ( +| | | table(sys.part2) [ "part2"."x" as "complete"."x", "part2"."y" as "complete"."y", "part2"."z" as "complete"."z" ] COUNT +| | ) [ double(53,1) "1" <= "complete"."x" <= double(53,1) "2" BETWEEN ] +| ) [ "complete"."x", "complete"."y", "complete"."z" ] +) [ "complete"."x", "complete"."y", "complete"."z" ] +#SELECT * FROM complete where x >= 1.0 AND x <= 2.0; % .complete, .complete, .complete # table_name % x, y, z # name % double, double, double # type @@ -81,258 +181,35 @@ stdout of test 'mergequery` in directory [ 1, 1, 0 ] [ 2, 0, 0 ] [ 2, 1, 0 ] -#CREATE TABLE answ( LIKE complete); -#EXPLAIN INSERT INTO answ -#SELECT * FROM complete where x>=1.0 AND x <=2.0; -% .explain # table_name -% mal # name -% clob # type -% 142 # length -function user.main():void; - X_1:void := querylog.define("explain insert into answ\nselect * from complete where x>=1.0 and x <=2.0;":str, "default_pipe":str, 56:int); -barrier X_229:bit := language.dataflow(); - X_64:bat[:dbl] := bat.new(nil:dbl); - X_4:int := sql.mvc(); - X_149:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 0:int, 4:int); - C_130:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 0:int, 4:int); - C_191:bat[:oid] := algebra.select(X_149:bat[:dbl], C_130:bat[:oid], 1:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_195:bat[:dbl] := algebra.projection(C_191:bat[:oid], X_149:bat[:dbl]); - X_150:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 1:int, 4:int); - C_132:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 1:int, 4:int); - C_192:bat[:oid] := algebra.select(X_150:bat[:dbl], C_132:bat[:oid], 1:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_196:bat[:dbl] := algebra.projection(C_192:bat[:oid], X_150:bat[:dbl]); - X_151:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 2:int, 4:int); - C_134:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 2:int, 4:int); - C_193:bat[:oid] := algebra.select(X_151:bat[:dbl], C_134:bat[:oid], 1:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_197:bat[:dbl] := algebra.projection(C_193:bat[:oid], X_151:bat[:dbl]); - X_152:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 3:int, 4:int); - C_136:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 3:int, 4:int); - C_194:bat[:oid] := algebra.select(X_152:bat[:dbl], C_136:bat[:oid], 1:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_198:bat[:dbl] := algebra.projection(C_194:bat[:oid], X_152:bat[:dbl]); - X_215:bat[:dbl] := mat.packIncrement(X_195:bat[:dbl], 4:int); - X_217:bat[:dbl] := mat.packIncrement(X_215:bat[:dbl], X_196:bat[:dbl]); - X_218:bat[:dbl] := mat.packIncrement(X_217:bat[:dbl], X_197:bat[:dbl]); - X_37:bat[:dbl] := mat.packIncrement(X_218:bat[:dbl], X_198:bat[:dbl]); - X_46:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part2":str, "x":str, 0:int); - C_40:bat[:oid] := sql.tid(X_4:int, "sys":str, "part2":str); - C_60:bat[:oid] := algebra.select(X_46:bat[:dbl], C_40:bat[:oid], 1:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_54:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part2":str, "z":str, 0:int); - X_63:bat[:dbl] := algebra.projection(C_60:bat[:oid], X_54:bat[:dbl]); - X_50:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part2":str, "y":str, 0:int); - X_62:bat[:dbl] := algebra.projection(C_60:bat[:oid], X_50:bat[:dbl]); - X_61:bat[:dbl] := algebra.projection(C_60:bat[:oid], X_46:bat[:dbl]); - X_181:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "z":str, 0:int, 3:int, 4:int); - X_206:bat[:dbl] := algebra.projection(C_194:bat[:oid], X_181:bat[:dbl]); - X_180:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "z":str, 0:int, 2:int, 4:int); - X_205:bat[:dbl] := algebra.projection(C_193:bat[:oid], X_180:bat[:dbl]); - X_179:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "z":str, 0:int, 1:int, 4:int); - X_204:bat[:dbl] := algebra.projection(C_192:bat[:oid], X_179:bat[:dbl]); - X_178:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "z":str, 0:int, 0:int, 4:int); - X_203:bat[:dbl] := algebra.projection(C_191:bat[:oid], X_178:bat[:dbl]); - X_169:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 3:int, 4:int); - X_202:bat[:dbl] := algebra.projection(C_194:bat[:oid], X_169:bat[:dbl]); - X_167:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 2:int, 4:int); - X_201:bat[:dbl] := algebra.projection(C_193:bat[:oid], X_167:bat[:dbl]); - X_165:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 1:int, 4:int); - X_200:bat[:dbl] := algebra.projection(C_192:bat[:oid], X_165:bat[:dbl]); - X_163:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 0:int, 4:int); - X_199:bat[:dbl] := algebra.projection(C_191:bat[:oid], X_163:bat[:dbl]); - X_66:bat[:dbl] := bat.append(X_64:bat[:dbl], X_37:bat[:dbl], true:bit); - X_67:bat[:dbl] := bat.append(X_66:bat[:dbl], X_61:bat[:dbl], true:bit); - X_69:bat[:dbl] := bat.new(nil:dbl); - X_220:bat[:dbl] := mat.packIncrement(X_199:bat[:dbl], 4:int); - X_221:bat[:dbl] := mat.packIncrement(X_220:bat[:dbl], X_200:bat[:dbl]); - X_222:bat[:dbl] := mat.packIncrement(X_221:bat[:dbl], X_201:bat[:dbl]); - X_38:bat[:dbl] := mat.packIncrement(X_222:bat[:dbl], X_202:bat[:dbl]); - X_70:bat[:dbl] := bat.append(X_69:bat[:dbl], X_38:bat[:dbl], true:bit); - X_71:bat[:dbl] := bat.append(X_70:bat[:dbl], X_62:bat[:dbl], true:bit); - X_72:bat[:dbl] := bat.new(nil:dbl); - X_224:bat[:dbl] := mat.packIncrement(X_203:bat[:dbl], 4:int); - X_225:bat[:dbl] := mat.packIncrement(X_224:bat[:dbl], X_204:bat[:dbl]); - X_226:bat[:dbl] := mat.packIncrement(X_225:bat[:dbl], X_205:bat[:dbl]); - X_39:bat[:dbl] := mat.packIncrement(X_226:bat[:dbl], X_206:bat[:dbl]); - X_73:bat[:dbl] := bat.append(X_72:bat[:dbl], X_39:bat[:dbl], true:bit); - X_74:bat[:dbl] := bat.append(X_73:bat[:dbl], X_63:bat[:dbl], true:bit); - X_75:lng := aggr.count(X_67:bat[:dbl]); - language.pass(X_149:bat[:dbl]); - language.pass(X_150:bat[:dbl]); - language.pass(X_151:bat[:dbl]); - language.pass(X_152:bat[:dbl]); - language.pass(C_60:bat[:oid]); - language.pass(X_46:bat[:dbl]); - language.pass(C_194:bat[:oid]); - language.pass(C_193:bat[:oid]); - language.pass(C_192:bat[:oid]); - language.pass(C_191:bat[:oid]); -exit X_229:bit; - X_76:lng := sql.claim(X_4:int, "sys":str, "answ":str, X_75:lng); - X_79:int := sql.append(X_4:int, "sys":str, "answ":str, "x":str, X_76:lng, X_67:bat[:dbl]); - X_82:int := sql.append(X_79:int, "sys":str, "answ":str, "y":str, X_76:lng, X_71:bat[:dbl]); - X_85:int := sql.append(X_82:int, "sys":str, "answ":str, "z":str, X_76:lng, X_74:bat[:dbl]); - sql.affectedRows(X_85:int, X_75:lng); -end user.main; -#inline actions= 0 time=0 usec -#remap actions= 0 time=2 usec -#costmodel actions= 1 time=1 usec -#coercion actions= 0 time=1 usec -#aliases actions= 4 time=9 usec -#evaluate actions= 4 time=17 usec -#emptybind actions= 6 time=11 usec -#pushselect actions= 8 time=12 usec -#aliases actions=16 time=9 usec -#mitosis actions=1 time=53 usec -#mergetable actions= 4 time=70 usec -#deadcode actions=28 time=17 usec -#aliases actions= 0 time=0 usec -#constants actions=15 time=8 usec -#commonTerms actions= 0 time=11 usec -#projectionpath actions= 0 time=6 usec -#deadcode actions= 0 time=6 usec -#reorder actions= 1 time=37 usec -#reduce actions=74 time=39 usec -#matpack actions= 0 time=5 usec -#dataflow actions=31 time=36 usec -#querylog actions= 0 time=1 usec -#multiplex actions= 0 time=3 usec -#generator actions= 0 time=1 usec -#profiler actions= 1 time=20 usec -#garbageCollector actions= 1 time=27 usec -#total actions= 1 time=526 usec -#INSERT INTO answ -#SELECT * FROM complete where x>=1.0 AND x <=2.0; -[ 4 ] -#EXPLAIN INSERT INTO answ -#SELECT * FROM complete -#WHERE x BETWEEN 0 AND 2 AND Y BETWEEN 0 AND 2; -% .explain # table_name -% mal # name +#PLAN SELECT * FROM complete WHERE x BETWEEN 0 AND 2 AND Y BETWEEN 0 AND 2; +% .plan # table_name +% rel # name % clob # type -% 164 # length -function user.main():void; - X_1:void := querylog.define("explain insert into answ\nselect * from complete\nwhere x between 0 and 2 and y between 0 and 2;":str, "default_pipe":str, 62:int); -barrier X_243:bit := language.dataflow(); - X_75:bat[:dbl] := bat.new(nil:dbl); - X_4:int := sql.mvc(); - X_173:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 0:int, 4:int); - X_159:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 0:int, 4:int); - C_140:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 0:int, 4:int); - C_201:bat[:oid] := algebra.select(X_159:bat[:dbl], C_140:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - C_205:bat[:oid] := algebra.select(X_173:bat[:dbl], C_201:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_209:bat[:dbl] := algebra.projection(C_205:bat[:oid], X_159:bat[:dbl]); - X_175:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 1:int, 4:int); - X_160:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 1:int, 4:int); - C_142:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 1:int, 4:int); - C_202:bat[:oid] := algebra.select(X_160:bat[:dbl], C_142:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - C_206:bat[:oid] := algebra.select(X_175:bat[:dbl], C_202:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_210:bat[:dbl] := algebra.projection(C_206:bat[:oid], X_160:bat[:dbl]); - X_177:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 2:int, 4:int); - X_161:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 2:int, 4:int); - C_144:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 2:int, 4:int); - C_203:bat[:oid] := algebra.select(X_161:bat[:dbl], C_144:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - C_207:bat[:oid] := algebra.select(X_177:bat[:dbl], C_203:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_211:bat[:dbl] := algebra.projection(C_207:bat[:oid], X_161:bat[:dbl]); - X_179:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "y":str, 0:int, 3:int, 4:int); - X_162:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part1":str, "x":str, 0:int, 3:int, 4:int); - C_146:bat[:oid] := sql.tid(X_4:int, "sys":str, "part1":str, 3:int, 4:int); - C_204:bat[:oid] := algebra.select(X_162:bat[:dbl], C_146:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - C_208:bat[:oid] := algebra.select(X_179:bat[:dbl], C_204:bat[:oid], 0:dbl, 2:dbl, true:bit, true:bit, false:bit, true:bit); - X_212:bat[:dbl] := algebra.projection(C_208:bat[:oid], X_162:bat[:dbl]); - X_229:bat[:dbl] := mat.packIncrement(X_209:bat[:dbl], 4:int); - X_231:bat[:dbl] := mat.packIncrement(X_229:bat[:dbl], X_210:bat[:dbl]); - X_232:bat[:dbl] := mat.packIncrement(X_231:bat[:dbl], X_211:bat[:dbl]); - X_40:bat[:dbl] := mat.packIncrement(X_232:bat[:dbl], X_212:bat[:dbl]); - X_53:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part2":str, "y":str, 0:int); - X_49:bat[:dbl] := sql.bind(X_4:int, "sys":str, "part2":str, "x":str, 0:int); - C_43:bat[:oid] := sql.tid(X_4:int, "sys":str, "part2":str); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list