Changeset: ec3df729ab14 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ec3df729ab14
Removed Files:
        sql/test/miscellaneous/Tests/simple_plans.stable.out.single
Modified Files:
        sql/test/miscellaneous/Tests/simple_plans.sql
        sql/test/miscellaneous/Tests/simple_plans.stable.out
Branch: Oct2020
Log Message:

Added regression test and use sequential pipe to avoid single threaded output


diffs (truncated from 860 to 300 lines):

diff --git a/sql/test/miscellaneous/Tests/simple_plans.sql 
b/sql/test/miscellaneous/Tests/simple_plans.sql
--- a/sql/test/miscellaneous/Tests/simple_plans.sql
+++ b/sql/test/miscellaneous/Tests/simple_plans.sql
@@ -1,3 +1,5 @@
+set optimizer='sequential_pipe';
+
 start transaction;
 
 create table myy (col1 int, col2 int);
@@ -61,4 +63,18 @@ EXPLAIN SELECT 1 FROM another_t t1 INNER
 PLAN SELECT 1 FROM another_t WHERE (col1 >= 1 AND col1 <= 2) OR col2 IS NULL;
 PLAN SELECT (col1 >= 1 AND col1 <= 2) OR col2 IS NULL FROM another_t;
 
+/* Make sure no cross-products are generated */
+CREATE TABLE tabel1 (id_nr INT, dt_sur STRING, edg INT, ede DATE, pc_nml_hur 
STRING, srt_ukr STRING);
+INSERT INTO tabel1 VALUES (10, 'Koning', NULL, current_date - INTERVAL '1' 
MONTH, '50', '01'), (20, 'Nes', NULL, NULL, '50', '01');
+CREATE TABLE tabel2 (id_nr INT, dt_sur STRING, edg INT, ede DATE, pc_nml_hur 
STRING);
+INSERT INTO tabel2 VALUES (10, 'Koning', NULL, current_date - INTERVAL '1' 
MONTH, '50'), (10, 'Koning', NULL, NULL, '50'), (20, 'Nes', NULL, NULL, '50');
+CREATE TABLE tabel3 (id_nr INT, my_date DATE);
+INSERT INTO tabel3 VALUES (10, current_date - INTERVAL '1' MONTH), (10, NULL), 
(20, NULL);
+create view view1 as SELECT * FROM tabel1 as a;
+create view view2 as SELECT * FROM tabel2 as a;
+create view view3 as SELECT * FROM tabel3 as a;
+PLAN SELECT 1 FROM view1 s INNER JOIN view2 h ON s.id_nr = h.id_nr LEFT JOIN 
view2 h2 ON h.id_nr = h2.id_nr INNER JOIN view3 a ON a.id_nr = s.id_nr;
+
 rollback;
+
+set optimizer='default_pipe';
diff --git a/sql/test/miscellaneous/Tests/simple_plans.stable.out 
b/sql/test/miscellaneous/Tests/simple_plans.stable.out
--- a/sql/test/miscellaneous/Tests/simple_plans.stable.out
+++ b/sql/test/miscellaneous/Tests/simple_plans.stable.out
@@ -201,53 +201,21 @@ project (
 % .explain # table_name
 % mal # name
 % clob # type
-% 166 # length
+% 169 # length
 function user.main():void;
-    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 between t2.col1 and t2.col1;":str, "default_pipe":str, 
22:int);
-barrier X_136:bit := language.dataflow();
+    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 between t2.col1 and t2.col1;":str, 
"sequential_pipe":str, 22:int);
     X_32:bat[:str] := bat.pack(".%1":str);
     X_33:bat[:str] := bat.pack("%1":str);
     X_34:bat[:str] := bat.pack("tinyint":str);
     X_35:bat[:int] := bat.pack(1:int);
     X_36:bat[:int] := bat.pack(0:int);
     X_4:int := sql.mvc();
