[FEAT MERGE]优化器技改patch到432

Co-authored-by: jingtaoye35 <1255153887@qq.com>
Co-authored-by: qingzhu521 <q15000557748@gmail.com>
Co-authored-by: akaError <lzg020616@163.com>
This commit is contained in:
zzg19950727
2024-06-18 02:23:55 +00:00
committed by ob-robot
parent 4d5b5ec653
commit b81b1efd98
117 changed files with 6600 additions and 948 deletions

View File

@ -198561,10 +198561,7 @@ Query Plan
|5 | ├─PX PARTITION ITERATOR| |14 |5 |
|6 | │ └─TABLE FULL SCAN |table1000_key_pk_parts_2|14 |5 |
|7 | └─MATERIAL | |1 |1 |
|8 | └─SUBPLAN SCAN |VIEW2 |1 |1 |
|9 | └─SUBPLAN FILTER | |1 |1 |
|10| ├─EXPRESSION |VALUES_TABLE1 |1 |1 |
|11| └─EXPRESSION | |1 |1 |
|8 | └─VALUES TABLE ACCESS|VALUES_TABLE1 |1 |1 |
===================================================================================
Outputs & filters:
-------------------------------------
@ -198576,23 +198573,17 @@ Outputs & filters:
3 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
group(nil), agg_func([T_FUN_COUNT(*)])
4 - output(nil), filter(nil), rowset=16
conds([(T_OP_OR, table1000_key_pk_parts_2.col_double <= VIEW2.column_0, table1000_key_pk_parts_2.col_double IS NULL, VIEW2.column_0 IS NULL)]), nl_params_(nil),
use_batch=false
conds([(T_OP_OR, table1000_key_pk_parts_2.col_double <= cast(VALUES_TABLE1.column_0, DOUBLE(-1, -1)), table1000_key_pk_parts_2.col_double IS NULL,
cast(VALUES_TABLE1.column_0, DOUBLE(-1, -1)) IS NULL)]), nl_params_(nil), use_batch=false
5 - output([table1000_key_pk_parts_2.col_double]), filter(nil), rowset=16
force partition granule
6 - output([table1000_key_pk_parts_2.col_double]), filter(nil), rowset=16
access([table1000_key_pk_parts_2.col_double]), partitions(p[0-1])
is_index_back=false, is_global_index=false,
range_key([table1000_key_pk_parts_2.__pk_increment]), range(MIN ; MAX)always true
7 - output([VIEW2.column_0]), filter(nil), rowset=16
8 - output([VIEW2.column_0]), filter(nil), rowset=16
access([VIEW2.column_0])
9 - output([cast(VALUES_TABLE1.column_0, DOUBLE(-1, -1))]), filter(nil), rowset=16
exec_params_(nil), onetime_exprs_([subquery(1)(:1)]), init_plan_idxs_(nil), use_batch=false
10 - output([VALUES_TABLE1.column_0]), filter(nil)
values({:1})
11 - output([Floor(cast(-360448000, DECIMAL(20, 0)) / cast(1458241536, DECIMAL(20, 0)))]), filter(nil)
values({Floor(cast(-360448000, DECIMAL(20, 0)) / cast(1458241536, DECIMAL(20, 0)))})
7 - output([VALUES_TABLE1.column_0]), filter(nil), rowset=16
8 - output([VALUES_TABLE1.column_0]), filter(nil)
access([VALUES_TABLE1.column_0])
SELECT count(*) FROM table1000_key_pk_parts_2 WHERE col_double > ALL (VALUES ROW((SELECT Floor(-360448000 / 1458241536) FROM dual)));
count(*)
12

View File

