mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
616fd55753
Bug#25347: mysqlcheck -A -r doesn't repair table marked as crashed mysqlcheck tests nullness of the engine type to know whether the "table" is a view or not. That also falsely catches tables that are severly damaged. Instead, use SHOW FULL TABLES to test whether a "table" is a view or not. (Don't add new function. Instead, get original data a smarter way.) Make it safe for use against databases before when views appeared. client/mysqlcheck.c: Use SHOW FULL TABLES to test better whether a name in the table list is one of a view. Checking that the engine is NULL is insufficient. Implemented suggestion from jimw that involved removing most of original patch and getting data a better way mysql-test/r/mysqlcheck.result: Verify that tables that have NULL/unreadable engine types are processed and not interpreted as views. mysql-test/t/mysqlcheck.test: Verify that tables that have NULL/unreadable engine types are processed and not interpreted as views.
59 lines
1.8 KiB
Text
59 lines
1.8 KiB
Text
# Clean up after previous tests
|
|
#
|
|
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1, `t``1`, `t 1`;
|
|
drop view if exists v1;
|
|
drop database if exists client_test_db;
|
|
--enable_warnings
|
|
|
|
# Embedded server doesn't support external clients
|
|
--source include/not_embedded.inc
|
|
|
|
#
|
|
# Bug #13783 mysqlcheck tries to optimize and analyze information_schema
|
|
#
|
|
--replace_result 'Table is already up to date' OK
|
|
--exec $MYSQL_CHECK --all-databases --analyze --optimize
|
|
--replace_result 'Table is already up to date' OK
|
|
--exec $MYSQL_CHECK --analyze --optimize --databases test information_schema mysql
|
|
--exec $MYSQL_CHECK --analyze --optimize information_schema schemata
|
|
|
|
#
|
|
# Bug #16502: mysqlcheck tries to check views
|
|
#
|
|
create table t1 (a int);
|
|
create view v1 as select * from t1;
|
|
--replace_result 'Table is already up to date' OK
|
|
--exec $MYSQL_CHECK --analyze --optimize --databases test
|
|
--replace_result 'Table is already up to date' OK
|
|
--exec $MYSQL_CHECK --all-in-1 --analyze --optimize --databases test
|
|
drop view v1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Bug #30654: mysqlcheck fails during upgrade of tables whose names include backticks
|
|
#
|
|
create table `t``1`(a int);
|
|
create table `t 1`(a int);
|
|
--replace_result 'Table is already up to date' OK
|
|
--exec $MYSQL_CHECK --databases test
|
|
drop table `t``1`, `t 1`;
|
|
|
|
#
|
|
# Bug#25347: mysqlcheck -A -r doesn't repair table marked as crashed
|
|
#
|
|
create database d_bug25347;
|
|
use d_bug25347;
|
|
create table t_bug25347 (a int);
|
|
create view v_bug25347 as select * from t_bug25347;
|
|
--echo removing and creating
|
|
--exec rm $MYSQLTEST_VARDIR/master-data/d_bug25347/t_bug25347.MYI;
|
|
--exec touch $MYSQLTEST_VARDIR/master-data/d_bug25347/t_bug25347.MYI;
|
|
--exec $MYSQL_CHECK --repair --databases d_bug25347
|
|
drop view v_bug25347;
|
|
drop table t_bug25347;
|
|
drop database d_bug25347;
|
|
use test;
|
|
|
|
--echo End of 5.0 tests
|