-    C_82:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 0:int, 
4:int);
-    X_93:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 0:int, 4:int);
-    X_98:bat[:int] := algebra.projection(C_82:bat[:oid], X_93:bat[:int]);
-    C_12:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str);
-    X_14:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int);
-    X_16:bat[:int] := algebra.projection(C_12:bat[:oid], X_14:bat[:int]);
-    X_102:bat[:oid] := algebra.rangejoin(X_98:bat[:int], X_16:bat[:int], 
X_16:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_110:bat[:int] := algebra.projection(X_102:bat[:oid], X_98:bat[:int]);
-    X_118:bat[:bte] := algebra.project(X_110:bat[:int], 1:bte);
-    C_84:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 1:int, 
4:int);
-    X_94:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 1:int, 4:int);
-    X_99:bat[:int] := algebra.projection(C_84:bat[:oid], X_94:bat[:int]);
-    X_104:bat[:oid] := algebra.rangejoin(X_99:bat[:int], X_16:bat[:int], 
X_16:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_111:bat[:int] := algebra.projection(X_104:bat[:oid], X_99:bat[:int]);
-    X_119:bat[:bte] := algebra.project(X_111:bat[:int], 1:bte);
-    C_86:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 2:int, 
4:int);
-    X_95:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 2:int, 4:int);
-    X_100:bat[:int] := algebra.projection(C_86:bat[:oid], X_95:bat[:int]);
-    X_106:bat[:oid] := algebra.rangejoin(X_100:bat[:int], X_16:bat[:int], 
X_16:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_112:bat[:int] := algebra.projection(X_106:bat[:oid], X_100:bat[:int]);
-    X_120:bat[:bte] := algebra.project(X_112:bat[:int], 1:bte);
-    C_88:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 3:int, 
4:int);
-    X_96:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 3:int, 4:int);
-    X_101:bat[:int] := algebra.projection(C_88:bat[:oid], X_96:bat[:int]);
-    X_108:bat[:oid] := algebra.rangejoin(X_101:bat[:int], X_16:bat[:int], 
X_16:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_113:bat[:int] := algebra.projection(X_108:bat[:oid], X_101:bat[:int]);
-    X_121:bat[:bte] := algebra.project(X_113:bat[:int], 1:bte);
-    X_130:bat[:bte] := mat.packIncrement(X_118:bat[:bte], 4:int);
-    X_132:bat[:bte] := mat.packIncrement(X_130:bat[:bte], X_119:bat[:bte]);
-    X_133:bat[:bte] := mat.packIncrement(X_132:bat[:bte], X_120:bat[:bte]);
-    X_30:bat[:bte] := mat.packIncrement(X_133:bat[:bte], X_121:bat[:bte]);
-    language.pass(X_98:bat[:int]);
-    language.pass(X_99:bat[:int]);
-    language.pass(X_100:bat[:int]);
-    language.pass(X_16:bat[:int]);
-    language.pass(X_101:bat[:int]);
-exit X_136:bit;
+    C_5:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str);
+    X_11:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int);
+    X_15:bat[:int] := algebra.projection(C_5:bat[:oid], X_11:bat[:int]);
+    X_17:bat[:oid] := algebra.rangejoin(X_15:bat[:int], X_15:bat[:int], 
X_15:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
+    X_26:bat[:int] := algebra.projection(X_17:bat[:oid], X_15:bat[:int]);
+    X_30:bat[:bte] := algebra.project(X_26:bat[:int], 1:bte);
     sql.resultSet(X_32:bat[:str], X_33:bat[:str], X_34:bat[:str], 
X_35:bat[:int], X_36:bat[:int], X_30:bat[:bte]);
 end user.main;
 #inline               actions= 0 time=1 usec 
@@ -282,62 +250,24 @@ end user.main;
 % .explain # table_name
 % mal # name
 % clob # type
-% 174 # length
+% 177 # length
 function user.main():void;
-    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 between t2.col1 - 1 and t2.col1 + 1;":str, 
"default_pipe":str, 29:int);
-barrier X_154:bit := language.dataflow();
+    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 between t2.col1 - 1 and t2.col1 + 1;":str, 
"sequential_pipe":str, 29:int);
     X_43:bat[:str] := bat.pack(".%1":str);
     X_44:bat[:str] := bat.pack("%1":str);
     X_45:bat[:str] := bat.pack("tinyint":str);
     X_46:bat[:int] := bat.pack(1:int);
     X_47:bat[:int] := bat.pack(0:int);
     X_4:int := sql.mvc();
