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

Reply via email to