854 lines
19 KiB
Plaintext
854 lines
19 KiB
Plaintext
--source include/have_binlog_format_row.inc
|
|
--source include/master-slave.inc
|
|
|
|
|
|
|
|
connection master;
|
|
create database s_db;
|
|
create user normal_1@'%' identified by 'pass';
|
|
create user normal_2@'%' identified by 'pass';
|
|
create user normal_3@'%' identified by 'pass';
|
|
create user normal_4@'%' identified by 'pass';
|
|
|
|
grant all on s_db.* to normal_1@'%' ;
|
|
grant all on test.* to normal_2@'%' ;
|
|
grant all on s_db.* to normal_3@'%' ;
|
|
grant all on test.* to normal_4@'%' ;
|
|
|
|
--sync_slave_with_master
|
|
|
|
connect(m_normal_1, 127.0.0.1, normal_1, pass, s_db, $MASTER_MYPORT);
|
|
connect(m_normal_2, 127.0.0.1, normal_2, pass, test, $MASTER_MYPORT);
|
|
|
|
connect(s_normal_3, 127.0.0.1, normal_3, pass, s_db, $SLAVE_MYPORT);
|
|
connect(s_normal_4, 127.0.0.1, normal_4, pass, test, $SLAVE_MYPORT);
|
|
|
|
|
|
connection slave;
|
|
SET @start_read_only = @@global.read_only;
|
|
SET global read_only = true;
|
|
|
|
--echo ###########################################
|
|
--echo master and slave sync sequence.
|
|
--echo ###########################################
|
|
|
|
connection master;
|
|
use s_db;
|
|
|
|
create sequence s1;
|
|
show create table s1;
|
|
|
|
--sync_slave_with_master
|
|
connection slave;
|
|
use s_db;
|
|
show create table s1;
|
|
|
|
connection master;
|
|
use s_db;
|
|
drop sequence s1;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo not support create table engine=sequence.
|
|
--echo ###########################################
|
|
connection master;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
create table t(id int)engine=sequence;
|
|
|
|
create table t(id int)engine=innodb;
|
|
|
|
--replace_regex /'.*'/'x.x'/
|
|
--error ER_SEQUENCE_INVALID
|
|
alter table t engine=sequence;
|
|
|
|
drop table t;
|
|
|
|
--echo ###########################################
|
|
--echo not support alter sequence table.
|
|
--echo ###########################################
|
|
connection master;
|
|
|
|
create sequence s2;
|
|
|
|
--replace_regex /'.*'/'x.x'/
|
|
--error ER_SEQUENCE_INVALID
|
|
alter table s2 add id int;
|
|
|
|
--replace_regex /'.*'/'x.x'/
|
|
--error ER_SEQUENCE_INVALID
|
|
alter table s2 add index ind_x(start);
|
|
|
|
drop sequence s2;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo support create sequence
|
|
--echo ###########################################
|
|
connection master;
|
|
|
|
CREATE TABLE `s2` (
|
|
`currval` bigint(21) NOT NULL COMMENT 'current value',
|
|
`nextval` bigint(21) NOT NULL COMMENT 'next value',
|
|
`minvalue` bigint(21) NOT NULL COMMENT 'min value',
|
|
`maxvalue` bigint(21) NOT NULL COMMENT 'max value',
|
|
`start` bigint(21) NOT NULL COMMENT 'start value',
|
|
`increment` bigint(21) NOT NULL COMMENT 'increment value',
|
|
`cache` bigint(21) NOT NULL COMMENT 'cache size',
|
|
`cycle` bigint(21) NOT NULL COMMENT 'cycle state',
|
|
`round` bigint(21) NOT NULL COMMENT 'already how many round'
|
|
) ENGINE=Sequence DEFAULT CHARSET=latin1;
|
|
|
|
insert into s2 values(0, 0, 1, 10, 1, 2, 1, 1, 0);
|
|
commit;
|
|
select nextval(s2) ;
|
|
select nextval(s2) ;
|
|
select nextval(s2) ;
|
|
select nextval(s2) ;
|
|
select nextval(s2) ;
|
|
select nextval(s2) ;
|
|
select nextval(s2) ;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
select * from s2;
|
|
|
|
connection slave;
|
|
select * from s2;
|
|
|
|
|
|
connection master;
|
|
drop sequence s2;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
CREATE TABLE `s2` (
|
|
`currval` bigint(21) NULL COMMENT 'current value',
|
|
`nextval` bigint(21) NOT NULL COMMENT 'next value',
|
|
`minvalue` bigint(21) NOT NULL COMMENT 'min value',
|
|
`maxvalue` bigint(21) NOT NULL COMMENT 'max value',
|
|
`start` bigint(21) NOT NULL COMMENT 'start value',
|
|
`increment` bigint(21) NOT NULL COMMENT 'increment value',
|
|
`cache` bigint(21) NOT NULL COMMENT 'cache size',
|
|
`cycle` bigint(21) NOT NULL COMMENT 'cycle state',
|
|
`round` bigint(21) NOT NULL COMMENT 'already how many round'
|
|
) ENGINE=Sequence DEFAULT CHARSET=latin1;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
CREATE TABLE `s2` (
|
|
`rrval` bigint(21) NULL COMMENT 'current value',
|
|
`nextval` bigint(21) NOT NULL COMMENT 'next value',
|
|
`minvalue` bigint(21) NOT NULL COMMENT 'min value',
|
|
`maxvalue` bigint(21) NOT NULL COMMENT 'max value',
|
|
`start` bigint(21) NOT NULL COMMENT 'start value',
|
|
`increment` bigint(21) NOT NULL COMMENT 'increment value',
|
|
`cache` bigint(21) NOT NULL COMMENT 'cache size',
|
|
`cycle` bigint(21) NOT NULL COMMENT 'cycle state',
|
|
`round` bigint(21) NOT NULL COMMENT 'already how many round'
|
|
) ENGINE=Sequence DEFAULT CHARSET=latin1;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
CREATE TABLE `s2` (
|
|
`currval` bigint(21) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'current value',
|
|
`nextval` bigint(21) NOT NULL COMMENT 'next value',
|
|
`minvalue` bigint(21) NOT NULL COMMENT 'min value',
|
|
`maxvalue` bigint(21) NOT NULL COMMENT 'max value',
|
|
`start` bigint(21) NOT NULL COMMENT 'start value',
|
|
`increment` bigint(21) NOT NULL COMMENT 'increment value',
|
|
`cache` bigint(21) NOT NULL COMMENT 'cache size',
|
|
`cycle` bigint(21) NOT NULL COMMENT 'cycle state',
|
|
`round` bigint(21) NOT NULL COMMENT 'already how many round'
|
|
) ENGINE=Sequence DEFAULT CHARSET=latin1;
|
|
|
|
CREATE TABLE `s2` (
|
|
`currval` bigint(21) NOT NULL COMMENT 'current value',
|
|
`nextval` bigint(21) NOT NULL COMMENT 'next value',
|
|
`minvalue` bigint(21) NOT NULL COMMENT 'min value',
|
|
`maxvalue` bigint(21) NOT NULL COMMENT 'max value',
|
|
`start` bigint(21) NOT NULL COMMENT 'start value',
|
|
`increment` bigint(21) NOT NULL COMMENT 'increment value',
|
|
`cache` bigint(21) NOT NULL COMMENT 'cache size',
|
|
`cycle` bigint(21) NOT NULL COMMENT 'cycle state',
|
|
`round` bigint(21) NOT NULL COMMENT 'already how many round'
|
|
) ENGINE=sequence DEFAULT CHARSET=latin1;
|
|
|
|
show create table s2;
|
|
drop sequence s2;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo select sequence syntax test
|
|
--echo ###########################################
|
|
connection master;
|
|
create sequence s2;
|
|
create table t2 (id int);
|
|
|
|
select * from s2;
|
|
select * from t2;
|
|
insert into t2 select nextval(s2);
|
|
commit;
|
|
|
|
select * from t2;
|
|
select nextval(s2);
|
|
|
|
--error ER_TABLE_IS_NOT_SEQUENCE
|
|
select nextval(t2);
|
|
|
|
select * from s2, t2;
|
|
|
|
connection master;
|
|
drop sequence s2;
|
|
drop table t2;
|
|
|
|
--echo ###########################################
|
|
--echo support rename, not support truncate
|
|
--echo ###########################################
|
|
connection master;
|
|
|
|
create sequence s2;
|
|
|
|
alter table s2 rename to s2_1;
|
|
select nextval(s2_1);
|
|
|
|
rename table s2_1 to s2_2;
|
|
select nextval(s2_2);
|
|
|
|
--error ER_ILLEGAL_HA
|
|
truncate table s2_2;
|
|
rename table s2_2 to s2;
|
|
drop sequence s2;
|
|
|
|
--echo ###########################################
|
|
--echo not support create temproary sequence.
|
|
--echo ###########################################
|
|
connection master;
|
|
|
|
--error 1064
|
|
create temporary sequence s2;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo all invalid sequence value
|
|
--echo ###########################################
|
|
|
|
connection master;
|
|
use s_db;
|
|
create sequence s2 start with 1
|
|
minvalue 1
|
|
maxvalue 100000
|
|
increment by 1
|
|
cache 10000
|
|
cycle;
|
|
drop sequence s2;
|
|
create sequence s2 start with 1
|
|
minvalue 1
|
|
maxvalue 100000
|
|
increment by 1
|
|
cache 10000
|
|
nocycle;
|
|
drop sequence s2;
|
|
create sequence s2 start with 1
|
|
minvalue 1
|
|
maxvalue 100000
|
|
increment by 1
|
|
nocache
|
|
nocycle;
|
|
drop sequence s2;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
create sequence s2 start with 1
|
|
minvalue 5
|
|
maxvalue 100000
|
|
increment by 1
|
|
nocache
|
|
nocycle;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
create sequence s2 start with 1
|
|
minvalue 5
|
|
maxvalue 5
|
|
increment by 1
|
|
nocache
|
|
nocycle;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
create sequence s2 start with 1
|
|
minvalue 5
|
|
maxvalue 4
|
|
increment by 1
|
|
nocache
|
|
nocycle;
|
|
|
|
--error ER_SEQUENCE_INVALID
|
|
create sequence s2 start with 1
|
|
minvalue 5
|
|
maxvalue 4
|
|
increment by 0
|
|
nocache
|
|
nocycle;
|
|
|
|
--echo ###########################################
|
|
--echo global read lock prevent query sequence
|
|
--echo ###########################################
|
|
connection master;
|
|
use s_db;
|
|
create sequence s_db.s1;
|
|
flush table with read lock;
|
|
--error ER_CANT_UPDATE_WITH_READLOCK
|
|
select nextval(s1);
|
|
|
|
unlock tables;
|
|
|
|
drop sequence s1;
|
|
|
|
--echo ###########################################
|
|
--echo table read lock prevent query sequence
|
|
--echo ###########################################
|
|
connection master;
|
|
use s_db;
|
|
create sequence s_db.s1;
|
|
lock tables s_db.s1 read ;
|
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
|
select nextval(s1);
|
|
|
|
unlock tables;
|
|
|
|
drop sequence s1;
|
|
--echo ###########################################
|
|
--echo session setting
|
|
--echo ###########################################
|
|
connection master;
|
|
use s_db;
|
|
create sequence s1;
|
|
set session sequence_read_skip_cache=true;
|
|
select nextval(s1);
|
|
select currval(s1);
|
|
|
|
set session sequence_read_skip_cache=false;
|
|
select nextval(s1);
|
|
select currval(s1);
|
|
|
|
drop sequence s1;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo priv test
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
create sequence s_db.s1;
|
|
select * from s_db.s1;
|
|
create sequence s_db.s2;
|
|
drop sequence s_db.s2;
|
|
|
|
|
|
connection m_normal_2;
|
|
--error ER_TABLEACCESS_DENIED_ERROR
|
|
select nextval(s_db.s1);
|
|
--error ER_TABLEACCESS_DENIED_ERROR
|
|
create sequence s_db.s2;
|
|
|
|
connection m_normal_1;
|
|
drop sequence s_db.s1;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo run out sequence value
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
use s_db;
|
|
create sequence s_t start with 1 cache 2 maxvalue 5;
|
|
create table t(id int);
|
|
insert into t values(1111);
|
|
insert into t select nextval(s_t);
|
|
insert into t select nextval(s_t);
|
|
insert into t select nextval(s_t);
|
|
insert into t select nextval(s_t);
|
|
insert into t select nextval(s_t);
|
|
--error ER_SEQUENCE_RUN_OUT
|
|
insert into t select nextval(s_t);
|
|
--error ER_SEQUENCE_RUN_OUT
|
|
insert into t select nextval(s_t);
|
|
commit;
|
|
select * from t;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection s_normal_3;
|
|
use s_db;
|
|
select * from t;
|
|
|
|
connection m_normal_1;
|
|
use s_db;
|
|
drop sequence s_t;
|
|
drop table t;
|
|
|
|
--echo ###########################################
|
|
--echo read_only prevent query sequence
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
create sequence s_db.s1 nocache;
|
|
show global variables like 'read_only';
|
|
select nextval(s_db.s1);
|
|
|
|
connection s_normal_3;
|
|
show global variables like 'read_only';
|
|
|
|
--error ER_OPTION_PREVENTS_STATEMENT
|
|
select nextval(s_db.s1);
|
|
|
|
connection m_normal_1;
|
|
drop sequence s_db.s1;
|
|
|
|
|
|
|
|
--echo ###########################################
|
|
--echo update based table
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
use s_db;
|
|
create sequence s_t start with 1 minvalue 1 maxvalue 20 increment by 1 cache 5 cycle;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection s_normal_3;
|
|
use s_db;
|
|
select * from s_t;
|
|
|
|
|
|
connection m_normal_1;
|
|
select nextval(s_t);
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection s_normal_3;
|
|
select * from s_t;
|
|
|
|
--echo ------------------------------------------
|
|
--echo master update nextval;
|
|
--echo ------------------------------------------
|
|
connection m_normal_1;
|
|
select nextval(s_t);
|
|
update s_t set nextval= 11;
|
|
commit;
|
|
|
|
select * from s_t;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
--echo ------------------------------------------
|
|
--echo show slave nextval;
|
|
--echo ------------------------------------------
|
|
connection s_normal_3;
|
|
select * from s_t;
|
|
|
|
connection m_normal_1;
|
|
set session sequence_read_skip_cache=off;
|
|
select nextval(s_t);
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection s_normal_3;
|
|
select * from s_t;
|
|
|
|
|
|
|
|
--echo ------------------------------------------
|
|
--echo update into invalid sequence
|
|
--echo ------------------------------------------
|
|
connection m_normal_1;
|
|
select nextval(s_t);
|
|
update s_t set nextval= 11,start=10, minvalue=11;
|
|
commit;
|
|
|
|
create table t_1(id int);
|
|
insert into t_1 value(1111);
|
|
--error ER_SEQUENCE_INVALID
|
|
select nextval(s_t);
|
|
--error ER_SEQUENCE_INVALID
|
|
insert into t_1 select nextval(s_t);
|
|
commit;
|
|
|
|
select * from t_1;
|
|
|
|
--echo ------------------------------------------
|
|
--echo delete sequence row
|
|
--echo ------------------------------------------
|
|
connection m_normal_1;
|
|
delete from s_t;
|
|
commit;
|
|
|
|
--error ER_KEY_NOT_FOUND
|
|
select nextval(s_t);
|
|
|
|
connection m_normal_1;
|
|
drop sequence s_t;
|
|
drop table t_1;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo test transaction context (myisam)
|
|
--echo ###########################################
|
|
|
|
--echo ------------------------------------------
|
|
--echo transaction table and sequence
|
|
--echo normal transaction commit
|
|
--echo ------------------------------------------
|
|
connection m_normal_1;
|
|
use s_db;
|
|
set session sequence_read_skip_cache=off;
|
|
create sequence s_1 cache 5;
|
|
|
|
create table t_1(id int)engine=myisam;
|
|
begin;
|
|
insert into t_1 values(1111);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 values(2222);
|
|
commit;
|
|
|
|
select * from t_1;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection s_normal_3;
|
|
set session sequence_read_skip_cache=off;
|
|
use s_db;
|
|
select * from t_1;
|
|
|
|
--echo ------------------------------------------
|
|
--echo normal transaction rollback
|
|
--echo ------------------------------------------
|
|
connection m_normal_1;
|
|
begin;
|
|
insert into t_1 values(3333);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
insert into t_1 select nextval(s_1);
|
|
|
|
select * from t_1;
|
|
rollback;
|
|
|
|
select * from t_1;
|
|
select nextval(s_1);
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection s_normal_3;
|
|
set session sequence_read_skip_cache=off;
|
|
use s_db;
|
|
select * from t_1;
|
|
|
|
connection m_normal_1;
|
|
use s_db;
|
|
drop sequence s_1;
|
|
drop table t_1;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo close binlog
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
use s_db;
|
|
create sequence s1 cache 2;
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
|
|
commit;
|
|
select * from s1;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection slave;
|
|
use s_db;
|
|
select * from s1;
|
|
|
|
--echo ------------------------------------------
|
|
--echo close session binlog.
|
|
--echo ------------------------------------------
|
|
connection master;
|
|
set session sql_log_bin=off;
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
|
|
set session sql_log_bin=on;
|
|
select * from s1;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection slave;
|
|
use s_db;
|
|
select * from s1;
|
|
|
|
connection m_normal_1;
|
|
use s_db;
|
|
drop sequence s1;
|
|
|
|
--echo ###########################################
|
|
--echo statement binlog
|
|
--echo ###########################################
|
|
|
|
--echo ------------------------------------------
|
|
--echo set binlog_format=statement
|
|
--echo ------------------------------------------
|
|
connection master;
|
|
set session sequence_read_skip_cache=off;
|
|
set session binlog_format=statement;
|
|
show session variables like '%binlog_format%';
|
|
create sequence s1 cache 2;
|
|
--error ER_SEQUENCE_BINLOG_FORMAT
|
|
select nextval(s1);
|
|
|
|
set session binlog_format=row;
|
|
select nextval(s1);
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection slave;
|
|
use s_db;
|
|
select * from s1;
|
|
set session sequence_read_skip_cache=off;
|
|
|
|
connection m_normal_1;
|
|
use s_db;
|
|
drop sequence s1;
|
|
|
|
--echo ------------------------------------------
|
|
--echo set binlog_format=mixed
|
|
--echo ------------------------------------------
|
|
connection master;
|
|
set session sequence_read_skip_cache=off;
|
|
set session binlog_format=mixed;
|
|
show session variables like '%binlog_format%';
|
|
create sequence s1 cache 2;
|
|
--error ER_SEQUENCE_BINLOG_FORMAT
|
|
select nextval(s1);
|
|
|
|
set session binlog_format=row;
|
|
select nextval(s1);
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection slave;
|
|
use s_db;
|
|
select * from s1;
|
|
set session sequence_read_skip_cache=off;
|
|
|
|
connection m_normal_1;
|
|
use s_db;
|
|
drop sequence s1;
|
|
|
|
--echo ###########################################
|
|
--echo test savepoint
|
|
--echo ###########################################
|
|
connection master;
|
|
set session sequence_read_skip_cache=off;
|
|
set session binlog_format=row;
|
|
|
|
create sequence s1 cache 2;
|
|
create table t1(id int)engine=innodb;
|
|
|
|
begin;
|
|
insert into t1 values(1111);
|
|
savepoint sp1;
|
|
insert into t1 select nextval(s1);
|
|
insert into t1 select nextval(s1);
|
|
insert into t1 select nextval(s1);
|
|
|
|
insert into t1 values(2222);
|
|
|
|
select * from t1;
|
|
rollback to sp1;
|
|
select * from t1;
|
|
select nextval(s1);
|
|
|
|
commit;
|
|
|
|
drop sequence s1;
|
|
drop table t1;
|
|
|
|
--echo ###########################################
|
|
--echo test proc
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
set session sequence_read_skip_cache=off;
|
|
use s_db;
|
|
create table t(id int)engine=innodb;
|
|
|
|
delimiter //;
|
|
|
|
create procedure p1()
|
|
begin
|
|
create sequence s1 cache 2;
|
|
end//
|
|
|
|
create procedure p2()
|
|
begin
|
|
insert into t select nextval(s1);
|
|
commit;
|
|
end//
|
|
|
|
delimiter ;//
|
|
|
|
call p1();
|
|
call p2();
|
|
call p2();
|
|
call p2();
|
|
call p2();
|
|
|
|
select * from t;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
|
|
connection slave;
|
|
use s_db;
|
|
select * from t;
|
|
|
|
connection m_normal_1;
|
|
drop table t;
|
|
drop sequence s1;
|
|
drop procedure p1;
|
|
drop procedure p2;
|
|
|
|
|
|
--echo ###########################################
|
|
--echo test trigger
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
set session sequence_read_skip_cache=off;
|
|
use s_db;
|
|
create sequence s1 cache 2;
|
|
create table t1(id int)engine=innodb;
|
|
create table t2(id int)engine=innodb;
|
|
|
|
delimiter //;
|
|
CREATE TRIGGER tri_1
|
|
before INSERT ON t2 FOR EACH ROW
|
|
BEGIN
|
|
INSERT INTO t1 select nextval(s1);
|
|
END//
|
|
delimiter ;//
|
|
|
|
begin;
|
|
insert into t2 values(1111);
|
|
insert into t2 values(1111);
|
|
insert into t2 values(1111);
|
|
insert into t2 values(1111);
|
|
|
|
select * from t2;
|
|
select * from t1;
|
|
rollback;
|
|
select * from t2;
|
|
select * from t1;
|
|
|
|
select nextval(s1);
|
|
|
|
|
|
drop trigger tri_1;
|
|
drop table t1;
|
|
drop table t2;
|
|
drop sequence s1;
|
|
|
|
--echo ###########################################
|
|
--echo test value boundary
|
|
--echo ###########################################
|
|
connection m_normal_1;
|
|
use s_db;
|
|
|
|
|
|
--echo ------------------------------------------
|
|
--echo round increment by round
|
|
--echo ------------------------------------------
|
|
create sequence s1 start with 5 minvalue 2 maxvalue 7 cache 1 cycle;
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
drop sequence s1;
|
|
|
|
create sequence s1 start with 5 minvalue 2 maxvalue 7 cache 10 nocycle;
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
--error ER_SEQUENCE_RUN_OUT
|
|
select nextval(s1);
|
|
drop sequence s1;
|
|
|
|
create sequence s1 start with 2 minvalue 1 maxvalue 3 increment by 3 nocache cycle;
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
drop sequence s1;
|
|
|
|
create sequence s1 start with 2 minvalue 1 maxvalue 3 increment by 3 cache 2 nocycle;
|
|
select nextval(s1);
|
|
--error ER_SEQUENCE_RUN_OUT
|
|
select nextval(s1);
|
|
drop sequence s1;
|
|
|
|
|
|
--echo ------------------------------------------
|
|
--echo beyond ulonglong maxvalue
|
|
--echo ------------------------------------------
|
|
create sequence s1 start with 9223372036854775805 minvalue 9223372036854775804 maxvalue 9223372036854775807 cache 1 cycle;
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
drop sequence s1;
|
|
|
|
create sequence s1 start with 9223372036854775805 minvalue 9223372036854775804 maxvalue 9223372036854775807 cache 10 cycle;
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
select nextval(s1);
|
|
drop sequence s1;
|
|
|
|
connection master;
|
|
drop database s_db;
|
|
drop user normal_1@'%';
|
|
drop user normal_2@'%';
|
|
drop user normal_3@'%';
|
|
drop user normal_4@'%';
|
|
|
|
connection slave;
|
|
set global read_only = @start_read_only;
|
|
|
|
connection master;
|
|
--sync_slave_with_master
|
|
--source include/rpl_end.inc
|