-    C_96:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 0:int, 
4:int);
-    X_107:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 0:int, 4:int);
-    X_112:bat[:int] := algebra.projection(C_96:bat[:oid], X_107:bat[:int]);
-    X_116:bat[:lng] := batcalc.lng(X_112:bat[:int]);
-    C_12:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str);
-    X_14:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int);
-    X_16:bat[:int] := algebra.projection(C_12:bat[:oid], X_14:bat[:int]);
-    X_18:bat[:lng] := batcalc.lng(X_16:bat[:int]);
-    X_21:bat[:lng] := batcalc.-(X_18:bat[:lng], 1:lng, nil:BAT);
-    X_26:bat[:lng] := batcalc.+(X_18:bat[:lng], 1:lng, nil:BAT);
-    X_120:bat[:oid] := algebra.rangejoin(X_116:bat[:lng], X_21:bat[:lng], 
X_26:bat[:lng], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_128:bat[:int] := algebra.projection(X_120:bat[:oid], X_112:bat[:int]);
-    X_136:bat[:bte] := algebra.project(X_128:bat[:int], 1:bte);
-    C_98:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 1:int, 
4:int);
-    X_108:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 1:int, 4:int);
-    X_113:bat[:int] := algebra.projection(C_98:bat[:oid], X_108:bat[:int]);
-    X_117:bat[:lng] := batcalc.lng(X_113:bat[:int]);
-    X_122:bat[:oid] := algebra.rangejoin(X_117:bat[:lng], X_21:bat[:lng], 
X_26:bat[:lng], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_129:bat[:int] := algebra.projection(X_122:bat[:oid], X_113:bat[:int]);
-    X_137:bat[:bte] := algebra.project(X_129:bat[:int], 1:bte);
-    C_100:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 2:int, 
4:int);
-    X_109:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 2:int, 4:int);
-    X_114:bat[:int] := algebra.projection(C_100:bat[:oid], X_109:bat[:int]);
-    X_118:bat[:lng] := batcalc.lng(X_114:bat[:int]);
-    X_124:bat[:oid] := algebra.rangejoin(X_118:bat[:lng], X_21:bat[:lng], 
X_26:bat[:lng], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_130:bat[:int] := algebra.projection(X_124:bat[:oid], X_114:bat[:int]);
-    X_138:bat[:bte] := algebra.project(X_130:bat[:int], 1:bte);
-    C_102:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 3:int, 
4:int);
-    X_110:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 3:int, 4:int);
-    X_115:bat[:int] := algebra.projection(C_102:bat[:oid], X_110:bat[:int]);
-    X_119:bat[:lng] := batcalc.lng(X_115:bat[:int]);
-    X_126:bat[:oid] := algebra.rangejoin(X_119:bat[:lng], X_21:bat[:lng], 
X_26:bat[:lng], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_131:bat[:int] := algebra.projection(X_126:bat[:oid], X_115:bat[:int]);
-    X_139:bat[:bte] := algebra.project(X_131:bat[:int], 1:bte);
-    X_148:bat[:bte] := mat.packIncrement(X_136:bat[:bte], 4:int);
-    X_150:bat[:bte] := mat.packIncrement(X_148:bat[:bte], X_137:bat[:bte]);
-    X_151:bat[:bte] := mat.packIncrement(X_150:bat[:bte], X_138:bat[:bte]);
-    X_41:bat[:bte] := mat.packIncrement(X_151:bat[:bte], X_139:bat[:bte]);
-    language.pass(X_18:bat[:lng]);
-    language.pass(X_112:bat[:int]);
-    language.pass(X_113:bat[:int]);
-    language.pass(X_114:bat[:int]);
-    language.pass(X_21:bat[:lng]);
-    language.pass(X_26:bat[:lng]);
-    language.pass(X_115:bat[:int]);
-exit X_154:bit;
+    C_5:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str);
+    X_11:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int);
+    X_15:bat[:int] := algebra.projection(C_5:bat[:oid], X_11:bat[:int]);
+    X_17:bat[:lng] := batcalc.lng(X_15:bat[:int]);
+    X_21:bat[:lng] := batcalc.-(X_17:bat[:lng], 1:lng, nil:BAT);
+    X_26:bat[:lng] := batcalc.+(X_17:bat[:lng], 1:lng, nil:BAT);
+    X_28:bat[:oid] := algebra.rangejoin(X_17:bat[:lng], X_21:bat[:lng], 
X_26:bat[:lng], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
+    X_37:bat[:int] := algebra.projection(X_28:bat[:oid], X_15:bat[:int]);
+    X_41:bat[:bte] := algebra.project(X_37:bat[:int], 1:bte);
     sql.resultSet(X_43:bat[:str], X_44:bat[:str], X_45:bat[:str], 
X_46:bat[:int], X_47:bat[:int], X_41:bat[:bte]);
 end user.main;
 #inline               actions= 0 time=1 usec 
@@ -372,55 +302,22 @@ end user.main;
 % .explain # table_name
 % mal # name
 % clob # type
-% 160 # length
+% 163 # length
 function user.main():void;
-    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 between t2.col1 and 2;":str, "default_pipe":str, 
24:int);
-barrier X_140:bit := language.dataflow();
+    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 between t2.col1 and 2;":str, "sequential_pipe":str, 
24:int);
     X_35:bat[:str] := bat.pack(".%1":str);
     X_36:bat[:str] := bat.pack("%1":str);
     X_37:bat[:str] := bat.pack("tinyint":str);
     X_38:bat[:int] := bat.pack(1:int);
     X_39:bat[:int] := bat.pack(0:int);
     X_4:int := sql.mvc();
