341 lines
18 KiB
Plaintext
341 lines
18 KiB
Plaintext
create table t1(c1 bit);
|
|
create table t1(c1 bit(10));
|
|
|
|
#error
|
|
create table s002 (c1 int primary key, c2 varchar(50), unique index idx(c2(20)))
|
|
create table s001 (c1 int primary key, c2 varchar(50), unique key idx(c2(20)))
|
|
create table s001 (c1 int primary key, c2 varchar(50), unique idx(c2(20)))
|
|
|
|
use rongxuan;
|
|
start transaction read only;
|
|
start transaction read write;
|
|
start transaction with consistent snapshot, read only;
|
|
start transaction read write, with consistent snapshot;
|
|
start/*hint+start tx hint*/ transaction;
|
|
begin;
|
|
begin/*hint+begin*/;
|
|
begin work;
|
|
begin/*hint+begin work*/ work;
|
|
commit;
|
|
commit/*hint+commit*/;
|
|
commit work;
|
|
commit/*hint+commit work*/ work;
|
|
--sql_mode oracle
|
|
commit comment 'comment transaction commit';
|
|
commit work comment 'comment txn commit work';
|
|
commit/*hint+commit tx hint*/ comment 'comment + hint';
|
|
commit/*hint+commit tx work hint*/ work comment 'comment + hint';
|
|
--sql_mode mysql
|
|
rollback;
|
|
rollback/*hint+rollback*/;
|
|
rollback work;
|
|
rollback/*hint+rollback work*/ work;
|
|
alter user 'zdy' account lock;
|
|
alter user 'zdy' account unlock;
|
|
select d.t1.c1, sum(t1.c2) from d.t1 where d.t1.c1 > 0 and c2 + d.t1.c1 = 100 group by d.t1.c2 order by t.d1.c1 desc limit 0, 1
|
|
select c1, sum(d.t1.c2) from t1 where t1.c1 > 0 and c2 + t1.c1 = 100 group by t1.c2 order by t1.c1 desc limit 0, 1
|
|
select t1.c1, sum(c2) from t1 where c1 > 0 and c2 + c1 = 100 group by c2 order by c1 desc limit 0, 1
|
|
insert into t1 values(1, 2)
|
|
insert into t1.t1 values(1, 2)
|
|
insert into t1(c1) values(1), (2)
|
|
insert into t1(t1.c1) values(1), (2)
|
|
insert into d.t1(d.t1.c1) values(1), (2)
|
|
update t1 set d.t1.c2=t1.c1+1 where d.t1.c1 > 1 order by d.t1.c1 desc limit 0, 10
|
|
update d.t1 set t1.c2=d.t1c1+1 where t1.c1 > 1 order by c1 desc limit 0, 10
|
|
delete from d.t1 where d.t1.c2 > 10 order by c1 limit 0, 1
|
|
select t1.c1, t2.c1 from d.t1 join d.t2 on d.t1.c1=t2.c1 where t1.c1>0;
|
|
select d.t1.c1, t2.c1 from d.t1 join t2 on t1.c1=t2.c1 where t1.c1>0;
|
|
select d.t1.c1, t2.c1 from d.t1 join t2 on c1=c1 where t1.c1>0;
|
|
insert into t1 value (1, 2), (3, 4) on duplicate key update d.t.c1 = t.c2 + 1, c2 = c2 + 3;
|
|
insert into d.t1 value (1, 2), (3, 4) on duplicate key update t.c1 = t.c2 + 1, d.t.c2 = t.c2 + 3;
|
|
create table rongxuan(c int primary key, c2 int)
|
|
create table rongxuan(rongxuan.c int primary key, c2 int)
|
|
create table rongxuan(d.rongxuan.c int primary key, c2 int)
|
|
drop table t1
|
|
drop table oceanbase.t, t1
|
|
alter table rongxuan add c3 int;
|
|
alter table rongxuan add rongxuan.c4 int;
|
|
alter table rongxuan add test.rongxuan.c5 int;
|
|
drop database rongxuan
|
|
create database rongxuan
|
|
create database if not exists rongxuan
|
|
create database if not exists rongxuan default character set = 'utf8' default collate = 'default_collate'
|
|
select * from d.t1 PARTITION(p1, p2);
|
|
delete from d.t1 PARTITION(p0, p1);
|
|
update d.t1 PARTITION (p2) SET id = 2 WHERE name = 'Jill';
|
|
INSERT INTO d.t1 PARTITION (p3, p4) VALUES (24, 'Tim', 'Greene', 3, 1), (26, 'Linda', 'Mills', 2, 1);
|
|
REPLACE INTO d.t1 PARTITION (p0) VALUES (20, 'Jan', 'Jones', 3, 2);
|
|
SELECT e.id, s.city, d.name FROM e JOIN stores PARTITION (p1) ON e.id=s.id JOIN departments PARTITION (p0) ON e.id=d.id;
|
|
#alter system switch replica leader zone = 'z1';
|
|
#alter system switch replica leader server = '127.0.0.1:80';
|
|
#alter system switch replica leader partition_id = '1%8@3001' server = '127.0.0.1:80';
|
|
#alter system switch replica leader partition_id '1%8@3001' server '127.0.0.1:80';
|
|
alter system report replica;
|
|
alter system report replica server = '127.0.0.1:80';
|
|
alter system report replica zone = 'z1';
|
|
alter system recycle replica;
|
|
alter system recycle replica server = '127.0.0.1:80';
|
|
alter system recycle replica server '127.0.0.1:80';
|
|
alter system recycle replica zone = 'z1';
|
|
alter system recycle replica zone 'z1';
|
|
alter system major freeze;
|
|
alter system start merge zone = 'z1';
|
|
alter system suspend merge;
|
|
alter system suspend merge tenant = sys;
|
|
alter system suspend merge tenant = all_user;
|
|
alter system suspend merge tenant = all_meta;
|
|
alter system resume merge;
|
|
alter system resume merge tenant = sys;
|
|
alter system resume merge tenant = all_user;
|
|
alter system resume merge tenant = all_meta;
|
|
alter system clear roottable;
|
|
alter system clear roottable tenant = 'xxx';
|
|
alter system modify zone 'z1' set region 'r1'
|
|
--error 5001
|
|
alter system start zone 'z1' region 'r1'
|
|
alter system modify zone 'z1' IDC 'idc1'
|
|
alter system modify zone 'z1' set IDC 'idc1', region 'r1'
|
|
alter system add zone 'z1' idc 'idc1', region 'r1'
|
|
alter system add zone 'z1' idc 'idc1'
|
|
alter system modify zone 'z1'
|
|
--error 5001
|
|
alter system start zone 'z1' IDC 'idc1'
|
|
--error 5001
|
|
alter system start zone 'z1' zone_type 'ReadWrite'
|
|
alter system add zone 'z1' zone_type 'ReadWrite', idc 'idc1', region 'r1'
|
|
alter system add zone 'z1' zone_type 'ReadWrite', idc 'idc1'
|
|
alter system add zone 'z1' zone_type 'ReadWrite', region 'r1'
|
|
alter system add zone 'z1' zone_type 'ReadWrite'
|
|
alter system modify zone 'z1' zone_type 'ReadWrite', idc 'idc1', region 'r1'
|
|
alter system modify zone 'z1' zone_type 'ReadWrite', idc 'idc1'
|
|
alter system modify zone 'z1' zone_type 'ReadWrite', region 'r1'
|
|
alter system modify zone 'z1' zone_type 'ReadWrite'
|
|
select * from t1 where c1>ANY(select c1 from t2 where c2>1);
|
|
select * from t1 where c1>SOME(select c1 from t2 where c2>1);
|
|
select * from t1 where c1>ALL(select c1 from t2 where c2>1);
|
|
select * from t1 where c1>(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<ANY(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<SOME(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<ALL(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<(select c1 from t2 where c2>1);
|
|
select * from t1 where c1>=ANY(select c1 from t2 where c2>1);
|
|
select * from t1 where c1>=SOME(select c1 from t2 where c2>1);
|
|
select * from t1 where c1>=ALL(select c1 from t2 where c2>1);
|
|
select * from t1 where c1>=(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<=ANY(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<=SOME(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<=ALL(select c1 from t2 where c2>1);
|
|
select * from t1 where c1<=(select c1 from t2 where c2>1);
|
|
select * from t1 where c1=ANY(select c1 from t2 where c2>1);
|
|
select * from t1 where c1=SOME(select c1 from t2 where c2>1);
|
|
select * from t1 where c1=ALL(select c1 from t2 where c2>1);
|
|
select * from t1 where c1=(select c1 from t2 where c2>1);
|
|
select * from t1 where c1!=ANY(select c1 from t2 where c2>1);
|
|
select * from t1 where c1!=SOME(select c1 from t2 where c2>1);
|
|
select * from t1 where c1!=ALL(select c1 from t2 where c2>1);
|
|
select * from t1 where c1!=(select c1 from t2 where c2>1);
|
|
select * from t1 where c1 in (select c1 from t2 where c2>1);
|
|
select * from t1 where c1 not in (select c1 from t2 where c2>1);
|
|
select * from t1 where exists (select c1 from t2 where c2>1);
|
|
select * from t1 where not exists (select c1 from t2 where c2>1);
|
|
select * from t1 where (select c1 from t1) like (select c2 from t2);
|
|
select * from t1 where (select c1 from t1) not like (select c2 from t2);
|
|
select * from t1 where (c1) in (select c1 from t2);
|
|
select * from t1 where (c1, c2) in (select c1, c2 from t2);
|
|
select * from t1 where ROW(c1, c2) in (select c1, c2 from t2);
|
|
set names latin1;
|
|
set names 'latin1';
|
|
set names utf8 collate 'utf8_general_ci';
|
|
set names utf8 collate utf8_general_ci;
|
|
set character set utf8;
|
|
set character set 'utf8';
|
|
set charset utf8;
|
|
select _utf8 'abc', _utf8mb4 'def' collate utf8mb4_general_ci from t1 where c1 collate utf8_bin = 'xyz' collate utf8_bin;
|
|
select * from t1 where c1=?;
|
|
select * from t1 where c1>?;
|
|
select * from t1 where (select c1 from t1 where c1 = ?) not like (select c2 from t2 where c2=?);
|
|
#test join syntax with no join_condition
|
|
select * from t1 join t2;
|
|
select * from t1 inner join t2;
|
|
select * from t1 cross join t2;
|
|
select * from t1 cross join t2 join t3;
|
|
select "1234";
|
|
select '1234';
|
|
create table test(c1 varchar(3) binary charset utf8mb4);
|
|
replace into test values(1,2);
|
|
replace ignore into test values(1,2);
|
|
insert ignore into test values(1,2);
|
|
insert ignore into test values(1,2) on duplicate key update c2 = c1 + 1;
|
|
|
|
#test for create outline
|
|
create outline out_name on select * from t1;
|
|
create or replace outline out_name on select * from t1;
|
|
create outline out_name on select * from t1;
|
|
create outline out_name on select /*+ssssss*/* from t1;
|
|
create outline out_name on select /*+ssssss*/* from t1 to select /*+ssssss*/* from t1;
|
|
create outline out_name on select /*+ssssss*/* from t1 to select * from t1;
|
|
create outline out_name on insert /*+ssssss*/ into t1 values(1, 2) to insert /*+ssssss*/ into t1 values(1, 2);
|
|
|
|
#test for drop outline
|
|
drop outline out_name;
|
|
drop outline db_name.out_name;
|
|
|
|
#test create tenant, alter tenant
|
|
create tenant tt1 replica_num = 1, primary_zone = 'zone1', resource_pool_list = ('zone1') set ob_tcp_invited_nodes='%';
|
|
create tenant if not exists tt1 replica_num = 1, primary_zone = 'zone1', resource_pool_list = ('zone1') set ob_tcp_invited_nodes='%';
|
|
create tenant tt1 replica_num = 1, primary_zone = 'zone1', resource_pool_list = ('zone1'), locality = 'auto_locality_strategy' set ob_tcp_invited_nodes='%';
|
|
create tenant if not exists tt1 replica_num = 1, primary_zone = 'zone1', resource_pool_list = ('zone1'), locality = 'auto_locality_strategy' set ob_tcp_invited_nodes='%';
|
|
create tenant tt1 replica_num = 1, primary_zone = 'zone1', resource_pool_list = ('zone1'), logonly_replica_num = 1 set ob_tcp_invited_nodes='%';
|
|
create tenant if not exists tt1 replica_num = 1, primary_zone = 'zone1', resource_pool_list = ('zone1'), logonly_replica_num = 1 set ob_tcp_invited_nodes='%';
|
|
|
|
select /*+max_concurrent(-10)*/* from t1;
|
|
select /*+max_concurrent(10)*/* from t1;
|
|
|
|
alter system refresh time_zone_info;
|
|
|
|
########################## test for hierarchical query ###################################
|
|
|
|
### test for prior expression ###
|
|
|
|
#select emp_id, mgr_id, emp_name from emp connect by prior emp_id = mgr_id;
|
|
#select emp_id, mgr_id, emp_name from emp connect by prior (emp_id + 1) = mgr_id;
|
|
#select emp_id, mgr_id, emp_name from emp connect by prior emp_id = mgr_id and prior emp_id = emp_name;
|
|
#select emp_id, mgr_id, emp_name from emp connect by prior emp_id = mgr_id or prior emp_id = emp_name;
|
|
#
|
|
#select emp_id, mgr_id, emp_name from emp connect by emp_id != 1;
|
|
#select emp_id, mgr_id, emp_name from emp connect by emp_id != 1 and emp_id = 2;
|
|
#select emp_id, mgr_id, emp_name from emp connect by emp_id != 1 or emp_id = 2;
|
|
#
|
|
#select emp_id, mgr_id, emp_name from emp connect by prior emp_id = mgr_id and emp_id > 10;
|
|
#
|
|
#select emp_id, mgr_id, emp_name from emp connect by nocycle prior emp_id = mgr_id;
|
|
#
|
|
#select emp_id, mgr_id, emp_name from emp connect by nocycle prior (select min(c1) from t1) = mgr_id;
|
|
#select emp_id, mgr_id, emp_name from emp connect by nocycle prior emp_id = (select min(c1) from t1);
|
|
#select emp_id, emp_name, mgr_id from emp connect by prior emp_id = (select min(c1) from t1 where c1 > emp_id);
|
|
#
|
|
#### test start with ###
|
|
#
|
|
#select emp_id, mgr_id, emp_name from emp start with emp_id = 1 connect by prior emp_id = mgr_id;
|
|
#select emp_id, mgr_id, emp_name from emp start with (select min(c1) from t1) = 1 connect by prior emp_id = mgr_id;
|
|
#select emp_id, mgr_id, emp_name from emp start with emp_id = 1 or emp_id = 2 connect by prior emp_id = mgr_id;
|
|
#
|
|
#### test for pseudocolumn ##
|
|
#select level, emp_id from emp connect by prior emp_id = mgr_id;
|
|
#select max(level), emp_id from emp connect by prior emp_id = mgr_id;
|
|
#select level, emp_id from emp where level < 1 connect by prior emp_id = mgr_id;
|
|
#--error 5001
|
|
#create table t1(level int);
|
|
#create table t1(`level` int);
|
|
#
|
|
#select connect_by_isleaf, emp_id from emp connect by prior emp_id = mgr_id;
|
|
#select max(connect_by_isleaf), emp_id from emp connect by prior emp_id = mgr_id;
|
|
#select connect_by_isleaf, emp_id from emp where connect_by_isleaf < 1 connect by prior emp_id = mgr_id;
|
|
#
|
|
#select connect_by_iscycle, emp_id from emp connect by prior emp_id = mgr_id;
|
|
#select max(connect_by_iscycle), emp_id from emp connect by prior emp_id = mgr_id;
|
|
#select connect_by_iscycle, emp_id from emp where connect_by_iscycle < 1 connect by prior emp_id = mgr_id;
|
|
#
|
|
#### test for order siblings by ##
|
|
#select emp_id from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#select emp_id from emp connect by prior emp_id = gmr_id order siblings by emp_id;
|
|
#select emp_id from emp connect by prior emp_id = gmr_id order siblings by emp_id asc;
|
|
#select emp_id from emp connect by prior emp_id = gmr_id order siblings by emp_id asc, mgr_id;
|
|
#
|
|
#### test for connect_by_root ###
|
|
#select connect_by_root(emp_id) from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#select connect_by_root(level) from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#
|
|
### test for sys_connect_by_path ##
|
|
#select sys_connect_by_path(emp_id, 1) from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#select sys_connect_by_path(emp_id, '/') from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#select sys_connect_by_path(1, '/') from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#select sys_connect_by_path(emp_id + 1, '/') from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#--error 5001
|
|
#select sys_connect_by_path(emp_id, mgr_id) from emp connect by prior emp_id = gmr_id order by emp_id;
|
|
#
|
|
### test for group by ##
|
|
#select emp_id, mgr_id from emp where emp_id = 1 start with emp_id = 1 connect by prior c1 = 1 group by c1 having c1 > 1;
|
|
#
|
|
### test for limit ##
|
|
#select emp_id, mgr_id from emp where emp_id = 1 start with emp_id = 1 connect by prior c1 = 1 group by c1 having c1 > 1 limit 10;
|
|
|
|
########################## test for flashback and purge index ###################################
|
|
#flashback index t1_index to before drop;
|
|
#purge index t1_index;
|
|
|
|
|
|
######################## test for merge stmt ####################################
|
|
--error 5001
|
|
merge into targetTable t1 using sourceTable t2 on (t1.id = t2.id) when matched then update set t1.sales = t2.sales when not matched then insert(t1.id, t1.sales) values(t2.id, t2.sales);
|
|
--error 5001
|
|
merge into targetTable t1 using sourceTable t2 on (t1.id = t2.id) when matched then update set t1.sales = t2.sales where t2.id!= t1.id when not matched then insert(t1.id, t1.sales) values(t2.id, t2.sales);
|
|
--error 5001
|
|
merge into targetTable t1 using sourceTable t2 on (t1.id = t2.id) when matched then update set t1.sales = t2.sales where t1.id < 3 delete where t1.id < 5 when not matched then insert(t1.id, t1.sales) values(t2.id, t2.sales);
|
|
--error 5001
|
|
merge into targetTable t1 using sourceTable t2 on (t1.id = t2.id) when matched then update set t1.sales = t2.sales delete where t1.sales =2 when not matched then insert(t1.id, t1.sales) values(t2.id, t2.sales);
|
|
--error 5001
|
|
merge into targetTable t1 using sourceTable t2 on (t1.id = t2.id) when not matched then insert(t1.id, t1.sales) values(t2.id, t2.sales) where t2.id > 0;
|
|
--error 5001
|
|
merge into targetTable t1 using sourceTable t2 on (1 = 2) when not matched then insert(t1.id, t1.sales) values(t2.id, t2.sales) where t2.id > 0;
|
|
--error 5001
|
|
merge into targetTable t1 using sourceTable t2 on (t1.id = t2.id) when matched then update set t1.sales = t2.sales;
|
|
--error 5001
|
|
merge into targetTable using sourceTable on (targetTable.id = sourceTable.id) when matched then update set targetTable.sales = sourceTable.sales;
|
|
--error 5001
|
|
merge into targetTable using (select * from t1 ) sourceTable on (targetTable.id = sourceTable.id) when matched then update set targetTable.sales = sourceTable.sales;
|
|
|
|
select unique(c1), c2 from t1;
|
|
select unique(c1+1), c2 from t1;
|
|
select distinct unique( max(c1)), c2 from t1;
|
|
select unique distinct( max(c1)), c2 from t1;
|
|
--error 5001
|
|
select unique(*) from t1;
|
|
|
|
########################## test for returning ###################################
|
|
--sql_mode oracle
|
|
delete from t1 where c1 = 1 returning c1 + 1, c2 * 2;
|
|
update t1 set c1 = 1 where c2 = 2 returning c1, c2 + 3, c3 * c4;
|
|
insert into t1 values(1, 2, 3) returning c1, c2, c3;
|
|
--error 5001
|
|
replace into t1 values(1, 2) returning c1, c2, c3, c4, c5, c6;
|
|
############# tablegroup ##################
|
|
--sql_mode mysql
|
|
alter tablegroup tg2 add table t1,t2;
|
|
insert into t1 values(X'');
|
|
create table t1(`thedate` date NOT NULL COMMENT '日期');
|
|
alter system bootstrap REGION 'sys_region' ZONE 'zone1' SERVER '10.101.74.122:41425';
|
|
alter system transfer partition table_id = 1, object_id = 1 to ls 1001;
|
|
alter system transfer partition table_id = 1, object_id = 1 to ls 1001 tenant 'mysql';
|
|
alter system cancel transfer partition table_id = 1, object_id = 1;
|
|
alter system cancel transfer partition table_id = 1, object_id = 1 tenant 'mysql';
|
|
alter system cancel transfer partition ALL;
|
|
alter system cancel transfer partition ALL tenant 'mysql';
|
|
alter system cancel balance job;
|
|
alter system cancel balance job tenant 'mysql';
|
|
|
|
|
|
|
|
alter system add replica ls=100 server='100.88.107.212:5000' replica_type='F' data_source='100.88.107.212:5001' paxos_replica_num=3 tenant='mysql_tenant';
|
|
alter system add replica ls=100 server='100.88.107.212:5000' replica_type='F' data_source='100.88.107.212:5001' paxos_replica_num=3;
|
|
alter system add replica ls=100 server='100.88.107.212:5000' replica_type='F' data_source='100.88.107.212:5001';
|
|
alter system add replica ls=100 server='100.88.107.212:5000' replica_type='F';
|
|
|
|
alter system remove replica ls=100 server='100.88.107.212:5000' paxos_replica_num=3 tenant='mysql_tenant';
|
|
alter system remove replica ls=100 server='100.88.107.212:5000' paxos_replica_num=3;
|
|
alter system remove replica ls=100 server='100.88.107.212:5000';
|
|
|
|
alter system modify replica ls=100 server='100.88.107.212:5000' replica_type='F' paxos_replica_num=3 tenant='mysql_tenant';
|
|
alter system modify replica ls=100 server='100.88.107.212:5000' replica_type='F' paxos_replica_num=3;
|
|
alter system modify replica ls=100 server='100.88.107.212:5000' replica_type='F';
|
|
|
|
alter system modify ls=100 paxos_replica_num=3 tenant='mysql_tenant';
|
|
alter system modify ls=100 paxos_replica_num=3;
|
|
|
|
alter system migrate replica ls=100 source='100.88.107.212:5000' destination='100.88.107.212:5000' data_source='100.88.107.212:5001' tenant='mysql_tenant';
|
|
alter system migrate replica ls=100 source='100.88.107.212:5000' destination='100.88.107.212:5000' data_source='100.88.107.212:5001';
|
|
alter system migrate replica ls=100 source='100.88.107.212:5000' destination='100.88.107.212:5000';
|
|
|
|
alter system cancel replica task task_id = 'xxx' tenant='mysql_tenant';
|
|
alter system cancel replica task task_id = 'xxx';
|