# 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