-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/pingcap/tidb into cartesi…
…an_join
- Loading branch information
Showing
47 changed files
with
1,350 additions
and
229 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
use test; | ||
drop table if exists tbl_0; | ||
create table tbl_0(a int); | ||
with recursive cte_0 (col_10,col_11,col_12) AS ( select 1, 2,3 from tbl_0 UNION select col_10 + 1,col_11 + 1,col_12 + 1 from cte_0 where col_10 < 10 ) select * from cte_0; | ||
drop table if exists tbl_1; | ||
CREATE TABLE `tbl_1` ( | ||
`col_5` decimal(47,21) NOT NULL DEFAULT '5308.880000000000000000000', | ||
`col_6` enum('Alice','Bob','Charlie','David') DEFAULT NULL, | ||
`col_7` float NOT NULL, | ||
`col_8` bigint NOT NULL DEFAULT '-688199144806783096', | ||
`col_9` varchar(248) NOT NULL, | ||
PRIMARY KEY (`col_5`,`col_7`,`col_9`,`col_8`), | ||
UNIQUE KEY `idx_4` (`col_8`), | ||
UNIQUE KEY `idx_7` (`col_5`,`col_7`,`col_8`), | ||
UNIQUE KEY `idx_9` (`col_9`,`col_8`), | ||
UNIQUE KEY `idx_3` (`col_9`(3),`col_8`), | ||
UNIQUE KEY `idx_8` (`col_7`,`col_6`,`col_8`,`col_5`), | ||
KEY `idx_5` (`col_7`), | ||
KEY `idx_6` (`col_7`), | ||
KEY `idx_10` (`col_9`,`col_5`), | ||
KEY `idx_11` (`col_5`) | ||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | ||
/*!50100 PARTITION BY HASH (`col_8`) | ||
PARTITIONS 4 */; | ||
with recursive cte_1 (col_13,col_14,col_15,col_16,col_17) AS ( with recursive cte_2 (col_18,col_19,col_20,col_21,col_22,col_23,col_24) AS ( select 1, 2,col_8,4,5,6,7 from tbl_1 ) select col_19,col_18,col_22,col_23,col_21 from cte_2 UNION ALL select col_13 + 1,col_14 + 1,col_15 + 1,col_16 + 1,col_17 + 1 from cte_1 where col_13 < 10 ) select * from cte_1; | ||
with recursive cte_256 (col_969,col_970,col_971) AS ( with recursive cte_257 (col_972,col_973,col_974,col_975) AS ( select 1, 2,col_8,4 from tbl_1 UNION select col_972 + 1,col_973 + 1,col_974 + 1,col_975 + 1 from cte_257 where col_972 < 10 ) select col_975,col_974,col_973 from cte_257 UNION DISTINCT select col_969 + 1,col_970 + 1,col_971 + 1 from cte_256 where col_969 < 10 ) select * from cte_256; | ||
drop table if exists tbl_2, tbl_3; | ||
create table tbl_2 ( col_4 char(246) collate utf8_unicode_ci not null , col_5 char(253) collate utf8mb4_unicode_ci ) ; | ||
create table tbl_3 ( col_6 char(207) collate utf8mb4_unicode_ci , col_7 int unsigned not null ) ; | ||
insert into tbl_2 values ( "0",null ) ; | ||
insert into tbl_2 values ( "1","0" ) ; | ||
insert into tbl_2 values ( "1","1" ) ; | ||
insert into tbl_2 values ( "0","0" ) ; | ||
insert into tbl_2 values ( "0","1" ) ; | ||
insert into tbl_3 values ( "1",0 ) ; | ||
insert into tbl_3 values ( "1",1 ) ; | ||
insert into tbl_3 values ( "0",0 ) ; | ||
insert into tbl_3 values ( "0",1 ) ; | ||
with recursive tbl_2 (col_64,col_65,col_66,col_67) AS ( select 1, col_6,col_6,4 from tbl_3 UNION DISTINCT select col_64 + 1,concat(col_65, 1),col_66 + 1,concat(col_67, 1) from tbl_2 where col_64 < 5 ) select * from tbl_2 order by col_64; | ||
drop table if exists tbl_3, tbl_4; | ||
create table tbl_3 ( col_6 int not null , col_7 char(95) collate utf8_general_ci ) ; | ||
create table tbl_4 ( col_8 char collate utf8_unicode_ci , col_9 char collate utf8mb4_bin ) ; | ||
insert into tbl_3 values ( 0,"1" ) ; | ||
insert into tbl_4 values ( "1","0" ) ; | ||
with recursive cte_2245 (col_8692,col_8693) AS ( select 1, col_7 from tbl_3 UNION select col_8692 + 1,concat(col_8693, 1) from cte_2245 where col_8692 < 5 ) , cte_2246 (col_8694,col_8695,col_8696,col_8697) AS ( with recursive cte_2247 (col_8698,col_8699,col_8700,col_8701) AS ( select 1, cast("2" as char(20)),3,col_8 from tbl_4 ) select col_8698,col_8699,col_8700,col_8701 from cte_2247 UNION select col_8694 + 1,col_8695 + 1,col_8696 + 1,col_8697 + 1 from cte_2246 where col_8694 < 5 ) select * from cte_2245,cte_2246 order by col_8692,col_8693,col_8696,col_8695,col_8697,col_8694; | ||
with recursive cte2 as (select 1 as col_1, 2 as col_2) select c1.col_1, c2.col_2 from cte2 as c1, cte2 as c2 where c2.col_2 = 1; | ||
with recursive cte (c1) as (select 1), cte1 (c2) as (select 1 union select c1 + 1 from cte, cte1) select * from cte, cte1; | ||
with recursive tbl_0 (col_943,col_944,col_945,col_946,col_947) AS ( with recursive tbl_0 (col_948,col_949,col_950,col_951,col_952) AS ( select 1, 2,3,4,5 UNION ALL select col_948 + 1,col_949 + 1,col_950 + 1,col_951 + 1,col_952 + 1 from tbl_0 where col_948 < 5 ) select col_948,col_949,col_951,col_950,col_952 from tbl_0 UNION ALL select col_943 + 1,col_944 + 1,col_945 + 1,col_946 + 1,col_947 + 1 from tbl_0 where col_943 < 5 ) select * from tbl_0; | ||
Error 1054: Unknown column 'col_943' in 'where clause' | ||
with recursive cte1 (c1, c2) as (select 1, '1' union select concat(c1, 1), c2 + 1 from cte1 where c1 < 100) select * from cte1; | ||
with recursive cte_8 (col_51,col_52,col_53,col_54) AS ( with recursive cte_9 (col_55,col_56,col_57,col_58) AS ( select 1, 2,3,4 UNION ALL select col_55 + 1,col_56 + 1,col_57 + 1,col_58 + 1 from cte_9 where col_55 < 5 ) select col_55,col_57,col_56,col_58 from cte_9 UNION DISTINCT select col_51 + 1,col_52 + 1,col_53 + 1,col_54 + 1 from cte_8 where col_51 < 5 ) select * from cte_8; | ||
with recursive qn as (select 1 from dual union all select 1 from dual) select * from qn; | ||
with recursive qn as (select 1 as a from dual group by a union all select a+1 from qn where a<3) select * from qn; | ||
with recursive qn as ((select 1 as a from dual order by a) union all select a+1 from qn where a<3) select * from qn; | ||
drop table if exists employees; | ||
CREATE TABLE employees ( | ||
ID INT PRIMARY KEY, | ||
NAME VARCHAR(100), | ||
MANAGER_ID INT, | ||
INDEX (MANAGER_ID), | ||
FOREIGN KEY (MANAGER_ID) REFERENCES employees(ID) | ||
); | ||
INSERT INTO employees VALUES | ||
(333, "Yasmina", NULL), | ||
(198, "John", 333), | ||
(692, "Tarek", 333), | ||
(29, "Pedro", 198), | ||
(4610, "Sarah", 29), | ||
(72, "Pierre", 29), | ||
(123, "Adil", 692); | ||
WITH RECURSIVE employees_extended AS (SELECT ID, NAME, MANAGER_ID, CAST(ID AS CHAR(200)) AS PATH FROM employees WHERE NAME='Pierre' UNION ALL SELECT S.ID, S.NAME, S.MANAGER_ID, CONCAT(M.PATH, ",", S.ID) FROM employees_extended M JOIN employees S ON M.MANAGER_ID=S.ID) SELECT * FROM employees_extended; | ||
with recursive cte (c1) as (select 1), cte1 (c2) as (select 1 union select c1 + 1 from cte where c1 < 10) select * from cte where c1 < 5; | ||
with recursive cte_581 (col_2343,col_2344,col_2345) AS ( select 1, '2',cast('3' as char(20))) , cte_582 (col_2346,col_2347,col_2348) AS ( select 1, 2, 3) select * from cte_581 as cte_as_583,cte_582 as cte_as_584,cte_582 as cte_as_585 order by cte_as_583.col_2343,cte_as_585.col_2348,cte_as_584.col_2346,cte_as_584.col_2348,cte_as_583.col_2344,cte_as_584.col_2347,cte_as_585.col_2346,cte_as_585.col_2347,cte_as_583.col_2345; | ||
with recursive tbl_3 (col_19,col_20,col_21,col_22) AS ( select 1, 2,3,4 UNION select col_19 + 1,col_20 + 1,col_21 + 1,concat(col_22, 1) from tbl_3 where col_19 < 5 ) , cte_4 (col_23,col_24,col_25,col_26) AS ( select 1, 2,cast("3" as char(20)),4 UNION DISTINCT select col_23 + 1,col_24 + 1,concat(col_25, 1),col_26 + 1 from cte_4 where col_23 < 5 ) select * from tbl_3 as cte_as_3,cte_4 as cte_as_4,tbl_3 as cte_as_5 order by cte_as_3.col_19,cte_as_4.col_23,cte_as_4.col_25,cte_as_4.col_24,cte_as_4.col_26,cte_as_3.col_20,cte_as_5.col_22,cte_as_3.col_21,cte_as_5.col_20,cte_as_3.col_22,cte_as_5.col_19,cte_as_5.col_21; | ||
with cte1 (c1) as (select 1) select * from cte1 as b, cte1 as a; | ||
WITH RECURSIVE qn AS | ||
( | ||
select 1 | ||
union all | ||
select 3, 0 from qn | ||
) | ||
select * from qn; | ||
Error 1222: The used SELECT statements have a different number of columns | ||
with recursive cte1 as (select 1 union all (select 1 from cte1 limit 10)) select * from cte1; | ||
Error 1235: This version of TiDB doesn't yet support 'ORDER BY / LIMIT / SELECT DISTINCT in recursive query block of Common Table Expression' | ||
with recursive qn as (select 123 as a union all select null from qn where a is not null) select * from qn; | ||
with recursive q (b) as (select 1, 1 union all select 1, 1 from q) select b from q; | ||
Error 1353: In definition of view, derived table or common table expression, SELECT list and column names list have different column counts | ||
drop table if exists t1; | ||
create table t1(a int); | ||
insert into t1 values(1); | ||
insert into t1 values(2); | ||
SELECT * | ||
FROM | ||
t1 dt | ||
WHERE | ||
EXISTS( | ||
WITH RECURSIVE qn AS (SELECT a*0 AS b UNION ALL SELECT b+1 FROM qn WHERE b=0) | ||
SELECT * FROM qn WHERE b=a | ||
); | ||
a | ||
1 | ||
drop table if exists t1; | ||
create table t1 (a int); | ||
insert into t1 values (1); | ||
SELECT (WITH qn AS (SELECT 10*a as a FROM t1), | ||
qn2 AS (SELECT 3*a AS b FROM qn) SELECT * from qn2 LIMIT 1) | ||
FROM t1; | ||
(WITH qn AS (SELECT 10*a as a FROM t1), | ||
qn2 AS (SELECT 3*a AS b FROM qn) | ||
30 | ||
select (with qn as (select "with") select * from qn) as scal_subq | ||
from dual; | ||
scal_subq | ||
with | ||
drop table if exists t1; | ||
create table t1 (a int); | ||
insert into t1 values(1), (2), (3); | ||
with q as (select * from t1) | ||
select /*+ merge(q) no_merge(q1) */ * from q, q q1 where q.a=1 and q1.a=2; | ||
drop table if exists t1; | ||
create table t1 (a int, b int); | ||
with qn as (select a, b from t1) select b from qn group by a; | ||
drop table if exists t1; | ||
create table t1(a int); | ||
insert into t1 values(1); | ||
insert into t1 values(2); | ||
SELECT * | ||
FROM | ||
t1 dt | ||
WHERE | ||
EXISTS( | ||
WITH RECURSIVE qn AS (SELECT a*0+1 AS b UNION ALL SELECT b+1 FROM qn WHERE b=0) | ||
SELECT * FROM qn WHERE b=1 | ||
); | ||
a | ||
1 | ||
2 | ||
drop table if exists tbl_1; | ||
CREATE TABLE `tbl_1` ( | ||
`col_2` char(65) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, | ||
`col_3` int(11) NOT NULL | ||
); | ||
with recursive cte_8932 (col_34891,col_34892) AS ( with recursive cte_8932 (col_34893,col_34894,col_34895) AS ( with tbl_1 (col_34896,col_34897,col_34898,col_34899) AS ( select 1, "2",3,col_3 from tbl_1 ) select cte_as_8958.col_34896,cte_as_8958.col_34898,cte_as_8958.col_34899 from tbl_1 as cte_as_8958 UNION DISTINCT select col_34893 + 1,concat(col_34894, 1),col_34895 + 1 from cte_8932 where col_34893 < 5 ) select cte_as_8959.col_34893,cte_as_8959.col_34895 from cte_8932 as cte_as_8959 ) select * from cte_8932 as cte_as_8960 order by cte_as_8960.col_34891,cte_as_8960.col_34892; | ||
drop table if exists t1; | ||
create table t1(c1 bigint unsigned); | ||
insert into t1 values(0); | ||
with recursive cte1 as (select c1 - 1 c1 from t1 union all select c1 - 1 c1 from cte1 where c1 != 0) select * from cte1 dt1, cte1 dt2; | ||
Error 1690: BIGINT UNSIGNED value is out of range in '(test.t1.c1 - 1)' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.