mariadb/mysql-test/suite/sql_sequence/check.result
Yuchen Pei 495d96709f
MDEV-35866 CHECK TABLE get number of rows without HA_STATS_RECORDS_IS_EXACT
Call ha_rnd_init followed by two ha_rnd_next's to find whether there
is more than one row.
2025-05-05 11:36:56 +10:00

143 lines
3.8 KiB
Text

create sequence s;
call mtr.add_suppression("ha_myisam");
call mtr.add_suppression("Checking table");
check table s;
Table Op Msg_type Msg_text
test.s check error Size of datafile is: 4 Should be: 58
test.s check error Corrupt
drop table s;
create sequence s;
insert into s values (3,1,9223372036854775806,1,1,1000,0,0);
select * from s;
next_not_cached_value minimum_value maximum_value start_value increment cache_size cycle_option cycle_count
3 1 9223372036854775806 1 1 1000 0 0
check table s;
Table Op Msg_type Msg_text
test.s check status OK
select nextval(s);
nextval(s)
3
drop sequence s;
CREATE SEQUENCE s;
ALTER TABLE s sequence=0;
insert into s values (3,1,9223372036854775806,1,1,1000,0,0);
FLUSH TABLES;
CHECK TABLE s;
Table Op Msg_type Msg_text
test.s check Warning More than one row in the table
test.s check status OK
DROP SEQUENCE s;
CREATE SEQUENCE s;
ALTER TABLE s sequence=0;
delete from s;
FLUSH TABLES;
CHECK TABLE s;
Table Op Msg_type Msg_text
test.s check Error Fewer than one row in the table
test.s check error Corrupt
DROP SEQUENCE s;
CREATE SEQUENCE s;
ALTER TABLE s sequence=0;
update s set minimum_value=200, maximum_value=100;
FLUSH TABLES;
CHECK TABLE s;
Table Op Msg_type Msg_text
test.s check Error Sequence 'test.s' has out of range value for options
test.s check error Corrupt
DROP SEQUENCE s;
create sequence s minvalue 13 maxvalue 15 increment by 4;
check table s;
Table Op Msg_type Msg_text
test.s check status OK
select nextval(s);
nextval(s)
13
check table s;
Table Op Msg_type Msg_text
test.s check Warning Sequence 'test.s' has run out
test.s check status OK
alter sequence s cycle;
check table s;
Table Op Msg_type Msg_text
test.s check status OK
alter sequence s nocycle;
check table s;
Table Op Msg_type Msg_text
test.s check Warning Sequence 'test.s' has run out
test.s check status OK
alter sequence s increment by 1;
check table s;
Table Op Msg_type Msg_text
test.s check Warning Sequence 'test.s' has run out
test.s check status OK
alter sequence s increment by 4;
select nextval(s);
ERROR HY000: Sequence 'test.s' has run out
alter sequence s cycle;
check table s;
Table Op Msg_type Msg_text
test.s check status OK
alter sequence s maxvalue 23 nocycle;
check table s;
Table Op Msg_type Msg_text
test.s check status OK
alter sequence s maxvalue 15;
check table s;
Table Op Msg_type Msg_text
test.s check Warning Sequence 'test.s' has run out
test.s check status OK
drop sequence s;
create sequence s minvalue 13 maxvalue 20 increment by 1;
select nextval(s);
nextval(s)
13
check table s;
Table Op Msg_type Msg_text
test.s check status OK
select nextval(s);
nextval(s)
14
drop sequence s;
create sequence s minvalue 13 maxvalue 20 increment by 1;
select nextval(s);
nextval(s)
13
alter table s sequence=0;
alter table s sequence=1;
check table s;
Table Op Msg_type Msg_text
test.s check Warning Sequence 'test.s' has run out
test.s check status OK
select nextval(s);
ERROR HY000: Sequence 'test.s' has run out
drop sequence s;
create sequence s;
update s set minimum_value=500, maximum_value=200;
ERROR HY000: Storage engine SEQUENCE of the table `test`.`s` doesn't have this option
drop sequence s;
#
# MDEV-35866 mariadb-check does not return warning for incorrect sequence with engine InnoDB
#
CREATE SEQUENCE s engine=innodb;
ALTER TABLE s sequence=0;
delete from s;
FLUSH TABLES;
CHECK TABLE s;
Table Op Msg_type Msg_text
test.s check Error Fewer than one row in the table
test.s check error Corrupt
DROP SEQUENCE s;
CREATE SEQUENCE s engine=innodb;
CHECK TABLE s;
Table Op Msg_type Msg_text
test.s check status OK
DROP SEQUENCE s;
CREATE SEQUENCE s engine=innodb;
ALTER TABLE s sequence=0;
insert into s values (2,1,9223372036854775806,1,1,1000,0,0);
FLUSH TABLES;
CHECK TABLE s;
Table Op Msg_type Msg_text
test.s check Warning More than one row in the table
test.s check status OK
DROP SEQUENCE s;