fix late materialization bug

This commit is contained in:
zl0
2021-09-24 19:19:08 +08:00
committed by wangzelin.wzl
parent bda3d4e6c5
commit 16b086a718
36 changed files with 496 additions and 201 deletions

View File

@ -1907,7 +1907,7 @@ Outputs & filters:
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), startup_filter([0]),
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
@ -1916,7 +1916,7 @@ Outputs & filters:
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0]),
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -2158,11 +2158,11 @@ SQL: select * from t1 where true;
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -2184,11 +2184,11 @@ SQL: select * from t1 where 1=2;
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -2257,22 +2257,22 @@ SQL: select * from t1 left join t2 t on t1.c1=t.c1 where false;
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil)
0 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([0]),
2 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil),
equal_conds([t1.c1 = t.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
5 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
6 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0]),
6 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t.c1], [t.c2], [t.c3]), filter(nil), sort_keys([t.c1, ASC]), local merge sort
8 - output([t.c1], [t.c2], [t.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([0]),
9 - output([t.c1], [t.c2], [t.c3]), filter(nil),
access([t.c1], [t.c2], [t.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
@ -2306,16 +2306,16 @@ Outputs & filters:
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0]),
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t.c1], [t.c2], [t.c3]), filter(nil)
5 - output([t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([1])
6 - output([t.c1], [t.c2], [t.c3]), filter(nil)
7 - output([t.c1], [t.c2], [t.c3]), filter(nil), dop=1
8 - output([t.c1], [t.c2], [t.c3]), filter(nil),
force partition granule, asc.
9 - output([t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([1], [0]),
9 - output([t.c1], [t.c2], [t.c3]), filter(nil),
access([t.c1], [t.c2], [t.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
@ -6504,11 +6504,11 @@ SQL: select * from t1 where (1+ 1) in (2);
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -6606,11 +6606,11 @@ SQL: select * from t1 where (1+ 1) in (1);
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -9563,9 +9563,9 @@ Outputs & filters:
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.c1]), filter(nil),
2 - output([VIEW1.c1]), filter(nil), startup_filter([?]),
access([VIEW1.c1])
3 - output([t8.c1]), filter(nil), startup_filter([?]),
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
@ -10298,9 +10298,9 @@ Outputs & filters:
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.t8.c1]), filter(nil),
2 - output([VIEW1.t8.c1]), filter(nil), startup_filter([?]),
access([VIEW1.t8.c1])
3 - output([t8.c1]), filter(nil), startup_filter([?]),
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
@ -11032,11 +11032,11 @@ SQL: select c1 from t15 where false;
Outputs & filters:
-------------------------------------
0 - output([t15.c1]), filter(nil)
0 - output([t15.c1]), filter(nil), startup_filter([0])
1 - output([t15.c1]), filter(nil), dop=1
2 - output([t15.c1]), filter(nil),
force partition granule, asc.
3 - output([t15.c1]), filter(nil), startup_filter([0]),
3 - output([t15.c1]), filter(nil),
access([t15.c1]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
@ -11062,13 +11062,13 @@ Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(?))])
1 - output([T_FUN_COUNT(?)]), filter(nil)
1 - output([T_FUN_COUNT(?)]), filter(nil), startup_filter([0])
2 - output([T_FUN_COUNT(?)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil), startup_filter([0]),
5 - output([1]), filter(nil),
access([t15.__pk_increment]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
@ -11167,14 +11167,14 @@ SQL: select count(*) from t1 left outer join t2 using(c1) group by (t1.c1) havin
Outputs & filters:
-------------------------------------
0 - output([1]), filter(nil), sort_keys([t1.c1, DESC])
0 - output([1]), filter(nil), startup_filter([?]), sort_keys([t1.c1, DESC])
1 - output([1], [t1.c1]), filter(nil), dop=1
2 - output([1], [t1.c1]), filter(nil), startup_filter([?]),
2 - output([1], [t1.c1]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil), startup_filter([?]),
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -11182,7 +11182,7 @@ Outputs & filters:
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil), startup_filter([?]),
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
@ -11782,12 +11782,12 @@ Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), startup_filter([0]),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil), startup_filter([0]),
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil)
3 - output([t8.c1], [t8.c2]), filter(nil), startup_filter([0]),
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
@ -13643,11 +13643,11 @@ SQL: select c1 from t1 having false;
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
0 - output([t1.c1]), filter(nil), startup_filter([0])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), startup_filter([0]),
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -13740,11 +13740,11 @@ SQL: select c1 from t1 group by c1 having false;
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
0 - output([t1.c1]), filter(nil), startup_filter([0])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), startup_filter([0]),
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -14184,11 +14184,11 @@ SQL: select c1 from t1 having 3<(select 2);
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
0 - output([t1.c1]), filter(nil), startup_filter([?])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), startup_filter([?]),
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -14239,7 +14239,7 @@ SQL: select c1 from t1 group by -1 having 3<(select 2);
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
0 - output([t1.c1]), filter(nil), startup_filter([?]),
group(nil), agg_func(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil), dop=1
@ -14247,7 +14247,7 @@ Outputs & filters:
group(nil), agg_func(nil)
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil), startup_filter([?]),
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -16179,11 +16179,11 @@ SQL: select * from t1 where (1 = 1) or c1 = 1;
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -16229,11 +16229,11 @@ SQL: select * from t1 where 1 or c1 = 1;
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -16267,7 +16267,7 @@ Outputs & filters:
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), startup_filter([1]),
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
@ -16276,7 +16276,7 @@ Outputs & filters:
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1]),
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -16328,8 +16328,8 @@ Outputs & filters:
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), startup_filter([0]),
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), startup_filter([0])
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p0),
is_index_back=false,
range_key([t3.c1]), range(MAX ; MIN)always false
@ -21973,11 +21973,11 @@ SQL: select * from t17 where c1=1 and c2 is null and c3=1;
Outputs & filters:
-------------------------------------
0 - output([t17.c1], [t17.c2], [t17.c3]), filter(nil)
0 - output([t17.c1], [t17.c2], [t17.c3]), filter(nil), startup_filter([0])
1 - output([t17.c2], [t17.c3], [t17.c1]), filter(nil), dop=1
2 - output([t17.c2], [t17.c3], [t17.c1]), filter(nil),
force partition granule, asc.
3 - output([t17.c2], [t17.c3], [t17.c1]), filter(nil), startup_filter([0]),
3 - output([t17.c2], [t17.c3], [t17.c1]), filter(nil),
access([t17.c2], [t17.c3], [t17.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t17.c1], [t17.c2], [t17.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
@ -22988,11 +22988,11 @@ SQL: select * from t1 where c1 is null;
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -23067,11 +23067,11 @@ SQL: select * from t1 where c1 is not null;
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1]),
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true