Changeset: d9da821f8731 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d9da821f8731 Added Files: sql/test/BugTracker-2014/Tests/incorrect_floating_point_cast.Bug-3633.sql sql/test/BugTracker-2014/Tests/incorrect_floating_point_cast.Bug-3633.stable.err sql/test/BugTracker-2014/Tests/incorrect_floating_point_cast.Bug-3633.stable.out Modified Files: sql/benchmarks/tpch/Tests/11-explain.stable.out sql/benchmarks/tpch/Tests/11-plan.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out sql/benchmarks/tpch/Tests/17-plan.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out sql/benchmarks/tpch/Tests/20-plan.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out sql/benchmarks/tpch/Tests/22-plan.stable.out sql/server/rel_select.c sql/server/sql_semantic.c sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.stable.err sql/test/BugDay_2005-12-19_2.9.3/Tests/NULL_in_CASE.SF-1211335.stable.out sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.err sql/test/BugTracker-2012/Tests/incorrect_cast_from_double_to_int.Bug-2579.stable.out sql/test/BugTracker-2012/Tests/interval_timestamp.Bug-3002.stable.err sql/test/BugTracker-2014/Tests/All sql/test/Tests/coalesce.stable.err sql/test/Tests/coalesce.stable.out Branch: Oct2014 Log Message:
fixed bug 3633 ie properly check types on compare expressions made string a higher type in auto coersion. diffs (truncated from 780 to 300 lines): diff --git a/sql/benchmarks/tpch/Tests/11-explain.stable.out b/sql/benchmarks/tpch/Tests/11-explain.stable.out --- a/sql/benchmarks/tpch/Tests/11-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/11-explain.stable.out @@ -109,24 +109,24 @@ function user.s2_1{autoCommit=true}(A0:s (X_85,r1_111) := algebra.join(X_18,X_84); X_87 := algebra.leftfetchjoin(X_85,X_6); (X_88,r1_124) := algebra.join(X_87,X_43); - X_92 := algebra.leftfetchjoin(r1_124,X_67); - X_93 := algebra.leftfetchjoin(r1_124,X_77); - X_94:bat[:oid,:lng] := batcalc.*(X_92,X_93); - X_95:lng := aggr.sum(X_94); - X_96 := calc.*(X_95,A1); - X_97 := sql.single(X_96); - X_98:bat[:oid,:lng] := batcalc.lng(5,X_97,19,2); - (X_101,r1_156) := algebra.thetajoin(X_80,X_98,1); - X_103 := algebra.tinter(X_60,X_101); - X_104 := algebra.leftfetchjoin(X_103,X_80); - (X_105,r1_160,r2_160) := algebra.subsort(X_104,true,false); - X_110:bat[:oid,:int] := algebra.leftfetchjoinPath(r1_160,X_103,X_59); - X_111 := algebra.leftfetchjoin(r1_160,X_104); - X_112 := sql.resultSet(2,1,X_110); - sql.rsColumn(X_112,"sys.partsupp","ps_partkey","int",32,0,X_110); - sql.rsColumn(X_112,"sys.L1","value","decimal",19,2,X_111); - X_125 := io.stdout(); - sql.exportResult(X_125,X_112); + X_91 := algebra.leftfetchjoin(r1_124,X_67); + X_92 := algebra.leftfetchjoin(r1_124,X_77); + X_93:bat[:oid,:lng] := batcalc.*(X_91,X_92); + X_94:lng := aggr.sum(X_93); + X_95 := calc.*(X_94,A1); + X_96 := sql.single(X_95); + X_98:bat[:oid,:lng] := batsql.dec_round(X_96,100:lng); + (X_99,r1_157) := algebra.thetajoin(X_80,X_98,1); + X_101 := algebra.tinter(X_60,X_99); + X_102 := algebra.leftfetchjoin(X_101,X_80); + (X_103,r1_161,r2_161) := algebra.subsort(X_102,true,false); + X_108:bat[:oid,:int] := algebra.leftfetchjoinPath(r1_161,X_101,X_59); + X_109 := algebra.leftfetchjoin(r1_161,X_102); + X_110 := sql.resultSet(2,1,X_108); + sql.rsColumn(X_110,"sys.partsupp","ps_partkey","int",32,0,X_108); + sql.rsColumn(X_110,"sys.L1","value","decimal",19,2,X_109); + X_124 := io.stdout(); + sql.exportResult(X_124,X_110); end s2_1; # querylog.define("explain select\n\tps_partkey,\n\tsum(ps_supplycost * ps_availqty) as value\nfrom\n\tpartsupp,\n\tsupplier,\n\tnation\nwhere\n\tps_suppkey = s_suppkey\n\tand s_nationkey = n_nationkey\n\tand n_name = \\'GERMANY\\'\ngroup by\n\tps_partkey \nhaving\n\tsum(ps_supplycost * ps_availqty) >\n\t(\n\t\tselect\n\t\t\tsum(ps_supplycost * ps_availqty) * 0.0100000000\n\t\t\t-- The above constant needs to be adjusted according\n\t\t\t-- to the scale factor (SF): constant = 0.0001 / SF.\n\t\tfrom\n\t\t\tpartsupp,\n\t\t\tsupplier,\n\t\t\tnation\n\t\twhere\n\t\t\tps_suppkey = s_suppkey\n\t\t\tand s_nationkey = n_nationkey\n\t\t\tand n_name = \\'GERMANY\\'\n\t)\norder by\n\tvalue desc;","sequential_pipe") diff --git a/sql/benchmarks/tpch/Tests/11-plan.stable.out b/sql/benchmarks/tpch/Tests/11-plan.stable.out --- a/sql/benchmarks/tpch/Tests/11-plan.stable.out +++ b/sql/benchmarks/tpch/Tests/11-plan.stable.out @@ -81,8 +81,8 @@ project ( | | | | | table(sys.partsupp) [ partsupp.ps_availqty NOT NULL, partsupp.ps_supplycost NOT NULL, partsupp.%partsupp_ps_suppkey_fkey NOT NULL JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ] COUNT | | | | ) [ partsupp.%partsupp_ps_suppkey_fkey NOT NULL = supplier.%TID% NOT NULL JOINIDX sys.partsupp.partsupp_ps_suppkey_fkey ] | | | ) [ ] [ sys.sum no nil (sys.sql_mul(partsupp.ps_supplycost NOT NULL, partsupp.ps_availqty NOT NULL)) as L3.L3 ] -| | ) [ sys.sql_mul(L3, decimal(4,3) "10") as L4.L4 ] -| ) [ L2 > decimal(19,2)[L4.L4] ] +| | ) [ sys.sql_mul(L3, decimal(4,3) "1") as L4.L4 ] +| ) [ L2 > sys.scale_down(L4.L4, bigint "100") ] ) [ partsupp.ps_partkey NOT NULL, L1 as L1.value ] [ L1.value ] # 22:46:31 > diff --git a/sql/benchmarks/tpch/Tests/17-explain.stable.out b/sql/benchmarks/tpch/Tests/17-explain.stable.out --- a/sql/benchmarks/tpch/Tests/17-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/17-explain.stable.out @@ -94,13 +94,13 @@ function user.s2_1{autoCommit=true}(A0:b (X_73,r1_87) := sql.bind(X_6,"sys","lineitem","l_quantity",2); X_75:bat[:oid,:int] := sql.bind(X_6,"sys","lineitem","l_quantity",1); X_76 := sql.projectdelta(X_7,X_70,X_73,r1_87,X_75); - X_82 := algebra.leftfetchjoin(X_55,X_76); - X_83 := batcalc.dbl(X_82); - X_84:bat[:oid,:dbl] := aggr.subavg(X_83,X_67,r1_81,true,true); + X_83 := algebra.leftfetchjoin(X_55,X_76); + X_84 := batcalc.dbl(X_83); + X_85:bat[:oid,:dbl] := aggr.subavg(X_84,X_67,r1_81,true,true); X_77:bat[:oid,:int] := algebra.leftfetchjoinPath(X_144,X_43,X_76); - X_86:bat[:oid,:dbl] := batcalc.*(A3,X_84); - X_87 := batcalc.int(X_86); - X_88:bat[:oid,:bit] := batcalc.<(X_77,X_87); + X_78 := batcalc.dbl(X_77); + X_87:bat[:oid,:dbl] := batcalc.*(A3,X_85); + X_88:bat[:oid,:bit] := batcalc.<(X_78,X_87); X_89 := algebra.subselect(X_88,true,true,true,true,false); X_91:bat[:oid,:lng] := sql.bind(X_6,"sys","lineitem","l_extendedprice",0); (X_94,r1_121) := sql.bind(X_6,"sys","lineitem","l_extendedprice",2); @@ -110,8 +110,8 @@ function user.s2_1{autoCommit=true}(A0:b X_99:lng := aggr.sum(X_98); X_100 := calc.lng(2,X_99,18,5); X_103 := calc.lng(1,A0,15,2); - X_107 := calc./(X_100,X_103); - sql.exportValue(1,"sys.L3","avg_yearly","decimal",18,3,8,X_107,""); + X_106 := calc./(X_100,X_103); + sql.exportValue(1,"sys.L3","avg_yearly","decimal",18,3,8,X_106,""); end s2_1; # querylog.define("explain select\n\tsum(l_extendedprice) / 7.0 as avg_yearly\nfrom\n\tlineitem,\n\tpart\nwhere\n\tp_partkey = l_partkey\n\tand p_brand = \\'Brand#23\\'\n\tand p_container = \\'MED BOX\\'\n\tand l_quantity < (\n\t\tselect\n\t\t\t0.2 * avg(l_quantity)\n\t\tfrom\n\t\t\tlineitem\n\t\twhere\n\t\t\tl_partkey = p_partkey\n\t);","sequential_pipe") diff --git a/sql/benchmarks/tpch/Tests/17-plan.stable.out b/sql/benchmarks/tpch/Tests/17-plan.stable.out --- a/sql/benchmarks/tpch/Tests/17-plan.stable.out +++ b/sql/benchmarks/tpch/Tests/17-plan.stable.out @@ -64,7 +64,7 @@ project ( | | | | | ) [ L4.l_partkey NOT NULL = part.p_partkey NOT NULL ] | | | | ) [ L5.L5 ] [ lineitem.l_quantity NOT NULL, lineitem.l_extendedprice NOT NULL, L5.L5 HASHCOL , sys.avg no nil (double[L4.l_quantity NOT NULL] as lineitem.l_quantity) as L1.L1 ] | | | ) [ lineitem.l_quantity NOT NULL, lineitem.l_extendedprice NOT NULL, sys.sql_mul(double(53,1)[decimal(2,1) "2"], L1) as L2.L2 ] -| | ) [ lineitem.l_quantity NOT NULL < int[L2.L2] ] +| | ) [ double(53,1)[lineitem.l_quantity NOT NULL] < L2.L2 ] | ) [ ] [ sys.sum no nil (lineitem.l_extendedprice NOT NULL) NOT NULL as L3.L3 ] ) [ sys.sql_div(decimal(18,5)[L3 NOT NULL] as L3, decimal(15,2)[decimal(2,1) "70"]) as L3.avg_yearly ] diff --git a/sql/benchmarks/tpch/Tests/20-explain.stable.out b/sql/benchmarks/tpch/Tests/20-explain.stable.out --- a/sql/benchmarks/tpch/Tests/20-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/20-explain.stable.out @@ -94,12 +94,12 @@ function user.s2_1{autoCommit=true}(A0:s X_55:bat[:oid,:int] := algebra.leftfetchjoinPath(X_43,X_33,X_54); (X_56,r1_59) := algebra.join(X_31,X_55); X_58 := algebra.tinter(X_32,X_56); - X_273 := algebra.leftfetchjoin(X_58,X_23); + X_274 := algebra.leftfetchjoin(X_58,X_23); X_59:bat[:oid,:wrd] := sql.bind_idxbat(X_8,"sys","partsupp","partsupp_ps_partkey_ps_suppkey_pkey",0); (X_62,r1_65) := sql.bind_idxbat(X_8,"sys","partsupp","partsupp_ps_partkey_ps_suppkey_pkey",2); X_64:bat[:oid,:wrd] := sql.bind_idxbat(X_8,"sys","partsupp","partsupp_ps_partkey_ps_suppkey_pkey",1); X_65 := sql.delta(X_59,X_62,r1_65,X_64); - X_66:bat[:oid,:wrd] := algebra.leftfetchjoin(X_273,X_65); + X_66:bat[:oid,:wrd] := algebra.leftfetchjoin(X_274,X_65); X_67:bat[:oid,:oid] := sql.tid(X_8,"sys","lineitem"); X_69:bat[:oid,:date] := sql.bind(X_8,"sys","lineitem","l_shipdate",0); (X_71,r1_75) := sql.bind(X_8,"sys","lineitem","l_shipdate",2); @@ -108,18 +108,18 @@ function user.s2_1{autoCommit=true}(A0:s X_75 := algebra.leftfetchjoin(X_67,X_74); X_76 := mtime.addmonths(A3,A4); X_77 := algebra.subselect(X_75,A2,X_76,true,false,false); - X_274 := algebra.leftfetchjoin(X_77,X_67); + X_275 := algebra.leftfetchjoin(X_77,X_67); X_80:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_partkey",0); (X_84,r1_91) := sql.bind(X_8,"sys","lineitem","l_partkey",2); X_87:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_partkey",1); X_89 := sql.delta(X_80,X_84,r1_91,X_87); - X_90:bat[:oid,:int] := algebra.leftfetchjoin(X_274,X_89); + X_90:bat[:oid,:int] := algebra.leftfetchjoin(X_275,X_89); X_91:bat[:oid,:wrd] := batmkey.hash(X_90); X_93:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_suppkey",0); (X_96,r1_107) := sql.bind(X_8,"sys","lineitem","l_suppkey",2); X_98:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_suppkey",1); X_99 := sql.delta(X_93,X_96,r1_107,X_98); - X_100:bat[:oid,:int] := algebra.leftfetchjoin(X_274,X_99); + X_100:bat[:oid,:int] := algebra.leftfetchjoin(X_275,X_99); X_101:bat[:oid,:wrd] := mkey.bulk_rotate_xor_hash(X_91,22,X_100); (X_102,r1_114) := algebra.join(X_66,X_101); X_104 := algebra.leftfetchjoin(X_58,X_31); @@ -132,7 +132,7 @@ function user.s2_1{autoCommit=true}(A0:s (X_117,r1_132) := sql.bind(X_8,"sys","partsupp","ps_suppkey",2); X_120:bat[:oid,:int] := sql.bind(X_8,"sys","partsupp","ps_suppkey",1); X_122 := sql.delta(X_112,X_117,r1_132,X_120); - X_123:bat[:oid,:int] := algebra.leftfetchjoin(X_273,X_122); + X_123:bat[:oid,:int] := algebra.leftfetchjoin(X_274,X_122); X_124 := algebra.leftfetchjoin(X_111,X_123); X_125 := algebra.leftfetchjoin(X_109,r1_114); X_126 := algebra.leftfetchjoin(X_125,X_100); @@ -142,64 +142,64 @@ function user.s2_1{autoCommit=true}(A0:s X_130:bat[:oid,:oid] := batcalc.identity(X_104); X_131 := algebra.leftfetchjoin(X_129,X_130); (X_132,r1_150,r2_150) := group.subgroupdone(X_131); - X_275 := algebra.leftfetchjoin(r1_150,X_129); - X_144:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_quantity",0); - (X_149,r1_172) := sql.bind(X_8,"sys","lineitem","l_quantity",2); - X_152:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_quantity",1); - X_154 := sql.delta(X_144,X_149,r1_172,X_152); - X_155:bat[:oid,:int] := algebra.leftfetchjoinPath(X_128,X_125,X_274,X_154); - X_156:bat[:oid,:lng] := aggr.subsum(X_155,X_132,r1_150,true,true); + X_276 := algebra.leftfetchjoin(r1_150,X_129); + X_148:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_quantity",0); + (X_153,r1_178) := sql.bind(X_8,"sys","lineitem","l_quantity",2); + X_155:bat[:oid,:int] := sql.bind(X_8,"sys","lineitem","l_quantity",1); + X_156 := sql.delta(X_148,X_153,r1_178,X_155); + X_157:bat[:oid,:int] := algebra.leftfetchjoinPath(X_128,X_125,X_275,X_156); + X_158:bat[:oid,:lng] := aggr.subsum(X_157,X_132,r1_150,true,true); X_135:bat[:oid,:int] := sql.bind(X_8,"sys","partsupp","ps_availqty",0); (X_137,r1_155) := sql.bind(X_8,"sys","partsupp","ps_availqty",2); X_139:bat[:oid,:int] := sql.bind(X_8,"sys","partsupp","ps_availqty",1); X_140 := sql.delta(X_135,X_137,r1_155,X_139); - X_141:bat[:oid,:int] := algebra.leftfetchjoinPath(X_275,X_58,X_23,X_140); - X_142 := calc.lng(1,A1,11,1); - X_158:bat[:oid,:lng] := batcalc.lng(X_156,11,1); - X_159:bat[:oid,:lng] := batcalc.*(X_142,X_158); - X_160:bat[:oid,:int] := batcalc.int(2,X_159); - X_161:bat[:oid,:bit] := batcalc.>(X_141,X_160); - X_162 := algebra.subselect(X_161,true,true,true,true,false); - X_164:bat[:oid,:int] := algebra.leftfetchjoinPath(X_162,X_275,X_123); - (X_165,r1_197) := algebra.join(X_21,X_164); - X_167 := algebra.tinter(X_22,X_165); - X_276 := algebra.leftfetchjoin(X_167,X_9); - X_168:bat[:oid,:int] := sql.bind(X_8,"sys","supplier","s_nationkey",0); - (X_173,r1_205) := sql.bind(X_8,"sys","supplier","s_nationkey",2); - X_176:bat[:oid,:int] := sql.bind(X_8,"sys","supplier","s_nationkey",1); - X_178 := sql.delta(X_168,X_173,r1_205,X_176); - X_179:bat[:oid,:int] := algebra.leftfetchjoin(X_276,X_178); + X_141:bat[:oid,:int] := algebra.leftfetchjoinPath(X_276,X_58,X_23,X_140); + X_142:bat[:oid,:lng] := batcalc.lng(X_141,19,2); + X_145 := calc.lng(1,A1,11,1); + X_160:bat[:oid,:lng] := batcalc.lng(X_158,11,1); + X_161:bat[:oid,:lng] := batcalc.*(X_145,X_160); + X_162:bat[:oid,:bit] := batcalc.>(X_142,X_161); + X_163 := algebra.subselect(X_162,true,true,true,true,false); + X_165:bat[:oid,:int] := algebra.leftfetchjoinPath(X_163,X_276,X_123); + (X_166,r1_197) := algebra.join(X_21,X_165); + X_168 := algebra.tinter(X_22,X_166); + X_277 := algebra.leftfetchjoin(X_168,X_9); + X_169:bat[:oid,:int] := sql.bind(X_8,"sys","supplier","s_nationkey",0); + (X_172,r1_203) := sql.bind(X_8,"sys","supplier","s_nationkey",2); + X_175:bat[:oid,:int] := sql.bind(X_8,"sys","supplier","s_nationkey",1); + X_178 := sql.delta(X_169,X_172,r1_203,X_175); + X_179:bat[:oid,:int] := algebra.leftfetchjoin(X_277,X_178); X_180:bat[:oid,:oid] := sql.tid(X_8,"sys","nation"); X_182:bat[:oid,:str] := sql.bind(X_8,"sys","nation","n_name",0); - (X_184,r1_217) := sql.bind(X_8,"sys","nation","n_name",2); - X_186:bat[:oid,:str] := sql.bind(X_8,"sys","nation","n_name",1); - X_187 := sql.delta(X_182,X_184,r1_217,X_186); - X_188 := algebra.leftfetchjoin(X_180,X_187); - X_189 := algebra.subselect(X_188,A5,A5,true,true,false); - X_191:bat[:oid,:int] := sql.bind(X_8,"sys","nation","n_nationkey",0); - (X_193,r1_227) := sql.bind(X_8,"sys","nation","n_nationkey",2); - X_195:bat[:oid,:int] := sql.bind(X_8,"sys","nation","n_nationkey",1); - X_196 := sql.delta(X_191,X_193,r1_227,X_195); - X_197:bat[:oid,:int] := algebra.leftfetchjoinPath(X_189,X_180,X_196); - (X_198,r1_233) := algebra.join(X_179,X_197); - X_277 := algebra.leftfetchjoin(X_198,X_167); - X_200:bat[:oid,:str] := sql.bind(X_8,"sys","supplier","s_name",0); - (X_205,r1_240) := sql.bind(X_8,"sys","supplier","s_name",2); + (X_185,r1_217) := sql.bind(X_8,"sys","nation","n_name",2); + X_187:bat[:oid,:str] := sql.bind(X_8,"sys","nation","n_name",1); + X_188 := sql.delta(X_182,X_185,r1_217,X_187); + X_189 := algebra.leftfetchjoin(X_180,X_188); + X_190 := algebra.subselect(X_189,A5,A5,true,true,false); + X_192:bat[:oid,:int] := sql.bind(X_8,"sys","nation","n_nationkey",0); + (X_194,r1_227) := sql.bind(X_8,"sys","nation","n_nationkey",2); + X_196:bat[:oid,:int] := sql.bind(X_8,"sys","nation","n_nationkey",1); + X_197 := sql.delta(X_192,X_194,r1_227,X_196); + X_198:bat[:oid,:int] := algebra.leftfetchjoinPath(X_190,X_180,X_197); + (X_199,r1_233) := algebra.join(X_179,X_198); + X_278 := algebra.leftfetchjoin(X_199,X_168); + X_201:bat[:oid,:str] := sql.bind(X_8,"sys","supplier","s_name",0); + (X_204,r1_238) := sql.bind(X_8,"sys","supplier","s_name",2); X_208:bat[:oid,:str] := sql.bind(X_8,"sys","supplier","s_name",1); - X_210 := sql.delta(X_200,X_205,r1_240,X_208); - X_211:bat[:oid,:str] := algebra.leftfetchjoinPath(X_277,X_9,X_210); - (X_212,r1_249,r2_249) := algebra.subsort(X_211,false,false); - X_216 := algebra.leftfetchjoin(r1_249,X_211); + X_210 := sql.delta(X_201,X_204,r1_238,X_208); + X_211:bat[:oid,:str] := algebra.leftfetchjoinPath(X_278,X_9,X_210); + (X_212,r1_248,r2_248) := algebra.subsort(X_211,false,false); + X_216 := algebra.leftfetchjoin(r1_248,X_211); X_217:bat[:oid,:str] := sql.bind(X_8,"sys","supplier","s_address",0); - (X_219,r1_256) := sql.bind(X_8,"sys","supplier","s_address",2); - X_221:bat[:oid,:str] := sql.bind(X_8,"sys","supplier","s_address",1); - X_222 := sql.delta(X_217,X_219,r1_256,X_221); - X_223:bat[:oid,:str] := algebra.leftfetchjoinPath(r1_249,X_277,X_9,X_222); - X_224 := sql.resultSet(2,1,X_216); - sql.rsColumn(X_224,"sys.supplier","s_name","varchar",25,0,X_216); - sql.rsColumn(X_224,"sys.supplier","s_address","varchar",40,0,X_223); - X_231 := io.stdout(); - sql.exportResult(X_231,X_224); + (X_220,r1_256) := sql.bind(X_8,"sys","supplier","s_address",2); + X_222:bat[:oid,:str] := sql.bind(X_8,"sys","supplier","s_address",1); + X_223 := sql.delta(X_217,X_220,r1_256,X_222); + X_224:bat[:oid,:str] := algebra.leftfetchjoinPath(r1_248,X_278,X_9,X_223); + X_225 := sql.resultSet(2,1,X_216); + sql.rsColumn(X_225,"sys.supplier","s_name","varchar",25,0,X_216); + sql.rsColumn(X_225,"sys.supplier","s_address","varchar",40,0,X_224); + X_232 := io.stdout(); + sql.exportResult(X_232,X_225); end s2_1; # querylog.define("explain select\n\ts_name,\n\ts_address\nfrom\n\tsupplier,\n\tnation\nwhere\n\ts_suppkey in (\n\t\tselect\n\t\t\tps_suppkey\n\t\tfrom\n\t\t\tpartsupp\n\t\twhere\n\t\t\tps_partkey in (\n\t\t\t\tselect\n\t\t\t\t\tp_partkey\n\t\t\t\tfrom\n\t\t\t\t\tpart\n\t\t\t\twhere\n\t\t\t\t\tp_name like \\'forest%\\'\n\t\t\t)\n\t\t\tand ps_availqty > (\n\t\t\t\tselect\n\t\t\t\t\t0.5 * sum(l_quantity)\n\t\t\t\tfrom\n\t\t\t\t\tlineitem\n\t\t\t\twhere\n\t\t\t\t\tl_partkey = ps_partkey\n\t\t\t\t\tand l_suppkey = ps_suppkey\n\t\t\t\t\tand l_shipdate >= date \\'1994-01-01\\'\n\t\t\t\t\tand l_shipdate < date \\'1994-01-01\\' + interval \\'1\\' year\n\t\t\t)\n\t)\n\tand s_nationkey = n_nationkey\n\tand n_name = \\'CANADA\\'\norder by\n\ts_name;","sequential_pipe") diff --git a/sql/benchmarks/tpch/Tests/20-plan.stable.out b/sql/benchmarks/tpch/Tests/20-plan.stable.out --- a/sql/benchmarks/tpch/Tests/20-plan.stable.out +++ b/sql/benchmarks/tpch/Tests/20-plan.stable.out @@ -89,7 +89,7 @@ project ( | | | | | | | | ) [ partsupp.ps_partkey NOT NULL = L16.l_partkey NOT NULL HASHCOL , partsupp.ps_suppkey NOT NULL = L16.l_suppkey NOT NULL HASHCOL ] | | | | | | | ) [ L17.L17 ] [ partsupp.ps_suppkey NOT NULL, partsupp.ps_availqty NOT NULL, L17.L17 HASHCOL , sys.sum no nil (L16.l_quantity NOT NULL as lineitem.l_quantity) NOT NULL as L12.L12 ] | | | | | | ) [ partsupp.ps_suppkey NOT NULL, partsupp.ps_availqty NOT NULL, sys.sql_mul(decimal(11,1)[decimal(2,1) "5"], decimal(11,1)[L12 NOT NULL] as L12) as L13.L13 ] -| | | | | ) [ partsupp.ps_availqty NOT NULL > int[L13.L13] ] +| | | | | ) [ decimal(19,2)[partsupp.ps_availqty NOT NULL] > L13.L13 ] | | | | ) [ partsupp.ps_suppkey NOT NULL as L15.L14 ] | | | ) [ supplier.s_suppkey NOT NULL HASHCOL = L15.L14 NOT NULL ], | | | select ( diff --git a/sql/benchmarks/tpch/Tests/22-explain.stable.out b/sql/benchmarks/tpch/Tests/22-explain.stable.out --- a/sql/benchmarks/tpch/Tests/22-explain.stable.out +++ b/sql/benchmarks/tpch/Tests/22-explain.stable.out @@ -91,57 +91,57 @@ function user.s2_1{autoCommit=true}(A0:i X_71 := sql.delta(X_66,X_68,r1_80,X_70); X_72 := algebra.leftfetchjoin(X_24,X_71); X_73 := algebra.leftfetchjoin(X_52,X_72); - X_74:bat[:oid,:str] := batstr.substring(X_36,A12,A13); - X_77 := calc.lng(1,A11,15,2); - X_79 := algebra.thetasubselect(X_72,X_77,">"); - X_81 := algebra.subselect(X_74,X_79,A14,A14,true,true,false); - X_84 := algebra.subselect(X_74,X_79,A15,A15,true,true,false); - X_85 := bat.mergecand(X_81,X_84); - X_86 := algebra.subselect(X_74,X_79,A16,A16,true,true,false); - X_87 := bat.mergecand(X_85,X_86); - X_88 := algebra.subselect(X_74,X_79,A17,A17,true,true,false); - X_89 := bat.mergecand(X_87,X_88); - X_90 := algebra.subselect(X_74,X_79,A18,A18,true,true,false); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list