-    C_86:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 0:int, 
4:int);
-    X_97:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 0:int, 4:int);
-    X_102:bat[:int] := algebra.projection(C_86:bat[:oid], X_97:bat[:int]);
-    C_12:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str);
-    X_14:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int);
-    X_16:bat[:int] := algebra.projection(C_12:bat[:oid], X_14:bat[:int]);
-    X_19:bat[:int] := algebra.project(X_16:bat[:int], 2:int);
-    X_106:bat[:oid] := algebra.rangejoin(X_102:bat[:int], X_16:bat[:int], 
X_19:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_114:bat[:int] := algebra.projection(X_106:bat[:oid], X_102:bat[:int]);
-    X_122:bat[:bte] := algebra.project(X_114:bat[:int], 1:bte);
-    C_88:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 1:int, 
4:int);
-    X_98:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 1:int, 4:int);
-    X_103:bat[:int] := algebra.projection(C_88:bat[:oid], X_98:bat[:int]);
-    X_108:bat[:oid] := algebra.rangejoin(X_103:bat[:int], X_16:bat[:int], 
X_19:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_115:bat[:int] := algebra.projection(X_108:bat[:oid], X_103:bat[:int]);
-    X_123:bat[:bte] := algebra.project(X_115:bat[:int], 1:bte);
-    C_90:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 2:int, 
4:int);
-    X_99:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 2:int, 4:int);
-    X_104:bat[:int] := algebra.projection(C_90:bat[:oid], X_99:bat[:int]);
-    X_110:bat[:oid] := algebra.rangejoin(X_104:bat[:int], X_16:bat[:int], 
X_19:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_116:bat[:int] := algebra.projection(X_110:bat[:oid], X_104:bat[:int]);
-    X_124:bat[:bte] := algebra.project(X_116:bat[:int], 1:bte);
-    C_92:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 3:int, 
4:int);
-    X_100:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 3:int, 4:int);
-    X_105:bat[:int] := algebra.projection(C_92:bat[:oid], X_100:bat[:int]);
-    X_112:bat[:oid] := algebra.rangejoin(X_105:bat[:int], X_16:bat[:int], 
X_19:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
-    X_117:bat[:int] := algebra.projection(X_112:bat[:oid], X_105:bat[:int]);
-    X_125:bat[:bte] := algebra.project(X_117:bat[:int], 1:bte);
-    X_134:bat[:bte] := mat.packIncrement(X_122:bat[:bte], 4:int);
-    X_136:bat[:bte] := mat.packIncrement(X_134:bat[:bte], X_123:bat[:bte]);
-    X_137:bat[:bte] := mat.packIncrement(X_136:bat[:bte], X_124:bat[:bte]);
-    X_33:bat[:bte] := mat.packIncrement(X_137:bat[:bte], X_125:bat[:bte]);
-    language.pass(X_102:bat[:int]);
-    language.pass(X_103:bat[:int]);
-    language.pass(X_104:bat[:int]);
-    language.pass(X_16:bat[:int]);
-    language.pass(X_19:bat[:int]);
-    language.pass(X_105:bat[:int]);
-exit X_140:bit;
+    C_5:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str);
+    X_11:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int);
+    X_15:bat[:int] := algebra.projection(C_5:bat[:oid], X_11:bat[:int]);
+    X_19:bat[:int] := algebra.project(X_15:bat[:int], 2:int);
+    X_20:bat[:oid] := algebra.rangejoin(X_15:bat[:int], X_15:bat[:int], 
X_19:bat[:int], nil:BAT, nil:BAT, true:bit, true:bit, false:bit, false:bit, 
nil:lng);
+    X_29:bat[:int] := algebra.projection(X_20:bat[:oid], X_15:bat[:int]);
+    X_33:bat[:bte] := algebra.project(X_29:bat[:int], 1:bte);
     sql.resultSet(X_35:bat[:str], X_36:bat[:str], X_37:bat[:str], 
X_38:bat[:int], X_39:bat[:int], X_33:bat[:bte]);
 end user.main;
 #inline               actions= 0 time=0 usec 
