[FEAT MERGE]4_1_sql_feature
Co-authored-by: leslieyuchen <leslieyuchen@gmail.com> Co-authored-by: Charles0429 <xiezhenjiang@gmail.com> Co-authored-by: raywill <hustos@gmail.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -528,7 +528,7 @@ create view v1 as
|
||||
with RECURSIVE qn (foo, bar) as (select 1,1 from dual) select * from qn;
|
||||
show create view v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE VIEW `v1` AS WITH RECURSIVE`qn`(foo, bar) as (select 1 AS `foo`,1 AS `bar`) select `qn`.`foo` AS `foo`,`qn`.`bar` AS `bar` from `qn` utf8mb4 utf8mb4_general_ci
|
||||
v1 CREATE VIEW `v1` AS WITH RECURSIVE `qn`(`foo`, `bar`) as (select 1 AS `foo`,1 AS `bar`) select `qn`.`foo` AS `foo`,`qn`.`bar` AS `bar` from `qn` utf8mb4 utf8mb4_general_ci
|
||||
|
||||
select * from v1;
|
||||
+-----+-----+
|
||||
@ -541,7 +541,7 @@ create view v1 as
|
||||
with RECURSIVE qn (foo, bar) as (select 1,1 from t1) select * from qn;
|
||||
show create view v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE VIEW `v1` AS WITH RECURSIVE`qn`(foo, bar) as (select 1 AS `foo`,1 AS `bar` from `cte_st`.`t1`) select `qn`.`foo` AS `foo`,`qn`.`bar` AS `bar` from `qn` utf8mb4 utf8mb4_general_ci
|
||||
v1 CREATE VIEW `v1` AS WITH RECURSIVE `qn`(`foo`, `bar`) as (select 1 AS `foo`,1 AS `bar` from `cte_st`.`t1`) select `qn`.`foo` AS `foo`,`qn`.`bar` AS `bar` from `qn` utf8mb4 utf8mb4_general_ci
|
||||
select * from v1;
|
||||
+-----+-----+
|
||||
| foo | bar |
|
||||
@ -588,7 +588,7 @@ select (with RECURSIVE qn as (select 'with RECURSIVE' from dual) select * from q
|
||||
from dual;
|
||||
show create view v;
|
||||
View Create View character_set_client collation_connection
|
||||
v CREATE VIEW `v` AS select (WITH RECURSIVE`qn` as (select 'with RECURSIVE' AS `with RECURSIVE`) select `qn`.`with RECURSIVE` from `qn`) AS `scal_subq` utf8mb4 utf8mb4_general_ci
|
||||
v CREATE VIEW `v` AS select (WITH RECURSIVE `qn` as (select 'with RECURSIVE' AS `with RECURSIVE`) select `qn`.`with RECURSIVE` from `qn`) AS `scal_subq` utf8mb4 utf8mb4_general_ci
|
||||
select * from v;
|
||||
+----------------+
|
||||
| scal_subq |
|
||||
@ -599,7 +599,7 @@ drop view v;
|
||||
create view v as select * from (with RECURSIVE qn as (select 'with RECURSIVE' from dual) select * from qn) dt;
|
||||
show create view v;
|
||||
View Create View character_set_client collation_connection
|
||||
v CREATE VIEW `v` AS select `dt`.`with RECURSIVE` AS `with RECURSIVE` from (WITH RECURSIVE`qn` as (select 'with RECURSIVE' AS `with RECURSIVE`) select `qn`.`with RECURSIVE` AS `with RECURSIVE` from `qn`) dt utf8mb4 utf8mb4_general_ci
|
||||
v CREATE VIEW `v` AS select `dt`.`with RECURSIVE` AS `with RECURSIVE` from (WITH RECURSIVE `qn` as (select 'with RECURSIVE' AS `with RECURSIVE`) select `qn`.`with RECURSIVE` AS `with RECURSIVE` from `qn`) dt utf8mb4 utf8mb4_general_ci
|
||||
select * from v;
|
||||
+----------------+
|
||||
| with RECURSIVE |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1815,46 +1815,56 @@ Query Plan
|
||||
|20| EXPRESSION | |
|
||||
|21| TABLE SCAN |cte1|
|
||||
====================================
|
||||
|
||||
Outputs & filters:
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([cte1.a], [cte1.b]), filter(nil), rowset=256,
|
||||
conds([cte1.a < cte3.c]), nl_params_(nil)
|
||||
1 - output([cte3.c]), filter(nil), rowset=256,
|
||||
0 - output([cte1.a], [cte1.b]), filter(nil), rowset=256
|
||||
conds([cte1.a < cte3.c]), nl_params_(nil), batch_join=false
|
||||
1 - output([cte3.c]), filter(nil), rowset=256
|
||||
access([cte3.c])
|
||||
2 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
3 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
4 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
5 - output([1], [1], [1]), filter(nil)
|
||||
values({1, 1, 1})
|
||||
6 - output([cte1.a + 1], [cte1.b + 1], [cte1.c + 1]), filter([cte1.a < 10]), rowset=256,
|
||||
access([cte1.a], [cte1.b], [cte1.c]), partitions is NULL,
|
||||
7 - output([cte2.a + 1], [cte2.b + 1], [cte2.c + 1]), filter([cte2.a < 10]), rowset=256,
|
||||
access([cte2.a], [cte2.b], [cte2.c]), partitions is NULL,
|
||||
8 - output([cte3.a + 1], [cte3.b + 1], [cte3.c + 1]), filter(nil), rowset=256,
|
||||
conds([cte3.a < cte2.b]), nl_params_(nil)
|
||||
9 - output([cte3.a], [cte3.b], [cte3.c]), filter([cte3.a < 10]), rowset=256,
|
||||
access([cte3.a], [cte3.b], [cte3.c]), partitions is NULL,
|
||||
10 - output([cte2.b]), filter(nil), rowset=256
|
||||
11 - output([cte2.b]), filter([cte2.a < 3]), rowset=256,
|
||||
6 - output([cte1.a + 1], [cte1.b + 1], [cte1.c + 1]), filter([cte1.a < 10]), rowset=256
|
||||
access([cte1.a], [cte1.b], [cte1.c])
|
||||
is_index_back=false, is_global_index=false, filter_before_indexback[false],
|
||||
range_key(nil), range(MIN ; MAX)
|
||||
7 - output([cte2.a + 1], [cte2.b + 1], [cte2.c + 1]), filter([cte2.a < 10]), rowset=256
|
||||
access([cte2.a], [cte2.b], [cte2.c])
|
||||
is_index_back=false, is_global_index=false, filter_before_indexback[false],
|
||||
range_key(nil), range(MIN ; MAX)
|
||||
8 - output([cte3.a + 1], [cte3.b + 1], [cte3.c + 1]), filter(nil), rowset=256
|
||||
conds([cte3.a < cte2.b]), nl_params_(nil), batch_join=false
|
||||
9 - output([cte3.a], [cte3.b], [cte3.c]), filter([cte3.a < 10]), rowset=256
|
||||
access([cte3.a], [cte3.b], [cte3.c])
|
||||
is_index_back=false, is_global_index=false, filter_before_indexback[false],
|
||||
range_key(nil), range(MIN ; MAX)
|
||||
10 - output([cte2.b]), filter(nil), rowset=256
|
||||
11 - output([cte2.b]), filter([cte2.a < 3]), rowset=256
|
||||
access([cte2.a], [cte2.b])
|
||||
12 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
13 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
14 - output([1], [1], [1]), filter(nil)
|
||||
12 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
13 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
14 - output([1], [1], [1]), filter(nil)
|
||||
values({1, 1, 1})
|
||||
15 - output([cte1.a + 1], [cte1.b + 1], [cte1.c + 1]), filter([cte1.a < 10]), rowset=256,
|
||||
access([cte1.a], [cte1.b], [cte1.c]), partitions is NULL,
|
||||
16 - output([cte2.a + 1], [cte2.b + 1], [cte2.c + 1]), filter([cte2.a < 10]), rowset=256,
|
||||
access([cte2.a], [cte2.b], [cte2.c]), partitions is NULL,
|
||||
17 - output([cte1.a], [cte1.b]), filter(nil), rowset=256
|
||||
18 - output([cte1.a], [cte1.b]), filter(nil), rowset=256,
|
||||
15 - output([cte1.a + 1], [cte1.b + 1], [cte1.c + 1]), filter([cte1.a < 10]), rowset=256
|
||||
access([cte1.a], [cte1.b], [cte1.c])
|
||||
is_index_back=false, is_global_index=false, filter_before_indexback[false],
|
||||
range_key(nil), range(MIN ; MAX)
|
||||
16 - output([cte2.a + 1], [cte2.b + 1], [cte2.c + 1]), filter([cte2.a < 10]), rowset=256
|
||||
access([cte2.a], [cte2.b], [cte2.c])
|
||||
is_index_back=false, is_global_index=false, filter_before_indexback[false],
|
||||
range_key(nil), range(MIN ; MAX)
|
||||
17 - output([cte1.a], [cte1.b]), filter(nil), rowset=256
|
||||
18 - output([cte1.a], [cte1.b]), filter(nil), rowset=256
|
||||
access([cte1.a], [cte1.b])
|
||||
19 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
20 - output([1], [1], [1]), filter(nil)
|
||||
19 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
|
||||
20 - output([1], [1], [1]), filter(nil)
|
||||
values({1, 1, 1})
|
||||
21 - output([cte1.a + 1], [cte1.b + 1], [cte1.c + 1]), filter([cte1.a < 10]), rowset=256,
|
||||
access([cte1.a], [cte1.b], [cte1.c]), partitions is NULL,
|
||||
|
||||
21 - output([cte1.a + 1], [cte1.b + 1], [cte1.c + 1]), filter([cte1.a < 10]), rowset=256
|
||||
access([cte1.a], [cte1.b], [cte1.c])
|
||||
is_index_back=false, is_global_index=false, filter_before_indexback[false],
|
||||
range_key(nil), range(MIN ; MAX)
|
||||
|
||||
set ob_query_timeout = 100000000;
|
||||
with RECURSIVE cte1(a,b,c) as
|
||||
|
||||
Reference in New Issue
Block a user