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