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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list