152 lines
4.0 KiB
Plaintext
152 lines
4.0 KiB
Plaintext
--disable_query_log
|
|
eval INSTALL PLUGIN mock SONAME '$MOCK_PLUGIN';
|
|
--enable_query_log
|
|
|
|
--echo #
|
|
--echo # Load into and unload from secondary engine.
|
|
--echo #
|
|
CREATE TABLE t1 (a INT) SECONDARY_ENGINE MOCK;
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
ALTER TABLE t1 SECONDARY_UNLOAD;
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Attempt to load and unload table with no secondary engine.
|
|
--echo #
|
|
CREATE TABLE t1 (a INT);
|
|
--error ER_SECONDARY_ENGINE
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
--error ER_SECONDARY_ENGINE
|
|
ALTER TABLE t1 SECONDARY_UNLOAD;
|
|
ALTER TABLE t1 SECONDARY_ENGINE NULL;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Attempt to unload temporary table with no secondary engine.
|
|
--echo #
|
|
CREATE TEMPORARY TABLE t1 (a INT);
|
|
--error ER_SECONDARY_ENGINE
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
--error ER_SECONDARY_ENGINE
|
|
ALTER TABLE t1 SECONDARY_UNLOAD;
|
|
ALTER TABLE t1 SECONDARY_ENGINE NULL;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Attempt to load into secondary engine in conjunction with other DDL
|
|
--echo # operations.
|
|
--echo #
|
|
CREATE TABLE t1 (a INT) SECONDARY_ENGINE MOCK;
|
|
--error ER_PARSE_ERROR
|
|
ALTER TABLE t1 SECONDARY_LOAD, FORCE;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Perform alterations related to secondary engine using differing
|
|
--echo # algorithms.
|
|
--echo #
|
|
CREATE TABLE t1 (a INT) SECONDARY_ENGINE MOCK;
|
|
--error ER_PARSE_ERROR
|
|
ALTER TABLE t1 SECONDARY_LOAD, ALGORITHM=INPLACE;
|
|
--error ER_PARSE_ERROR
|
|
ALTER TABLE t1 SECONDARY_UNLOAD, ALGORITHM=INPLACE;
|
|
--error ER_PARSE_ERROR
|
|
ALTER TABLE t1 SECONDARY_LOAD, ALGORITHM=COPY;
|
|
--error ER_PARSE_ERROR
|
|
ALTER TABLE t1 SECONDARY_UNLOAD, ALGORITHM=COPY;
|
|
ALTER TABLE t1 SECONDARY_ENGINE NULL, ALGORITHM=INPLACE;
|
|
ALTER TABLE t1 SECONDARY_ENGINE MOCK, ALGORITHM=INPLACE;
|
|
ALTER TABLE t1 SECONDARY_ENGINE NULL, ALGORITHM=COPY;
|
|
ALTER TABLE t1 SECONDARY_ENGINE MOCK, ALGORITHM=COPY;
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Load and unload a table in one session while another session
|
|
--echo # accesses the table concurrently.
|
|
--echo #
|
|
CREATE TABLE t1 (a INT) SECONDARY_ENGINE MOCK;
|
|
--disable_query_log
|
|
--disable_result_log
|
|
connect(con1, localhost, root);
|
|
let $i = 0;
|
|
while ($i < 10) {
|
|
inc $i;
|
|
connection con1;
|
|
--send ALTER TABLE t1 SECONDARY_LOAD; ALTER TABLE t1 SECONDARY_UNLOAD
|
|
connection default;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t1;
|
|
connection con1;
|
|
reap;
|
|
}
|
|
disconnect con1;
|
|
connection default;
|
|
--enable_query_log
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Attempt to LOCK TABLE before loading a table into secondary engine.
|
|
--echo #
|
|
CREATE TABLE t1 (a INT) SECONDARY_ENGINE MOCK;
|
|
LOCK TABLES t1 WRITE;
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
ALTER TABLE t1 SECONDARY_UNLOAD;
|
|
UNLOCK TABLES;
|
|
LOCK TABLES t1 READ;
|
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
|
ALTER TABLE t1 SECONDARY_UNLOAD;
|
|
LOCK TABLES t1 WRITE;
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
ALTER TABLE t1 SECONDARY_UNLOAD;
|
|
UNLOCK TABLES;
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
ALTER TABLE t1 SECONDARY_UNLOAD;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Bug#28835066: Table not unloaded with SECONDARY_ENGINE = NULL
|
|
--echo #
|
|
CREATE TABLE t1 (a INT) SECONDARY_ENGINE MOCK;
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
ALTER TABLE t1 SECONDARY_ENGINE NULL;
|
|
ALTER TABLE t1 SECONDARY_ENGINE MOCK;
|
|
FLUSH STATUS;
|
|
SELECT * FROM t1;
|
|
SHOW SESSION STATUS LIKE 'Secondary_engine_execution_count';
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Exclude some columns from secondary engine.
|
|
--echo #
|
|
CREATE TABLE t1 (
|
|
a INT,
|
|
b INT NOT SECONDARY,
|
|
c INT,
|
|
d INT NOT SECONDARY
|
|
) SECONDARY_ENGINE MOCK;
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Attempt to exclude all columns from secondary engine.
|
|
--echo #
|
|
CREATE TABLE t1 (a INT NOT SECONDARY, b INT NOT SECONDARY) SECONDARY_ENGINE MOCK;
|
|
CREATE TABLE t2 (a INT NOT SECONDARY, KEY i ((a < 10))) SECONDARY_ENGINE MOCK;
|
|
--error ER_SECONDARY_ENGINE
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
--error ER_SECONDARY_ENGINE
|
|
ALTER TABLE t2 SECONDARY_LOAD;
|
|
DROP TABLE t1, t2;
|
|
|
|
--disable_query_log
|
|
UNINSTALL PLUGIN mock;
|
|
--enable_query_log
|