Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
11.8.0
-
None
Description
mariadb-check does not return warning for incorrect sequence (has two recods) with engine InnoDB
Create table with engine InnoDB and convert it into sequence:
CREATE TABLE `s1` ( |
`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 COMMENT 'start value when sequences is created or value if RESTART is used', |
`increment` bigint(21) NOT NULL COMMENT 'increment value', |
`cache_size` bigint(21) unsigned NOT NULL, |
`cycle_option` tinyint(1) unsigned NOT NULL COMMENT '0 if no cycles are allowed, 1 if the sequence should begin a new cycle when maximum_value is passed', |
`cycle_count` bigint(21) NOT NULL COMMENT 'How many cycles have been done' |
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci; |
|
insert into s1 values (1,1,9223372036854775806,1,1,1000,0,0); |
insert into s1 values (2,1,9223372036854775806,1,1,1000,0,0); |
|
alter table s1 sequence=1; |
MariaDB [test]> select * from s1; |
+-----------------------+---------------+---------------------+-------------+-----------+------------+--------------+-------------+ |
| next_not_cached_value | minimum_value | maximum_value | start_value | increment | cache_size | cycle_option | cycle_count |
|
+-----------------------+---------------+---------------------+-------------+-----------+------------+--------------+-------------+ |
| 1 | 1 | 9223372036854775806 | 1 | 1 | 1000 | 0 | 0 |
|
+-----------------------+---------------+---------------------+-------------+-----------+------------+--------------+-------------+ |
1 row in set (0,002 sec) |
mariadb-check does not show any warnings
mariadb-check --databases test |
test.s1 OK
|
If you change the type from sequence to table, you can see that the table still has two records:
MariaDB [test]> alter table s1 sequence=0; |
Query OK, 0 rows affected (0,003 sec) |
Records: 0 Duplicates: 0 Warnings: 0
|
|
MariaDB [test]> select * from s1; |
+-----------------------+---------------+---------------------+-------------+-----------+------------+--------------+-------------+ |
| next_not_cached_value | minimum_value | maximum_value | start_value | increment | cache_size | cycle_option | cycle_count |
|
+-----------------------+---------------+---------------------+-------------+-----------+------------+--------------+-------------+ |
| 1 | 1 | 9223372036854775806 | 1 | 1 | 1000 | 0 | 0 |
|
| 2 | 1 | 9223372036854775806 | 1 | 1 | 1000 | 0 | 0 |
|
+-----------------------+---------------+---------------------+-------------+-----------+------------+--------------+-------------+ |
2 rows in set (0,003 sec) |
In a similar situation for Aria and MyISAM warning is shown:
MariaDB [test]> select TABLE_NAME, TABLE_TYPE , ENGINE from information_schema.tables where table_schema='test'; |
+------------+------------+--------+ |
| TABLE_NAME | TABLE_TYPE | ENGINE |
|
+------------+------------+--------+ |
| s1 | SEQUENCE | InnoDB | |
| s2 | SEQUENCE | MyISAM | |
+------------+------------+--------+ |
mariadb-check --databases test |
test.s1 OK
|
test.s2
|
Warning : More than one row in the table |
status : OK
|
Attachments
Issue Links
- is blocked by
-
MDEV-36032 Check when doing ALTER TABLE table_name sequence=1 that table can be a sequence
-
- Closed
-
- is caused by
-
MDEV-22491 Support mariadb-check and CHECK TABLE with SEQUENCE
-
- Closed
-
- relates to
-
MDEV-36038 ALTER TABLE…SEQUENCE does not work correctly with InnoDB
-
- Closed
-
-
MDEV-36487 Fix ha_innobase::check() for sequences
-
- Open
-