polardbxengine/mysql-test/t/mysqlpump.test

190 lines
7.8 KiB
Plaintext

# Created: 2015-05-15 Lalit Choudhary
--source include/big_test.inc
--echo #
--echo # WL#7755 mysqlpump: Extend mysqldump functionalities with mysqldump option.
--echo #
# Creating DB's and populating different types of data init for MYSQLPUMP testing.
-- source include/mysqlpump_stmt.inc
--echo # basic testing
--exec $MYSQL_PUMP --default-parallelism=1 --parallel-schemas=3:db1,db2 --parallel-schemas=5:db3,bd1_1gb --databases db1 db2 db3 db1_1gb > $MYSQLTEST_VARDIR/tmp/full_bkp.sql
DROP DATABASE db1;
DROP DATABASE db2;
DROP DATABASE db3;
DROP DATABASE db1_1gb;
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/full_bkp.sql
USE db1;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db1' AND TABLE_TYPE= 'BASE TABLE'
ORDER BY TABLE_NAME;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db1' AND TABLE_TYPE= 'VIEW'
ORDER BY TABLE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db1' AND ROUTINE_TYPE= 'PROCEDURE'
ORDER BY ROUTINE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db1' AND ROUTINE_TYPE= 'FUNCTION'
ORDER BY ROUTINE_NAME;
SELECT EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS
WHERE EVENT_SCHEMA='db1' ORDER BY EVENT_NAME;
SELECT TRIGGER_NAME FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA='db1' ORDER BY TRIGGER_NAME;
USE db2;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db2' AND TABLE_TYPE= 'BASE TABLE'
ORDER BY TABLE_NAME;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db2' AND TABLE_TYPE= 'VIEW'
ORDER BY TABLE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db2' AND ROUTINE_TYPE= 'PROCEDURE'
ORDER BY ROUTINE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db2' AND ROUTINE_TYPE= 'FUNCTION'
ORDER BY ROUTINE_NAME;
USE db3;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db3' AND TABLE_TYPE= 'BASE TABLE'
ORDER BY TABLE_NAME;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db3' AND TABLE_TYPE= 'VIEW'
ORDER BY TABLE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db3' AND ROUTINE_TYPE= 'PROCEDURE'
ORDER BY ROUTINE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db3' AND ROUTINE_TYPE= 'FUNCTION'
ORDER BY ROUTINE_NAME;
SELECT EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS
WHERE EVENT_SCHEMA='db3' ORDER BY EVENT_NAME;
SELECT TRIGGER_NAME FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA='db3' ORDER BY TRIGGER_NAME;
USE db1_1gb;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db1_1gb' AND TABLE_TYPE= 'BASE TABLE'
ORDER BY TABLE_NAME;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='db1_1gb' AND TABLE_TYPE= 'VIEW'
ORDER BY TABLE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db1_1gb' AND ROUTINE_TYPE= 'PROCEDURE'
ORDER BY ROUTINE_NAME;
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='db1_1gb' AND ROUTINE_TYPE= 'FUNCTION'
ORDER BY ROUTINE_NAME;
SELECT EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS
WHERE EVENT_SCHEMA='db1_1gb' ORDER BY EVENT_NAME;
SELECT TRIGGER_NAME FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA='db1_1gb' ORDER BY TRIGGER_NAME;
--echo
# parallel-schemas option testing
--exec $MYSQL_PUMP --parallel-schemas=2:db1 --include-databases=db1 --add-drop-database --add-drop-table --skip-dump-rows > $MYSQLTEST_VARDIR/tmp/output_file_1.sql
--exec $MYSQL_PUMP --parallel-schemas=3:db1_1gb --databases db1_1gb -d --max-allowed-packet=25MB > $MYSQLTEST_VARDIR/tmp/output_file_2.sql
--exec $MYSQL_PUMP --parallel-schemas=db3 -B db3 db1 --routines --events --triggers --protocol=tcp > $MYSQLTEST_VARDIR/tmp/output_file_4.sql
DROP DATABASE db1;
DROP DATABASE db3;
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/output_file_4.sql
--exec $MYSQL_PUMP --default-parallelism=7 --parallel-schemas=5:db1,db2 --all-databases --skip-dump-rows > $MYSQLTEST_VARDIR/tmp/output_file_5.sql
# --compress-output testing
--exec $MYSQL_PUMP --default-parallelism=1 --parallel-schemas=3:db1 --include-databases=db1,db2 --compress-output=LZ4 > $MYSQLTEST_VARDIR/tmp/output_file_6.sql
--exec $MYSQL_PUMP --parallel-schemas=3:db2 --include-databases=db2 --compress-output=ZLIB > $MYSQLTEST_VARDIR/tmp/output_file_7.sql
--exec $MYSQL_PUMP --host=localhost --include-databases=db1_1gb --parallel-schemas=2:db1_1gb --complete-insert --compress --default-character-set=utf8 > $MYSQLTEST_VARDIR/tmp/output_file_8.sql
--exec $MYSQL_PUMP --parallel-schemas=1:db1_1gb --include-databases=db1_1gb --extended-insert=10 > $MYSQLTEST_VARDIR/tmp/output_file_9.sql
--exec $MYSQL_PUMP --parallel-schemas=3:db1_1gb --include-databases=db1_1gb --insert-ignore > $MYSQLTEST_VARDIR/tmp/output_file_10.sql
--exec $MYSQL_PUMP --parallel-schemas=2:db1 --include-databases=db1 --no-create-db --no-create-info --triggers --routines --events --max-allowed-packet=30M > $MYSQLTEST_VARDIR/tmp/output_file_11.sql
--exec $MYSQL_PUMP --parallel-schemas=2:db1_1gb --include-databases=db1_1gb --replace > $MYSQLTEST_VARDIR/tmp/output_file_12.sql
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp/ output_file*
# Cleanup
DROP DATABASE db1;
DROP DATABASE db2;
DROP DATABASE db3;
DROP DATABASE db1_1gb;
--remove_file $MYSQLTEST_VARDIR/tmp/full_bkp.sql
#
# Bug #21534277: MYSQLPUMP HAS NO --VERSION OPTION
#
--exec $MYSQL_PUMP --version 2>&1 > $MYSQLTEST_VARDIR/tmp/output_file.txt
--remove_file $MYSQLTEST_VARDIR/tmp/output_file.txt
#
# Bug #25469190: MYSQLPUMP SHOULD EXCLUDE REPLICATION
# REPOSITORY METADATA TABLES
#
SHOW VARIABLES LIKE "master_info_repository";
SHOW VARIABLES LIKE "relay_log_info_repository";
SET GLOBAL master_info_repository= 'FILE';
#SET GLOBAL relay_log_info_repository= 'FILE';
SHOW VARIABLES LIKE "master_info_repository";
SHOW VARIABLES LIKE "relay_log_info_repository";
--exec $MYSQL_PUMP --include-databases=mysql > $MYSQLTEST_VARDIR/tmp/bug25469190.sql
# Search for mysql.slave_master_info in the dump file
--let SEARCH_FILE= $MYSQLTEST_VARDIR/tmp/bug25469190.sql
--let SEARCH_PATTERN= CREATE TABLE `mysql`.`slave_master_info`
--source include/search_pattern.inc
# Search for mysql.slave_relay_log_info in the dump file
--let SEARCH_FILE= $MYSQLTEST_VARDIR/tmp/bug25469190.sql
--let SEARCH_PATTERN= CREATE TABLE `mysql`.`slave_relay_log_info`
--source include/search_pattern.inc
SET GLOBAL master_info_repository= 'TABLE';
SET GLOBAL relay_log_info_repository= 'TABLE';
SHOW VARIABLES LIKE "master_info_repository";
SHOW VARIABLES LIKE "relay_log_info_repository";
# Cleanup
--remove_file $SEARCH_FILE
--echo #
--echo # Dump a table that has column statistics
--echo #
CREATE SCHEMA column_statistics_dump;
USE column_statistics_dump;
CREATE TABLE t1 (col1 INT);
INSERT INTO t1 VALUES (1), (2);
ANALYZE TABLE t1 UPDATE HISTOGRAM ON col1 WITH 22 BUCKETS;
--echo # Verify that the number of buckets specified (22) is also present in the
--echo # dump file.
SELECT schema_name, table_name, column_name,
JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')
FROM information_schema.COLUMN_STATISTICS;
--let $assert_file= $MYSQLTEST_VARDIR/tmp/output_file.sql
--exec $MYSQL_PUMP --column-statistics column_statistics_dump t1 > $assert_file
--let $assert_select= \/\*!80002 ANALYZE TABLE `column_statistics_dump`.`t1` UPDATE HISTOGRAM ON `col1` WITH 22 BUCKETS \*\/;
--let $assert_count= 1
--let $assert_text= Check for ANALYZE TABLE with histogram clause
--source include/assert_grep.inc
--remove_file $MYSQLTEST_VARDIR/tmp/output_file.sql
DROP SCHEMA column_statistics_dump;
# END OF TEST