@ -489,7 +489,7 @@ Outputs & filters:
6 - output([t_r4_01_20.b], [t_r4_01_20.a]), filter(nil), rowset=256
sort_keys([t_r4_01_20.b, ASC])
7 - output([t_r4_01_20.a], [t_r4_01_20.b]), filter(nil), rowset=256
force partition granule, asc
force partition granule
8 - output([t_r4_01_20.a], [t_r4_01_20.b]), filter(nil), rowset=256
access([t_r4_01_20.a], [t_r4_01_20.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -544,7 +544,7 @@ Outputs & filters:
6 - output([t_r5_09_28.b], [t_r5_09_28.a]), filter(nil), rowset=256
sort_keys([t_r5_09_28.b, DESC])
7 - output([t_r5_09_28.a], [t_r5_09_28.b]), filter(nil), rowset=256
force partition granule, asc
force partition granule
8 - output([t_r5_09_28.a], [t_r5_09_28.b]), filter(nil), rowset=256
access([t_r5_09_28.a], [t_r5_09_28.b]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -1168,7 +1168,7 @@ Outputs & filters:
2 - output([t_r4_01_20.b], [t_r4_01_20.a]), filter(nil), rowset=16
sort_keys([t_r4_01_20.b, ASC])
3 - output([t_r4_01_20.a], [t_r4_01_20.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t_r4_01_20.a], [t_r4_01_20.b]), filter(nil), rowset=16
access([t_r4_01_20.a], [t_r4_01_20.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1211,7 +1211,7 @@ Outputs & filters:
2 - output([t_r4_09_28.b], [t_r4_09_28.a]), filter(nil), rowset=16
sort_keys([t_r4_09_28.b, DESC])
3 - output([t_r4_09_28.a], [t_r4_09_28.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t_r4_09_28.a], [t_r4_09_28.b]), filter(nil), rowset=16
access([t_r4_09_28.a], [t_r4_09_28.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1696,7 +1696,7 @@ Outputs & filters:
2 - output([t1.a], [t2.aa], [t1.b], [t1.c], [t2.a], [t2.b], [t2.bb], [t2.c], [t2.d], [t2.e]), filter(nil), rowset=16
equal_conds([t1.a = t2.aa]), other_conds(nil)
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
affinitize, force partition granule, asc
affinitize, force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1745,7 +1745,7 @@ Outputs & filters:
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
(#keys=1, [t1.a]), dop=1
5 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
6 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1788,7 +1788,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1834,7 +1834,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1876,7 +1876,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1918,7 +1918,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2706,7 +2706,7 @@ Outputs & filters:
1 - output([INTERNAL_FUNCTION(t1.a, t1.b, t1.c, t2.a, t2.b, t2.c)]), filter(nil), rowset=16
dop=1
2 - output([t1.a], [t2.a], [t1.b], [t1.c], [t2.b], [t2.c]), filter(nil), rowset=16
partition wise, force partition granule, asc
partition wise, force partition granule
3 - output([t1.a], [t2.a], [t1.b], [t1.c], [t2.b], [t2.c]), filter(nil), rowset=16
equal_conds([t1.a = t2.a]), other_conds(nil)
merge_directions([ASC])
@ -2760,7 +2760,7 @@ Outputs & filters:
6 - output([t1.a], [INTERNAL_FUNCTION(t1.a, 110, 19)], [t1.b], [t1.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t1.a, 110, 19)]), dop=1
7 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2802,7 +2802,7 @@ Outputs & filters:
6 - output([t1.a], [INTERNAL_FUNCTION(t1.a, 110, 17)], [t1.b], [t1.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t1.a, 110, 17)]), dop=1
7 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2835,7 +2835,7 @@ Outputs & filters:
2 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
dop=1
3 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
access([t2.a], [t2.c], [t2.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2844,7 +2844,7 @@ Outputs & filters:
6 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
7 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2887,7 +2887,7 @@ Outputs & filters:
6 - output([t2.a], [INTERNAL_FUNCTION(t2.a, 110, 19)], [t2.b], [t2.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t2.a, 110, 19)]), dop=1
7 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
access([t2.a], [t2.b], [t2.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3013,7 +3013,7 @@ Outputs & filters:
6 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
dop=1
7 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
access([t2.a], [t2.c], [t2.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3060,7 +3060,7 @@ Outputs & filters:
6 - output([t2.a], [INTERNAL_FUNCTION(t2.a, 110, 17)], [t2.b], [t2.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t2.a, 110, 17)]), dop=1
7 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
access([t2.a], [t2.b], [t2.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3186,7 +3186,7 @@ Outputs & filters:
6 - output([t2.c], [cast(t2.c, DATETIME(19, 0))], [t2.a], [t2.b]), filter(nil), rowset=16
(#keys=1, [cast(t2.c, DATETIME(19, 0))]), dop=1
7 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
access([t2.a], [t2.c], [t2.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3489,7 +3489,7 @@ Outputs & filters:
2 - output([t1.a], [t2.aa], [t1.b], [t1.c], [t2.a], [t2.b], [t2.bb], [t2.c], [t2.d], [t2.e]), filter(nil), rowset=16
equal_conds([t1.a = t2.aa]), other_conds(nil)
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
affinitize, force partition granule, asc
affinitize, force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3538,7 +3538,7 @@ Outputs & filters:
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
(#keys=1, [t1.a]), dop=1
5 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
6 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3581,7 +3581,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3627,7 +3627,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3669,7 +3669,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -3711,7 +3711,7 @@ Outputs & filters:
2 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
3 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -4764,7 +4764,7 @@ Outputs & filters:
1 - output([INTERNAL_FUNCTION(t1.a, t1.b, t1.c, t2.a, t2.b, t2.c)]), filter(nil), rowset=16
dop=1
2 - output([t1.a], [t2.a], [t1.b], [t1.c], [t2.b], [t2.c]), filter(nil), rowset=16
partition wise, force partition granule, asc
partition wise, force partition granule
3 - output([t1.a], [t2.a], [t1.b], [t1.c], [t2.b], [t2.c]), filter(nil), rowset=16
equal_conds([t1.a = t2.a]), other_conds(nil)
merge_directions([ASC])
@ -4818,7 +4818,7 @@ Outputs & filters:
6 - output([t1.a], [INTERNAL_FUNCTION(t1.a, 110, 19)], [t1.b], [t1.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t1.a, 110, 19)]), dop=1
7 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -4860,7 +4860,7 @@ Outputs & filters:
6 - output([t1.a], [INTERNAL_FUNCTION(t1.a, 110, 17)], [t1.b], [t1.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t1.a, 110, 17)]), dop=1
7 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -4893,7 +4893,7 @@ Outputs & filters:
2 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
dop=1
3 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
4 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
access([t2.a], [t2.c], [t2.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -4902,7 +4902,7 @@ Outputs & filters:
6 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
dop=1
7 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t1.a], [t1.b], [t1.c]), filter(nil), rowset=16
access([t1.a], [t1.b], [t1.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -4945,7 +4945,7 @@ Outputs & filters:
6 - output([t2.a], [INTERNAL_FUNCTION(t2.a, 110, 19)], [t2.b], [t2.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t2.a, 110, 19)]), dop=1
7 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
access([t2.a], [t2.b], [t2.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -5071,7 +5071,7 @@ Outputs & filters:
6 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
dop=1
7 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
access([t2.a], [t2.c], [t2.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -5118,7 +5118,7 @@ Outputs & filters:
6 - output([t2.a], [INTERNAL_FUNCTION(t2.a, 110, 17)], [t2.b], [t2.c]), filter(nil), rowset=16
(#keys=1, [INTERNAL_FUNCTION(t2.a, 110, 17)]), dop=1
7 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
access([t2.a], [t2.b], [t2.c]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -5244,7 +5244,7 @@ Outputs & filters:
6 - output([t2.c], [cast(t2.c, DATETIME(19, 0))], [t2.a], [t2.b]), filter(nil), rowset=16
(#keys=1, [cast(t2.c, DATETIME(19, 0))]), dop=1
7 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
force partition granule, asc
force partition granule
8 - output([t2.a], [t2.c], [t2.b]), filter(nil), rowset=16
access([t2.a], [t2.c], [t2.b]), partitions(p[0-3])
is_index_back=false, is_global_index=false,

View File

@ -1206,13 +1206,13 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -1280,13 +1280,13 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1348,7 +1348,7 @@ Outputs & filters:
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1422,7 +1422,7 @@ Outputs & filters:
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -1478,7 +1478,7 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1552,7 +1552,7 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -1750,13 +1750,13 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -1824,13 +1824,13 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1892,7 +1892,7 @@ Outputs & filters:
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1966,7 +1966,7 @@ Outputs & filters:
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -2022,7 +2022,7 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2096,7 +2096,7 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -2294,13 +2294,13 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -2368,13 +2368,13 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2436,7 +2436,7 @@ Outputs & filters:
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2510,7 +2510,7 @@ Outputs & filters:
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
@ -2566,7 +2566,7 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -2640,7 +2640,7 @@ Outputs & filters:
5 - output([t1.a]), filter(nil), rowset=256
(#keys=1, [t1.a]), dop=1
6 - output([t1.a]), filter(nil), rowset=256
force partition granule, asc
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,

View File

@ -352,6 +352,7 @@ _ha_rpc_timeout
_ha_tablet_info_batch_count
_hidden_sys_tenant_memory
_ignore_system_memory_over_limit_error
_inlist_rewrite_threshold
_io_callback_thread_count
_iut_enable
_iut_max_entries

View File

@ -425,10 +425,10 @@ Query Plan
================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------
|0 |LIMIT | |3 |12 |
|1 |└─PX COORDINATOR MERGE SORT | |3 |12 |
|2 | └─EXCHANGE OUT DISTR |:EX10000|3 |10 |
|3 | └─TOP-N SORT | |3 |8 |
|0 |LIMIT | |3 |15 |
|1 |└─PX COORDINATOR MERGE SORT | |6 |15 |
|2 | └─EXCHANGE OUT DISTR |:EX10000|6 |12 |
|3 | └─TOP-N SORT | |6 |8 |
|4 | └─PX BLOCK ITERATOR | |14 |7 |
|5 | └─TABLE FULL SCAN |stu |14 |7 |
================================================================

View File

@ -799,10 +799,10 @@ Query Plan
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |6 |
|3 |│ └─PX BLOCK ITERATOR | |5 |6 |
|4 |│ └─TABLE FULL SCAN |t2 |5 |6 |
|5 |└─LIMIT | |1 |6 |
|6 | └─PX COORDINATOR MERGE SORT | |1 |6 |
|7 | └─EXCHANGE OUT DISTR |:EX20000|1 |6 |
|8 | └─TOP-N SORT | |1 |6 |
|5 |└─LIMIT | |1 |7 |
|6 | └─PX COORDINATOR MERGE SORT | |2 |7 |
|7 | └─EXCHANGE OUT DISTR |:EX20000|2 |6 |
|8 | └─TOP-N SORT | |2 |6 |
|9 | └─PX BLOCK ITERATOR | |5 |6 |
|10| └─TABLE FULL SCAN |t1 |5 |6 |
==================================================================

View File

@ -296,7 +296,7 @@ Query Plan
==================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------
|0 |TABLE FULL SCAN|t1(idx)|2 |11 |
|0 |TABLE FULL SCAN|t1(idx)|2 |23 |
==================================================
Outputs & filters:
-------------------------------------

View File

@ -873,19 +873,19 @@ Query Plan
==============================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |15 |
|1 |└─MERGE ANTI JOIN | |9 |15 |
|0 |SCALAR GROUP BY | |1 |17 |
|1 |└─MERGE ANTI JOIN | |9 |17 |
|2 | ├─TABLE FULL SCAN |table10_bigint |10 |3 |
|3 | └─SUBPLAN SCAN |VIEW3 |1 |12 |
|4 | └─MERGE ANTI JOIN | |1 |12 |
|3 | └─SUBPLAN SCAN |VIEW3 |1 |14 |
|4 | └─MERGE ANTI JOIN | |1 |14 |
|5 | ├─TABLE FULL SCAN |table2_bigint |2 |3 |
|6 | └─SORT | |2 |9 |
|7 | └─SUBPLAN SCAN |VIEW2 |2 |9 |
|8 | └─NESTED-LOOP JOIN | |2 |9 |
|9 | ├─SUBPLAN SCAN |VIEW4 |1 |3 |
|10| │ └─SCALAR GROUP BY | |1 |3 |
|11| │ └─SUBPLAN SCAN |VIEW1 |1 |3 |
|12| │ └─TABLE FULL SCAN|table100_bigint|1 |3 |
|6 | └─SORT | |2 |12 |
|7 | └─SUBPLAN SCAN |VIEW2 |2 |12 |
|8 | └─NESTED-LOOP JOIN | |2 |12 |
|9 | ├─SUBPLAN SCAN |VIEW4 |1 |5 |
|10| │ └─SCALAR GROUP BY | |1 |5 |
|11| │ └─SUBPLAN SCAN |VIEW1 |1 |5 |
|12| │ └─TABLE FULL SCAN|table100_bigint|1 |5 |
|13| └─TABLE FULL SCAN |table100_bigint|100 |4 |
==============================================================================
Outputs & filters:
@ -939,20 +939,20 @@ Query Plan
==================================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------------------
|0 |SUBPLAN FILTER | |1 |17 |
|1 |├─SUBPLAN SCAN |VIEW5 |1 |15 |
|2 |│ └─SCALAR GROUP BY | |1 |15 |
|3 |│ └─MERGE ANTI JOIN | |9 |15 |
|0 |SUBPLAN FILTER | |1 |22 |
|1 |├─SUBPLAN SCAN |VIEW5 |1 |20 |
|2 |│ └─SCALAR GROUP BY | |1 |20 |
|3 |│ └─MERGE ANTI JOIN | |9 |19 |
|4 |│ ├─TABLE FULL SCAN |table10_bigint |10 |3 |
|5 |│ └─SORT | |1 |12 |
|6 |│ └─SUBPLAN SCAN |VIEW3 |1 |12 |
|7 |│ └─HASH RIGHT ANTI JOIN NA | |1 |12 |
|8 |│ ├─SUBPLAN SCAN |VIEW2 |1 |9 |
|9 |│ │ └─NESTED-LOOP JOIN | |1 |9 |
|10|│ │ ├─SUBPLAN SCAN |VIEW4 |1 |3 |
|11|│ │ │ └─SCALAR GROUP BY | |1 |3 |
|12|│ │ │ └─SUBPLAN SCAN |VIEW1 |1 |3 |
|13|│ │ │ └─TABLE FULL SCAN|table100_bigint|1 |3 |
|5 |│ └─SORT | |1 |16 |
|6 |│ └─SUBPLAN SCAN |VIEW3 |1 |16 |
|7 |│ └─HASH RIGHT ANTI JOIN NA | |1 |16 |
|8 |│ ├─SUBPLAN SCAN |VIEW2 |1 |14 |
|9 |│ │ └─NESTED-LOOP JOIN | |1 |14 |
|10|│ │ ├─SUBPLAN SCAN |VIEW4 |1 |7 |
|11|│ │ │ └─SCALAR GROUP BY | |1 |7 |
|12|│ │ │ └─SUBPLAN SCAN |VIEW1 |1 |7 |
|13|│ │ │ └─TABLE FULL SCAN|table100_bigint|1 |7 |
|14|│ │ └─TABLE FULL SCAN |table100_bigint|100 |4 |
|15|│ └─TABLE FULL SCAN |table2_bigint |2 |3 |
|16|└─TOP-N SORT | |1 |3 |

View File

@ -197,35 +197,48 @@ explain select 1 from t2 where
c2 in (select 1 from t3, t2) and
c1 in (select convert(c6,char(1)) from t2);
Query Plan
==============================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------------------
|0 |HASH SEMI JOIN | |1 |5 |
|1 |├─NESTED-LOOP JOIN CARTESIAN | |1 |3 |
|2 |│ ├─TABLE FULL SCAN |t2 |1 |3 |
|3 |│ └─MATERIAL | |1 |3 |
|4 |│ └─SUBPLAN SCAN |VIEW1|1 |3 |
|5 |│ └─TABLE FULL SCAN |t3 |1 |3 |
|6 |└─TABLE FULL SCAN |t2 |1 |3 |
==============================================================
================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------
|0 |HASH SEMI JOIN | |1 |5 |
|1 |├─NESTED-LOOP JOIN CARTESIAN | |1 |3 |
|2 |│ ├─NESTED-LOOP JOIN CARTESIAN | |1 |3 |
|3 |│ │ ├─TABLE FULL SCAN |t2 |1 |3 |
|4 |│ └─MATERIAL | |1 |3 |
|5 |│ └─SUBPLAN SCAN |VIEW1|1 |3 |
|6 |│ │ └─TABLE FULL SCAN |t3 |1 |3 |
|7 |│ └─MATERIAL | |1 |3 |
|8 |│ └─SUBPLAN SCAN |VIEW2|1 |3 |
|9 |│ └─TABLE FULL SCAN |t2 |1 |3 |
|10|└─TABLE FULL SCAN |t2 |1 |3 |
================================================================
Outputs & filters:
-------------------------------------
0 - output([1]), filter(nil), rowset=16
equal_conds([cast(t2.c1, VARCHAR(1048576)) = cast(cast(t2.c6, CHAR(1)), VARCHAR(1048576))]), other_conds(nil)
1 - output([t2.c1]), filter(nil), rowset=16
conds(nil), nl_params_(nil), use_batch=false
2 - output([t2.c1]), filter([cast(1, DECIMAL(1, 0)) = cast(t2.c2, DECIMAL(-1, -1))]), rowset=16
2 - output([t2.c1]), filter(nil), rowset=16
conds(nil), nl_params_(nil), use_batch=false
3 - output([t2.c1]), filter([cast(t2.c2, DECIMAL(-1, -1)) = cast(1, DECIMAL(1, 0))]), rowset=16
access([t2.c2], [t2.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
3 - output(nil), filter(nil), rowset=16
4 - output(nil), filter(nil), rowset=16
5 - output(nil), filter(nil), rowset=16
access(nil)
5 - output([1]), filter(nil), rowset=16
6 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t3.__pk_increment]), range(MIN ; MAX)always true
6 - output([t2.c6]), filter(nil), rowset=16
7 - output(nil), filter(nil), rowset=16
8 - output(nil), filter(nil), rowset=16
access(nil)
9 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
10 - output([t2.c6]), filter(nil), rowset=16
access([t2.c6]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true