[scn] fix failure of mittest after refresh feature scn
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,523 @@
|
||||
drop database if exists cte_st;
|
||||
create database cte_st;
|
||||
use cte_st;
|
||||
## bugfix: https://work.aone.alibaba-inc.com/issue/37502128
|
||||
result_format: 4
|
||||
with cte1(c1, c2) as
|
||||
(select 1, '0' from dual
|
||||
union all select 2, '1' from dual
|
||||
),
|
||||
cte2(c1, c2) as
|
||||
(select '0', 1 from dual
|
||||
union all select cte1.c2, cte1.c1 from cte2, cte1 where 10 = cte2.c1)
|
||||
select * from cte2;
|
||||
ERROR 42S02: Table doesn't exist
|
||||
|
||||
WITH my_cte AS (SELECT 1 AS n UNION ALL SELECT 1+n FROM my_cte WHERE n<10 ) SELECT * FROM my_cte;
|
||||
ERROR 42S02: Table doesn't exist
|
||||
|
||||
WITH recursive my_cte AS (SELECT 1 AS n UNION ALL SELECT 1+n FROM my_cte WHERE n<10 ) SELECT * FROM my_cte;
|
||||
+------+
|
||||
| n |
|
||||
+------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+------+
|
||||
WITH recursive my_cte AS (SELECT 1+n FROM my_cte WHERE n<10 UNION ALL SELECT 1 AS n) SELECT * FROM my_cte;
|
||||
ERROR HY000: Recursive Common Table Expression should have one or more non-recursive query blocks followed by one or more recursive ones
|
||||
WITH my_cte AS (SELECT 1+n FROM my_cte WHERE n<10 UNION ALL SELECT 1 AS n) SELECT * FROM my_cte;
|
||||
ERROR 42S02: Table doesn't exist
|
||||
|
||||
|
||||
##bugfix: https://work.aone.alibaba-inc.com/issue/37501730
|
||||
create table t1(deptno number, loc varchar(100));
|
||||
CREATE TABLE t2(EMPNO DECIMAL(4) UNIQUE,ENAME VARCHAR(10) NOT NULL,JOB VARCHAR(9),MGR DECIMAL(4),HIREDATE DATE,SAL DECIMAL(7,2),COMM DECIMAL(7,2),DEPTNO INT);
|
||||
WITH
|
||||
temp AS (SELECT e.deptno,e.loc FROM t1 e WHERE e.loc IN ('New York','ChiCaGo') ORDER BY e.deptno),
|
||||
temp AS (SELECT p.deptno,p.job FROM t2 p WHERE p.job NOT IN ('CLERK','ANALYST') ORDER BY p.deptno)
|
||||
SELECT e.deptno,e.loc,p.job FROM temp e,temp p WHERE e.deptno = p.deptno ORDER BY 1,2,3;
|
||||
ERROR 42000: Not unique table/alias: 'temp'
|
||||
|
||||
##bugfix: https://work.aone.alibaba-inc.com/issue/37715234
|
||||
CREATE TABLE employees (
|
||||
id INT PRIMARY KEY NOT NULL,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
manager_id INT NULL,
|
||||
INDEX (manager_id)
|
||||
);
|
||||
INSERT INTO employees VALUES(333, 'Yasmina', NULL);
|
||||
INSERT INTO employees VALUES(198, 'John', 333);
|
||||
INSERT INTO employees VALUES(692, 'Tarek', 333);
|
||||
INSERT INTO employees VALUES(29, 'Pedro', 198);
|
||||
INSERT INTO employees VALUES(4610, 'Sarah', 29);
|
||||
INSERT INTO employees VALUES(72, 'Pierre', 29);
|
||||
INSERT INTO employees VALUES(123, 'Adil', 692);
|
||||
|
||||
## result not correct. https://aone.alibaba-inc.com/task/35657687
|
||||
WITH RECURSIVE employee_paths (id, name, path) AS
|
||||
(
|
||||
SELECT id, name, 1
|
||||
FROM employees
|
||||
WHERE manager_id IS NULL
|
||||
UNION ALL
|
||||
SELECT e.id, e.name, CONCAT(ep.path, ',', e.id)
|
||||
FROM employee_paths ep JOIN employees e
|
||||
ON ep.id = e.manager_id
|
||||
)
|
||||
SELECT * FROM employee_paths ORDER BY name;
|
||||
+------+---------+------+
|
||||
| id | name | path |
|
||||
+------+---------+------+
|
||||
| 123 | Adil | 1 |
|
||||
| 198 | John | 1 |
|
||||
| 29 | Pedro | 1 |
|
||||
| 72 | Pierre | 1 |
|
||||
| 4610 | Sarah | 1 |
|
||||
| 692 | Tarek | 1 |
|
||||
| 333 | Yasmina | 1 |
|
||||
+------+---------+------+
|
||||
|
||||
WITH RECURSIVE employee_paths (id, name, path) AS
|
||||
(
|
||||
SELECT id, name, CAST(id AS CHAR(200))
|
||||
FROM employees
|
||||
WHERE manager_id IS NULL
|
||||
UNION ALL
|
||||
SELECT e.id, e.name, CONCAT(ep.path, ',', e.id)
|
||||
FROM employee_paths AS ep JOIN employees AS e
|
||||
ON ep.id = e.manager_id
|
||||
)
|
||||
SELECT * FROM employee_paths ORDER BY name;
|
||||
+------+---------+-----------------+
|
||||
| id | name | path |
|
||||
+------+---------+-----------------+
|
||||
| 123 | Adil | 333,692,123 |
|
||||
| 198 | John | 333,198 |
|
||||
| 29 | Pedro | 333,198,29 |
|
||||
| 72 | Pierre | 333,198,29,72 |
|
||||
| 4610 | Sarah | 333,198,29,4610 |
|
||||
| 692 | Tarek | 333,692 |
|
||||
| 333 | Yasmina | 333 |
|
||||
+------+---------+-----------------+
|
||||
drop database cte_st;
|
||||
|
||||
drop database if exists with_limit;
|
||||
create database with_limit;
|
||||
use with_limit;
|
||||
with recursive CTETEMP(N) as
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETEMP WHERE N < 20
|
||||
)
|
||||
SELECT N as order_id
|
||||
From CTETEMP
|
||||
limit 10;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
|
||||
with recursive CTETEMP(N) as
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETEMP WHERE N < 20
|
||||
)
|
||||
SELECT N as order_id
|
||||
From CTETEMP;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 11 |
|
||||
| 12 |
|
||||
| 13 |
|
||||
| 14 |
|
||||
| 15 |
|
||||
| 16 |
|
||||
| 17 |
|
||||
| 18 |
|
||||
| 19 |
|
||||
| 20 |
|
||||
+----------+
|
||||
drop database with_limit;
|
||||
|
||||
|
||||
drop tenant if exists tenant_case_mode0 force;
|
||||
drop tenant if exists tenant_case_mode1 force;
|
||||
drop tenant if exists tenant_case_mode2 force;
|
||||
DROP RESOURCE POOL IF EXISTS case_mode_pool;
|
||||
DROP RESOURCE UNIT IF EXISTS case_mode_uint;
|
||||
CREATE RESOURCE UNIT case_mode_uint MAX_CPU=1, MEMORY_SIZE='1G';
|
||||
CREATE RESOURCE POOL case_mode_pool UNIT='case_mode_uint', UNIT_NUM=1, ZONE_LIST=('zone1');
|
||||
# ORIGIN_AND_SENSITIVE
|
||||
CREATE TENANT tenant_case_mode0 REPLICA_NUM = 1, RESOURCE_POOL_LIST = ('case_mode_pool'), collate = utf8mb4_bin set ob_tcp_invited_nodes='%', lower_case_table_names=0;
|
||||
|
||||
create database name_case;
|
||||
use name_case;
|
||||
|
||||
show variables like 'lower_case_table_names';
|
||||
Variable_name Value
|
||||
lower_case_table_names 0
|
||||
create table ORDERS(order_id int);
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETMP WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM CTETMP
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE ctetmp (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
ERROR 42S02: Table 'name_case.ctetmp' doesn't exist
|
||||
|
||||
drop database name_case;
|
||||
|
||||
# LOWERCASE_AND_INSENSITIVE
|
||||
drop tenant tenant_case_mode0 force;
|
||||
CREATE TENANT tenant_case_mode1 REPLICA_NUM = 1, RESOURCE_POOL_LIST = ('case_mode_pool'), collate = utf8mb4_bin set ob_tcp_invited_nodes='%', lower_case_table_names=1;
|
||||
|
||||
create database name_case;
|
||||
use name_case;
|
||||
|
||||
show variables like 'lower_case_table_names';
|
||||
Variable_name Value
|
||||
lower_case_table_names 1
|
||||
create table ORDERS(order_id int);
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETMP WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM CTETMP
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE ctetmp (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
drop database name_case;
|
||||
|
||||
# ORIGIN_AND_INSENSITIVE
|
||||
drop tenant tenant_case_mode1 force;
|
||||
CREATE TENANT tenant_case_mode2 REPLICA_NUM = 1, RESOURCE_POOL_LIST = ('case_mode_pool'), collate = utf8mb4_bin set ob_tcp_invited_nodes='%', lower_case_table_names=2;
|
||||
|
||||
create database name_case;
|
||||
use name_case;
|
||||
|
||||
show variables like 'lower_case_table_names';
|
||||
Variable_name Value
|
||||
lower_case_table_names 2
|
||||
create table ORDERS(order_id int);
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETMP WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM CTETMP
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE ctetmp (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
|
||||
select * from ORDERS;
|
||||
+----------+
|
||||
| order_id |
|
||||
+----------+
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
+----------+
|
||||
drop database name_case;
|
||||
# clean up
|
||||
drop tenant tenant_case_mode2 force;
|
||||
drop resource pool case_mode_pool;
|
||||
drop resource unit case_mode_uint;
|
||||
@ -0,0 +1,301 @@
|
||||
# owner: dachuan.sdc
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
|
||||
--disable_warnings
|
||||
drop database if exists cte_st;
|
||||
--enable_warnings
|
||||
create database cte_st;
|
||||
use cte_st;
|
||||
|
||||
--echo ## bugfix: https://work.aone.alibaba-inc.com/issue/37502128
|
||||
--result_format 4
|
||||
--error 1146
|
||||
with cte1(c1, c2) as
|
||||
(select 1, '0' from dual
|
||||
union all select 2, '1' from dual
|
||||
),
|
||||
cte2(c1, c2) as
|
||||
(select '0', 1 from dual
|
||||
union all select cte1.c2, cte1.c1 from cte2, cte1 where 10 = cte2.c1)
|
||||
select * from cte2;
|
||||
|
||||
--error 1146
|
||||
WITH my_cte AS (SELECT 1 AS n UNION ALL SELECT 1+n FROM my_cte WHERE n<10 ) SELECT * FROM my_cte;
|
||||
|
||||
WITH recursive my_cte AS (SELECT 1 AS n UNION ALL SELECT 1+n FROM my_cte WHERE n<10 ) SELECT * FROM my_cte;
|
||||
--error 3574
|
||||
WITH recursive my_cte AS (SELECT 1+n FROM my_cte WHERE n<10 UNION ALL SELECT 1 AS n) SELECT * FROM my_cte;
|
||||
--error 1146
|
||||
WITH my_cte AS (SELECT 1+n FROM my_cte WHERE n<10 UNION ALL SELECT 1 AS n) SELECT * FROM my_cte;
|
||||
|
||||
|
||||
|
||||
--echo ##bugfix: https://work.aone.alibaba-inc.com/issue/37501730
|
||||
create table t1(deptno number, loc varchar(100));
|
||||
CREATE TABLE t2(EMPNO DECIMAL(4) UNIQUE,ENAME VARCHAR(10) NOT NULL,JOB VARCHAR(9),MGR DECIMAL(4),HIREDATE DATE,SAL DECIMAL(7,2),COMM DECIMAL(7,2),DEPTNO INT);
|
||||
--error 1066
|
||||
WITH
|
||||
temp AS (SELECT e.deptno,e.loc FROM t1 e WHERE e.loc IN ('New York','ChiCaGo') ORDER BY e.deptno),
|
||||
temp AS (SELECT p.deptno,p.job FROM t2 p WHERE p.job NOT IN ('CLERK','ANALYST') ORDER BY p.deptno)
|
||||
SELECT e.deptno,e.loc,p.job FROM temp e,temp p WHERE e.deptno = p.deptno ORDER BY 1,2,3;
|
||||
|
||||
|
||||
--echo ##bugfix: https://work.aone.alibaba-inc.com/issue/37715234
|
||||
CREATE TABLE employees (
|
||||
id INT PRIMARY KEY NOT NULL,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
manager_id INT NULL,
|
||||
INDEX (manager_id)
|
||||
);
|
||||
INSERT INTO employees VALUES(333, 'Yasmina', NULL);
|
||||
INSERT INTO employees VALUES(198, 'John', 333);
|
||||
INSERT INTO employees VALUES(692, 'Tarek', 333);
|
||||
INSERT INTO employees VALUES(29, 'Pedro', 198);
|
||||
INSERT INTO employees VALUES(4610, 'Sarah', 29);
|
||||
INSERT INTO employees VALUES(72, 'Pierre', 29);
|
||||
INSERT INTO employees VALUES(123, 'Adil', 692);
|
||||
|
||||
## result not correct. https://aone.alibaba-inc.com/task/35657687
|
||||
WITH RECURSIVE employee_paths (id, name, path) AS
|
||||
(
|
||||
SELECT id, name, 1
|
||||
FROM employees
|
||||
WHERE manager_id IS NULL
|
||||
UNION ALL
|
||||
SELECT e.id, e.name, CONCAT(ep.path, ',', e.id)
|
||||
FROM employee_paths ep JOIN employees e
|
||||
ON ep.id = e.manager_id
|
||||
)
|
||||
SELECT * FROM employee_paths ORDER BY name;
|
||||
|
||||
|
||||
WITH RECURSIVE employee_paths (id, name, path) AS
|
||||
(
|
||||
SELECT id, name, CAST(id AS CHAR(200))
|
||||
FROM employees
|
||||
WHERE manager_id IS NULL
|
||||
UNION ALL
|
||||
SELECT e.id, e.name, CONCAT(ep.path, ',', e.id)
|
||||
FROM employee_paths AS ep JOIN employees AS e
|
||||
ON ep.id = e.manager_id
|
||||
)
|
||||
SELECT * FROM employee_paths ORDER BY name;
|
||||
drop database cte_st;
|
||||
|
||||
|
||||
#bugfix https://work.aone.alibaba-inc.com/issue/44898667
|
||||
#use with limit
|
||||
--disable_warnings
|
||||
drop database if exists with_limit;
|
||||
--enable_warnings
|
||||
create database with_limit;
|
||||
use with_limit;
|
||||
with recursive CTETEMP(N) as
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETEMP WHERE N < 20
|
||||
)
|
||||
SELECT N as order_id
|
||||
From CTETEMP
|
||||
limit 10;
|
||||
|
||||
with recursive CTETEMP(N) as
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETEMP WHERE N < 20
|
||||
)
|
||||
SELECT N as order_id
|
||||
From CTETEMP;
|
||||
drop database with_limit;
|
||||
|
||||
#bugfix https://work.aone.alibaba-inc.com/issue/44947935
|
||||
#test in different case mode
|
||||
connect (sys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection sys;
|
||||
let $zone = query_get_value(select zone from oceanbase.dba_ob_zones, zone, 1);
|
||||
|
||||
--disable_warnings
|
||||
drop tenant if exists tenant_case_mode0 force;
|
||||
drop tenant if exists tenant_case_mode1 force;
|
||||
drop tenant if exists tenant_case_mode2 force;
|
||||
--enable_warnings
|
||||
|
||||
--disable_warnings
|
||||
eval DROP RESOURCE POOL IF EXISTS case_mode_pool;
|
||||
eval DROP RESOURCE UNIT IF EXISTS case_mode_uint;
|
||||
--enable_warnings
|
||||
|
||||
eval CREATE RESOURCE UNIT case_mode_uint MAX_CPU=1, MEMORY_SIZE='1G';
|
||||
eval CREATE RESOURCE POOL case_mode_pool UNIT='case_mode_uint', UNIT_NUM=1, ZONE_LIST=('$zone');
|
||||
--enable_query_log
|
||||
--echo # ORIGIN_AND_SENSITIVE
|
||||
CREATE TENANT tenant_case_mode0 REPLICA_NUM = 1, RESOURCE_POOL_LIST = ('case_mode_pool'), collate = utf8mb4_bin set ob_tcp_invited_nodes='%', lower_case_table_names=0;
|
||||
--sleep 3
|
||||
connect (conn_case_mode_sys0,$OBMYSQL_MS0, root@tenant_case_mode0, ,*NO-ONE*,$OBMYSQL_PORT);
|
||||
connection conn_case_mode_sys0;
|
||||
|
||||
create database name_case;
|
||||
use name_case;
|
||||
|
||||
show variables like 'lower_case_table_names';
|
||||
create table ORDERS(order_id int);
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETMP WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM CTETMP
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE ctetmp (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
|
||||
--error 1146
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
|
||||
drop database name_case;
|
||||
--echo
|
||||
--echo # LOWERCASE_AND_INSENSITIVE
|
||||
connection sys;
|
||||
drop tenant tenant_case_mode0 force;
|
||||
CREATE TENANT tenant_case_mode1 REPLICA_NUM = 1, RESOURCE_POOL_LIST = ('case_mode_pool'), collate = utf8mb4_bin set ob_tcp_invited_nodes='%', lower_case_table_names=1;
|
||||
--sleep 3
|
||||
connect (conn_case_mode_sys1,$OBMYSQL_MS0, root@tenant_case_mode1, ,*NO-ONE*,$OBMYSQL_PORT);
|
||||
connection conn_case_mode_sys1;
|
||||
|
||||
create database name_case;
|
||||
use name_case;
|
||||
|
||||
show variables like 'lower_case_table_names';
|
||||
create table ORDERS(order_id int);
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETMP WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM CTETMP
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE ctetmp (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
|
||||
select * from ORDERS;
|
||||
drop database name_case;
|
||||
--echo
|
||||
--echo # ORIGIN_AND_INSENSITIVE
|
||||
connection sys;
|
||||
drop tenant tenant_case_mode1 force;
|
||||
CREATE TENANT tenant_case_mode2 REPLICA_NUM = 1, RESOURCE_POOL_LIST = ('case_mode_pool'), collate = utf8mb4_bin set ob_tcp_invited_nodes='%', lower_case_table_names=2;
|
||||
--sleep 3
|
||||
connect (conn_case_mode_sys2,$OBMYSQL_MS0, root@tenant_case_mode2, ,*NO-ONE*,$OBMYSQL_PORT);
|
||||
connection conn_case_mode_sys2;
|
||||
|
||||
create database name_case;
|
||||
use name_case;
|
||||
|
||||
show variables like 'lower_case_table_names';
|
||||
create table ORDERS(order_id int);
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM CTETMP WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM CTETMP
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE ctetmp (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
select * from ORDERS;
|
||||
|
||||
INSERT INTO ORDERS SELECT * FROM (
|
||||
WITH RECURSIVE CTETMP (N) AS
|
||||
(
|
||||
SELECT 1
|
||||
UNION ALL
|
||||
SELECT N+1 FROM ctetmp WHERE N < 10
|
||||
)
|
||||
SELECT N AS ORDER_ID
|
||||
FROM ctetmp
|
||||
) t1
|
||||
;
|
||||
|
||||
select * from ORDERS;
|
||||
drop database name_case;
|
||||
--echo # clean up
|
||||
connection sys;
|
||||
drop tenant tenant_case_mode2 force;
|
||||
drop resource pool case_mode_pool;
|
||||
drop resource unit case_mode_uint;
|
||||
connection default;
|
||||
Reference in New Issue
Block a user