mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 21:25:45 +01:00
CHECK TABLE was inconsistently requiring SELECT privilege on global/db level or any privilege on the table/column level. Change to require any table-applicable privilege on any level.
73 lines
2.1 KiB
Text
73 lines
2.1 KiB
Text
connect con1,localhost,root,,;
|
|
connect con2,localhost,root,,;
|
|
connection con1;
|
|
create table t1(n int not null, key(n), key(n), key(n), key(n));
|
|
Warnings:
|
|
Note 1831 Duplicate index `n_2`. This is deprecated and will be disallowed in a future release
|
|
Note 1831 Duplicate index `n_3`. This is deprecated and will be disallowed in a future release
|
|
Note 1831 Duplicate index `n_4`. This is deprecated and will be disallowed in a future release
|
|
check table t1 extended;
|
|
connection con2;
|
|
insert into t1 values (200000);
|
|
connection con1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
connection default;
|
|
disconnect con1;
|
|
disconnect con2;
|
|
drop table t1;
|
|
Create table t1(f1 int);
|
|
Create table t2(f1 int);
|
|
Create view v1 as Select * from t1;
|
|
Check Table v1,t2;
|
|
Table Op Msg_type Msg_text
|
|
test.v1 check status OK
|
|
test.t2 check status OK
|
|
drop view v1;
|
|
drop table t1, t2;
|
|
CREATE TEMPORARY TABLE t1(a INT);
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
REPAIR TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
DROP TABLE t1;
|
|
#
|
|
# Bug#56422 CHECK TABLE run when the table is locked reports corruption
|
|
# along with timeout
|
|
#
|
|
CREATE TABLE t1(a INT);
|
|
LOCK TABLE t1 WRITE;
|
|
connect con1, localhost, root;
|
|
SET lock_wait_timeout= 1;
|
|
CHECK TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check Error Lock wait timeout exceeded; try restarting transaction
|
|
test.t1 check status Operation failed
|
|
connection default;
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
disconnect con1;
|
|
#
|
|
# MDEV-37971 CHECK TABLE command can be executed by users with the table-level CREATE but not with global CREATE
|
|
#
|
|
create table t1 (a int);
|
|
create user table_level_priv;
|
|
create user global_level_priv;
|
|
grant create on *.* to global_level_priv;
|
|
grant create on test.t1 to table_level_priv;
|
|
connect g,localhost,global_level_priv;
|
|
check table test.t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
connect t,localhost,table_level_priv;
|
|
check table test.t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
disconnect g;
|
|
disconnect t;
|
|
connection default;
|
|
drop table t1;
|
|
drop user table_level_priv, global_level_priv;
|
|
# End of 10.11 tests
|