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
|