403Webshell
Server IP : 88.99.149.37  /  Your IP : 216.73.216.141
Web Server : nginx/1.31.2
System : Linux server-88-99-149-37 6.12.0-124.56.5.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 15 06:12:08 EDT 2026 x86_64
User : muralimurth ( 1015)
PHP Version : 8.4.23
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/mysql/mysql-test/suite/sql_sequence/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/mysql/mysql-test/suite/sql_sequence/create.test
#
# Test create options with sequences
#
--source include/have_innodb.inc

drop table if exists t1;

#
# Check some sample engines
#

create or replace sequence t1 engine=myisam;
show create sequence t1;
show create table t1;
select * from t1;
create or replace sequence t1 engine=innodb;
show create sequence t1;
show create table t1;
select * from t1;
create or replace sequence t1 engine=maria;
show create sequence t1;
show create table t1;
select * from t1;

# Check start values
create or replace sequence t1 start with 10;
show create sequence t1;
select * from t1;
create or replace sequence t1 minvalue=11;
show create sequence t1;
select * from t1;
create or replace sequence t1 maxvalue=13 increment by -1;
show create sequence t1;
select * from t1;

create or replace sequence t1 increment by -1 cache 100;
show create sequence t1;
select * from t1;
create or replace sequence t1 cycle;
show create sequence t1;
select * from t1;
create or replace sequence t1 nocycle;
show create sequence t1;
select * from t1;
show create sequence t1;
create or replace sequence t1 cycle minvalue= 14;
show create sequence t1;
select * from t1;
create or replace sequence t1 cycle increment by -1;
show create sequence t1;

drop sequence t1;
create sequence if not exists t1;
create sequence if not exists t1 start with 10;
select * from t1;
show create sequence t1;

create or replace sequence t1 start with 10 minvalue=10 maxvalue=11 nocache cycle;
show create sequence t1;
select * from t1;
create or replace sequence t1 start with 10 minvalue=-10 maxvalue=11 cache=10 cycle increment by 10;
show create sequence t1;
select * from t1;

# NO MINVALUE, NO MAXVALUE
create or replace sequence t1 start with 10 NO MAXVALUE NO MINVALUE;

# Some edge cases
create or replace sequence t1 start with 10 maxvalue 10;
create or replace sequence t1 start with 10 minvalue 10;
create or replace sequence t1 start with 10 minvalue 10 maxvalue 11 cycle;
create or replace sequence t1 start with 10 maxvalue=9223372036854775806;
create or replace sequence t1 start with 10 minvalue=-9223372036854775807;
drop sequence if exists t1;

create sequence t1 increment by 0;
show create sequence t1;
select * from t1;
drop sequence t1;

#
# Wrong usage and arguments to create sequence
#

create table t1 (a int);
--error ER_NOT_SEQUENCE
show create sequence t1;
--error ER_NOT_SEQUENCE2
drop sequence t1;
drop sequence if exists t1;

--error ER_SEQUENCE_INVALID_DATA
create sequence t1 start with 10 maxvalue=9;
--error ER_SEQUENCE_INVALID_DATA
create sequence t1 minvalue= 100 maxvalue=10;
--error ER_SEQUENCE_INVALID_DATA
create sequence t1 start with 9 minvalue=10;
--error ER_PARSE_ERROR
create or replace sequence t1 maxvalue=13, increment by -1;
--error ER_PARSE_ERROR
create or replace sequence t1 start with= 10 maxvalue=13;
--error ER_PARSE_ERROR
create or replace sequence t1 maxvalue=13, increment= -1;
--error ER_PARSE_ERROR
create or replace sequence t1 start with 10 min_value=1 NO MINVALUE;
--error ER_PARSE_ERROR
create or replace sequence t1 start with 10 min_value=1 NO MINVALUE;
--error ER_SEQUENCE_INVALID_DATA
create sequence t1 start with 10 maxvalue=9223372036854775807;
--error ER_PARSE_ERROR
create sequence t1 start with 10 minvalue=-9223372036854775808;
--error ER_PARSE_ERROR
create sequence t1 RESTART WITH 10;

# This should probably give an error
create or replace sequence t1 start with 10 NO MINVALUE minvalue=1;
drop sequence t1;

#
# Test with LIST COLUMNS as first command
#
create sequence t1;
show fields from t1;
flush tables;
show fields from t1;
create or replace sequence t1 engine=aria;
show fields from t1;
show fields from t1;
flush tables;

#
# Test with other create options
#

create or replace sequence t1 comment= "test 1";
show create sequence t1;
show create table t1;
create or replace sequence t1 comment= "test 2" min_rows=1 max_rows=2;
show create sequence t1;
show create table t1;
create or replace sequence t1 start=1 increment= 2;
create or replace sequence t1 start 1 increment 2;
create or replace sequence t1 cache +1;
drop sequence t1;

#
# test with create table
#

CREATE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL
) sequence=1;

show create sequence t1;
show create table t1;
drop sequence t1;