@@ -455,40 +352,21 @@ end user.main;
 % .explain # table_name
 % mal # name
 % clob # type
-% 189 # length
+% 192 # length
 function user.main():void;
-    X_1:void := querylog.define("explain select 1 from tbl_productsales t1 
inner join tbl_productsales t2 on t1.product_category like 
t2.product_category;":str, "default_pipe":str, 23:int);
-barrier X_115:bit := language.dataflow();
+    X_1:void := querylog.define("explain select 1 from tbl_productsales t1 
inner join tbl_productsales t2 on t1.product_category like 
t2.product_category;":str, "sequential_pipe":str, 23:int);
     X_32:bat[:str] := bat.pack(".%1":str);
     X_33:bat[:str] := bat.pack("%1":str);
     X_34:bat[:str] := bat.pack("tinyint":str);
     X_35:bat[:int] := bat.pack(1:int);
     X_36:bat[:int] := bat.pack(0:int);
     X_4:int := sql.mvc();
-    C_82:bat[:oid] := sql.tid(X_4:int, "sys":str, "tbl_productsales":str, 
0:int, 4:int);
-    X_93:bat[:str] := sql.bind(X_4:int, "sys":str, "tbl_productsales":str, 
"product_category":str, 0:int, 0:int, 4:int);
-    X_98:bat[:str] := algebra.projection(C_82:bat[:oid], X_93:bat[:str]);
-    C_84:bat[:oid] := sql.tid(X_4:int, "sys":str, "tbl_productsales":str, 
1:int, 4:int);
-    X_94:bat[:str] := sql.bind(X_4:int, "sys":str, "tbl_productsales":str, 
"product_category":str, 0:int, 1:int, 4:int);
-    X_99:bat[:str] := algebra.projection(C_84:bat[:oid], X_94:bat[:str]);
-    C_86:bat[:oid] := sql.tid(X_4:int, "sys":str, "tbl_productsales":str, 
2:int, 4:int);
-    X_95:bat[:str] := sql.bind(X_4:int, "sys":str, "tbl_productsales":str, 
"product_category":str, 0:int, 2:int, 4:int);
-    X_100:bat[:str] := algebra.projection(C_86:bat[:oid], X_95:bat[:str]);
-    C_88:bat[:oid] := sql.tid(X_4:int, "sys":str, "tbl_productsales":str, 
3:int, 4:int);
-    X_96:bat[:str] := sql.bind(X_4:int, "sys":str, "tbl_productsales":str, 
"product_category":str, 0:int, 3:int, 4:int);
-    X_101:bat[:str] := algebra.projection(C_88:bat[:oid], X_96:bat[:str]);
-    X_110:bat[:str] := mat.packIncrement(X_98:bat[:str], 4:int);
-    X_111:bat[:str] := mat.packIncrement(X_110:bat[:str], X_99:bat[:str]);
-    X_112:bat[:str] := mat.packIncrement(X_111:bat[:str], X_100:bat[:str]);
-    X_15:bat[:str] := mat.packIncrement(X_112:bat[:str], X_101:bat[:str]);
-    C_12:bat[:oid] := sql.tid(X_4:int, "sys":str, "tbl_productsales":str);
-    X_14:bat[:str] := sql.bind(X_4:int, "sys":str, "tbl_productsales":str, 
"product_category":str, 0:int);
-    X_16:bat[:str] := algebra.projection(C_12:bat[:oid], X_14:bat[:str]);
-    X_19:bat[:oid] := algebra.likejoin(X_15:bat[:str], X_16:bat[:str], "":str, 
nil:BAT, nil:BAT, true:bit, nil:lng, false:bit);
+    C_5:bat[:oid] := sql.tid(X_4:int, "sys":str, "tbl_productsales":str);
+    X_11:bat[:str] := sql.bind(X_4:int, "sys":str, "tbl_productsales":str, 
"product_category":str, 0:int);
+    X_15:bat[:str] := algebra.projection(C_5:bat[:oid], X_11:bat[:str]);
+    X_19:bat[:oid] := algebra.likejoin(X_15:bat[:str], X_15:bat[:str], "":str, 
nil:BAT, nil:BAT, true:bit, nil:lng, false:bit);
     X_26:bat[:str] := algebra.projection(X_19:bat[:oid], X_15:bat[:str]);
     X_30:bat[:bte] := algebra.project(X_26:bat[:str], 1:bte);
-    language.pass(X_15:bat[:str]);
-exit X_115:bit;
     sql.resultSet(X_32:bat[:str], X_33:bat[:str], X_34:bat[:str], 
X_35:bat[:int], X_36:bat[:int], X_30:bat[:bte]);
 end user.main;
 #inline               actions= 0 time=0 usec 
@@ -523,53 +401,21 @@ end user.main;
 % .explain # table_name
 % mal # name
 % clob # type
-% 148 # length
+% 151 # length
 function user.main():void;
-    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 > t2.col1;":str, "default_pipe":str, 22:int);
-barrier X_133:bit := language.dataflow();
+    X_1:void := querylog.define("explain select 1 from another_t t1 inner join 
another_t t2 on t1.col1 > t2.col1;":str, "sequential_pipe":str, 22:int);
     X_30:bat[:str] := bat.pack(".%1":str);
     X_31:bat[:str] := bat.pack("%1":str);
     X_32:bat[:str] := bat.pack("tinyint":str);
     X_33:bat[:int] := bat.pack(1:int);
     X_34:bat[:int] := bat.pack(0:int);
     X_4:int := sql.mvc();
-    C_79:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str, 0:int, 
4:int);
-    X_90:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int, 0:int, 4:int);
-    X_95:bat[:int] := algebra.projection(C_79:bat[:oid], X_90:bat[:int]);
-    C_12:bat[:oid] := sql.tid(X_4:int, "sys":str, "another_t":str);
-    X_14:bat[:int] := sql.bind(X_4:int, "sys":str, "another_t":str, 
"col1":str, 0:int);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to