[FEAT MERGE]logical plan move to plan cache module add feedback into to plan
This commit is contained in:
@ -244,11 +244,11 @@ select abs(t1) from t;
|
||||
+---------+
|
||||
explain select abs(t1) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t1, BIGINT(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -264,11 +264,11 @@ select abs(t2) from t;
|
||||
+---------+
|
||||
explain select abs(t2) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t2, BIGINT(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -284,11 +284,11 @@ select abs(t3) from t;
|
||||
+---------+
|
||||
explain select abs(t3) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t3, BIGINT(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -304,11 +304,11 @@ select abs(t4) from t;
|
||||
+---------+
|
||||
explain select abs(t4) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t4, BIGINT(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -324,11 +324,11 @@ select abs(t5) from t;
|
||||
+---------+
|
||||
explain select abs(t5) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(t.t5)]), filter(nil), rowset=256
|
||||
@ -344,11 +344,11 @@ select abs(t6) from t;
|
||||
+---------+
|
||||
explain select abs(t6) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t6, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -364,11 +364,11 @@ select abs(t7) from t;
|
||||
+---------+
|
||||
explain select abs(t7) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t7, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -384,11 +384,11 @@ select abs(t8) from t;
|
||||
+---------+
|
||||
explain select abs(t8) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t8, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -404,11 +404,11 @@ select abs(t9) from t;
|
||||
+---------+
|
||||
explain select abs(t9) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t9, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -424,11 +424,11 @@ select abs(t10) from t;
|
||||
+----------+
|
||||
explain select abs(t10) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(t.t10)]), filter(nil), rowset=256
|
||||
@ -444,11 +444,11 @@ select abs(t11) from t;
|
||||
+---------------------+
|
||||
explain select abs(t11) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t11, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -464,11 +464,11 @@ select abs(t12) from t;
|
||||
+---------------------+
|
||||
explain select abs(t12) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t12, DOUBLE UNSIGNED(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -484,11 +484,11 @@ select abs(t13) from t;
|
||||
+----------+
|
||||
explain select abs(t13) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(t.t13)]), filter(nil), rowset=256
|
||||
@ -504,11 +504,11 @@ select abs(t14) from t;
|
||||
+----------+
|
||||
explain select abs(t14) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(t.t14)]), filter(nil), rowset=256
|
||||
@ -524,11 +524,11 @@ select abs(t15) from t;
|
||||
+----------+
|
||||
explain select abs(t15) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(t.t15)]), filter(nil), rowset=256
|
||||
@ -544,11 +544,11 @@ select abs(t16) from t;
|
||||
+----------+
|
||||
explain select abs(t16) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(t.t16)]), filter(nil), rowset=256
|
||||
@ -564,11 +564,11 @@ select abs(t17) from t;
|
||||
+----------------+
|
||||
explain select abs(t17) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t17, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -584,11 +584,11 @@ select abs(t18) from t;
|
||||
+----------------+
|
||||
explain select abs(t18) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t18, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -604,11 +604,11 @@ select abs(t19) from t;
|
||||
+----------+
|
||||
explain select abs(t19) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t19, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -624,11 +624,11 @@ select abs(t20) from t;
|
||||
+----------+
|
||||
explain select abs(t20) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t20, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -644,11 +644,11 @@ select abs(t21) from t;
|
||||
+----------+
|
||||
explain select abs(t21) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t21, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -664,11 +664,11 @@ select abs(t22) from t;
|
||||
+----------+
|
||||
explain select abs(t22) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t22, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -684,11 +684,11 @@ select abs(t23) from t;
|
||||
+----------+
|
||||
explain select abs(t23) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t23, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -704,11 +704,11 @@ select abs(t24) from t;
|
||||
+----------+
|
||||
explain select abs(t24) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t24, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -724,11 +724,11 @@ select abs(t25) from t;
|
||||
+----------+
|
||||
explain select abs(t25) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t25, DOUBLE(-1, -1)))]), filter(nil)
|
||||
@ -744,11 +744,11 @@ select abs(t26) from t;
|
||||
+----------+
|
||||
explain select abs(t26) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t26, DOUBLE(-1, -1)))]), filter(nil)
|
||||
@ -764,11 +764,11 @@ select abs(t27) from t;
|
||||
+----------+
|
||||
explain select abs(t27) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t27, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=256
|
||||
@ -784,11 +784,11 @@ select abs(t28) from t;
|
||||
+----------+
|
||||
explain select abs(t28) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t28, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
@ -804,11 +804,11 @@ select abs(t29) from t;
|
||||
+----------+
|
||||
explain select abs(t29) from t;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([abs(cast(t.t29, DOUBLE(-1, -1)))]), filter(nil), rowset=256
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -30,13 +30,14 @@ Query Plan
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------------
|
||||
|0 |DISTRIBUTED INSERT| |1 |13 |
|
||||
|1 | EXPRESSION | |1 |1 |
|
||||
|1 |└─EXPRESSION | |1 |1 |
|
||||
==================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output(nil), filter(nil)
|
||||
columns([{t2: ({t2: (t2.c1, t2.c2)})}]),
|
||||
column_values([column_conv(INT,PS:(11,0),NOT NULL,t2.c1.nextval(column_conv(INT,PS:(11,0),NOT NULL,__values.c1)))], [column_conv(INT,PS:(11,0),NULL,__values.c2)])
|
||||
column_values([column_conv(INT,PS:(11,0),NOT NULL,t2.c1.nextval(column_conv(INT,PS:(11,0),NOT NULL,__values.c1)))], [column_conv(INT,PS:(11,0),NULL,
|
||||
__values.c2)])
|
||||
1 - output([__values.c1], [__values.c2]), filter(nil)
|
||||
values({'0', '1'})
|
||||
|
||||
|
||||
@ -7319,11 +7319,11 @@ insert into t1 values('1901-01-01', 1901);
|
||||
explain_protocol: 2
|
||||
EXPLAIN select nullif(c1, c2) from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([nullif(t1.c1, t1.c2)]), filter(nil), rowset=256
|
||||
@ -7338,11 +7338,11 @@ select nullif(c1, c2) from t1;
|
||||
+---------------------------+
|
||||
EXPLAIN select nullif(c2, c1) from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([nullif(t1.c2, t1.c1)]), filter(nil), rowset=256
|
||||
@ -7357,11 +7357,11 @@ select nullif(c2, c1) from t1;
|
||||
+----------------+
|
||||
EXPLAIN select nullif(c1, c1) from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([nullif(t1.c1, t1.c1)]), filter(nil), rowset=256
|
||||
@ -7376,11 +7376,11 @@ select nullif(c1, c1) from t1;
|
||||
+----------------+
|
||||
EXPLAIN select nullif(c2, c2) from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([nullif(t1.c2, t1.c2)]), filter(nil), rowset=256
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -30,14 +30,14 @@ Query Plan
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN | |25 |6 |
|
||||
|1 | TABLE SCAN |t1 |5 |3 |
|
||||
|2 | MATERIAL | |5 |3 |
|
||||
|3 | TABLE SCAN |t2 |5 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |5 |3 |
|
||||
===========================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t2.c1], [t2.c2], [t2.c3]), filter(nil), rowset=256
|
||||
conds(nil), nl_params_(nil), batch_join=false
|
||||
conds(nil), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=256
|
||||
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
@ -53,14 +53,14 @@ Query Plan
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN | |25 |6 |
|
||||
|1 | TABLE SCAN |t1 |5 |3 |
|
||||
|2 | MATERIAL | |5 |3 |
|
||||
|3 | TABLE SCAN |t2 |5 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |5 |3 |
|
||||
===========================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t2.c1], [t2.c2], [t2.c3]), filter(nil), rowset=256
|
||||
conds(nil), nl_params_(nil), batch_join=false
|
||||
conds(nil), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=256
|
||||
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
|
||||
@ -49,14 +49,14 @@ set @@ob_enable_plan_cache = 0;
|
||||
|
||||
EXPLAIN BASIC select * from t3 a ;
|
||||
Query Plan
|
||||
=====================================
|
||||
|ID|OPERATOR |NAME |
|
||||
-------------------------------------
|
||||
|0 |PX COORDINATOR | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10000|
|
||||
|2 | PX PARTITION ITERATOR| |
|
||||
|3 | TABLE SCAN |a |
|
||||
=====================================
|
||||
=======================================
|
||||
|ID|OPERATOR |NAME |
|
||||
---------------------------------------
|
||||
|0 |PX COORDINATOR | |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10000|
|
||||
|2 | └─PX PARTITION ITERATOR| |
|
||||
|3 | └─TABLE FULL SCAN |a |
|
||||
=======================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(a.c1, a.c2)]), filter(nil), rowset=256
|
||||
@ -88,10 +88,10 @@ Query Plan
|
||||
|ID|OPERATOR |NAME |
|
||||
----------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10000|
|
||||
|2 | SORT | |
|
||||
|3 | PX BLOCK ITERATOR | |
|
||||
|4 | TABLE SCAN |a |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10000|
|
||||
|2 | └─SORT | |
|
||||
|3 | └─PX BLOCK ITERATOR | |
|
||||
|4 | └─TABLE FULL SCAN |a |
|
||||
========================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -122,20 +122,20 @@ select /*+ parallel(2) NO_USE_HASH_AGGREGATION */ a.c1,a.c2+a.c1 from t3 a grou
|
||||
##ms receieve local order
|
||||
EXPLAIN BASIC select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c1,a.c2 from t3 a right outer join t3 b on a.c2=b.c1 order by a.c1,a.c2;
|
||||
Query Plan
|
||||
============================================
|
||||
|ID|OPERATOR |NAME |
|
||||
--------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | SORT | |
|
||||
|3 | HASH RIGHT OUTER JOIN | |
|
||||
|4 | EXCHANGE IN DISTR | |
|
||||
|5 | EXCHANGE OUT DISTR (PKEY)|:EX10000|
|
||||
|6 | PX BLOCK ITERATOR | |
|
||||
|7 | TABLE SCAN |a |
|
||||
|8 | PX PARTITION ITERATOR | |
|
||||
|9 | TABLE SCAN |b |
|
||||
============================================
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME |
|
||||
-------------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | └─SORT | |
|
||||
|3 | └─HASH RIGHT OUTER JOIN | |
|
||||
|4 | ├─EXCHANGE IN DISTR | |
|
||||
|5 | │ └─EXCHANGE OUT DISTR (PKEY)|:EX10000|
|
||||
|6 | │ └─PX BLOCK ITERATOR | |
|
||||
|7 | │ └─TABLE FULL SCAN |a |
|
||||
|8 | └─PX PARTITION ITERATOR | |
|
||||
|9 | └─TABLE FULL SCAN |b |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(a.c1, a.c2)]), filter(nil), rowset=256
|
||||
@ -175,20 +175,20 @@ select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c
|
||||
+----+------+
|
||||
EXPLAIN BASIC select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c1,a.c2 from t3 a right outer join t3 b on a.c2+2=b.c1+1 order by a.c1,a.c2+2;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME |
|
||||
-----------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | SORT | |
|
||||
|3 | SHARED HASH RIGHT OUTER JOIN | |
|
||||
|4 | EXCHANGE IN DISTR | |
|
||||
|5 | EXCHANGE OUT DISTR (BC2HOST)|:EX10000|
|
||||
|6 | PX BLOCK ITERATOR | |
|
||||
|7 | TABLE SCAN |a |
|
||||
|8 | PX BLOCK ITERATOR | |
|
||||
|9 | TABLE SCAN |b |
|
||||
===============================================
|
||||
====================================================
|
||||
|ID|OPERATOR |NAME |
|
||||
----------------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | └─SORT | |
|
||||
|3 | └─SHARED HASH RIGHT OUTER JOIN | |
|
||||
|4 | ├─EXCHANGE IN DISTR | |
|
||||
|5 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000|
|
||||
|6 | │ └─PX BLOCK ITERATOR | |
|
||||
|7 | │ └─TABLE FULL SCAN |a |
|
||||
|8 | └─PX BLOCK ITERATOR | |
|
||||
|9 | └─TABLE FULL SCAN |b |
|
||||
====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(a.c1, a.c2)]), filter(nil), rowset=256
|
||||
@ -227,20 +227,20 @@ select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c
|
||||
+----+------+
|
||||
EXPLAIN BASIC select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c1,a.c2 from t3 a right outer join t3 b on abs(a.c2)+2=b.c1 order by a.c1,a.c2+2;
|
||||
Query Plan
|
||||
============================================
|
||||
|ID|OPERATOR |NAME |
|
||||
--------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | SORT | |
|
||||
|3 | HASH RIGHT OUTER JOIN | |
|
||||
|4 | EXCHANGE IN DISTR | |
|
||||
|5 | EXCHANGE OUT DISTR (PKEY)|:EX10000|
|
||||
|6 | PX BLOCK ITERATOR | |
|
||||
|7 | TABLE SCAN |a |
|
||||
|8 | PX PARTITION ITERATOR | |
|
||||
|9 | TABLE SCAN |b |
|
||||
============================================
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME |
|
||||
-------------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | └─SORT | |
|
||||
|3 | └─HASH RIGHT OUTER JOIN | |
|
||||
|4 | ├─EXCHANGE IN DISTR | |
|
||||
|5 | │ └─EXCHANGE OUT DISTR (PKEY)|:EX10000|
|
||||
|6 | │ └─PX BLOCK ITERATOR | |
|
||||
|7 | │ └─TABLE FULL SCAN |a |
|
||||
|8 | └─PX PARTITION ITERATOR | |
|
||||
|9 | └─TABLE FULL SCAN |b |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(a.c1, a.c2)]), filter(nil), rowset=256
|
||||
@ -283,20 +283,20 @@ select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c
|
||||
## broadcast shuffle
|
||||
EXPLAIN BASIC select /*+ parallel(2) pq_distribute(b broadcast none) */ * from t1 a, t2 b where a.c1=b.c2 order by a.c1,b.c1;
|
||||
Query Plan
|
||||
============================================
|
||||
|ID|OPERATOR |NAME |
|
||||
--------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | SORT | |
|
||||
|3 | HASH JOIN | |
|
||||
|4 | PX PARTITION ITERATOR | |
|
||||
|5 | TABLE SCAN |b |
|
||||
|6 | EXCHANGE IN DISTR | |
|
||||
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|
|
||||
|8 | PX BLOCK ITERATOR | |
|
||||
|9 | TABLE SCAN |a |
|
||||
============================================
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME |
|
||||
-------------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | └─SORT | |
|
||||
|3 | └─HASH JOIN | |
|
||||
|4 | ├─PX PARTITION ITERATOR | |
|
||||
|5 | │ └─TABLE FULL SCAN |b |
|
||||
|6 | └─EXCHANGE IN DISTR | |
|
||||
|7 | └─EXCHANGE OUT DISTR (PKEY)|:EX10000|
|
||||
|8 | └─PX BLOCK ITERATOR | |
|
||||
|9 | └─TABLE FULL SCAN |a |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(a.c1, a.c2, b.c1, b.c2)]), filter(nil), rowset=256
|
||||
@ -335,20 +335,20 @@ select /*+ parallel(2) pq_distribute(b broadcast none) */ * from t1 a, t2 b wher
|
||||
|
||||
EXPLAIN BASIC select /*+ parallel(2) pq_distribute(b broadcast none) */ * from t1 a, t2 b where a.c1+2=b.c2 + 1 order by a.c1,b.c1+2;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME |
|
||||
-----------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | SORT | |
|
||||
|3 | SHARED HASH JOIN | |
|
||||
|4 | EXCHANGE IN DISTR | |
|
||||
|5 | EXCHANGE OUT DISTR (BC2HOST)|:EX10000|
|
||||
|6 | PX BLOCK ITERATOR | |
|
||||
|7 | TABLE SCAN |b |
|
||||
|8 | PX BLOCK ITERATOR | |
|
||||
|9 | TABLE SCAN |a |
|
||||
===============================================
|
||||
====================================================
|
||||
|ID|OPERATOR |NAME |
|
||||
----------------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10001|
|
||||
|2 | └─SORT | |
|
||||
|3 | └─SHARED HASH JOIN | |
|
||||
|4 | ├─EXCHANGE IN DISTR | |
|
||||
|5 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000|
|
||||
|6 | │ └─PX BLOCK ITERATOR | |
|
||||
|7 | │ └─TABLE FULL SCAN |b |
|
||||
|8 | └─PX BLOCK ITERATOR | |
|
||||
|9 | └─TABLE FULL SCAN |a |
|
||||
====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(a.c1, a.c2, b.c1, b.c2)]), filter(nil), rowset=256
|
||||
@ -385,23 +385,23 @@ select /*+ parallel(2) pq_distribute(b broadcast none) */ * from t1 a, t2 b wher
|
||||
|
||||
EXPLAIN BASIC select /*+ use_px parallel(2) */ c2,sum(c1) from (select a.c1,b.c2 from t5 a , t5 b where a.c1=b.c2) group by c2 order by 1,2;
|
||||
Query Plan
|
||||
=============================================
|
||||
|ID|OPERATOR |NAME |
|
||||
---------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10002|
|
||||
|2 | MERGE GROUP BY | |
|
||||
|3 | SORT | |
|
||||
|4 | HASH JOIN | |
|
||||
|5 | EXCHANGE IN DISTR | |
|
||||
|6 | EXCHANGE OUT DISTR (HASH)|:EX10000|
|
||||
|7 | PX BLOCK ITERATOR | |
|
||||
|8 | TABLE SCAN |a |
|
||||
|9 | EXCHANGE IN DISTR | |
|
||||
|10| EXCHANGE OUT DISTR (HASH)|:EX10001|
|
||||
|11| PX BLOCK ITERATOR | |
|
||||
|12| TABLE SCAN |b |
|
||||
=============================================
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME |
|
||||
---------------------------------------------------
|
||||
|0 |PX COORDINATOR MERGE SORT | |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10002|
|
||||
|2 | └─MERGE GROUP BY | |
|
||||
|3 | └─SORT | |
|
||||
|4 | └─HASH JOIN | |
|
||||
|5 | ├─EXCHANGE IN DISTR | |
|
||||
|6 | │ └─EXCHANGE OUT DISTR (HASH)|:EX10000|
|
||||
|7 | │ └─PX BLOCK ITERATOR | |
|
||||
|8 | │ └─TABLE FULL SCAN |a |
|
||||
|9 | └─EXCHANGE IN DISTR | |
|
||||
|10| └─EXCHANGE OUT DISTR (HASH)|:EX10001|
|
||||
|11| └─PX BLOCK ITERATOR | |
|
||||
|12| └─TABLE FULL SCAN |b |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(b.c2, T_FUN_SUM(a.c1))]), filter(nil), rowset=256
|
||||
|
||||
@ -170,11 +170,11 @@ alter system flush plan cache global;
|
||||
// 测试int的normal case,应该返回'a'
|
||||
EXPLAIN select case col_int when 1 then 'a' when 2 then 'b' else 'c' end from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN t1.col_int = 1 THEN 'a' WHEN t1.col_int = 2 THEN 'b' ELSE 'c' END]), filter(nil), rowset=256
|
||||
@ -190,15 +190,14 @@ select case col_int when 1 then 'a' when 2 then 'b' else 'c' end from t1;
|
||||
// 测试int需要加cast的情况,第一个when需要加cast, 第二个when不需要
|
||||
EXPLAIN select case col_int when '1' then 'a' when 2 then 'b' else 'c' end from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN cast(t1.col_int, DECIMAL(11, 0)) = cast('1', DECIMAL(1, -1)) THEN 'a' WHEN t1.col_int = 2 THEN 'b' ELSE 'c' END]), filter(nil),
|
||||
rowset=256
|
||||
0 - output([CASE WHEN cast(t1.col_int, DECIMAL(11, 0)) = cast('1', DECIMAL(1, -1)) THEN 'a' WHEN t1.col_int = 2 THEN 'b' ELSE 'c' END]), filter(nil), rowset=256
|
||||
access([t1.col_int]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
|
||||
@ -211,11 +210,11 @@ select case col_int when '1' then 'a' when 2 then 'b' else 'c' end from t1;
|
||||
// 测试null的情况,应该返回'c',而且没有cast出现
|
||||
EXPLAIN select case col_null when 1 then 'a' when 2 then 'b' else 'c' end from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN t1.col_null = 1 THEN 'a' WHEN t1.col_null = 2 THEN 'b' ELSE 'c' END]), filter(nil), rowset=256
|
||||
@ -258,8 +257,7 @@ Query Plan
|
||||
==========================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN NULL = NULL THEN cast(1, VARCHAR(1048576)) WHEN cast(NULL, VARCHAR(1048576)) = 'here' THEN cast(2, VARCHAR(1048576)) ELSE 'hh' END]),
|
||||
filter(nil)
|
||||
0 - output([CASE WHEN NULL = NULL THEN cast(1, VARCHAR(1048576)) WHEN cast(NULL, VARCHAR(1048576)) = 'here' THEN cast(2, VARCHAR(1048576)) ELSE 'hh' END]), filter(nil)
|
||||
values({CASE WHEN NULL = NULL THEN cast(1, VARCHAR(1048576)) WHEN cast(NULL, VARCHAR(1048576)) = 'here' THEN cast(2, VARCHAR(1048576)) ELSE 'hh' END})
|
||||
select case NULL when NULL then 1 when 'here' then 2 else 'hh' end from dual;
|
||||
+-------------------------------------------------------------+
|
||||
@ -315,14 +313,14 @@ Query Plan
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------------
|
||||
|0 |DISTRIBUTED INSERT| |1 |13 |
|
||||
|1 | EXPRESSION | |1 |1 |
|
||||
|1 |└─EXPRESSION | |1 |1 |
|
||||
==================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output(nil), filter(nil)
|
||||
columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.cond1, t1.cond2)})}]),
|
||||
column_values([T_HIDDEN_PK], [column_conv(VARCHAR,utf8mb4_general_ci,length:100,NULL,__values.a)], [column_conv(VARCHAR,utf8mb4_bin,length:100,NULL,__values.cond1)],
|
||||
[column_conv(VARCHAR,utf8mb4_general_ci,length:100,NULL,__values.cond2)])
|
||||
column_values([T_HIDDEN_PK], [column_conv(VARCHAR,utf8mb4_general_ci,length:100,NULL,__values.a)], [column_conv(VARCHAR,utf8mb4_bin,length:100,NULL,
|
||||
__values.cond1)], [column_conv(VARCHAR,utf8mb4_general_ci,length:100,NULL,__values.cond2)])
|
||||
1 - output([__values.a], [__values.cond1], [__values.cond2]), filter(nil)
|
||||
values({'cond', 'COND', 'COND'})
|
||||
insert into t1 values('cond', 'COND', 'COND');
|
||||
@ -330,15 +328,15 @@ explain_protocol: 2
|
||||
// 返回Null,a和cond1以及a和cond2比较都会使用utf8_bin作为collation type(因为有aggregate collation的过程)
|
||||
EXPLAIN select case a when cond1 then '1' when cond2 then '2' end from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN cast(t1.a, VARCHAR(1048576)) = t1.cond1 THEN '1' WHEN cast(t1.a, VARCHAR(1048576)) = cast(t1.cond2, VARCHAR(1048576)) THEN '2' ELSE
|
||||
NULL END]), filter(nil), rowset=256
|
||||
NULL END]), filter(nil), rowset=256
|
||||
access([t1.a], [t1.cond1], [t1.cond2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
|
||||
@ -351,11 +349,11 @@ select case a when cond1 then '1' when cond2 then '2' end from t1;
|
||||
// 返回'neq', a和cond1比较使用的是utf8_bin
|
||||
EXPLAIN select case a when cond1 then 'eq' else 'neq' end from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN cast(t1.a, VARCHAR(1048576)) = t1.cond1 THEN 'eq' ELSE 'neq' END]), filter(nil), rowset=256
|
||||
@ -371,11 +369,11 @@ select case a when cond1 then 'eq' else 'neq' end from t1;
|
||||
// 返回'eq', a和cond1比较使用的是utf8_general_ci
|
||||
EXPLAIN select case a when cond2 then 'eq' else 'neq' end from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN t1.a = t1.cond2 THEN 'eq' ELSE 'neq' END]), filter(nil), rowset=256
|
||||
@ -391,11 +389,11 @@ select case a when cond2 then 'eq' else 'neq' end from t1;
|
||||
// arg case子节点也是arg case的情况测试,应该都被改为case expr(应该返回'ok')
|
||||
EXPLAIN select case case a when 'cond' then 'eq' else 'neq' end when 'eq' then 'ok' else 'not ok' end from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([CASE WHEN CASE WHEN t1.a = 'cond' THEN 'eq' ELSE 'neq' END = 'eq' THEN 'ok' ELSE 'not ok' END]), filter(nil), rowset=256
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -14,14 +14,14 @@ set @@ob_enable_plan_cache = 0;
|
||||
|
||||
explain select c2, sum(c1) from (select distinct c2, c1 from t1) x group by c2;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |HASH GROUP BY | |5 |5 |
|
||||
|1 | SUBPLAN SCAN |x |5 |4 |
|
||||
|2 | HASH DISTINCT| |5 |4 |
|
||||
|3 | TABLE SCAN |t1 |5 |2 |
|
||||
===============================================
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------
|
||||
|0 |HASH GROUP BY | |5 |5 |
|
||||
|1 |└─SUBPLAN SCAN |x |5 |4 |
|
||||
|2 | └─HASH DISTINCT | |5 |4 |
|
||||
|3 | └─TABLE FULL SCAN|t1 |5 |2 |
|
||||
=====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([x.c2], [T_FUN_SUM(x.c1)]), filter(nil), rowset=256
|
||||
@ -45,14 +45,14 @@ select c2, sum(c1) from (select distinct c2, c1 from t1) x group by c2;
|
||||
|
||||
explain select c2, sum(c1 + c2) from (select distinct c2, c1 from t1) x group by c2;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |HASH GROUP BY | |5 |5 |
|
||||
|1 | SUBPLAN SCAN |x |5 |4 |
|
||||
|2 | HASH DISTINCT| |5 |4 |
|
||||
|3 | TABLE SCAN |t1 |5 |2 |
|
||||
===============================================
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------
|
||||
|0 |HASH GROUP BY | |5 |5 |
|
||||
|1 |└─SUBPLAN SCAN |x |5 |4 |
|
||||
|2 | └─HASH DISTINCT | |5 |4 |
|
||||
|3 | └─TABLE FULL SCAN|t1 |5 |2 |
|
||||
=====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([x.c2], [T_FUN_SUM(x.c1 + x.c2)]), filter(nil), rowset=256
|
||||
@ -76,14 +76,14 @@ select c2, sum(c1 + c2) from (select distinct c2, c1 from t1) x group by c2;
|
||||
|
||||
explain select c2, sum(c1 + c2), max(c3) from (select c1, c2, c1 + 2 as c3 from (select distinct c2, c1 from t1) x ) y group by c2;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |HASH GROUP BY | |5 |5 |
|
||||
|1 | SUBPLAN SCAN |x |5 |4 |
|
||||
|2 | HASH DISTINCT| |5 |4 |
|
||||
|3 | TABLE SCAN |t1 |5 |2 |
|
||||
===============================================
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------
|
||||
|0 |HASH GROUP BY | |5 |5 |
|
||||
|1 |└─SUBPLAN SCAN |x |5 |4 |
|
||||
|2 | └─HASH DISTINCT | |5 |4 |
|
||||
|3 | └─TABLE FULL SCAN|t1 |5 |2 |
|
||||
=====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([x.c2], [T_FUN_SUM(x.c1 + x.c2)], [T_FUN_MAX(x.c1 + 2)]), filter(nil), rowset=256
|
||||
@ -107,11 +107,11 @@ select c2, sum(c1 + c2), max(c3) from (select c1, c2, c1 + 2 as c3 from (select
|
||||
|
||||
explain select * from t1 where c2 in (select 1 from t1);
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |1 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |1 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter([t1.c2 = 1]), rowset=256
|
||||
|
||||
@ -23,17 +23,18 @@ insert into t1 values('3', '1', '1', '1', '-1', '6', '7', '8', '9', '10', '-11',
|
||||
explain_protocol: 2
|
||||
EXPLAIN select * from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |4 |4 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |4 |4 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10], [t1.c11], [t1.c12], [t1.c13], [t1.c14], [t1.c15],
|
||||
[t1.c16], [t1.c17], [t1.c18], [t1.c19], [t1.c20], [t1.c21], [t1.c22]), filter(nil), rowset=256
|
||||
[t1.c16], [t1.c17], [t1.c18], [t1.c19], [t1.c20], [t1.c21], [t1.c22]), filter(nil), rowset=256
|
||||
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10], [t1.c11], [t1.c12], [t1.c13], [t1.c14], [t1.c15],
|
||||
[t1.c16], [t1.c17], [t1.c18], [t1.c19], [t1.c20], [t1.c21], [t1.c22]), partitions(p0)
|
||||
[t1.c16], [t1.c17], [t1.c18], [t1.c19], [t1.c20], [t1.c21], [t1.c22]), p
|
||||
artitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c1]), range(MIN ; MAX)always true
|
||||
select * from t1;
|
||||
|
||||
@ -20,11 +20,11 @@ set @@ob_enable_plan_cache = 0;
|
||||
explain_protocol: 2
|
||||
EXPLAIN select * from t1;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |7 |3 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |7 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=256
|
||||
@ -45,11 +45,11 @@ select * from t1;
|
||||
+----+----+------+------+------------+
|
||||
EXPLAIN select * from t1 order by c1 desc, c2 desc;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |TABLE SCAN|t1(Reverse)|7 |3 |
|
||||
=================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1(Reverse)|7 |3 |
|
||||
======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=256
|
||||
@ -70,11 +70,11 @@ select * from t1 order by c1 desc, c2 desc;
|
||||
+----+----+------+------+------------+
|
||||
EXPLAIN select * from t1 where c1 + c2 < 10;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |3 |3 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |3 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter([t1.c1 + t1.c2 < cast(10, DECIMAL(2, 0))]), rowset=256
|
||||
@ -92,11 +92,11 @@ select * from t1 where c1 + c2 < 10;
|
||||
+----+----+------+------+------------+
|
||||
EXPLAIN select * from t1 limit 2;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |2 |2 |
|
||||
==========================================
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |2 |2 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=256
|
||||
@ -112,11 +112,11 @@ select * from t1 limit 2;
|
||||
+----+----+------+------+------------+
|
||||
EXPLAIN select * from t1 where c1 = 5;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |2 |2 |
|
||||
==========================================
|
||||
================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------
|
||||
|0 |TABLE RANGE SCAN|t1 |2 |2 |
|
||||
================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=256
|
||||
@ -133,11 +133,11 @@ select * from t1 where c1 = 5;
|
||||
+----+----+------+------+------------+
|
||||
EXPLAIN select * from t1 where c1 = 5 or c1 = 7;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |TABLE SCAN|t1 |4 |2 |
|
||||
==========================================
|
||||
================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------
|
||||
|0 |TABLE RANGE SCAN|t1 |4 |2 |
|
||||
================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=256
|
||||
@ -168,7 +168,7 @@ Outputs & filters:
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c1], [t1.c2]), range[2,4 ; 2,4], [7,5 ; 7,5], [8,7 ; 8,7],
|
||||
range_cond([(T_OP_OR, t1.c1 = cast(2, DECIMAL(1, 0)) AND t1.c2 = cast(4, DECIMAL(1, 0)), t1.c1 = cast(7, DECIMAL(1, 0)) AND t1.c2 = cast(5, DECIMAL(1,
|
||||
0)), t1.c1 = cast(8, DECIMAL(1, 0)) AND t1.c2 = cast(7, DECIMAL(1, 0)))])
|
||||
0)), t1.c1 = cast(8, DECIMAL(1, 0)) AND t1.c2 = cast(7, DECIMAL(1, 0)))])
|
||||
select * from t1 where (c1 = 2 and c2 = 4) or (c1 = 7 and c2 = 5) or (c1 = 8 and c2 = 7);
|
||||
+----+----+------+------+------------+
|
||||
| c1 | c2 | c3 | c4 | c5 |
|
||||
@ -179,15 +179,15 @@ select * from t1 where (c1 = 2 and c2 = 4) or (c1 = 7 and c2 = 5) or (c1 = 8 and
|
||||
|
||||
EXPLAIN select * from t1 where c2 = 2 and c1 + c2 < 10 and c4 > c3;
|
||||
Query Plan
|
||||
============================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------
|
||||
|0 |TABLE SCAN|t1(i1)|1 |4 |
|
||||
============================================
|
||||
==================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------------
|
||||
|0 |TABLE RANGE SCAN|t1(i1)|1 |4 |
|
||||
==================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter([t1.c1 + cast(cast(2, DECIMAL(1, 0)), DECIMAL(10, 0)) < cast(10, DECIMAL(2, 0))], [t1.c4
|
||||
> t1.c3]), rowset=256
|
||||
> t1.c3]), rowset=256
|
||||
access([t1.c1], [t1.c2], [t1.c4], [t1.c3], [t1.c5]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[true,false],
|
||||
range_key([t1.c2], [t1.c1]), range(2,MIN ; 2,MAX),
|
||||
@ -202,11 +202,11 @@ select * from t1 where c2 = 2 and c1 + c2 < 10 and c4 > c3;
|
||||
|
||||
EXPLAIN select c1, c2 from t1 where c2 > 4;
|
||||
Query Plan
|
||||
============================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------
|
||||
|0 |TABLE SCAN|t1(i1)|3 |2 |
|
||||
============================================
|
||||
==================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------------
|
||||
|0 |TABLE RANGE SCAN|t1(i1)|3 |2 |
|
||||
==================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=256
|
||||
@ -232,7 +232,7 @@ Query Plan
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------------
|
||||
|0 |DISTRIBUTED INSERT| |7 |51 |
|
||||
|1 | EXPRESSION | |7 |1 |
|
||||
|1 |└─EXPRESSION | |7 |1 |
|
||||
==================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -247,11 +247,11 @@ insert into t1 values(1,1,1), (2,2,2), (3,3,3), (4,4,4),(5,5,5), (6,6,6), (7,7,7
|
||||
# case 1: index back with before_index_back_filter
|
||||
EXPLAIN select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c2 > 1 and c1 < 4;
|
||||
Query Plan
|
||||
=============================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------
|
||||
|0 |TABLE SCAN|t1(idx)|1 |4 |
|
||||
=============================================
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |TABLE RANGE SCAN|t1(idx)|1 |4 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c1 < 4]), rowset=256
|
||||
@ -271,11 +271,11 @@ select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c2 > 1 and c1 < 4;
|
||||
# case 2: index back without before_index_back_filter
|
||||
EXPLAIN select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c2 > 1 and c3 < 4;
|
||||
Query Plan
|
||||
=============================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------
|
||||
|0 |TABLE SCAN|t1(idx)|1 |18 |
|
||||
=============================================
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |TABLE RANGE SCAN|t1(idx)|1 |18 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c3 < 4]), rowset=256
|
||||
@ -293,11 +293,11 @@ select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c2 > 1 and c3 < 4;
|
||||
|
||||
EXPLAIN select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c3 != 1 limit 2;
|
||||
Query Plan
|
||||
=============================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------
|
||||
|0 |TABLE SCAN|t1(idx)|2 |8 |
|
||||
=============================================
|
||||
==================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t1(idx)|2 |8 |
|
||||
==================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c3 != 1]), rowset=256
|
||||
|
||||
Reference in New Issue
Block a user