# Wrong column name

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE OR REPLACE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count_not_exists` bigint(21) NOT NULL
) sequence=1;

# Wrong type

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE OR REPLACE TABLE t1 (
  `next_not_cached_value` int(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL
) sequence=1;

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE OR REPLACE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle` bigint(21) unsigned NOT NULL, /* error */
  `cycle_count` bigint(21) NOT NULL
) sequence=1;


# Missing NOT NULL

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE OR REPLACE TABLE t1 (
  `next_not_cached_value` bigint(21), /* error */
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL
) sequence=1;

# Extra field

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE OR REPLACE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL,
  extra_field bigint(21)
) sequence=1;

# Wrong field order

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE OR REPLACE TABLE t1 (
  `minimum_value` bigint(21) NOT NULL,
  `next_not_cached_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL
) sequence=1;

# key

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE OR REPLACE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL,
  key key1 (next_not_cached_value)
) sequence=1;

# Check constraint

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL,
  CHECK (start_value < minimum_value)
) sequence=1;

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL CHECK (start_value < minimum_value),
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL
) sequence=1;


# Virtual field

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
CREATE TABLE t1 (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) generated always as (1) virtual
) sequence=1;

drop sequence if exists t1;

#
# DROP SEQUENCE
#

create sequence t1;
create sequence t2;
create table t3 (a int) engine=myisam;
select table_catalog, table_schema, table_name, table_type from information_schema.tables where table_catalog="test";

CREATE SEQUENCE s1;
drop sequence s1;

drop sequence if exists t1,t2,t3,t4;
drop table if exists t1,t2,t3;

CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
CREATE SEQUENCE s1;
drop table t1,t2,s1;

CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
CREATE SEQUENCE s1;
drop table if exists t1,t2,s1,s2;

CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
CREATE SEQUENCE s1;
--error ER_NOT_SEQUENCE2
drop sequence t1,t2,s1,s2;
drop table if exists t1,t2;

CREATE TABLE t1 (a int);
CREATE TABLE t2 (a int);
CREATE SEQUENCE s1;
drop sequence if exists t1,t2,s1,s2;
drop table if exists t1,t2;

CREATE TEMPORARY SEQUENCE s1;
DROP SEQUENCE s1;
--error ER_UNKNOWN_SEQUENCES
DROP TEMPORARY SEQUENCE s1;

CREATE TEMPORARY SEQUENCE s1;
CREATE SEQUENCE s2;
CREATE TEMPORARY TABLE t1 (a int);
CREATE TABLE t2 (a int);
--error ER_UNKNOWN_SEQUENCES
DROP TEMPORARY SEQUENCE t1,t2,s1,s2;
--error ER_UNKNOWN_SEQUENCES
DROP TEMPORARY SEQUENCE s1;
DROP TEMPORARY TABLE t1;
--error ER_BAD_TABLE_ERROR
DROP TABLE t1,t2,s1,s2;

create view v1 as (select 1);
CREATE SEQUENCE s1;
--error ER_IT_IS_A_VIEW
DROP SEQUENCE s1,v1;
drop view v1;

#
# CREATE TEMPORARY SEQUENCE
#

--disable_ps2_protocol
CREATE TEMPORARY SEQUENCE t1;
select next value for t1;
drop temporary table t1;
--error ER_UNKNOWN_SEQUENCES
select previous value for t1;
CREATE SEQUENCE t1 start with 1 minvalue 1 maxvalue 10 increment by 1 cache 10;
select next value for t1;
select previous value for t1;
CREATE TEMPORARY SEQUENCE t1 start with 100 minvalue 100 maxvalue 200 increment by 1 cache 10;
select previous value for t1;
select next value for t1;
select previous value for t1;
drop temporary sequence t1;
select previous value for t1;
drop sequence t1;

CREATE TEMPORARY SEQUENCE t1 engine=innodb;
select next value for t1;
drop temporary table t1;
--error ER_UNKNOWN_SEQUENCES
select previous value for t1;
CREATE SEQUENCE t1 start with 1 minvalue 1 maxvalue 10 increment by 1 cache 10 engine=innodb;
select next value for t1;
select previous value for t1;
CREATE TEMPORARY SEQUENCE t1 start with 100 minvalue 100 maxvalue 200 increment by 1 cache 10 engine=innodb;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
select previous value for t1;
select next value for t1;
select previous value for t1;
drop temporary sequence t1;
select previous value for t1;
drop sequence t1;
--enable_ps2_protocol

#
# Check that we can't create anything with the sequence engine
#

--error ER_UNKNOWN_STORAGE_ENGINE
create table t1 (a int) engine=sql_sequence;

--echo #
--echo # MDEV-13711 assertion on CREATE LIKE fix
--echo #

create sequence s;
create table t like s;
show create table t;
show create sequence t;
drop tables t, s;

--echo #
--echo # MDEV-13714 SEQUENCE option fix
--echo #

create or replace table s (
  `next_value` bigint(21) not null,
  `min_value` bigint(21) not null,
  `max_value` bigint(21) not null,
  `start` bigint(21) not null,
  `increment` bigint(21) not null,
  `cache` bigint(21) not null,
  `cycle` tinyint(1) unsigned not null,
  `round` bigint(21) not null)
sequence=0;

create or replace table s2 (
  `next_value` bigint(21) not null,
  `min_value` bigint(21) not null,
  `max_value` bigint(21) not null,
  `start` bigint(21) not null,
  `increment` bigint(21) not null,
  `cache` bigint(21) not null,
  `cycle` tinyint(1) unsigned not null,
  `round` bigint(21) not null)
sequence=default;

show create table s;
show create table s2;
--error ER_NOT_SEQUENCE
show create sequence s;
--error ER_NOT_SEQUENCE
show create sequence s2;
drop table s,s2;

--echo #
--echo # MDEV-13721 Assertion is_lock_owner() failed in mysql_rm_table_no_locks
--echo #

create or replace sequence s;
create temporary table s (i int);
drop sequence s;
show create table s;
drop table s;

create or replace sequence s;
create temporary sequence s;
show create table s;
drop sequence s;
show create table s;
drop table s;

create or replace sequence s;
create temporary sequence s;
drop temporary sequence s;
show create table s;
drop table s;

create temporary sequence s;
drop temporary table s;
create temporary table s (i int);
--error ER_UNKNOWN_SEQUENCES
drop temporary sequence s;
drop table s;

--echo #
--echo # MDEV-15115 Assertion failure in CREATE SEQUENCE...ROW_FORMAT=REDUNDANT
--echo #
CREATE SEQUENCE seq1 ENGINE=InnoDB ROW_FORMAT=REDUNDANT;

--replace_column 1 # 5 #
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME='test/seq1';

DROP SEQUENCE seq1;
CREATE TEMPORARY SEQUENCE seq1 ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
DROP TEMPORARY SEQUENCE seq1;

--echo #
--echo # MDEV-17503 CREATE SEQUENCE failed with innodb_force_primary_key =1
--echo #

set global innodb_force_primary_key =1;
CREATE SEQUENCE s1 START WITH 100 INCREMENT BY 10 ENGINE=innodb;
set global innodb_force_primary_key=default;
--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
ALTER TABLE s1 ADD PRIMARY KEY (next_not_cached_value);
DROP SEQUENCE s1;

--echo #
--echo # Beginning of 10.4 Test
--echo #
--echo # MDEV-13005: Fixing bugs in SEQUENCE, part 3
--echo #

--echo # Task 1:
--error ER_UNKNOWN_SEQUENCES
SET @x = PREVIOUS VALUE FOR x;

--echo # Task 2:
--error ER_SEQUENCE_INVALID_DATA
CREATE SEQUENCE x START WITH 1 INCREMENT BY 123456789012345678;

--echo # Task 3:
--error ER_SEQUENCE_INVALID_DATA
CREATE SEQUENCE seq1 START WITH 1 cache -1;

--echo # Task 4:
CREATE TEMPORARY TABLE s1 (s1 INT);
--error ER_UNKNOWN_SEQUENCES
DROP TEMPORARY SEQUENCE s1;
DROP TEMPORARY TABLE s1;

--echo # Task 5:
CREATE TEMPORARY TABLE s1 (s1 INT);
--error ER_PARSE_ERROR
CREATE TEMPORARY SEQUENCE s1 (s1 INT);
DROP TEMPORARY TABLE s1;

--echo # Task 6:
CREATE SEQUENCE seq1 START WITH 2;
--error ER_TRG_ON_VIEW_OR_TEMP_TABLE
CREATE TRIGGER s1 BEFORE UPDATE ON seq1 FOR EACH ROW SET @a= 5;
DROP SEQUENCE seq1;

--echo #
--echo # MDEV-29771: Server crashes in check_sequence_fields upon
--echo # CREATE TABLE .. SEQUENCE=1 AS SELECT ..
--echo #

--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
create table s sequence=1 as select 1;

--echo #
--echo # End of 10.4 test
--echo #

--echo #
--echo # Ensure that SHOW CREATE TABLE shows used table options
--echo #

SET @@innodb_compression_default=ON;
CREATE TABLE seq (
  `next_not_cached_value` bigint(21) NOT NULL,
  `minimum_value` bigint(21) NOT NULL,
  `maximum_value` bigint(21) NOT NULL,
  `start_value` bigint(21) NOT NULL,
  `increment` bigint(21) NOT NULL,
  `cache_size` bigint(21) unsigned NOT NULL,
  `cycle_option` tinyint(1) unsigned NOT NULL,
  `cycle_count` bigint(21) NOT NULL
) engine=innodb,sequence=1;
show create sequence seq;
show create table seq;
drop sequence seq;
SET @@innodb_compression_default=DEFAULT;

Youez - 2016 - github.com/yon3zu
LinuXploit