summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-08-13 18:57:00 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2019-08-13 18:57:00 +0300
commit624dd71b9419555eca8baadc695e3376de72286f (patch)
tree31aaab8aeac43f921638407ab82190dd05a72793 /mysql-test
parentd4d865fcc8083782b6e4419c69bec372cd0b4142 (diff)
parente9c1701e11e2441435223cc7c00c467f58aaff19 (diff)
downloadmariadb-git-624dd71b9419555eca8baadc695e3376de72286f.tar.gz
Merge 10.4 into 10.5
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/binlog_parallel_replication_marks.test9
-rw-r--r--mysql-test/include/force_restart.inc14
-rw-r--r--mysql-test/include/galera_resume.inc (renamed from mysql-test/suite/galera_3nodes/include/galera_resume.inc)0
-rw-r--r--mysql-test/include/have_file_key_management.inc (renamed from mysql-test/suite/mariabackup/include/have_file_key_management.inc)0
-rw-r--r--mysql-test/include/have_garbd.inc (renamed from mysql-test/suite/galera/include/have_mariabackup.inc)0
-rw-r--r--mysql-test/include/have_mariabackup.inc4
-rw-r--r--mysql-test/include/have_xtrabackup.inc4
-rw-r--r--mysql-test/include/wait_condition_with_debug.inc69
-rw-r--r--mysql-test/lib/My/Config.pm7
-rw-r--r--mysql-test/lib/My/SafeProcess.pm6
-rw-r--r--mysql-test/lib/My/SafeProcess/CMakeLists.txt10
-rw-r--r--mysql-test/lib/My/SafeProcess/wsrep_check_version.c123
-rw-r--r--mysql-test/lib/mtr_report.pm26
-rw-r--r--mysql-test/main/grant.result19
-rw-r--r--mysql-test/main/grant.test29
-rw-r--r--mysql-test/main/join_outer.result34
-rw-r--r--mysql-test/main/join_outer.test23
-rw-r--r--mysql-test/main/join_outer_jcl6.result34
-rw-r--r--mysql-test/main/mysqld--help.result2
-rw-r--r--mysql-test/main/mysqld--help.test2
-rw-r--r--mysql-test/main/mysqldump-compat-102.opt1
-rw-r--r--mysql-test/main/mysqldump-compat-102.result110
-rw-r--r--mysql-test/main/mysqldump-compat-102.test83
-rw-r--r--mysql-test/main/parser.result13
-rw-r--r--mysql-test/main/parser.test14
-rw-r--r--mysql-test/main/repair_symlink-5543.result4
-rw-r--r--mysql-test/main/repair_symlink-5543.test8
-rw-r--r--mysql-test/main/sp.result14
-rw-r--r--mysql-test/main/sp.test20
-rw-r--r--mysql-test/main/tls_version1.opt1
-rw-r--r--mysql-test/main/tls_version1.result6
-rw-r--r--mysql-test/main/tls_version1.test12
-rw-r--r--mysql-test/main/type_datetime.result10
-rw-r--r--mysql-test/main/type_datetime.test10
-rw-r--r--mysql-test/main/type_varchar.result18
-rw-r--r--mysql-test/main/type_varchar.test16
-rwxr-xr-xmysql-test/mysql-test-run.pl309
-rw-r--r--mysql-test/std_data/galera-cert.pem26
-rw-r--r--mysql-test/std_data/galera-key.pem28
-rw-r--r--mysql-test/std_data/galera-upgrade-ca-cert.pem40
-rw-r--r--mysql-test/std_data/galera-upgrade-server-cert.pem20
-rw-r--r--mysql-test/std_data/galera-upgrade-server-key.pem28
-rw-r--r--mysql-test/suite.pm56
-rw-r--r--mysql-test/suite/binlog/include/drop_temp_table.test24
-rw-r--r--mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result16
-rw-r--r--mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result2
-rw-r--r--mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result8
-rw-r--r--mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result2
-rw-r--r--mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result4
-rw-r--r--mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test66
-rw-r--r--mysql-test/suite/encryption/r/debug_key_management.result1
-rw-r--r--mysql-test/suite/encryption/r/innochecksum.result3
-rw-r--r--mysql-test/suite/encryption/r/innodb-encryption-alter.result1
-rw-r--r--mysql-test/suite/encryption/r/innodb_encrypt_log.result2
-rw-r--r--mysql-test/suite/encryption/r/innodb_encrypt_temporary_tables.result19
-rw-r--r--mysql-test/suite/encryption/r/innodb_encryption.result2
-rw-r--r--mysql-test/suite/encryption/t/innochecksum.test5
-rw-r--r--mysql-test/suite/encryption/t/innodb-encryption-alter.test2
-rw-r--r--mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.opt3
-rw-r--r--mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.test22
-rw-r--r--mysql-test/suite/galera/disabled.def22
-rw-r--r--mysql-test/suite/galera/include/have_filekeymanagement.inc3
-rw-r--r--mysql-test/suite/galera/r/GAL-419.result8
-rw-r--r--mysql-test/suite/galera/r/MW-329.result6
-rw-r--r--mysql-test/suite/galera/r/MW-336.result50
-rw-r--r--mysql-test/suite/galera/r/MW-416.result10
-rw-r--r--mysql-test/suite/galera/r/galera_as_slave_gtid.result11
-rw-r--r--mysql-test/suite/galera/r/galera_as_slave_gtid_replicate_do_db_cc.result8
-rw-r--r--mysql-test/suite/galera/r/galera_change_user.result14
-rw-r--r--mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,release.rdiff114
-rw-r--r--mysql-test/suite/galera/r/galera_ist_innodb_flush_logs.result206
-rw-r--r--mysql-test/suite/galera/r/galera_kill_applier.result15
-rw-r--r--mysql-test/suite/galera/r/galera_kill_ddl.result12
-rw-r--r--mysql-test/suite/galera/r/galera_load_data.result42
-rw-r--r--mysql-test/suite/galera/r/galera_log_bin.result102
-rw-r--r--mysql-test/suite/galera/r/galera_log_output_csv.result2
-rw-r--r--mysql-test/suite/galera/r/galera_sst_mysqldump_with_key,debug.rdiff19
-rw-r--r--mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result11
-rw-r--r--mysql-test/suite/galera/r/galera_sync_wait_show.result2
-rw-r--r--mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result31
-rw-r--r--mysql-test/suite/galera/r/galera_var_gtid_domain_id.result9
-rw-r--r--mysql-test/suite/galera/r/galera_var_notify_cmd.result1
-rw-r--r--mysql-test/suite/galera/r/galera_var_slave_threads.result63
-rw-r--r--mysql-test/suite/galera/r/mdev_10518.result9
-rw-r--r--mysql-test/suite/galera/suite.pm49
-rw-r--r--mysql-test/suite/galera/t/GAL-419.test7
-rw-r--r--mysql-test/suite/galera/t/MW-329.test5
-rw-r--r--mysql-test/suite/galera/t/MW-336.cnf7
-rw-r--r--mysql-test/suite/galera/t/MW-336.test121
-rw-r--r--mysql-test/suite/galera/t/MW-416.test8
-rw-r--r--mysql-test/suite/galera/t/galera_as_slave_gtid.test14
-rw-r--r--mysql-test/suite/galera/t/galera_as_slave_gtid_replicate_do_db_cc.test2
-rw-r--r--mysql-test/suite/galera/t/galera_as_slave_nonprim.test1
-rw-r--r--mysql-test/suite/galera/t/galera_autoinc_sst_mariabackup.test1
-rw-r--r--mysql-test/suite/galera/t/galera_binlog_stmt_autoinc.test2
-rw-r--r--mysql-test/suite/galera/t/galera_change_user.test29
-rw-r--r--mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf13
-rw-r--r--mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test13
-rw-r--r--mysql-test/suite/galera/t/galera_kill_applier.test25
-rw-r--r--mysql-test/suite/galera/t/galera_kill_ddl.test13
-rw-r--r--mysql-test/suite/galera/t/galera_load_data.test34
-rw-r--r--mysql-test/suite/galera/t/galera_log_bin.test26
-rw-r--r--mysql-test/suite/galera/t/galera_log_output_csv.test2
-rw-r--r--mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test4
-rw-r--r--mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test4
-rw-r--r--mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test2
-rw-r--r--mysql-test/suite/galera/t/galera_sync_wait_show.test2
-rw-r--r--mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test17
-rw-r--r--mysql-test/suite/galera/t/galera_var_gtid_domain_id.test11
-rw-r--r--mysql-test/suite/galera/t/galera_var_notify_cmd.test2
-rw-r--r--mysql-test/suite/galera/t/galera_var_slave_threads.test147
-rw-r--r--mysql-test/suite/galera/t/mdev_10518.test11
-rw-r--r--mysql-test/suite/galera_3nodes/r/galera_innobackupex_backup.result20
-rw-r--r--mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result1
-rw-r--r--mysql-test/suite/galera_3nodes/suite.pm51
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_garbd.test31
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test80
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test3
-rw-r--r--mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test5
-rw-r--r--mysql-test/suite/galera_sr/r/galera-features#56.result25
-rw-r--r--mysql-test/suite/galera_sr/t/galera-features#56.test17
-rw-r--r--mysql-test/suite/innodb/include/show_i_s_tablespaces.inc2
-rw-r--r--mysql-test/suite/innodb/r/alter_large_dml.result49
-rw-r--r--mysql-test/suite/innodb/r/alter_missing_tablespace.result16
-rw-r--r--mysql-test/suite/innodb/r/blob-crash.result149
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff25
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff25
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff25
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff25
-rw-r--r--mysql-test/suite/innodb/r/check_ibd_filesize.result20
-rw-r--r--mysql-test/suite/innodb/r/create_select.result10
-rw-r--r--mysql-test/suite/innodb/r/foreign-keys.result2
-rw-r--r--mysql-test/suite/innodb/r/innodb-16k.result465
-rw-r--r--mysql-test/suite/innodb/r/innodb-32k-crash.result5
-rw-r--r--mysql-test/suite/innodb/r/innodb-32k.result120
-rw-r--r--mysql-test/suite/innodb/r/innodb-64k-crash.result5
-rw-r--r--mysql-test/suite/innodb/r/innodb-system-table-view.result178
-rw-r--r--mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result18
-rw-r--r--mysql-test/suite/innodb/r/innodb-wl5980-debug.result27
-rw-r--r--mysql-test/suite/innodb/r/innodb_buffer_pool_dump_pct.result22
-rw-r--r--mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result54
-rw-r--r--mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result73
-rw-r--r--mysql-test/suite/innodb/r/innodb_mysql.result43
-rw-r--r--mysql-test/suite/innodb/r/instant_alter,4k.rdiff184
-rw-r--r--mysql-test/suite/innodb/r/instant_alter.result27
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_bugs.result58
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_debug.result29
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff80
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff224
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff80
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff121
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff366
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff121
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff62
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff128
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff62
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff203
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff501
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff121
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff35
-rw-r--r--mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff134
-rw-r--r--mysql-test/suite/innodb/r/max_record_size.result47
-rw-r--r--mysql-test/suite/innodb/r/missing_tablespaces.result11
-rw-r--r--mysql-test/suite/innodb/r/page_id_innochecksum.result6
-rw-r--r--mysql-test/suite/innodb/r/purge.result121
-rw-r--r--mysql-test/suite/innodb/r/strict_mode.result157
-rw-r--r--mysql-test/suite/innodb/r/truncate_missing.result4
-rw-r--r--mysql-test/suite/innodb/r/trx_id_future.result13
-rw-r--r--mysql-test/suite/innodb/r/undo_log.result5
-rw-r--r--mysql-test/suite/innodb/t/alter_large_dml.opt2
-rw-r--r--mysql-test/suite/innodb/t/alter_large_dml.test53
-rw-r--r--mysql-test/suite/innodb/t/alter_missing_tablespace.test13
-rw-r--r--mysql-test/suite/innodb/t/blob-crash.test209
-rw-r--r--mysql-test/suite/innodb/t/check_ibd_filesize.test53
-rw-r--r--mysql-test/suite/innodb/t/create_select.test28
-rw-r--r--mysql-test/suite/innodb/t/foreign-keys.test2
-rw-r--r--mysql-test/suite/innodb/t/innodb-16k.test478
-rw-r--r--mysql-test/suite/innodb/t/innodb-32k-crash.test4
-rw-r--r--mysql-test/suite/innodb/t/innodb-32k.test135
-rw-r--r--mysql-test/suite/innodb/t/innodb-64k-crash.test4
-rw-r--r--mysql-test/suite/innodb/t/innodb-system-table-view.opt10
-rw-r--r--mysql-test/suite/innodb/t/innodb-system-table-view.test136
-rw-r--r--mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test27
-rw-r--r--mysql-test/suite/innodb/t/innodb-wl5980-debug.test51
-rw-r--r--mysql-test/suite/innodb/t/innodb_buffer_pool_dump_pct.test99
-rw-r--r--mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test47
-rw-r--r--mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test70
-rw-r--r--mysql-test/suite/innodb/t/innodb_mysql.test46
-rw-r--r--mysql-test/suite/innodb/t/instant_alter.test14
-rw-r--r--mysql-test/suite/innodb/t/instant_alter_bugs.test50
-rw-r--r--mysql-test/suite/innodb/t/instant_alter_debug.test25
-rw-r--r--mysql-test/suite/innodb/t/max_record_size.test1422
-rw-r--r--mysql-test/suite/innodb/t/missing_tablespaces.test37
-rw-r--r--mysql-test/suite/innodb/t/page_id_innochecksum.test54
-rw-r--r--mysql-test/suite/innodb/t/purge.test117
-rw-r--r--mysql-test/suite/innodb/t/strict_mode.test157
-rw-r--r--mysql-test/suite/innodb/t/truncate_missing.test4
-rw-r--r--mysql-test/suite/innodb/t/trx_id_future.test59
-rw-r--r--mysql-test/suite/innodb/t/undo_log.test5
-rw-r--r--mysql-test/suite/innodb_fts/r/fulltext2.result31
-rw-r--r--mysql-test/suite/innodb_fts/r/innodb_fts_misc.result5
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext2.test26
-rw-r--r--mysql-test/suite/innodb_fts/t/innodb_fts_misc.test8
-rw-r--r--mysql-test/suite/innodb_zip/r/4k.result406
-rw-r--r--mysql-test/suite/innodb_zip/r/8k.result437
-rw-r--r--mysql-test/suite/innodb_zip/r/page_size,4k.rdiff469
-rw-r--r--mysql-test/suite/innodb_zip/r/page_size,8k.rdiff415
-rw-r--r--mysql-test/suite/innodb_zip/r/page_size.result (renamed from mysql-test/suite/innodb_zip/r/16k.result)254
-rw-r--r--mysql-test/suite/innodb_zip/r/restart,full_crc32.rdiff188
-rw-r--r--mysql-test/suite/innodb_zip/r/restart,strict_full_crc32.rdiff188
-rw-r--r--mysql-test/suite/innodb_zip/r/restart.result172
-rw-r--r--mysql-test/suite/innodb_zip/t/4k-master.opt3
-rw-r--r--mysql-test/suite/innodb_zip/t/4k.test433
-rw-r--r--mysql-test/suite/innodb_zip/t/8k-master.opt3
-rw-r--r--mysql-test/suite/innodb_zip/t/8k.test463
-rw-r--r--mysql-test/suite/innodb_zip/t/page_size.opt (renamed from mysql-test/suite/innodb_zip/t/16k-master.opt)0
-rw-r--r--mysql-test/suite/innodb_zip/t/page_size.test (renamed from mysql-test/suite/innodb_zip/t/16k.test)570
-rw-r--r--mysql-test/suite/maria/alter.result14
-rw-r--r--mysql-test/suite/maria/alter.test21
-rw-r--r--mysql-test/suite/maria/kill.result13
-rw-r--r--mysql-test/suite/maria/kill.test14
-rw-r--r--mysql-test/suite/mariabackup/missing_ibd.result2
-rw-r--r--mysql-test/suite/mariabackup/missing_ibd.test3
-rw-r--r--mysql-test/suite/mariabackup/suite.pm19
-rw-r--r--mysql-test/suite/multi_source/disabled.def1
-rw-r--r--mysql-test/suite/multi_source/mdev-8874.cnf25
-rw-r--r--mysql-test/suite/multi_source/mdev-8874.result126
-rw-r--r--mysql-test/suite/multi_source/mdev-8874.test141
-rw-r--r--mysql-test/suite/parts/r/fulltext.result6
-rw-r--r--mysql-test/suite/parts/t/fulltext.test9
-rw-r--r--mysql-test/suite/plugins/disabled.def1
-rw-r--r--mysql-test/suite/plugins/r/pam.result33
-rw-r--r--mysql-test/suite/plugins/r/pam_cleartext.result8
-rw-r--r--mysql-test/suite/plugins/r/pam_v1.result21
-rw-r--r--mysql-test/suite/plugins/suite.pm9
-rw-r--r--mysql-test/suite/plugins/t/pam.test20
-rw-r--r--mysql-test/suite/plugins/t/pam_cleartext.test13
-rw-r--r--mysql-test/suite/plugins/t/pam_v1.test18
-rw-r--r--mysql-test/suite/rpl/include/rpl_drop_create_temp_table.test4
-rw-r--r--mysql-test/suite/rpl/r/create_or_replace_mix.result14
-rw-r--r--mysql-test/suite/rpl/r/create_or_replace_row.result10
-rw-r--r--mysql-test/suite/rpl/r/create_or_replace_statement.result14
-rw-r--r--mysql-test/suite/rpl/r/kill_race_condition.result11
-rw-r--r--mysql-test/suite/rpl/r/mdev_17588.result36
-rw-r--r--mysql-test/suite/rpl/r/rpl_drop_temp_table_invaid_lex.result8
-rw-r--r--mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result31
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result27
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_drop_temp_table.result38
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_drop_create_temp_table.result31
-rw-r--r--mysql-test/suite/rpl/t/create_or_replace.inc13
-rw-r--r--mysql-test/suite/rpl/t/kill_race_condition.test17
-rw-r--r--mysql-test/suite/rpl/t/mdev_17588-slave.opt1
-rw-r--r--mysql-test/suite/rpl/t/mdev_17588.test39
-rw-r--r--mysql-test/suite/rpl/t/rpl_drop_temp_table_invaid_lex.test31
-rw-r--r--mysql-test/suite/rpl/t/rpl_row_drop_temp_table.test54
-rw-r--r--mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result10
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb.result14
-rw-r--r--mysql-test/suite/wsrep/r/variables.result29
-rw-r--r--mysql-test/suite/wsrep/suite.pm22
-rw-r--r--mysql-test/suite/wsrep/t/variables.test18
-rw-r--r--mysql-test/unstable-tests1428
261 files changed, 11230 insertions, 5946 deletions
diff --git a/mysql-test/include/binlog_parallel_replication_marks.test b/mysql-test/include/binlog_parallel_replication_marks.test
index b915d26ce99..82fa997822d 100644
--- a/mysql-test/include/binlog_parallel_replication_marks.test
+++ b/mysql-test/include/binlog_parallel_replication_marks.test
@@ -49,9 +49,16 @@ connection default;
# We need to wait for the implicit DROP TEMPORARY TABLE to be logged after
# tmp_con disconnect, otherwise we get sporadic test failures.
+# MDEV-20091: DROP TEMPORARY TABLE IF EXISTS statements will be written to
+# binlog only if the corresponding temporary table exists. In row based
+# replication temporary tables are not replicated hence their corresponding
+# DROP TEMPORARY TABLE statement will be not be written to binary log upon
+# session closure.
+
+if (!`SELECT @@BINLOG_FORMAT = 'ROW'`) {
--let $wait_condition= SELECT variable_value > $before_drop_pos FROM information_schema.global_status WHERE variable_name = 'binlog_snapshot_position'
--source include/wait_condition.inc
-
+}
--let $binlog_pos2=query_get_value(SHOW MASTER STATUS, Position, 1)
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
diff --git a/mysql-test/include/force_restart.inc b/mysql-test/include/force_restart.inc
new file mode 100644
index 00000000000..88c9249bf99
--- /dev/null
+++ b/mysql-test/include/force_restart.inc
@@ -0,0 +1,14 @@
+# ==== Purpose ====
+#
+# Tell mtr that all servers must be restarted after the test has
+# finished.
+#
+# ==== Usage ====
+#
+# --source include/force_restart.inc
+#
+
+--let $_force_restart_datadir= `SELECT @@datadir`
+--append_file $_force_restart_datadir/mtr/force_restart
+1
+EOF
diff --git a/mysql-test/suite/galera_3nodes/include/galera_resume.inc b/mysql-test/include/galera_resume.inc
index af8f2b956fd..af8f2b956fd 100644
--- a/mysql-test/suite/galera_3nodes/include/galera_resume.inc
+++ b/mysql-test/include/galera_resume.inc
diff --git a/mysql-test/suite/mariabackup/include/have_file_key_management.inc b/mysql-test/include/have_file_key_management.inc
index 06fbb510d6b..06fbb510d6b 100644
--- a/mysql-test/suite/mariabackup/include/have_file_key_management.inc
+++ b/mysql-test/include/have_file_key_management.inc
diff --git a/mysql-test/suite/galera/include/have_mariabackup.inc b/mysql-test/include/have_garbd.inc
index 0dd693f2c63..0dd693f2c63 100644
--- a/mysql-test/suite/galera/include/have_mariabackup.inc
+++ b/mysql-test/include/have_garbd.inc
diff --git a/mysql-test/include/have_mariabackup.inc b/mysql-test/include/have_mariabackup.inc
new file mode 100644
index 00000000000..0dd693f2c63
--- /dev/null
+++ b/mysql-test/include/have_mariabackup.inc
@@ -0,0 +1,4 @@
+#
+# suite.pm will make sure that all tests including this file
+# will be skipped as needed
+#
diff --git a/mysql-test/include/have_xtrabackup.inc b/mysql-test/include/have_xtrabackup.inc
new file mode 100644
index 00000000000..0dd693f2c63
--- /dev/null
+++ b/mysql-test/include/have_xtrabackup.inc
@@ -0,0 +1,4 @@
+#
+# suite.pm will make sure that all tests including this file
+# will be skipped as needed
+#
diff --git a/mysql-test/include/wait_condition_with_debug.inc b/mysql-test/include/wait_condition_with_debug.inc
new file mode 100644
index 00000000000..11af423670d
--- /dev/null
+++ b/mysql-test/include/wait_condition_with_debug.inc
@@ -0,0 +1,69 @@
+# include/wait_condition_with_debug.inc
+#
+# SUMMARY
+#
+# Waits until the passed statement returns true, or the operation
+# times out. If the operation times out, the additional error
+# statement will be executed.
+#
+# USAGE
+#
+# let $wait_condition=
+# SELECT c = 3 FROM t;
+# let $wait_condition_on_error_output= select count(*) from t;
+# [let $explicit_default_wait_timeout= N] # to override the default reset
+# --source include/wait_condition_with_debug.inc
+#
+# OR
+#
+# let $wait_timeout= 60; # Override default 30 seconds with 60.
+# let $wait_condition=
+# SELECT c = 3 FROM t;
+# let $wait_condition_on_error_output= select count(*) from t;
+# --source include/wait_condition_with_debug.inc
+# --echo Executed the test condition $wait_condition_reps times
+#
+#
+# EXAMPLE
+# events_bugs.test, events_time_zone.test
+#
+
+let $wait_counter= 300;
+if ($wait_timeout)
+{
+ let $wait_counter= `SELECT $wait_timeout * 10`;
+}
+# Reset $wait_timeout so that its value won't be used on subsequent
+# calls, and default will be used instead.
+if ($explicit_default_wait_timeout)
+{
+ --let $wait_timeout= $explicit_default_wait_timeout
+}
+if (!$explicit_default_wait_timeout)
+{
+ --let $wait_timeout= 0
+}
+
+# Keep track of how many times the wait condition is tested
+# This is used by some tests (e.g., main.status)
+let $wait_condition_reps= 0;
+while ($wait_counter)
+{
+ --error 0,ER_NO_SUCH_TABLE,ER_LOCK_WAIT_TIMEOUT,ER_UNKNOWN_COM_ERROR,ER_LOCK_DEADLOCK
+ let $success= `$wait_condition`;
+ inc $wait_condition_reps;
+ if ($success)
+ {
+ let $wait_counter= 0;
+ }
+ if (!$success)
+ {
+ real_sleep 0.1;
+ dec $wait_counter;
+ }
+}
+if (!$success)
+{
+ echo Timeout in wait_condition.inc for $wait_condition;
+ --eval $wait_condition_on_error_output
+}
diff --git a/mysql-test/lib/My/Config.pm b/mysql-test/lib/My/Config.pm
index ecc0830c3df..c88b1170a80 100644
--- a/mysql-test/lib/My/Config.pm
+++ b/mysql-test/lib/My/Config.pm
@@ -338,6 +338,13 @@ sub new {
# Skip comment
next;
}
+ # Correctly process Replication Filter when they are defined
+ # with connection name.
+ elsif ( $line =~ /^([\w]+.[\w]+)\s*=\s*(.*)\s*/){
+ my $option= $1;
+ my $value= $2;
+ $self->insert($group_name, $option, $value);
+ }
else {
croak "Unexpected line '$line' found in '$path'";
}
diff --git a/mysql-test/lib/My/SafeProcess.pm b/mysql-test/lib/My/SafeProcess.pm
index 19f2893ea51..87054019759 100644
--- a/mysql-test/lib/My/SafeProcess.pm
+++ b/mysql-test/lib/My/SafeProcess.pm
@@ -100,6 +100,8 @@ else
$bindir = getcwd();
}
+our $wsrep_check_version;
+
# Find the safe process binary or script
sub find_bin {
if (IS_WIN32PERL or IS_CYGWIN)
@@ -119,6 +121,10 @@ sub find_bin {
"my_safe_process");
push(@safe_process_cmd, $exe);
}
+ # Wsrep version check utility:
+ $wsrep_check_version=
+ my_find_bin($bindir, ["lib/My/SafeProcess", "My/SafeProcess"],
+ "wsrep_check_version", NOT_REQUIRED);
}
diff --git a/mysql-test/lib/My/SafeProcess/CMakeLists.txt b/mysql-test/lib/My/SafeProcess/CMakeLists.txt
index a71f5d8ca36..4c3b62fa67e 100644
--- a/mysql-test/lib/My/SafeProcess/CMakeLists.txt
+++ b/mysql-test/lib/My/SafeProcess/CMakeLists.txt
@@ -14,7 +14,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
- IF (WIN32)
+IF (WIN32)
ADD_EXECUTABLE(my_safe_process safe_process_win.cc)
ADD_EXECUTABLE(my_safe_kill safe_kill_win.cc)
TARGET_LINK_LIBRARIES(my_safe_kill dbghelp psapi)
@@ -22,6 +22,11 @@ ELSE()
ADD_EXECUTABLE(my_safe_process safe_process.cc)
ENDIF()
+IF(WITH_WSREP)
+ ADD_EXECUTABLE(wsrep_check_version wsrep_check_version.c)
+ TARGET_LINK_LIBRARIES(wsrep_check_version ${LIBDL})
+ENDIF()
+
IF(NOT INSTALL_MYSQLTESTDIR)
RETURN()
ENDIF()
@@ -32,6 +37,9 @@ SET(INSTALL_ARGS
)
INSTALL(TARGETS my_safe_process ${INSTALL_ARGS})
+IF(WITH_WSREP)
+ INSTALL(TARGETS wsrep_check_version ${INSTALL_ARGS})
+ENDIF()
IF (WIN32)
INSTALL(TARGETS my_safe_kill ${INSTALL_ARGS})
ENDIF()
diff --git a/mysql-test/lib/My/SafeProcess/wsrep_check_version.c b/mysql-test/lib/My/SafeProcess/wsrep_check_version.c
new file mode 100644
index 00000000000..616548d4f2d
--- /dev/null
+++ b/mysql-test/lib/My/SafeProcess/wsrep_check_version.c
@@ -0,0 +1,123 @@
+/* Copyright (c) 2009, 2019, MariaDB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef _WIN32
+#include <windows.h>
+#define dlsym(lib, name) GetProcAddress((HMODULE)lib, name)
+#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
+#define dlclose(lib) FreeLibrary((HMODULE)lib)
+#elif defined(HAVE_DLFCN_H)
+#include <dlfcn.h>
+#else
+#define NO_DLL
+#endif
+
+#ifndef NO_DLL
+
+#include "../../../../wsrep-lib/wsrep-API/v26/wsrep_api.h"
+
+/**************************************************************************
+ * Library loader
+ **************************************************************************/
+
+static int wsrep_check_iface_version(const char *found, const char *iface_ver)
+{
+ if (strcmp(found, iface_ver)) {
+ return ERANGE;
+ }
+ return 0;
+}
+
+typedef int (*wsrep_loader_fun)(wsrep_t*);
+
+static wsrep_loader_fun wsrep_dlf(void *dlh, const char *sym)
+{
+ union {
+ wsrep_loader_fun dlfun;
+ void *obj;
+ } alias;
+ alias.obj = dlsym(dlh, sym);
+ return alias.dlfun;
+}
+
+static int wsrep_check_version_symbol(void *dlh)
+{
+ char** dlversion = NULL;
+ dlversion = (char**) dlsym(dlh, "wsrep_interface_version");
+ if (dlversion == NULL)
+ return EINVAL;
+ return wsrep_check_iface_version(*dlversion, WSREP_INTERFACE_VERSION);
+}
+
+static int wsrep_print_version(void *dlh)
+{
+ char** dlversion = NULL;
+ dlversion = (char**) dlsym(dlh, "wsrep_interface_version");
+ if (dlversion == NULL)
+ return EINVAL;
+ printf("found: %s, need: %s\n", *dlversion, WSREP_INTERFACE_VERSION);
+ return 0;
+}
+
+int main(int argc, char **argv)
+{
+ int rc = EINVAL;
+ void *dlh;
+ wsrep_loader_fun dlfun;
+
+ if (!(dlh = dlopen(getenv("WSREP_PROVIDER"), RTLD_NOW | RTLD_LOCAL))) {
+ goto err;
+ }
+
+ if (!(dlfun = wsrep_dlf(dlh, "wsrep_loader"))) {
+ goto err;
+ }
+
+ if (argc < 2 || strcmp(argv[1], "-p")) {
+ rc = wsrep_check_version_symbol(dlh);
+ }
+ else {
+ rc = wsrep_print_version(dlh);
+ }
+
+err:
+ if (dlh) dlclose(dlh);
+
+ if (rc == 0)
+ return 0;
+ else if (rc == ERANGE)
+ return 2;
+ else
+ return 1;
+}
+
+#else
+
+int main(void)
+{
+ return 1;
+}
+
+#endif
diff --git a/mysql-test/lib/mtr_report.pm b/mysql-test/lib/mtr_report.pm
index 3f1e63bcfb9..44074d0838d 100644
--- a/mysql-test/lib/mtr_report.pm
+++ b/mysql-test/lib/mtr_report.pm
@@ -36,6 +36,21 @@ use POSIX qw[ _exit ];
use IO::Handle qw[ flush ];
use mtr_results;
+use Term::ANSIColor;
+
+my %color_map = qw/pass green
+ retry-pass green
+ fail red
+ retry-fail red
+ disabled bright_black
+ skipped yellow
+ reset reset/;
+sub xterm_color {
+ if (-t STDOUT and defined $ENV{TERM} and $ENV{TERM} =~ /xterm/) {
+ syswrite STDOUT, color($color_map{$_[0]});
+ }
+}
+
my $tot_real_time= 0;
our $timestamp= 0;
@@ -498,7 +513,16 @@ sub mtr_print (@) {
sub mtr_report (@) {
if (defined $verbose)
{
- print _name(). join(" ", @_). "\n";
+ my @s = split /\[ (\S+) \]/, _name() . "@_\n";
+ if (@s > 1) {
+ print $s[0];
+ xterm_color($s[1]);
+ print "[ $s[1] ]";
+ xterm_color('reset');
+ print $s[2];
+ } else {
+ print $s[0];
+ }
}
}
diff --git a/mysql-test/main/grant.result b/mysql-test/main/grant.result
index fad874d7d64..d544c97e636 100644
--- a/mysql-test/main/grant.result
+++ b/mysql-test/main/grant.result
@@ -2752,6 +2752,25 @@ DROP USER dummy@localhost;
# End of 10.2 tests
#
#
+# Start of 10.3 tests
+#
+#
+# MDEV-19948 'show grants' return privileges individually
+#
+CREATE USER ten2;
+GRANT ALL ON *.* TO ten2;
+SHOW GRANTS FOR ten2;
+Grants for ten2@%
+GRANT ALL PRIVILEGES ON *.* TO 'ten2'@'%'
+FLUSH PRIVILEGES;
+SHOW GRANTS FOR ten2;
+Grants for ten2@%
+GRANT ALL PRIVILEGES ON *.* TO 'ten2'@'%'
+DROP USER ten2;
+#
+# End of 10.3 tests
+#
+#
# MDEV-17932 : Assertion upon double RENAME USER
#
CREATE USER foo@localhost;
diff --git a/mysql-test/main/grant.test b/mysql-test/main/grant.test
index 8ae64c9ad4d..47a274d75d1 100644
--- a/mysql-test/main/grant.test
+++ b/mysql-test/main/grant.test
@@ -2248,6 +2248,35 @@ DROP USER dummy@localhost;
--echo #
--echo #
+--echo # Start of 10.3 tests
+--echo #
+
+--echo #
+--echo # MDEV-19948 'show grants' return privileges individually
+--echo #
+
+# Let's cheat server that we are using `10.2` user table
+# which doesn't have `Delete_history_priv` column
+
+source include/switch_to_mysql_user.inc;
+CREATE USER ten2;
+GRANT ALL ON *.* TO ten2;
+
+# Without any patching, this should show a lot of privileges,
+# but without delete history. With patch it is showing `all privileges`
+SHOW GRANTS FOR ten2;
+FLUSH PRIVILEGES;
+
+# Now should show `all privileges` with/without patch
+SHOW GRANTS FOR ten2;
+DROP USER ten2;
+source include/switch_to_mysql_global_priv.inc;
+
+--echo #
+--echo # End of 10.3 tests
+--echo #
+
+--echo #
--echo # MDEV-17932 : Assertion upon double RENAME USER
--echo #
CREATE USER foo@localhost;
diff --git a/mysql-test/main/join_outer.result b/mysql-test/main/join_outer.result
index 1c81c57b23a..96de74dd6aa 100644
--- a/mysql-test/main/join_outer.result
+++ b/mysql-test/main/join_outer.result
@@ -2514,6 +2514,40 @@ WHERE tb1.pk = 40
ORDER BY tb1.i1;
v2
DROP TABLE t1,t2;
+#
+# MDEV-19790 : IS NOT TRUE / IS NOT FALSE predicates over
+# inner tables of outer joins
+#
+create table t1 (a int);
+create table t2 (b int);
+insert into t1 values (3), (7), (1);
+insert into t2 values (7), (4), (3);
+select * from t1 left join t2 on a=b;
+a b
+3 3
+7 7
+1 NULL
+select * from t1 left join t2 on a=b where (b > 3) is not true;
+a b
+3 3
+1 NULL
+explain extended select * from t1 left join t2 on a=b where (b > 3) is not true;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`b` = `test`.`t1`.`a`) where `test`.`t2`.`b` > 3 is not true
+select * from t1 left join t2 on a=b where (b > 3) is not false;
+a b
+7 7
+1 NULL
+explain extended select * from t1 left join t2 on a=b where (b > 3) is not false;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
+1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`b` = `test`.`t1`.`a`) where `test`.`t2`.`b` > 3 is not false
+drop table t1,t2;
# end of 5.5 tests
#
# MDEV-19258: chained right joins all converted to inner joins
diff --git a/mysql-test/main/join_outer.test b/mysql-test/main/join_outer.test
index c9ac0224745..c02b2e32580 100644
--- a/mysql-test/main/join_outer.test
+++ b/mysql-test/main/join_outer.test
@@ -2041,6 +2041,29 @@ ORDER BY tb1.i1;
DROP TABLE t1,t2;
+--echo #
+--echo # MDEV-19790 : IS NOT TRUE / IS NOT FALSE predicates over
+--echo # inner tables of outer joins
+--echo #
+
+create table t1 (a int);
+create table t2 (b int);
+insert into t1 values (3), (7), (1);
+insert into t2 values (7), (4), (3);
+select * from t1 left join t2 on a=b;
+
+let $q=
+select * from t1 left join t2 on a=b where (b > 3) is not true;
+eval $q;
+eval explain extended $q;
+
+let $q=
+select * from t1 left join t2 on a=b where (b > 3) is not false;
+eval $q;
+eval explain extended $q;
+
+drop table t1,t2;
+
--echo # end of 5.5 tests
--echo #
diff --git a/mysql-test/main/join_outer_jcl6.result b/mysql-test/main/join_outer_jcl6.result
index 91378d1add0..8151231839f 100644
--- a/mysql-test/main/join_outer_jcl6.result
+++ b/mysql-test/main/join_outer_jcl6.result
@@ -2525,6 +2525,40 @@ WHERE tb1.pk = 40
ORDER BY tb1.i1;
v2
DROP TABLE t1,t2;
+#
+# MDEV-19790 : IS NOT TRUE / IS NOT FALSE predicates over
+# inner tables of outer joins
+#
+create table t1 (a int);
+create table t2 (b int);
+insert into t1 values (3), (7), (1);
+insert into t2 values (7), (4), (3);
+select * from t1 left join t2 on a=b;
+a b
+7 7
+3 3
+1 NULL
+select * from t1 left join t2 on a=b where (b > 3) is not true;
+a b
+3 3
+1 NULL
+explain extended select * from t1 left join t2 on a=b where (b > 3) is not true;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
+1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.a 3 100.00 Using where; Using join buffer (flat, BNLH join)
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`b` = `test`.`t1`.`a` and `test`.`t1`.`a` is not null) where `test`.`t2`.`b` > 3 is not true
+select * from t1 left join t2 on a=b where (b > 3) is not false;
+a b
+7 7
+1 NULL
+explain extended select * from t1 left join t2 on a=b where (b > 3) is not false;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
+1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.a 3 100.00 Using where; Using join buffer (flat, BNLH join)
+Warnings:
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`b` = `test`.`t1`.`a` and `test`.`t1`.`a` is not null) where `test`.`t2`.`b` > 3 is not false
+drop table t1,t2;
# end of 5.5 tests
#
# MDEV-19258: chained right joins all converted to inner joins
diff --git a/mysql-test/main/mysqld--help.result b/mysql-test/main/mysqld--help.result
index 070c3e43c18..3f155672fa5 100644
--- a/mysql-test/main/mysqld--help.result
+++ b/mysql-test/main/mysqld--help.result
@@ -1,4 +1,4 @@
-Windows bug: happens when a new line is exactly at the right offset.
+Windows bug: new line disappears when it is exactly at the right offset.
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file.
diff --git a/mysql-test/main/mysqld--help.test b/mysql-test/main/mysqld--help.test
index 0205fa4c3de..846d3abf3e4 100644
--- a/mysql-test/main/mysqld--help.test
+++ b/mysql-test/main/mysqld--help.test
@@ -43,7 +43,7 @@ perl;
$re2=join('|', @plugins);
$skip=0;
open(F, '<', "$ENV{MYSQL_TMP_DIR}/mysqld--help.txt") or die;
- print "Windows bug: happens when a new line is exactly at the right offset.\n";
+ print "Windows bug: new line disappears when it is exactly at the right offset.\n";
while (<F>) {
next if 1../The following groups are read/;
# formatting, skip line consisting entirely of dashes and blanks
diff --git a/mysql-test/main/mysqldump-compat-102.opt b/mysql-test/main/mysqldump-compat-102.opt
new file mode 100644
index 00000000000..d309bba8e76
--- /dev/null
+++ b/mysql-test/main/mysqldump-compat-102.opt
@@ -0,0 +1 @@
+-V10.2.1-MariaDB
diff --git a/mysql-test/main/mysqldump-compat-102.result b/mysql-test/main/mysqldump-compat-102.result
new file mode 100644
index 00000000000..aa8fe5a4de3
--- /dev/null
+++ b/mysql-test/main/mysqldump-compat-102.result
@@ -0,0 +1,110 @@
+#
+# MDEV-17429 mysqldump uses 10.3 options with pre-10.3 servers and breaks
+#
+SELECT @@version;
+@@version
+10.2.1-MariaDB
+SET sql_mode=ORACLE;
+CREATE DATABASE db1_mdev17429;
+USE db1_mdev17429;
+CREATE PROCEDURE p1(a INT)
+AS BEGIN
+NULL;
+END;
+$$
+CREATE OR REPLACE PACKAGE employee_tools AS
+FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2);
+PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2));
+PROCEDURE raiseSalaryStd(eid INT);
+PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2));
+END;
+$$
+CREATE PACKAGE BODY employee_tools AS
+-- package body variables
+stdRaiseAmount DECIMAL(10,2):=500;
+-- private routines
+PROCEDURE log (eid INT, ecmnt TEXT) AS
+BEGIN
+INSERT INTO employee_log (id, cmnt) VALUES (eid, ecmnt);
+END;
+-- public routines
+PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2)) AS
+eid INT;
+BEGIN
+INSERT INTO employee (name, salary) VALUES (ename, esalary);
+eid:= last_insert_id();
+log(eid, 'hire ' || ename);
+END;
+FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2) AS
+nSalary DECIMAL(10,2);
+BEGIN
+SELECT salary INTO nSalary FROM employee WHERE id=eid;
+log(eid, 'getSalary id=' || eid || ' salary=' || nSalary);
+RETURN nSalary;
+END;
+PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2)) AS
+BEGIN
+UPDATE employee SET salary=salary+amount WHERE id=eid;
+log(eid, 'raiseSalary id=' || eid || ' amount=' || amount);
+END;
+PROCEDURE raiseSalaryStd(eid INT) AS
+BEGIN
+raiseSalary(eid, stdRaiseAmount);
+log(eid, 'raiseSalaryStd id=' || eid);
+END;
+BEGIN
+-- This code is executed when the current session
+-- accesses any of the package routines for the first time
+log(0, 'Session ' || connection_id() || ' ' || current_user || ' started');
+END;
+$$
+-- MariaDB dump DUMPVERSION Distrib DISTVERSION, for OS
+--
+-- Host: localhost Database: db1_mdev17429
+-- ------------------------------------------------------
+-- Server version 10.2.1-MariaDB
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Dumping routines for database 'db1_mdev17429'
+--
+/*!50003 DROP PROCEDURE IF EXISTS `p1` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = latin1 */ ;
+/*!50003 SET character_set_results = latin1 */ ;
+/*!50003 SET collation_connection = latin1_swedish_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,SIMULTANEOUS_ASSIGNMENT' */ ;
+DELIMITER ;;
+CREATE DEFINER="root"@"localhost" PROCEDURE "p1"(a INT)
+AS BEGIN
+NULL;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on TIMESTAMP
+DROP DATABASE db1_mdev17429;
+SET sql_mode=DEFAULT;
diff --git a/mysql-test/main/mysqldump-compat-102.test b/mysql-test/main/mysqldump-compat-102.test
new file mode 100644
index 00000000000..27c1dfcb6ce
--- /dev/null
+++ b/mysql-test/main/mysqldump-compat-102.test
@@ -0,0 +1,83 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+--echo #
+--echo # MDEV-17429 mysqldump uses 10.3 options with pre-10.3 servers and breaks
+--echo #
+
+# Make sure the server reports itself as 10.2.1-MariaDB
+SELECT @@version;
+
+SET sql_mode=ORACLE;
+CREATE DATABASE db1_mdev17429;
+USE db1_mdev17429;
+
+DELIMITER $$;
+
+CREATE PROCEDURE p1(a INT)
+AS BEGIN
+ NULL;
+END;
+$$
+
+CREATE OR REPLACE PACKAGE employee_tools AS
+ FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2);
+ PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2));
+ PROCEDURE raiseSalaryStd(eid INT);
+ PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2));
+END;
+$$
+CREATE PACKAGE BODY employee_tools AS
+ -- package body variables
+ stdRaiseAmount DECIMAL(10,2):=500;
+
+ -- private routines
+ PROCEDURE log (eid INT, ecmnt TEXT) AS
+ BEGIN
+ INSERT INTO employee_log (id, cmnt) VALUES (eid, ecmnt);
+ END;
+
+ -- public routines
+ PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2)) AS
+ eid INT;
+ BEGIN
+ INSERT INTO employee (name, salary) VALUES (ename, esalary);
+ eid:= last_insert_id();
+ log(eid, 'hire ' || ename);
+ END;
+
+ FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2) AS
+ nSalary DECIMAL(10,2);
+ BEGIN
+ SELECT salary INTO nSalary FROM employee WHERE id=eid;
+ log(eid, 'getSalary id=' || eid || ' salary=' || nSalary);
+ RETURN nSalary;
+ END;
+
+ PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2)) AS
+ BEGIN
+ UPDATE employee SET salary=salary+amount WHERE id=eid;
+ log(eid, 'raiseSalary id=' || eid || ' amount=' || amount);
+ END;
+
+ PROCEDURE raiseSalaryStd(eid INT) AS
+ BEGIN
+ raiseSalary(eid, stdRaiseAmount);
+ log(eid, 'raiseSalaryStd id=' || eid);
+ END;
+
+BEGIN
+ -- This code is executed when the current session
+ -- accesses any of the package routines for the first time
+ log(0, 'Session ' || connection_id() || ' ' || current_user || ' started');
+END;
+$$
+DELIMITER ;$$
+
+# mysqldump output is expected to have standalone PROCEDURE/FUNCTION, but not PACKAGE/PACKAGE BODY.
+
+--replace_regex /-- MariaDB dump.*[^\n]/-- MariaDB dump DUMPVERSION Distrib DISTVERSION, for OS/ / on [0-9 :-]+/ on TIMESTAMP/
+--exec $MYSQL_DUMP --quick --routines --triggers --no-create-info --skip-lock-tables --no-data --compress -uroot db1_mdev17429
+
+DROP DATABASE db1_mdev17429;
+SET sql_mode=DEFAULT;
diff --git a/mysql-test/main/parser.result b/mysql-test/main/parser.result
index 2e2342161fc..2b4a0bb7163 100644
--- a/mysql-test/main/parser.result
+++ b/mysql-test/main/parser.result
@@ -1784,4 +1784,17 @@ a
select * from t1 for update;
a
drop table t1;
+#
+# MDEV-20108: [ERROR] mysqld got signal 11 in
+# st_select_lex::add_table_to_list
+#
+CREATE TABLE t1 (c1 INT NULL);
+CREATE TABLE t2 (c1 INT NULL);
+SET STATEMENT max_statement_time=900 FOR LOCK TABLES `t1` WRITE;
+select * from t1;
+c1
+select * from t2;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+SET STATEMENT max_statement_time=900 FOR unlock tables;
+drop table t1, t2;
# End of 10.4 tests
diff --git a/mysql-test/main/parser.test b/mysql-test/main/parser.test
index 35a2334eec2..b3cfcfb4fcc 100644
--- a/mysql-test/main/parser.test
+++ b/mysql-test/main/parser.test
@@ -1552,4 +1552,18 @@ create table t1 (a int);
select * from t1 for update;
drop table t1;
+--echo #
+--echo # MDEV-20108: [ERROR] mysqld got signal 11 in
+--echo # st_select_lex::add_table_to_list
+--echo #
+CREATE TABLE t1 (c1 INT NULL);
+CREATE TABLE t2 (c1 INT NULL);
+
+SET STATEMENT max_statement_time=900 FOR LOCK TABLES `t1` WRITE;
+select * from t1;
+--error ER_TABLE_NOT_LOCKED
+select * from t2;
+SET STATEMENT max_statement_time=900 FOR unlock tables;
+drop table t1, t2;
+
--echo # End of 10.4 tests
diff --git a/mysql-test/main/repair_symlink-5543.result b/mysql-test/main/repair_symlink-5543.result
index c77e7162a51..2024c9f5684 100644
--- a/mysql-test/main/repair_symlink-5543.result
+++ b/mysql-test/main/repair_symlink-5543.result
@@ -1,7 +1,7 @@
create table t1 (a int) engine=myisam data directory='MYSQL_TMP_DIR';
insert t1 values (1);
-# Some systems fail with errcode 40, when doing openat, while others
-# don't have openat and fail with errcode 20.
+# Some systems fail with errcode 40, or 90 (MIPS) when doing openat,
+# while others don't have openat and fail with errcode 20.
repair table t1;
Table Op Msg_type Msg_text
test.t1 repair error 20 for record at pos 0
diff --git a/mysql-test/main/repair_symlink-5543.test b/mysql-test/main/repair_symlink-5543.test
index 4c120334d05..ac7bb497f24 100644
--- a/mysql-test/main/repair_symlink-5543.test
+++ b/mysql-test/main/repair_symlink-5543.test
@@ -9,9 +9,9 @@
eval create table t1 (a int) engine=myisam data directory='$MYSQL_TMP_DIR';
insert t1 values (1);
--system ln -s $MYSQL_TMP_DIR/foobar5543 $MYSQL_TMP_DIR/t1.TMD
---echo # Some systems fail with errcode 40, when doing openat, while others
---echo # don't have openat and fail with errcode 20.
---replace_regex / '.*\/t1/ 'MYSQL_TMP_DIR\/t1/ /40/20/ /".*"/"<errmsg>"/
+--echo # Some systems fail with errcode 40, or 90 (MIPS) when doing openat,
+--echo # while others don't have openat and fail with errcode 20.
+--replace_regex / '.*\/t1/ 'MYSQL_TMP_DIR\/t1/ /[49]0/20/ /".*"/"<errmsg>"/
repair table t1;
drop table t1;
@@ -19,7 +19,7 @@ drop table t1;
eval create table t2 (a int) engine=aria data directory='$MYSQL_TMP_DIR';
insert t2 values (1);
--system ln -s $MYSQL_TMP_DIR/foobar5543 $MYSQL_TMP_DIR/t2.TMD
---replace_regex / '.*\/t2/ 'MYSQL_TMP_DIR\/t2/ /40/20/ /".*"/"<errmsg>"/
+--replace_regex / '.*\/t2/ 'MYSQL_TMP_DIR\/t2/ /[49]0/20/ /".*"/"<errmsg>"/
repair table t2;
drop table t2;
diff --git a/mysql-test/main/sp.result b/mysql-test/main/sp.result
index b812334470b..62da6359e40 100644
--- a/mysql-test/main/sp.result
+++ b/mysql-test/main/sp.result
@@ -8307,6 +8307,20 @@ UNION
SELECT * FROM INFORMATION_SCHEMA.TABLES JOIN INFORMATION_SCHEMA.PARAMETERS;
DROP FUNCTION f;
DROP VIEW v;
+#
+# MDEV-17963: Assertion `field_pos < field_count' failed in Protocol_text::store,
+# Assertion `field_handlers == 0 || field_pos < field_count'
+#
+CREATE TABLE t1 (ct time);
+INSERT INTO t1 VALUES ('16:11:28');
+CREATE FUNCTION f1 () RETURNS varchar(100)
+BEGIN
+DECLARE xxx varchar(100);
+ANALYZE SELECT sum(ct) FROM t1 INTO xxx ;
+RETURN xxx;
+END|
+ERROR 0A000: Not allowed to return a result set from a function
+drop table t1;
#End of 10.1 tests
#
# MDEV-11081: CURSOR for query with GROUP BY
diff --git a/mysql-test/main/sp.test b/mysql-test/main/sp.test
index 7f413c4f665..3e4b3418a2d 100644
--- a/mysql-test/main/sp.test
+++ b/mysql-test/main/sp.test
@@ -9823,6 +9823,26 @@ SELECT * FROM INFORMATION_SCHEMA.TABLES JOIN INFORMATION_SCHEMA.PARAMETERS;
DROP FUNCTION f;
DROP VIEW v;
+--echo #
+--echo # MDEV-17963: Assertion `field_pos < field_count' failed in Protocol_text::store,
+--echo # Assertion `field_handlers == 0 || field_pos < field_count'
+--echo #
+
+CREATE TABLE t1 (ct time);
+INSERT INTO t1 VALUES ('16:11:28');
+
+DELIMITER |;
+--error ER_SP_NO_RETSET
+CREATE FUNCTION f1 () RETURNS varchar(100)
+BEGIN
+DECLARE xxx varchar(100);
+ANALYZE SELECT sum(ct) FROM t1 INTO xxx ;
+RETURN xxx;
+END|
+
+DELIMITER ;|
+drop table t1;
+
--echo #End of 10.1 tests
--echo #
diff --git a/mysql-test/main/tls_version1.opt b/mysql-test/main/tls_version1.opt
new file mode 100644
index 00000000000..91715074d40
--- /dev/null
+++ b/mysql-test/main/tls_version1.opt
@@ -0,0 +1 @@
+--tls_version=TLSv1.0
diff --git a/mysql-test/main/tls_version1.result b/mysql-test/main/tls_version1.result
new file mode 100644
index 00000000000..8333bfec159
--- /dev/null
+++ b/mysql-test/main/tls_version1.result
@@ -0,0 +1,6 @@
+Variable_name Value
+Ssl_version TLSv1
+Variable_name Value
+Ssl_version TLSv1
+@@tls_version
+TLSv1.0
diff --git a/mysql-test/main/tls_version1.test b/mysql-test/main/tls_version1.test
new file mode 100644
index 00000000000..d38de876ba3
--- /dev/null
+++ b/mysql-test/main/tls_version1.test
@@ -0,0 +1,12 @@
+# Tests for SSL connections, only run if mysqld is compiled
+# with support for SSL.
+
+-- source include/have_ssl_communication.inc
+--exec $MYSQL --host=localhost --ssl -e "show status like 'ssl_version';"
+--error 1
+--exec $MYSQL --host=localhost --ssl --tls_version=TLSv1.2 -e "show status like 'ssl_version';"
+--error 1
+--exec $MYSQL --host=localhost --ssl --tls_version=TLSv1.1 -e "show status like 'ssl_version';"
+--exec $MYSQL --host=localhost --ssl --tls_version=TLSv1.0 -e "show status like 'ssl_version';"
+--exec $MYSQL --host=localhost --ssl -e "select @@tls_version;"
+
diff --git a/mysql-test/main/type_datetime.result b/mysql-test/main/type_datetime.result
index 64c523f26ce..0c33ddc3df1 100644
--- a/mysql-test/main/type_datetime.result
+++ b/mysql-test/main/type_datetime.result
@@ -1146,6 +1146,16 @@ a
00:01:00
DROP TABLE t1;
#
+# MDEV-17857 Assertion `tmp != ((long long) 0x8000000000000000LL)' failed in TIME_from_longlong_datetime_packed upon SELECT with GROUP BY
+#
+CREATE TABLE t1 (i INT, d DATETIME);
+INSERT INTO t1 VALUES (3,NULL),(3,'1976-12-14 13:21:07'),(NULL,'1981-09-24 01:04:47');
+SELECT ExtractValue('foo','bar'), i, MIN(d) FROM t1 GROUP BY i;
+ExtractValue('foo','bar') i MIN(d)
+ NULL 1981-09-24 01:04:47
+ 3 1976-12-14 13:21:07
+DROP TABLE t1;
+#
# End of 10.1 tests
#
#
diff --git a/mysql-test/main/type_datetime.test b/mysql-test/main/type_datetime.test
index 7bd7883f469..cecdda593d0 100644
--- a/mysql-test/main/type_datetime.test
+++ b/mysql-test/main/type_datetime.test
@@ -700,6 +700,16 @@ SELECT 1 FROM t1 WHERE 20160101 > SOME (SELECT CAST(a AS DATETIME) FROM t1);
SELECT * FROM t1 WHERE 20160101 > CAST(a AS DATETIME);
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-17857 Assertion `tmp != ((long long) 0x8000000000000000LL)' failed in TIME_from_longlong_datetime_packed upon SELECT with GROUP BY
+--echo #
+
+CREATE TABLE t1 (i INT, d DATETIME);
+INSERT INTO t1 VALUES (3,NULL),(3,'1976-12-14 13:21:07'),(NULL,'1981-09-24 01:04:47');
+SELECT ExtractValue('foo','bar'), i, MIN(d) FROM t1 GROUP BY i;
+DROP TABLE t1;
+
--echo #
--echo # End of 10.1 tests
--echo #
diff --git a/mysql-test/main/type_varchar.result b/mysql-test/main/type_varchar.result
index 214fb0a5b0f..e42a363a2c2 100644
--- a/mysql-test/main/type_varchar.result
+++ b/mysql-test/main/type_varchar.result
@@ -687,7 +687,23 @@ DROP TABLE t1,t2;
# End of 10.0 tests
#
#
-# Start of 10.4 tests
+# MDEV-17551
+# Assertion `(&(&share->intern_lock)->m_mutex)->count > 0 &&
+# pthread_equal(pthread_self(), (&(&share->intern_lock)->m_mutex)->
+# thread)' failed in _ma_state_info_write or ER_CRASHED_ON_USAGE
+# upon SELECT with UNION
+#
+CREATE TABLE t1 (b BLOB, vb BLOB AS (b) VIRTUAL);
+INSERT INTO t1 (b) VALUES ('foobar');
+SELECT 'foo' AS f1, CONVERT( 'bar' USING latin1 ) AS f2 FROM t1
+UNION
+SELECT b AS f1, CONVERT( vb USING latin1 ) AS f2 FROM t1;
+f1 f2
+foo bar
+foobar foobar
+DROP TABLE t1;
+#
+# End of 10.3 tests
#
SET sql_mode='';
CREATE TABLE t1 (c VARCHAR(1) DEFAULT 'foo');
diff --git a/mysql-test/main/type_varchar.test b/mysql-test/main/type_varchar.test
index ab02549394a..f63523e226b 100644
--- a/mysql-test/main/type_varchar.test
+++ b/mysql-test/main/type_varchar.test
@@ -329,9 +329,23 @@ DROP TABLE t1,t2;
--echo # End of 10.0 tests
--echo #
+--echo #
+--echo # MDEV-17551
+--echo # Assertion `(&(&share->intern_lock)->m_mutex)->count > 0 &&
+--echo # pthread_equal(pthread_self(), (&(&share->intern_lock)->m_mutex)->
+--echo # thread)' failed in _ma_state_info_write or ER_CRASHED_ON_USAGE
+--echo # upon SELECT with UNION
+--echo #
+
+CREATE TABLE t1 (b BLOB, vb BLOB AS (b) VIRTUAL);
+INSERT INTO t1 (b) VALUES ('foobar');
+SELECT 'foo' AS f1, CONVERT( 'bar' USING latin1 ) AS f2 FROM t1
+ UNION
+SELECT b AS f1, CONVERT( vb USING latin1 ) AS f2 FROM t1;
+DROP TABLE t1;
--echo #
---echo # Start of 10.4 tests
+--echo # End of 10.3 tests
--echo #
SET sql_mode='';
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 8c9515dbb49..f450eef96bd 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -138,6 +138,10 @@ my $opt_start_dirty;
my $opt_start_exit;
my $start_only;
my $file_wsrep_provider;
+my $extra_path;
+my $mariabackup_path;
+my $mariabackup_exe;
+my $garbd_exe;
our @global_suppressions;
@@ -373,8 +377,162 @@ $| = 1; # Automatically flush STDOUT
main();
+sub have_wsrep() {
+ my $wsrep_on= $mysqld_variables{'wsrep-on'};
+ return defined $wsrep_on
+}
+
+sub have_wsrep_provider() {
+ return $file_wsrep_provider ne "";
+}
+
+sub have_mariabackup() {
+ return $mariabackup_path ne "";
+}
+
+sub have_garbd() {
+ return $garbd_exe ne "";
+}
+
+sub check_wsrep_version() {
+ if ($My::SafeProcess::wsrep_check_version ne "") {
+ system($My::SafeProcess::wsrep_check_version);
+ return ($? >> 8) == 0;
+ }
+ else {
+ return 0;
+ }
+}
+
+sub wsrep_version_message() {
+ if ($My::SafeProcess::wsrep_check_version ne "") {
+ my $output= `$My::SafeProcess::wsrep_check_version -p`;
+ if (($? >> 8) == 0) {
+ $output =~ s/\s+\z//;
+ return "Wsrep provider version mismatch (".$output.")";
+ }
+ else {
+ return "Galera library does not contain a version symbol";
+ }
+ }
+ else {
+ return "Unable to find a wsrep version check utility";
+ }
+}
+
+sub which($) { return `sh -c "command -v $_[0]"` }
+
+sub check_garbd_support() {
+ if (defined $ENV{'MTR_GARBD_EXE'}) {
+ if (mtr_file_exists($ENV{'MTR_GARBD_EXE'}) ne "") {
+ $garbd_exe= $ENV{'MTR_GARBD_EXE'};
+ } else {
+ mtr_error("MTR_GARBD_EXE env set to an invalid path");
+ }
+ }
+ else {
+ my $wsrep_path= dirname($file_wsrep_provider);
+ $garbd_exe=
+ mtr_file_exists($wsrep_path."/garb/garbd",
+ $wsrep_path."/../../bin/garb/garbd");
+ if ($garbd_exe ne "") {
+ $ENV{MTR_GARBD_EXE}= $garbd_exe;
+ }
+ }
+}
+
+sub check_wsrep_support() {
+ $garbd_exe= "";
+ if (have_wsrep()) {
+ mtr_report(" - binaries built with wsrep patch");
+
+ # ADD scripts to $PATH to that wsrep_sst_* can be found
+ my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$bindir/scripts", $path_client_bindir;
+ mtr_error("No SST scripts") unless $spath;
+ $ENV{PATH}="$spath:$ENV{PATH}";
+
+ # ADD mysql client library path to path so that wsrep_notify_cmd can find mysql
+ # client for loading the tables. (Don't assume each machine has mysql install)
+ my ($cpath) = grep { -f "$_/mysql"; } "$bindir/scripts", $path_client_bindir;
+ mtr_error("No scritps") unless $cpath;
+ $ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath;
+
+ # ADD my_print_defaults script path to path so that SST scripts can find it
+ my ($epath) = grep { -f "$_/my_print_defaults"; } "$bindir/extra", $path_client_bindir;
+ mtr_error("No my_print_defaults") unless $epath;
+ $ENV{PATH}="$epath:$ENV{PATH}" unless ($epath eq $spath) or
+ ($epath eq $cpath);
+
+ $extra_path= $epath;
+
+ if (which("socat")) {
+ $ENV{MTR_GALERA_TFMT}="socat";
+ } elsif (which("nc")) {
+ $ENV{MTR_GALERA_TFMT}="nc";
+ }
+
+ # Check whether WSREP_PROVIDER environment variable is set.
+ if (defined $ENV{'WSREP_PROVIDER'}) {
+ $file_wsrep_provider= "";
+ if ($ENV{'WSREP_PROVIDER'} ne "none") {
+ if (mtr_file_exists($ENV{'WSREP_PROVIDER'}) ne "") {
+ $file_wsrep_provider= $ENV{'WSREP_PROVIDER'};
+ } else {
+ mtr_error("WSREP_PROVIDER env set to an invalid path");
+ }
+ check_garbd_support();
+ }
+ # WSREP_PROVIDER is valid; set to a valid path or "none").
+ mtr_verbose("WSREP_PROVIDER env set to $ENV{'WSREP_PROVIDER'}");
+ } else {
+ # WSREP_PROVIDER env not defined. Lets try to locate the wsrep provider
+ # library.
+ $file_wsrep_provider=
+ mtr_file_exists("/usr/lib64/galera-4/libgalera_smm.so",
+ "/usr/lib64/galera/libgalera_smm.so",
+ "/usr/lib/galera-4/libgalera_smm.so",
+ "/usr/lib/galera/libgalera_smm.so");
+ if ($file_wsrep_provider ne "") {
+ # wsrep provider library found !
+ mtr_verbose("wsrep provider library found : $file_wsrep_provider");
+ $ENV{'WSREP_PROVIDER'}= $file_wsrep_provider;
+ check_garbd_support();
+ } else {
+ mtr_verbose("Could not find wsrep provider library, setting it to 'none'");
+ $ENV{'WSREP_PROVIDER'}= "none";
+ }
+ }
+ } else {
+ $file_wsrep_provider= "";
+ $extra_path= "";
+ }
+}
+
+sub check_mariabackup_support() {
+ $mariabackup_path= "";
+ $mariabackup_exe=
+ mtr_exe_maybe_exists(
+ "$bindir/extra/mariabackup$opt_vs_config/mariabackup",
+ "$path_client_bindir/mariabackup");
+ if ($mariabackup_exe ne "") {
+ my ($bpath) = grep { -f "$_/mariabackup"; } "$bindir/extra/mariabackup$opt_vs_config", $path_client_bindir;
+ $ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $extra_path;
+
+ $mariabackup_path= $bpath;
+
+ $ENV{XTRABACKUP}= $mariabackup_exe;
+
+ $ENV{XBSTREAM}= mtr_exe_maybe_exists(
+ "$bindir/extra/mariabackup/$opt_vs_config/mbstream",
+ "$path_client_bindir/mbstream");
+
+ $ENV{INNOBACKUPEX}= "$mariabackup_exe --innobackupex";
+ }
+}
sub main {
+ $ENV{MTR_PERL}=$^X;
+
# Default, verbosity on
report_option('verbose', 0);
@@ -416,6 +574,8 @@ sub main {
}
check_ssl_support();
check_debug_support();
+ check_wsrep_support();
+ check_mariabackup_support();
if (!$opt_suites) {
$opt_suites= join ',', collect_default_suites(@DEFAULT_SUITES);
@@ -849,6 +1009,8 @@ sub run_test_server ($$$) {
next if (defined $t->{reserved} and $t->{reserved} != $wid);
if (! defined $t->{reserved})
{
+ # Force-restart not relevant when comparing *next* test
+ $t->{criteria} =~ s/force-restart$/no-restart/;
my $criteria= $t->{criteria};
# Reserve similar tests for this worker, but not too many
my $maxres= (@$tests - $i) / $opt_parallel + 1;
@@ -1887,7 +2049,10 @@ sub collect_mysqld_features {
if (/Copyright/ .. /^-{30,}/) {
# here we want to detect all not mandatory plugins
# they are listed in the --help output as
- # --archive[=name] Enable or disable ARCHIVE plugin. Possible values are ON, OFF, FORCE (don't start if the plugin fails to load).
+ # --archive[=name]
+ # Enable or disable ARCHIVE plugin. Possible values are ON, OFF,
+ # FORCE (don't start if the plugin fails to load),
+ # FORCE_PLUS_PERMANENT (like FORCE, but the plugin can not be uninstalled).
push @optional_plugins, $1
if /^ --([-a-z0-9]+)\[=name\] +Enable or disable \w+ plugin. One of: ON, OFF, FORCE/;
next;
@@ -2581,82 +2746,72 @@ sub setup_vardir() {
copytree("$glob_mysql_test_dir/std_data", "$opt_vardir/std_data", "0022");
# create a plugin dir and copy or symlink plugins into it
- if ($source_dist)
+ unless($plugindir)
{
- $plugindir="$opt_vardir/plugins";
- mkpath($plugindir);
- if (IS_WINDOWS)
+ if ($source_dist)
{
- if (!$opt_embedded_server)
+ $plugindir="$opt_vardir/plugins";
+ mkpath($plugindir);
+ if (IS_WINDOWS)
{
- for (<$bindir/storage/*$opt_vs_config/*.dll>,
- <$bindir/plugin/*$opt_vs_config/*.dll>,
- <$bindir/libmariadb$opt_vs_config/*.dll>,
- <$bindir/sql$opt_vs_config/*.dll>)
+ if (!$opt_embedded_server)
{
- my $pname=basename($_);
- copy rel2abs($_), "$plugindir/$pname";
- set_plugin_var($pname);
+ for (<$bindir/storage/*$opt_vs_config/*.dll>,
+ <$bindir/plugin/*$opt_vs_config/*.dll>,
+ <$bindir/libmariadb$opt_vs_config/*.dll>,
+ <$bindir/sql$opt_vs_config/*.dll>)
+ {
+ my $pname=basename($_);
+ copy rel2abs($_), "$plugindir/$pname";
+ set_plugin_var($pname);
+ }
}
}
- }
- else
- {
- my $opt_use_copy= 1;
- if (symlink "$opt_vardir/run", "$plugindir/symlink_test")
- {
- $opt_use_copy= 0;
- unlink "$plugindir/symlink_test";
- }
-
- for (<$bindir/plugin/auth_pam/auth_pam_tool>)
+ else
{
- mkpath("$plugindir/auth_pam_tool_dir");
- if ($opt_use_copy)
+ my $opt_use_copy= 1;
+ if (symlink "$opt_vardir/run", "$plugindir/symlink_test")
{
- copy rel2abs($_), "$plugindir/auth_pam_tool_dir/auth_pam_tool"
+ $opt_use_copy= 0;
+ unlink "$plugindir/symlink_test";
}
- else
+
+ for (<$bindir/storage/*/*.so>,
+ <$bindir/plugin/*/*.so>,
+ <$bindir/plugin/*/auth_pam_tool_dir>,
+ <$bindir/libmariadb/plugins/*/*.so>,
+ <$bindir/libmariadb/*.so>,
+ <$bindir/sql/*.so>)
{
- symlink rel2abs($_), "$plugindir/auth_pam_tool_dir/auth_pam_tool";
+ my $pname=basename($_);
+ if ($opt_use_copy)
+ {
+ copy rel2abs($_), "$plugindir/$pname";
+ }
+ else
+ {
+ symlink rel2abs($_), "$plugindir/$pname";
+ }
+ set_plugin_var($pname);
}
}
-
- for (<$bindir/storage/*/*.so>,
- <$bindir/plugin/*/*.so>,
- <$bindir/plugin/*/auth_pam_tool_dir>,
- <$bindir/libmariadb/plugins/*/*.so>,
- <$bindir/libmariadb/*.so>,
- <$bindir/sql/*.so>)
+ }
+ else
+ {
+ # hm, what paths work for debs and for rpms ?
+ for (<$bindir/lib64/mysql/plugin/*.so>,
+ <$bindir/lib/mysql/plugin/*.so>,
+ <$bindir/lib64/mariadb/plugin/*.so>,
+ <$bindir/lib/mariadb/plugin/*.so>,
+ <$bindir/lib/plugin/*.so>, # bintar
+ <$bindir/lib/plugin/*.dll>)
{
my $pname=basename($_);
- if ($opt_use_copy)
- {
- copy rel2abs($_), "$plugindir/$pname";
- }
- else
- {
- symlink rel2abs($_), "$plugindir/$pname";
- }
set_plugin_var($pname);
+ $plugindir=dirname($_) unless $plugindir;
}
}
}
- else
- {
- $plugindir= $mysqld_variables{'plugin-dir'} || '.';
- # hm, what paths work for debs and for rpms ?
- for (<$bindir/lib64/mysql/plugin/*.so>,
- <$bindir/lib/mysql/plugin/*.so>,
- <$bindir/lib64/mariadb/plugin/*.so>,
- <$bindir/lib/mariadb/plugin/*.so>,
- <$bindir/lib/plugin/*.so>, # bintar
- <$bindir/lib/plugin/*.dll>)
- {
- my $pname=basename($_);
- set_plugin_var($pname);
- }
- }
# Remove old log files
foreach my $name (glob("r/*.progress r/*.log r/*.warnings"))
@@ -3750,6 +3905,25 @@ sub find_analyze_request
return $analyze;
}
+# The test can leave a file in var/tmp/ to signal
+# that all servers should be restarted
+sub restart_forced_by_test($)
+{
+ my $file = shift;
+ my $restart = 0;
+ foreach my $mysqld ( mysqlds() )
+ {
+ my $datadir = $mysqld->value('datadir');
+ my $force_restart_file = "$datadir/mtr/$file";
+ if ( -f $force_restart_file )
+ {
+ mtr_verbose("Restart of servers forced by test");
+ $restart = 1;
+ last;
+ }
+ }
+ return $restart;
+}
# Return timezone value of tinfo or default value
sub timezone {
@@ -4110,8 +4284,12 @@ sub run_testcase ($$) {
if ( $res == 0 )
{
my $check_res;
- if ( $opt_check_testcases and
- $check_res= check_testcase($tinfo, "after"))
+ if ( restart_forced_by_test('force_restart') )
+ {
+ stop_all_servers($opt_shutdown_timeout);
+ }
+ elsif ( $opt_check_testcases and
+ $check_res= check_testcase($tinfo, "after"))
{
if ($check_res == 1) {
# Test case had sideeffects, not fatal error, just continue
@@ -4146,7 +4324,8 @@ sub run_testcase ($$) {
find_testcase_skipped_reason($tinfo);
mtr_report_test_skipped($tinfo);
# Restart if skipped due to missing perl, it may have had side effects
- if ( $tinfo->{'comment'} =~ /^perl not found/ )
+ if ( restart_forced_by_test('force_restart_if_skipped') ||
+ $tinfo->{'comment'} =~ /^perl not found/ )
{
stop_all_servers($opt_shutdown_timeout);
}
@@ -5298,6 +5477,11 @@ sub server_need_restart {
return 0;
}
+ if ( $tinfo->{'force_restart'} ) {
+ mtr_verbose_restart($server, "forced in .opt file");
+ return 1;
+ }
+
if ( $opt_force_restart ) {
mtr_verbose_restart($server, "forced restart turned on");
return 1;
@@ -6392,6 +6576,7 @@ Misc options
servers to exit before finishing the process
fast Run as fast as possible, don't wait for servers
to shutdown etc.
+ force-restart Always restart servers between tests
parallel=N Run tests in N parallel threads (default 1)
Use parallel=auto for auto-setting of N
repeat=N Run each test N number of times
diff --git a/mysql-test/std_data/galera-cert.pem b/mysql-test/std_data/galera-cert.pem
new file mode 100644
index 00000000000..2996b330cc0
--- /dev/null
+++ b/mysql-test/std_data/galera-cert.pem
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAkGgAwIBAgIJAIlW4JmZGnU4MA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNV
+BAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQg
+Q29tcGFueSBMdGQwIBcNMTQxMDI0MDc1MTU1WhgPMzAxNDAyMjQwNzUxNTVaMEIx
+CzAJBgNVBAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0Rl
+ZmF1bHQgQ29tcGFueSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDDzU6xLZDD5rZENsOpTpTmqS8YisBaefU3ZeN7VJepZZ/7unM/1YLGJtuRh2Qa
+MyTkvyjzf7bSFsDt9L5lfQwBBblVeWkrCvGnQmHDQQYB7JrSmFDPz9W9Mxf9Q2BW
+B3lcoKXXJgMnWw0WGrt0lEdFp9gWbq8H9hwJdjpyyk4ZTIuucSOD4JUP3QFEhYU5
+kdcIbDRVw81J4eAZ6EdvbjDN05S7qWjW7rJTnCHAHEd18hcsMGwjpwhjEaSdhMrM
+mhOeL8kuQV0fI8v2xfYBliIn9xBZGOVzySPzwFmQceORlW6F3V5w6mwFkmuXqXWX
+Qo98swTu7mb89qVYmR71d3L3AgMBAAGjUDBOMB0GA1UdDgQWBBRdWet/kGNTyvXK
+wuBdP/eSldOgWjAfBgNVHSMEGDAWgBRdWet/kGNTyvXKwuBdP/eSldOgWjAMBgNV
+HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCcJpP+DR4AJxVelNTSZa+V38c+
+jgrMD2Ku2eU8NQlsjgMfNEU5Md/g7FpP8aCFzVf0kAAT7DxZmSE3uWXQbMXyVJmy
+bF+qXinf71QzdWULm6sASoshC6wbHnXL9ZjWQ3gh1nqVgo3MmLQYrb3eJfKaaLoc
+wpjhYxVxGFOx1ITN3jED64lUfoLHvR6NFbESYKAuAAzSNqX4HOQ3uGk2THM8JocZ
+oH2+38d81Kd4HQ7DDDKS/isG0+rR60Ti1cMgu7OT7p1dZCwT/KQuI5eGjE9lubkc
+yAJjaod4rVLdBri3XVvtySfS2+/75qUgv2TF7d/s7mxMq4DDt29yeKSUhZCs
+-----END CERTIFICATE-----
+-----BEGIN DH PARAMETERS-----
+MIGHAoGBAJWyvKjE+s7OP4Lj1jXKGlJGWT4Vd5YaxPljihTsRe1aXkWAgsuwISXk
+/TQ8Rx5Zmze7rtwtU0PoYxvuam9FMXYqhw2dVe4qRdeSX78DSiL/YBkQzaxlfWVy
+RE9+9dzHbCtRVDlN7K1kA+mGWH4/r7NAu4Qm/003V0NTtMwQSqebAgEC
+-----END DH PARAMETERS-----
+
diff --git a/mysql-test/std_data/galera-key.pem b/mysql-test/std_data/galera-key.pem
new file mode 100644
index 00000000000..c88c613cacf
--- /dev/null
+++ b/mysql-test/std_data/galera-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDDzU6xLZDD5rZE
+NsOpTpTmqS8YisBaefU3ZeN7VJepZZ/7unM/1YLGJtuRh2QaMyTkvyjzf7bSFsDt
+9L5lfQwBBblVeWkrCvGnQmHDQQYB7JrSmFDPz9W9Mxf9Q2BWB3lcoKXXJgMnWw0W
+Grt0lEdFp9gWbq8H9hwJdjpyyk4ZTIuucSOD4JUP3QFEhYU5kdcIbDRVw81J4eAZ
+6EdvbjDN05S7qWjW7rJTnCHAHEd18hcsMGwjpwhjEaSdhMrMmhOeL8kuQV0fI8v2
+xfYBliIn9xBZGOVzySPzwFmQceORlW6F3V5w6mwFkmuXqXWXQo98swTu7mb89qVY
+mR71d3L3AgMBAAECggEBAIMT0UdZSp1quL/nrYqNGa9kuSuDz4uCM3+3jNcGZVU4
+vCYHxpmINLi0UK8W5ROJA3zC4AZKjDgOlW93NXK5iKyyiUTIN3hiJi4jiVDuGbh2
+DZtH7mmAKAU1zCx2y2osLLmurfbe8qOJF7ShhrZfgWsHFujFhhUdU92dsTkhZ7EU
+2NF8ScxCo4PbOJoHC3j0ApfwCMxUMAKZF5+08EeKYqK7OAXI79HeIvEbHn3cUDGm
+bvg6ykwlz2UUO4sg+xdCmn1Bt36HF/4e973Y5fkE/vd9mryHIlu9t7GJgWyUiPr8
+BGEoAWDSpPOMd/b9ivtxh9Gd+LW/uitMuBIfrRPgz9kCgYEA+JqeeD2xqF2IzZyq
+i1UqgKe3su2U2zhkgbu1h/1M/reNIZGylF0wFs3P+kNIB2NavmHjXcgSjdJzqRL9
+XEWfFJRmeARo9RTEQEVd8zp1Eo8ISeiksGgvbL4rrNIRR5V5MZytfISRiGCWN6jx
+ulJ6EieQk5EcvknGlWpJY/bBsQ0CgYEAyaCLqrR38gVl2Z0t6YlhW/HWAwGt+lf4
+apN1AS4uykx7wRW2B0y9QUDfsrYeVlbbeRPP4UzPmJez+J2cweoIIeFFyo3KP2L7
+79E3EVYywjXhPg52F7OjFA4Bp970XclIC5Al7kDufSgwZmWdceSx4Jjc5ixyQEC8
+Ad0ThgP6yxMCgYAvC4OFmZcvF1Q2JLmZWGqMojB/KbqLqaZLbqwxqduSMEYC3kF/
+FgttpVEAOQ8+ZqzbbkbKjnwEXpkIm9FaTsqF6HdjquH5zw48Y2QeDSfudSbKZb4U
+rAKdf3dgYvhmJYEjxFSIRcYMmsqSieQEsGrtWJNheYqI8AkmaVCuHBoXWQKBgQCj
+daelNffD2wJuQNI28axfiRjSiSsNuQHpDTCfS1ydnxH5QGu5UUphO4HfdWv03SfC
+6f/vDIGEmQBLvyOVxfDf3qzhAMCFUO8kxj1ZrcMq1dmMoNa2cmj0WkKXYNZFrmfd
+D/jgRf3Ss6FBcoIJErnudp8nb8MUOibxb9RjIpjQxwKBgEliKaGN+/QkPTNJ4vXz
+609CIilxpE+YVTzlv3YeZP5HqsJTJPS2ARIUr/Pjpbl3LHfYNeeGDCwgkJIK0JJH
+iA1M51q6t3zG2y9gKmC15FF0jShoZkRgqBxqrSHAnrCo5t2C48ElxJ3FEU8T75sz
+dlGTbkmR0Wm43Kh++dWICJ3g
+-----END PRIVATE KEY-----
diff --git a/mysql-test/std_data/galera-upgrade-ca-cert.pem b/mysql-test/std_data/galera-upgrade-ca-cert.pem
new file mode 100644
index 00000000000..13d27e84bb3
--- /dev/null
+++ b/mysql-test/std_data/galera-upgrade-ca-cert.pem
@@ -0,0 +1,40 @@
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAkGgAwIBAgIJAIlW4JmZGnU4MA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNV
+BAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQg
+Q29tcGFueSBMdGQwIBcNMTQxMDI0MDc1MTU1WhgPMzAxNDAyMjQwNzUxNTVaMEIx
+CzAJBgNVBAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0Rl
+ZmF1bHQgQ29tcGFueSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDDzU6xLZDD5rZENsOpTpTmqS8YisBaefU3ZeN7VJepZZ/7unM/1YLGJtuRh2Qa
+MyTkvyjzf7bSFsDt9L5lfQwBBblVeWkrCvGnQmHDQQYB7JrSmFDPz9W9Mxf9Q2BW
+B3lcoKXXJgMnWw0WGrt0lEdFp9gWbq8H9hwJdjpyyk4ZTIuucSOD4JUP3QFEhYU5
+kdcIbDRVw81J4eAZ6EdvbjDN05S7qWjW7rJTnCHAHEd18hcsMGwjpwhjEaSdhMrM
+mhOeL8kuQV0fI8v2xfYBliIn9xBZGOVzySPzwFmQceORlW6F3V5w6mwFkmuXqXWX
+Qo98swTu7mb89qVYmR71d3L3AgMBAAGjUDBOMB0GA1UdDgQWBBRdWet/kGNTyvXK
+wuBdP/eSldOgWjAfBgNVHSMEGDAWgBRdWet/kGNTyvXKwuBdP/eSldOgWjAMBgNV
+HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCcJpP+DR4AJxVelNTSZa+V38c+
+jgrMD2Ku2eU8NQlsjgMfNEU5Md/g7FpP8aCFzVf0kAAT7DxZmSE3uWXQbMXyVJmy
+bF+qXinf71QzdWULm6sASoshC6wbHnXL9ZjWQ3gh1nqVgo3MmLQYrb3eJfKaaLoc
+wpjhYxVxGFOx1ITN3jED64lUfoLHvR6NFbESYKAuAAzSNqX4HOQ3uGk2THM8JocZ
+oH2+38d81Kd4HQ7DDDKS/isG0+rR60Ti1cMgu7OT7p1dZCwT/KQuI5eGjE9lubkc
+yAJjaod4rVLdBri3XVvtySfS2+/75qUgv2TF7d/s7mxMq4DDt29yeKSUhZCs
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDVzCCAj+gAwIBAgIJALBO5bqmtlYkMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNV
+BAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQg
+Q29tcGFueSBMdGQwHhcNMTUwNjI2MDcxMjQ1WhcNMjUwNTA0MDcxMjQ1WjBCMQsw
+CQYDVQQGEwJGSTEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MRwwGgYDVQQKDBNEZWZh
+dWx0IENvbXBhbnkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+1DlcztIzSngGeTUFibj9GZ4ZO78ASpgYySZv/DRIVn/3hbF41ZRD/6uJlb5rf1R7
+fpFsurbXNDDxeap7b/Gz2XSQy96Dbm0SbsFSZttV/R2WtlT1Wf5n9ix6RLqhKSbg
+nPyL2fsDaxtZh2uywGJEXhwXFtdx3deIo/tYivDfl5Tcsv0NnZY8Vg0boBRP+FEn
+ReJOdSa5LLn+QJN2Xa+wutbLHe0hI6huKUXU2YUeBfgyk1nWol5241ZUDCgDsoaW
+8r2YeJNHmNInd3wERbqFgFHsR4N1+Atcyrfn/uQSj9zrTPO/Pp51KpjWf/gjxjXP
+biu5De50qZ4+U4no20EIOwIDAQABo1AwTjAdBgNVHQ4EFgQU3kSPGchrOoQJ5gq1
+mmV2HEra6GswHwYDVR0jBBgwFoAU3kSPGchrOoQJ5gq1mmV2HEra6GswDAYDVR0T
+BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAfoBD64FJ9fAR19+vwueFGmpWNIqF
+PzN7QmEpCMduV3DXuxYO73q2ikXgrVO5HWFz9IjNvzXbSRmWNzJGaZ3QYZ+Xx1JJ
+8MrAOUr6djWuyD659f64dh/2jMxiQNoEHrknXm9HSqR5oJVwndFyr/zvSkYSRexE
+KFciIprb9LOba9G3ZMBYBdqK+f3Ky16BMjaD6XfaTx+xjHk/8peSueXIQl+v2biz
+zSfpEUa0dKCIxckrzD4JknDHFimTsrzlRftcg8t8piOXwZomFcnVunyGs2bJ/Npj
+25c2e6sx7XSc5bUgPGuQcSGflZPLg9zWyJ69sVYUNAz+gqfvWfOOJuzPNg==
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/galera-upgrade-server-cert.pem b/mysql-test/std_data/galera-upgrade-server-cert.pem
new file mode 100644
index 00000000000..3af8b1ae7dd
--- /dev/null
+++ b/mysql-test/std_data/galera-upgrade-server-cert.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDVzCCAj+gAwIBAgIJALBO5bqmtlYkMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNV
+BAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQg
+Q29tcGFueSBMdGQwHhcNMTUwNjI2MDcxMjQ1WhcNMjUwNTA0MDcxMjQ1WjBCMQsw
+CQYDVQQGEwJGSTEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MRwwGgYDVQQKDBNEZWZh
+dWx0IENvbXBhbnkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+1DlcztIzSngGeTUFibj9GZ4ZO78ASpgYySZv/DRIVn/3hbF41ZRD/6uJlb5rf1R7
+fpFsurbXNDDxeap7b/Gz2XSQy96Dbm0SbsFSZttV/R2WtlT1Wf5n9ix6RLqhKSbg
+nPyL2fsDaxtZh2uywGJEXhwXFtdx3deIo/tYivDfl5Tcsv0NnZY8Vg0boBRP+FEn
+ReJOdSa5LLn+QJN2Xa+wutbLHe0hI6huKUXU2YUeBfgyk1nWol5241ZUDCgDsoaW
+8r2YeJNHmNInd3wERbqFgFHsR4N1+Atcyrfn/uQSj9zrTPO/Pp51KpjWf/gjxjXP
+biu5De50qZ4+U4no20EIOwIDAQABo1AwTjAdBgNVHQ4EFgQU3kSPGchrOoQJ5gq1
+mmV2HEra6GswHwYDVR0jBBgwFoAU3kSPGchrOoQJ5gq1mmV2HEra6GswDAYDVR0T
+BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAfoBD64FJ9fAR19+vwueFGmpWNIqF
+PzN7QmEpCMduV3DXuxYO73q2ikXgrVO5HWFz9IjNvzXbSRmWNzJGaZ3QYZ+Xx1JJ
+8MrAOUr6djWuyD659f64dh/2jMxiQNoEHrknXm9HSqR5oJVwndFyr/zvSkYSRexE
+KFciIprb9LOba9G3ZMBYBdqK+f3Ky16BMjaD6XfaTx+xjHk/8peSueXIQl+v2biz
+zSfpEUa0dKCIxckrzD4JknDHFimTsrzlRftcg8t8piOXwZomFcnVunyGs2bJ/Npj
+25c2e6sx7XSc5bUgPGuQcSGflZPLg9zWyJ69sVYUNAz+gqfvWfOOJuzPNg==
+-----END CERTIFICATE-----
diff --git a/mysql-test/std_data/galera-upgrade-server-key.pem b/mysql-test/std_data/galera-upgrade-server-key.pem
new file mode 100644
index 00000000000..d243c9e0381
--- /dev/null
+++ b/mysql-test/std_data/galera-upgrade-server-key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDUOVzO0jNKeAZ5
+NQWJuP0Znhk7vwBKmBjJJm/8NEhWf/eFsXjVlEP/q4mVvmt/VHt+kWy6ttc0MPF5
+qntv8bPZdJDL3oNubRJuwVJm21X9HZa2VPVZ/mf2LHpEuqEpJuCc/IvZ+wNrG1mH
+a7LAYkReHBcW13Hd14ij+1iK8N+XlNyy/Q2dljxWDRugFE/4USdF4k51Jrksuf5A
+k3Zdr7C61ssd7SEjqG4pRdTZhR4F+DKTWdaiXnbjVlQMKAOyhpbyvZh4k0eY0id3
+fARFuoWAUexHg3X4C1zKt+f+5BKP3OtM878+nnUqmNZ/+CPGNc9uK7kN7nSpnj5T
+iejbQQg7AgMBAAECggEBAJ4m7VG3db+uOGzFJY5fzEX1+qn6ibYNKJNmUJfrQmkr
+zgLUoc7QQehbJhnwoN1v0OQebZ+rOC7NtnZLpNdkkPmhk3JKLTnykIT3DnhWRftt
+vG2+XGUnYMQkmy1ywz0Omt6CmZnlJMQByrNPgBM8Z+SWHGLKRTHkOBCz82T/YjDr
+wqug1Yv6W0wMNM/cikgoBldVG7hABCJuShjffIbUgVysK3dEPNywNAC78neoGECm
+evPZOaIkWEr86SpAlwA6Yh+zTQZ03CXATcGonJdWJ015DvlKRv6QyRR0Q/Y1ONwb
+f115kll15MJBEspFdSyhlMcVJlwO8WMaZ2qIzlQZmdECgYEA//P469QzX00L/urK
+7IRvtSVu5CP/A/Wui90U4KoP7XgXIeExnEtzLVs1K7vjuzdpTyq+68XuC40gPcJW
+RvoX229m6gRV8nC53UiV71jM8IvkyEqFYT/gfZC9KQCMSRJLtVnDMpZ3gMxAY6/5
+p20o616Au8DKFFetQV0aD4Hj1/MCgYEA1ENV1WkgvN6yItB77E9kN/vbKLRh0hrg
+9xj0SmMXGYyDM9NpjbgbgJIZo3ukkBtp3kEY8P9JQZRcd1EcnnSrwTB7ChdInWkR
+m/LpIZBEMqNQbeu4QSzZYYS6z4tcGGx43aHqzzNBZdnQnqhYL1CvlLwhkgX6oQCo
+woXqyfMNKJkCgYEA63gD1NGPwWkcVBSlQxpDup8JeZE0Fux6++kUP+u0Y39LqLuH
+7IXtHBkAvY9JXv8HPvHQWw/og2/97VNQFFQYhqPiRgBfIX9bPpx8c4l6YQISI8GL
+G4CsglgZ7hK2/LJ8PAascWnD3xYJVqyaPNFMB90VCaW/Qx+2IKAKTaHtfskCgYBu
+1f5C4pMqrCpeTXj4Cvis1wE4PwB5QnnH7SrakOVl/N4huLn8O2948lEa8Zwbd4UP
+ffR1Gwh4iuzBjQQhpZBt30/QFBphv5RnVy7uzLMfsfF0hEqBFdcoubMGXqGnSzTN
+nhfLO9thQJxTzFnH0xzr0FTDOAYH/h0g/eZ8r0JmuQKBgQDjhXM+hJ3Pkwua+Fnl
+nZfY5MeSzkJki/9iwVo8rSDwmZS9Nsc83oZnddM7c2x63t+zYOAcMxsVCiByMDzo
+5IB781HWRBGcU8TnW1b0bAnZimjKp/qsZ/Szr38rvImqG8TjzbcSD7w0SpyRQ/Ot
+A7SZFkWYfem8/q/VImjU/CNbOQ==
+-----END PRIVATE KEY-----
diff --git a/mysql-test/suite.pm b/mysql-test/suite.pm
index 7f9838f645e..cf030dc8827 100644
--- a/mysql-test/suite.pm
+++ b/mysql-test/suite.pm
@@ -22,6 +22,9 @@ sub skip_combinations {
$skip{'include/maybe_debug.combinations'} =
[ defined $::mysqld_variables{'debug-dbug'} ? 'release' : 'debug' ];
+ $skip{'include/have_debug.inc'} = 'Requires debug build'
+ unless defined $::mysqld_variables{'debug-dbug'};
+
# and for the wrong word size
# check for exact values, in case the default changes to be small everywhere
my $longsysvar= $::mysqld_variables{'max-binlog-stmt-cache-size'};
@@ -36,13 +39,6 @@ sub skip_combinations {
$skip{'include/not_embedded.inc'} = 'Not run for embedded server'
if $::opt_embedded_server;
- $skip{'include/have_debug.inc'} = 'Requires debug build'
- unless defined $::mysqld_variables{'debug-dbug'};
-
- $skip{'include/have_ssl_communication.inc'} =
- $skip{'include/have_ssl_crypto_functs.inc'} = 'Requires SSL'
- unless defined $::mysqld_variables{'ssl-ca'};
-
$skip{'include/have_example_plugin.inc'} = 'Need example plugin'
unless $ENV{HA_EXAMPLE_SO};
@@ -51,6 +47,21 @@ sub skip_combinations {
$skip{'main/plugin_loaderr.test'} = 'needs compiled-in innodb'
unless $::mysqld_variables{'innodb'} eq "ON";
+ $skip{'include/have_mariabackup.inc'} = 'Need mariabackup'
+ unless ::have_mariabackup();
+
+ $skip{'include/have_mariabackup.inc'} = 'Need ss'
+ unless ::which("ss");
+
+ $skip{'include/have_mariabackup.inc'} = 'Need socat or nc'
+ unless $ENV{MTR_GALERA_TFMT};
+
+ $skip{'include/have_garbd.inc'} = 'Need garbd'
+ unless ::have_garbd();
+
+ $skip{'include/have_file_key_management.inc'} = 'Needs file_key_management plugin'
+ unless $ENV{FILE_KEY_MANAGEMENT_SO};
+
# disable tests that use ipv6, if unsupported
sub ipv6_ok() {
use Socket;
@@ -62,22 +73,31 @@ sub skip_combinations {
}
$skip{'include/check_ipv6.inc'} = 'No IPv6' unless ipv6_ok();
- $skip{'main/openssl_6975.test'} = 'no or wrong openssl version'
- unless $::mysqld_variables{'version-ssl-library'} =~ /OpenSSL (\S+)/
- and $1 ge "1.0.1d" and $1 lt "1.1.1";
+ # SSL is complicated
+ my $ssl_lib= $::mysqld_variables{'version-ssl-library'};
+ my $openssl_ver= $ssl_lib =~ /OpenSSL (\S+)/ ? $1 : "";
- sub x509v3_ok() {
- return ($::mysqld_variables{'version-ssl-library'} =~ /WolfSSL/) ||
- ($::mysqld_variables{'version-ssl-library'} =~ /OpenSSL (\S+)/
- and $1 ge "1.0.2");
- }
+ $skip{'include/have_ssl_communication.inc'} =
+ $skip{'include/have_ssl_crypto_functs.inc'} = 'Requires SSL' unless $ssl_lib;
+
+ $skip{'main/openssl_6975.test'} = 'no or wrong openssl version'
+ unless $openssl_ver ge "1.0.1d" and $openssl_ver lt "1.1.1";
$skip{'main/ssl_7937.combinations'} = [ 'x509v3' ]
- unless x509v3_ok();
+ unless $ssl_lib =~ /WolfSSL/ or $openssl_ver ge "1.0.2";
$skip{'main/ssl_verify_ip.test'} = 'x509v3 support required'
- unless $::mysqld_variables{'version-ssl-library'} =~ /OpenSSL (\S+)/
- and $1 ge "1.0.2";
+ unless $openssl_ver ge "1.0.2";
+
+ my $openssl_cnf='/etc/ssl/openssl.cnf';
+ if ($openssl_ver and open my $f, '<', $openssl_cnf) {
+ local $/;
+ my $cnf=<$f>;
+ $skip{'main/tls_version.test'} = "TLSv1.1 disabled in $openssl_cnf"
+ if $cnf =~ /^\s*MinProtocol\s*=\s*TLSv1.[2-9]/m;
+ $skip{'main/tls_version1.test'} = "TLSv1.0 disabled in $openssl_cnf"
+ if $cnf =~ /^\s*MinProtocol\s*=\s*TLSv1.[1-9]/m;
+ }
%skip;
}
diff --git a/mysql-test/suite/binlog/include/drop_temp_table.test b/mysql-test/suite/binlog/include/drop_temp_table.test
index c852ee4c8a0..4241974d813 100644
--- a/mysql-test/suite/binlog/include/drop_temp_table.test
+++ b/mysql-test/suite/binlog/include/drop_temp_table.test
@@ -14,12 +14,8 @@ CREATE TEMPORARY TABLE `table:name` (a INT);
CREATE TEMPORARY TABLE shortn2 (a INT);
##############################################################################
-# BUG#46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior
-# in ROW mode
-#
-# In RBR, 'DROP TEMPORARY TABLE ...' statement should never be binlogged no
-# matter if the tables exist or not. In contrast, both in SBR and MBR, the
-# statement should be always binlogged no matter if the tables exist or not.
+# MDEV-20091: DROP TEMPORARY TABLE IF EXISTS statements will be written
+# to binlog only if the corresponding temporary table exists.
##############################################################################
CREATE TEMPORARY TABLE tmp(c1 int);
CREATE TEMPORARY TABLE tmp1(c1 int);
@@ -30,12 +26,12 @@ CREATE TABLE t(c1 int);
DROP TEMPORARY TABLE IF EXISTS tmp;
--disable_warnings
-# Before fixing BUG#46572, 'DROP TEMPORARY TABLE IF EXISTS...' statement was
-# binlogged when the table did not exist in RBR.
+# Post MDEV-20091: Following DROP TEMPORARY TABLE statement should not be
+# logged as the table is already dropped above.
DROP TEMPORARY TABLE IF EXISTS tmp;
-# In RBR, 'DROP TEMPORARY TABLE ...' statement is never binlogged no matter if
-# the tables exist or not.
+# Post MDEV-20091: Only DROP TEMPORARY TABLE statement should be written only
+# for 'tmp1' table.
DROP TEMPORARY TABLE IF EXISTS tmp, tmp1;
DROP TEMPORARY TABLE tmp3;
@@ -79,6 +75,12 @@ DROP DATABASE `drop-temp+table-test`;
# if there are open temporary tables. As such the implicit drop
# for temporary tables on session closing must be logged.
#
+# MDEV-20091: DROP TEMPORARY TABLE IF EXISTS statements will be written to
+# binlog only if the corresponding temporary table exists. In row based
+# replication temporary tables are not replicated hence their corresponding
+# DROP TEMPORARY TABLE statement will be not be written to binary log upon
+# session closure.
+#
RESET MASTER;
@@ -92,8 +94,10 @@ SELECT @@session.binlog_format;
--disconnect con1
-- connection default
+if (!`SELECT @@BINLOG_FORMAT = 'ROW'`) {
--let $wait_binlog_event= DROP
--source include/wait_for_binlog_event.inc
+}
-- source include/show_binlog_events.inc
RESET MASTER;
diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result
new file mode 100644
index 00000000000..e94f17b9489
--- /dev/null
+++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result
@@ -0,0 +1,16 @@
+RESET MASTER;
+include/stop_dump_threads.inc
+# Step-1: Execute some dummy statements.
+CREATE TABLE t1(i int);
+INSERT INTO t1 values (1);
+# Step-2: Disable binary log temporarily and drop the table 't1'.
+set @@SESSION.SQL_LOG_BIN = 0;
+DROP TABLE t1;
+set @@SESSION.SQL_LOG_BIN = 1;
+# Step-3: Execute MYSQL_BINLOG with --stop-never and source it to mysql client.
+# Step-4: Wait till dump thread transfer is completed.
+# Step-5: Check that the data is there.
+# Step-6: Cleanup
+# kill the dump thread serving the mysqlbinlog --stop-never process
+include/stop_dump_threads.inc
+DROP TABLE t1;
diff --git a/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result b/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result
index d63538e5318..c4a1ba9b83b 100644
--- a/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result
+++ b/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result
@@ -105,6 +105,4 @@ BEGIN
# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number #
# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F
COMMIT/*!*/;
-# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl
-DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t5`
DROP TABLE t1;
diff --git a/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
index 4b35170b2db..831a1c8a9a3 100644
--- a/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
+++ b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
@@ -35,15 +35,9 @@ master-bin.000001 # Query # # CREATE DATABASE `drop-temp+table-test`
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TABLE t(c1 int)
master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp` /* generated by server */
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp` /* generated by server */
-master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `t` /* generated by server */
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `tmp2`,`t` /* generated by server */
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `shortn2`,`table:name`,`shortn1`
DROP DATABASE `drop-temp+table-test`;
RESET MASTER;
CREATE TABLE t1 ( i text );
@@ -65,7 +59,5 @@ master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES ('1')
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `ttmp1`
RESET MASTER;
DROP TABLE t1;
diff --git a/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result b/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
index 0bff58fda2a..88d1f7dd42e 100644
--- a/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
+++ b/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
@@ -348,8 +348,6 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t1`,`ti`
do release_lock("lock1");
drop table t0,t2;
set autocommit=0;
diff --git a/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
index 8340420f5ad..4bca7cbe298 100644
--- a/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
+++ b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
@@ -51,12 +51,8 @@ master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TABLE t(c1 int)
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp` /* generated by server */
master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp` /* generated by server */
-master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp1` /* generated by server */
master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp` /* generated by server */
-master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TEMPORARY TABLE `tmp3` /* generated by server */
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp2` /* generated by server */
diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test
new file mode 100644
index 00000000000..d73e453ce96
--- /dev/null
+++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test
@@ -0,0 +1,66 @@
+# ==== Purpose ====
+#
+# Test verifies that continuous streaming of binary log content using the
+# "mysqlbinlog --stop-never" option and sourcing it to mysql client works
+# fine.
+#
+# ==== Implementation ====
+#
+# Steps:
+# 1 - Create a table on a server on which binary log is enabled and insert
+# a row.
+# 2 - Disable the binary log on the server and drop the table.
+# 3 - Capture the binary log output using "mysqlbinlog --stop_never" option
+# and source it to mysql client.
+# 4 - Query the PROCESSLIST table to ensure that the dump thread which is
+# serving "stop_never" option has read entire binlog.
+# 5 - Verify that the table is populated on the server.
+# 6 - Cleanup.
+#
+# ==== References ====
+#
+# MDEV-11154: Write_on_release_cache(log_event.cc) function will not write
+# "COMMIT", if use "mysqlbinlog ... | mysql ..."
+
+--source include/not_windows.inc
+
+# Test is not specific to any binlog format. Hence Running only for 'row'.
+--source include/have_binlog_format_row.inc
+
+# binlog file name is needed in the test. To use master-bin.000001,
+# RESET MASTER is needed.
+RESET MASTER;
+# kill the dump threads if there any dump threads (may be from previous test)
+--source include/stop_dump_threads.inc
+
+--echo # Step-1: Execute some dummy statements.
+CREATE TABLE t1(i int);
+INSERT INTO t1 values (1);
+
+--echo # Step-2: Disable binary log temporarily and drop the table 't1'.
+set @@SESSION.SQL_LOG_BIN = 0;
+DROP TABLE t1;
+set @@SESSION.SQL_LOG_BIN = 1;
+
+--echo # Step-3: Execute MYSQL_BINLOG with --stop-never and source it to mysql client.
+--write_file $MYSQL_TMP_DIR/mysqlbinlog_stop_never.sh
+(`$MYSQL_BINLOG --read-from-remote-server --stop-never --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 | $MYSQL --user=root --protocol=tcp --host=127.0.0.1 --port=$MASTER_MYPORT`) < /dev/null > /dev/null 2>&1 &
+EOF
+--exec /bin/bash $MYSQL_TMP_DIR/mysqlbinlog_stop_never.sh
+
+--echo # Step-4: Wait till dump thread transfer is completed.
+let $wait_condition= SELECT id from information_schema.processlist where processlist.command like '%Binlog%' and state like '%Master has sent%';
+--source include/wait_condition.inc
+
+--echo # Step-5: Check that the data is there.
+let $count= 1;
+let $table= test.t1;
+source include/wait_until_rows_count.inc;
+
+--echo # Step-6: Cleanup
+--echo # kill the dump thread serving the mysqlbinlog --stop-never process
+--source include/stop_dump_threads.inc
+
+DROP TABLE t1;
+--remove_file $MYSQL_TMP_DIR/mysqlbinlog_stop_never.sh
+
diff --git a/mysql-test/suite/encryption/r/debug_key_management.result b/mysql-test/suite/encryption/r/debug_key_management.result
index c06d2bb3965..911a369f0c6 100644
--- a/mysql-test/suite/encryption/r/debug_key_management.result
+++ b/mysql-test/suite/encryption/r/debug_key_management.result
@@ -4,6 +4,7 @@ show variables like 'innodb_encrypt%';
Variable_name Value
innodb_encrypt_log ON
innodb_encrypt_tables ON
+innodb_encrypt_temporary_tables OFF
innodb_encryption_rotate_key_age 2
innodb_encryption_rotation_iops 100
innodb_encryption_threads 4
diff --git a/mysql-test/suite/encryption/r/innochecksum.result b/mysql-test/suite/encryption/r/innochecksum.result
index 98bc92ec015..5dc6ed90acc 100644
--- a/mysql-test/suite/encryption/r/innochecksum.result
+++ b/mysql-test/suite/encryption/r/innochecksum.result
@@ -27,8 +27,7 @@ CREATE TABLE t6 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB;
# Run innochecksum on t2
# Run innochecksum on t3
# Run innochecksum on t6
-# In new checksum format, checksum calculated for whole page.
-# So It should affected.
+# Space ID mismatch
# Restore the original tables
# Corrupt FIL_DATA+10 (data)
# Run innochecksum on t2
diff --git a/mysql-test/suite/encryption/r/innodb-encryption-alter.result b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
index 8a4ab8088d5..934f0607958 100644
--- a/mysql-test/suite/encryption/r/innodb-encryption-alter.result
+++ b/mysql-test/suite/encryption/r/innodb-encryption-alter.result
@@ -96,7 +96,6 @@ connection default;
SET DEBUG_SYNC = 'now WAIT_FOR done';
SET GLOBAL innodb_flush_log_at_trx_commit=1;
COMMIT;
-# restart
disconnect con1;
select * from t1;
f1 f2
diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_log.result b/mysql-test/suite/encryption/r/innodb_encrypt_log.result
index e71bb6e8aec..86446e4eabd 100644
--- a/mysql-test/suite/encryption/r/innodb_encrypt_log.result
+++ b/mysql-test/suite/encryption/r/innodb_encrypt_log.result
@@ -22,6 +22,8 @@ key (col_int_key),
key (col_char_key)
) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
CREATE TEMPORARY TABLE t LIKE t0;
+Warnings:
+Warning 1478 Ignoring encryption parameter during temporary table creation.
INSERT INTO t VALUES
(NULL,1,1,'private','secret'),(NULL,2,2,'sacred','success'),
(NULL,3,3,'story','secure'),(NULL,4,4,'security','sacrament');
diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_temporary_tables.result b/mysql-test/suite/encryption/r/innodb_encrypt_temporary_tables.result
new file mode 100644
index 00000000000..9a291ae1354
--- /dev/null
+++ b/mysql-test/suite/encryption/r/innodb_encrypt_temporary_tables.result
@@ -0,0 +1,19 @@
+SELECT variable_value into @old_encrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_encrypted';
+SELECT variable_value into @old_decrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_decrypted';
+CREATE TEMPORARY TABLE t1(f1 CHAR(200), f2 CHAR(200)) ENGINE=InnoDB;
+INSERT INTO t1 (f1,f2) SELECT '', '' FROM seq_1_to_8192;
+CREATE TEMPORARY TABLE t2(f1 CHAR(100), f2 CHAR(200), f3 CHAR(200))ENGINE=InnoDB;
+INSERT INTO t2 (f1,f2,f3) SELECT '', '', '' FROM seq_1_to_8192;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+8192
+SELECT variable_value > @old_encrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_encrypted';
+variable_value > @old_encrypted
+1
+SELECT variable_value > @old_decrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_decrypted';
+variable_value > @old_decrypted
+1
diff --git a/mysql-test/suite/encryption/r/innodb_encryption.result b/mysql-test/suite/encryption/r/innodb_encryption.result
index ab31eed5cf2..4ede82ebd38 100644
--- a/mysql-test/suite/encryption/r/innodb_encryption.result
+++ b/mysql-test/suite/encryption/r/innodb_encryption.result
@@ -3,6 +3,7 @@ SHOW VARIABLES LIKE 'innodb_encrypt%';
Variable_name Value
innodb_encrypt_log ON
innodb_encrypt_tables ON
+innodb_encrypt_temporary_tables OFF
innodb_encryption_rotate_key_age 15
innodb_encryption_rotation_iops 100
innodb_encryption_threads 4
@@ -58,6 +59,7 @@ SHOW VARIABLES LIKE 'innodb_encrypt%';
Variable_name Value
innodb_encrypt_log ON
innodb_encrypt_tables OFF
+innodb_encrypt_temporary_tables OFF
innodb_encryption_rotate_key_age 15
innodb_encryption_rotation_iops 100
innodb_encryption_threads 0
diff --git a/mysql-test/suite/encryption/t/innochecksum.test b/mysql-test/suite/encryption/t/innochecksum.test
index 0cc48e53fc9..0f44844c103 100644
--- a/mysql-test/suite/encryption/t/innochecksum.test
+++ b/mysql-test/suite/encryption/t/innochecksum.test
@@ -209,9 +209,8 @@ EOF
--exec $INNOCHECKSUM $t3_IBD
--echo # Run innochecksum on t6
---echo # In new checksum format, checksum calculated for whole page.
---echo # So It should affected.
---error $error_code
+--echo # Space ID mismatch
+--error 1
--exec $INNOCHECKSUM $t6_IBD
--enable_result_log
diff --git a/mysql-test/suite/encryption/t/innodb-encryption-alter.test b/mysql-test/suite/encryption/t/innodb-encryption-alter.test
index d9a0e4e95cd..f0177b2ca4e 100644
--- a/mysql-test/suite/encryption/t/innodb-encryption-alter.test
+++ b/mysql-test/suite/encryption/t/innodb-encryption-alter.test
@@ -123,6 +123,8 @@ SET DEBUG_SYNC = 'now WAIT_FOR done';
SET GLOBAL innodb_flush_log_at_trx_commit=1;
COMMIT;
+let $restart_parameters = --innodb_encryption_threads=2;
+let $restart_noprint = 2;
--let $shutdown_timeout= 0
--source include/restart_mysqld.inc
disconnect con1;
diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.opt b/mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.opt
new file mode 100644
index 00000000000..edd8e10f935
--- /dev/null
+++ b/mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.opt
@@ -0,0 +1,3 @@
+--innodb_buffer_pool_size=5M
+--innodb_encrypt_temporary_tables=1
+--innodb-checksum-algorithm=crc32
diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.test b/mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.test
new file mode 100644
index 00000000000..779e77a4540
--- /dev/null
+++ b/mysql-test/suite/encryption/t/innodb_encrypt_temporary_tables.test
@@ -0,0 +1,22 @@
+--source include/have_sequence.inc
+--source include/have_innodb.inc
+--source include/have_file_key_management_plugin.inc
+
+SELECT variable_value into @old_encrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_encrypted';
+
+SELECT variable_value into @old_decrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_decrypted';
+
+CREATE TEMPORARY TABLE t1(f1 CHAR(200), f2 CHAR(200)) ENGINE=InnoDB;
+INSERT INTO t1 (f1,f2) SELECT '', '' FROM seq_1_to_8192;
+
+CREATE TEMPORARY TABLE t2(f1 CHAR(100), f2 CHAR(200), f3 CHAR(200))ENGINE=InnoDB;
+INSERT INTO t2 (f1,f2,f3) SELECT '', '', '' FROM seq_1_to_8192;
+
+SELECT COUNT(*) FROM t1;
+SELECT variable_value > @old_encrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_encrypted';
+
+SELECT variable_value > @old_decrypted FROM information_schema.global_status
+WHERE variable_name = 'innodb_encryption_n_temp_blocks_decrypted';
diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def
index 8b3e5500709..c141d41ed35 100644
--- a/mysql-test/suite/galera/disabled.def
+++ b/mysql-test/suite/galera/disabled.def
@@ -10,34 +10,30 @@
#
##############################################################################
-GAL-419 : MDEV-13549 Galera test failures
+MW-286 : MDEV-19992 Galera test failure on MW-286
GCF-1081 : MDEV-18283 Galera test failure on galera.GCF-1081
MW-328A : MDEV-17847 Galera test failure on MW-328[A|B|C]
MW-328B : MDEV-17847 Galera test failure on MW-328[A|B|C]
MW-328C : MDEV-17847 Galera test failure on MW-328[A|B|C]
-MW-329 : wsrep_local_replays not stable
-MW-336 : MDEV-13549 incorrect wait_condition for wsrep_slave_threads changes
+MW-329 : MDEV-19962 Galera test failure on MW-329
MW-360 : needs rewrite to be MariaDB gtid compatible
-MW-336 : MDEV-19746 Galera test failures because of wsrep_slave_threads identification
-MW-416 : MDEV-13549 Galera test failures
-MW-44 : MDEV-15809 Test failure on galera.MW-44
+MW-388: MDEV-19803 Long semaphore wait error on galera.MW-388
galera_account_management : MariaDB 10.0 does not support ALTER USER
galera_as_master_gtid : Requires MySQL GTID
galera_as_master_gtid_change_master : Requires MySQL GTID
galera_as_slave_gtid_replicate_do_db_cc : Requires MySQL GTID
galera_as_slave_preordered : wsrep-preordered feature not merged to MariaDB
galera_as_slave_replication_bundle : MDEV-15785 OPTION_GTID_BEGIN is set in Gtid_log_event::do_apply_event()
-galera_autoinc_sst_mariabackup : MDEV-18177 Galera test failure on galera_autoinc_sst_mariabackup
+galera_autoinc_sst_mariabackup : MDEV-19926 Galera SST tests fail
galera_bf_abort_group_commit : MDEV-18282 Galera test failure on galera.galera_bf_abort_group_commit
galera_binlog_rows_query_log_events: MariaDB does not support binlog_rows_query_log_events
+galera_binlog_stmt_autoinc: MDEV-19959 Galera test failure on galera_binlog_stmt_autoinc
galera_concurrent_ctas : MDEV-18180 Galera test failure on galera.galera_concurrent_ctas
galera_encrypt_tmp_files : Get error failed to enable encryption of temporary files
galera_flush : MariaDB does not have global.thread_statistics
galera_gcache_recover_manytrx : MDEV-18834 Galera test failure
galera_ist_mariabackup : MDEV-18829 test leaves port open
-galera_ist_progress: MDEV-15236 fails when trying to read transfer status
-galera_kill_applier : race condition at the start of the test
-galera_kill_ddl : MDEV-17108 Test failure on galera.galera_kill_ddl
+galera_ist_progress : MDEV-15236 fails when trying to read transfer status
galera_kill_largechanges : MDEV-18179 Galera test failure on galera.galera_kill_largechanges
galera_kill_nochanges : MDEV-18280 Galera test failure on galera_split_brain and galera_kill_nochanges
galera_many_tables_nopk : MDEV-18182 Galera test failure on galera.galera_many_tables_nopk
@@ -50,9 +46,7 @@ galera_var_node_address : MDEV-17151 Galera test failure
galera_var_notify_cmd : MDEV-13549 Galera test failures
galera_var_reject_queries : assertion in inline_mysql_socket_send
galera_var_retry_autocommit: MDEV-18181 Galera test failure on galera.galera_var_retry_autocommit
-galera_var_slave_threads : MDEV-19746 Galera test failures because of wsrep_slave_threads identification
+galera_sst_mariabackup_encrypt_with_key : MDEV-19926 Galera SST tests fail
galera_wan : MDEV-17259: Test failure on galera.galera_wan
mysql-wsrep#198 : MDEV-18935 Galera test mysql-wsrep#198 sporaric assertion transaction.cpp:362: int wsrep::transaction::before_commit(): Assertion `state() == s_executing || state() == s_committing || state() == s_must_abort || state() == s_replaying' failed.
-partition : MDEV-13549 regularly showing auto_increment mismatch
-pxc-421: Lock timeout exceeded
-query_cache : MDEV-18137: Galera test failure on query_cache
+partition : MDEV-19958 Galera test failure on galera.partition
diff --git a/mysql-test/suite/galera/include/have_filekeymanagement.inc b/mysql-test/suite/galera/include/have_filekeymanagement.inc
deleted file mode 100644
index f5507ca4548..00000000000
--- a/mysql-test/suite/galera/include/have_filekeymanagement.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-#
-# Used in galera/suite.pm to check file key management plugin
-#
diff --git a/mysql-test/suite/galera/r/GAL-419.result b/mysql-test/suite/galera/r/GAL-419.result
index 410c91b4f98..74508a1e75e 100644
--- a/mysql-test/suite/galera/r/GAL-419.result
+++ b/mysql-test/suite/galera/r/GAL-419.result
@@ -1,4 +1,12 @@
+connection node_2;
+connection node_1;
+call mtr.add_suppression("WSREP: It may not be safe to bootstrap the cluster from this node.*");
+call mtr.add_suppression("Aborting");
+connection node_2;
SET SESSION wsrep_sync_wait = 0;
Killing server ...
+connection node_1;
SET SESSION wsrep_sync_wait = 0;
Killing server ...
+connection node_1;
+connection node_2;
diff --git a/mysql-test/suite/galera/r/MW-329.result b/mysql-test/suite/galera/r/MW-329.result
index 334ff9f80fb..54d55eea7ca 100644
--- a/mysql-test/suite/galera/r/MW-329.result
+++ b/mysql-test/suite/galera/r/MW-329.result
@@ -1,3 +1,5 @@
+connection node_2;
+connection node_1;
CALL mtr.add_suppression("WSREP: .*conflict state . after post commit .*");
CREATE TABLE t1 (f1 INTEGER, f2 CHAR(20) DEFAULT 'abc') ENGINE=InnoDB;
INSERT INTO t1 (f1) VALUES (1),(65535);
@@ -7,13 +9,11 @@ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
SET SESSION wsrep_sync_wait = 0;
WHILE 1 DO
INSERT INTO t1 (f1) VALUES (FLOOR( 1 + RAND( ) * 65535 ));
+SELECT SLEEP(0.1);
END WHILE;
END|
connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
connection node_1b;
-CALL proc_insert();;
-wsrep_local_replays
-1
connection node_1;
connection node_1b;
connection node_1;
diff --git a/mysql-test/suite/galera/r/MW-336.result b/mysql-test/suite/galera/r/MW-336.result
index 4470cca51fb..2d0ebdc95b0 100644
--- a/mysql-test/suite/galera/r/MW-336.result
+++ b/mysql-test/suite/galera/r/MW-336.result
@@ -1,41 +1,53 @@
connection node_2;
connection node_1;
-CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
-INSERT INTO t1 values(0);
connection node_1;
+CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
SET GLOBAL wsrep_slave_threads = 10;
+# Set slave threads to 10 step 1
SET GLOBAL wsrep_slave_threads = 1;
-# Wait 10 slave threads to start 1
connection node_2;
-SET SESSION wsrep_sync_wait=15;
-# Generate 100 replication events
+INSERT INTO t1 VALUES (1);
connection node_1;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) FROM t1;
COUNT(*)
-101
-# Wait 9 slave threads to exit 1
+1
SET GLOBAL wsrep_slave_threads = 10;
-# Wait 10 slave threads to start 2
+# Set slave threads to 10 step 2
SET GLOBAL wsrep_slave_threads = 20;
-# Wait 20 slave threads to start 3
+# Set slave threads to 20
SET GLOBAL wsrep_slave_threads = 1;
connection node_2;
-# Generate 100 replication events
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (2);
+INSERT INTO t1 VALUES (3);
+INSERT INTO t1 VALUES (4);
+INSERT INTO t1 VALUES (5);
+INSERT INTO t1 VALUES (6);
+INSERT INTO t1 VALUES (7);
+INSERT INTO t1 VALUES (8);
+INSERT INTO t1 VALUES (9);
+INSERT INTO t1 VALUES (10);
connection node_1;
+SET GLOBAL wsrep_slave_threads = 10;
SELECT COUNT(*) FROM t1;
COUNT(*)
-201
-# Wait 10 slave threads to exit 3
-SET GLOBAL wsrep_slave_threads = 10;
-SET GLOBAL wsrep_slave_threads = 1;
-# Wait 10 slave threads to start 3
+11
+# Set slave threads to 10 step 3
connection node_2;
-# Generate 100 replication events
+INSERT INTO t1 VALUES (11);
+INSERT INTO t1 VALUES (12);
+INSERT INTO t1 VALUES (13);
+INSERT INTO t1 VALUES (14);
+INSERT INTO t1 VALUES (15);
+INSERT INTO t1 VALUES (16);
+INSERT INTO t1 VALUES (17);
+INSERT INTO t1 VALUES (18);
+INSERT INTO t1 VALUES (19);
+INSERT INTO t1 VALUES (20);
connection node_1;
SELECT COUNT(*) FROM t1;
COUNT(*)
-301
-# Wait 10 slave threads to exit 4
-connection node_1;
+21
+SET GLOBAL wsrep_slave_threads = 1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/MW-416.result b/mysql-test/suite/galera/r/MW-416.result
index 537e648df6b..68406c4dcf4 100644
--- a/mysql-test/suite/galera/r/MW-416.result
+++ b/mysql-test/suite/galera/r/MW-416.result
@@ -1,8 +1,9 @@
+connection node_2;
+connection node_1;
CREATE USER 'userMW416'@'localhost';
GRANT SELECT, INSERT, UPDATE ON test.* TO 'userMW416'@'localhost';
-SHOW GLOBAL STATUS LIKE 'wsrep_replicated';
-Variable_name Value
-wsrep_replicated 2
+connect userMW416, localhost, userMW416,, test, $NODE_MYPORT_1;
+connection userMW416;
ALTER DATABASE db CHARACTER SET = utf8;
ERROR 42000: Access denied for user 'userMW416'@'localhost' to database 'db'
ALTER EVENT ev1 RENAME TO ev2;
@@ -101,6 +102,7 @@ INSTALL PLUGIN plg SONAME 'plg.so';
Got one of the listed errors
UNINSTALL PLUGIN plg;
Got one of the listed errors
+connection node_1;
DROP USER 'userMW416'@'localhost';
SHOW DATABASES;
Database
@@ -109,5 +111,3 @@ mtr
mysql
performance_schema
test
-wsrep_replicated_after_diff
-1
diff --git a/mysql-test/suite/galera/r/galera_as_slave_gtid.result b/mysql-test/suite/galera/r/galera_as_slave_gtid.result
index 180b72bf729..3f4137a3b28 100644
--- a/mysql-test/suite/galera/r/galera_as_slave_gtid.result
+++ b/mysql-test/suite/galera/r/galera_as_slave_gtid.result
@@ -24,3 +24,14 @@ connection node_1;
connection node_2;
STOP SLAVE;
RESET SLAVE ALL;
+#cleanup
+connection node_1;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+connection node_2;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+connection node_3;
+reset master;
diff --git a/mysql-test/suite/galera/r/galera_as_slave_gtid_replicate_do_db_cc.result b/mysql-test/suite/galera/r/galera_as_slave_gtid_replicate_do_db_cc.result
index fc10cc01a45..aba5a098b69 100644
--- a/mysql-test/suite/galera/r/galera_as_slave_gtid_replicate_do_db_cc.result
+++ b/mysql-test/suite/galera/r/galera_as_slave_gtid_replicate_do_db_cc.result
@@ -1,7 +1,13 @@
-RESET MASTER;
+connection node_2;
+connection node_1;
+connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
+connection node_1;
SET global wsrep_on=OFF;
RESET MASTER;
SET global wsrep_on=ON;
+connection node_3;
+RESET MASTER;
+connection node_2;
SET global wsrep_on=OFF;
RESET MASTER;
SET global wsrep_on=ON;
diff --git a/mysql-test/suite/galera/r/galera_change_user.result b/mysql-test/suite/galera/r/galera_change_user.result
new file mode 100644
index 00000000000..3be9c956a28
--- /dev/null
+++ b/mysql-test/suite/galera/r/galera_change_user.result
@@ -0,0 +1,14 @@
+connection node_2;
+connection node_1;
+connection node_1;
+CREATE USER user1;
+CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
+connect node_1a, 127.0.0.1, root, , test, $MYPORT_NODE_1;
+disconnect node_1a;
+connect node_1a, 127.0.0.1, root, , test, $MYPORT_NODE_1;
+START TRANSACTION;
+INSERT INTO t1 VALUES (1);
+disconnect node_1a;
+connection node_1;
+DROP TABLE t1;
+DROP USER user1;
diff --git a/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,release.rdiff b/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,release.rdiff
deleted file mode 100644
index bbd75f5230a..00000000000
--- a/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,release.rdiff
+++ /dev/null
@@ -1,114 +0,0 @@
---- galera_ist_innodb_flush_logs.result
-+++ galera_ist_innodb_flush_logs,release.result
-@@ -94,111 +94,3 @@
- DROP TABLE t1;
- COMMIT;
- SET AUTOCOMMIT=ON;
--Performing State Transfer on a server that has been killed and restarted
--while a DDL was in progress on it
--connection node_1;
--CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
--SET AUTOCOMMIT=OFF;
--START TRANSACTION;
--INSERT INTO t1 VALUES ('node1_committed_before');
--INSERT INTO t1 VALUES ('node1_committed_before');
--INSERT INTO t1 VALUES ('node1_committed_before');
--INSERT INTO t1 VALUES ('node1_committed_before');
--INSERT INTO t1 VALUES ('node1_committed_before');
--connection node_2;
--START TRANSACTION;
--INSERT INTO t1 VALUES ('node2_committed_before');
--INSERT INTO t1 VALUES ('node2_committed_before');
--INSERT INTO t1 VALUES ('node2_committed_before');
--INSERT INTO t1 VALUES ('node2_committed_before');
--INSERT INTO t1 VALUES ('node2_committed_before');
--COMMIT;
--SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
--connection node_1;
--ALTER TABLE t1 ADD COLUMN f2 INTEGER;
--connection node_2;
--SET wsrep_sync_wait = 0;
--Killing server ...
--connection node_1;
--SET AUTOCOMMIT=OFF;
--START TRANSACTION;
--INSERT INTO t1 (f1) VALUES ('node1_committed_during');
--INSERT INTO t1 (f1) VALUES ('node1_committed_during');
--INSERT INTO t1 (f1) VALUES ('node1_committed_during');
--INSERT INTO t1 (f1) VALUES ('node1_committed_during');
--INSERT INTO t1 (f1) VALUES ('node1_committed_during');
--COMMIT;
--START TRANSACTION;
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
--SET AUTOCOMMIT=OFF;
--START TRANSACTION;
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--connection node_2;
--Performing --wsrep-recover ...
--connection node_2;
--Starting server ...
--Using --wsrep-start-position when starting mysqld ...
--SET AUTOCOMMIT=OFF;
--START TRANSACTION;
--INSERT INTO t1 (f1) VALUES ('node2_committed_after');
--INSERT INTO t1 (f1) VALUES ('node2_committed_after');
--INSERT INTO t1 (f1) VALUES ('node2_committed_after');
--INSERT INTO t1 (f1) VALUES ('node2_committed_after');
--INSERT INTO t1 (f1) VALUES ('node2_committed_after');
--COMMIT;
--connection node_1;
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
--COMMIT;
--SET AUTOCOMMIT=OFF;
--START TRANSACTION;
--INSERT INTO t1 (f1) VALUES ('node1_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_committed_after');
--INSERT INTO t1 (f1) VALUES ('node1_committed_after');
--COMMIT;
--connection node_1a_galera_st_kill_slave_ddl;
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--ROLLBACK;
--SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
--COUNT(*) = 2
--1
--SELECT COUNT(*) = 35 FROM t1;
--COUNT(*) = 35
--1
--SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
--COUNT(*) = 0
--1
--COMMIT;
--SET AUTOCOMMIT=ON;
--connection node_1;
--SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
--COUNT(*) = 2
--1
--SELECT COUNT(*) = 35 FROM t1;
--COUNT(*) = 35
--1
--SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
--COUNT(*) = 0
--1
--DROP TABLE t1;
--COMMIT;
--SET AUTOCOMMIT=ON;
--SET GLOBAL debug_dbug = $debug_orig;
diff --git a/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs.result b/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs.result
deleted file mode 100644
index cad00aaee48..00000000000
--- a/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs.result
+++ /dev/null
@@ -1,206 +0,0 @@
-connection node_2;
-connection node_1;
-Performing State Transfer on a server that has been killed and restarted
-connection node_1;
-CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-COMMIT;
-connection node_2;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-COMMIT;
-Killing server ...
-connection node_1;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node1_committed_during');
-INSERT INTO t1 VALUES ('node1_committed_during');
-INSERT INTO t1 VALUES ('node1_committed_during');
-INSERT INTO t1 VALUES ('node1_committed_during');
-INSERT INTO t1 VALUES ('node1_committed_during');
-COMMIT;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-connection node_2;
-Performing --wsrep-recover ...
-Starting server ...
-Using --wsrep-start-position when starting mysqld ...
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node2_committed_after');
-INSERT INTO t1 VALUES ('node2_committed_after');
-INSERT INTO t1 VALUES ('node2_committed_after');
-INSERT INTO t1 VALUES ('node2_committed_after');
-INSERT INTO t1 VALUES ('node2_committed_after');
-COMMIT;
-connection node_1;
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 VALUES ('node1_to_be_committed_after');
-COMMIT;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node1_committed_after');
-INSERT INTO t1 VALUES ('node1_committed_after');
-INSERT INTO t1 VALUES ('node1_committed_after');
-INSERT INTO t1 VALUES ('node1_committed_after');
-INSERT INTO t1 VALUES ('node1_committed_after');
-COMMIT;
-connection node_1a_galera_st_kill_slave;
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
-ROLLBACK;
-SELECT COUNT(*) = 35 FROM t1;
-COUNT(*) = 35
-1
-SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
-COUNT(*) = 0
-1
-COMMIT;
-SET AUTOCOMMIT=ON;
-connection node_1;
-SELECT COUNT(*) = 35 FROM t1;
-COUNT(*) = 35
-1
-SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
-COUNT(*) = 0
-1
-DROP TABLE t1;
-COMMIT;
-SET AUTOCOMMIT=ON;
-Performing State Transfer on a server that has been killed and restarted
-while a DDL was in progress on it
-connection node_1;
-CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-INSERT INTO t1 VALUES ('node1_committed_before');
-connection node_2;
-START TRANSACTION;
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-INSERT INTO t1 VALUES ('node2_committed_before');
-COMMIT;
-SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
-connection node_1;
-ALTER TABLE t1 ADD COLUMN f2 INTEGER;
-connection node_2;
-SET wsrep_sync_wait = 0;
-Killing server ...
-connection node_1;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 (f1) VALUES ('node1_committed_during');
-INSERT INTO t1 (f1) VALUES ('node1_committed_during');
-INSERT INTO t1 (f1) VALUES ('node1_committed_during');
-INSERT INTO t1 (f1) VALUES ('node1_committed_during');
-INSERT INTO t1 (f1) VALUES ('node1_committed_during');
-COMMIT;
-START TRANSACTION;
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-connection node_2;
-Performing --wsrep-recover ...
-connection node_2;
-Starting server ...
-Using --wsrep-start-position when starting mysqld ...
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 (f1) VALUES ('node2_committed_after');
-INSERT INTO t1 (f1) VALUES ('node2_committed_after');
-INSERT INTO t1 (f1) VALUES ('node2_committed_after');
-INSERT INTO t1 (f1) VALUES ('node2_committed_after');
-INSERT INTO t1 (f1) VALUES ('node2_committed_after');
-COMMIT;
-connection node_1;
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
-COMMIT;
-SET AUTOCOMMIT=OFF;
-START TRANSACTION;
-INSERT INTO t1 (f1) VALUES ('node1_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_committed_after');
-INSERT INTO t1 (f1) VALUES ('node1_committed_after');
-COMMIT;
-connection node_1a_galera_st_kill_slave_ddl;
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
-ROLLBACK;
-SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
-COUNT(*) = 2
-1
-SELECT COUNT(*) = 35 FROM t1;
-COUNT(*) = 35
-1
-SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
-COUNT(*) = 0
-1
-COMMIT;
-SET AUTOCOMMIT=ON;
-connection node_1;
-SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
-COUNT(*) = 2
-1
-SELECT COUNT(*) = 35 FROM t1;
-COUNT(*) = 35
-1
-SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
-COUNT(*) = 0
-1
-DROP TABLE t1;
-COMMIT;
-SET AUTOCOMMIT=ON;
-SET GLOBAL debug_dbug = $debug_orig;
diff --git a/mysql-test/suite/galera/r/galera_kill_applier.result b/mysql-test/suite/galera/r/galera_kill_applier.result
index 6fa632c242f..25600744d73 100644
--- a/mysql-test/suite/galera/r/galera_kill_applier.result
+++ b/mysql-test/suite/galera/r/galera_kill_applier.result
@@ -1,5 +1,20 @@
+connection node_2;
connection node_1;
+connection node_2;
+SET GLOBAL wsrep_slave_threads=2;
Got one of the listed errors
Got one of the listed errors
Got one of the listed errors
Got one of the listed errors
+SET GLOBAL wsrep_slave_threads=1;
+connection node_1;
+create table t1(a int not null primary key) engine=innodb;
+insert into t1 values (1);
+insert into t1 values (2);
+connection node_2;
+set global wsrep_sync_wait=15;
+select count(*) from t1;
+count(*)
+2
+connection node_1;
+drop table t1;
diff --git a/mysql-test/suite/galera/r/galera_kill_ddl.result b/mysql-test/suite/galera/r/galera_kill_ddl.result
index 9d66140465c..33a1b19095f 100644
--- a/mysql-test/suite/galera/r/galera_kill_ddl.result
+++ b/mysql-test/suite/galera/r/galera_kill_ddl.result
@@ -1,17 +1,19 @@
connection node_2;
connection node_1;
-call mtr.add_suppression("WSREP: Last Applied Action message in non-primary configuration from member .*");
connection node_1;
+connection node_2;
+connection node_1;
+call mtr.add_suppression("WSREP: Last Applied Action message in non-primary configuration from member .*");
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
-CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB;
connection node_2;
Killing server ...
connection node_1;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
connection node_2;
connection node_2a;
-SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';
-COUNT(*) = 2
-1
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';
+COUNT(*)
+2
connection node_1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_load_data.result b/mysql-test/suite/galera/r/galera_load_data.result
index 97d82f0f534..42795fab7a7 100644
--- a/mysql-test/suite/galera/r/galera_load_data.result
+++ b/mysql-test/suite/galera/r/galera_load_data.result
@@ -34,49 +34,15 @@ Warnings:
Note 1031 Storage engine InnoDB of the table `cardtest02`.`cardtest_tbl` doesn't have this option
UNLOCK TABLES;
use cardtest02;
-show indexes from cardtest_tbl;
-Table cardtest_tbl
-Non_unique 0
-Key_name PRIMARY
-Seq_in_index 1
-Column_name id
-Collation A
-Cardinality 301
-Sub_part NULL
-Packed NULL
-Null
-Index_type BTREE
-Comment
-Index_comment
-select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl';
-table_rows 301
-avg_row_length 81
-data_length 24576
select count(*) from cardtest_tbl;
-count(*) 301
+count(*)
+301
connection node_2;
set session wsrep_sync_wait=15;
use cardtest02;
-show indexes from cardtest_tbl;
-Table cardtest_tbl
-Non_unique 0
-Key_name PRIMARY
-Seq_in_index 1
-Column_name id
-Collation A
-Cardinality 301
-Sub_part NULL
-Packed NULL
-Null
-Index_type BTREE
-Comment
-Index_comment
-select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl';
-table_rows 301
-avg_row_length 81
-data_length 24576
select count(*) from cardtest_tbl;
-count(*) 301
+count(*)
+301
connection node_1;
use test;
drop database cardtest02;
diff --git a/mysql-test/suite/galera/r/galera_log_bin.result b/mysql-test/suite/galera/r/galera_log_bin.result
index 12e5e59a426..57bc2c9e2ae 100644
--- a/mysql-test/suite/galera/r/galera_log_bin.result
+++ b/mysql-test/suite/galera/r/galera_log_bin.result
@@ -1,5 +1,13 @@
connection node_2;
connection node_1;
+connection node_1;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+connection node_2;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
CREATE TABLE t2 (id INT) ENGINE=InnoDB;
@@ -14,60 +22,64 @@ COUNT(*) = 2
1
connection node_1;
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
-FLUSH LOGS;
-SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,21;
+include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
-mysqld-bin.000002 # Gtid # # GTID 0-1-1
-mysqld-bin.000002 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
-mysqld-bin.000002 # Gtid # # BEGIN GTID 0-1-2
-mysqld-bin.000002 # Annotate_rows # # INSERT INTO t1 VALUES (1)
-mysqld-bin.000002 # Table_map # # table_id: # (test.t1)
-mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-mysqld-bin.000002 # Xid # # COMMIT /* xid=# */
-mysqld-bin.000002 # Gtid # # GTID 0-1-3
-mysqld-bin.000002 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
-mysqld-bin.000002 # Gtid # # BEGIN GTID 0-1-4
-mysqld-bin.000002 # Annotate_rows # # INSERT INTO t2 VALUES (1)
-mysqld-bin.000002 # Table_map # # table_id: # (test.t2)
-mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-mysqld-bin.000002 # Xid # # COMMIT /* xid=# */
-mysqld-bin.000002 # Gtid # # BEGIN GTID 0-1-5
-mysqld-bin.000002 # Annotate_rows # # INSERT INTO t2 VALUES (1)
-mysqld-bin.000002 # Table_map # # table_id: # (test.t2)
-mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-mysqld-bin.000002 # Xid # # COMMIT /* xid=# */
-mysqld-bin.000002 # Gtid # # GTID 0-1-6
-mysqld-bin.000002 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
+mysqld-bin.000001 # Gtid # # GTID #-#-#
+mysqld-bin.000001 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
+mysqld-bin.000001 # Gtid # # BEGIN GTID #-#-#
+mysqld-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1)
+mysqld-bin.000001 # Table_map # # table_id: # (test.t1)
+mysqld-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
+mysqld-bin.000001 # Xid # # COMMIT /* XID */
+mysqld-bin.000001 # Gtid # # GTID #-#-#
+mysqld-bin.000001 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
+mysqld-bin.000001 # Gtid # # BEGIN GTID #-#-#
+mysqld-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
+mysqld-bin.000001 # Table_map # # table_id: # (test.t2)
+mysqld-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
+mysqld-bin.000001 # Xid # # COMMIT /* XID */
+mysqld-bin.000001 # Gtid # # BEGIN GTID #-#-#
+mysqld-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
+mysqld-bin.000001 # Table_map # # table_id: # (test.t2)
+mysqld-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
+mysqld-bin.000001 # Xid # # COMMIT /* XID */
+mysqld-bin.000001 # Gtid # # GTID #-#-#
+mysqld-bin.000001 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
connection node_2;
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
COUNT(*) = 2
1
-SHOW BINLOG EVENTS IN 'mysqld-bin.000003' LIMIT 3,21;
+include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
-mysqld-bin.000003 # Gtid # # GTID 0-1-1
-mysqld-bin.000003 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
-mysqld-bin.000003 # Gtid # # BEGIN GTID 0-1-2
-mysqld-bin.000003 # Annotate_rows # # INSERT INTO t1 VALUES (1)
-mysqld-bin.000003 # Table_map # # table_id: # (test.t1)
-mysqld-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-mysqld-bin.000003 # Xid # # COMMIT /* xid=# */
-mysqld-bin.000003 # Gtid # # GTID 0-1-3
-mysqld-bin.000003 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
-mysqld-bin.000003 # Gtid # # BEGIN GTID 0-1-4
-mysqld-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (1)
-mysqld-bin.000003 # Table_map # # table_id: # (test.t2)
-mysqld-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-mysqld-bin.000003 # Xid # # COMMIT /* xid=# */
-mysqld-bin.000003 # Gtid # # BEGIN GTID 0-1-5
-mysqld-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (1)
-mysqld-bin.000003 # Table_map # # table_id: # (test.t2)
-mysqld-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-mysqld-bin.000003 # Xid # # COMMIT /* xid=# */
-mysqld-bin.000003 # Gtid # # GTID 0-1-6
-mysqld-bin.000003 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
+mysqld-bin.000001 # Gtid # # GTID #-#-#
+mysqld-bin.000001 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
+mysqld-bin.000001 # Gtid # # BEGIN GTID #-#-#
+mysqld-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1)
+mysqld-bin.000001 # Table_map # # table_id: # (test.t1)
+mysqld-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
+mysqld-bin.000001 # Xid # # COMMIT /* XID */
+mysqld-bin.000001 # Gtid # # GTID #-#-#
+mysqld-bin.000001 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
+mysqld-bin.000001 # Gtid # # BEGIN GTID #-#-#
+mysqld-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
+mysqld-bin.000001 # Table_map # # table_id: # (test.t2)
+mysqld-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
+mysqld-bin.000001 # Xid # # COMMIT /* XID */
+mysqld-bin.000001 # Gtid # # BEGIN GTID #-#-#
+mysqld-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
+mysqld-bin.000001 # Table_map # # table_id: # (test.t2)
+mysqld-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
+mysqld-bin.000001 # Xid # # COMMIT /* XID */
+mysqld-bin.000001 # Gtid # # GTID #-#-#
+mysqld-bin.000001 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
DROP TABLE t1;
DROP TABLE t2;
+#cleanup
connection node_1;
SET GLOBAL wsrep_on=OFF;
RESET MASTER;
SET GLOBAL wsrep_on=ON;
+connection node_2;
+SET GLOBAL wsrep_on=OFF;
+reset master;
+SET GLOBAL wsrep_on=ON;
diff --git a/mysql-test/suite/galera/r/galera_log_output_csv.result b/mysql-test/suite/galera/r/galera_log_output_csv.result
index efe8c73c986..06b0838d976 100644
--- a/mysql-test/suite/galera/r/galera_log_output_csv.result
+++ b/mysql-test/suite/galera/r/galera_log_output_csv.result
@@ -20,3 +20,5 @@ COUNT(*) = 1
1
connection node_1;
DROP TABLE t1;
+truncate table mysql.slow_log;
+truncate table mysql.general_log;
diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key,debug.rdiff b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key,debug.rdiff
index 4a7db96dc22..aee525936d1 100644
--- a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key,debug.rdiff
+++ b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key,debug.rdiff
@@ -1,11 +1,12 @@
---- r/galera_sst_mysqldump_with_key.result 2018-11-19 09:56:30.081976558 +0200
-+++ r/galera_sst_mysqldump_with_key.reject 2018-11-19 10:47:41.609299365 +0200
-@@ -183,6 +183,103 @@
+--- r/galera_sst_mysqldump_with_key.result 2019-07-04 09:39:54.993971174 +0300
++++ r/galera_sst_mysqldump_with_key.reject 2019-07-04 09:55:34.171175305 +0300
+@@ -204,6 +204,114 @@
DROP TABLE t1;
COMMIT;
SET AUTOCOMMIT=ON;
+Performing State Transfer on a server that has been killed and restarted
+while a DDL was in progress on it
++connection node_1;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
@@ -14,6 +15,7 @@
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
++connection node_2;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
@@ -22,9 +24,12 @@
+INSERT INTO t1 VALUES ('node2_committed_before');
+COMMIT;
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
++connection node_1;
+ALTER TABLE t1 ADD COLUMN f2 INTEGER;
++connection node_2;
+SET wsrep_sync_wait = 0;
+Killing server ...
++connection node_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
@@ -39,6 +44,7 @@
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
@@ -46,7 +52,9 @@
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++connection node_2;
+Performing --wsrep-recover ...
++connection node_2;
+Starting server ...
+Using --wsrep-start-position when starting mysqld ...
+SET AUTOCOMMIT=OFF;
@@ -57,6 +65,7 @@
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+COMMIT;
++connection node_1;
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
@@ -71,6 +80,7 @@
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+COMMIT;
++connection node_1a_galera_st_kill_slave_ddl;
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
@@ -88,6 +98,7 @@
+1
+COMMIT;
+SET AUTOCOMMIT=ON;
++connection node_1;
+SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
+COUNT(*) = 2
+1
@@ -101,6 +112,6 @@
+COMMIT;
+SET AUTOCOMMIT=ON;
+SET GLOBAL debug_dbug = $debug_orig;
+ connection node_1;
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
DROP USER sst;
- CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
index 3de446fec32..de52ac2fd1d 100644
--- a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
+++ b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result
@@ -205,17 +205,6 @@ DROP TABLE t1;
COMMIT;
SET AUTOCOMMIT=ON;
connection node_1;
-connection node_2;
-connection node_1;
-connection node_2;
-connection node_1;
-connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-connection node_2;
-connection node_2;
-connection node_1;
-connection node_1a_galera_st_kill_slave_ddl;
-connection node_1;
-connection node_1;
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
DROP USER sst;
connection node_2;
diff --git a/mysql-test/suite/galera/r/galera_sync_wait_show.result b/mysql-test/suite/galera/r/galera_sync_wait_show.result
index 4ec83a7f33f..793da3246ff 100644
--- a/mysql-test/suite/galera/r/galera_sync_wait_show.result
+++ b/mysql-test/suite/galera/r/galera_sync_wait_show.result
@@ -49,8 +49,6 @@ tr1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE
DROP TABLE t1;
connection node_1;
CREATE EVENT event1 ON SCHEDULE AT '2038-01-01 23:59:59' DO SELECT 1;
-Warnings:
-Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
connection node_2;
SHOW CREATE EVENT event1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result b/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result
index 0ecc4a4619f..6e55c59ad15 100644
--- a/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result
+++ b/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result
@@ -1,11 +1,10 @@
connection node_2;
connection node_1;
-CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB;
+CREATE TABLE ten (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE parent (
id INT PRIMARY KEY AUTO_INCREMENT,
-f2 INTEGER,
-KEY (id)
+f2 INTEGER
) ENGINE=InnoDB;
CREATE TABLE child (
id INT PRIMARY KEY AUTO_INCREMENT,
@@ -25,19 +24,21 @@ connection node_1b;
connection node_2;
connection node_2a;
connection node_1;
-SELECT COUNT(*) = 20001 FROM parent;
-COUNT(*) = 20001
-1
-SELECT COUNT(*) = 10000 FROM child;
-COUNT(*) = 10000
-1
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+COUNT(*)
+20001
+SELECT COUNT(*) FROM child;
+COUNT(*)
+10000
connection node_2;
-SELECT COUNT(*) = 20001 FROM parent;
-COUNT(*) = 20001
-1
-SELECT COUNT(*) = 10000 FROM child;
-COUNT(*) = 10000
-1
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+COUNT(*)
+20001
+SELECT COUNT(*) FROM child;
+COUNT(*)
+10000
DROP TABLE child;
DROP TABLE parent;
DROP TABLE ten;
diff --git a/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result b/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result
index d2faf5ff463..3a23f0c8122 100644
--- a/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result
+++ b/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result
@@ -80,6 +80,15 @@ wsrep_gtid_mode 1
# On node_1
connection node_1;
DROP TABLE t1, t2;
+#cleanup
+connection node_1;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+connection node_2;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
disconnect node_2;
disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/r/galera_var_notify_cmd.result b/mysql-test/suite/galera/r/galera_var_notify_cmd.result
index bcd9875743a..3f0dd57aa3b 100644
--- a/mysql-test/suite/galera/r/galera_var_notify_cmd.result
+++ b/mysql-test/suite/galera/r/galera_var_notify_cmd.result
@@ -8,4 +8,3 @@ MAX(size) = 2
SELECT COUNT(DISTINCT idx) = 2 FROM mtr_wsrep_notify.status;
COUNT(DISTINCT idx) = 2
1
-DROP SCHEMA mtr_wsrep_notify;
diff --git a/mysql-test/suite/galera/r/galera_var_slave_threads.result b/mysql-test/suite/galera/r/galera_var_slave_threads.result
index 168b45154b8..36dc79bdf82 100644
--- a/mysql-test/suite/galera/r/galera_var_slave_threads.result
+++ b/mysql-test/suite/galera/r/galera_var_slave_threads.result
@@ -17,67 +17,44 @@ SELECT @@wsrep_slave_threads = 1;
@@wsrep_slave_threads = 1
1
SET GLOBAL wsrep_slave_threads = 1;
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND COMMAND != 'Daemon';
-COUNT(*)
-3
SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%';
COUNT(*)
1
-SET GLOBAL wsrep_slave_threads = 64;
connection node_1;
INSERT INTO t1 VALUES (1);
connection node_2;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%';
-COUNT(*)
-1
+SET GLOBAL wsrep_slave_threads = 64;
SET GLOBAL wsrep_slave_threads = 1;
connection node_1;
connection node_2;
SELECT COUNT(*) FROM t2;
COUNT(*)
-64
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%';
-COUNT(*)
-1
-SET GLOBAL wsrep_slave_threads = 5;
+70
SET GLOBAL wsrep_slave_threads = 1;
-connection node_2;
-Shutting down server ...
+DROP TABLE t1;
+DROP TABLE t2;
+#
+# lp:1372840 - Changing wsrep_slave_threads causes future connections to hang
+#
connection node_1;
-show status like 'wsrep_cluster_size';
-Variable_name Value
-wsrep_cluster_size 1
-SET GLOBAL wsrep_slave_threads = 6;
-SET GLOBAL wsrep_slave_threads = 1;
-SET GLOBAL wsrep_cluster_address='';
-SET GLOBAL wsrep_cluster_address='gcomm://';
-SET GLOBAL wsrep_slave_threads = 10;
+CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY) ENGINE=INNODB;
connection node_2;
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND COMMAND != 'Daemon';
-COUNT(*)
-3
-connection node_1;
+SET GLOBAL wsrep_slave_threads = 4;
SET GLOBAL wsrep_slave_threads = 1;
-connection node_2;
-SET GLOBAL wsrep_slave_threads = 1;
-connection node_1;
-connection node_2;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-1
-SELECT COUNT(*) FROM t2;
-COUNT(*)
-192
connection node_1;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-1
-SELECT COUNT(*) FROM t2;
-COUNT(*)
-192
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
DROP TABLE t1;
-DROP TABLE t2;
+connection node_2;
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t%';
+NAME
# End of tests
diff --git a/mysql-test/suite/galera/r/mdev_10518.result b/mysql-test/suite/galera/r/mdev_10518.result
index 252aa244f77..b07f5303586 100644
--- a/mysql-test/suite/galera/r/mdev_10518.result
+++ b/mysql-test/suite/galera/r/mdev_10518.result
@@ -80,6 +80,15 @@ wsrep_gtid_mode 1
# On node_1
connection node_1;
DROP TABLE t1, t2;
+#cleanup
+connection node_1;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+connection node_2;
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
disconnect node_2;
disconnect node_1;
# End of test
diff --git a/mysql-test/suite/galera/suite.pm b/mysql-test/suite/galera/suite.pm
index b8456189848..4bce28aceb2 100644
--- a/mysql-test/suite/galera/suite.pm
+++ b/mysql-test/suite/galera/suite.pm
@@ -6,30 +6,11 @@ use My::Find;
return "Not run for embedded server" if $::opt_embedded_server;
-return "WSREP is not compiled in" unless defined $::mysqld_variables{'wsrep-on'};
+return "WSREP is not compiled in" if not ::have_wsrep();
-my ($provider) = grep { -f $_ } $ENV{WSREP_PROVIDER},
- "/usr/lib64/galera-4/libgalera_smm.so",
- "/usr/lib64/galera/libgalera_smm.so",
- "/usr/lib/galera-4/libgalera_smm.so",
- "/usr/lib/galera/libgalera_smm.so";
+return "No wsrep provider library" unless ::have_wsrep_provider();
-return "No wsrep provider library" unless -f $provider;
-
-$ENV{WSREP_PROVIDER} = $provider;
-
-my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$::bindir/scripts", $::path_client_bindir;
-return "No SST scripts" unless $spath;
-
-my ($cpath) = grep { -f "$_/mysql"; } "$::bindir/scripts", $::path_client_bindir;
-return "No scritps" unless $cpath;
-
-my ($epath) = grep { -f "$_/my_print_defaults"; } "$::bindir/extra", $::path_client_bindir;
-return "No my_print_defaults" unless $epath;
-
-my ($bpath) = grep { -f "$_/mariabackup"; } "$::bindir/extra/mariabackup", $::path_client_bindir;
-
-sub which($) { return `sh -c "command -v $_[0]"` }
+return ::wsrep_version_message() unless ::check_wsrep_version();
push @::global_suppressions,
(
@@ -88,28 +69,4 @@ push @::global_suppressions,
qr(WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to .*),
);
-$ENV{PATH}="$epath:$ENV{PATH}";
-$ENV{PATH}="$spath:$ENV{PATH}" unless $epath eq $spath;
-$ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath;
-$ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $spath;
-
-if (which(socat)) {
- $ENV{MTR_GALERA_TFMT}='socat';
-} elsif (which(nc)) {
- $ENV{MTR_GALERA_TFMT}='nc';
-}
-
-sub skip_combinations {
- my %skip = ();
- $skip{'include/have_filekeymanagement.inc'} = 'needs file_key_management plugin'
- unless $ENV{FILE_KEY_MANAGEMENT_SO};
- $skip{'include/have_mariabackup.inc'} = 'Need mariabackup'
- unless which(mariabackup);
- $skip{'include/have_mariabackup.inc'} = 'Need ss'
- unless which(ss);
- $skip{'include/have_mariabackup.inc'} = 'Need socat or nc'
- unless $ENV{MTR_GALERA_TFMT};
- %skip;
-}
-
bless { };
diff --git a/mysql-test/suite/galera/t/GAL-419.test b/mysql-test/suite/galera/t/GAL-419.test
index 07abcbcc47b..d304b01ed5e 100644
--- a/mysql-test/suite/galera/t/GAL-419.test
+++ b/mysql-test/suite/galera/t/GAL-419.test
@@ -5,11 +5,14 @@
--source include/galera_cluster.inc
--source include/big_test.inc
---connection node_1
+call mtr.add_suppression("WSREP: It may not be safe to bootstrap the cluster from this node.*");
+call mtr.add_suppression("Aborting");
+
+--connection node_2
SET SESSION wsrep_sync_wait = 0;
--source include/kill_galera.inc
---connection node_2
+--connection node_1
SET SESSION wsrep_sync_wait = 0;
--source include/kill_galera.inc
diff --git a/mysql-test/suite/galera/t/MW-329.test b/mysql-test/suite/galera/t/MW-329.test
index 78755fc3b42..904fc2f95d8 100644
--- a/mysql-test/suite/galera/t/MW-329.test
+++ b/mysql-test/suite/galera/t/MW-329.test
@@ -22,6 +22,7 @@ BEGIN
SET SESSION wsrep_sync_wait = 0;
WHILE 1 DO
INSERT INTO t1 (f1) VALUES (FLOOR( 1 + RAND( ) * 65535 ));
+ SELECT SLEEP(0.1);
END WHILE;
END|
DELIMITER ;|
@@ -29,6 +30,8 @@ DELIMITER ;|
--connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1
--connection node_1b
--let $connection_id = `SELECT CONNECTION_ID()`
+--disable_query_log
+--disable_result_log
--send CALL proc_insert();
#
@@ -88,6 +91,8 @@ while ($count)
--connection node_1b
--error 0,2013,1317
--reap
+--enable_query_log
+--enable_result_log
--connection node_1
DROP PROCEDURE proc_insert;
diff --git a/mysql-test/suite/galera/t/MW-336.cnf b/mysql-test/suite/galera/t/MW-336.cnf
new file mode 100644
index 00000000000..e68f891792c
--- /dev/null
+++ b/mysql-test/suite/galera/t/MW-336.cnf
@@ -0,0 +1,7 @@
+!include ../galera_2nodes.cnf
+
+[mysqld.1]
+wsrep-debug=SERVER
+
+[mysqld.2]
+wsrep-debug=SERVER
diff --git a/mysql-test/suite/galera/t/MW-336.test b/mysql-test/suite/galera/t/MW-336.test
index 6f778722831..b6df78ac7a6 100644
--- a/mysql-test/suite/galera/t/MW-336.test
+++ b/mysql-test/suite/galera/t/MW-336.test
@@ -4,110 +4,77 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
-
-CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
-INSERT INTO t1 values(0);
+--source include/force_restart.inc
--connection node_1
+CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
SET GLOBAL wsrep_slave_threads = 10;
-SET GLOBAL wsrep_slave_threads = 1;
---echo # Wait 10 slave threads to start 1
---let $wait_timeout=600
---let $wait_condition = SELECT COUNT(*) = 12 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
---source include/wait_condition.inc
+# ensure that the threads have actually started running
+--echo # Set slave threads to 10 step 1
+--let $wait_condition = SELECT COUNT(*) = 10 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle';
+--let $wait_condition_on_error_output = SELECT COUNT(*), 10 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
+--source include/wait_condition_with_debug.inc
+
+SET GLOBAL wsrep_slave_threads = 1;
--connection node_2
-SET SESSION wsrep_sync_wait=15;
-# Wait until inserts are replicated
---let $wait_condition = SELECT COUNT(*) = 1 FROM t1;
---source include/wait_condition.inc
---echo # Generate 100 replication events
---disable_query_log
---disable_result_log
---let $count = 100
-while ($count)
-{
- INSERT INTO t1 VALUES (1);
- --dec $count
-}
---enable_result_log
---enable_query_log
+INSERT INTO t1 VALUES (1);
--connection node_1
SET SESSION wsrep_sync_wait=15;
-
SELECT COUNT(*) FROM t1;
---echo # Wait 9 slave threads to exit 1
-# Wait until appliers exit
---let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
---source include/wait_condition.inc
-
SET GLOBAL wsrep_slave_threads = 10;
---echo # Wait 10 slave threads to start 2
---let $wait_condition = SELECT COUNT(*) = 12 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
---source include/wait_condition.inc
+--echo # Set slave threads to 10 step 2
+--let $wait_condition = SELECT COUNT(*) = 10 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle';
+--let $wait_condition_on_error_output = SELECT COUNT(*), 10 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
+--source include/wait_condition_with_debug.inc
SET GLOBAL wsrep_slave_threads = 20;
---echo # Wait 20 slave threads to start 3
---let $wait_condition = SELECT COUNT(*) = 22 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
---source include/wait_condition.inc
+--echo # Set slave threads to 20
+--let $wait_condition = SELECT COUNT(*) = 20 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle';
+--let $wait_condition_on_error_output = SELECT COUNT(*), 20 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
+--source include/wait_condition_with_debug.inc
SET GLOBAL wsrep_slave_threads = 1;
--connection node_2
---echo # Generate 100 replication events
---disable_query_log
---disable_result_log
---let $count = 100
-while ($count)
-{
- INSERT INTO t1 VALUES (1);
- --dec $count
-}
---enable_query_log
---enable_result_log
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (2);
+INSERT INTO t1 VALUES (3);
+INSERT INTO t1 VALUES (4);
+INSERT INTO t1 VALUES (5);
+INSERT INTO t1 VALUES (6);
+INSERT INTO t1 VALUES (7);
+INSERT INTO t1 VALUES (8);
+INSERT INTO t1 VALUES (9);
+INSERT INTO t1 VALUES (10);
--connection node_1
-SELECT COUNT(*) FROM t1;
-
---echo # Wait 10 slave threads to exit 3
-# Wait until appliers exit
---let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
---source include/wait_condition.inc
-
SET GLOBAL wsrep_slave_threads = 10;
-SET GLOBAL wsrep_slave_threads = 1;
-
---echo # Wait 10 slave threads to start 3
---let $wait_timeout=600
---let $wait_condition = SELECT COUNT(*) = 11 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
---source include/wait_condition.inc
+SELECT COUNT(*) FROM t1;
+--echo # Set slave threads to 10 step 3
+--let $wait_condition = SELECT COUNT(*) = 10 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle';
+--let $wait_condition_on_error_output = SELECT COUNT(*), 10 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
+--source include/wait_condition_with_debug.inc
--connection node_2
---echo # Generate 100 replication events
---disable_query_log
---disable_result_log
---let $count = 100
-while ($count)
-{
- INSERT INTO t1 VALUES (1);
- --dec $count
-}
---enable_result_log
---enable_query_log
+INSERT INTO t1 VALUES (11);
+INSERT INTO t1 VALUES (12);
+INSERT INTO t1 VALUES (13);
+INSERT INTO t1 VALUES (14);
+INSERT INTO t1 VALUES (15);
+INSERT INTO t1 VALUES (16);
+INSERT INTO t1 VALUES (17);
+INSERT INTO t1 VALUES (18);
+INSERT INTO t1 VALUES (19);
+INSERT INTO t1 VALUES (20);
--connection node_1
SELECT COUNT(*) FROM t1;
-
---echo # Wait 10 slave threads to exit 4
-# Wait until appliers exit
---let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
---source include/wait_condition.inc
-
---connection node_1
+SET GLOBAL wsrep_slave_threads = 1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/t/MW-416.test b/mysql-test/suite/galera/t/MW-416.test
index 48eada95cb8..f9a1b47e2ff 100644
--- a/mysql-test/suite/galera/t/MW-416.test
+++ b/mysql-test/suite/galera/t/MW-416.test
@@ -2,11 +2,10 @@
--source include/have_innodb.inc
--source include/wait_until_ready.inc
+
CREATE USER 'userMW416'@'localhost';
GRANT SELECT, INSERT, UPDATE ON test.* TO 'userMW416'@'localhost';
---let $wsrep_replicated_before = `SELECT variable_value FROM information_schema.global_status WHERE variable_name = 'wsrep_replicated'`
-
--connect userMW416, localhost, userMW416,, test, $NODE_MYPORT_1
--connection userMW416
@@ -130,7 +129,4 @@ UNINSTALL PLUGIN plg;
--connection node_1
DROP USER 'userMW416'@'localhost';
SHOW DATABASES;
---let $wsrep_replicated_after = `SELECT variable_value FROM information_schema.global_status WHERE variable_name = 'wsrep_replicated'`
---disable_query_log
---eval SELECT $wsrep_replicated_after - $wsrep_replicated_before AS wsrep_replicated_after_diff
---enable_query_log
+
diff --git a/mysql-test/suite/galera/t/galera_as_slave_gtid.test b/mysql-test/suite/galera/t/galera_as_slave_gtid.test
index 3b0f191ad83..f5222b4322b 100644
--- a/mysql-test/suite/galera/t/galera_as_slave_gtid.test
+++ b/mysql-test/suite/galera/t/galera_as_slave_gtid.test
@@ -70,3 +70,17 @@ DROP TABLE t1;
STOP SLAVE;
RESET SLAVE ALL;
+
+--echo #cleanup
+--connection node_1
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+
+--connection node_2
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+
+--connection node_3
+reset master;
diff --git a/mysql-test/suite/galera/t/galera_as_slave_gtid_replicate_do_db_cc.test b/mysql-test/suite/galera/t/galera_as_slave_gtid_replicate_do_db_cc.test
index 1604016f3c3..27698121c0d 100644
--- a/mysql-test/suite/galera/t/galera_as_slave_gtid_replicate_do_db_cc.test
+++ b/mysql-test/suite/galera/t/galera_as_slave_gtid_replicate_do_db_cc.test
@@ -18,9 +18,7 @@ SET GLOBAL wsrep_on=ON;
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--connection node_3
-SET global wsrep_on=OFF;
RESET MASTER;
-SET global wsrep_on=ON;
--connection node_2
SET global wsrep_on=OFF;
diff --git a/mysql-test/suite/galera/t/galera_as_slave_nonprim.test b/mysql-test/suite/galera/t/galera_as_slave_nonprim.test
index 31c0b9ca162..0d878db29b8 100644
--- a/mysql-test/suite/galera/t/galera_as_slave_nonprim.test
+++ b/mysql-test/suite/galera/t/galera_as_slave_nonprim.test
@@ -91,6 +91,5 @@ CALL mtr.add_suppression("Transport endpoint is not connected");
CALL mtr.add_suppression("Slave SQL: Error in Xid_log_event: Commit could not be completed, 'Deadlock found when trying to get lock; try restarting transaction', Error_code: 1213");
CALL mtr.add_suppression("Slave SQL: Node has dropped from cluster, Error_code: 1047");
-
--connection node_4
RESET MASTER;
diff --git a/mysql-test/suite/galera/t/galera_autoinc_sst_mariabackup.test b/mysql-test/suite/galera/t/galera_autoinc_sst_mariabackup.test
index 4a79ed74038..72952d271d5 100644
--- a/mysql-test/suite/galera/t/galera_autoinc_sst_mariabackup.test
+++ b/mysql-test/suite/galera/t/galera_autoinc_sst_mariabackup.test
@@ -5,6 +5,7 @@
--source include/big_test.inc
--source include/galera_cluster.inc
+--source include/have_innodb.inc
--source include/have_mariabackup.inc
--let $node_1=node_1
diff --git a/mysql-test/suite/galera/t/galera_binlog_stmt_autoinc.test b/mysql-test/suite/galera/t/galera_binlog_stmt_autoinc.test
index d3889a89016..817f4f82b43 100644
--- a/mysql-test/suite/galera/t/galera_binlog_stmt_autoinc.test
+++ b/mysql-test/suite/galera/t/galera_binlog_stmt_autoinc.test
@@ -66,6 +66,8 @@ show variables like 'binlog_format';
SET GLOBAL wsrep_auto_increment_control='OFF';
+let $increment_node1 = `SELECT @@session.auto_increment_increment`;
+let $offset_node1 = `SELECT @@session.auto_increment_offset`;
SET SESSION auto_increment_increment = 3;
SET SESSION auto_increment_offset = 1;
diff --git a/mysql-test/suite/galera/t/galera_change_user.test b/mysql-test/suite/galera/t/galera_change_user.test
new file mode 100644
index 00000000000..89efef1dbb0
--- /dev/null
+++ b/mysql-test/suite/galera/t/galera_change_user.test
@@ -0,0 +1,29 @@
+#
+# Check that change user works with Galera
+#
+
+--source include/galera_cluster.inc
+--source include/have_innodb.inc
+
+--connection node_1
+CREATE USER user1;
+CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
+
+# Change user in idle connection
+--connect node_1a, 127.0.0.1, root, , test, $MYPORT_NODE_1
+change_user 'user1';
+reset_connection;
+--disconnect node_1a
+
+# Change user with transaction open
+--connect node_1a, 127.0.0.1, root, , test, $MYPORT_NODE_1
+START TRANSACTION;
+INSERT INTO t1 VALUES (1);
+change_user 'user1';
+reset_connection;
+--disconnect node_1a
+
+--connection node_1
+DROP TABLE t1;
+DROP USER user1;
+
diff --git a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf b/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf
deleted file mode 100644
index 7979b23e085..00000000000
--- a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf
+++ /dev/null
@@ -1,13 +0,0 @@
-!include ../galera_2nodes.cnf
-
-[mysqld]
-wsrep_sst_method=mariabackup
-wsrep_sst_auth=root:
-
-innodb_flush_log_at_trx_commit=0
-
-[mysqld.1]
-wsrep_provider_options='base_port=@mysqld.1.#galera_port;pc.ignore_sb=true'
-
-[mysqld.2]
-wsrep_provider_options='base_port=@mysqld.2.#galera_port;pc.ignore_sb=true'
diff --git a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test b/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
deleted file mode 100644
index fd362a26840..00000000000
--- a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# This test performs server kill and IST while innodb_flush_logs_on_trx_commit = 0
-# This confirms that IST can properly catch up even in the face of relaxed single-node durability
-#
-#
-
---source include/big_test.inc
---source include/galera_cluster.inc
---source include/have_innodb.inc
---source include/have_mariabackup.inc
-
---source suite/galera/include/galera_st_kill_slave.inc
---source suite/galera/include/galera_st_kill_slave_ddl.inc
diff --git a/mysql-test/suite/galera/t/galera_kill_applier.test b/mysql-test/suite/galera/t/galera_kill_applier.test
index b66e0bcbbd0..4136bac5dc6 100644
--- a/mysql-test/suite/galera/t/galera_kill_applier.test
+++ b/mysql-test/suite/galera/t/galera_kill_applier.test
@@ -4,9 +4,16 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
+--source include/force_restart.inc
---connection node_1
---let $applier_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE IS NULL LIMIT 1`
+--connection node_2
+SET GLOBAL wsrep_slave_threads=2;
+
+--let $wait_condition = SELECT COUNT(*) >= 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle';
+--let $wait_condition_on_error_output = SELECT COUNT(*), 2 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
+--source include/wait_condition_with_debug.inc
+
+--let $applier_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle' LIMIT 1`
--disable_query_log
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR
@@ -23,3 +30,17 @@
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR
--eval KILL QUERY $aborter_thread
--enable_query_log
+
+SET GLOBAL wsrep_slave_threads=1;
+
+--connection node_1
+create table t1(a int not null primary key) engine=innodb;
+insert into t1 values (1);
+insert into t1 values (2);
+
+--connection node_2
+set global wsrep_sync_wait=15;
+select count(*) from t1;
+
+--connection node_1
+drop table t1;
diff --git a/mysql-test/suite/galera/t/galera_kill_ddl.test b/mysql-test/suite/galera/t/galera_kill_ddl.test
index ca59264ced4..1034b81eddf 100644
--- a/mysql-test/suite/galera/t/galera_kill_ddl.test
+++ b/mysql-test/suite/galera/t/galera_kill_ddl.test
@@ -5,16 +5,20 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
-call mtr.add_suppression("WSREP: Last Applied Action message in non-primary configuration from member .*");
+# Save original auto_increment_offset values.
+--let $node_1=node_1
+--let $node_2=node_2
+--source include/auto_increment_offset_save.inc
--connection node_1
+call mtr.add_suppression("WSREP: Last Applied Action message in non-primary configuration from member .*");
# Enable the master to continue running during the split-brain situation that
# occurs when the slave is killed
--let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
-CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB;
--connection node_2
--source include/kill_galera.inc
@@ -36,7 +40,10 @@ ALTER TABLE t1 ADD COLUMN f2 INTEGER;
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
--source include/wait_condition.inc
-SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';
+# Restore original auto_increment_offset values.
+--source include/auto_increment_offset_restore.inc
+
+SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';
--connection node_1
--disable_query_log
diff --git a/mysql-test/suite/galera/t/galera_load_data.test b/mysql-test/suite/galera/t/galera_load_data.test
index 99f8e571ef0..f1dfd1af7fc 100644
--- a/mysql-test/suite/galera/t/galera_load_data.test
+++ b/mysql-test/suite/galera/t/galera_load_data.test
@@ -38,23 +38,37 @@ ALTER TABLE `cardtest_tbl` ENABLE KEYS;
UNLOCK TABLES;
use cardtest02;
---sleep 15
---vertical_results
-show indexes from cardtest_tbl;
---vertical_results
-select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl';
+--sleep 20
+
+let $cardinality1 = `SELECT cardinality from information_schema.statistics WHERE TABLE_NAME = 'cardtest_tbl'`;
+let $table_rows1 = `SELECT table_rows from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`;
+let $avg_row_length1 = `SELECT avg_row_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`;
+let $data_length1 = `SELECT data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`;
+
select count(*) from cardtest_tbl;
--connection node_2
set session wsrep_sync_wait=15;
use cardtest02;
---sleep 15
---vertical_results
-show indexes from cardtest_tbl;
---vertical_results
-select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl';
select count(*) from cardtest_tbl;
+if (`SELECT cardinality <> $cardinality1 from information_schema.statistics WHERE TABLE_NAME = 'cardtest_tbl'`)
+{
+SELECT cardinality from from information_schema.statistics WHERE TABLE_NAME = 'cardtest_tbl';
+}
+if (`SELECT table_rows <> $table_rows1 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`)
+{
+SELECT table_rows from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl';
+}
+if (`SELECT avg_row_length <> $avg_row_length1 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`)
+{
+SELECT avg_row_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl';
+}
+if (`SELECT data_length <> $data_length1 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`)
+{
+SELECT data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl';
+}
+
--connection node_1
use test;
drop database cardtest02;
diff --git a/mysql-test/suite/galera/t/galera_log_bin.test b/mysql-test/suite/galera/t/galera_log_bin.test
index 57df53e29b1..828869a7e0f 100644
--- a/mysql-test/suite/galera/t/galera_log_bin.test
+++ b/mysql-test/suite/galera/t/galera_log_bin.test
@@ -1,6 +1,15 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
+--connection node_1
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+--connection node_2
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+
#
# Test Galera with --log-bin --log-slave-updates .
# This way the actual MySQL binary log is used,
@@ -20,22 +29,23 @@ SELECT COUNT(*) = 2 FROM t2;
--connection node_1
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
-
-FLUSH LOGS;
---replace_column 2 # 4 # 5 #
---replace_regex /table_id: [0-9]+/table_id: #/ /xid=[0-9]+/xid=#/
-SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,21;
+--let $MASTER_MYPORT=$NODE_MYPORT_1
+--source include/show_binlog_events.inc
--connection node_2
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
---replace_column 2 # 4 # 5 #
---replace_regex /table_id: [0-9]+/table_id: #/ /xid=[0-9]+/xid=#/
-SHOW BINLOG EVENTS IN 'mysqld-bin.000003' LIMIT 3,21;
+--let $MASTER_MYPORT=$NODE_MYPORT_2
+--source include/show_binlog_events.inc
DROP TABLE t1;
DROP TABLE t2;
+--echo #cleanup
--connection node_1
SET GLOBAL wsrep_on=OFF;
RESET MASTER;
SET GLOBAL wsrep_on=ON;
+--connection node_2
+SET GLOBAL wsrep_on=OFF;
+reset master;
+SET GLOBAL wsrep_on=ON;
diff --git a/mysql-test/suite/galera/t/galera_log_output_csv.test b/mysql-test/suite/galera/t/galera_log_output_csv.test
index 94ae3dd6168..eeccc953187 100644
--- a/mysql-test/suite/galera/t/galera_log_output_csv.test
+++ b/mysql-test/suite/galera/t/galera_log_output_csv.test
@@ -22,3 +22,5 @@ SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT 2 = 2 FROM t1';
--connection node_1
DROP TABLE t1;
+truncate table mysql.slow_log;
+truncate table mysql.general_log;
diff --git a/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test b/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test
index 31fbb6914c9..0730f0380f5 100644
--- a/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test
+++ b/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test
@@ -5,6 +5,7 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/big_test.inc
+--source include/force_restart.inc
# Create a second connection to node1 so that we can run transactions concurrently
--let $galera_connection_name = node_1a
@@ -20,8 +21,9 @@ CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoD
--connection node_2
set session wsrep_sync_wait=15;
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
+
SET GLOBAL wsrep_slave_threads = 4;
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
--connection node_1
diff --git a/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test b/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
index 1db5ee3bdc7..b82a160657d 100644
--- a/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
+++ b/mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test
@@ -5,6 +5,7 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/big_test.inc
+--source include/force_restart.inc
--connection node_1
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB;
@@ -24,8 +25,9 @@ CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoD
--connection node_2
set session wsrep_sync_wait=15;
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
+
SET GLOBAL wsrep_slave_threads = 4;
---let $wait_condition = SELECT COUNT(*) = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
+--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
--connection node_1
diff --git a/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test b/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test
index 9d4f50f66ee..953a1635559 100644
--- a/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test
+++ b/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test
@@ -1,6 +1,6 @@
--source include/big_test.inc
--source include/galera_cluster.inc
---source include/have_filekeymanagement.inc
+--source include/have_file_key_management.inc
--source include/innodb_encrypt_tables.inc
--source include/innodb_page_size_small.inc
--source include/have_mariabackup.inc
diff --git a/mysql-test/suite/galera/t/galera_sync_wait_show.test b/mysql-test/suite/galera/t/galera_sync_wait_show.test
index edad2840da2..1d240cc40d4 100644
--- a/mysql-test/suite/galera/t/galera_sync_wait_show.test
+++ b/mysql-test/suite/galera/t/galera_sync_wait_show.test
@@ -64,7 +64,9 @@ DROP TABLE t1;
--connection node_1
+--disable_warnings
CREATE EVENT event1 ON SCHEDULE AT '2038-01-01 23:59:59' DO SELECT 1;
+--enable_warnings
--connection node_2
SHOW CREATE EVENT event1;
diff --git a/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test b/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test
index 9f161afc52e..fadc94d78ff 100644
--- a/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test
+++ b/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test
@@ -6,13 +6,12 @@
# This test creates a new FK constraint while concurrent INSERTS are running
#
-CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB;
+CREATE TABLE ten (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE parent (
id INT PRIMARY KEY AUTO_INCREMENT,
- f2 INTEGER,
- KEY (id)
+ f2 INTEGER
) ENGINE=InnoDB;
CREATE TABLE child (
@@ -41,7 +40,6 @@ INSERT INTO parent VALUES (1, 0);
--let $galera_server_number = 1
--source include/galera_connect.inc
--connection node_1b
---sleep 2
--send ALTER TABLE child ADD FOREIGN KEY (parent_id) REFERENCES parent(id);
--connection node_1a
@@ -57,14 +55,15 @@ INSERT INTO parent VALUES (1, 0);
--reap
--connection node_1
-SELECT COUNT(*) = 20001 FROM parent;
-SELECT COUNT(*) = 10000 FROM child;
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+SELECT COUNT(*) FROM child;
--connection node_2
-SELECT COUNT(*) = 20001 FROM parent;
-SELECT COUNT(*) = 10000 FROM child;
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+SELECT COUNT(*) FROM child;
DROP TABLE child;
DROP TABLE parent;
-
DROP TABLE ten;
diff --git a/mysql-test/suite/galera/t/galera_var_gtid_domain_id.test b/mysql-test/suite/galera/t/galera_var_gtid_domain_id.test
index c4127b4f655..eec47507e3a 100644
--- a/mysql-test/suite/galera/t/galera_var_gtid_domain_id.test
+++ b/mysql-test/suite/galera/t/galera_var_gtid_domain_id.test
@@ -48,6 +48,17 @@ source include/print_gtid.inc;
# Cleanup
DROP TABLE t1, t2;
+--echo #cleanup
+--connection node_1
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+
+--connection node_2
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+
--source include/galera_end.inc
--echo # End of test
diff --git a/mysql-test/suite/galera/t/galera_var_notify_cmd.test b/mysql-test/suite/galera/t/galera_var_notify_cmd.test
index 4fea69f62bb..b261f878ced 100644
--- a/mysql-test/suite/galera/t/galera_var_notify_cmd.test
+++ b/mysql-test/suite/galera/t/galera_var_notify_cmd.test
@@ -10,5 +10,3 @@
SELECT COUNT(DISTINCT uuid) = 2 FROM mtr_wsrep_notify.membership;
SELECT MAX(size) = 2 FROM mtr_wsrep_notify.status;
SELECT COUNT(DISTINCT idx) = 2 FROM mtr_wsrep_notify.status;
-
-DROP SCHEMA mtr_wsrep_notify;
diff --git a/mysql-test/suite/galera/t/galera_var_slave_threads.test b/mysql-test/suite/galera/t/galera_var_slave_threads.test
index 12d8006db4b..4a2dd07098c 100644
--- a/mysql-test/suite/galera/t/galera_var_slave_threads.test
+++ b/mysql-test/suite/galera/t/galera_var_slave_threads.test
@@ -6,7 +6,7 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
---let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
+--source include/force_restart.inc
# Save original auto_increment_offset values.
--let $node_1=node_1
@@ -14,6 +14,7 @@
--source include/auto_increment_offset_save.inc
--connection node_1
+--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB;
CREATE TABLE t2 (f1 INT AUTO_INCREMENT PRIMARY KEY) Engine=InnoDB;
@@ -26,28 +27,25 @@ SELECT @@wsrep_slave_threads = 1;
SET GLOBAL wsrep_slave_threads = 1;
# There is a separate wsrep_aborter thread at all times
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND COMMAND != 'Daemon';
SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%';
-#
-# Increase the number of slave threads. The change takes effect immediately
-#
-
-SET GLOBAL wsrep_slave_threads = 64;
-
--connection node_1
INSERT INTO t1 VALUES (1);
--connection node_2
+
+--let $wait_timeout=600
+--let $wait_condition = SELECT COUNT(*) = 1 FROM t1;
+--source include/wait_condition.inc
+
SELECT COUNT(*) FROM t1;
#
-# note, in wsrep API #26, we have 2 rollbacker threads, counted as system user's
+# Increase the number of slave threads. The change takes effect immediately
#
+SET GLOBAL wsrep_slave_threads = 64;
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%';
-
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+--let $wait_condition = SELECT VARIABLE_VALUE = 64 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
#
@@ -60,8 +58,8 @@ SET GLOBAL wsrep_slave_threads = 1;
--disable_result_log
--disable_query_log
-# Generate 64 replication events
---let $count = 64
+# Generate 70 replication events
+--let $count = 70
while ($count)
{
INSERT INTO t2 VALUES (DEFAULT);
@@ -73,120 +71,49 @@ while ($count)
--connection node_2
SELECT COUNT(*) FROM t2;
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%';
-
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
---source include/wait_condition.inc
-
---let $wsrep_cluster_address_node2 = `SELECT @@wsrep_cluster_address`
---let $wsrep_provider_node2 = `SELECT @@wsrep_provider`
-
-SET GLOBAL wsrep_slave_threads = 5;
-
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
-SET GLOBAL wsrep_slave_threads = 1;
+--eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig
-#
-# test phase for bug https://github.com/codership/mysql-wsrep/issues/319
-#
+DROP TABLE t1;
+DROP TABLE t2;
-# shutdown node 2
---connection node_2
---echo Shutting down server ...
---source include/shutdown_mysqld.inc
+--echo #
+--echo # lp:1372840 - Changing wsrep_slave_threads causes future connections to hang
+--echo #
-# wait until node_1 is ready as one node cluster
--connection node_1
+CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY) ENGINE=INNODB;
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
---source include/wait_condition.inc
-show status like 'wsrep_cluster_size';
-
-# step up slave threads to 6, and make sure all appliers and rollbacker thread are running
-SET GLOBAL wsrep_slave_threads = 6;
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+--connection node_2
+SET GLOBAL wsrep_slave_threads = 4;
+--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
-# change to invalid cluster address
SET GLOBAL wsrep_slave_threads = 1;
-SET GLOBAL wsrep_cluster_address='';
-
-# join back to single node cluster
-SET GLOBAL wsrep_cluster_address='gcomm://';
---source include/wait_until_connected_again.inc
-# we should have 1 applier thread now
---let $wait_condition = SELECT COUNT(*) = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND COMMAND != 'Daemon'
---source include/wait_condition.inc
-
-# test if we can increase applier count now (fails in bug #319)
-SET GLOBAL wsrep_slave_threads = 10;
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
---source include/wait_condition.inc
+--connection node_1
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+INSERT INTO t1 VALUES (DEFAULT);
+DROP TABLE t1;
-# restart node 2
--connection node_2
---source include/start_mysqld.inc
---source include/wait_until_connected_again.inc
-
-SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND COMMAND != 'Daemon';
-#
+# Wait until above DDL is replicated
#
-# cleanup to original state
+# make sure that we are left with exactly one applier thread before we leaving the test
#
---connection node_1
---eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig
-
---connection node_2
---eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig
-
-
---disable_result_log
---disable_query_log
-# Generate 64 replication events, to help node 1 to purge excessive applier threads
---let $count = 64
-while ($count)
-{
- INSERT INTO t2 VALUES (DEFAULT);
- --dec $count
-}
---enable_query_log
---enable_result_log
-
---connection node_1
---disable_result_log
---disable_query_log
-# Generate 64 replication events, to help node 2 to purge excessive applier threads
---let $count = 64
-while ($count)
-{
- INSERT INTO t2 VALUES (DEFAULT);
- --dec $count
-}
---enable_query_log
---enable_result_log
-
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
---source include/wait_condition.inc
-
-
---connection node_2
---let $wait_condition = SELECT VARIABLE_VALUE = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
-SELECT COUNT(*) FROM t1;
-SELECT COUNT(*) FROM t2;
-
---connection node_1
-
-SELECT COUNT(*) FROM t1;
-SELECT COUNT(*) FROM t2;
-
-DROP TABLE t1;
-DROP TABLE t2;
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t%';
# Restore original auto_increment_offset values.
--source include/auto_increment_offset_restore.inc
diff --git a/mysql-test/suite/galera/t/mdev_10518.test b/mysql-test/suite/galera/t/mdev_10518.test
index c4127b4f655..eec47507e3a 100644
--- a/mysql-test/suite/galera/t/mdev_10518.test
+++ b/mysql-test/suite/galera/t/mdev_10518.test
@@ -48,6 +48,17 @@ source include/print_gtid.inc;
# Cleanup
DROP TABLE t1, t2;
+--echo #cleanup
+--connection node_1
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+
+--connection node_2
+set global wsrep_on=OFF;
+reset master;
+set global wsrep_on=ON;
+
--source include/galera_end.inc
--echo # End of test
diff --git a/mysql-test/suite/galera_3nodes/r/galera_innobackupex_backup.result b/mysql-test/suite/galera_3nodes/r/galera_innobackupex_backup.result
new file mode 100644
index 00000000000..e3935c32fda
--- /dev/null
+++ b/mysql-test/suite/galera_3nodes/r/galera_innobackupex_backup.result
@@ -0,0 +1,20 @@
+connection node_2;
+connection node_1;
+connection node_1;
+connection node_2;
+connection node_3;
+connection node_1;
+CREATE TABLE t1 (f1 INTEGER);
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+connection node_2;
+SELECT COUNT(*) = 10 FROM t1;
+COUNT(*) = 10
+1
+Killing server ...
+connection node_1;
+INSERT INTO t1 VALUES (11),(12),(13),(14),(15),(16),(17),(18),(19),(20);
+# restart
+SELECT COUNT(*) = 20 FROM t1;
+COUNT(*) = 20
+1
+DROP TABLE t1;
diff --git a/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result b/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result
index 8ec1ff090ff..dc72260d979 100644
--- a/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result
+++ b/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result
@@ -20,5 +20,6 @@ DROP TABLE t1;
connection node_1;
include/assert_grep.inc [Streaming the backup to joiner at \[::1\]]
include/assert_grep.inc [async IST sender starting to serve tcp://\[::1\]:]
+connection node_2;
include/assert_grep.inc [IST receiver addr using tcp://\[::1\]]
include/assert_grep.inc [Prepared IST receiver for 3-6, listening at: tcp://\[::1\]]
diff --git a/mysql-test/suite/galera_3nodes/suite.pm b/mysql-test/suite/galera_3nodes/suite.pm
index 5ed5cbd95db..4a861f3b9fa 100644
--- a/mysql-test/suite/galera_3nodes/suite.pm
+++ b/mysql-test/suite/galera_3nodes/suite.pm
@@ -6,30 +6,11 @@ use My::Find;
return "Not run for embedded server" if $::opt_embedded_server;
-return "WSREP is not compiled in" unless defined $::mysqld_variables{'wsrep-on'};
+return "WSREP is not compiled in" if not ::have_wsrep();
-my ($provider) = grep { -f $_ } $ENV{WSREP_PROVIDER},
- "/usr/lib64/galera-4/libgalera_smm.so",
- "/usr/lib64/galera/libgalera_smm.so",
- "/usr/lib/galera-4/libgalera_smm.so",
- "/usr/lib/galera/libgalera_smm.so";
+return "No wsrep provider library" unless ::have_wsrep_provider();
-return "No wsrep provider library" unless -f $provider;
-
-$ENV{WSREP_PROVIDER} = $provider;
-
-my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$::bindir/scripts", $::path_client_bindir;
-return "No SST scripts" unless $spath;
-
-my ($cpath) = grep { -f "$_/mysql"; } "$::bindir/scripts", $::path_client_bindir;
-return "No scritps" unless $cpath;
-
-my ($epath) = grep { -f "$_/my_print_defaults"; } "$::bindir/extra", $::path_client_bindir;
-return "No my_print_defaults" unless $epath;
-
-my ($bpath) = grep { -f "$_/mariabackup"; } "$::bindir/extra/mariabackup", $::path_client_bindir;
-
-sub which($) { return `sh -c "command -v $_[0]"` }
+return ::wsrep_version_message() unless ::check_wsrep_version();
push @::global_suppressions,
(
@@ -65,30 +46,4 @@ push @::global_suppressions,
qr(WSREP: JOIN message from member .* in non-primary configuration. Ignored.),
);
-
-$ENV{PATH}="$epath:$ENV{PATH}";
-$ENV{PATH}="$spath:$ENV{PATH}" unless $epath eq $spath;
-$ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath;
-$ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $spath;
-
-if (which(socat)) {
- $ENV{MTR_GALERA_TFMT}='socat';
-} elsif (which(nc)) {
- $ENV{MTR_GALERA_TFMT}='nc';
-}
-
-sub skip_combinations {
- my %skip = ();
- $skip{'include/have_filekeymanagement.inc'} = 'needs file_key_management plugin'
- unless $ENV{FILE_KEY_MANAGEMENT_SO};
- $skip{'suite/galera/include/have_mariabackup.inc'} = 'Need mariabackup'
- unless which(mariabackup);
- $skip{'suite/galera/include/have_mariabackup.inc'} = 'Need ss'
- unless which(ss);
- $skip{'suite/galera/include/have_mariabackup.inc'} = 'Need socat or nc'
- unless $ENV{MTR_GALERA_TFMT};
- %skip;
-}
-
bless { };
-
diff --git a/mysql-test/suite/galera_3nodes/t/galera_garbd.test b/mysql-test/suite/galera_3nodes/t/galera_garbd.test
index fa3cba0ab16..05b1b25930f 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_garbd.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_garbd.test
@@ -5,6 +5,7 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
+--source include/have_garbd.inc
--source include/big_test.inc
# Save galera ports
@@ -30,8 +31,6 @@
--echo Killing node #3 to free ports for garbd ...
--connection node_3
---let $gp3 = `SELECT SUBSTR(@@wsrep_provider_options, LOCATE('base_port =', @@wsrep_provider_options) + LENGTH('base_port = '))`
---let $galera_port_3 = `SELECT SUBSTR('$gp3', 1, LOCATE(';', '$gp3') - 1)`
--source include/shutdown_mysqld.inc
--connection node_1
@@ -39,33 +38,7 @@
--source include/wait_condition.inc
--echo Starting garbd ...
---perl
-use strict;
-use File::Basename;
-my $provider_dirname = dirname($ENV{WSREP_PROVIDER});
-# Array of possible garbd executable paths to be checked
-# base is $provider_dirname
-my @garbd_executable_search = (
- # WSREP_PROVIDER is set in galera repository
- ${provider_dirname}."/garb/garbd",
- # MariaDB (PR #1147)
- ${provider_dirname}."/../../bin/garb/garbd"
-);
-my $garbd_executable = '';
-foreach my $garbd (@garbd_executable_search) {
- if (-f $garbd) {
- $garbd_executable= $garbd;
- }
-}
-if ($garbd_executable eq '') {
- die("Didn't locate garbd\n");
-}
-die unless open(FILE, ">$ENV{MYSQLTEST_VARDIR}/tmp/garbd.inc");
-print FILE "--exec $garbd_executable --address \"gcomm://127.0.0.1:\$NODE_GALERAPORT_1\" --group my_wsrep_cluster --options 'base_port=\$NODE_GALERAPORT_3' > \$MYSQL_TMP_DIR/garbd.log 2>&1 &\n";
-close(FILE);
-EOF
---source $MYSQLTEST_VARDIR/tmp/garbd.inc
---remove_file $MYSQLTEST_VARDIR/tmp/garbd.inc
+--exec $MTR_GARBD_EXE --address "gcomm://127.0.0.1:$NODE_GALERAPORT_1" --group my_wsrep_cluster --options 'base_port=$NODE_GALERAPORT_3' > $MYSQL_TMP_DIR/garbd.log 2>&1 &
--sleep 5
diff --git a/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test b/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test
new file mode 100644
index 00000000000..8dfb4660f3e
--- /dev/null
+++ b/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test
@@ -0,0 +1,80 @@
+#
+# This test uses innobackupex to take a backup on node #2 and then restores that node from backup
+#
+
+--source include/galera_cluster.inc
+--source include/have_innodb.inc
+--source include/have_mariabackup.inc
+
+--let $galera_connection_name = node_3
+--let $galera_server_number = 3
+--source include/galera_connect.inc
+
+# Save original auto_increment_offset values.
+--let $node_1=node_1
+--let $node_2=node_2
+--let $node_3=node_3
+--source ../galera/include/auto_increment_offset_save.inc
+
+--connection node_1
+CREATE TABLE t1 (f1 INTEGER);
+INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+
+--connection node_2
+SELECT COUNT(*) = 10 FROM t1;
+
+--exec rm -rf $MYSQL_TMP_DIR/innobackupex_backup
+--exec mariabackup --innobackupex --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group=mysqld.2 --galera-info --port=$NODE_MYPORT_2 --host=127.0.0.1 --no-timestamp $MYSQL_TMP_DIR/innobackupex_backup &> $MYSQL_TMP_DIR/innobackupex-backup.log
+--exec mariabackup --innobackupex --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group=mysqld.2 --apply-log --galera-info --port=$NODE_MYPORT_2 --host=127.0.0.1 --no-timestamp $MYSQL_TMP_DIR/innobackupex_backup &> $MYSQL_TMP_DIR/innobackupex-apply.log
+
+--source ../galera/include/kill_galera.inc
+--sleep 1
+
+--connection node_1
+INSERT INTO t1 VALUES (11),(12),(13),(14),(15),(16),(17),(18),(19),(20);
+
+--exec rm -rf $MYSQLTEST_VARDIR/mysqld.2/data/*
+--exec mariabackup --innobackupex --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group=mysqld.2 --copy-back --port=$NODE_MYPORT_2 --host=127.0.0.1 $MYSQL_TMP_DIR/innobackupex_backup &> $MYSQL_TMP_DIR/innobackupex-restore.log
+
+#
+# Convert the xtrabackup_galera_info into a grastate.dat file
+#
+
+--perl
+ use strict;
+ my $xtrabackup_galera_info_file = $ENV{'MYSQL_TMP_DIR'}.'/innobackupex_backup/xtrabackup_galera_info';
+ open(XTRABACKUP_GALERA_INFO, $xtrabackup_galera_info_file) or die "Can not open $xtrabackup_galera_info_file: $!";
+ my $xtrabackup_galera_info = <XTRABACKUP_GALERA_INFO>;
+ my ($uuid, $seqno) = split(':', $xtrabackup_galera_info);
+
+ my $grastate_dat_file = $ENV{'MYSQLTEST_VARDIR'}.'/mysqld.2/data/grastate.dat';
+ die "grastate.dat already exists" if -e $grastate_dat_file;
+
+ open(GRASTATE_DAT, ">$grastate_dat_file") or die "Can not write to $grastate_dat_file: $!";
+ print GRASTATE_DAT "version: 2.1\n";
+ print GRASTATE_DAT "uuid: $uuid\n";
+ print GRASTATE_DAT "seqno: $seqno\n";
+ print GRASTATE_DAT "cert_index:\n";
+ exit(0);
+EOF
+
+--source include/start_mysqld.inc
+--sleep 5
+
+--source include/wait_until_connected_again.inc
+--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
+--source include/wait_condition.inc
+
+SELECT COUNT(*) = 20 FROM t1;
+
+DROP TABLE t1;
+
+--sleep 10
+
+--let $galera_connection_name = node_2a
+--let $galera_server_number = 2
+--source include/galera_connect.inc
+--let $node_2=node_2a
+
+# Restore original auto_increment_offset values.
+--source ../galera/include/auto_increment_offset_restore.inc
diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test
index 71d17c133a5..7f73e36c0b8 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test
@@ -1,6 +1,7 @@
--source include/galera_cluster.inc
--source include/check_ipv6.inc
---source suite/galera/include/have_mariabackup.inc
+--source include/have_innodb.inc
+--source include/have_mariabackup.inc
# Confirm that initial handshake happened over ipv6
diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test
index 71d17c133a5..fd76c3586ca 100644
--- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test
+++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test
@@ -1,6 +1,7 @@
--source include/galera_cluster.inc
--source include/check_ipv6.inc
---source suite/galera/include/have_mariabackup.inc
+--source include/have_innodb.inc
+--source include/have_mariabackup.inc
# Confirm that initial handshake happened over ipv6
@@ -52,7 +53,9 @@ DROP TABLE t1;
--let $assert_select = async IST sender starting to serve tcp://\[::1\]:
--source include/assert_grep.inc
+--connection node_2
--let $assert_file = $MYSQLTEST_VARDIR/log/mysqld.2.err
+--let $assert_only_after = CURRENT_TEST
# There are two ISTs on joiner, the first at the initial startup, the second
# during the actual test.
diff --git a/mysql-test/suite/galera_sr/r/galera-features#56.result b/mysql-test/suite/galera_sr/r/galera-features#56.result
index 1d04b6f9cee..b56f955217b 100644
--- a/mysql-test/suite/galera_sr/r/galera-features#56.result
+++ b/mysql-test/suite/galera_sr/r/galera-features#56.result
@@ -2,11 +2,19 @@ connection node_2;
connection node_1;
SET SESSION wsrep_trx_fragment_size = 1;
connection node_1;
-CREATE TABLE ten (f1 INTEGER);
+CREATE TABLE ten (f1 INTEGER NOT NULL PRIMARY KEY) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
connection node_2;
+set session wsrep_sync_wait=15;
+SELECT COUNT(*) from ten;
+COUNT(*)
+10
+SELECT COUNT(*) from t1;
+COUNT(*)
+0
+set session wsrep_sync_wait=0;
SET GLOBAL wsrep_slave_threads = 4;
SET SESSION wsrep_trx_fragment_size = 1;
connection node_1;
@@ -18,15 +26,12 @@ INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;;
connection node_1;
connection node_1a;
connection node_2;
-SELECT COUNT(*) = 30000 FROM t1;
-COUNT(*) = 30000
-1
-SELECT COUNT(DISTINCT f1) = 30000 FROM t1;
-COUNT(DISTINCT f1) = 30000
-1
-SELECT COUNT(*) = 6 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user';
-COUNT(*) = 6
-0
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+30000
+SELECT COUNT(DISTINCT f1) FROM t1;
+COUNT(DISTINCT f1)
+30000
connection default;
DROP TABLE t1;
DROP TABLE ten;
diff --git a/mysql-test/suite/galera_sr/t/galera-features#56.test b/mysql-test/suite/galera_sr/t/galera-features#56.test
index 0497952e355..d3fe6363749 100644
--- a/mysql-test/suite/galera_sr/t/galera-features#56.test
+++ b/mysql-test/suite/galera_sr/t/galera-features#56.test
@@ -4,6 +4,7 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
+--source include/big_test.inc
# Create a second connection to node1 so that we can run transactions concurrently
--let $galera_connection_name = node_1a
@@ -12,7 +13,7 @@
SET SESSION wsrep_trx_fragment_size = 1;
--connection node_1
-CREATE TABLE ten (f1 INTEGER);
+CREATE TABLE ten (f1 INTEGER NOT NULL PRIMARY KEY) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB;
@@ -20,8 +21,17 @@ SET SESSION wsrep_trx_fragment_size = 1;
--connection node_2
+set session wsrep_sync_wait=15;
+SELECT COUNT(*) from ten;
+SELECT COUNT(*) from t1;
+set session wsrep_sync_wait=0;
+
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
SET GLOBAL wsrep_slave_threads = 4;
+
+--let $wait_condition = SELECT COUNT(*) >= 3 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle';
+--source include/wait_condition.inc
+
SET SESSION wsrep_trx_fragment_size = 1;
--connection node_1
@@ -42,9 +52,8 @@ SET SESSION wsrep_trx_fragment_size = 1;
--connection node_2
--reap
-SELECT COUNT(*) = 30000 FROM t1;
-SELECT COUNT(DISTINCT f1) = 30000 FROM t1;
-SELECT COUNT(*) = 6 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user';
+SELECT COUNT(*) FROM t1;
+SELECT COUNT(DISTINCT f1) FROM t1;
--disable_query_log
--eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig;
diff --git a/mysql-test/suite/innodb/include/show_i_s_tablespaces.inc b/mysql-test/suite/innodb/include/show_i_s_tablespaces.inc
index c6a4dfc4366..32c5e88d9b6 100644
--- a/mysql-test/suite/innodb/include/show_i_s_tablespaces.inc
+++ b/mysql-test/suite/innodb/include/show_i_s_tablespaces.inc
@@ -8,12 +8,10 @@
SELECT s.name 'Space_Name',
s.page_size 'Page_Size',
s.zip_page_size 'Zip_Size',
- s.row_format 'Formats_Permitted',
d.path 'Path'
FROM information_schema.innodb_sys_tablespaces s,
information_schema.innodb_sys_datafiles d
WHERE s.space = d.space
AND s.name NOT LIKE 'mysql/%'
- AND s.name NOT LIKE 'sys/%'
ORDER BY s.space;
--enable_query_log
diff --git a/mysql-test/suite/innodb/r/alter_large_dml.result b/mysql-test/suite/innodb/r/alter_large_dml.result
new file mode 100644
index 00000000000..056e8fdd768
--- /dev/null
+++ b/mysql-test/suite/innodb/r/alter_large_dml.result
@@ -0,0 +1,49 @@
+CREATE TABLE t1(f1 char(200), f2 char(200), f3 char(200),
+f4 char(200), f5 char(200), f6 char(200),
+f7 char(200), f8 char(200))ENGINE=InnoDB;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+SET DEBUG_SYNC = 'inplace_after_index_build SIGNAL rebuilt WAIT_FOR dml_pause';
+SET DEBUG_SYNC = 'alter_table_inplace_before_lock_upgrade SIGNAL dml_restart WAIT_FOR dml_done';
+SET DEBUG_SYNC = 'row_log_table_apply2_before SIGNAL ddl_start';
+ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
+connect con1,localhost,root,,test;
+SET DEBUG_SYNC = 'now WAIT_FOR rebuilt';
+BEGIN;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+SET DEBUG_SYNC = 'now SIGNAL dml_pause';
+SET DEBUG_SYNC = 'now WAIT_FOR dml_restart';
+ROLLBACK;
+BEGIN;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+ROLLBACK;
+BEGIN;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+ROLLBACK;
+SET DEBUG_SYNC = 'now SIGNAL dml_done';
+connect con2, localhost,root,,test;
+SET DEBUG_SYNC = 'now WAIT_FOR ddl_start';
+CREATE TABLE t2(f1 INT NOT NULL)ENGINE=InnoDB;
+connection default;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` char(200) DEFAULT NULL,
+ `f2` char(200) DEFAULT NULL,
+ `f3` char(200) DEFAULT NULL,
+ `f4` char(200) DEFAULT NULL,
+ `f5` char(200) DEFAULT NULL,
+ `f6` char(200) DEFAULT NULL,
+ `f7` char(200) DEFAULT NULL,
+ `f8` char(200) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+16384
+SET DEBUG_SYNC = 'RESET';
+DROP TABLE t1, t2;
diff --git a/mysql-test/suite/innodb/r/alter_missing_tablespace.result b/mysql-test/suite/innodb/r/alter_missing_tablespace.result
index 935b8199ab9..5de5d0dfc44 100644
--- a/mysql-test/suite/innodb/r/alter_missing_tablespace.result
+++ b/mysql-test/suite/innodb/r/alter_missing_tablespace.result
@@ -9,23 +9,23 @@ CREATE TABLE t1(a SERIAL)ENGINE=InnoDB;
INSERT INTO t1 VALUES(1),(2),(3);
# restart
SELECT * FROM t;
-ERROR 42S02: Table 'test.t' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
ALTER TABLE t ADD INDEX (a), ALGORITHM=INPLACE;
-ERROR 42S02: Table 'test.t' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
SHOW WARNINGS;
Level Code Message
Warning 1812 Tablespace is missing for table 'test/t'
-Error 1932 Table 'test.t' doesn't exist in engine
+Error 1030 Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
ALTER TABLE t ADD INDEX (a), ALGORITHM=COPY;
-ERROR 42S02: Table 'test.t' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
SHOW WARNINGS;
Level Code Message
Warning 1812 Tablespace is missing for table 'test/t'
-Error 1932 Table 'test.t' doesn't exist in engine
+Error 1030 Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
ALTER TABLE t AUTO_INCREMENT=1, ALGORITHM=INPLACE;
-ERROR 42S02: Table 'test.t' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
ALTER TABLE t AUTO_INCREMENT=1, ALGORITHM=COPY;
-ERROR 42S02: Table 'test.t' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
ALTER TABLE t ALGORITHM=INPLACE, DISCARD TABLESPACE;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DISCARD TABLESPACE' at line 1
ALTER TABLE t ALGORITHM=COPY, DISCARD TABLESPACE;
@@ -38,7 +38,7 @@ Warning 1812 Tablespace is missing for table 'test/t'
Warning 1812 Tablespace is missing for table 'test/t'
DROP TABLE t;
SELECT * FROM `x..d`;
-ERROR 42S02: Table 'test.x..d' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
DROP TABLE `x..d`;
ALTER TABLE t1 DISCARD TABLESPACE;
ALTER TABLE t1 AUTO_INCREMENT=1, ALGORITHM=INPLACE;
diff --git a/mysql-test/suite/innodb/r/blob-crash.result b/mysql-test/suite/innodb/r/blob-crash.result
new file mode 100644
index 00000000000..85d12ff49b5
--- /dev/null
+++ b/mysql-test/suite/innodb/r/blob-crash.result
@@ -0,0 +1,149 @@
+#
+# Bug #16963396 INNODB: USE OF LARGE EXTERNALLY-STORED FIELDS MAKES
+# CRASH RECOVERY LOSE DATA
+#
+#
+# Uncompressed Table - Insert Operation - Crash Test
+# Fresh insert with blobs
+#
+CREATE TABLE t1 (a BIGINT PRIMARY KEY, b LONGBLOB) ENGINE=InnoDB;
+INSERT INTO t1 (a, b) VALUES (1, repeat('^', 40000));
+INSERT INTO t1 (a, b) VALUES (2, '2');
+INSERT INTO t1 (a, b) VALUES (3, '3');
+INSERT INTO t1 (a, b) VALUES (4, '4');
+INSERT INTO t1 (a, b) VALUES (5, '5');
+begin;
+INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 4*1024*1024));
+SELECT a, right(b, 50) FROM t1;
+a right(b, 50)
+1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+2 2
+3 3
+4 4
+5 5
+#
+# Uncompressed Table - UPDATE Operation - Crash Test
+# Update of non-blob column so that blob is needed.
+#
+begin;
+UPDATE t1 set b = REPEAT('a', 4*1024*1024) where a = 5 ;
+SELECT a, right(b, 50) FROM t1;
+a right(b, 50)
+1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+2 2
+3 3
+4 4
+5 5
+#
+# Uncompressed Table - UPDATE Operation - Crash Test
+# Update of blob column to blob.
+#
+connect con1,localhost,root,,;
+begin;
+UPDATE t1 set b = REPEAT('$', 50000) where a = 1;
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+UPDATE t1 SET b='five' WHERE a=5;
+disconnect con1;
+SELECT a, right(b, 50) FROM t1;
+a right(b, 50)
+1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+2 2
+3 3
+4 4
+5 five
+#
+# Uncompressed Table - Rollback of UPDATE operation
+# Update moves offpage data to inline data.
+#
+create table t2 (f1 bigint primary key, f2 longblob, f3 longblob,
+index(f2(10), f3(10))) engine=innodb;
+insert into t2 values (10, repeat('.', 40000), repeat('?', 40000));
+connect con1,localhost,root,,;
+begin;
+update t2 set f2 = '=';
+select f1, right(f2, 20), right(f3, 20) from t2;
+f1 right(f2, 20) right(f3, 20)
+10 = ????????????????????
+update t2 set f3 = '&';
+select f1, right(f2, 20), right(f3, 20) from t2;
+f1 right(f2, 20) right(f3, 20)
+10 = &
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=1;
+disconnect con1;
+select f1, right(f2, 20), right(f3, 20) from t2;
+f1 right(f2, 20) right(f3, 20)
+10 .................... ????????????????????
+check table t2;
+Table Op Msg_type Msg_text
+test.t2 check status OK
+drop table t2;
+#
+# Compressed Table - Insert Operation - Crash Test
+# fresh insert with BLOBs
+#
+set global innodb_compression_level = 0;
+create table t3 (f1 bigint primary key, f2 longblob, f3 longblob,
+index(f2(10), f3(10))) engine=innodb row_format=compressed;
+connect con1,localhost,root,,;
+begin;
+INSERT INTO t3 (f1, f2, f3) VALUES (6, repeat('/', 40000), repeat('<', 40000));
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=2;
+disconnect con1;
+select f1, length(f2), length(f3) from t3;
+f1 length(f2) length(f3)
+select f1, right(f2, 30), right(f3, 20) from t3;
+f1 right(f2, 30) right(f3, 20)
+check table t3;
+Table Op Msg_type Msg_text
+test.t3 check status OK
+#
+# Compressed Table - Update Operation - Crash Test
+# update of a non-BLOB column so that BLOB is needed
+#
+set global innodb_compression_level = 0;
+insert into t3 values (2, repeat('!', 30), repeat('+', 30));
+connect con1,localhost,root,,;
+begin;
+UPDATE t3 set f2 = repeat('>', 40000) where f1 = 2;
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=3;
+disconnect con1;
+select f1, length(f2), length(f3) from t3;
+f1 length(f2) length(f3)
+2 30 30
+select f1, right(f2, 30), right(f3, 20) from t3;
+f1 right(f2, 30) right(f3, 20)
+2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++++++++++++++++++++
+check table t3;
+Table Op Msg_type Msg_text
+test.t3 check status OK
+#
+# Compressed Table - Update Operation - Crash Test
+# update blob to blob
+#
+set global innodb_compression_level = 0;
+insert into t3 values (3, repeat('%', 40000), repeat('~', 40000));
+connect con1,localhost,root,,;
+begin;
+UPDATE t3 set f2 = concat(f2, repeat(',', 10)) where f1 = 3;
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=4;
+select f1, length(f2), length(f3) from t3;
+f1 length(f2) length(f3)
+2 30 30
+3 40000 40000
+select f1, right(f2, 30), right(f3, 20) from t3;
+f1 right(f2, 30) right(f3, 20)
+2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++++++++++++++++++++
+3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~
+check table t3;
+Table Op Msg_type Msg_text
+test.t3 check status OK
+DROP TABLE t1,t3;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
new file mode 100644
index 00000000000..6cf0fdf4159
--- /dev/null
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,32k.rdiff
@@ -0,0 +1,25 @@
+--- check_ibd_filesize.result
++++ check_ibd_filesize.result,32k
+@@ -3,18 +3,12 @@
+ # SPACE IN 5.7 THAN IN 5.6
+ #
+ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 196608
+ INSERT INTO t1 SELECT * FROM seq_1_to_25000;
+-# bytes: 9437184
++# bytes: 786432
+ DROP TABLE t1;
+ CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 196608
+ INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+-# bytes: 4194304
+-DROP TABLE t1;
+-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
+-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
+-# bytes: 65536
+-INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+-# bytes: 65536
++# bytes: 786432
+ DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
new file mode 100644
index 00000000000..52cd6832755
--- /dev/null
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,4k.rdiff
@@ -0,0 +1,25 @@
+--- check_ibd_filesize.result
++++ check_ibd_filesize.result,4k
+@@ -3,18 +3,18 @@
+ # SPACE IN 5.7 THAN IN 5.6
+ #
+ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 24576
+ INSERT INTO t1 SELECT * FROM seq_1_to_25000;
+ # bytes: 9437184
+ DROP TABLE t1;
+ CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 24576
+ INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+ # bytes: 4194304
+ DROP TABLE t1;
+ CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
+-# bytes: 65536
++# bytes: 16384
+ INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+-# bytes: 65536
++# bytes: 25600
+ DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
new file mode 100644
index 00000000000..23d9fbe608f
--- /dev/null
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,64k.rdiff
@@ -0,0 +1,25 @@
+--- check_ibd_filesize.result
++++ check_ibd_filesize.result,64k
+@@ -3,18 +3,12 @@
+ # SPACE IN 5.7 THAN IN 5.6
+ #
+ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 393216
+ INSERT INTO t1 SELECT * FROM seq_1_to_25000;
+-# bytes: 9437184
++# bytes: 983040
+ DROP TABLE t1;
+ CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 393216
+ INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+-# bytes: 4194304
+-DROP TABLE t1;
+-CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
+-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
+-# bytes: 65536
+-INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+-# bytes: 65536
++# bytes: 1572864
+ DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff b/mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
new file mode 100644
index 00000000000..17936a3def9
--- /dev/null
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize,8k.rdiff
@@ -0,0 +1,25 @@
+--- check_ibd_filesize.result
++++ check_ibd_filesize.result,8k
+@@ -3,18 +3,18 @@
+ # SPACE IN 5.7 THAN IN 5.6
+ #
+ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 49152
+ INSERT INTO t1 SELECT * FROM seq_1_to_25000;
+ # bytes: 9437184
+ DROP TABLE t1;
+ CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
+-# bytes: 98304
++# bytes: 49152
+ INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+ # bytes: 4194304
+ DROP TABLE t1;
+ CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
+-# bytes: 65536
++# bytes: 32768
+ INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+-# bytes: 65536
++# bytes: 32768
+ DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/check_ibd_filesize.result b/mysql-test/suite/innodb/r/check_ibd_filesize.result
new file mode 100644
index 00000000000..a6f5fbd9387
--- /dev/null
+++ b/mysql-test/suite/innodb/r/check_ibd_filesize.result
@@ -0,0 +1,20 @@
+#
+# Bug #21950389 SMALL TABLESPACES WITH BLOBS TAKE UP TO 80 TIMES MORE
+# SPACE IN 5.7 THAN IN 5.6
+#
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+# bytes: 98304
+INSERT INTO t1 SELECT * FROM seq_1_to_25000;
+# bytes: 9437184
+DROP TABLE t1;
+CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
+# bytes: 98304
+INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+# bytes: 4194304
+DROP TABLE t1;
+CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
+ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
+# bytes: 65536
+INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+# bytes: 65536
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/create_select.result b/mysql-test/suite/innodb/r/create_select.result
new file mode 100644
index 00000000000..f5db880816e
--- /dev/null
+++ b/mysql-test/suite/innodb/r/create_select.result
@@ -0,0 +1,10 @@
+connect con1, localhost, root,,;
+connection default;
+CREATE TABLE t1 ENGINE=InnoDB SELECT * FROM seq_1_to_100000000;
+connection con1;
+KILL QUERY @id;
+disconnect con1;
+connection default;
+ERROR 70100: Query execution was interrupted
+CREATE TABLE t1 (a SERIAL) ENGINE=InnoDB;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/foreign-keys.result b/mysql-test/suite/innodb/r/foreign-keys.result
index 9dee6efcb04..f64e84fe429 100644
--- a/mysql-test/suite/innodb/r/foreign-keys.result
+++ b/mysql-test/suite/innodb/r/foreign-keys.result
@@ -110,7 +110,7 @@ SET debug_sync='alter_table_intermediate_table_created SIGNAL ready WAIT_FOR go'
ALTER TABLE t1 ADD FOREIGN KEY(pk) REFERENCES t2(pk) ON UPDATE CASCADE;
connect con1, localhost, root;
SET debug_sync='now WAIT_FOR ready';
-SET lock_wait_timeout=1;
+SET lock_wait_timeout=0;
UPDATE t2 SET pk=10 WHERE pk=1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
PREPARE stmt FROM 'UPDATE t2 SET pk=10 WHERE pk=1';
diff --git a/mysql-test/suite/innodb/r/innodb-16k.result b/mysql-test/suite/innodb/r/innodb-16k.result
index b99aba15f0f..14bff3a5eba 100644
--- a/mysql-test/suite/innodb/r/innodb-16k.result
+++ b/mysql-test/suite/innodb/r/innodb-16k.result
@@ -18,50 +18,6 @@ c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
-) ROW_FORMAT=redundant;
-ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=compact;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
) ROW_FORMAT=compressed;
DROP TABLE t1;
@@ -76,28 +32,6 @@ c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
) ROW_FORMAT=compressed;
ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=dynamic;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (a varchar(255) character set utf8,
b varchar(255) character set utf8,
c varchar(255) character set utf8,
@@ -568,402 +502,3 @@ DROP TABLE t1;
DROP TABLE t1_purge, t2_purge, t3_purge, t4_purge;
DROP TABLE tlong;
DROP TABLE tlong2;
-SET SESSION innodb_strict_mode = on;
-CREATE TABLE t2(COL1 TEXT,
-COL2 TEXT,
-COL3 TEXT,
-COL4 TEXT,
-COL5 TEXT,
-COL6 TEXT,
-COL7 TEXT,
-COL8 TEXT,
-COL9 TEXT,
-COL10 TEXT,
-COL11 TEXT,
-COL12 TEXT,
-COL13 TEXT,
-COL14 TEXT,
-COL15 TEXT,
-COL16 TEXT,
-COL17 TEXT,
-COL18 TEXT,
-COL19 TEXT,
-COL20 TEXT,
-COL21 TEXT,
-COL22 TEXT,
-COL23 TEXT,
-COL24 TEXT,
-COL25 TEXT,
-COL26 TEXT,
-COL27 TEXT,
-COL28 TEXT,
-COL29 TEXT,
-COL30 TEXT,
-COL31 TEXT,
-COL32 TEXT,
-COL33 TEXT,
-COL34 TEXT,
-COL35 TEXT,
-COL36 TEXT,
-COL37 TEXT,
-COL38 TEXT,
-COL39 TEXT,
-COL40 TEXT,
-COL41 TEXT,
-COL42 TEXT,
-COL43 TEXT,
-COL44 TEXT,
-COL45 TEXT,
-COL46 TEXT,
-COL47 TEXT,
-COL48 TEXT,
-COL49 TEXT,
-COL50 TEXT,
-COL51 TEXT,
-COL52 TEXT,
-COL53 TEXT,
-COL54 TEXT,
-COL55 TEXT,
-COL56 TEXT,
-COL57 TEXT,
-COL58 TEXT,
-COL59 TEXT,
-COL60 TEXT,
-COL61 TEXT,
-COL62 TEXT,
-COL63 TEXT,
-COL64 TEXT,
-COL65 TEXT,
-COL66 TEXT,
-COL67 TEXT,
-COL68 TEXT,
-COL69 TEXT,
-COL70 TEXT,
-COL71 TEXT,
-COL72 TEXT,
-COL73 TEXT,
-COL74 TEXT,
-COL75 TEXT,
-COL76 TEXT,
-COL77 TEXT,
-COL78 TEXT,
-COL79 TEXT,
-COL80 TEXT,
-COL81 TEXT,
-COL82 TEXT,
-COL83 TEXT,
-COL84 TEXT,
-COL85 TEXT,
-COL86 TEXT,
-COL87 TEXT,
-COL88 TEXT,
-COL89 TEXT,
-COL90 TEXT,
-COL91 TEXT,
-COL92 TEXT,
-COL93 TEXT,
-COL94 TEXT,
-COL95 TEXT,
-COL96 TEXT,
-COL97 TEXT,
-COL98 TEXT,
-COL99 TEXT,
-COL100 TEXT,
-COL101 TEXT,
-COL102 TEXT,
-COL103 TEXT,
-COL104 TEXT,
-COL105 TEXT,
-COL106 TEXT,
-COL107 TEXT,
-COL108 TEXT,
-COL109 TEXT,
-COL110 TEXT,
-COL111 TEXT,
-COL112 TEXT,
-COL113 TEXT,
-COL114 TEXT,
-COL115 TEXT,
-COL116 TEXT,
-COL117 TEXT,
-COL118 TEXT,
-COL119 TEXT,
-COL120 TEXT,
-COL121 TEXT,
-COL122 TEXT,
-COL123 TEXT,
-COL124 TEXT,
-COL125 TEXT,
-COL126 TEXT,
-COL127 TEXT,
-COL128 TEXT,
-COL129 TEXT,
-COL130 TEXT,
-COL131 TEXT,
-COL132 TEXT,
-COL133 TEXT,
-COL134 TEXT,
-COL135 TEXT,
-COL136 TEXT,
-COL137 TEXT,
-COL138 TEXT,
-COL139 TEXT,
-COL140 TEXT,
-COL141 TEXT,
-COL142 TEXT,
-COL143 TEXT,
-COL144 TEXT,
-COL145 TEXT,
-COL146 TEXT,
-COL147 TEXT,
-COL148 TEXT,
-COL149 TEXT,
-COL150 TEXT,
-COL151 TEXT,
-COL152 TEXT,
-COL153 TEXT,
-COL154 TEXT,
-COL155 TEXT,
-COL156 TEXT,
-COL157 TEXT,
-COL158 TEXT,
-COL159 TEXT,
-COL160 TEXT,
-COL161 TEXT,
-COL162 TEXT,
-COL163 TEXT,
-COL164 TEXT,
-COL165 TEXT,
-COL166 TEXT,
-COL167 TEXT,
-COL168 TEXT,
-COL169 TEXT,
-COL170 TEXT,
-COL171 TEXT,
-COL172 TEXT,
-COL173 TEXT,
-COL174 TEXT,
-COL175 TEXT,
-COL176 TEXT,
-COL177 TEXT,
-COL178 TEXT,
-COL179 TEXT,
-COL180 TEXT,
-COL181 TEXT,
-COL182 TEXT,
-COL183 TEXT,
-COL184 TEXT,
-COL185 TEXT,
-COL186 TEXT,
-COL187 TEXT,
-COL188 TEXT,
-COL189 TEXT,
-COL190 TEXT,
-COL191 TEXT,
-COL192 TEXT,
-COL193 TEXT,
-COL194 TEXT,
-COL195 TEXT,
-COL196 TEXT,
-COL197 TEXT)
-row_format=dynamic,ENGINE=INNODB;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t2(COL1 TEXT,
-COL2 TEXT,
-COL3 TEXT,
-COL4 TEXT,
-COL5 TEXT,
-COL6 TEXT,
-COL7 TEXT,
-COL8 TEXT,
-COL9 TEXT,
-COL10 TEXT,
-COL11 TEXT,
-COL12 TEXT,
-COL13 TEXT,
-COL14 TEXT,
-COL15 TEXT,
-COL16 TEXT,
-COL17 TEXT,
-COL18 TEXT,
-COL19 TEXT,
-COL20 TEXT,
-COL21 TEXT,
-COL22 TEXT,
-COL23 TEXT,
-COL24 TEXT,
-COL25 TEXT,
-COL26 TEXT,
-COL27 TEXT,
-COL28 TEXT,
-COL29 TEXT,
-COL30 TEXT,
-COL31 TEXT,
-COL32 TEXT,
-COL33 TEXT,
-COL34 TEXT,
-COL35 TEXT,
-COL36 TEXT,
-COL37 TEXT,
-COL38 TEXT,
-COL39 TEXT,
-COL40 TEXT,
-COL41 TEXT,
-COL42 TEXT,
-COL43 TEXT,
-COL44 TEXT,
-COL45 TEXT,
-COL46 TEXT,
-COL47 TEXT,
-COL48 TEXT,
-COL49 TEXT,
-COL50 TEXT,
-COL51 TEXT,
-COL52 TEXT,
-COL53 TEXT,
-COL54 TEXT,
-COL55 TEXT,
-COL56 TEXT,
-COL57 TEXT,
-COL58 TEXT,
-COL59 TEXT,
-COL60 TEXT,
-COL61 TEXT,
-COL62 TEXT,
-COL63 TEXT,
-COL64 TEXT,
-COL65 TEXT,
-COL66 TEXT,
-COL67 TEXT,
-COL68 TEXT,
-COL69 TEXT,
-COL70 TEXT,
-COL71 TEXT,
-COL72 TEXT,
-COL73 TEXT,
-COL74 TEXT,
-COL75 TEXT,
-COL76 TEXT,
-COL77 TEXT,
-COL78 TEXT,
-COL79 TEXT,
-COL80 TEXT,
-COL81 TEXT,
-COL82 TEXT,
-COL83 TEXT,
-COL84 TEXT,
-COL85 TEXT,
-COL86 TEXT,
-COL87 TEXT,
-COL88 TEXT,
-COL89 TEXT,
-COL90 TEXT,
-COL91 TEXT,
-COL92 TEXT,
-COL93 TEXT,
-COL94 TEXT,
-COL95 TEXT,
-COL96 TEXT,
-COL97 TEXT,
-COL98 TEXT,
-COL99 TEXT,
-COL100 TEXT,
-COL101 TEXT,
-COL102 TEXT,
-COL103 TEXT,
-COL104 TEXT,
-COL105 TEXT,
-COL106 TEXT,
-COL107 TEXT,
-COL108 TEXT,
-COL109 TEXT,
-COL110 TEXT,
-COL111 TEXT,
-COL112 TEXT,
-COL113 TEXT,
-COL114 TEXT,
-COL115 TEXT,
-COL116 TEXT,
-COL117 TEXT,
-COL118 TEXT,
-COL119 TEXT,
-COL120 TEXT,
-COL121 TEXT,
-COL122 TEXT,
-COL123 TEXT,
-COL124 TEXT,
-COL125 TEXT,
-COL126 TEXT,
-COL127 TEXT,
-COL128 TEXT,
-COL129 TEXT,
-COL130 TEXT,
-COL131 TEXT,
-COL132 TEXT,
-COL133 TEXT,
-COL134 TEXT,
-COL135 TEXT,
-COL136 TEXT,
-COL137 TEXT,
-COL138 TEXT,
-COL139 TEXT,
-COL140 TEXT,
-COL141 TEXT,
-COL142 TEXT,
-COL143 TEXT,
-COL144 TEXT,
-COL145 TEXT,
-COL146 TEXT,
-COL147 TEXT,
-COL148 TEXT,
-COL149 TEXT,
-COL150 TEXT,
-COL151 TEXT,
-COL152 TEXT,
-COL153 TEXT,
-COL154 TEXT,
-COL155 TEXT,
-COL156 TEXT,
-COL157 TEXT,
-COL158 TEXT,
-COL159 TEXT,
-COL160 TEXT,
-COL161 TEXT,
-COL162 TEXT,
-COL163 TEXT,
-COL164 TEXT,
-COL165 TEXT,
-COL166 TEXT,
-COL167 TEXT,
-COL168 TEXT,
-COL169 TEXT,
-COL170 TEXT,
-COL171 TEXT,
-COL172 TEXT,
-COL173 TEXT,
-COL174 TEXT,
-COL175 TEXT,
-COL176 TEXT,
-COL177 TEXT,
-COL178 TEXT,
-COL179 TEXT,
-COL180 TEXT,
-COL181 TEXT,
-COL182 TEXT,
-COL183 TEXT,
-COL184 TEXT,
-COL185 TEXT,
-COL186 TEXT,
-COL187 TEXT,
-COL188 TEXT,
-COL189 TEXT,
-COL190 TEXT,
-COL191 TEXT,
-COL192 TEXT,
-COL193 TEXT,
-COL194 TEXT,
-COL195 TEXT,
-COL196 TEXT,
-COL197 TEXT)
-row_format=compact,ENGINE=INNODB;
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/innodb-32k-crash.result b/mysql-test/suite/innodb/r/innodb-32k-crash.result
index 8e5249a55d5..4c79015f2bc 100644
--- a/mysql-test/suite/innodb/r/innodb-32k-crash.result
+++ b/mysql-test/suite/innodb/r/innodb-32k-crash.result
@@ -1,3 +1,4 @@
+call mtr.add_suppression("Cannot add field `u` in table `test`.`t2` because after adding it, the row size is");
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -7,6 +8,7 @@ ha blob,ia blob,ja blob,ka blob,la blob,ma blob,na blob,
oa blob,pa blob,qa blob,ra blob,sa blob,ta blob,ua blob,
va blob, wa blob, xa blob, ya blob, za blob)
ENGINE=InnoDB ROW_FORMAT=dynamic;
+SET innodb_strict_mode=OFF;
CREATE TABLE t2(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -16,6 +18,9 @@ ha blob,ia blob,ja blob,ka blob,la blob,ma blob,na blob,
oa blob,pa blob,qa blob,ra blob,sa blob,ta blob,ua blob,
va blob, wa blob, xa blob, ya blob, za blob)
ENGINE=InnoDB ROW_FORMAT=compact;
+Warnings:
+Warning 139 Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+SET innodb_strict_mode=ON;
SET @a = repeat('a', 767);
SET @b = repeat('b', 767);
SET @c = repeat('c', 767);
diff --git a/mysql-test/suite/innodb/r/innodb-32k.result b/mysql-test/suite/innodb/r/innodb-32k.result
index 3e0671f5408..8b67dac8237 100644
--- a/mysql-test/suite/innodb/r/innodb-32k.result
+++ b/mysql-test/suite/innodb/r/innodb-32k.result
@@ -27,129 +27,9 @@ c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(121)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(122)
-) ROW_FORMAT=redundant;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(82)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(83)
-) ROW_FORMAT=compact;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
c81 char(63)
) ROW_FORMAT=compressed;
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(82)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(83)
-) ROW_FORMAT=dynamic;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
CREATE TABLE t1 (a varchar(255) character set utf8,
b varchar(255) character set utf8,
c varchar(255) character set utf8,
diff --git a/mysql-test/suite/innodb/r/innodb-64k-crash.result b/mysql-test/suite/innodb/r/innodb-64k-crash.result
index 765abbc2cd4..da481e0ec29 100644
--- a/mysql-test/suite/innodb/r/innodb-64k-crash.result
+++ b/mysql-test/suite/innodb/r/innodb-64k-crash.result
@@ -1,3 +1,4 @@
+call mtr.add_suppression("Cannot add field `pa` in table `test`.`t2` because after adding it, the row size is");
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -15,6 +16,7 @@ hc blob, ic blob, jc blob, kc blob, lc blob,mc blob,nc blob,
oc blob, pc blob, qc blob, rc blob, sc blob,tc blob,uc blob,
vc blob, wc blob, xc blob, yc blob, zc blob
) ENGINE=InnoDB ROW_FORMAT=dynamic;
+SET innodb_strict_mode=OFF;
CREATE TABLE t2(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -32,6 +34,9 @@ hc blob, ic blob, jc blob, kc blob, lc blob,mc blob,nc blob,
oc blob, pc blob, qc blob, rc blob, sc blob,tc blob,uc blob,
vc blob, wc blob, xc blob, yc blob, zc blob
) ENGINE=InnoDB ROW_FORMAT=compact;
+Warnings:
+Warning 139 Row size too large (> 32702). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+SET innodb_strict_mode=ON;
SET @a = repeat('a', 767);
SET @b = repeat('b', 767);
SET @c = repeat('c', 767);
diff --git a/mysql-test/suite/innodb/r/innodb-system-table-view.result b/mysql-test/suite/innodb/r/innodb-system-table-view.result
new file mode 100644
index 00000000000..46730ef3aac
--- /dev/null
+++ b/mysql-test/suite/innodb/r/innodb-system-table-view.result
@@ -0,0 +1,178 @@
+SELECT table_id INTO @table_stats_id FROM information_schema.innodb_sys_tables
+WHERE name = 'mysql/innodb_table_stats';
+SELECT table_id INTO @index_stats_id FROM information_schema.innodb_sys_tables
+WHERE name = 'mysql/innodb_index_stats';
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
+WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY table_id;
+TABLE_ID NAME FLAG N_COLS SPACE ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE
+11 SYS_FOREIGN 0 7 0 Redundant 0 System
+12 SYS_FOREIGN_COLS 0 7 0 Redundant 0 System
+13 SYS_TABLESPACES 0 6 0 Redundant 0 System
+14 SYS_DATAFILES 0 5 0 Redundant 0 System
+15 SYS_VIRTUAL 0 6 0 Redundant 0 System
+18 mysql/transaction_registry 33 8 3 Dynamic 0 Single
+SELECT table_id,pos,mtype,prtype,len,name
+FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
+WHERE table_id NOT IN (@table_stats_id, @index_stats_id)
+ORDER BY table_id, pos;
+table_id pos mtype prtype len name
+11 0 1 524292 0 ID
+11 1 1 524292 0 FOR_NAME
+11 2 1 524292 0 REF_NAME
+11 3 6 0 4 N_COLS
+12 0 1 524292 0 ID
+12 1 6 0 4 POS
+12 2 1 524292 0 FOR_COL_NAME
+12 3 1 524292 0 REF_COL_NAME
+13 0 6 0 4 SPACE
+13 1 1 524292 0 NAME
+13 2 6 0 4 FLAGS
+14 0 6 0 4 SPACE
+14 1 1 524292 0 PATH
+15 0 6 0 8 TABLE_ID
+15 1 6 0 4 POS
+15 2 6 0 4 BASE_POS
+18 0 6 1800 8 transaction_id
+18 1 6 1800 8 commit_id
+18 2 3 526087 7 begin_timestamp
+18 3 3 526087 7 commit_timestamp
+18 4 6 1022 1 isolation_level
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES
+WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY index_id;
+INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE MERGE_THRESHOLD
+# ID_IND # 3 1 # # 50
+# FOR_IND # 0 1 # # 50
+# REF_IND # 0 1 # # 50
+# ID_IND # 3 2 # # 50
+# SYS_TABLESPACES_SPACE # 3 1 # # 50
+# SYS_DATAFILES_SPACE # 3 1 # # 50
+# BASE_IDX # 3 3 # # 50
+# PRIMARY # 3 1 # # 50
+# commit_id # 2 1 # # 50
+# begin_timestamp # 0 1 # # 50
+# commit_timestamp # 0 2 # # 50
+SELECT index_id,pos,name FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS
+WHERE name NOT IN ('database_name', 'table_name', 'index_name', 'stat_name')
+ORDER BY index_id, pos;
+index_id pos name
+11 0 ID
+12 0 FOR_NAME
+13 0 REF_NAME
+14 0 ID
+14 1 POS
+15 0 SPACE
+16 0 SPACE
+17 0 TABLE_ID
+17 1 POS
+17 2 BASE_POS
+20 0 transaction_id
+21 0 commit_id
+22 0 begin_timestamp
+23 0 commit_timestamp
+23 1 transaction_id
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
+ID FOR_NAME REF_NAME N_COLS TYPE
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
+ID FOR_COL_NAME REF_COL_NAME POS
+CREATE TABLE t_redundant (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
+CREATE TABLE t_compact (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
+CREATE TABLE t_compressed (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb KEY_BLOCK_SIZE=2;
+CREATE TABLE t_dynamic (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
+=== information_schema.innodb_sys_tables and innodb_sys_tablespaces ===
+Table Name Tablespace Table Flags Columns Row Format Zip Size Space Type
+test/t_compact test/t_compact 1 5 Compact 0 Single
+test/t_compressed test/t_compressed 37 5 Compressed 2048 Single
+test/t_dynamic test/t_dynamic 33 5 Dynamic 0 Single
+test/t_redundant test/t_redundant 0 5 Redundant 0 Single
+=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
+Space_Name Space_Type Page_Size Zip_Size Path
+test/t_redundant Single DEFAULT DEFAULT MYSQLD_DATADIR/test/t_redundant.ibd
+test/t_compact Single DEFAULT DEFAULT MYSQLD_DATADIR/test/t_compact.ibd
+test/t_compressed Single DEFAULT 2048 MYSQLD_DATADIR/test/t_compressed.ibd
+test/t_dynamic Single DEFAULT DEFAULT MYSQLD_DATADIR/test/t_dynamic.ibd
+DROP TABLE t_redundant, t_compact, t_compressed, t_dynamic;
+SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
+count(*)
+8
+CREATE TABLE parent (id INT NOT NULL,
+PRIMARY KEY (id)) ENGINE=INNODB;
+CREATE TABLE child (id INT, parent_id INT,
+INDEX par_ind (parent_id),
+CONSTRAINT constraint_test
+FOREIGN KEY (parent_id) REFERENCES parent(id)
+ON DELETE CASCADE) ENGINE=INNODB;
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
+ID FOR_NAME REF_NAME N_COLS TYPE
+test/constraint_test test/child test/parent 1 1
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
+ID FOR_COL_NAME REF_COL_NAME POS
+test/constraint_test parent_id id 0
+INSERT INTO parent VALUES(1);
+SELECT name, num_rows, ref_count
+FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
+WHERE name LIKE "%parent";
+name num_rows ref_count
+test/parent 1 1
+SELECT NAME, FLAG, N_COLS FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
+WHERE name NOT LIKE 'sys/%';
+NAME FLAG N_COLS
+SYS_DATAFILES 0 5
+SYS_FOREIGN 0 7
+SYS_FOREIGN_COLS 0 7
+SYS_TABLESPACES 0 6
+SYS_VIRTUAL 0 6
+mysql/innodb_index_stats 33 11
+mysql/innodb_table_stats 33 9
+mysql/transaction_registry 33 8
+test/child 33 5
+test/parent 33 4
+SELECT name, n_fields
+from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
+WHERE table_id In (SELECT table_id from
+INFORMATION_SCHEMA.INNODB_SYS_TABLES
+WHERE name LIKE "%parent%");
+name n_fields
+PRIMARY 1
+SELECT name, n_fields
+from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
+WHERE table_id In (SELECT table_id from
+INFORMATION_SCHEMA.INNODB_SYS_TABLES
+WHERE name LIKE "%child%");
+name n_fields
+GEN_CLUST_INDEX 0
+par_ind 1
+SELECT name, pos, mtype, len
+from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
+WHERE table_id In (SELECT table_id from
+INFORMATION_SCHEMA.INNODB_SYS_TABLES
+WHERE name LIKE "%child%");
+name pos mtype len
+id 0 6 4
+parent_id 1 6 4
+DROP TABLE child;
+DROP TABLE parent;
+CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL,
+PRIMARY KEY (id, newid)) ENGINE=INNODB;
+CREATE TABLE child (id INT, parent_id INT,
+INDEX par_ind (parent_id),
+CONSTRAINT constraint_test
+FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid)
+ON DELETE CASCADE) ENGINE=INNODB;
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
+ID FOR_NAME REF_NAME N_COLS TYPE
+test/constraint_test test/child test/parent 2 1
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
+ID FOR_COL_NAME REF_COL_NAME POS
+test/constraint_test id id 0
+test/constraint_test parent_id newid 1
+INSERT INTO parent VALUES(1, 9);
+SELECT * FROM parent WHERE id IN (SELECT id FROM parent);
+id newid
+1 9
+SELECT name, num_rows, ref_count
+FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
+WHERE name LIKE "%parent";
+name num_rows ref_count
+test/parent 1 2
+DROP TABLE child;
+DROP TABLE parent;
diff --git a/mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result b/mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result
new file mode 100644
index 00000000000..efe43945c69
--- /dev/null
+++ b/mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result
@@ -0,0 +1,18 @@
+CREATE TABLE t1 (a INT, b INT AS (a), KEY(b)) ENGINE=InnoDB;
+INSERT INTO t1 () VALUES (),();
+connect con1,localhost,root,,test;
+ALTER TABLE t1 ADD COLUMN x INT as (a), add key(x), ALGORITHM=COPY;
+SET debug_sync= "ib_open_after_dict_open SIGNAL delete_open WAIT_FOR another_open";
+DELETE FROM t1;
+connection default;
+SET debug_sync= "now WAIT_FOR delete_open";
+SET debug_sync= "ib_open_after_dict_open SIGNAL another_open";
+SELECT a FROM t1;
+a
+NULL
+NULL
+connection con1;
+disconnect con1;
+connection default;
+SET debug_sync= "RESET";
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/innodb-wl5980-debug.result b/mysql-test/suite/innodb/r/innodb-wl5980-debug.result
new file mode 100644
index 00000000000..51cff4393aa
--- /dev/null
+++ b/mysql-test/suite/innodb/r/innodb-wl5980-debug.result
@@ -0,0 +1,27 @@
+call mtr.add_suppression("Cannot find space id [0-9]+ in the tablespace memory cache");
+call mtr.add_suppression("Cannot rename table 'test/t1' to 'test/t2' since the dictionary cache already contains 'test/t2'.");
+#
+# WL5980 Remote tablespace debug error injection tests.
+#
+CREATE TABLE t1 (a int KEY, b text) ENGINE=Innodb DATA DIRECTORY='MYSQL_TMP_DIR/alt_dir' ;
+INSERT INTO t1 VALUES (1, 'tablespace');
+SELECT * FROM t1;
+a b
+1 tablespace
+#
+# Test the second injection point in fil_rename_tablespace().
+# Make sure the table is useable after this failure.
+#
+SET @save_dbug=@@debug_dbug;
+SET debug_dbug="+d,fil_rename_tablespace_failure_2";
+RENAME TABLE t1 TO t2;
+SET debug_dbug=@save_dbug;
+INSERT INTO t1 VALUES (2, 'tablespace');
+SELECT * FROM t1;
+a b
+1 tablespace
+2 tablespace
+#
+# Cleanup
+#
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/innodb_buffer_pool_dump_pct.result b/mysql-test/suite/innodb/r/innodb_buffer_pool_dump_pct.result
new file mode 100644
index 00000000000..d9f5e4dfeed
--- /dev/null
+++ b/mysql-test/suite/innodb/r/innodb_buffer_pool_dump_pct.result
@@ -0,0 +1,22 @@
+CREATE TABLE tab5 (col1 int auto_increment primary key,
+col2 VARCHAR(25), col3 varchar(25)) ENGINE=InnoDB;
+CREATE INDEX idx1 ON tab5(col2(10));
+CREATE INDEX idx2 ON tab5(col3(10));
+SET GLOBAL innodb_buffer_pool_filename=ib_buffer_pool100;
+SET GLOBAL innodb_buffer_pool_dump_pct=100;
+SELECT variable_value INTO @IBPDS
+FROM information_schema.global_status
+WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS';
+SET GLOBAL innodb_buffer_pool_dump_now=ON;
+SET GLOBAL innodb_buffer_pool_filename=ib_buffer_pool1;
+SET GLOBAL innodb_buffer_pool_dump_pct=1;
+SELECT @@global.innodb_buffer_pool_dump_pct;
+@@global.innodb_buffer_pool_dump_pct
+1
+SELECT variable_value INTO @IBPDS
+FROM information_schema.global_status
+WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS';
+SET GLOBAL innodb_buffer_pool_dump_now=ON;
+SET GLOBAL innodb_buffer_pool_dump_pct=DEFAULT;
+SET GLOBAL innodb_buffer_pool_filename=DEFAULT;
+DROP TABLE tab5;
diff --git a/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result b/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result
index c20c981653c..f62aa132108 100644
--- a/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result
+++ b/mysql-test/suite/innodb/r/innodb_max_recordsize_32k.result
@@ -14,53 +14,6 @@ col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255)
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT= COMPACT;
-ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT= DYNAMIC;
-ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-show warnings;
-Level Code Message
-Error 1118 Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-Warning 1030 Got error 139 "Too big row" from storage engine InnoDB
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT=REDUNDANT;
-ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-show warnings;
-Level Code Message
-Error 1118 Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-Warning 1030 Got error 139 "Too big row" from storage engine InnoDB
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
ENGINE = innodb ROW_FORMAT=FIXED;
ERROR HY000: Can't create table `test`.`tab5` (errno: 140 "Wrong create options")
show warnings;
@@ -133,6 +86,8 @@ col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col5
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
ENGINE = innodb ROW_FORMAT=COMPACT;
+Warnings:
+Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -191,6 +146,8 @@ col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col5
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
ENGINE = innodb ROW_FORMAT=DYNAMIC;
+Warnings:
+Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -265,6 +222,8 @@ col48 VARCHAR(255),col49 VARCHAR(255),col50 VARCHAR(255),col51 VARCHAR(255),col5
col54 VARCHAR(255),col55 VARCHAR(255),col56 VARCHAR(255),col57 VARCHAR(255),col58 VARCHAR(255), col59 VARCHAR(255),
col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col64 VARCHAR(255), col65 VARCHAR(255))
ENGINE = innodb ROW_FORMAT=REDUNDANT;
+Warnings:
+Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -310,6 +269,7 @@ col60 VARCHAR(255),col61 VARCHAR(255),col62 VARCHAR(255),col63 VARCHAR(255),col6
ENGINE = innodb ROW_FORMAT=COMPRESSED;
Warnings:
Warning 1478 InnoDB: Cannot create a COMPRESSED table when innodb_page_size > NNNNk. Assuming ROW_FORMAT=DYNAMIC.
+Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
DROP TABLE tab5;
CREATE TABLE t(col BLOB) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
SHOW WARNINGS;
diff --git a/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result b/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result
index a74e7826729..f65d2995429 100644
--- a/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result
+++ b/mysql-test/suite/innodb/r/innodb_max_recordsize_64k.result
@@ -13,73 +13,6 @@ col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255)
col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255),
-ccol1 CHAR(255),ccol2 CHAR(255),ccol3 CHAR(255),ccol4 CHAR(255),ccol5 CHAR(255),
-ccol6 CHAR(255),ccol7 CHAR(255),ccol8 CHAR(255),ccol9 CHAR(255),ccol10 CHAR(255), ccol11 CHAR(255),
-ccol12 CHAR(255),ccol13 CHAR(255),ccol14 CHAR(255),ccol15 CHAR(255),ccol16 CHAR(255), ccol17 CHAR(255),
-ccol18 CHAR(255),ccol19 CHAR(255),ccol20 CHAR(255),ccol21 CHAR(255),ccol22 CHAR(255), ccol23 CHAR(255),
-ccol24 CHAR(255),ccol25 CHAR(255),ccol26 CHAR(255),ccol27 CHAR(255),ccol28 CHAR(255), ccol29 CHAR(255),
-ccol30 CHAR(255),ccol31 CHAR(255),ccol32 CHAR(255),ccol33 CHAR(255),ccol34 CHAR(255), ccol35 CHAR(255),
-ccol36 CHAR(255),ccol37 CHAR(255),ccol38 CHAR(255),ccol39 CHAR(255),ccol40 CHAR(255), ccol41 CHAR(255),
-ccol42 CHAR(255),ccol43 CHAR(255),ccol44 CHAR(255),ccol45 CHAR(255),ccol46 CHAR(255), ccol47 CHAR(255),
-ccol48 CHAR(255),ccol49 CHAR(255),ccol50 CHAR(255),ccol51 CHAR(255),ccol52 CHAR(255), ccol53 CHAR(255),
-ccol54 CHAR(255),ccol55 CHAR(255),ccol56 CHAR(255),ccol57 CHAR(255),ccol58 CHAR(255), ccol59 CHAR(255),
-ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR(255), ccol65 CHAR(255)
-)
-ENGINE = innodb ROW_FORMAT= COMPACT;
-ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255),
-ccol1 CHAR(255),ccol2 CHAR(255),ccol3 CHAR(255),ccol4 CHAR(255),ccol5 CHAR(255),
-ccol6 CHAR(255),ccol7 CHAR(255),ccol8 CHAR(255),ccol9 CHAR(255),ccol10 CHAR(255), ccol11 CHAR(255),
-ccol12 CHAR(255),ccol13 CHAR(255),ccol14 CHAR(255),ccol15 CHAR(255),ccol16 CHAR(255), ccol17 CHAR(255),
-ccol18 CHAR(255),ccol19 CHAR(255),ccol20 CHAR(255),ccol21 CHAR(255),ccol22 CHAR(255), ccol23 CHAR(255),
-ccol24 CHAR(255),ccol25 CHAR(255),ccol26 CHAR(255),ccol27 CHAR(255),ccol28 CHAR(255), ccol29 CHAR(255),
-ccol30 CHAR(255),ccol31 CHAR(255),ccol32 CHAR(255),ccol33 CHAR(255),ccol34 CHAR(255), ccol35 CHAR(255),
-ccol36 CHAR(255),ccol37 CHAR(255),ccol38 CHAR(255),ccol39 CHAR(255),ccol40 CHAR(255), ccol41 CHAR(255),
-ccol42 CHAR(255),ccol43 CHAR(255),ccol44 CHAR(255),ccol45 CHAR(255),ccol46 CHAR(255), ccol47 CHAR(255),
-ccol48 CHAR(255),ccol49 CHAR(255),ccol50 CHAR(255),ccol51 CHAR(255),ccol52 CHAR(255), ccol53 CHAR(255),
-ccol54 CHAR(255),ccol55 CHAR(255),ccol56 CHAR(255),ccol57 CHAR(255),ccol58 CHAR(255), ccol59 CHAR(255),
-ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR(255), ccol65 CHAR(255)
-)
-ENGINE = innodb ROW_FORMAT= DYNAMIC;
-ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT=REDUNDANT;
-ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-show warnings;
-Level Code Message
-Error 1118 Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-Warning 1030 Got error 139 "Too big row" from storage engine InnoDB
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
ENGINE = innodb ROW_FORMAT=FIXED;
ERROR HY000: Can't create table `test`.`tab5` (errno: 140 "Wrong create options")
@@ -190,6 +123,8 @@ ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),
ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
)
ENGINE = innodb ROW_FORMAT=COMPACT;
+Warnings:
+Warning 139 Row size too large (> 32702). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -300,6 +235,8 @@ ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),
ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
)
ENGINE = innodb ROW_FORMAT=DYNAMIC;
+Warnings:
+Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
@@ -440,6 +377,8 @@ ccol54 VARCHAR(255),ccol55 VARCHAR(255),ccol56 VARCHAR(255),ccol57 VARCHAR(255),
ccol60 VARCHAR(255),ccol61 VARCHAR(255),ccol62 VARCHAR(255),ccol63 VARCHAR(255),ccol64 VARCHAR(255), ccol65 VARCHAR(255)
)
ENGINE = innodb ROW_FORMAT=REDUNDANT;
+Warnings:
+Warning 139 Row size too large (> NNNN). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
INSERT INTO tab5 values(repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),repeat('a',255),
diff --git a/mysql-test/suite/innodb/r/innodb_mysql.result b/mysql-test/suite/innodb/r/innodb_mysql.result
index 7a164da41b5..b78988e08a8 100644
--- a/mysql-test/suite/innodb/r/innodb_mysql.result
+++ b/mysql-test/suite/innodb/r/innodb_mysql.result
@@ -3133,8 +3133,49 @@ ERROR 22007: Truncated incorrect datetime value: ''
DROP TABLE t1;
SET SQL_MODE=DEFAULT;
#
-# Bug#56862 Moved to innodb_16k.test
+# Bug#56862 Execution of a query that uses index merge returns a wrong result
#
+CREATE TABLE t1 (
+pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
+a int,
+b int,
+INDEX idx(a))
+ENGINE=INNODB;
+INSERT INTO t1(a,b) VALUES
+(11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500),
+(3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800),
+(6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700),
+(13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000);
+INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1;
+INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1;
+INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1 VALUES (1000000, 0, 0);
+set @optimizer_switch_saved=@@optimizer_switch;
+SET SESSION optimizer_switch='derived_merge=off';
+SET SESSION sort_buffer_size = 1024*36;
+EXPLAIN
+SELECT COUNT(*) FROM
+(SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
+WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 1537
+2 DERIVED t1 index_merge PRIMARY,idx idx,PRIMARY 5,4 NULL 1537 Using sort_union(idx,PRIMARY); Using where
+SELECT COUNT(*) FROM
+(SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
+WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
+COUNT(*)
+1537
+set @@optimizer_switch=@optimizer_switch_saved;
+SET SESSION sort_buffer_size = DEFAULT;
+DROP TABLE t1;
#
# Test for bug #39932 "create table fails if column for FK is in different
# case than in corr index".
diff --git a/mysql-test/suite/innodb/r/instant_alter,4k.rdiff b/mysql-test/suite/innodb/r/instant_alter,4k.rdiff
index d274d834faa..75926282133 100644
--- a/mysql-test/suite/innodb/r/instant_alter,4k.rdiff
+++ b/mysql-test/suite/innodb/r/instant_alter,4k.rdiff
@@ -1,6 +1,17 @@
--- instant_alter.result
+++ instant_alter,4k.result
-@@ -181,7 +181,7 @@
+@@ -227,7 +227,9 @@
+ COMMIT;
+ ALTER TABLE t2 ADD COLUMN d1 VARCHAR(2000) DEFAULT REPEAT('asdf',500);
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ SELECT id, c1, ST_AsText(p) p, d1 FROM t2;
+ id c1 p d1
+ 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa LINESTRING(0 0,0 1,1 1) asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasd
+@@ -241,7 +243,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -9,7 +20,7 @@
connection default;
ROLLBACK;
connection analyze;
-@@ -250,7 +250,7 @@
+@@ -251,7 +253,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -18,7 +29,7 @@
connection default;
BEGIN;
UPDATE t2 SET d1 = repeat(id, 200);
-@@ -261,7 +261,7 @@
+@@ -262,7 +264,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -27,7 +38,7 @@
connection default;
ROLLBACK;
connection analyze;
-@@ -271,7 +271,7 @@
+@@ -272,7 +274,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -36,7 +47,55 @@
connection default;
ALTER TABLE t2 DROP p;
affected rows: 0
-@@ -374,7 +374,7 @@
+@@ -318,10 +320,14 @@
+ ALTER TABLE t3 ADD COLUMN t TEXT CHARSET utf8
+ DEFAULT 'The quick brown fox jumps over the lazy dog';
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ ALTER TABLE t3 ADD COLUMN b BLOB NOT NULL;
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ INSERT INTO t3 SET id=4;
+ ERROR HY000: Field 'c2' doesn't have a default value
+ INSERT INTO t3 SET id=4, c2=0, b=0xf09f98b1;
+@@ -334,7 +340,9 @@
+ ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448,
+ CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business';
+ affected rows: 4
+-info: Records: 4 Duplicates: 0 Warnings: 0
++info: Records: 4 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ INSERT INTO t3 SET id=5, c2=9;
+ Warnings:
+ Note 1265 Data truncated for column 'c7' at row 1
+@@ -348,7 +356,9 @@
+ 5 9 POLYGON((1 1,2 2,3 3,1 1)) 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 03:00:42 1970-01-01 ääH binary line of business
+ ALTER TABLE t3 DROP c3, DROP c7;
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ SET innodb_strict_mode = OFF;
+ affected rows: 0
+ SELECT * FROM t3;
+@@ -378,6 +388,8 @@
+ (id INT PRIMARY KEY, c1 VARCHAR(4000), c2 VARCHAR(4000), c3 VARCHAR(1000),
+ p POINT NOT NULL DEFAULT ST_GeomFromText('POINT(0 0)'), SPATIAL INDEX(p))
+ ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
++Warnings:
++Warning 139 Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ BEGIN;
+ INSERT INTO big
+ SET id=1, c1=REPEAT('a', 200), c2=REPEAT('b', 200), c3=REPEAT('c', 159);
+@@ -395,13 +407,15 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -45,7 +104,16 @@
connection default;
ALTER TABLE big ADD COLUMN
(d1 INT DEFAULT 0, d2 VARCHAR(20) DEFAULT 'abcde',
-@@ -397,7 +397,7 @@
+ d3 TIMESTAMP NOT NULL DEFAULT current_timestamp ON UPDATE current_timestamp);
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CHECKSUM TABLE big;
+ Table Checksum
+ test.big 1705165209
+@@ -418,7 +432,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -54,7 +122,7 @@
connection default;
ROLLBACK;
CHECKSUM TABLE big;
-@@ -410,7 +410,7 @@
+@@ -431,7 +445,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -62,8 +130,19 @@
+8
connection default;
InnoDB 0 transactions not purged
- DROP TABLE t1,t2,t3,big;
-@@ -600,7 +600,7 @@
+ DROP TABLE t1,t2,t3,t4,big;
+@@ -663,7 +677,9 @@
+ COMMIT;
+ ALTER TABLE t2 ADD COLUMN d1 VARCHAR(2000) DEFAULT REPEAT('asdf',500);
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ SELECT id, c1, ST_AsText(p) p, d1 FROM t2;
+ id c1 p d1
+ 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa LINESTRING(0 0,0 1,1 1) asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasd
+@@ -677,7 +693,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -72,7 +151,7 @@
connection default;
ROLLBACK;
connection analyze;
-@@ -610,7 +610,7 @@
+@@ -687,7 +703,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -81,7 +160,7 @@
connection default;
BEGIN;
UPDATE t2 SET d1 = repeat(id, 200);
-@@ -621,7 +621,7 @@
+@@ -698,7 +714,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -90,7 +169,7 @@
connection default;
ROLLBACK;
connection analyze;
-@@ -631,7 +631,7 @@
+@@ -708,7 +724,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -99,7 +178,55 @@
connection default;
ALTER TABLE t2 DROP p;
affected rows: 0
-@@ -734,7 +734,7 @@
+@@ -754,10 +770,14 @@
+ ALTER TABLE t3 ADD COLUMN t TEXT CHARSET utf8
+ DEFAULT 'The quick brown fox jumps over the lazy dog';
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ ALTER TABLE t3 ADD COLUMN b BLOB NOT NULL;
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ INSERT INTO t3 SET id=4;
+ ERROR HY000: Field 'c2' doesn't have a default value
+ INSERT INTO t3 SET id=4, c2=0, b=0xf09f98b1;
+@@ -770,7 +790,9 @@
+ ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448,
+ CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business';
+ affected rows: 4
+-info: Records: 4 Duplicates: 0 Warnings: 0
++info: Records: 4 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ INSERT INTO t3 SET id=5, c2=9;
+ Warnings:
+ Note 1265 Data truncated for column 'c7' at row 1
+@@ -784,7 +806,9 @@
+ 5 9 POLYGON((1 1,2 2,3 3,1 1)) 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 03:00:42 1970-01-01 ääH binary line of business
+ ALTER TABLE t3 DROP c3, DROP c7;
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ SET innodb_strict_mode = OFF;
+ affected rows: 0
+ SELECT * FROM t3;
+@@ -814,6 +838,8 @@
+ (id INT PRIMARY KEY, c1 VARCHAR(4000), c2 VARCHAR(4000), c3 VARCHAR(1000),
+ p POINT NOT NULL DEFAULT ST_GeomFromText('POINT(0 0)'), SPATIAL INDEX(p))
+ ENGINE=InnoDB ROW_FORMAT=COMPACT;
++Warnings:
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ BEGIN;
+ INSERT INTO big
+ SET id=1, c1=REPEAT('a', 200), c2=REPEAT('b', 200), c3=REPEAT('c', 159);
+@@ -831,13 +857,15 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -108,7 +235,16 @@
connection default;
ALTER TABLE big ADD COLUMN
(d1 INT DEFAULT 0, d2 VARCHAR(20) DEFAULT 'abcde',
-@@ -757,7 +757,7 @@
+ d3 TIMESTAMP NOT NULL DEFAULT current_timestamp ON UPDATE current_timestamp);
+ affected rows: 0
+-info: Records: 0 Duplicates: 0 Warnings: 0
++info: Records: 0 Duplicates: 0 Warnings: 1
++Warnings:
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CHECKSUM TABLE big;
+ Table Checksum
+ test.big 1705165209
+@@ -854,7 +882,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -117,7 +253,7 @@
connection default;
ROLLBACK;
CHECKSUM TABLE big;
-@@ -770,7 +770,7 @@
+@@ -867,7 +895,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -125,8 +261,8 @@
+7
connection default;
InnoDB 0 transactions not purged
- DROP TABLE t1,t2,t3,big;
-@@ -960,7 +960,7 @@
+ DROP TABLE t1,t2,t3,t4,big;
+@@ -1113,7 +1141,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -135,7 +271,7 @@
connection default;
ROLLBACK;
connection analyze;
-@@ -970,7 +970,7 @@
+@@ -1123,7 +1151,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -144,7 +280,7 @@
connection default;
BEGIN;
UPDATE t2 SET d1 = repeat(id, 200);
-@@ -981,7 +981,7 @@
+@@ -1134,7 +1162,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -153,7 +289,7 @@
connection default;
ROLLBACK;
connection analyze;
-@@ -991,7 +991,7 @@
+@@ -1144,7 +1172,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/t2';
clust_index_size
@@ -162,7 +298,7 @@
connection default;
ALTER TABLE t2 DROP p;
affected rows: 0
-@@ -1094,7 +1094,7 @@
+@@ -1267,7 +1295,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -171,7 +307,7 @@
connection default;
ALTER TABLE big ADD COLUMN
(d1 INT DEFAULT 0, d2 VARCHAR(20) DEFAULT 'abcde',
-@@ -1117,7 +1117,7 @@
+@@ -1290,7 +1318,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -180,7 +316,7 @@
connection default;
ROLLBACK;
CHECKSUM TABLE big;
-@@ -1130,7 +1130,7 @@
+@@ -1303,7 +1331,7 @@
SELECT clust_index_size FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
WHERE name = 'test/big';
clust_index_size
@@ -188,4 +324,4 @@
+7
connection default;
InnoDB 0 transactions not purged
- DROP TABLE t1,t2,t3,big;
+ DROP TABLE t1,t2,t3,t4,big;
diff --git a/mysql-test/suite/innodb/r/instant_alter.result b/mysql-test/suite/innodb/r/instant_alter.result
index 30eddd51bfb..3122c15fae0 100644
--- a/mysql-test/suite/innodb/r/instant_alter.result
+++ b/mysql-test/suite/innodb/r/instant_alter.result
@@ -1,6 +1,7 @@
#
# MDEV-11369: Instant ADD COLUMN for InnoDB
#
+call mtr.add_suppression("Cannot add field `.*` in table `test`.`.*` because after adding it, the row size is");
CREATE TABLE t(a INT UNIQUE)ENGINE=InnoDB ROW_FORMAT=COMPACT;
ALTER TABLE t ADD e INT, ROW_FORMAT=COMPRESSED;
INSERT INTO t SET a=1;
@@ -332,6 +333,8 @@ affected rows: 1
Warnings:
Note 1265 Data truncated for column 'c7' at row 1
Note 1265 Data truncated for column 'c8' at row 1
+SET innodb_strict_mode = OFF;
+affected rows: 0
ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448,
CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business';
affected rows: 4
@@ -350,6 +353,8 @@ id c2 c3 c4 c5 c6 c7 c8 phrase b
ALTER TABLE t3 DROP c3, DROP c7;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
+SET innodb_strict_mode = OFF;
+affected rows: 0
SELECT * FROM t3;
id c2 c4 c5 c6 c8 phrase b
1 1 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 1970-01-01 The quick brown fox jumps over the lazy dog
@@ -1156,6 +1161,8 @@ affected rows: 1
Warnings:
Note 1265 Data truncated for column 'c7' at row 1
Note 1265 Data truncated for column 'c8' at row 1
+SET innodb_strict_mode = OFF;
+affected rows: 0
ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448,
CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business';
affected rows: 4
@@ -1174,6 +1181,8 @@ id c2 c3 c4 c5 c6 c7 c8 phrase b
ALTER TABLE t3 DROP c3, DROP c7;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
+SET innodb_strict_mode = OFF;
+affected rows: 0
SELECT * FROM t3;
id c2 c4 c5 c6 c8 phrase b
1 1 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 1970-01-01 The quick brown fox jumps over the lazy dog
@@ -1980,6 +1989,8 @@ affected rows: 1
Warnings:
Note 1265 Data truncated for column 'c7' at row 1
Note 1265 Data truncated for column 'c8' at row 1
+SET innodb_strict_mode = OFF;
+affected rows: 0
ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448,
CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business';
affected rows: 4
@@ -1998,6 +2009,8 @@ id c2 c3 c4 c5 c6 c7 c8 phrase b
ALTER TABLE t3 DROP c3, DROP c7;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
+SET innodb_strict_mode = OFF;
+affected rows: 0
SELECT * FROM t3;
id c2 c4 c5 c6 c8 phrase b
1 1 1970-01-01 03:00:42 1970-01-01 03:00:42 NULL 1970-01-01 The quick brown fox jumps over the lazy dog
@@ -2533,3 +2546,17 @@ WHERE variable_name = 'innodb_instant_alter_column';
instants
181
SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency;
+#
+# MDEV-18266: Changing an index comment unnecessarily rebuilds index
+#
+CREATE TABLE t1(a INT, b INT) ENGINE=INNODB;
+CREATE INDEX i1 ON t1(a) COMMENT 'comment1';
+ALTER TABLE t1 DROP INDEX i1, ADD INDEX i1(a) COMMENT 'comment2', ALGORITHM=INSTANT;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ KEY `i1` (`a`) COMMENT 'comment2'
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/instant_alter_bugs.result b/mysql-test/suite/innodb/r/instant_alter_bugs.result
index 626e8ebe7d8..5e3c2f87bf1 100644
--- a/mysql-test/suite/innodb/r/instant_alter_bugs.result
+++ b/mysql-test/suite/innodb/r/instant_alter_bugs.result
@@ -128,6 +128,32 @@ HANDLER h READ `PRIMARY` PREV WHERE 0;
pk f1 f2 f3 f4 f5 f6 f7 f8 filler
HANDLER h CLOSE;
DROP TABLE t1;
+CREATE TABLE t1(f1 int not null, primary key(f1))engine=innodb;
+CREATE TABLE t2(f1 INT AUTO_INCREMENT NOT NULL, f2 INT NOT NULL,
+status ENUM ('a', 'b', 'c'), INDEX idx1(f2),
+PRIMARY KEY(f1),
+FOREIGN KEY (f2) REFERENCES t1(f1))ENGINE=InnoDB;
+ALTER TABLE t1 CHANGE f1 f1_id INT NOT NULL, ADD f3 VARCHAR(255) DEFAULT NULL;
+ALTER TABLE t1 CHANGE f1_id f1 INT NOT NULL;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `f1` int(11) NOT NULL,
+ `f3` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`f1`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SHOW CREATE TABLE t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `f1` int(11) NOT NULL AUTO_INCREMENT,
+ `f2` int(11) NOT NULL,
+ `status` enum('a','b','c') DEFAULT NULL,
+ PRIMARY KEY (`f1`),
+ KEY `idx1` (`f2`),
+ CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`f2`) REFERENCES `t1` (`f1`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+ALTER TABLE t2 CHANGE status status VARCHAR(20) DEFAULT NULL;
+DROP TABLE t2, t1;
create table t (
a varchar(9),
b int,
@@ -203,3 +229,35 @@ ALTER TABLE t1 MODIFY c TEXT NULL, ALGORITHM=INSTANT;
ERROR 0A000: ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=INPLACE
ALTER TABLE t1 MODIFY c TEXT NULL;
DROP TABLE t1;
+#
+# MDEV-20048 dtuple_get_nth_field(): Assertion 'n < tuple->n_fields'
+# failed on ROLLBACK after instant DROP COLUMN
+#
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT;
+SET @b = REPEAT('b', @@innodb_page_size / 2 + 1);
+INSERT INTO t1 VALUES(2, @b), (3, @b);
+BEGIN;
+DELETE FROM t1 WHERE a=2;
+connect purge_control,localhost,root;
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+connection default;
+COMMIT;
+ALTER TABLE t1 DROP b, ALGORITHM=INSTANT;
+BEGIN;
+INSERT INTO t1 VALUES (2);
+connection purge_control;
+SELECT * FROM t1;
+a
+1
+2
+3
+disconnect purge_control;
+connection default;
+ROLLBACK;
+SELECT * FROM t1;
+a
+1
+3
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/instant_alter_debug.result b/mysql-test/suite/innodb/r/instant_alter_debug.result
index 866aeb48f67..7ab24a7671b 100644
--- a/mysql-test/suite/innodb/r/instant_alter_debug.result
+++ b/mysql-test/suite/innodb/r/instant_alter_debug.result
@@ -264,6 +264,33 @@ a b c d
2 3 4 1
DROP TABLE t1;
#
+# MDEV-19916 Corruption after instant ADD/DROP and shrinking the tree
+#
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+SET @old_limit = @@innodb_limit_optimistic_insert_debug;
+SET GLOBAL innodb_limit_optimistic_insert_debug = 2;
+INSERT INTO t1 VALUES (1),(5),(4),(3),(2);
+SET GLOBAL innodb_limit_optimistic_insert_debug = @old_limit;
+ALTER TABLE t1 ADD COLUMN b INT, ALGORITHM=INSTANT;
+SET @old_defragment = @@innodb_defragment;
+SET GLOBAL innodb_defragment = 1;
+OPTIMIZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+SET GLOBAL innodb_defragment = @old_defragment;
+ALTER TABLE t1 ADD vb INT AS (b) VIRTUAL;
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+SELECT * FROM t1;
+a b vb
+1 NULL NULL
+2 NULL NULL
+3 NULL NULL
+4 NULL NULL
+5 NULL NULL
+DROP TABLE t1;
+#
# MDEV-17899 Assertion failures on rollback of instant ADD/DROP
# MDEV-18098 Crash after rollback of instant DROP COLUMN
#
@@ -299,5 +326,5 @@ SELECT variable_value-@old_instant instants
FROM information_schema.global_status
WHERE variable_name = 'innodb_instant_alter_column';
instants
-21
+22
SET GLOBAL innodb_purge_rseg_truncate_frequency = @save_frequency;
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff
new file mode 100644
index 00000000000..118145bec2e
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,compact,innodb.rdiff
@@ -0,0 +1,80 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:51:26.070418078 +0300
+@@ -3,45 +3,65 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff
new file mode 100644
index 00000000000..33067866b82
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic,innodb.rdiff
@@ -0,0 +1,224 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:52:54.580956978 +0300
+@@ -3,45 +3,207 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff
new file mode 100644
index 00000000000..e50e4d2be3a
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,16k,innodb,redundant.rdiff
@@ -0,0 +1,80 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:55:05.258762945 +0300
+@@ -3,45 +3,65 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff
new file mode 100644
index 00000000000..1bc03a5d97a
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,compact,innodb.rdiff
@@ -0,0 +1,121 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:27:08.004932026 +0300
+@@ -3,45 +3,104 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff
new file mode 100644
index 00000000000..71c4c2e41b7
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic,innodb.rdiff
@@ -0,0 +1,366 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:38:41.609328820 +0300
+@@ -3,45 +3,351 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
++c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
++c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
++c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
++c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
++c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
++c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
++c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
++c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
++c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
++c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
++c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
++c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
++c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
++c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
++c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
++c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
++c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
++c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
++c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
++c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
++c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
++c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
++c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
++c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
++c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
++c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
++c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
++c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
++c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
++c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
++c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
++c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
++c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
++c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
++c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
++c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
++c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
++c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
++c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
++c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
++c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
++c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
++c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
++c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
++c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
++c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
++c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
++c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
++c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
++c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
++c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
++c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
++c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
++c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
++c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
++c771 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
++c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
++c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
++c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
++c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
++c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
++c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
++c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
++c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
++c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
++c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
++c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
++c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
++c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
++c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
++c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
++c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
++c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
++c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
++c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
++c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
++c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
++c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
++c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
++c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
++c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
++c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
++c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
++c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
++c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
++c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
++c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
++c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
++c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
++c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
++c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
++c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
++c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
++c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
++c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
++c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
++c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
++c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
++c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
++c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
++c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
++c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
++c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
++c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
++c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
++c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
++c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
++c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
++c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
++c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
++c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
++c771 TEXT, c772 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16318). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff
new file mode 100644
index 00000000000..e42b3de8845
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,32k,innodb,redundant.rdiff
@@ -0,0 +1,121 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:41:03.319664978 +0300
+@@ -3,45 +3,104 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16315). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff
new file mode 100644
index 00000000000..6f08dab3ca1
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,compact,innodb.rdiff
@@ -0,0 +1,62 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:56:23.489432164 +0300
+@@ -1,47 +1,37 @@
+ call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+-c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c1 VARCHAR(788), c2 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
++c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c1 TEXT, c2 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff
new file mode 100644
index 00000000000..bd37d4354e7
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic,innodb.rdiff
@@ -0,0 +1,128 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:57:38.636143710 +0300
+@@ -1,47 +1,103 @@
+ call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff
new file mode 100644
index 00000000000..93c39ff6714
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,4k,innodb,redundant.rdiff
@@ -0,0 +1,62 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:58:58.318768169 +0300
+@@ -1,47 +1,37 @@
+ call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+-c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+-c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+-c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+-c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+-c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c1 VARCHAR(788), c2 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
++c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c1 TEXT, c2 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 1979). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff
new file mode 100644
index 00000000000..5e6c62212d1
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,compact,innodb.rdiff
@@ -0,0 +1,203 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:45:21.760116841 +0300
+@@ -3,45 +3,186 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
++c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
++c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
++c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
++c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
++c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
++c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
++c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
++c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
++c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
++c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
++c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
++c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
++c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
++c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
++c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
++c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
++c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
++c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
++c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
++c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
++c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
++c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
++c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
++c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
++c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
++c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
++c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
++c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
++c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
++c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
++c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
++c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255),
++c129 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
++c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
++c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
++c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
++c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
++c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
++c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
++c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
++c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
++c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
++c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
++c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
++c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
++c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
++c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
++c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
++c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
++c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
++c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
++c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
++c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
++c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
++c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
++c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
++c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
++c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
++c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
++c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
++c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
++c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
++c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
++c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
++c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255), c128 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff
new file mode 100644
index 00000000000..2cbf4cd9c54
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic,innodb.rdiff
@@ -0,0 +1,501 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:48:32.453208310 +0300
+@@ -3,45 +3,486 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
++c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
++c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
++c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
++c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
++c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
++c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
++c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
++c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
++c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
++c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
++c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
++c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
++c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
++c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
++c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
++c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
++c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
++c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
++c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
++c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
++c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
++c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
++c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
++c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
++c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
++c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
++c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
++c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
++c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
++c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
++c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
++c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255),
++c129 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
++c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
++c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
++c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
++c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
++c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
++c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
++c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
++c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
++c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
++c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
++c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
++c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
++c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
++c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
++c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
++c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
++c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
++c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
++c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
++c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
++c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
++c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
++c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
++c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
++c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
++c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
++c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
++c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
++c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
++c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
++c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
++c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255), c128 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
++c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
++c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
++c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
++c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
++c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
++c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
++c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
++c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
++c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
++c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
++c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
++c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
++c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
++c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
++c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
++c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
++c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
++c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
++c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
++c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
++c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
++c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
++c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
++c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
++c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
++c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
++c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
++c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
++c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
++c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
++c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
++c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
++c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
++c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
++c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
++c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
++c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
++c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
++c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
++c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
++c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
++c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
++c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
++c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
++c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
++c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
++c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
++c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
++c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
++c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
++c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
++c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
++c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
++c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
++c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
++c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
++c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
++c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
++c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
++c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
++c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
++c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
++c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
++c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
++c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
++c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
++c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
++c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
++c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
++c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
++c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
++c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
++c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
++c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
++c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
++c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
++c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
++c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
++c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
++c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
++c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
++c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
++c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
++c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
++c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
++c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
++c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
++c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
++c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
++c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
++c1016 TEXT, c1017 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
++c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
++c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
++c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
++c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
++c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
++c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
++c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
++c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
++c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
++c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
++c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
++c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
++c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
++c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
++c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
++c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
++c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
++c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
++c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
++c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
++c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
++c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
++c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
++c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
++c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
++c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
++c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
++c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
++c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
++c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
++c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
++c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
++c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
++c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
++c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
++c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
++c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
++c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
++c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
++c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
++c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
++c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
++c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
++c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
++c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
++c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
++c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
++c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
++c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
++c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
++c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
++c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
++c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
++c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
++c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
++c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
++c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
++c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
++c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
++c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
++c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
++c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
++c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
++c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
++c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
++c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
++c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
++c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
++c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
++c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
++c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
++c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
++c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
++c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
++c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
++c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
++c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
++c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
++c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
++c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
++c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
++c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
++c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
++c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
++c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
++c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
++c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
++c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
++c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
++c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
++c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
++c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
++c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
++c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
++c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
++c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
++c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
++c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
++c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
++c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
++c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
++c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
++c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
++c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
++c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
++c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
++c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
++c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
++c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
++c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
++c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
++c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
++c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
++c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
++c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
++c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
++c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
++c1016 TEXT, c1017 TEXT, c1018 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR HY000: Can't create table `test`.`t1` (errno: 185 "Too many columns")
diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff
new file mode 100644
index 00000000000..c324969fb21
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,64k,innodb,redundant.rdiff
@@ -0,0 +1,121 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 12:50:05.663724193 +0300
+@@ -3,45 +3,104 @@
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+-c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
++c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
++c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
++c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
++c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
++c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
++c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
++c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
++c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
++c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
++c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
++c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
++c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
++c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+-c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
++c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
++c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
++c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
++c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
++c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
++c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
++c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
++c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
++c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
++c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
++c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
++c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
++c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 16382). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff
new file mode 100644
index 00000000000..4db669a8aa6
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,8k,compact,innodb.rdiff
@@ -0,0 +1,35 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 13:00:25.037261867 +0300
+@@ -12,7 +12,7 @@
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+@@ -26,7 +26,7 @@
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788)
+@@ -36,7 +36,7 @@
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+ ) ENGINE=INNODB;
+@@ -44,4 +44,4 @@
+ CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff
new file mode 100644
index 00000000000..5f79d77e7f9
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic,innodb.rdiff
@@ -0,0 +1,134 @@
+--- max_record_size.result 2019-07-03 11:54:44.591421526 +0300
++++ max_record_size.reject 2019-07-03 13:01:51.215756779 +0300
+@@ -12,7 +12,7 @@
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+@@ -26,22 +26,113 @@
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788)
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788)
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+-c5 VARCHAR(788), c6 VARCHAR(788)
+-) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+-CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
++c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
++c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
++c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
++c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
++c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
++c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
++c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
++c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
++c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
++c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
++c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
++c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
++c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
++c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
++c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
++c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
++c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
++c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
++c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
++c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
++) ENGINE=INNODB;
++ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
++CREATE TABLE t1 (
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT
+ ) ENGINE=INNODB;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+-c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
++c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
++c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
++c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
++c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
++c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
++c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
++c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
++c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
++c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
++c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
++c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
++c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
++c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
++c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
++c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
++c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
++c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
++c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
++c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
++c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
++c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
++c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
++c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
++c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
++c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
++c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
++c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
++c190 TEXT
+ ) ENGINE=INNODB;
+-ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/max_record_size.result b/mysql-test/suite/innodb/r/max_record_size.result
new file mode 100644
index 00000000000..6eefd262937
--- /dev/null
+++ b/mysql-test/suite/innodb/r/max_record_size.result
@@ -0,0 +1,47 @@
+call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+CREATE TABLE t1 (
+c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+) ENGINE=INNODB;
+ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+CREATE TABLE t1 (
+c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+) ENGINE=INNODB;
+ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+CREATE TABLE t1 (
+c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+c5 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+c5 VARCHAR(788), c6 VARCHAR(788)
+) ENGINE=INNODB;
+ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+CREATE TABLE t1 (
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+CREATE TABLE t1 (
+c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
+) ENGINE=INNODB;
+ERROR 42000: Row size too large (> 4027). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/missing_tablespaces.result b/mysql-test/suite/innodb/r/missing_tablespaces.result
new file mode 100644
index 00000000000..11b79273498
--- /dev/null
+++ b/mysql-test/suite/innodb/r/missing_tablespaces.result
@@ -0,0 +1,11 @@
+#
+# Bug#19419026 WHEN A TABLESPACE IS NOT FOUND, DO NOT REPORT "TABLE NOT FOUND"
+#
+CREATE DATABASE `..................................................`;
+USE `..................................................`;
+CREATE TABLE `..................................................` (ID INT)
+ENGINE=INNODB;
+select * from `..................................................`;
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
+DROP TABLE `..................................................`;
+DROP DATABASE `..................................................`;
diff --git a/mysql-test/suite/innodb/r/page_id_innochecksum.result b/mysql-test/suite/innodb/r/page_id_innochecksum.result
new file mode 100644
index 00000000000..e2c13442fe6
--- /dev/null
+++ b/mysql-test/suite/innodb/r/page_id_innochecksum.result
@@ -0,0 +1,6 @@
+# Set the environmental variables
+create table t1(f1 int not null)engine=innodb;
+insert into t1 values(1), (2), (3);
+# Change the page offset
+FOUND 1 /page id mismatch/ in result.log
+drop table t1;
diff --git a/mysql-test/suite/innodb/r/purge.result b/mysql-test/suite/innodb/r/purge.result
new file mode 100644
index 00000000000..fe10ca1f4d5
--- /dev/null
+++ b/mysql-test/suite/innodb/r/purge.result
@@ -0,0 +1,121 @@
+SET @save_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
+SET GLOBAL innodb_purge_rseg_truncate_frequency=1;
+# Bug #12429576 - Test an assertion failure on purge.
+CREATE TABLE t1_purge (
+A int,
+B blob, C blob, D blob, E blob,
+F blob, G blob, H blob,
+PRIMARY KEY (B(767), C(767), D(767), E(767), A),
+INDEX (A)
+) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+INSERT INTO t1_purge VALUES (1,
+REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
+REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766));
+CREATE TABLE t2_purge (
+A int PRIMARY KEY,
+B blob, C blob, D blob, E blob,
+F blob, G blob, H blob, I blob,
+J blob, K blob, L blob,
+INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+INSERT INTO t2_purge VALUES (1,
+REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
+REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766), REPEAT('i', 766),
+REPEAT('j', 766), REPEAT('k', 766), REPEAT('l', 766));
+CREATE TABLE t3_purge (
+A int,
+B varchar(800), C varchar(800), D varchar(800), E varchar(800),
+F varchar(800), G varchar(800), H varchar(800),
+PRIMARY KEY (B(767), C(767), D(767), E(767), A),
+INDEX (A)
+) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+INSERT INTO t3_purge SELECT * FROM t1_purge;
+CREATE TABLE t4_purge (
+A int PRIMARY KEY,
+B varchar(800), C varchar(800), D varchar(800), E varchar(800),
+F varchar(800), G varchar(800), H varchar(800), I varchar(800),
+J varchar(800), K varchar(800), L varchar(800),
+INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+INSERT INTO t4_purge SELECT * FROM t2_purge;
+DELETE FROM t1_purge;
+DELETE FROM t2_purge;
+DELETE FROM t3_purge;
+DELETE FROM t4_purge;
+SET @r=REPEAT('a',500);
+CREATE TABLE t12637786(a int,
+v1 varchar(500), v2 varchar(500), v3 varchar(500),
+v4 varchar(500), v5 varchar(500), v6 varchar(500),
+v7 varchar(500), v8 varchar(500), v9 varchar(500),
+v10 varchar(500), v11 varchar(500), v12 varchar(500),
+v13 varchar(500), v14 varchar(500), v15 varchar(500),
+v16 varchar(500), v17 varchar(500), v18 varchar(500)
+) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+CREATE INDEX idx1 ON t12637786(a,v1);
+INSERT INTO t12637786 VALUES(9,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+UPDATE t12637786 SET a=1000;
+DELETE FROM t12637786;
+# Bug#12963823 - Test that the purge thread does not crash when
+CREATE TABLE t12963823(a blob,b blob,c blob,d blob,e blob,f blob,g blob,h blob,
+i blob,j blob,k blob,l blob,m blob,n blob,o blob,p blob)
+ENGINE=innodb ROW_FORMAT=dynamic;
+SET @r = REPEAT('a', 767);
+INSERT INTO t12963823 VALUES (@r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r);
+CREATE INDEX ndx_a ON t12963823 (a(500));
+CREATE INDEX ndx_b ON t12963823 (b(500));
+CREATE INDEX ndx_c ON t12963823 (c(500));
+CREATE INDEX ndx_d ON t12963823 (d(500));
+CREATE INDEX ndx_e ON t12963823 (e(500));
+CREATE INDEX ndx_f ON t12963823 (f(500));
+CREATE INDEX ndx_k ON t12963823 (k(500));
+CREATE INDEX ndx_l ON t12963823 (l(500));
+SET @r = REPEAT('b', 500);
+UPDATE t12963823 set a=@r,b=@r,c=@r,d=@r;
+UPDATE t12963823 set e=@r,f=@r,g=@r,h=@r;
+UPDATE t12963823 set i=@r,j=@r,k=@r,l=@r;
+UPDATE t12963823 set m=@r,n=@r,o=@r,p=@r;
+ALTER TABLE t12963823 DROP INDEX ndx_a;
+ALTER TABLE t12963823 DROP INDEX ndx_b;
+CREATE INDEX ndx_g ON t12963823 (g(500));
+CREATE INDEX ndx_h ON t12963823 (h(500));
+CREATE INDEX ndx_i ON t12963823 (i(500));
+CREATE INDEX ndx_j ON t12963823 (j(500));
+CREATE INDEX ndx_m ON t12963823 (m(500));
+CREATE INDEX ndx_n ON t12963823 (n(500));
+CREATE INDEX ndx_o ON t12963823 (o(500));
+CREATE INDEX ndx_p ON t12963823 (p(500));
+SHOW CREATE TABLE t12963823;
+Table Create Table
+t12963823 CREATE TABLE `t12963823` (
+ `a` blob DEFAULT NULL,
+ `b` blob DEFAULT NULL,
+ `c` blob DEFAULT NULL,
+ `d` blob DEFAULT NULL,
+ `e` blob DEFAULT NULL,
+ `f` blob DEFAULT NULL,
+ `g` blob DEFAULT NULL,
+ `h` blob DEFAULT NULL,
+ `i` blob DEFAULT NULL,
+ `j` blob DEFAULT NULL,
+ `k` blob DEFAULT NULL,
+ `l` blob DEFAULT NULL,
+ `m` blob DEFAULT NULL,
+ `n` blob DEFAULT NULL,
+ `o` blob DEFAULT NULL,
+ `p` blob DEFAULT NULL,
+ KEY `ndx_c` (`c`(500)),
+ KEY `ndx_d` (`d`(500)),
+ KEY `ndx_e` (`e`(500)),
+ KEY `ndx_f` (`f`(500)),
+ KEY `ndx_k` (`k`(500)),
+ KEY `ndx_l` (`l`(500)),
+ KEY `ndx_g` (`g`(500)),
+ KEY `ndx_h` (`h`(500)),
+ KEY `ndx_i` (`i`(500)),
+ KEY `ndx_j` (`j`(500)),
+ KEY `ndx_m` (`m`(500)),
+ KEY `ndx_n` (`n`(500)),
+ KEY `ndx_o` (`o`(500)),
+ KEY `ndx_p` (`p`(500))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+InnoDB 0 transactions not purged
+DROP TABLE t1_purge, t2_purge, t3_purge, t4_purge, t12637786, t12963823;
+SET GLOBAL innodb_purge_rseg_truncate_frequency=@save_frequency;
diff --git a/mysql-test/suite/innodb/r/strict_mode.result b/mysql-test/suite/innodb/r/strict_mode.result
index 33afae708b4..7be5f961ccc 100644
--- a/mysql-test/suite/innodb/r/strict_mode.result
+++ b/mysql-test/suite/innodb/r/strict_mode.result
@@ -233,7 +233,162 @@ col224 text,
col225 text,
col226 text,
col227 text,
-col228 text
+col228 text,
+col229 text,
+col230 text,
+col231 text,
+col232 text,
+col233 text,
+col234 text,
+col235 text,
+col236 text,
+col237 text,
+col238 text,
+col239 text,
+col240 text,
+col241 text,
+col242 text,
+col243 text,
+col244 text,
+col245 text,
+col246 text,
+col247 text,
+col248 text,
+col249 text,
+col250 text,
+col251 text,
+col252 text,
+col253 text,
+col254 text,
+col255 text,
+col256 text,
+col257 text,
+col258 text,
+col259 text,
+col260 text,
+col261 text,
+col262 text,
+col263 text,
+col264 text,
+col265 text,
+col266 text,
+col267 text,
+col268 text,
+col269 text,
+col270 text,
+col271 text,
+col272 text,
+col273 text,
+col274 text,
+col275 text,
+col276 text,
+col277 text,
+col278 text,
+col279 text,
+col280 text,
+col281 text,
+col282 text,
+col283 text,
+col284 text,
+col285 text,
+col286 text,
+col287 text,
+col288 text,
+col289 text,
+col290 text,
+col291 text,
+col292 text,
+col293 text,
+col294 text,
+col295 text,
+col296 text,
+col297 text,
+col298 text,
+col299 text,
+col300 text,
+col301 text,
+col302 text,
+col303 text,
+col304 text,
+col305 text,
+col306 text,
+col307 text,
+col308 text,
+col309 text,
+col310 text,
+col311 text,
+col312 text,
+col313 text,
+col314 text,
+col315 text,
+col316 text,
+col317 text,
+col318 text,
+col319 text,
+col320 text,
+col321 text,
+col322 text,
+col323 text,
+col324 text,
+col325 text,
+col326 text,
+col327 text,
+col328 text,
+col329 text,
+col330 text,
+col331 text,
+col332 text,
+col333 text,
+col334 text,
+col335 text,
+col336 text,
+col337 text,
+col338 text,
+col339 text,
+col340 text,
+col341 text,
+col342 text,
+col343 text,
+col344 text,
+col345 text,
+col346 text,
+col347 text,
+col348 text,
+col349 text,
+col350 text,
+col351 text,
+col352 text,
+col353 text,
+col354 text,
+col355 text,
+col356 text,
+col357 text,
+col358 text,
+col359 text,
+col360 text,
+col361 text,
+col362 text,
+col363 text,
+col364 text,
+col365 text,
+col366 text,
+col367 text,
+col368 text,
+col369 text,
+col370 text,
+col371 text,
+col372 text,
+col373 text,
+col374 text,
+col375 text,
+col376 text,
+col377 text,
+col378 text,
+col379 text,
+col380 text,
+col381 text,
+col382 text,
+col383 text
) ENGINE=InnoDB;
Warnings:
Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
diff --git a/mysql-test/suite/innodb/r/truncate_missing.result b/mysql-test/suite/innodb/r/truncate_missing.result
index 62a4ef5c552..938bd5f2213 100644
--- a/mysql-test/suite/innodb/r/truncate_missing.result
+++ b/mysql-test/suite/innodb/r/truncate_missing.result
@@ -12,7 +12,7 @@ t CREATE TABLE `t` (
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
# restart
SELECT * FROM t;
-ERROR 42S02: Table 'test.t' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
TRUNCATE TABLE t;
-ERROR 42S02: Table 'test.t' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
DROP TABLE t;
diff --git a/mysql-test/suite/innodb/r/trx_id_future.result b/mysql-test/suite/innodb/r/trx_id_future.result
new file mode 100644
index 00000000000..887d11ddcc2
--- /dev/null
+++ b/mysql-test/suite/innodb/r/trx_id_future.result
@@ -0,0 +1,13 @@
+#
+# Bug #20445525 ADD A CONSISTENCY CHECK AGAINST DB_TRX_ID BEING
+# IN THE FUTURE
+#
+CREATE TABLE t1(a INT) row_format=redundant engine=innoDB;
+INSERT INTO t1 VALUES(1);
+NOT FOUND /\[Warning\] InnoDB: A transaction id in a record of table `test`\.`t1` is newer than the system-wide maximum/ in mysqld.1.err
+call mtr.add_suppression("\\[Warning\\] InnoDB: A transaction id in a record of table `test`\\.`t1` is newer than the system-wide maximum");
+SELECT * FROM t1;
+a
+Warnings:
+Warning 1642 InnoDB: Transaction id in a record of table `test`.`t1` is newer than system-wide maximum.
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/undo_log.result b/mysql-test/suite/innodb/r/undo_log.result
index 6fe0da3da47..7892e26d896 100644
--- a/mysql-test/suite/innodb/r/undo_log.result
+++ b/mysql-test/suite/innodb/r/undo_log.result
@@ -1,3 +1,5 @@
+call mtr.add_suppression("Cannot add field `b_str_20` in table `test`.`test_tab` because after adding it, the row size is");
+SET innodb_strict_mode=OFF;
CREATE TABLE test_tab (
a_str_18 mediumtext,
b_str_3 varchar(32) DEFAULT NULL,
@@ -123,6 +125,9 @@ KEY b_str_5 (b_str_5),
KEY b_str_31 (b_str_31),
KEY a_ref_11 (a_ref_11)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
+Warnings:
+Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+SET innodb_strict_mode=ON;
BEGIN;
INSERT INTO test_tab (b_str_26, a_str_13, a_str_18) VALUES
('a', REPEAT('f',4031), REPEAT('g', 4031));
diff --git a/mysql-test/suite/innodb/t/alter_large_dml.opt b/mysql-test/suite/innodb/t/alter_large_dml.opt
new file mode 100644
index 00000000000..f6d3b8428c9
--- /dev/null
+++ b/mysql-test/suite/innodb/t/alter_large_dml.opt
@@ -0,0 +1,2 @@
+--innodb_fatal_semaphore_wait_threshold=20
+--innodb_online_alter_log_max_size=536870912
diff --git a/mysql-test/suite/innodb/t/alter_large_dml.test b/mysql-test/suite/innodb/t/alter_large_dml.test
new file mode 100644
index 00000000000..5ab3f394115
--- /dev/null
+++ b/mysql-test/suite/innodb/t/alter_large_dml.test
@@ -0,0 +1,53 @@
+--source include/big_test.inc
+--source include/have_innodb.inc
+--source include/have_debug.inc
+--source include/have_debug_sync.inc
+--source include/have_sequence.inc
+
+CREATE TABLE t1(f1 char(200), f2 char(200), f3 char(200),
+ f4 char(200), f5 char(200), f6 char(200),
+ f7 char(200), f8 char(200))ENGINE=InnoDB;
+
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+
+SET DEBUG_SYNC = 'inplace_after_index_build SIGNAL rebuilt WAIT_FOR dml_pause';
+SET DEBUG_SYNC = 'alter_table_inplace_before_lock_upgrade SIGNAL dml_restart WAIT_FOR dml_done';
+SET DEBUG_SYNC = 'row_log_table_apply2_before SIGNAL ddl_start';
+--send
+ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
+
+--connect(con1,localhost,root,,test)
+SET DEBUG_SYNC = 'now WAIT_FOR rebuilt';
+BEGIN;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+SET DEBUG_SYNC = 'now SIGNAL dml_pause';
+SET DEBUG_SYNC = 'now WAIT_FOR dml_restart';
+ROLLBACK;
+
+BEGIN;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+INSERT INTO t1 SELECT '','','','','','','','' FROM seq_1_to_16384;
+ROLLBACK;
+
+BEGIN;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+ROLLBACK;
+
+SET DEBUG_SYNC = 'now SIGNAL dml_done';
+
+--connect(con2, localhost,root,,test)
+SET DEBUG_SYNC = 'now WAIT_FOR ddl_start';
+CREATE TABLE t2(f1 INT NOT NULL)ENGINE=InnoDB;
+
+connection default;
+reap;
+SHOW CREATE TABLE t1;
+
+SELECT COUNT(*) FROM t1;
+SET DEBUG_SYNC = 'RESET';
+DROP TABLE t1, t2;
diff --git a/mysql-test/suite/innodb/t/alter_missing_tablespace.test b/mysql-test/suite/innodb/t/alter_missing_tablespace.test
index bdcbdfb4408..287aa437d10 100644
--- a/mysql-test/suite/innodb/t/alter_missing_tablespace.test
+++ b/mysql-test/suite/innodb/t/alter_missing_tablespace.test
@@ -35,22 +35,21 @@ INSERT INTO t1 VALUES(1),(2),(3);
--source include/start_mysqld.inc
-# The ER_NO_SUCH_TABLE is being thrown by ha_innobase::open().
# The table does exist, only the tablespace does not exist.
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
SELECT * FROM t;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
ALTER TABLE t ADD INDEX (a), ALGORITHM=INPLACE;
SHOW WARNINGS;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
ALTER TABLE t ADD INDEX (a), ALGORITHM=COPY;
SHOW WARNINGS;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
ALTER TABLE t AUTO_INCREMENT=1, ALGORITHM=INPLACE;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
ALTER TABLE t AUTO_INCREMENT=1, ALGORITHM=COPY;
--error ER_PARSE_ERROR
@@ -61,7 +60,7 @@ ALTER TABLE t ALGORITHM=COPY, DISCARD TABLESPACE;
ALTER TABLE t ALGORITHM=DEFAULT, DISCARD TABLESPACE;
ALTER TABLE t DISCARD TABLESPACE;
DROP TABLE t;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
SELECT * FROM `x..d`;
DROP TABLE `x..d`;
diff --git a/mysql-test/suite/innodb/t/blob-crash.test b/mysql-test/suite/innodb/t/blob-crash.test
new file mode 100644
index 00000000000..beb500553ea
--- /dev/null
+++ b/mysql-test/suite/innodb/t/blob-crash.test
@@ -0,0 +1,209 @@
+--source include/maybe_debug.inc
+--source include/innodb_page_size_small.inc
+
+--echo #
+--echo # Bug #16963396 INNODB: USE OF LARGE EXTERNALLY-STORED FIELDS MAKES
+--echo # CRASH RECOVERY LOSE DATA
+--echo #
+
+# ..........................................................................
+
+--echo #
+--echo # Uncompressed Table - Insert Operation - Crash Test
+--echo # Fresh insert with blobs
+--echo #
+
+CREATE TABLE t1 (a BIGINT PRIMARY KEY, b LONGBLOB) ENGINE=InnoDB;
+
+# Insert a few rows (it doesn't really matter how many). These transactions
+# are committed once they are acked, so they should not be lost.
+INSERT INTO t1 (a, b) VALUES (1, repeat('^', 40000));
+INSERT INTO t1 (a, b) VALUES (2, '2');
+INSERT INTO t1 (a, b) VALUES (3, '3');
+INSERT INTO t1 (a, b) VALUES (4, '4');
+INSERT INTO t1 (a, b) VALUES (5, '5');
+
+# The BLOB insert will fail, and should disappear. However no data committed
+# up to this point should be lost.
+begin;
+INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 4*1024*1024));
+
+let $shutdown_timeout=0;
+let $restart_noprint=2;
+--source include/restart_mysqld.inc
+
+SELECT a, right(b, 50) FROM t1;
+
+# ..........................................................................
+
+--echo #
+--echo # Uncompressed Table - UPDATE Operation - Crash Test
+--echo # Update of non-blob column so that blob is needed.
+--echo #
+
+# The BLOB update will fail, and should disappear. However no data committed
+# up to this point should be lost.
+begin;
+UPDATE t1 set b = REPEAT('a', 4*1024*1024) where a = 5 ;
+
+let $shutdown_timeout=0;
+--source include/restart_mysqld.inc
+
+SELECT a, right(b, 50) FROM t1;
+
+# ..........................................................................
+
+--echo #
+--echo # Uncompressed Table - UPDATE Operation - Crash Test
+--echo # Update of blob column to blob.
+--echo #
+
+# The BLOB update will fail, and should disappear. However no data committed
+# up to this point should be lost.
+connect (con1,localhost,root,,);
+begin;
+UPDATE t1 set b = REPEAT('$', 50000) where a = 1;
+
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+UPDATE t1 SET b='five' WHERE a=5;
+
+let $shutdown_timeout=0;
+--source include/restart_mysqld.inc
+
+disconnect con1;
+
+SELECT a, right(b, 50) FROM t1;
+
+# ..........................................................................
+
+--echo #
+--echo # Uncompressed Table - Rollback of UPDATE operation
+--echo # Update moves offpage data to inline data.
+--echo #
+
+create table t2 (f1 bigint primary key, f2 longblob, f3 longblob,
+ index(f2(10), f3(10))) engine=innodb;
+
+insert into t2 values (10, repeat('.', 40000), repeat('?', 40000));
+
+connect (con1,localhost,root,,);
+begin;
+update t2 set f2 = '=';
+select f1, right(f2, 20), right(f3, 20) from t2;
+update t2 set f3 = '&';
+select f1, right(f2, 20), right(f3, 20) from t2;
+
+if ($have_debug) {
+--disable_query_log
+set DEBUG_SYNC='blob_rollback_middle SIGNAL stuck WAIT_FOR ever';
+send ROLLBACK;
+--enable_query_log
+}
+
+connection default;
+if ($have_debug) {
+--disable_query_log
+SET DEBUG_SYNC = 'now WAIT_FOR stuck';
+--enable_query_log
+}
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=1;
+
+let $shutdown_timeout=0;
+--source include/restart_mysqld.inc
+
+disconnect con1;
+
+select f1, right(f2, 20), right(f3, 20) from t2;
+check table t2;
+drop table t2;
+
+# ..........................................................................
+
+--echo #
+--echo # Compressed Table - Insert Operation - Crash Test
+--echo # fresh insert with BLOBs
+--echo #
+
+set global innodb_compression_level = 0;
+
+create table t3 (f1 bigint primary key, f2 longblob, f3 longblob,
+ index(f2(10), f3(10))) engine=innodb row_format=compressed;
+
+# The BLOB insert will fail, and should disappear. However no data committed
+# up to this point should be lost.
+connect (con1,localhost,root,,);
+begin;
+INSERT INTO t3 (f1, f2, f3) VALUES (6, repeat('/', 40000), repeat('<', 40000));
+
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=2;
+
+let $shutdown_timeout=0;
+--source include/restart_mysqld.inc
+
+disconnect con1;
+
+select f1, length(f2), length(f3) from t3;
+select f1, right(f2, 30), right(f3, 20) from t3;
+check table t3;
+
+# ..........................................................................
+
+--echo #
+--echo # Compressed Table - Update Operation - Crash Test
+--echo # update of a non-BLOB column so that BLOB is needed
+--echo #
+
+set global innodb_compression_level = 0;
+insert into t3 values (2, repeat('!', 30), repeat('+', 30));
+
+# The BLOB update will fail, and should disappear. However no data committed
+# up to this point should be lost.
+connect (con1,localhost,root,,);
+begin;
+UPDATE t3 set f2 = repeat('>', 40000) where f1 = 2;
+
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=3;
+
+let $shutdown_timeout=0;
+--source include/restart_mysqld.inc
+
+disconnect con1;
+
+select f1, length(f2), length(f3) from t3;
+select f1, right(f2, 30), right(f3, 20) from t3;
+check table t3;
+
+# ..........................................................................
+
+--echo #
+--echo # Compressed Table - Update Operation - Crash Test
+--echo # update blob to blob
+--echo #
+
+set global innodb_compression_level = 0;
+insert into t3 values (3, repeat('%', 40000), repeat('~', 40000));
+
+# The BLOB update will fail, and should disappear. However no data committed
+# up to this point should be lost.
+connect (con1,localhost,root,,);
+begin;
+UPDATE t3 set f2 = concat(f2, repeat(',', 10)) where f1 = 3;
+
+connection default;
+SET GLOBAL innodb_flush_log_at_trx_commit=1;
+DELETE FROM t1 WHERE a=4;
+
+let $shutdown_timeout=0;
+--source include/restart_mysqld.inc
+
+select f1, length(f2), length(f3) from t3;
+select f1, right(f2, 30), right(f3, 20) from t3;
+check table t3;
+
+DROP TABLE t1,t3;
diff --git a/mysql-test/suite/innodb/t/check_ibd_filesize.test b/mysql-test/suite/innodb/t/check_ibd_filesize.test
new file mode 100644
index 00000000000..92f9061a3f6
--- /dev/null
+++ b/mysql-test/suite/innodb/t/check_ibd_filesize.test
@@ -0,0 +1,53 @@
+--source include/innodb_page_size.inc
+--source include/have_sequence.inc
+
+--echo #
+--echo # Bug #21950389 SMALL TABLESPACES WITH BLOBS TAKE UP TO 80 TIMES MORE
+--echo # SPACE IN 5.7 THAN IN 5.6
+--echo #
+
+#
+# Table 1: small rows
+#
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+let MYSQLD_DATADIR=`select @@datadir`;
+perl;
+print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
+EOF
+
+INSERT INTO t1 SELECT * FROM seq_1_to_25000;
+perl;
+print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
+EOF
+DROP TABLE t1;
+
+#
+# Table 2: BLOB
+#
+CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=InnoDB;
+perl;
+print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
+EOF
+INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+perl;
+print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
+EOF
+DROP TABLE t1;
+
+let $page_size=`SELECT @@innodb_page_size`;
+if ($page_size < 32768)
+{
+#
+# Table 3: compressed BLOB
+#
+CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB)
+ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
+perl;
+print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
+EOF
+INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
+perl;
+print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
+EOF
+DROP TABLE t1;
+}
diff --git a/mysql-test/suite/innodb/t/create_select.test b/mysql-test/suite/innodb/t/create_select.test
new file mode 100644
index 00000000000..8103902e5f6
--- /dev/null
+++ b/mysql-test/suite/innodb/t/create_select.test
@@ -0,0 +1,28 @@
+--source include/have_innodb.inc
+--source include/have_sequence.inc
+--source include/count_sessions.inc
+
+let $ID= `SELECT @id := CONNECTION_ID()`;
+
+connect (con1, localhost, root,,);
+let $ignore= `SELECT @id := $ID`;
+
+connection default;
+send CREATE TABLE t1 ENGINE=InnoDB SELECT * FROM seq_1_to_100000000;
+
+connection con1;
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = 'Sending data'
+ and info = 'CREATE TABLE t1 ENGINE=InnoDB SELECT * FROM seq_1_to_100000000';
+--source include/wait_condition.inc
+KILL QUERY @id;
+disconnect con1;
+
+connection default;
+--error ER_QUERY_INTERRUPTED
+reap;
+
+CREATE TABLE t1 (a SERIAL) ENGINE=InnoDB;
+DROP TABLE t1;
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-test/suite/innodb/t/foreign-keys.test b/mysql-test/suite/innodb/t/foreign-keys.test
index e5950e01a11..d16ae9ed826 100644
--- a/mysql-test/suite/innodb/t/foreign-keys.test
+++ b/mysql-test/suite/innodb/t/foreign-keys.test
@@ -140,7 +140,7 @@ send ALTER TABLE t1 ADD FOREIGN KEY(pk) REFERENCES t2(pk) ON UPDATE CASCADE;
connect con1, localhost, root;
SET debug_sync='now WAIT_FOR ready';
-SET lock_wait_timeout=1; # change to 0 in 10.3
+SET lock_wait_timeout=0;
--error ER_LOCK_WAIT_TIMEOUT
UPDATE t2 SET pk=10 WHERE pk=1;
PREPARE stmt FROM 'UPDATE t2 SET pk=10 WHERE pk=1';
diff --git a/mysql-test/suite/innodb/t/innodb-16k.test b/mysql-test/suite/innodb/t/innodb-16k.test
index d83351ea7bf..89819ba7b6d 100644
--- a/mysql-test/suite/innodb/t/innodb-16k.test
+++ b/mysql-test/suite/innodb/t/innodb-16k.test
@@ -19,56 +19,6 @@ SELECT variable_value FROM information_schema.global_status
SET SESSION innodb_strict_mode = ON;
-# Redundant table; 8011 bytes with 40 char fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
-) ROW_FORMAT=redundant;
-
-DROP TABLE t1;
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
-) ROW_FORMAT=redundant;
-
-# Compact table; 8096 bytes with 40 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=compact;
-
-DROP TABLE t1;
-
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=compact;
# Compressed table; 7959 bytes with 40 CHAR fields
CREATE TABLE t1 (
@@ -96,32 +46,6 @@ c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
) ROW_FORMAT=compressed;
-# Dynamic table; 8096 bytes with 40 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
-) ROW_FORMAT=dynamic;
-
-DROP TABLE t1;
-
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
-) ROW_FORMAT=dynamic;
-
#
# Test the maximum key length
# Max Key Length is 3072 for 16k pages.
@@ -536,405 +460,3 @@ DROP TABLE t1;
DROP TABLE t1_purge, t2_purge, t3_purge, t4_purge;
DROP TABLE tlong;
DROP TABLE tlong2;
-
-SET SESSION innodb_strict_mode = on;
-
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t2(COL1 TEXT,
-COL2 TEXT,
-COL3 TEXT,
-COL4 TEXT,
-COL5 TEXT,
-COL6 TEXT,
-COL7 TEXT,
-COL8 TEXT,
-COL9 TEXT,
-COL10 TEXT,
-COL11 TEXT,
-COL12 TEXT,
-COL13 TEXT,
-COL14 TEXT,
-COL15 TEXT,
-COL16 TEXT,
-COL17 TEXT,
-COL18 TEXT,
-COL19 TEXT,
-COL20 TEXT,
-COL21 TEXT,
-COL22 TEXT,
-COL23 TEXT,
-COL24 TEXT,
-COL25 TEXT,
-COL26 TEXT,
-COL27 TEXT,
-COL28 TEXT,
-COL29 TEXT,
-COL30 TEXT,
-COL31 TEXT,
-COL32 TEXT,
-COL33 TEXT,
-COL34 TEXT,
-COL35 TEXT,
-COL36 TEXT,
-COL37 TEXT,
-COL38 TEXT,
-COL39 TEXT,
-COL40 TEXT,
-COL41 TEXT,
-COL42 TEXT,
-COL43 TEXT,
-COL44 TEXT,
-COL45 TEXT,
-COL46 TEXT,
-COL47 TEXT,
-COL48 TEXT,
-COL49 TEXT,
-COL50 TEXT,
-COL51 TEXT,
-COL52 TEXT,
-COL53 TEXT,
-COL54 TEXT,
-COL55 TEXT,
-COL56 TEXT,
-COL57 TEXT,
-COL58 TEXT,
-COL59 TEXT,
-COL60 TEXT,
-COL61 TEXT,
-COL62 TEXT,
-COL63 TEXT,
-COL64 TEXT,
-COL65 TEXT,
-COL66 TEXT,
-COL67 TEXT,
-COL68 TEXT,
-COL69 TEXT,
-COL70 TEXT,
-COL71 TEXT,
-COL72 TEXT,
-COL73 TEXT,
-COL74 TEXT,
-COL75 TEXT,
-COL76 TEXT,
-COL77 TEXT,
-COL78 TEXT,
-COL79 TEXT,
-COL80 TEXT,
-COL81 TEXT,
-COL82 TEXT,
-COL83 TEXT,
-COL84 TEXT,
-COL85 TEXT,
-COL86 TEXT,
-COL87 TEXT,
-COL88 TEXT,
-COL89 TEXT,
-COL90 TEXT,
-COL91 TEXT,
-COL92 TEXT,
-COL93 TEXT,
-COL94 TEXT,
-COL95 TEXT,
-COL96 TEXT,
-COL97 TEXT,
-COL98 TEXT,
-COL99 TEXT,
-COL100 TEXT,
-COL101 TEXT,
-COL102 TEXT,
-COL103 TEXT,
-COL104 TEXT,
-COL105 TEXT,
-COL106 TEXT,
-COL107 TEXT,
-COL108 TEXT,
-COL109 TEXT,
-COL110 TEXT,
-COL111 TEXT,
-COL112 TEXT,
-COL113 TEXT,
-COL114 TEXT,
-COL115 TEXT,
-COL116 TEXT,
-COL117 TEXT,
-COL118 TEXT,
-COL119 TEXT,
-COL120 TEXT,
-COL121 TEXT,
-COL122 TEXT,
-COL123 TEXT,
-COL124 TEXT,
-COL125 TEXT,
-COL126 TEXT,
-COL127 TEXT,
-COL128 TEXT,
-COL129 TEXT,
-COL130 TEXT,
-COL131 TEXT,
-COL132 TEXT,
-COL133 TEXT,
-COL134 TEXT,
-COL135 TEXT,
-COL136 TEXT,
-COL137 TEXT,
-COL138 TEXT,
-COL139 TEXT,
-COL140 TEXT,
-COL141 TEXT,
-COL142 TEXT,
-COL143 TEXT,
-COL144 TEXT,
-COL145 TEXT,
-COL146 TEXT,
-COL147 TEXT,
-COL148 TEXT,
-COL149 TEXT,
-COL150 TEXT,
-COL151 TEXT,
-COL152 TEXT,
-COL153 TEXT,
-COL154 TEXT,
-COL155 TEXT,
-COL156 TEXT,
-COL157 TEXT,
-COL158 TEXT,
-COL159 TEXT,
-COL160 TEXT,
-COL161 TEXT,
-COL162 TEXT,
-COL163 TEXT,
-COL164 TEXT,
-COL165 TEXT,
-COL166 TEXT,
-COL167 TEXT,
-COL168 TEXT,
-COL169 TEXT,
-COL170 TEXT,
-COL171 TEXT,
-COL172 TEXT,
-COL173 TEXT,
-COL174 TEXT,
-COL175 TEXT,
-COL176 TEXT,
-COL177 TEXT,
-COL178 TEXT,
-COL179 TEXT,
-COL180 TEXT,
-COL181 TEXT,
-COL182 TEXT,
-COL183 TEXT,
-COL184 TEXT,
-COL185 TEXT,
-COL186 TEXT,
-COL187 TEXT,
-COL188 TEXT,
-COL189 TEXT,
-COL190 TEXT,
-COL191 TEXT,
-COL192 TEXT,
-COL193 TEXT,
-COL194 TEXT,
-COL195 TEXT,
-COL196 TEXT,
-COL197 TEXT)
-row_format=dynamic,ENGINE=INNODB;
-
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t2(COL1 TEXT,
-COL2 TEXT,
-COL3 TEXT,
-COL4 TEXT,
-COL5 TEXT,
-COL6 TEXT,
-COL7 TEXT,
-COL8 TEXT,
-COL9 TEXT,
-COL10 TEXT,
-COL11 TEXT,
-COL12 TEXT,
-COL13 TEXT,
-COL14 TEXT,
-COL15 TEXT,
-COL16 TEXT,
-COL17 TEXT,
-COL18 TEXT,
-COL19 TEXT,
-COL20 TEXT,
-COL21 TEXT,
-COL22 TEXT,
-COL23 TEXT,
-COL24 TEXT,
-COL25 TEXT,
-COL26 TEXT,
-COL27 TEXT,
-COL28 TEXT,
-COL29 TEXT,
-COL30 TEXT,
-COL31 TEXT,
-COL32 TEXT,
-COL33 TEXT,
-COL34 TEXT,
-COL35 TEXT,
-COL36 TEXT,
-COL37 TEXT,
-COL38 TEXT,
-COL39 TEXT,
-COL40 TEXT,
-COL41 TEXT,
-COL42 TEXT,
-COL43 TEXT,
-COL44 TEXT,
-COL45 TEXT,
-COL46 TEXT,
-COL47 TEXT,
-COL48 TEXT,
-COL49 TEXT,
-COL50 TEXT,
-COL51 TEXT,
-COL52 TEXT,
-COL53 TEXT,
-COL54 TEXT,
-COL55 TEXT,
-COL56 TEXT,
-COL57 TEXT,
-COL58 TEXT,
-COL59 TEXT,
-COL60 TEXT,
-COL61 TEXT,
-COL62 TEXT,
-COL63 TEXT,
-COL64 TEXT,
-COL65 TEXT,
-COL66 TEXT,
-COL67 TEXT,
-COL68 TEXT,
-COL69 TEXT,
-COL70 TEXT,
-COL71 TEXT,
-COL72 TEXT,
-COL73 TEXT,
-COL74 TEXT,
-COL75 TEXT,
-COL76 TEXT,
-COL77 TEXT,
-COL78 TEXT,
-COL79 TEXT,
-COL80 TEXT,
-COL81 TEXT,
-COL82 TEXT,
-COL83 TEXT,
-COL84 TEXT,
-COL85 TEXT,
-COL86 TEXT,
-COL87 TEXT,
-COL88 TEXT,
-COL89 TEXT,
-COL90 TEXT,
-COL91 TEXT,
-COL92 TEXT,
-COL93 TEXT,
-COL94 TEXT,
-COL95 TEXT,
-COL96 TEXT,
-COL97 TEXT,
-COL98 TEXT,
-COL99 TEXT,
-COL100 TEXT,
-COL101 TEXT,
-COL102 TEXT,
-COL103 TEXT,
-COL104 TEXT,
-COL105 TEXT,
-COL106 TEXT,
-COL107 TEXT,
-COL108 TEXT,
-COL109 TEXT,
-COL110 TEXT,
-COL111 TEXT,
-COL112 TEXT,
-COL113 TEXT,
-COL114 TEXT,
-COL115 TEXT,
-COL116 TEXT,
-COL117 TEXT,
-COL118 TEXT,
-COL119 TEXT,
-COL120 TEXT,
-COL121 TEXT,
-COL122 TEXT,
-COL123 TEXT,
-COL124 TEXT,
-COL125 TEXT,
-COL126 TEXT,
-COL127 TEXT,
-COL128 TEXT,
-COL129 TEXT,
-COL130 TEXT,
-COL131 TEXT,
-COL132 TEXT,
-COL133 TEXT,
-COL134 TEXT,
-COL135 TEXT,
-COL136 TEXT,
-COL137 TEXT,
-COL138 TEXT,
-COL139 TEXT,
-COL140 TEXT,
-COL141 TEXT,
-COL142 TEXT,
-COL143 TEXT,
-COL144 TEXT,
-COL145 TEXT,
-COL146 TEXT,
-COL147 TEXT,
-COL148 TEXT,
-COL149 TEXT,
-COL150 TEXT,
-COL151 TEXT,
-COL152 TEXT,
-COL153 TEXT,
-COL154 TEXT,
-COL155 TEXT,
-COL156 TEXT,
-COL157 TEXT,
-COL158 TEXT,
-COL159 TEXT,
-COL160 TEXT,
-COL161 TEXT,
-COL162 TEXT,
-COL163 TEXT,
-COL164 TEXT,
-COL165 TEXT,
-COL166 TEXT,
-COL167 TEXT,
-COL168 TEXT,
-COL169 TEXT,
-COL170 TEXT,
-COL171 TEXT,
-COL172 TEXT,
-COL173 TEXT,
-COL174 TEXT,
-COL175 TEXT,
-COL176 TEXT,
-COL177 TEXT,
-COL178 TEXT,
-COL179 TEXT,
-COL180 TEXT,
-COL181 TEXT,
-COL182 TEXT,
-COL183 TEXT,
-COL184 TEXT,
-COL185 TEXT,
-COL186 TEXT,
-COL187 TEXT,
-COL188 TEXT,
-COL189 TEXT,
-COL190 TEXT,
-COL191 TEXT,
-COL192 TEXT,
-COL193 TEXT,
-COL194 TEXT,
-COL195 TEXT,
-COL196 TEXT,
-COL197 TEXT)
-row_format=compact,ENGINE=INNODB;
diff --git a/mysql-test/suite/innodb/t/innodb-32k-crash.test b/mysql-test/suite/innodb/t/innodb-32k-crash.test
index b510c115dab..da6d91f351e 100644
--- a/mysql-test/suite/innodb/t/innodb-32k-crash.test
+++ b/mysql-test/suite/innodb/t/innodb-32k-crash.test
@@ -5,6 +5,8 @@
let $MYSQLD_DATADIR= `select @@datadir`;
+call mtr.add_suppression("Cannot add field `u` in table `test`.`t2` because after adding it, the row size is");
+
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -15,6 +17,7 @@ CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
va blob, wa blob, xa blob, ya blob, za blob)
ENGINE=InnoDB ROW_FORMAT=dynamic;
+SET innodb_strict_mode=OFF;
CREATE TABLE t2(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -24,6 +27,7 @@ CREATE TABLE t2(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
oa blob,pa blob,qa blob,ra blob,sa blob,ta blob,ua blob,
va blob, wa blob, xa blob, ya blob, za blob)
ENGINE=InnoDB ROW_FORMAT=compact;
+SET innodb_strict_mode=ON;
SET @a = repeat('a', 767);
SET @b = repeat('b', 767);
diff --git a/mysql-test/suite/innodb/t/innodb-32k.test b/mysql-test/suite/innodb/t/innodb-32k.test
index a0e314aea03..a9645d65998 100644
--- a/mysql-test/suite/innodb/t/innodb-32k.test
+++ b/mysql-test/suite/innodb/t/innodb-32k.test
@@ -19,97 +19,6 @@ SELECT variable_value FROM information_schema.global_status
SET SESSION innodb_strict_mode = ON;
-# Redundant table; 16121 bytes with 81 char fields
-
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(121)
-) ROW_FORMAT=redundant;
-
-DROP TABLE t1;
-
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(122)
-) ROW_FORMAT=redundant;
-
-# Compact table; 16282 bytes with 82 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(82)
-) ROW_FORMAT=compact;
-
-DROP TABLE t1;
-
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(83)
-) ROW_FORMAT=compact;
-
--replace_regex /> [0-9]*/> max_row_size/
--error 1005
CREATE TABLE t1 (
@@ -132,50 +41,6 @@ c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
c81 char(63)
) ROW_FORMAT=compressed;
-# Dynamic table; 16282 bytes with 82 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(82)
-) ROW_FORMAT=dynamic;
-
-DROP TABLE t1;
-
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(200),
-c41 char(200), c42 char(200), c43 char(200), c44 char(200), c45 char(200),
-c46 char(200), c47 char(200), c48 char(200), c49 char(200), c50 char(200),
-c51 char(200), c52 char(200), c53 char(200), c54 char(200), c55 char(200),
-c56 char(200), c57 char(200), c58 char(200), c59 char(200), c60 char(200),
-c61 char(200), c62 char(200), c63 char(200), c64 char(200), c65 char(200),
-c66 char(200), c67 char(200), c68 char(200), c69 char(200), c70 char(200),
-c71 char(200), c72 char(200), c73 char(200), c74 char(200), c75 char(200),
-c76 char(200), c77 char(200), c78 char(200), c79 char(200), c80 char(200),
-c81 char(200), c82 char(83)
-) ROW_FORMAT=dynamic;
#
# Test the maximum key length
diff --git a/mysql-test/suite/innodb/t/innodb-64k-crash.test b/mysql-test/suite/innodb/t/innodb-64k-crash.test
index 950c1752ccd..cbec1a452c7 100644
--- a/mysql-test/suite/innodb/t/innodb-64k-crash.test
+++ b/mysql-test/suite/innodb/t/innodb-64k-crash.test
@@ -5,6 +5,8 @@
let $MYSQLD_DATADIR= `select @@datadir`;
+call mtr.add_suppression("Cannot add field `pa` in table `test`.`t2` because after adding it, the row size is");
+
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -23,6 +25,7 @@ CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
vc blob, wc blob, xc blob, yc blob, zc blob
) ENGINE=InnoDB ROW_FORMAT=dynamic;
+SET innodb_strict_mode=OFF;
CREATE TABLE t2(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
h blob,i blob,j blob,k blob,l blob,m blob,n blob,
o blob,p blob,q blob,r blob,s blob,t blob,u blob,
@@ -40,6 +43,7 @@ CREATE TABLE t2(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
oc blob, pc blob, qc blob, rc blob, sc blob,tc blob,uc blob,
vc blob, wc blob, xc blob, yc blob, zc blob
) ENGINE=InnoDB ROW_FORMAT=compact;
+SET innodb_strict_mode=ON;
SET @a = repeat('a', 767);
SET @b = repeat('b', 767);
diff --git a/mysql-test/suite/innodb/t/innodb-system-table-view.opt b/mysql-test/suite/innodb/t/innodb-system-table-view.opt
new file mode 100644
index 00000000000..b5a61b9ec4b
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-system-table-view.opt
@@ -0,0 +1,10 @@
+--innodb
+--innodb-sys-tablespaces
+--innodb-sys-datafiles
+--innodb-sys-tablestats
+--innodb-sys-tables
+--innodb-sys-columns
+--innodb-sys-indexes
+--innodb-sys-fields
+--innodb-sys-foreign
+--innodb-sys-foreign-cols
diff --git a/mysql-test/suite/innodb/t/innodb-system-table-view.test b/mysql-test/suite/innodb/t/innodb-system-table-view.test
new file mode 100644
index 00000000000..087c0a22eca
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-system-table-view.test
@@ -0,0 +1,136 @@
+# This is the test for Information Schema System Table View
+# that displays the InnoDB system table content through
+# information schema tables.
+
+--source include/innodb_page_size_small.inc
+
+LET $MYSQLD_DATADIR = `select @@datadir`;
+LET $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
+
+# The IDs of mysql.innodb_table_stats and mysql.innodb_index_stats may
+# vary depending on whether the tables have been rebuilt
+# by previously run tests.
+SELECT table_id INTO @table_stats_id FROM information_schema.innodb_sys_tables
+WHERE name = 'mysql/innodb_table_stats';
+SELECT table_id INTO @index_stats_id FROM information_schema.innodb_sys_tables
+WHERE name = 'mysql/innodb_index_stats';
+
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
+WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY table_id;
+
+SELECT table_id,pos,mtype,prtype,len,name
+FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
+WHERE table_id NOT IN (@table_stats_id, @index_stats_id)
+ORDER BY table_id, pos;
+
+--replace_column 1 # 3 # 6 # 7 #
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES
+WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY index_id;
+
+SELECT index_id,pos,name FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS
+WHERE name NOT IN ('database_name', 'table_name', 'index_name', 'stat_name')
+ORDER BY index_id, pos;
+
+--sorted_result
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
+--sorted_result
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
+
+CREATE TABLE t_redundant (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
+CREATE TABLE t_compact (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
+CREATE TABLE t_compressed (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb KEY_BLOCK_SIZE=2;
+CREATE TABLE t_dynamic (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
+
+--source suite/innodb/include/show_i_s_tables.inc
+--source suite/innodb/include/show_i_s_tablespaces.inc
+
+DROP TABLE t_redundant, t_compact, t_compressed, t_dynamic;
+
+SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
+
+# Create a foreign key constraint, and verify the information
+# in INFORMATION_SCHEMA.INNODB_SYS_FOREIGN and
+# INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS
+CREATE TABLE parent (id INT NOT NULL,
+ PRIMARY KEY (id)) ENGINE=INNODB;
+
+CREATE TABLE child (id INT, parent_id INT,
+ INDEX par_ind (parent_id),
+ CONSTRAINT constraint_test
+ FOREIGN KEY (parent_id) REFERENCES parent(id)
+ ON DELETE CASCADE) ENGINE=INNODB;
+
+--sorted_result
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
+
+--sorted_result
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
+
+# Insert a row in the table "parent", and see whether that reflected in
+# INNODB_SYS_TABLESTATS
+INSERT INTO parent VALUES(1);
+
+--sorted_result
+SELECT name, num_rows, ref_count
+FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
+WHERE name LIKE "%parent";
+
+--sorted_result
+SELECT NAME, FLAG, N_COLS FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
+ WHERE name NOT LIKE 'sys/%';
+
+--sorted_result
+SELECT name, n_fields
+from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
+WHERE table_id In (SELECT table_id from
+ INFORMATION_SCHEMA.INNODB_SYS_TABLES
+ WHERE name LIKE "%parent%");
+
+--sorted_result
+SELECT name, n_fields
+from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
+WHERE table_id In (SELECT table_id from
+ INFORMATION_SCHEMA.INNODB_SYS_TABLES
+ WHERE name LIKE "%child%");
+
+--sorted_result
+SELECT name, pos, mtype, len
+from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
+WHERE table_id In (SELECT table_id from
+ INFORMATION_SCHEMA.INNODB_SYS_TABLES
+ WHERE name LIKE "%child%");
+
+DROP TABLE child;
+
+DROP TABLE parent;
+
+# Create table with 2 columns in the foreign key constraint
+CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL,
+ PRIMARY KEY (id, newid)) ENGINE=INNODB;
+
+CREATE TABLE child (id INT, parent_id INT,
+ INDEX par_ind (parent_id),
+ CONSTRAINT constraint_test
+ FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid)
+ ON DELETE CASCADE) ENGINE=INNODB;
+
+--sorted_result
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
+
+--sorted_result
+SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
+
+INSERT INTO parent VALUES(1, 9);
+
+# Nested query will open the table handle twice
+--sorted_result
+SELECT * FROM parent WHERE id IN (SELECT id FROM parent);
+
+--sorted_result
+SELECT name, num_rows, ref_count
+FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
+WHERE name LIKE "%parent";
+
+DROP TABLE child;
+
+DROP TABLE parent;
diff --git a/mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test b/mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test
new file mode 100644
index 00000000000..6de43dd80f8
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test
@@ -0,0 +1,27 @@
+--source include/have_innodb.inc
+--source include/have_debug.inc
+--source include/have_debug_sync.inc
+
+#
+# MDEV-17005 ASAN heap-use-after-free in innobase_get_computed_value
+#
+CREATE TABLE t1 (a INT, b INT AS (a), KEY(b)) ENGINE=InnoDB;
+
+INSERT INTO t1 () VALUES (),();
+--connect (con1,localhost,root,,test)
+ALTER TABLE t1 ADD COLUMN x INT as (a), add key(x), ALGORITHM=COPY;
+SET debug_sync= "ib_open_after_dict_open SIGNAL delete_open WAIT_FOR another_open";
+--send
+DELETE FROM t1;
+--connection default
+SET debug_sync= "now WAIT_FOR delete_open";
+SET debug_sync= "ib_open_after_dict_open SIGNAL another_open";
+SELECT a FROM t1;
+--connection con1
+--reap
+
+# Cleanup
+--disconnect con1
+--connection default
+SET debug_sync= "RESET";
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/innodb-wl5980-debug.test b/mysql-test/suite/innodb/t/innodb-wl5980-debug.test
new file mode 100644
index 00000000000..2c5e2b48870
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-wl5980-debug.test
@@ -0,0 +1,51 @@
+#
+# This testcase is to check the various debug injection points
+# to make sure error conditions react corectly and acheive
+# better code coverage.
+#
+
+# Not supported in embedded
+--source include/not_embedded.inc
+--source include/have_debug.inc
+--source include/have_innodb.inc
+
+# These messages are expected in the log
+call mtr.add_suppression("Cannot find space id [0-9]+ in the tablespace memory cache");
+call mtr.add_suppression("Cannot rename table 'test/t1' to 'test/t2' since the dictionary cache already contains 'test/t2'.");
+
+# Set up some variables
+LET $MYSQL_DATA_DIR = `select @@datadir`;
+LET $data_directory_clause = DATA DIRECTORY='$MYSQL_TMP_DIR/alt_dir';
+--enable_query_log
+
+--echo #
+--echo # WL5980 Remote tablespace debug error injection tests.
+--echo #
+
+--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
+eval CREATE TABLE t1 (a int KEY, b text) ENGINE=Innodb $data_directory_clause ;
+INSERT INTO t1 VALUES (1, 'tablespace');
+SELECT * FROM t1;
+
+--echo #
+--echo # Test the second injection point in fil_rename_tablespace().
+--echo # Make sure the table is useable after this failure.
+--echo #
+SET @save_dbug=@@debug_dbug;
+SET debug_dbug="+d,fil_rename_tablespace_failure_2";
+--disable_result_log
+--error ER_ERROR_ON_RENAME
+RENAME TABLE t1 TO t2;
+--enable_result_log
+SET debug_dbug=@save_dbug;
+INSERT INTO t1 VALUES (2, 'tablespace');
+SELECT * FROM t1;
+
+--echo #
+--echo # Cleanup
+--echo #
+
+DROP TABLE t1;
+
+--rmdir $MYSQL_TMP_DIR/alt_dir/test
+--rmdir $MYSQL_TMP_DIR/alt_dir
diff --git a/mysql-test/suite/innodb/t/innodb_buffer_pool_dump_pct.test b/mysql-test/suite/innodb/t/innodb_buffer_pool_dump_pct.test
new file mode 100644
index 00000000000..a7a414d61da
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb_buffer_pool_dump_pct.test
@@ -0,0 +1,99 @@
+# ************************************************************
+# wl6504: This testcase is to check the functionality of the
+# innodb_buffer_pool_dump_pct flag
+# step 1.Set innodb_buffer_pool_dump_pct=100 and take the dump
+# step 2.Set innodb_buffer_pool_dump_pct=1 and take the dump
+# step 3.Compare the size of both the dump files
+#*************************************************************
+--source include/have_innodb.inc
+--source include/have_innodb_16k.inc
+
+let MYSQLD_DATADIR = `SELECT @@datadir`;
+
+CREATE TABLE tab5 (col1 int auto_increment primary key,
+col2 VARCHAR(25), col3 varchar(25)) ENGINE=InnoDB;
+CREATE INDEX idx1 ON tab5(col2(10));
+CREATE INDEX idx2 ON tab5(col3(10));
+
+SET GLOBAL innodb_buffer_pool_filename=ib_buffer_pool100;
+SET GLOBAL innodb_buffer_pool_dump_pct=100;
+
+#***********************************************************
+# SELECT *
+# FROM information_schema.global_status
+# WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS'
+# gives
+# a) VARIABLE_NAME VARIABLE_VALUE
+# INNODB_BUFFER_POOL_DUMP_STATUS not started
+# in case there was no innodb_buffer_pool_dump since server start.
+# b) Something like
+# VARIABLE_NAME VARIABLE_VALUE
+# INNODB_BUFFER_POOL_DUMP_STATUS Buffer pool(s) dump completed at 130711 13:43:24
+# in case there was a innodb_buffer_pool_dump since server start.
+# Attention:
+# - There is no guarantee that the current test is the first test which
+# made an innodb_buffer_pool_dump since server startup.
+# - The granularity of the timestamp is one second.
+# - There could have been some dump caused by some previous test
+# just a few milliseconds before.
+# In order to avoid conflict with previous tests, read the current value
+# of INNODB_BUFFER_POOL_DUMP_STATUS
+# and confirm that the timestamp is different after the dump
+#***********************************************************
+
+# Read the current value to compare with the new value.
+SELECT variable_value INTO @IBPDS
+FROM information_schema.global_status
+WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS';
+SET GLOBAL innodb_buffer_pool_dump_now=ON;
+
+# Sleep one second in order to ensure that the time stamp is
+# different at next dump
+--sleep 1
+
+let $wait_condition = SELECT count(*) = 1
+FROM information_schema.global_status
+WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS'
+AND variable_value != @IBPDS
+AND variable_value like 'Buffer pool(s) dump completed at%';
+--source include/wait_condition.inc
+
+--file_exists $MYSQLD_DATADIR/ib_buffer_pool100
+SET GLOBAL innodb_buffer_pool_filename=ib_buffer_pool1;
+SET GLOBAL innodb_buffer_pool_dump_pct=1;
+SELECT @@global.innodb_buffer_pool_dump_pct;
+
+# Read the current value to compare with the new value.
+--disable_warnings
+SELECT variable_value INTO @IBPDS
+FROM information_schema.global_status
+WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS';
+--enable_warnings
+
+SET GLOBAL innodb_buffer_pool_dump_now=ON;
+
+# Sleep one second in order to ensure that the time stamp is
+# different at next dump
+--sleep 1
+
+let $wait_condition = SELECT count(*) = 1
+FROM information_schema.global_status
+WHERE variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS'
+AND variable_value != @IBPDS
+AND variable_value like 'Buffer pool(s) dump completed at%';
+--source include/wait_condition.inc
+
+--file_exists $MYSQLD_DATADIR/ib_buffer_pool1
+
+perl;
+my $size1 = -s "$ENV{MYSQLD_DATADIR}/ib_buffer_pool1";
+my $size100 = -s "$ENV{MYSQLD_DATADIR}/ib_buffer_pool100";
+die "$size100<=$size1\n" unless $size100 > $size1;
+EOF
+
+SET GLOBAL innodb_buffer_pool_dump_pct=DEFAULT;
+SET GLOBAL innodb_buffer_pool_filename=DEFAULT;
+
+--remove_file $MYSQLD_DATADIR/ib_buffer_pool100
+--remove_file $MYSQLD_DATADIR/ib_buffer_pool1
+DROP TABLE tab5;
diff --git a/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test b/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test
index aa816a9b0e8..5041612bec1 100644
--- a/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test
+++ b/mysql-test/suite/innodb/t/innodb_max_recordsize_32k.test
@@ -8,53 +8,6 @@ SELECT @@innodb_page_size;
SET innodb_strict_mode=ON;
-# Check the error when the max record length > 16K for innodb_page_size=32k
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT= COMPACT;
-
-# Check the error when the max record length > 16K for innodb_page_size=32k
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT= DYNAMIC;
-show warnings;
-
-# Check the error when the max record length > 16K for innodb_page_size=32k
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT=REDUNDANT;
-show warnings;
-
# FIXED not supported
-- error 1005
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
diff --git a/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test b/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test
index 598cc3d77bf..5b06b57d4b4 100644
--- a/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test
+++ b/mysql-test/suite/innodb/t/innodb_max_recordsize_64k.test
@@ -8,76 +8,6 @@ SELECT @@innodb_page_size;
SET innodb_strict_mode=ON;
-# Check the error when the max record length > 32K for innodb_page_size=64k
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255),
-ccol1 CHAR(255),ccol2 CHAR(255),ccol3 CHAR(255),ccol4 CHAR(255),ccol5 CHAR(255),
-ccol6 CHAR(255),ccol7 CHAR(255),ccol8 CHAR(255),ccol9 CHAR(255),ccol10 CHAR(255), ccol11 CHAR(255),
-ccol12 CHAR(255),ccol13 CHAR(255),ccol14 CHAR(255),ccol15 CHAR(255),ccol16 CHAR(255), ccol17 CHAR(255),
-ccol18 CHAR(255),ccol19 CHAR(255),ccol20 CHAR(255),ccol21 CHAR(255),ccol22 CHAR(255), ccol23 CHAR(255),
-ccol24 CHAR(255),ccol25 CHAR(255),ccol26 CHAR(255),ccol27 CHAR(255),ccol28 CHAR(255), ccol29 CHAR(255),
-ccol30 CHAR(255),ccol31 CHAR(255),ccol32 CHAR(255),ccol33 CHAR(255),ccol34 CHAR(255), ccol35 CHAR(255),
-ccol36 CHAR(255),ccol37 CHAR(255),ccol38 CHAR(255),ccol39 CHAR(255),ccol40 CHAR(255), ccol41 CHAR(255),
-ccol42 CHAR(255),ccol43 CHAR(255),ccol44 CHAR(255),ccol45 CHAR(255),ccol46 CHAR(255), ccol47 CHAR(255),
-ccol48 CHAR(255),ccol49 CHAR(255),ccol50 CHAR(255),ccol51 CHAR(255),ccol52 CHAR(255), ccol53 CHAR(255),
-ccol54 CHAR(255),ccol55 CHAR(255),ccol56 CHAR(255),ccol57 CHAR(255),ccol58 CHAR(255), ccol59 CHAR(255),
-ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR(255), ccol65 CHAR(255)
-)
-ENGINE = innodb ROW_FORMAT= COMPACT;
-
-# Check the error when the max record length > 16K for innodb_page_size=64k
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255),
-ccol1 CHAR(255),ccol2 CHAR(255),ccol3 CHAR(255),ccol4 CHAR(255),ccol5 CHAR(255),
-ccol6 CHAR(255),ccol7 CHAR(255),ccol8 CHAR(255),ccol9 CHAR(255),ccol10 CHAR(255), ccol11 CHAR(255),
-ccol12 CHAR(255),ccol13 CHAR(255),ccol14 CHAR(255),ccol15 CHAR(255),ccol16 CHAR(255), ccol17 CHAR(255),
-ccol18 CHAR(255),ccol19 CHAR(255),ccol20 CHAR(255),ccol21 CHAR(255),ccol22 CHAR(255), ccol23 CHAR(255),
-ccol24 CHAR(255),ccol25 CHAR(255),ccol26 CHAR(255),ccol27 CHAR(255),ccol28 CHAR(255), ccol29 CHAR(255),
-ccol30 CHAR(255),ccol31 CHAR(255),ccol32 CHAR(255),ccol33 CHAR(255),ccol34 CHAR(255), ccol35 CHAR(255),
-ccol36 CHAR(255),ccol37 CHAR(255),ccol38 CHAR(255),ccol39 CHAR(255),ccol40 CHAR(255), ccol41 CHAR(255),
-ccol42 CHAR(255),ccol43 CHAR(255),ccol44 CHAR(255),ccol45 CHAR(255),ccol46 CHAR(255), ccol47 CHAR(255),
-ccol48 CHAR(255),ccol49 CHAR(255),ccol50 CHAR(255),ccol51 CHAR(255),ccol52 CHAR(255), ccol53 CHAR(255),
-ccol54 CHAR(255),ccol55 CHAR(255),ccol56 CHAR(255),ccol57 CHAR(255),ccol58 CHAR(255), ccol59 CHAR(255),
-ccol60 CHAR(255),ccol61 CHAR(255),ccol62 CHAR(255),ccol63 CHAR(255),ccol64 CHAR(255), ccol65 CHAR(255)
-)
-ENGINE = innodb ROW_FORMAT= DYNAMIC;
-
-# Check the error when the max record length > 16K for innodb_page_size=64k
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
-col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255),
-col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255),
-col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255),
-col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255),
-col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255),
-col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255),
-col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255),
-col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255),
-col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255),
-col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255), col65 CHAR(255))
-ENGINE = innodb ROW_FORMAT=REDUNDANT;
-show warnings;
-
# FIXED not supported
-- error 1005
CREATE TABLE tab5(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255),
diff --git a/mysql-test/suite/innodb/t/innodb_mysql.test b/mysql-test/suite/innodb/t/innodb_mysql.test
index dc247a96468..23bba81c6bd 100644
--- a/mysql-test/suite/innodb/t/innodb_mysql.test
+++ b/mysql-test/suite/innodb/t/innodb_mysql.test
@@ -818,8 +818,52 @@ DROP TABLE t1;
SET SQL_MODE=DEFAULT;
--echo #
---echo # Bug#56862 Moved to innodb_16k.test
+--echo # Bug#56862 Execution of a query that uses index merge returns a wrong result
--echo #
+
+CREATE TABLE t1 (
+ pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ a int,
+ b int,
+ INDEX idx(a))
+ENGINE=INNODB;
+
+INSERT INTO t1(a,b) VALUES
+ (11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500),
+ (3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800),
+ (6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700),
+ (13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000);
+INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1;
+INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1;
+INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1(a,b) SELECT a,b FROM t1;
+INSERT INTO t1 VALUES (1000000, 0, 0);
+
+set @optimizer_switch_saved=@@optimizer_switch;
+SET SESSION optimizer_switch='derived_merge=off';
+SET SESSION sort_buffer_size = 1024*36;
+
+EXPLAIN
+SELECT COUNT(*) FROM
+ (SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
+ WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
+
+SELECT COUNT(*) FROM
+ (SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
+ WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
+
+set @@optimizer_switch=@optimizer_switch_saved;
+SET SESSION sort_buffer_size = DEFAULT;
+
+DROP TABLE t1;
+
--echo #
--echo # Test for bug #39932 "create table fails if column for FK is in different
--echo # case than in corr index".
diff --git a/mysql-test/suite/innodb/t/instant_alter.test b/mysql-test/suite/innodb/t/instant_alter.test
index b6be9137532..dc6fe45fa69 100644
--- a/mysql-test/suite/innodb/t/instant_alter.test
+++ b/mysql-test/suite/innodb/t/instant_alter.test
@@ -4,6 +4,8 @@
--echo # MDEV-11369: Instant ADD COLUMN for InnoDB
--echo #
+call mtr.add_suppression("Cannot add field `.*` in table `test`.`.*` because after adding it, the row size is");
+
let $format= `SELECT CASE WHEN @@GLOBAL.innodb_page_size>16384
THEN 'DYNAMIC' ELSE 'COMPRESSED' END`;
CREATE TABLE t(a INT UNIQUE)ENGINE=InnoDB ROW_FORMAT=COMPACT;
@@ -226,6 +228,7 @@ ALTER TABLE t3 ADD COLUMN b BLOB NOT NULL;
INSERT INTO t3 SET id=4;
INSERT INTO t3 SET id=4, c2=0, b=0xf09f98b1;
+SET innodb_strict_mode = OFF;
ALTER TABLE t3 CHANGE t phrase TEXT DEFAULT 0xc3a4c3a448,
CHANGE b b BLOB NOT NULL DEFAULT 'binary line of business';
--disable_info
@@ -233,6 +236,7 @@ INSERT INTO t3 SET id=5, c2=9;
SELECT id, c2, ST_AsText(c3) c3, c4, c5, c6, c7, c8, phrase, b FROM t3;
--enable_info
ALTER TABLE t3 DROP c3, DROP c7;
+SET innodb_strict_mode = OFF;
--disable_info
SELECT * FROM t3;
@@ -752,3 +756,13 @@ SELECT variable_value-@old_instant instants
FROM information_schema.global_status
WHERE variable_name = 'innodb_instant_alter_column';
SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency;
+
+--echo #
+--echo # MDEV-18266: Changing an index comment unnecessarily rebuilds index
+--echo #
+
+CREATE TABLE t1(a INT, b INT) ENGINE=INNODB;
+CREATE INDEX i1 ON t1(a) COMMENT 'comment1';
+ALTER TABLE t1 DROP INDEX i1, ADD INDEX i1(a) COMMENT 'comment2', ALGORITHM=INSTANT;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/instant_alter_bugs.test b/mysql-test/suite/innodb/t/instant_alter_bugs.test
index a5b1508305e..3cf3de54ba5 100644
--- a/mysql-test/suite/innodb/t/instant_alter_bugs.test
+++ b/mysql-test/suite/innodb/t/instant_alter_bugs.test
@@ -134,6 +134,24 @@ HANDLER h READ `PRIMARY` PREV WHERE 0;
# Cleanup
HANDLER h CLOSE;
DROP TABLE t1;
+
+# MDEV-19630 ALTER TABLE ... ADD COLUMN damages foreign keys which are pointed
+# to the table being altered
+CREATE TABLE t1(f1 int not null, primary key(f1))engine=innodb;
+CREATE TABLE t2(f1 INT AUTO_INCREMENT NOT NULL, f2 INT NOT NULL,
+ status ENUM ('a', 'b', 'c'), INDEX idx1(f2),
+ PRIMARY KEY(f1),
+ FOREIGN KEY (f2) REFERENCES t1(f1))ENGINE=InnoDB;
+
+ALTER TABLE t1 CHANGE f1 f1_id INT NOT NULL, ADD f3 VARCHAR(255) DEFAULT NULL;
+ALTER TABLE t1 CHANGE f1_id f1 INT NOT NULL;
+
+SHOW CREATE TABLE t1;
+SHOW CREATE TABLE t2;
+
+ALTER TABLE t2 CHANGE status status VARCHAR(20) DEFAULT NULL;
+DROP TABLE t2, t1;
+
--let $datadir= `select @@datadir`
--remove_file $datadir/test/load.data
@@ -216,3 +234,35 @@ ALTER TABLE t1 DROP INDEX ftidx;
ALTER TABLE t1 MODIFY c TEXT NULL, ALGORITHM=INSTANT;
ALTER TABLE t1 MODIFY c TEXT NULL;
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-20048 dtuple_get_nth_field(): Assertion 'n < tuple->n_fields'
+--echo # failed on ROLLBACK after instant DROP COLUMN
+--echo #
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+ALTER TABLE t1 ADD b TEXT, ALGORITHM=INSTANT;
+SET @b = REPEAT('b', @@innodb_page_size / 2 + 1);
+INSERT INTO t1 VALUES(2, @b), (3, @b);
+BEGIN;
+DELETE FROM t1 WHERE a=2;
+
+# Stop purge so that it doesn't remove the delete-marked entry.
+connect (purge_control,localhost,root);
+START TRANSACTION WITH CONSISTENT SNAPSHOT;
+connection default;
+
+COMMIT;
+
+ALTER TABLE t1 DROP b, ALGORITHM=INSTANT;
+BEGIN;
+INSERT INTO t1 VALUES (2);
+
+connection purge_control;
+SELECT * FROM t1;
+disconnect purge_control;
+connection default;
+ROLLBACK;
+
+SELECT * FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/instant_alter_debug.test b/mysql-test/suite/innodb/t/instant_alter_debug.test
index 73a222cb23c..267e2a2c22d 100644
--- a/mysql-test/suite/innodb/t/instant_alter_debug.test
+++ b/mysql-test/suite/innodb/t/instant_alter_debug.test
@@ -301,6 +301,31 @@ SELECT * FROM t1;
DROP TABLE t1;
--echo #
+--echo # MDEV-19916 Corruption after instant ADD/DROP and shrinking the tree
+--echo #
+CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+
+# Create an index tree with 2 levels of node pointer pages.
+
+SET @old_limit = @@innodb_limit_optimistic_insert_debug;
+SET GLOBAL innodb_limit_optimistic_insert_debug = 2;
+INSERT INTO t1 VALUES (1),(5),(4),(3),(2);
+SET GLOBAL innodb_limit_optimistic_insert_debug = @old_limit;
+
+ALTER TABLE t1 ADD COLUMN b INT, ALGORITHM=INSTANT;
+
+SET @old_defragment = @@innodb_defragment;
+SET GLOBAL innodb_defragment = 1;
+OPTIMIZE TABLE t1;
+SET GLOBAL innodb_defragment = @old_defragment;
+
+# Exploit MDEV-17468 to force the table definition to be reloaded
+ALTER TABLE t1 ADD vb INT AS (b) VIRTUAL;
+CHECK TABLE t1;
+SELECT * FROM t1;
+DROP TABLE t1;
+
+--echo #
--echo # MDEV-17899 Assertion failures on rollback of instant ADD/DROP
--echo # MDEV-18098 Crash after rollback of instant DROP COLUMN
--echo #
diff --git a/mysql-test/suite/innodb/t/max_record_size.test b/mysql-test/suite/innodb/t/max_record_size.test
new file mode 100644
index 00000000000..f21ff923344
--- /dev/null
+++ b/mysql-test/suite/innodb/t/max_record_size.test
@@ -0,0 +1,1422 @@
+--source include/have_innodb.inc
+--source include/innodb_page_size.inc
+--source include/innodb_row_format.inc
+
+--let $row_format= `SELECT @@GLOBAL.innodb_default_row_format`
+--let $page_size= `SELECT @@GLOBAL.innodb_page_size`
+
+call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is");
+
+
+if ($page_size == 4096) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255)
+) ENGINE=INNODB;
+}
+
+
+if ($page_size == 8192) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255)
+) ENGINE=INNODB;
+}
+
+
+if ($page_size == 16384) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255)
+) ENGINE=INNODB;
+}
+
+
+if ($page_size == 32768) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
+ c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
+ c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
+ c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
+ c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
+ c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
+ c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+ c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+ c61 CHAR(255), c62 CHAR(255), c63 CHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
+ c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
+ c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
+ c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
+ c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
+ c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
+ c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+ c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+ c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
+ c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
+ c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
+ c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
+ c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
+ c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+ c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+ c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
+ c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
+ c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
+ c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
+ c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
+ c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+ c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+ c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
+) ENGINE=INNODB;
+}
+
+
+if ($row_format == 'redundant') { if ($page_size == 65536) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
+ c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
+ c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
+ c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
+ c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
+ c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
+ c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+ c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+ c61 CHAR(255), c62 CHAR(255), c63 CHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
+ c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
+ c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
+ c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
+ c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
+ c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
+ c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+ c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+ c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
+ c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
+ c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
+ c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
+ c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
+ c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+ c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+ c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
+ c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
+ c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
+ c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
+ c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
+ c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+ c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+ c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255)
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format != 'redundant') { if ($page_size == 65536) {
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
+ c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
+ c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
+ c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
+ c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
+ c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
+ c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+ c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+ c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
+ c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
+ c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
+ c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
+ c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
+ c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
+ c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
+ c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
+ c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
+ c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
+ c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
+ c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
+ c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
+ c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
+ c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
+ c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
+ c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255),
+ c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255),
+ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255),
+ c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255),
+ c17 CHAR(255), c18 CHAR(255), c19 CHAR(255), c20 CHAR(255),
+ c21 CHAR(255), c22 CHAR(255), c23 CHAR(255), c24 CHAR(255),
+ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255),
+ c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255),
+ c33 CHAR(255), c34 CHAR(255), c35 CHAR(255), c36 CHAR(255),
+ c37 CHAR(255), c38 CHAR(255), c39 CHAR(255), c40 CHAR(255),
+ c41 CHAR(255), c42 CHAR(255), c43 CHAR(255), c44 CHAR(255),
+ c45 CHAR(255), c46 CHAR(255), c47 CHAR(255), c48 CHAR(255),
+ c49 CHAR(255), c50 CHAR(255), c51 CHAR(255), c52 CHAR(255),
+ c53 CHAR(255), c54 CHAR(255), c55 CHAR(255), c56 CHAR(255),
+ c57 CHAR(255), c58 CHAR(255), c59 CHAR(255), c60 CHAR(255),
+ c61 CHAR(255), c62 CHAR(255), c63 CHAR(255), c64 CHAR(255),
+ c65 CHAR(255), c66 CHAR(255), c67 CHAR(255), c68 CHAR(255),
+ c69 CHAR(255), c70 CHAR(255), c71 CHAR(255), c72 CHAR(255),
+ c73 CHAR(255), c74 CHAR(255), c75 CHAR(255), c76 CHAR(255),
+ c77 CHAR(255), c78 CHAR(255), c79 CHAR(255), c80 CHAR(255),
+ c81 CHAR(255), c82 CHAR(255), c83 CHAR(255), c84 CHAR(255),
+ c85 CHAR(255), c86 CHAR(255), c87 CHAR(255), c88 CHAR(255),
+ c89 CHAR(255), c90 CHAR(255), c91 CHAR(255), c92 CHAR(255),
+ c93 CHAR(255), c94 CHAR(255), c95 CHAR(255), c96 CHAR(255),
+ c97 CHAR(255), c98 CHAR(255), c99 CHAR(255), c100 CHAR(255),
+ c101 CHAR(255), c102 CHAR(255), c103 CHAR(255), c104 CHAR(255),
+ c105 CHAR(255), c106 CHAR(255), c107 CHAR(255), c108 CHAR(255),
+ c109 CHAR(255), c110 CHAR(255), c111 CHAR(255), c112 CHAR(255),
+ c113 CHAR(255), c114 CHAR(255), c115 CHAR(255), c116 CHAR(255),
+ c117 CHAR(255), c118 CHAR(255), c119 CHAR(255), c120 CHAR(255),
+ c121 CHAR(255), c122 CHAR(255), c123 CHAR(255), c124 CHAR(255),
+ c125 CHAR(255), c126 CHAR(255), c127 CHAR(255), c128 CHAR(255),
+ c129 CHAR(255)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
+ c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
+ c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
+ c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
+ c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
+ c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+ c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+ c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
+ c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
+ c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
+ c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
+ c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
+ c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
+ c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
+ c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
+ c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
+ c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
+ c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
+ c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
+ c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
+ c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
+ c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
+ c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
+ c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(255), c2 VARCHAR(255), c3 VARCHAR(255), c4 VARCHAR(255),
+ c5 VARCHAR(255), c6 VARCHAR(255), c7 VARCHAR(255), c8 VARCHAR(255),
+ c9 VARCHAR(255), c10 VARCHAR(255), c11 VARCHAR(255), c12 VARCHAR(255),
+ c13 VARCHAR(255), c14 VARCHAR(255), c15 VARCHAR(255), c16 VARCHAR(255),
+ c17 VARCHAR(255), c18 VARCHAR(255), c19 VARCHAR(255), c20 VARCHAR(255),
+ c21 VARCHAR(255), c22 VARCHAR(255), c23 VARCHAR(255), c24 VARCHAR(255),
+ c25 VARCHAR(255), c26 VARCHAR(255), c27 VARCHAR(255), c28 VARCHAR(255),
+ c29 VARCHAR(255), c30 VARCHAR(255), c31 VARCHAR(255), c32 VARCHAR(255),
+ c33 VARCHAR(255), c34 VARCHAR(255), c35 VARCHAR(255), c36 VARCHAR(255),
+ c37 VARCHAR(255), c38 VARCHAR(255), c39 VARCHAR(255), c40 VARCHAR(255),
+ c41 VARCHAR(255), c42 VARCHAR(255), c43 VARCHAR(255), c44 VARCHAR(255),
+ c45 VARCHAR(255), c46 VARCHAR(255), c47 VARCHAR(255), c48 VARCHAR(255),
+ c49 VARCHAR(255), c50 VARCHAR(255), c51 VARCHAR(255), c52 VARCHAR(255),
+ c53 VARCHAR(255), c54 VARCHAR(255), c55 VARCHAR(255), c56 VARCHAR(255),
+ c57 VARCHAR(255), c58 VARCHAR(255), c59 VARCHAR(255), c60 VARCHAR(255),
+ c61 VARCHAR(255), c62 VARCHAR(255), c63 VARCHAR(255), c64 VARCHAR(255),
+ c65 VARCHAR(255), c66 VARCHAR(255), c67 VARCHAR(255), c68 VARCHAR(255),
+ c69 VARCHAR(255), c70 VARCHAR(255), c71 VARCHAR(255), c72 VARCHAR(255),
+ c73 VARCHAR(255), c74 VARCHAR(255), c75 VARCHAR(255), c76 VARCHAR(255),
+ c77 VARCHAR(255), c78 VARCHAR(255), c79 VARCHAR(255), c80 VARCHAR(255),
+ c81 VARCHAR(255), c82 VARCHAR(255), c83 VARCHAR(255), c84 VARCHAR(255),
+ c85 VARCHAR(255), c86 VARCHAR(255), c87 VARCHAR(255), c88 VARCHAR(255),
+ c89 VARCHAR(255), c90 VARCHAR(255), c91 VARCHAR(255), c92 VARCHAR(255),
+ c93 VARCHAR(255), c94 VARCHAR(255), c95 VARCHAR(255), c96 VARCHAR(255),
+ c97 VARCHAR(255), c98 VARCHAR(255), c99 VARCHAR(255), c100 VARCHAR(255),
+ c101 VARCHAR(255), c102 VARCHAR(255), c103 VARCHAR(255), c104 VARCHAR(255),
+ c105 VARCHAR(255), c106 VARCHAR(255), c107 VARCHAR(255), c108 VARCHAR(255),
+ c109 VARCHAR(255), c110 VARCHAR(255), c111 VARCHAR(255), c112 VARCHAR(255),
+ c113 VARCHAR(255), c114 VARCHAR(255), c115 VARCHAR(255), c116 VARCHAR(255),
+ c117 VARCHAR(255), c118 VARCHAR(255), c119 VARCHAR(255), c120 VARCHAR(255),
+ c121 VARCHAR(255), c122 VARCHAR(255), c123 VARCHAR(255), c124 VARCHAR(255),
+ c125 VARCHAR(255), c126 VARCHAR(255), c127 VARCHAR(255), c128 VARCHAR(255)
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format != 'dynamic') { if ($page_size == 4096) {
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format != 'dynamic') { if ($page_size == 8192) {
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format != 'dynamic') { if ($page_size == 16384) {
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format != 'dynamic') { if ($page_size == 32768) {
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+ c21 VARCHAR(788)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format == 'redundant') { if ($page_size == 65536) {
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+ c21 VARCHAR(788)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format == 'compact') { if ($page_size == 65536) {
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+ c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
+ c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
+ c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
+ c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
+ c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
+ c41 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+ c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
+ c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
+ c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
+ c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
+ c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
+ c41 VARCHAR(788), c42 VARCHAR(788)
+) ENGINE=INNODB;
+
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format == 'dynamic') {
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+ c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
+ c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
+ c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
+ c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
+ c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
+ c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
+ c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
+ c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
+ c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
+ c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
+ c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
+ c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
+ c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
+ c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
+ c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
+ c81 VARCHAR(788), c82 VARCHAR(788)
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 VARCHAR(788), c2 VARCHAR(788), c3 VARCHAR(788), c4 VARCHAR(788),
+ c5 VARCHAR(788), c6 VARCHAR(788), c7 VARCHAR(788), c8 VARCHAR(788),
+ c9 VARCHAR(788), c10 VARCHAR(788), c11 VARCHAR(788), c12 VARCHAR(788),
+ c13 VARCHAR(788), c14 VARCHAR(788), c15 VARCHAR(788), c16 VARCHAR(788),
+ c17 VARCHAR(788), c18 VARCHAR(788), c19 VARCHAR(788), c20 VARCHAR(788),
+ c21 VARCHAR(788), c22 VARCHAR(788), c23 VARCHAR(788), c24 VARCHAR(788),
+ c25 VARCHAR(788), c26 VARCHAR(788), c27 VARCHAR(788), c28 VARCHAR(788),
+ c29 VARCHAR(788), c30 VARCHAR(788), c31 VARCHAR(788), c32 VARCHAR(788),
+ c33 VARCHAR(788), c34 VARCHAR(788), c35 VARCHAR(788), c36 VARCHAR(788),
+ c37 VARCHAR(788), c38 VARCHAR(788), c39 VARCHAR(788), c40 VARCHAR(788),
+ c41 VARCHAR(788), c42 VARCHAR(788), c43 VARCHAR(788), c44 VARCHAR(788),
+ c45 VARCHAR(788), c46 VARCHAR(788), c47 VARCHAR(788), c48 VARCHAR(788),
+ c49 VARCHAR(788), c50 VARCHAR(788), c51 VARCHAR(788), c52 VARCHAR(788),
+ c53 VARCHAR(788), c54 VARCHAR(788), c55 VARCHAR(788), c56 VARCHAR(788),
+ c57 VARCHAR(788), c58 VARCHAR(788), c59 VARCHAR(788), c60 VARCHAR(788),
+ c61 VARCHAR(788), c62 VARCHAR(788), c63 VARCHAR(788), c64 VARCHAR(788),
+ c65 VARCHAR(788), c66 VARCHAR(788), c67 VARCHAR(788), c68 VARCHAR(788),
+ c69 VARCHAR(788), c70 VARCHAR(788), c71 VARCHAR(788), c72 VARCHAR(788),
+ c73 VARCHAR(788), c74 VARCHAR(788), c75 VARCHAR(788), c76 VARCHAR(788),
+ c77 VARCHAR(788), c78 VARCHAR(788), c79 VARCHAR(788), c80 VARCHAR(788),
+ c81 VARCHAR(788), c82 VARCHAR(788), c83 VARCHAR(788)
+) ENGINE=INNODB;
+}
+
+
+if ($row_format == 'dynamic') { if ($page_size == 4096) {
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format == 'dynamic') { if ($page_size == 8192) {
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format == 'dynamic') { if ($page_size == 16384) {
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format == 'dynamic') { if ($page_size == 32768) {
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
+ c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
+ c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
+ c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
+ c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
+ c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
+ c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
+ c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
+ c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
+ c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
+ c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
+ c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
+ c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
+ c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
+ c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
+ c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
+ c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
+ c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
+ c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
+ c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
+ c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
+ c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
+ c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
+ c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
+ c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
+ c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
+ c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
+ c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
+ c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
+ c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
+ c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
+ c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
+ c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
+ c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
+ c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
+ c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
+ c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
+ c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
+ c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
+ c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
+ c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
+ c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
+ c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
+ c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
+ c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
+ c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
+ c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
+ c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
+ c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
+ c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
+ c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
+ c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
+ c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
+ c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
+ c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
+ c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
+ c771 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
+ c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
+ c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
+ c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
+ c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
+ c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
+ c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
+ c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
+ c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
+ c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
+ c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
+ c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
+ c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
+ c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
+ c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
+ c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
+ c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
+ c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
+ c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
+ c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
+ c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
+ c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
+ c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
+ c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
+ c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
+ c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
+ c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
+ c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
+ c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
+ c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
+ c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
+ c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
+ c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
+ c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
+ c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
+ c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
+ c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
+ c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
+ c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
+ c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
+ c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
+ c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
+ c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
+ c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
+ c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
+ c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
+ c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
+ c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
+ c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
+ c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
+ c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
+ c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
+ c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
+ c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
+ c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
+ c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
+ c771 TEXT, c772 TEXT
+) ENGINE=INNODB;
+} }
+
+
+if ($row_format == 'dynamic') { if ($page_size == 65536) {
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
+ c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
+ c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
+ c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
+ c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
+ c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
+ c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
+ c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
+ c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
+ c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
+ c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
+ c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
+ c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
+ c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
+ c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
+ c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
+ c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
+ c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
+ c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
+ c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
+ c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
+ c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
+ c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
+ c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
+ c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
+ c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
+ c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
+ c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
+ c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
+ c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
+ c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
+ c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
+ c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
+ c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
+ c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
+ c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
+ c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
+ c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
+ c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
+ c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
+ c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
+ c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
+ c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
+ c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
+ c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
+ c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
+ c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
+ c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
+ c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
+ c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
+ c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
+ c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
+ c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
+ c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
+ c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
+ c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
+ c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
+ c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
+ c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
+ c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
+ c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
+ c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
+ c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
+ c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
+ c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
+ c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
+ c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
+ c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
+ c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
+ c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
+ c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
+ c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
+ c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
+ c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
+ c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
+ c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
+ c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
+ c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
+ c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
+ c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
+ c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
+ c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
+ c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
+ c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
+ c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
+ c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
+ c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
+ c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
+ c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
+ c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
+ c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
+ c1016 TEXT, c1017 TEXT
+) ENGINE=INNODB;
+DROP TABLE t1;
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE t1 (
+ c1 TEXT, c2 TEXT, c3 TEXT, c4 TEXT, c5 TEXT, c6 TEXT, c7 TEXT,
+ c8 TEXT, c9 TEXT, c10 TEXT, c11 TEXT, c12 TEXT, c13 TEXT, c14 TEXT,
+ c15 TEXT, c16 TEXT, c17 TEXT, c18 TEXT, c19 TEXT, c20 TEXT, c21 TEXT,
+ c22 TEXT, c23 TEXT, c24 TEXT, c25 TEXT, c26 TEXT, c27 TEXT, c28 TEXT,
+ c29 TEXT, c30 TEXT, c31 TEXT, c32 TEXT, c33 TEXT, c34 TEXT, c35 TEXT,
+ c36 TEXT, c37 TEXT, c38 TEXT, c39 TEXT, c40 TEXT, c41 TEXT, c42 TEXT,
+ c43 TEXT, c44 TEXT, c45 TEXT, c46 TEXT, c47 TEXT, c48 TEXT, c49 TEXT,
+ c50 TEXT, c51 TEXT, c52 TEXT, c53 TEXT, c54 TEXT, c55 TEXT, c56 TEXT,
+ c57 TEXT, c58 TEXT, c59 TEXT, c60 TEXT, c61 TEXT, c62 TEXT, c63 TEXT,
+ c64 TEXT, c65 TEXT, c66 TEXT, c67 TEXT, c68 TEXT, c69 TEXT, c70 TEXT,
+ c71 TEXT, c72 TEXT, c73 TEXT, c74 TEXT, c75 TEXT, c76 TEXT, c77 TEXT,
+ c78 TEXT, c79 TEXT, c80 TEXT, c81 TEXT, c82 TEXT, c83 TEXT, c84 TEXT,
+ c85 TEXT, c86 TEXT, c87 TEXT, c88 TEXT, c89 TEXT, c90 TEXT, c91 TEXT,
+ c92 TEXT, c93 TEXT, c94 TEXT, c95 TEXT, c96 TEXT, c97 TEXT, c98 TEXT,
+ c99 TEXT, c100 TEXT, c101 TEXT, c102 TEXT, c103 TEXT, c104 TEXT, c105 TEXT,
+ c106 TEXT, c107 TEXT, c108 TEXT, c109 TEXT, c110 TEXT, c111 TEXT, c112 TEXT,
+ c113 TEXT, c114 TEXT, c115 TEXT, c116 TEXT, c117 TEXT, c118 TEXT, c119 TEXT,
+ c120 TEXT, c121 TEXT, c122 TEXT, c123 TEXT, c124 TEXT, c125 TEXT, c126 TEXT,
+ c127 TEXT, c128 TEXT, c129 TEXT, c130 TEXT, c131 TEXT, c132 TEXT, c133 TEXT,
+ c134 TEXT, c135 TEXT, c136 TEXT, c137 TEXT, c138 TEXT, c139 TEXT, c140 TEXT,
+ c141 TEXT, c142 TEXT, c143 TEXT, c144 TEXT, c145 TEXT, c146 TEXT, c147 TEXT,
+ c148 TEXT, c149 TEXT, c150 TEXT, c151 TEXT, c152 TEXT, c153 TEXT, c154 TEXT,
+ c155 TEXT, c156 TEXT, c157 TEXT, c158 TEXT, c159 TEXT, c160 TEXT, c161 TEXT,
+ c162 TEXT, c163 TEXT, c164 TEXT, c165 TEXT, c166 TEXT, c167 TEXT, c168 TEXT,
+ c169 TEXT, c170 TEXT, c171 TEXT, c172 TEXT, c173 TEXT, c174 TEXT, c175 TEXT,
+ c176 TEXT, c177 TEXT, c178 TEXT, c179 TEXT, c180 TEXT, c181 TEXT, c182 TEXT,
+ c183 TEXT, c184 TEXT, c185 TEXT, c186 TEXT, c187 TEXT, c188 TEXT, c189 TEXT,
+ c190 TEXT, c191 TEXT, c192 TEXT, c193 TEXT, c194 TEXT, c195 TEXT, c196 TEXT,
+ c197 TEXT, c198 TEXT, c199 TEXT, c200 TEXT, c201 TEXT, c202 TEXT, c203 TEXT,
+ c204 TEXT, c205 TEXT, c206 TEXT, c207 TEXT, c208 TEXT, c209 TEXT, c210 TEXT,
+ c211 TEXT, c212 TEXT, c213 TEXT, c214 TEXT, c215 TEXT, c216 TEXT, c217 TEXT,
+ c218 TEXT, c219 TEXT, c220 TEXT, c221 TEXT, c222 TEXT, c223 TEXT, c224 TEXT,
+ c225 TEXT, c226 TEXT, c227 TEXT, c228 TEXT, c229 TEXT, c230 TEXT, c231 TEXT,
+ c232 TEXT, c233 TEXT, c234 TEXT, c235 TEXT, c236 TEXT, c237 TEXT, c238 TEXT,
+ c239 TEXT, c240 TEXT, c241 TEXT, c242 TEXT, c243 TEXT, c244 TEXT, c245 TEXT,
+ c246 TEXT, c247 TEXT, c248 TEXT, c249 TEXT, c250 TEXT, c251 TEXT, c252 TEXT,
+ c253 TEXT, c254 TEXT, c255 TEXT, c256 TEXT, c257 TEXT, c258 TEXT, c259 TEXT,
+ c260 TEXT, c261 TEXT, c262 TEXT, c263 TEXT, c264 TEXT, c265 TEXT, c266 TEXT,
+ c267 TEXT, c268 TEXT, c269 TEXT, c270 TEXT, c271 TEXT, c272 TEXT, c273 TEXT,
+ c274 TEXT, c275 TEXT, c276 TEXT, c277 TEXT, c278 TEXT, c279 TEXT, c280 TEXT,
+ c281 TEXT, c282 TEXT, c283 TEXT, c284 TEXT, c285 TEXT, c286 TEXT, c287 TEXT,
+ c288 TEXT, c289 TEXT, c290 TEXT, c291 TEXT, c292 TEXT, c293 TEXT, c294 TEXT,
+ c295 TEXT, c296 TEXT, c297 TEXT, c298 TEXT, c299 TEXT, c300 TEXT, c301 TEXT,
+ c302 TEXT, c303 TEXT, c304 TEXT, c305 TEXT, c306 TEXT, c307 TEXT, c308 TEXT,
+ c309 TEXT, c310 TEXT, c311 TEXT, c312 TEXT, c313 TEXT, c314 TEXT, c315 TEXT,
+ c316 TEXT, c317 TEXT, c318 TEXT, c319 TEXT, c320 TEXT, c321 TEXT, c322 TEXT,
+ c323 TEXT, c324 TEXT, c325 TEXT, c326 TEXT, c327 TEXT, c328 TEXT, c329 TEXT,
+ c330 TEXT, c331 TEXT, c332 TEXT, c333 TEXT, c334 TEXT, c335 TEXT, c336 TEXT,
+ c337 TEXT, c338 TEXT, c339 TEXT, c340 TEXT, c341 TEXT, c342 TEXT, c343 TEXT,
+ c344 TEXT, c345 TEXT, c346 TEXT, c347 TEXT, c348 TEXT, c349 TEXT, c350 TEXT,
+ c351 TEXT, c352 TEXT, c353 TEXT, c354 TEXT, c355 TEXT, c356 TEXT, c357 TEXT,
+ c358 TEXT, c359 TEXT, c360 TEXT, c361 TEXT, c362 TEXT, c363 TEXT, c364 TEXT,
+ c365 TEXT, c366 TEXT, c367 TEXT, c368 TEXT, c369 TEXT, c370 TEXT, c371 TEXT,
+ c372 TEXT, c373 TEXT, c374 TEXT, c375 TEXT, c376 TEXT, c377 TEXT, c378 TEXT,
+ c379 TEXT, c380 TEXT, c381 TEXT, c382 TEXT, c383 TEXT, c384 TEXT, c385 TEXT,
+ c386 TEXT, c387 TEXT, c388 TEXT, c389 TEXT, c390 TEXT, c391 TEXT, c392 TEXT,
+ c393 TEXT, c394 TEXT, c395 TEXT, c396 TEXT, c397 TEXT, c398 TEXT, c399 TEXT,
+ c400 TEXT, c401 TEXT, c402 TEXT, c403 TEXT, c404 TEXT, c405 TEXT, c406 TEXT,
+ c407 TEXT, c408 TEXT, c409 TEXT, c410 TEXT, c411 TEXT, c412 TEXT, c413 TEXT,
+ c414 TEXT, c415 TEXT, c416 TEXT, c417 TEXT, c418 TEXT, c419 TEXT, c420 TEXT,
+ c421 TEXT, c422 TEXT, c423 TEXT, c424 TEXT, c425 TEXT, c426 TEXT, c427 TEXT,
+ c428 TEXT, c429 TEXT, c430 TEXT, c431 TEXT, c432 TEXT, c433 TEXT, c434 TEXT,
+ c435 TEXT, c436 TEXT, c437 TEXT, c438 TEXT, c439 TEXT, c440 TEXT, c441 TEXT,
+ c442 TEXT, c443 TEXT, c444 TEXT, c445 TEXT, c446 TEXT, c447 TEXT, c448 TEXT,
+ c449 TEXT, c450 TEXT, c451 TEXT, c452 TEXT, c453 TEXT, c454 TEXT, c455 TEXT,
+ c456 TEXT, c457 TEXT, c458 TEXT, c459 TEXT, c460 TEXT, c461 TEXT, c462 TEXT,
+ c463 TEXT, c464 TEXT, c465 TEXT, c466 TEXT, c467 TEXT, c468 TEXT, c469 TEXT,
+ c470 TEXT, c471 TEXT, c472 TEXT, c473 TEXT, c474 TEXT, c475 TEXT, c476 TEXT,
+ c477 TEXT, c478 TEXT, c479 TEXT, c480 TEXT, c481 TEXT, c482 TEXT, c483 TEXT,
+ c484 TEXT, c485 TEXT, c486 TEXT, c487 TEXT, c488 TEXT, c489 TEXT, c490 TEXT,
+ c491 TEXT, c492 TEXT, c493 TEXT, c494 TEXT, c495 TEXT, c496 TEXT, c497 TEXT,
+ c498 TEXT, c499 TEXT, c500 TEXT, c501 TEXT, c502 TEXT, c503 TEXT, c504 TEXT,
+ c505 TEXT, c506 TEXT, c507 TEXT, c508 TEXT, c509 TEXT, c510 TEXT, c511 TEXT,
+ c512 TEXT, c513 TEXT, c514 TEXT, c515 TEXT, c516 TEXT, c517 TEXT, c518 TEXT,
+ c519 TEXT, c520 TEXT, c521 TEXT, c522 TEXT, c523 TEXT, c524 TEXT, c525 TEXT,
+ c526 TEXT, c527 TEXT, c528 TEXT, c529 TEXT, c530 TEXT, c531 TEXT, c532 TEXT,
+ c533 TEXT, c534 TEXT, c535 TEXT, c536 TEXT, c537 TEXT, c538 TEXT, c539 TEXT,
+ c540 TEXT, c541 TEXT, c542 TEXT, c543 TEXT, c544 TEXT, c545 TEXT, c546 TEXT,
+ c547 TEXT, c548 TEXT, c549 TEXT, c550 TEXT, c551 TEXT, c552 TEXT, c553 TEXT,
+ c554 TEXT, c555 TEXT, c556 TEXT, c557 TEXT, c558 TEXT, c559 TEXT, c560 TEXT,
+ c561 TEXT, c562 TEXT, c563 TEXT, c564 TEXT, c565 TEXT, c566 TEXT, c567 TEXT,
+ c568 TEXT, c569 TEXT, c570 TEXT, c571 TEXT, c572 TEXT, c573 TEXT, c574 TEXT,
+ c575 TEXT, c576 TEXT, c577 TEXT, c578 TEXT, c579 TEXT, c580 TEXT, c581 TEXT,
+ c582 TEXT, c583 TEXT, c584 TEXT, c585 TEXT, c586 TEXT, c587 TEXT, c588 TEXT,
+ c589 TEXT, c590 TEXT, c591 TEXT, c592 TEXT, c593 TEXT, c594 TEXT, c595 TEXT,
+ c596 TEXT, c597 TEXT, c598 TEXT, c599 TEXT, c600 TEXT, c601 TEXT, c602 TEXT,
+ c603 TEXT, c604 TEXT, c605 TEXT, c606 TEXT, c607 TEXT, c608 TEXT, c609 TEXT,
+ c610 TEXT, c611 TEXT, c612 TEXT, c613 TEXT, c614 TEXT, c615 TEXT, c616 TEXT,
+ c617 TEXT, c618 TEXT, c619 TEXT, c620 TEXT, c621 TEXT, c622 TEXT, c623 TEXT,
+ c624 TEXT, c625 TEXT, c626 TEXT, c627 TEXT, c628 TEXT, c629 TEXT, c630 TEXT,
+ c631 TEXT, c632 TEXT, c633 TEXT, c634 TEXT, c635 TEXT, c636 TEXT, c637 TEXT,
+ c638 TEXT, c639 TEXT, c640 TEXT, c641 TEXT, c642 TEXT, c643 TEXT, c644 TEXT,
+ c645 TEXT, c646 TEXT, c647 TEXT, c648 TEXT, c649 TEXT, c650 TEXT, c651 TEXT,
+ c652 TEXT, c653 TEXT, c654 TEXT, c655 TEXT, c656 TEXT, c657 TEXT, c658 TEXT,
+ c659 TEXT, c660 TEXT, c661 TEXT, c662 TEXT, c663 TEXT, c664 TEXT, c665 TEXT,
+ c666 TEXT, c667 TEXT, c668 TEXT, c669 TEXT, c670 TEXT, c671 TEXT, c672 TEXT,
+ c673 TEXT, c674 TEXT, c675 TEXT, c676 TEXT, c677 TEXT, c678 TEXT, c679 TEXT,
+ c680 TEXT, c681 TEXT, c682 TEXT, c683 TEXT, c684 TEXT, c685 TEXT, c686 TEXT,
+ c687 TEXT, c688 TEXT, c689 TEXT, c690 TEXT, c691 TEXT, c692 TEXT, c693 TEXT,
+ c694 TEXT, c695 TEXT, c696 TEXT, c697 TEXT, c698 TEXT, c699 TEXT, c700 TEXT,
+ c701 TEXT, c702 TEXT, c703 TEXT, c704 TEXT, c705 TEXT, c706 TEXT, c707 TEXT,
+ c708 TEXT, c709 TEXT, c710 TEXT, c711 TEXT, c712 TEXT, c713 TEXT, c714 TEXT,
+ c715 TEXT, c716 TEXT, c717 TEXT, c718 TEXT, c719 TEXT, c720 TEXT, c721 TEXT,
+ c722 TEXT, c723 TEXT, c724 TEXT, c725 TEXT, c726 TEXT, c727 TEXT, c728 TEXT,
+ c729 TEXT, c730 TEXT, c731 TEXT, c732 TEXT, c733 TEXT, c734 TEXT, c735 TEXT,
+ c736 TEXT, c737 TEXT, c738 TEXT, c739 TEXT, c740 TEXT, c741 TEXT, c742 TEXT,
+ c743 TEXT, c744 TEXT, c745 TEXT, c746 TEXT, c747 TEXT, c748 TEXT, c749 TEXT,
+ c750 TEXT, c751 TEXT, c752 TEXT, c753 TEXT, c754 TEXT, c755 TEXT, c756 TEXT,
+ c757 TEXT, c758 TEXT, c759 TEXT, c760 TEXT, c761 TEXT, c762 TEXT, c763 TEXT,
+ c764 TEXT, c765 TEXT, c766 TEXT, c767 TEXT, c768 TEXT, c769 TEXT, c770 TEXT,
+ c771 TEXT, c772 TEXT, c773 TEXT, c774 TEXT, c775 TEXT, c776 TEXT, c777 TEXT,
+ c778 TEXT, c779 TEXT, c780 TEXT, c781 TEXT, c782 TEXT, c783 TEXT, c784 TEXT,
+ c785 TEXT, c786 TEXT, c787 TEXT, c788 TEXT, c789 TEXT, c790 TEXT, c791 TEXT,
+ c792 TEXT, c793 TEXT, c794 TEXT, c795 TEXT, c796 TEXT, c797 TEXT, c798 TEXT,
+ c799 TEXT, c800 TEXT, c801 TEXT, c802 TEXT, c803 TEXT, c804 TEXT, c805 TEXT,
+ c806 TEXT, c807 TEXT, c808 TEXT, c809 TEXT, c810 TEXT, c811 TEXT, c812 TEXT,
+ c813 TEXT, c814 TEXT, c815 TEXT, c816 TEXT, c817 TEXT, c818 TEXT, c819 TEXT,
+ c820 TEXT, c821 TEXT, c822 TEXT, c823 TEXT, c824 TEXT, c825 TEXT, c826 TEXT,
+ c827 TEXT, c828 TEXT, c829 TEXT, c830 TEXT, c831 TEXT, c832 TEXT, c833 TEXT,
+ c834 TEXT, c835 TEXT, c836 TEXT, c837 TEXT, c838 TEXT, c839 TEXT, c840 TEXT,
+ c841 TEXT, c842 TEXT, c843 TEXT, c844 TEXT, c845 TEXT, c846 TEXT, c847 TEXT,
+ c848 TEXT, c849 TEXT, c850 TEXT, c851 TEXT, c852 TEXT, c853 TEXT, c854 TEXT,
+ c855 TEXT, c856 TEXT, c857 TEXT, c858 TEXT, c859 TEXT, c860 TEXT, c861 TEXT,
+ c862 TEXT, c863 TEXT, c864 TEXT, c865 TEXT, c866 TEXT, c867 TEXT, c868 TEXT,
+ c869 TEXT, c870 TEXT, c871 TEXT, c872 TEXT, c873 TEXT, c874 TEXT, c875 TEXT,
+ c876 TEXT, c877 TEXT, c878 TEXT, c879 TEXT, c880 TEXT, c881 TEXT, c882 TEXT,
+ c883 TEXT, c884 TEXT, c885 TEXT, c886 TEXT, c887 TEXT, c888 TEXT, c889 TEXT,
+ c890 TEXT, c891 TEXT, c892 TEXT, c893 TEXT, c894 TEXT, c895 TEXT, c896 TEXT,
+ c897 TEXT, c898 TEXT, c899 TEXT, c900 TEXT, c901 TEXT, c902 TEXT, c903 TEXT,
+ c904 TEXT, c905 TEXT, c906 TEXT, c907 TEXT, c908 TEXT, c909 TEXT, c910 TEXT,
+ c911 TEXT, c912 TEXT, c913 TEXT, c914 TEXT, c915 TEXT, c916 TEXT, c917 TEXT,
+ c918 TEXT, c919 TEXT, c920 TEXT, c921 TEXT, c922 TEXT, c923 TEXT, c924 TEXT,
+ c925 TEXT, c926 TEXT, c927 TEXT, c928 TEXT, c929 TEXT, c930 TEXT, c931 TEXT,
+ c932 TEXT, c933 TEXT, c934 TEXT, c935 TEXT, c936 TEXT, c937 TEXT, c938 TEXT,
+ c939 TEXT, c940 TEXT, c941 TEXT, c942 TEXT, c943 TEXT, c944 TEXT, c945 TEXT,
+ c946 TEXT, c947 TEXT, c948 TEXT, c949 TEXT, c950 TEXT, c951 TEXT, c952 TEXT,
+ c953 TEXT, c954 TEXT, c955 TEXT, c956 TEXT, c957 TEXT, c958 TEXT, c959 TEXT,
+ c960 TEXT, c961 TEXT, c962 TEXT, c963 TEXT, c964 TEXT, c965 TEXT, c966 TEXT,
+ c967 TEXT, c968 TEXT, c969 TEXT, c970 TEXT, c971 TEXT, c972 TEXT, c973 TEXT,
+ c974 TEXT, c975 TEXT, c976 TEXT, c977 TEXT, c978 TEXT, c979 TEXT, c980 TEXT,
+ c981 TEXT, c982 TEXT, c983 TEXT, c984 TEXT, c985 TEXT, c986 TEXT, c987 TEXT,
+ c988 TEXT, c989 TEXT, c990 TEXT, c991 TEXT, c992 TEXT, c993 TEXT, c994 TEXT,
+ c995 TEXT, c996 TEXT, c997 TEXT, c998 TEXT, c999 TEXT, c1000 TEXT, c1001 TEXT,
+ c1002 TEXT, c1003 TEXT, c1004 TEXT, c1005 TEXT, c1006 TEXT, c1007 TEXT, c1008 TEXT,
+ c1009 TEXT, c1010 TEXT, c1011 TEXT, c1012 TEXT, c1013 TEXT, c1014 TEXT, c1015 TEXT,
+ c1016 TEXT, c1017 TEXT, c1018 TEXT
+) ENGINE=INNODB;
+} }
diff --git a/mysql-test/suite/innodb/t/missing_tablespaces.test b/mysql-test/suite/innodb/t/missing_tablespaces.test
new file mode 100644
index 00000000000..b4da9745ba4
--- /dev/null
+++ b/mysql-test/suite/innodb/t/missing_tablespaces.test
@@ -0,0 +1,37 @@
+--source include/have_innodb.inc
+
+#Restarting not supported in embedded
+--source include/not_embedded.inc
+#Windows has trouble creating files/directories with long names
+--source include/not_windows.inc
+
+--echo #
+--echo # Bug#19419026 WHEN A TABLESPACE IS NOT FOUND, DO NOT REPORT "TABLE NOT FOUND"
+--echo #
+
+#Create database and tablename with all special characters
+
+CREATE DATABASE `..................................................`;
+USE `..................................................`;
+CREATE TABLE `..................................................` (ID INT)
+ENGINE=INNODB;
+
+let $restart_noprint=2;
+--source include/shutdown_mysqld.inc
+
+--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e/@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e@002e.ibd
+
+--source include/start_mysqld.inc
+
+--disable_query_log
+call mtr.add_suppression("\\[ERROR\\] InnoDB: Operating system error number 2 in a file operation.");
+call mtr.add_suppression("\\[ERROR\\] InnoDB: The error means the system cannot find the path specified.");
+call mtr.add_suppression("\\[ERROR\\] InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them.");
+call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot open datafile for read-only");
+call mtr.add_suppression("\\[Warning\\] InnoDB: Ignoring tablespace .* because it could not be opened");
+--enable_query_log
+
+--error ER_GET_ERRNO
+select * from `..................................................`;
+DROP TABLE `..................................................`;
+DROP DATABASE `..................................................`;
diff --git a/mysql-test/suite/innodb/t/page_id_innochecksum.test b/mysql-test/suite/innodb/t/page_id_innochecksum.test
new file mode 100644
index 00000000000..807185437d5
--- /dev/null
+++ b/mysql-test/suite/innodb/t/page_id_innochecksum.test
@@ -0,0 +1,54 @@
+--source include/have_innodb.inc
+--source include/not_embedded.inc
+--echo # Set the environmental variables
+let MYSQLD_BASEDIR= `SELECT @@basedir`;
+let MYSQLD_DATADIR= `SELECT @@datadir`;
+let INNODB_PAGE_SIZE=`select @@innodb_page_size`;
+
+create table t1(f1 int not null)engine=innodb;
+insert into t1 values(1), (2), (3);
+let $resultlog=$MYSQLTEST_VARDIR/tmp/result.log;
+
+let $restart_noprint=2;
+--source include/shutdown_mysqld.inc
+--echo # Change the page offset
+perl;
+use strict;
+use warnings;
+use Fcntl qw(:DEFAULT :seek);
+do "$ENV{MTR_SUITE_DIR}/../innodb/include/crc32.pl";
+
+my $page_size = $ENV{INNODB_PAGE_SIZE};
+
+sysopen IBD_FILE, "$ENV{MYSQLD_DATADIR}/test/t1.ibd", O_RDWR
+|| die "Cannot open t1.ibd\n";
+sysread(IBD_FILE, $_, 38) || die "Cannot read t1.ibd\n";
+my $space = unpack("x[34]N", $_);
+sysseek(IBD_FILE, $page_size * 3, SEEK_SET) || die "Cannot seek t1.ibd\n";
+
+my $head = pack("Nx[18]", 4); # better to have a valid page number
+my $body = chr(0) x ($page_size - 38 - 8);
+
+# Calculate innodb_checksum_algorithm=crc32 for the unencrypted page.
+# The following bytes are excluded:
+# bytes 0..3 (the checksum is stored there)
+# bytes 26..37 (encryption key version, post-encryption checksum, tablespace id)
+# bytes $page_size-8..$page_size-1 (checksum, LSB of FIL_PAGE_LSN)
+my $polynomial = 0x82f63b78; # CRC-32C
+my $ck = mycrc32($head, 0, $polynomial) ^ mycrc32($body, 0, $polynomial);
+
+my $page= pack("N",$ck).$head.pack("NNN",1,$ck,$space).$body.pack("Nx[4]",$ck);
+die unless syswrite(IBD_FILE, $page, $page_size) == $page_size;
+close IBD_FILE;
+EOF
+
+--error 1
+exec $INNOCHECKSUM -C crc32 -l $resultlog $MYSQLD_DATADIR/test/t1.ibd;
+
+let SEARCH_FILE = $MYSQLTEST_VARDIR/tmp/result.log;
+let SEARCH_PATTERN=page id mismatch;
+--source include/search_pattern_in_file.inc
+
+--remove_file $resultlog
+--source include/start_mysqld.inc
+drop table t1;
diff --git a/mysql-test/suite/innodb/t/purge.test b/mysql-test/suite/innodb/t/purge.test
new file mode 100644
index 00000000000..63312e50fd8
--- /dev/null
+++ b/mysql-test/suite/innodb/t/purge.test
@@ -0,0 +1,117 @@
+--source include/have_innodb.inc
+--source include/have_innodb_16k.inc
+
+SET @save_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
+SET GLOBAL innodb_purge_rseg_truncate_frequency=1;
+
+--echo # Bug #12429576 - Test an assertion failure on purge.
+CREATE TABLE t1_purge (
+A int,
+B blob, C blob, D blob, E blob,
+F blob, G blob, H blob,
+PRIMARY KEY (B(767), C(767), D(767), E(767), A),
+INDEX (A)
+) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+
+INSERT INTO t1_purge VALUES (1,
+REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
+REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766));
+
+CREATE TABLE t2_purge (
+A int PRIMARY KEY,
+B blob, C blob, D blob, E blob,
+F blob, G blob, H blob, I blob,
+J blob, K blob, L blob,
+INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+
+INSERT INTO t2_purge VALUES (1,
+REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
+REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766), REPEAT('i', 766),
+REPEAT('j', 766), REPEAT('k', 766), REPEAT('l', 766));
+
+CREATE TABLE t3_purge (
+A int,
+B varchar(800), C varchar(800), D varchar(800), E varchar(800),
+F varchar(800), G varchar(800), H varchar(800),
+PRIMARY KEY (B(767), C(767), D(767), E(767), A),
+INDEX (A)
+) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+
+INSERT INTO t3_purge SELECT * FROM t1_purge;
+
+CREATE TABLE t4_purge (
+A int PRIMARY KEY,
+B varchar(800), C varchar(800), D varchar(800), E varchar(800),
+F varchar(800), G varchar(800), H varchar(800), I varchar(800),
+J varchar(800), K varchar(800), L varchar(800),
+INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+
+INSERT INTO t4_purge SELECT * FROM t2_purge;
+
+# This would trigger the failure (Bug #12429576)
+# if purge gets a chance to run before DROP TABLE t1_purge, ....
+DELETE FROM t1_purge;
+DELETE FROM t2_purge;
+DELETE FROM t3_purge;
+DELETE FROM t4_purge;
+# We need to activate the purge thread before DROP TABLE.
+
+# Bug#12637786 - Assertion hit; ut_ad(dict_index_is_clust(index));
+# A secondary index tuple is found to be too long to fit into a page.
+# This test is not in innodb_8k or innodb_4k since the bug is not about
+# page size. It just tests the condition that caused the assertion.
+SET @r=REPEAT('a',500);
+CREATE TABLE t12637786(a int,
+ v1 varchar(500), v2 varchar(500), v3 varchar(500),
+ v4 varchar(500), v5 varchar(500), v6 varchar(500),
+ v7 varchar(500), v8 varchar(500), v9 varchar(500),
+ v10 varchar(500), v11 varchar(500), v12 varchar(500),
+ v13 varchar(500), v14 varchar(500), v15 varchar(500),
+ v16 varchar(500), v17 varchar(500), v18 varchar(500)
+) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+CREATE INDEX idx1 ON t12637786(a,v1);
+INSERT INTO t12637786 VALUES(9,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+UPDATE t12637786 SET a=1000;
+DELETE FROM t12637786;
+# We need to activate the purge thread before DROP TABLE
+# to make sure it is able to clean up the old versions.
+
+--echo # Bug#12963823 - Test that the purge thread does not crash when
+# the number of indexes has changed since the UNDO record was logged.
+# This test is not in innodb_8k or innodb_4k since the bug is not about
+# page size. It just tests the condition that caused the crash.
+CREATE TABLE t12963823(a blob,b blob,c blob,d blob,e blob,f blob,g blob,h blob,
+ i blob,j blob,k blob,l blob,m blob,n blob,o blob,p blob)
+ ENGINE=innodb ROW_FORMAT=dynamic;
+SET @r = REPEAT('a', 767);
+INSERT INTO t12963823 VALUES (@r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r);
+CREATE INDEX ndx_a ON t12963823 (a(500));
+CREATE INDEX ndx_b ON t12963823 (b(500));
+CREATE INDEX ndx_c ON t12963823 (c(500));
+CREATE INDEX ndx_d ON t12963823 (d(500));
+CREATE INDEX ndx_e ON t12963823 (e(500));
+CREATE INDEX ndx_f ON t12963823 (f(500));
+CREATE INDEX ndx_k ON t12963823 (k(500));
+CREATE INDEX ndx_l ON t12963823 (l(500));
+
+SET @r = REPEAT('b', 500);
+UPDATE t12963823 set a=@r,b=@r,c=@r,d=@r;
+UPDATE t12963823 set e=@r,f=@r,g=@r,h=@r;
+UPDATE t12963823 set i=@r,j=@r,k=@r,l=@r;
+UPDATE t12963823 set m=@r,n=@r,o=@r,p=@r;
+ALTER TABLE t12963823 DROP INDEX ndx_a;
+ALTER TABLE t12963823 DROP INDEX ndx_b;
+CREATE INDEX ndx_g ON t12963823 (g(500));
+CREATE INDEX ndx_h ON t12963823 (h(500));
+CREATE INDEX ndx_i ON t12963823 (i(500));
+CREATE INDEX ndx_j ON t12963823 (j(500));
+CREATE INDEX ndx_m ON t12963823 (m(500));
+CREATE INDEX ndx_n ON t12963823 (n(500));
+CREATE INDEX ndx_o ON t12963823 (o(500));
+CREATE INDEX ndx_p ON t12963823 (p(500));
+SHOW CREATE TABLE t12963823;
+# We need to activate the purge thread before DROP TABLE.
+
+-- source include/wait_all_purged.inc
+DROP TABLE t1_purge, t2_purge, t3_purge, t4_purge, t12637786, t12963823;
+SET GLOBAL innodb_purge_rseg_truncate_frequency=@save_frequency;
diff --git a/mysql-test/suite/innodb/t/strict_mode.test b/mysql-test/suite/innodb/t/strict_mode.test
index e93b4cc9df9..9154d6b73ae 100644
--- a/mysql-test/suite/innodb/t/strict_mode.test
+++ b/mysql-test/suite/innodb/t/strict_mode.test
@@ -238,7 +238,162 @@ col224 text,
col225 text,
col226 text,
col227 text,
-col228 text
+col228 text,
+col229 text,
+col230 text,
+col231 text,
+col232 text,
+col233 text,
+col234 text,
+col235 text,
+col236 text,
+col237 text,
+col238 text,
+col239 text,
+col240 text,
+col241 text,
+col242 text,
+col243 text,
+col244 text,
+col245 text,
+col246 text,
+col247 text,
+col248 text,
+col249 text,
+col250 text,
+col251 text,
+col252 text,
+col253 text,
+col254 text,
+col255 text,
+col256 text,
+col257 text,
+col258 text,
+col259 text,
+col260 text,
+col261 text,
+col262 text,
+col263 text,
+col264 text,
+col265 text,
+col266 text,
+col267 text,
+col268 text,
+col269 text,
+col270 text,
+col271 text,
+col272 text,
+col273 text,
+col274 text,
+col275 text,
+col276 text,
+col277 text,
+col278 text,
+col279 text,
+col280 text,
+col281 text,
+col282 text,
+col283 text,
+col284 text,
+col285 text,
+col286 text,
+col287 text,
+col288 text,
+col289 text,
+col290 text,
+col291 text,
+col292 text,
+col293 text,
+col294 text,
+col295 text,
+col296 text,
+col297 text,
+col298 text,
+col299 text,
+col300 text,
+col301 text,
+col302 text,
+col303 text,
+col304 text,
+col305 text,
+col306 text,
+col307 text,
+col308 text,
+col309 text,
+col310 text,
+col311 text,
+col312 text,
+col313 text,
+col314 text,
+col315 text,
+col316 text,
+col317 text,
+col318 text,
+col319 text,
+col320 text,
+col321 text,
+col322 text,
+col323 text,
+col324 text,
+col325 text,
+col326 text,
+col327 text,
+col328 text,
+col329 text,
+col330 text,
+col331 text,
+col332 text,
+col333 text,
+col334 text,
+col335 text,
+col336 text,
+col337 text,
+col338 text,
+col339 text,
+col340 text,
+col341 text,
+col342 text,
+col343 text,
+col344 text,
+col345 text,
+col346 text,
+col347 text,
+col348 text,
+col349 text,
+col350 text,
+col351 text,
+col352 text,
+col353 text,
+col354 text,
+col355 text,
+col356 text,
+col357 text,
+col358 text,
+col359 text,
+col360 text,
+col361 text,
+col362 text,
+col363 text,
+col364 text,
+col365 text,
+col366 text,
+col367 text,
+col368 text,
+col369 text,
+col370 text,
+col371 text,
+col372 text,
+col373 text,
+col374 text,
+col375 text,
+col376 text,
+col377 text,
+col378 text,
+col379 text,
+col380 text,
+col381 text,
+col382 text,
+col383 text
) ENGINE=InnoDB;
set innodb_strict_mode = 1;
diff --git a/mysql-test/suite/innodb/t/truncate_missing.test b/mysql-test/suite/innodb/t/truncate_missing.test
index 832b94e3a19..c357f5bae72 100644
--- a/mysql-test/suite/innodb/t/truncate_missing.test
+++ b/mysql-test/suite/innodb/t/truncate_missing.test
@@ -15,8 +15,8 @@ let $datadir=`select @@datadir`;
--remove_file $datadir/test/t.ibd
--source include/start_mysqld.inc
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
SELECT * FROM t;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
TRUNCATE TABLE t;
DROP TABLE t;
diff --git a/mysql-test/suite/innodb/t/trx_id_future.test b/mysql-test/suite/innodb/t/trx_id_future.test
new file mode 100644
index 00000000000..564d36f9cfa
--- /dev/null
+++ b/mysql-test/suite/innodb/t/trx_id_future.test
@@ -0,0 +1,59 @@
+--echo #
+--echo # Bug #20445525 ADD A CONSISTENCY CHECK AGAINST DB_TRX_ID BEING
+--echo # IN THE FUTURE
+--echo #
+
+--source include/not_debug.inc
+--source include/have_innodb.inc
+--source include/not_embedded.inc
+
+let PAGE_SIZE=`select @@innodb_page_size`;
+
+CREATE TABLE t1(a INT) row_format=redundant engine=innoDB;
+INSERT INTO t1 VALUES(1);
+
+let MYSQLD_DATADIR=`select @@datadir`;
+let $restart_noprint=2;
+
+--source include/shutdown_mysqld.inc
+
+perl;
+do "$ENV{MTR_SUITE_DIR}/include/crc32.pl";
+my $file = "$ENV{MYSQLD_DATADIR}/test/t1.ibd";
+open(FILE, "+<", $file) || die "Unable to open $file";
+binmode FILE;
+
+#Seek the the infimum record and get the offset to next record
+#Infimum record exist at offset 101 for redundant format
+#And offset to the next record is present 2 bytes prior to
+#infimum record
+
+my $ps= $ENV{PAGE_SIZE};
+my $page;
+sysseek(FILE, 3*$ps, 0) || die "Unable to seek $file\n";
+die "Unable to read $file" unless sysread(FILE, $page, $ps) == $ps;
+#In this case the first record should be at offset 135
+die unless unpack("n", substr($page, 99, 2)) == 135;
+
+substr($page,135+6,6) = "\xff" x 6;
+
+my $polynomial = 0x82f63b78; # CRC-32C
+my $ck= pack("N",mycrc32(substr($page, 4, 22), 0, $polynomial) ^
+ mycrc32(substr($page, 38, $ps - 38 - 8), 0, $polynomial));
+substr($page,0,4)=$ck;
+substr($page,$ps-8,4)=$ck;
+sysseek(FILE, 3*$ps, 0) || die "Unable to rewind $file\n";
+syswrite(FILE, $page, $ps)==$ps || die "Unable to write $file\n";
+close(FILE) || die "Unable to close $file";
+EOF
+
+--source include/start_mysqld.inc
+
+let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
+let SEARCH_PATTERN= \[Warning\] InnoDB: A transaction id in a record of table `test`\.`t1` is newer than the system-wide maximum;
+--source include/search_pattern_in_file.inc
+
+call mtr.add_suppression("\\[Warning\\] InnoDB: A transaction id in a record of table `test`\\.`t1` is newer than the system-wide maximum");
+
+SELECT * FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/undo_log.test b/mysql-test/suite/innodb/t/undo_log.test
index 1f4cf9702d9..94322868b06 100644
--- a/mysql-test/suite/innodb/t/undo_log.test
+++ b/mysql-test/suite/innodb/t/undo_log.test
@@ -1,4 +1,8 @@
--source include/have_innodb.inc
+
+call mtr.add_suppression("Cannot add field `b_str_20` in table `test`.`test_tab` because after adding it, the row size is");
+
+SET innodb_strict_mode=OFF;
CREATE TABLE test_tab (
a_str_18 mediumtext,
b_str_3 varchar(32) DEFAULT NULL,
@@ -124,6 +128,7 @@ KEY b_str_5 (b_str_5),
KEY b_str_31 (b_str_31),
KEY a_ref_11 (a_ref_11)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
+SET innodb_strict_mode=ON;
BEGIN;
INSERT INTO test_tab (b_str_26, a_str_13, a_str_18) VALUES
diff --git a/mysql-test/suite/innodb_fts/r/fulltext2.result b/mysql-test/suite/innodb_fts/r/fulltext2.result
index 9376d088244..b210b3bd874 100644
--- a/mysql-test/suite/innodb_fts/r/fulltext2.result
+++ b/mysql-test/suite/innodb_fts/r/fulltext2.result
@@ -241,3 +241,34 @@ a
„MySQL“
DROP TABLE t1;
SET NAMES latin1;
+CREATE TABLE t1 (
+FTS_DOC_ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+id int(10) not null ,
+first_name varchar(50) NOT NULL,
+last_name varchar(50) NOT NULL,
+PRIMARY KEY (FTS_DOC_ID),
+UNIQUE KEY idx_1 (first_name, last_name),
+FULLTEXT KEY `idx_2` (first_name)
+) ENGINE=InnoDB;
+INSERT INTO t1 (id, first_name, last_name) VALUES
+(10, 'Bart', 'Simpson'),
+(11, 'Homer', 'Simpson'),
+(12, 'Marge', 'Simpson'),
+(13, 'Lisa', 'Simpson'),
+(14, 'Maggie', 'Simpson'),
+(15, 'Ned', 'Flanders'),
+(16, 'Nelson', 'Muntz');
+analyze table t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+SELECT fts_doc_id, first_name, last_name, MATCH(first_name) AGAINST('Homer' IN BOOLEAN MODE) AS score FROM t1;
+fts_doc_id first_name last_name score
+1 Bart Simpson 0
+2 Homer Simpson 0.7141907215118408
+4 Lisa Simpson 0
+5 Maggie Simpson 0
+3 Marge Simpson 0
+6 Ned Flanders 0
+7 Nelson Muntz 0
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result b/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result
index 1322867551f..bc9548b7d8e 100644
--- a/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result
+++ b/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result
@@ -1384,3 +1384,8 @@ SELECT * FROM t1 WHERE MATCH (a) AGAINST ('+"good database"' IN BOOLEAN MODE);
id a
1 know mysql good database
DROP TABLE t1;
+CREATE TABLE t1(f1 TEXT, FULLTEXT KEY(f1))ENGINE=InnoDB;
+INSERT INTO t1 VALUES(repeat("this is the test case", 500));
+ALTER TABLE t1 KEY_BLOCK_SIZE=4;
+ALTER TABLE t1 KEY_BLOCK_SIZE=0;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/t/fulltext2.test b/mysql-test/suite/innodb_fts/t/fulltext2.test
index 1c31bcd0319..4dd2c78827f 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext2.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext2.test
@@ -231,3 +231,29 @@ INSERT INTO t1 VALUES('„MySQL“');
SELECT a FROM t1 WHERE MATCH a AGAINST('“MySQL„' IN BOOLEAN MODE);
DROP TABLE t1;
SET NAMES latin1;
+
+#
+# Bug #20597981 - WRONG RELEVANCE RANKING FOR FULL TEXT SEARCHES
+# WHEN FTS_DOC_ID IS PRIMARY KEY
+CREATE TABLE t1 (
+ FTS_DOC_ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+ id int(10) not null ,
+ first_name varchar(50) NOT NULL,
+ last_name varchar(50) NOT NULL,
+ PRIMARY KEY (FTS_DOC_ID),
+ UNIQUE KEY idx_1 (first_name, last_name),
+ FULLTEXT KEY `idx_2` (first_name)
+) ENGINE=InnoDB;
+
+INSERT INTO t1 (id, first_name, last_name) VALUES
+(10, 'Bart', 'Simpson'),
+(11, 'Homer', 'Simpson'),
+(12, 'Marge', 'Simpson'),
+(13, 'Lisa', 'Simpson'),
+(14, 'Maggie', 'Simpson'),
+(15, 'Ned', 'Flanders'),
+(16, 'Nelson', 'Muntz');
+
+analyze table t1;
+SELECT fts_doc_id, first_name, last_name, MATCH(first_name) AGAINST('Homer' IN BOOLEAN MODE) AS score FROM t1;
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test b/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test
index 150d632b26f..6fa4f25c60e 100644
--- a/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test
+++ b/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test
@@ -1331,3 +1331,11 @@ INSERT INTO t1 (a) VALUES
SELECT * FROM t1 WHERE MATCH (a) AGAINST ('+"good database"' IN BOOLEAN MODE);
DROP TABLE t1;
+
+# MDEV-19974 InnoDB: Cannot load compressed BLOB
+CREATE TABLE t1(f1 TEXT, FULLTEXT KEY(f1))ENGINE=InnoDB;
+INSERT INTO t1 VALUES(repeat("this is the test case", 500));
+ALTER TABLE t1 KEY_BLOCK_SIZE=4;
+ALTER TABLE t1 KEY_BLOCK_SIZE=0;
+DROP TABLE t1;
+
diff --git a/mysql-test/suite/innodb_zip/r/4k.result b/mysql-test/suite/innodb_zip/r/4k.result
deleted file mode 100644
index e7e0d65b487..00000000000
--- a/mysql-test/suite/innodb_zip/r/4k.result
+++ /dev/null
@@ -1,406 +0,0 @@
-SET default_storage_engine=InnoDB;
-# Test 1) Show the page size from Information Schema
-SELECT variable_value FROM information_schema.global_status
-WHERE LOWER(variable_name) = 'innodb_page_size';
-variable_value
-4096
-# Test 2) The number of buffer pool pages is dependent upon the page size.
-SELECT variable_value FROM information_schema.global_status
-WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
-variable_value
-{checked_valid}
-# Test 3) Query some information_shema tables that are dependent upon
-# the page size.
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
-i.name index_name, i.page_no root_page, i.type,
-i.n_fields, i.merge_threshold
-FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
-INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
-WHERE t.table_id = i.table_id
-AND t.name LIKE 'mysql%'
- ORDER BY t.name, i.index_id;
-table_name n_cols table_flags index_name root_page type n_fields merge_threshold
-mysql/innodb_index_stats 11 33 PRIMARY 3 3 4 50
-mysql/innodb_table_stats 9 33 PRIMARY 3 3 2 50
-mysql/transaction_registry 8 33 PRIMARY 3 3 1 50
-mysql/transaction_registry 8 33 commit_id 4 2 1 50
-mysql/transaction_registry 8 33 begin_timestamp 5 0 1 50
-mysql/transaction_registry 8 33 commit_timestamp 6 0 2 50
-CREATE TABLE t1 (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
-CREATE TABLE t2 (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
-CREATE TABLE t3 (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb;
-CREATE TABLE t4 (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
-i.name index_name, i.page_no root_page, i.type,
-i.n_fields, i.merge_threshold
-FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
-INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
-WHERE t.table_id = i.table_id
-AND t.name LIKE 'test%'
- ORDER BY t.name, i.name;
-table_name n_cols table_flags index_name root_page type n_fields merge_threshold
-test/t1 5 0 PRIMARY 3 3 1 50
-test/t2 5 1 PRIMARY 3 3 1 50
-test/t3 5 37 PRIMARY 3 3 1 50
-test/t4 5 33 PRIMARY 3 3 1 50
-=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
-test/t1 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1.ibd
-test/t2 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2.ibd
-test/t3 Single DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3.ibd
-test/t4 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4.ibd
-DROP TABLE t1, t2, t3, t4;
-# Test 4) The maximum row size is dependent upon the page size.
-# Redundant: 1979, Compact: 1982.
-# Compressed: 1982, Dynamic: 1982.
-# Each row format has its own amount of overhead that
-# varies depending on number of fields and other overhead.
-SET SESSION innodb_strict_mode = ON;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(127)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(128)
-) ROW_FORMAT=redundant;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
-) ROW_FORMAT=compact;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(76)
-) ROW_FORMAT=compressed;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(79)
-) ROW_FORMAT=compressed;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
-) ROW_FORMAT=dynamic;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t1 (a varchar(64) character set utf8,
-b varchar(64) character set utf8,
-c varchar(64) character set utf8,
-d varchar(64) character set utf8,
-PRIMARY KEY (a,b,c,d))
-ENGINE=innodb;
-DROP TABLE t1;
-CREATE TABLE t1 (a varchar(64) character set utf8,
-b varchar(64) character set utf8,
-c varchar(64) character set utf8,
-d varchar(65) character set utf8,
-PRIMARY KEY (a,b,c,d))
-ENGINE=innodb;
-ERROR 42000: Specified key was too long; max key length is 768 bytes
-CREATE TABLE t1 (a varchar(64) character set utf8,
-b varchar(64) character set utf8,
-c varchar(64) character set utf8,
-d varchar(64) character set utf8,
-e varchar(64) character set utf8,
-PRIMARY KEY (a), KEY (b,c,d,e))
-ENGINE=innodb;
-DROP TABLE t1;
-CREATE TABLE t1 (a varchar(64) character set utf8,
-b varchar(64) character set utf8,
-c varchar(64) character set utf8,
-d varchar(64) character set utf8,
-e varchar(65) character set utf8,
-PRIMARY KEY (a), KEY (b,c,d,e))
-ENGINE=innodb;
-ERROR 42000: Specified key was too long; max key length is 768 bytes
-# Test 5) Make sure that KEY_BLOCK_SIZE=4, 2 & 1 are all
-# accepted and that KEY_BLOCK_SIZE=16 & 8 are rejected
-# in strict mode and converted to 4 in non-strict mode.
-SET SESSION innodb_strict_mode = ON;
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 4.
-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: KEY_BLOCK_SIZE=8 cannot be larger than 4.
-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=4
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=2
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=1
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED
-DROP TABLE t1;
-SET SESSION innodb_strict_mode = OFF;
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-Warnings:
-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=16
-DROP TABLE t1;
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-Warnings:
-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8.
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8.
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=8
-DROP TABLE t1;
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=4
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=2
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=1
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED
-DROP TABLE t1;
-# Test 6) Make sure that KEY_BLOCK_SIZE = 8 and 16
-# are both rejected when innodb_file_per_table=OFF
-SET SESSION innodb_strict_mode = ON;
-SET GLOBAL innodb_file_per_table = OFF;
-SHOW VARIABLES LIKE 'innodb_file_per_table';
-Variable_name Value
-innodb_file_per_table OFF
-CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
-ERROR HY000: Can't create table `test`.`t4` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: KEY_BLOCK_SIZE=8 cannot be larger than 4.
-Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
-Error 1005 Can't create table `test`.`t4` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
-ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 4.
-Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
-Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-SET GLOBAL innodb_file_per_table = ON;
-# Test 7) Not included here; 16k only
-# Test 8) Test creating a table that could lead to undo log overflow.
-CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
-h blob,i blob,j blob,k blob,l blob,m blob,n blob,
-o blob,p blob,q blob,r blob,s blob,t blob,u blob)
-ENGINE=InnoDB ROW_FORMAT=dynamic;
-SET @a = repeat('a', 767);
-SET @b = repeat('b', 767);
-SET @c = repeat('c', 767);
-SET @d = repeat('d', 767);
-SET @e = repeat('e', 767);
-INSERT INTO t1 VALUES (@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a);
-UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
-k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
-CREATE INDEX t1a ON t1 (a(767));
-UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
-k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
-CREATE INDEX t1b ON t1 (b(767));
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
-k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-ROLLBACK;
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
-UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
-n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-COMMIT;
-CREATE INDEX t1c ON t1 (c(767));
-UPDATE t1 SET c=@e;
-CREATE INDEX t1d ON t1 (d(767));
-BEGIN;
-UPDATE t1 SET d=@e;
-ROLLBACK;
-CREATE INDEX t1e ON t1 (e(767));
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` blob DEFAULT NULL,
- `b` blob DEFAULT NULL,
- `c` blob DEFAULT NULL,
- `d` blob DEFAULT NULL,
- `e` blob DEFAULT NULL,
- `f` blob DEFAULT NULL,
- `g` blob DEFAULT NULL,
- `h` blob DEFAULT NULL,
- `i` blob DEFAULT NULL,
- `j` blob DEFAULT NULL,
- `k` blob DEFAULT NULL,
- `l` blob DEFAULT NULL,
- `m` blob DEFAULT NULL,
- `n` blob DEFAULT NULL,
- `o` blob DEFAULT NULL,
- `p` blob DEFAULT NULL,
- `q` blob DEFAULT NULL,
- `r` blob DEFAULT NULL,
- `s` blob DEFAULT NULL,
- `t` blob DEFAULT NULL,
- `u` blob DEFAULT NULL,
- KEY `t1a` (`a`(767)),
- KEY `t1b` (`b`(767)),
- KEY `t1c` (`c`(767)),
- KEY `t1d` (`d`(767)),
- KEY `t1e` (`e`(767))
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
-DROP TABLE t1;
-SET SESSION innodb_strict_mode = OFF;
-CREATE TABLE t1(
-pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
-pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
-pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
-pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
-sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
-sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
-sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
-sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
-PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
-pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
-KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
-sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
-ROW_FORMAT=Redundant ENGINE=InnoDB;
-SET @r = repeat('a', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-CREATE TABLE t1(
-pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
-pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
-pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
-pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
-sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
-sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
-sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
-sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
-PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
-pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
-KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
-sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
-ROW_FORMAT=Compressed KEY_BLOCK_SIZE=4 ENGINE=InnoDB;
-SET @r = repeat('a', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-SET SESSION innodb_strict_mode = off;
-CREATE TABLE t1(
-c text NOT NULL, d text NOT NULL,
-PRIMARY KEY (c(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-Warnings:
-Warning 139 Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-DROP TABLE t1;
-CREATE TABLE t1(
-c text NOT NULL, d text NOT NULL,
-PRIMARY KEY (c(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
-drop table t1;
-CREATE TABLE t1(
-c text NOT NULL, d text NOT NULL,
-PRIMARY KEY (c(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
-drop table t1;
-CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-Warnings:
-Warning 139 Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-DROP TABLE t1;
-CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_zip/r/8k.result b/mysql-test/suite/innodb_zip/r/8k.result
deleted file mode 100644
index 76cc9d59aba..00000000000
--- a/mysql-test/suite/innodb_zip/r/8k.result
+++ /dev/null
@@ -1,437 +0,0 @@
-SET default_storage_engine=InnoDB;
-# Test 1) Show the page size from Information Schema
-SELECT variable_value FROM information_schema.global_status
-WHERE LOWER(variable_name) = 'innodb_page_size';
-variable_value
-8192
-# Test 2) The number of buffer pool pages is dependent upon the page size.
-SELECT variable_value FROM information_schema.global_status
-WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
-variable_value
-{checked_valid}
-# Test 3) Query some information_shema tables that are dependent upon
-# the page size.
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
-i.name index_name, i.page_no root_page, i.type,
-i.n_fields, i.merge_threshold
-FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
-INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
-WHERE t.table_id = i.table_id
-AND t.name LIKE 'mysql%'
- ORDER BY t.name, i.index_id;
-table_name n_cols table_flags index_name root_page type n_fields merge_threshold
-mysql/innodb_index_stats 11 33 PRIMARY 3 3 4 50
-mysql/innodb_table_stats 9 33 PRIMARY 3 3 2 50
-mysql/transaction_registry 8 33 PRIMARY 3 3 1 50
-mysql/transaction_registry 8 33 commit_id 4 2 1 50
-mysql/transaction_registry 8 33 begin_timestamp 5 0 1 50
-mysql/transaction_registry 8 33 commit_timestamp 6 0 2 50
-CREATE TABLE t1 (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
-CREATE TABLE t2 (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
-CREATE TABLE t3 (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb;
-CREATE TABLE t4 (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
-i.name index_name, i.page_no root_page, i.type,
-i.n_fields, i.merge_threshold
-FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
-INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
-WHERE t.table_id = i.table_id
-AND t.name LIKE 'test%'
- ORDER BY t.name, i.name;
-table_name n_cols table_flags index_name root_page type n_fields merge_threshold
-test/t1 5 0 PRIMARY 3 3 1 50
-test/t2 5 1 PRIMARY 3 3 1 50
-test/t3 5 39 PRIMARY 3 3 1 50
-test/t4 5 33 PRIMARY 3 3 1 50
-=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Space_Type Page_Size Zip_Size Formats_Permitted Path
-test/t1 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1.ibd
-test/t2 Single DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2.ibd
-test/t3 Single DEFAULT 4096 Compressed MYSQLD_DATADIR/test/t3.ibd
-test/t4 Single DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4.ibd
-DROP TABLE t1, t2, t3, t4;
-# Test 4) The maximum row size is dependent upon the page size.
-# Redundant: 4027, Compact: 4030.
-# Compressed: 4030, Dynamic: 4030.
-# Each row format has its own amount of overhead that
-# varies depending on number of fields and other overhead.
-SET SESSION innodb_strict_mode = ON;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(155)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(156)
-) ROW_FORMAT=redundant;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
-) ROW_FORMAT=compact;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
-) ROW_FORMAT=compressed;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(106)
-) ROW_FORMAT=compressed;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
-) ROW_FORMAT=dynamic;
-ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-CREATE TABLE t1 (a varchar(128) character set utf8,
-b varchar(128) character set utf8,
-c varchar(128) character set utf8,
-d varchar(128) character set utf8,
-PRIMARY KEY (a,b,c,d))
-ENGINE=innodb;
-DROP TABLE t1;
-CREATE TABLE t1 (a varchar(128) character set utf8,
-b varchar(128) character set utf8,
-c varchar(128) character set utf8,
-d varchar(129) character set utf8,
-PRIMARY KEY (a,b,c,d))
-ENGINE=innodb;
-ERROR 42000: Specified key was too long; max key length is 1536 bytes
-CREATE TABLE t1 (a varchar(128) character set utf8,
-b varchar(128) character set utf8,
-c varchar(128) character set utf8,
-d varchar(128) character set utf8,
-e varchar(128) character set utf8,
-PRIMARY KEY (a), KEY (b,c,d,e))
-ENGINE=innodb;
-DROP TABLE t1;
-CREATE TABLE t1 (a varchar(128) character set utf8,
-b varchar(128) character set utf8,
-c varchar(128) character set utf8,
-d varchar(128) character set utf8,
-e varchar(129) character set utf8,
-PRIMARY KEY (a), KEY (b,c,d,e))
-ENGINE=innodb;
-ERROR 42000: Specified key was too long; max key length is 1536 bytes
-# Test 5) Make sure that KEY_BLOCK_SIZE=8, 4, 2 & 1 are all
-# accepted and that KEY_BLOCK_SIZE=16 is rejected in
-# strict mode and converted to 8 in non-strict mode.
-SET SESSION innodb_strict_mode = ON;
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
-Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=8
-ALTER TABLE t1 KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=4
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=2
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=1
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED
-DROP TABLE t1;
-SET SESSION innodb_strict_mode = OFF;
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-Warnings:
-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=16
-DROP TABLE t1;
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=8
-DROP TABLE t1;
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=4
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=2
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED key_block_size=1
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-Level Code Message
-SELECT table_name, row_format, create_options
-FROM information_schema.tables WHERE table_name = 't1';
-table_name row_format create_options
-t1 Compressed row_format=COMPRESSED
-DROP TABLE t1;
-# Test 6) Make sure that KEY_BLOCK_SIZE = 8 and 16
-# are rejected when innodb_file_per_table=OFF
-SET SESSION innodb_strict_mode = ON;
-SET GLOBAL innodb_file_per_table = OFF;
-SHOW VARIABLES LIKE 'innodb_file_per_table';
-Variable_name Value
-innodb_file_per_table OFF
-CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
-ERROR HY000: Can't create table `test`.`t4` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
-Error 1005 Can't create table `test`.`t4` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
-ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
-SHOW WARNINGS;
-Level Code Message
-Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
-Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
-Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
-Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
-SET GLOBAL innodb_file_per_table = ON;
-# Test 7) Not included here; 16k only
-# Test 8) Test creating a table that could lead to undo log overflow.
-CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
-h blob,i blob,j blob,k blob,l blob,m blob,n blob,
-o blob,p blob,q blob,r blob,s blob,t blob,u blob)
-ENGINE=InnoDB ROW_FORMAT=dynamic;
-SET @a = repeat('a', 767);
-SET @b = repeat('b', 767);
-SET @c = repeat('c', 767);
-SET @d = repeat('d', 767);
-SET @e = repeat('e', 767);
-INSERT INTO t1 VALUES (@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a);
-UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
-k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
-CREATE INDEX t1a ON t1 (a(767));
-CREATE INDEX t1b ON t1 (b(767));
-UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
-k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
-CREATE INDEX t1c ON t1 (c(767));
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
-k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-ROLLBACK;
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
-UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
-n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-COMMIT;
-CREATE INDEX t1d ON t1 (d(767));
-UPDATE t1 SET d=@e;
-CREATE INDEX t1e ON t1 (e(767));
-UPDATE t1 SET e=@e;
-CREATE INDEX t1f ON t1 (f(767));
-UPDATE t1 SET f=@e;
-CREATE INDEX t1g ON t1 (g(767));
-UPDATE t1 SET g=@e;
-CREATE INDEX t1h ON t1 (h(767));
-UPDATE t1 SET h=@e;
-CREATE INDEX t1i ON t1 (i(767));
-UPDATE t1 SET i=@e;
-CREATE INDEX t1k ON t1 (j(767));
-CREATE INDEX t1j ON t1 (j(500));
-BEGIN;
-UPDATE t1 SET j=@e;
-ROLLBACK;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` blob DEFAULT NULL,
- `b` blob DEFAULT NULL,
- `c` blob DEFAULT NULL,
- `d` blob DEFAULT NULL,
- `e` blob DEFAULT NULL,
- `f` blob DEFAULT NULL,
- `g` blob DEFAULT NULL,
- `h` blob DEFAULT NULL,
- `i` blob DEFAULT NULL,
- `j` blob DEFAULT NULL,
- `k` blob DEFAULT NULL,
- `l` blob DEFAULT NULL,
- `m` blob DEFAULT NULL,
- `n` blob DEFAULT NULL,
- `o` blob DEFAULT NULL,
- `p` blob DEFAULT NULL,
- `q` blob DEFAULT NULL,
- `r` blob DEFAULT NULL,
- `s` blob DEFAULT NULL,
- `t` blob DEFAULT NULL,
- `u` blob DEFAULT NULL,
- KEY `t1a` (`a`(767)),
- KEY `t1b` (`b`(767)),
- KEY `t1c` (`c`(767)),
- KEY `t1d` (`d`(767)),
- KEY `t1e` (`e`(767)),
- KEY `t1f` (`f`(767)),
- KEY `t1g` (`g`(767)),
- KEY `t1h` (`h`(767)),
- KEY `t1i` (`i`(767)),
- KEY `t1k` (`j`(767)),
- KEY `t1j` (`j`(500))
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
-DROP TABLE t1;
-SET SESSION innodb_strict_mode = OFF;
-CREATE TABLE t1(
-pk01 varchar(96), pk02 varchar(96), pk03 varchar(96), pk04 varchar(96),
-pk05 varchar(96), pk06 varchar(96), pk07 varchar(96), pk08 varchar(96),
-pk09 varchar(96), pk10 varchar(96), pk11 varchar(96), pk12 varchar(96),
-pk13 varchar(96), pk14 varchar(96), pk15 varchar(96), pk16 varchar(96),
-sk01 varchar(96), sk02 varchar(96), sk03 varchar(96), sk04 varchar(96),
-sk05 varchar(96), sk06 varchar(96), sk07 varchar(96), sk08 varchar(96),
-sk09 varchar(96), sk10 varchar(96), sk11 varchar(96), sk12 varchar(96),
-sk13 varchar(96), sk14 varchar(96), sk15 varchar(96), sk16 varchar(96),
-PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
-pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
-KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
-sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
-ROW_FORMAT=Redundant ENGINE=InnoDB;
-SET @r = repeat('a', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-CREATE TABLE t1(
-pk01 varchar(96), pk02 varchar(96), pk03 varchar(96), pk04 varchar(96),
-pk05 varchar(96), pk06 varchar(96), pk07 varchar(96), pk08 varchar(96),
-pk09 varchar(96), pk10 varchar(96), pk11 varchar(96), pk12 varchar(96),
-pk13 varchar(96), pk14 varchar(96), pk15 varchar(96), pk16 varchar(96),
-sk01 varchar(96), sk02 varchar(96), sk03 varchar(96), sk04 varchar(96),
-sk05 varchar(96), sk06 varchar(96), sk07 varchar(96), sk08 varchar(96),
-sk09 varchar(96), sk10 varchar(96), sk11 varchar(96), sk12 varchar(96),
-sk13 varchar(96), sk14 varchar(96), sk15 varchar(96), sk16 varchar(96),
-PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
-pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
-KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
-sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
-ROW_FORMAT=Compressed KEY_BLOCK_SIZE=8 ENGINE=InnoDB;
-SET @r = repeat('a', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
-@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-SET SESSION innodb_strict_mode = off;
-CREATE TABLE t1(
-c text NOT NULL, d text NOT NULL,
-PRIMARY KEY (c(767),d(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-Warnings:
-Warning 139 Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-DROP TABLE t1;
-CREATE TABLE t1(
-c text NOT NULL, d text NOT NULL,
-PRIMARY KEY (c(767),d(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
-Warnings:
-Warning 139 Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-DROP TABLE t1;
-CREATE TABLE t1(
-c text NOT NULL, d text NOT NULL,
-PRIMARY KEY (c(767),d(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
-drop table t1;
-CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-Warnings:
-Warning 139 Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
-DROP TABLE t1;
-CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_zip/r/page_size,4k.rdiff b/mysql-test/suite/innodb_zip/r/page_size,4k.rdiff
new file mode 100644
index 00000000000..2ee4852ce2a
--- /dev/null
+++ b/mysql-test/suite/innodb_zip/r/page_size,4k.rdiff
@@ -0,0 +1,469 @@
+--- page_size.result
++++ page_size,4k.result
+@@ -3,7 +3,7 @@
+ SELECT variable_value FROM information_schema.global_status
+ WHERE LOWER(variable_name) = 'innodb_page_size';
+ variable_value
+-16384
++4096
+ # Test 3) Query some information_shema tables that are dependent upon
+ # the page size.
+ SELECT t.name table_name, t.n_cols, t.flag table_flags,
+@@ -36,13 +36,13 @@
+ table_name n_cols table_flags index_name root_page type n_fields merge_threshold
+ test/t1 5 0 PRIMARY 3 3 1 50
+ test/t2 5 1 PRIMARY 3 3 1 50
+-test/t3 5 41 PRIMARY 3 3 1 50
++test/t3 5 37 PRIMARY 3 3 1 50
+ test/t4 5 33 PRIMARY 3 3 1 50
+ === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
+ Space_Name Page_Size Zip_Size Path
+ test/t1 DEFAULT DEFAULT MYSQLD_DATADIR/test/t1.ibd
+ test/t2 DEFAULT DEFAULT MYSQLD_DATADIR/test/t2.ibd
+-test/t3 DEFAULT 8192 MYSQLD_DATADIR/test/t3.ibd
++test/t3 DEFAULT 2048 MYSQLD_DATADIR/test/t3.ibd
+ test/t4 DEFAULT DEFAULT MYSQLD_DATADIR/test/t4.ibd
+ DROP TABLE t1, t2, t3, t4;
+ # Test 4) The maximum row size is dependent upon the page size.
+@@ -51,141 +51,90 @@
+ SET SESSION innodb_strict_mode = ON;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(127)
+ ) ROW_FORMAT=redundant;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(128)
+ ) ROW_FORMAT=redundant;
+-ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
+ ) ROW_FORMAT=compact;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
+ ) ROW_FORMAT=compact;
+-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(76)
+ ) ROW_FORMAT=compressed;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(79)
+ ) ROW_FORMAT=compressed;
+-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
+ ) ROW_FORMAT=dynamic;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
++c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
+ ) ROW_FORMAT=dynamic;
+-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(4) character set utf8,
+-PRIMARY KEY (a,b,c,d,e))
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++CREATE TABLE t1 (a varchar(98) character set utf8,
++b varchar(98) character set utf8,
++c varchar(98) character set utf8,
++d varchar(97) character set utf8,
++PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+ DROP TABLE t1;
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(5) character set utf8,
+-PRIMARY KEY (a,b,c,d,e))
++CREATE TABLE t1 (a varchar(98) character set utf8,
++b varchar(98) character set utf8,
++c varchar(98) character set utf8,
++d varchar(98) character set utf8,
++PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+-ERROR 42000: Specified key was too long; max key length is 3072 bytes
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(255) character set utf8,
+-f varchar(4) character set utf8,
+-PRIMARY KEY (a), KEY (b,c,d,e,f))
++ERROR 42000: Specified key was too long; max key length is 1173 bytes
++CREATE TABLE t1 (a varchar(98) character set utf8,
++b varchar(98) character set utf8,
++c varchar(98) character set utf8,
++d varchar(98) character set utf8,
++e varchar(97) character set utf8,
++PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+ DROP TABLE t1;
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(255) character set utf8,
+-f varchar(5) character set utf8,
+-PRIMARY KEY (a), KEY (b,c,d,e,f))
++CREATE TABLE t1 (a varchar(98) character set utf8,
++b varchar(98) character set utf8,
++c varchar(98) character set utf8,
++d varchar(98) character set utf8,
++e varchar(98) character set utf8,
++PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+-ERROR 42000: Specified key was too long; max key length is 3072 bytes
++ERROR 42000: Specified key was too long; max key length is 1173 bytes
+ # Test 5) KEY_BLOCK_SIZE validation
+ CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
++ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
+-SELECT table_name, row_format, create_options
+-FROM information_schema.tables WHERE table_name = 't1';
+-table_name row_format create_options
+-t1 Compressed row_format=COMPRESSED key_block_size=16
+-ALTER TABLE t1 KEY_BLOCK_SIZE=8;
++Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 4.
++Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
++Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
++CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
++ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
+-SELECT table_name, row_format, create_options
+-FROM information_schema.tables WHERE table_name = 't1';
+-table_name row_format create_options
+-t1 Compressed row_format=COMPRESSED key_block_size=8
++Warning 1478 InnoDB: KEY_BLOCK_SIZE=8 cannot be larger than 4.
++Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
++Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
++CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED;
+ ALTER TABLE t1 KEY_BLOCK_SIZE=4;
+ SHOW WARNINGS;
+ Level Code Message
+@@ -217,15 +166,21 @@
+ DROP TABLE t1;
+ SET SESSION innodb_strict_mode = OFF;
+ CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
++Warnings:
++Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
+ SHOW WARNINGS;
+ Level Code Message
++Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
+ SELECT table_name, row_format, create_options
+ FROM information_schema.tables WHERE table_name = 't1';
+ table_name row_format create_options
+ t1 Compressed row_format=COMPRESSED key_block_size=16
+ ALTER TABLE t1 KEY_BLOCK_SIZE=8;
++Warnings:
++Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8.
+ SHOW WARNINGS;
+ Level Code Message
++Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=8.
+ SELECT table_name, row_format, create_options
+ FROM information_schema.tables WHERE table_name = 't1';
+ table_name row_format create_options
+@@ -269,6 +224,7 @@
+ ERROR HY000: Can't create table `test`.`t4` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
++Warning 1478 InnoDB: KEY_BLOCK_SIZE=8 cannot be larger than 4.
+ Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
+ Error 1005 Can't create table `test`.`t4` (errno: 140 "Wrong create options")
+ Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+@@ -276,105 +232,11 @@
+ ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
++Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 4.
+ Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
+ Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+ SET GLOBAL innodb_file_per_table = ON;
+-# Test 7) This series of tests were moved from innodb-index to here
+-# because the second alter table t1 assumes a 16k page size.
+-# Moving the test allows the rest of innodb-index to be run on all
+-# page sizes. The previously disabled portions of this test were
+-# moved as well.
+-CREATE TABLE t2(d varchar(17) PRIMARY KEY) ENGINE=innodb DEFAULT CHARSET=utf8;
+-CREATE TABLE t3(a int PRIMARY KEY) ENGINE=innodb;
+-INSERT INTO t3 VALUES (22),(44),(33),(55),(66);
+-INSERT INTO t2 VALUES ('jejdkrun87'),('adfd72nh9k'),
+-('adfdpplkeock'),('adfdijnmnb78k'),('adfdijn0loKNHJik');
+-CREATE TABLE t1(a int, b blob, c text, d text NOT NULL)
+-ENGINE=innodb DEFAULT CHARSET=utf8 STATS_PERSISTENT=0;
+-INSERT INTO t1
+-SELECT a,LEFT(REPEAT(d,100*a),65535),REPEAT(d,20*a),d FROM t2,t3 order by a, d;
+-DROP TABLE t2, t3;
+-SELECT COUNT(*) FROM t1 WHERE a=44;
+-COUNT(*)
+-5
+-SELECT a,
+-LENGTH(b),b=LEFT(REPEAT(d,100*a),65535),LENGTH(c),c=REPEAT(d,20*a),d FROM t1
+-ORDER BY 1, 2, 3, 4, 5, 6;
+-a LENGTH(b) b=LEFT(REPEAT(d,100*a),65535) LENGTH(c) c=REPEAT(d,20*a) d
+-22 22000 1 4400 1 adfd72nh9k
+-22 22000 1 4400 1 jejdkrun87
+-22 26400 1 5280 1 adfdpplkeock
+-22 28600 1 5720 1 adfdijnmnb78k
+-22 35200 1 7040 1 adfdijn0loKNHJik
+-33 33000 1 6600 1 adfd72nh9k
+-33 33000 1 6600 1 jejdkrun87
+-33 39600 1 7920 1 adfdpplkeock
+-33 42900 1 8580 1 adfdijnmnb78k
+-33 52800 1 10560 1 adfdijn0loKNHJik
+-44 44000 1 8800 1 adfd72nh9k
+-44 44000 1 8800 1 jejdkrun87
+-44 52800 1 10560 1 adfdpplkeock
+-44 57200 1 11440 1 adfdijnmnb78k
+-44 65535 1 14080 1 adfdijn0loKNHJik
+-55 55000 1 11000 1 adfd72nh9k
+-55 55000 1 11000 1 jejdkrun87
+-55 65535 1 13200 1 adfdpplkeock
+-55 65535 1 14300 1 adfdijnmnb78k
+-55 65535 1 17600 1 adfdijn0loKNHJik
+-66 65535 1 13200 1 adfd72nh9k
+-66 65535 1 13200 1 jejdkrun87
+-66 65535 1 15840 1 adfdpplkeock
+-66 65535 1 17160 1 adfdijnmnb78k
+-66 65535 1 21120 1 adfdijn0loKNHJik
+-ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
+-ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
+-DELETE FROM t1 WHERE d='null';
+-ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
+-ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
+-DELETE FROM t1 WHERE a%2;
+-CHECK TABLE t1;
+-Table Op Msg_type Msg_text
+-test.t1 check status OK
+-ALTER TABLE t1 ADD PRIMARY KEY (a,b(255),c(255)), ADD KEY (b(767));
+-SELECT COUNT(*) FROM t1 WHERE a=44;
+-COUNT(*)
+-5
+-SELECT a,
+-LENGTH(b), b=LEFT(REPEAT(d,100*a), 65535),LENGTH(c), c=REPEAT(d,20*a), d FROM t1;
+-a LENGTH(b) b=LEFT(REPEAT(d,100*a), 65535) LENGTH(c) c=REPEAT(d,20*a) d
+-22 22000 1 4400 1 adfd72nh9k
+-22 35200 1 7040 1 adfdijn0loKNHJik
+-22 28600 1 5720 1 adfdijnmnb78k
+-22 26400 1 5280 1 adfdpplkeock
+-22 22000 1 4400 1 jejdkrun87
+-44 44000 1 8800 1 adfd72nh9k
+-44 65535 1 14080 1 adfdijn0loKNHJik
+-44 57200 1 11440 1 adfdijnmnb78k
+-44 52800 1 10560 1 adfdpplkeock
+-44 44000 1 8800 1 jejdkrun87
+-66 65535 1 13200 1 adfd72nh9k
+-66 65535 1 21120 1 adfdijn0loKNHJik
+-66 65535 1 17160 1 adfdijnmnb78k
+-66 65535 1 15840 1 adfdpplkeock
+-66 65535 1 13200 1 jejdkrun87
+-SHOW CREATE TABLE t1;
+-Table Create Table
+-t1 CREATE TABLE `t1` (
+- `a` int(11) NOT NULL,
+- `b` blob NOT NULL,
+- `c` text NOT NULL,
+- `d` text NOT NULL,
+- PRIMARY KEY (`a`,`b`(255),`c`(255)),
+- KEY `b` (`b`(767))
+-) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
+-CHECK TABLE t1;
+-Table Op Msg_type Msg_text
+-test.t1 check status OK
+-EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%';
+-id select_type table type possible_keys key key_len ref rows Extra
+-1 SIMPLE t1 range b b 769 NULL # Using where
+-DROP TABLE t1;
+ # Test 8) Test creating a table that could lead to undo log overflow.
+ CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
+ h blob,i blob,j blob,k blob,l blob,m blob,n blob,
+@@ -389,10 +251,6 @@
+ UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
+ k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
+ CREATE INDEX t1a ON t1 (a(767));
+-CREATE INDEX t1b ON t1 (b(767));
+-CREATE INDEX t1c ON t1 (c(767));
+-CREATE INDEX t1d ON t1 (d(767));
+-CREATE INDEX t1e ON t1 (e(767));
+ UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
+ k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
+ CREATE INDEX t1f ON t1 (f(767));
+@@ -407,37 +265,15 @@
+ COMMIT;
+ CREATE INDEX t1g ON t1 (g(767));
+ UPDATE t1 SET g=@e;
+-CREATE INDEX t1h ON t1 (h(767));
+-UPDATE t1 SET h=@e;
+-CREATE INDEX t1i ON t1 (i(767));
+-UPDATE t1 SET i=@e;
+-CREATE INDEX t1j ON t1 (j(767));
+-UPDATE t1 SET j=@e;
+-CREATE INDEX t1k ON t1 (k(767));
+-UPDATE t1 SET k=@e;
+-CREATE INDEX t1l ON t1 (l(767));
+-UPDATE t1 SET l=@e;
+-CREATE INDEX t1m ON t1 (m(767));
+-UPDATE t1 SET m=@e;
+-CREATE INDEX t1n ON t1 (n(767));
+-UPDATE t1 SET n=@e;
+-CREATE INDEX t1o ON t1 (o(767));
+-UPDATE t1 SET o=@e;
+-CREATE INDEX t1p ON t1 (p(767));
+-UPDATE t1 SET p=@e;
+-CREATE INDEX t1q ON t1 (q(767));
+-UPDATE t1 SET q=@e;
+-CREATE INDEX t1r ON t1 (r(767));
+-UPDATE t1 SET r=@e;
+-CREATE INDEX t1s ON t1 (s(767));
+-UPDATE t1 SET s=@e;
+ CREATE INDEX t1t ON t1 (t(767));
+ BEGIN;
+ UPDATE t1 SET t=@e;
+ ROLLBACK;
+ CREATE INDEX t1u ON t1 (u(767));
+-CREATE INDEX t1ut ON t1 (u(767), t(767));
+-CREATE INDEX t1st ON t1 (s(767), t(767));
++CREATE INDEX t1ut ON t1 (u(767));
++Warnings:
++Note 1831 Duplicate index `t1ut`. This is deprecated and will be disallowed in a future release
++CREATE INDEX t1st ON t1 (s(767));
+ SHOW CREATE TABLE t1;
+ Table Create Table
+ t1 CREATE TABLE `t1` (
+@@ -463,28 +299,12 @@
+ `t` blob DEFAULT NULL,
+ `u` blob DEFAULT NULL,
+ KEY `t1a` (`a`(767)),
+- KEY `t1b` (`b`(767)),
+- KEY `t1c` (`c`(767)),
+- KEY `t1d` (`d`(767)),
+- KEY `t1e` (`e`(767)),
+ KEY `t1f` (`f`(767)),
+ KEY `t1g` (`g`(767)),
+- KEY `t1h` (`h`(767)),
+- KEY `t1i` (`i`(767)),
+- KEY `t1j` (`j`(767)),
+- KEY `t1k` (`k`(767)),
+- KEY `t1l` (`l`(767)),
+- KEY `t1m` (`m`(767)),
+- KEY `t1n` (`n`(767)),
+- KEY `t1o` (`o`(767)),
+- KEY `t1p` (`p`(767)),
+- KEY `t1q` (`q`(767)),
+- KEY `t1r` (`r`(767)),
+- KEY `t1s` (`s`(767)),
+ KEY `t1t` (`t`(767)),
+ KEY `t1u` (`u`(767)),
+- KEY `t1ut` (`u`(767),`t`(767)),
+- KEY `t1st` (`s`(767),`t`(767))
++ KEY `t1ut` (`u`(767)),
++ KEY `t1st` (`s`(767))
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+ DROP TABLE t1;
+ # Bug#12547647 UPDATE LOGGING COULD EXCEED LOG PAGE SIZE
+@@ -565,27 +385,25 @@
+ DROP TABLE t1;
+ CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+-PRIMARY KEY (c(767),d(767)))
++PRIMARY KEY (c(767)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
+ Warnings:
+-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ DROP TABLE t1;
+ CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+-PRIMARY KEY (c(767),d(767)))
++PRIMARY KEY (c(767)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
+-Warnings:
+-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ DROP TABLE t1;
+ CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+-PRIMARY KEY (c(767),d(767)))
++PRIMARY KEY (c(767)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
+ DROP TABLE t1;
+ CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
+ Warnings:
+-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++Warning 139 Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ DROP TABLE t1;
+ CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
diff --git a/mysql-test/suite/innodb_zip/r/page_size,8k.rdiff b/mysql-test/suite/innodb_zip/r/page_size,8k.rdiff
new file mode 100644
index 00000000000..e74b82e3215
--- /dev/null
+++ b/mysql-test/suite/innodb_zip/r/page_size,8k.rdiff
@@ -0,0 +1,415 @@
+--- page_size.result
++++ page_size,8k.result
+@@ -3,7 +3,7 @@
+ SELECT variable_value FROM information_schema.global_status
+ WHERE LOWER(variable_name) = 'innodb_page_size';
+ variable_value
+-16384
++8192
+ # Test 3) Query some information_shema tables that are dependent upon
+ # the page size.
+ SELECT t.name table_name, t.n_cols, t.flag table_flags,
+@@ -36,13 +36,13 @@
+ table_name n_cols table_flags index_name root_page type n_fields merge_threshold
+ test/t1 5 0 PRIMARY 3 3 1 50
+ test/t2 5 1 PRIMARY 3 3 1 50
+-test/t3 5 41 PRIMARY 3 3 1 50
++test/t3 5 39 PRIMARY 3 3 1 50
+ test/t4 5 33 PRIMARY 3 3 1 50
+ === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
+ Space_Name Page_Size Zip_Size Path
+ test/t1 DEFAULT DEFAULT MYSQLD_DATADIR/test/t1.ibd
+ test/t2 DEFAULT DEFAULT MYSQLD_DATADIR/test/t2.ibd
+-test/t3 DEFAULT 8192 MYSQLD_DATADIR/test/t3.ibd
++test/t3 DEFAULT 4096 MYSQLD_DATADIR/test/t3.ibd
+ test/t4 DEFAULT DEFAULT MYSQLD_DATADIR/test/t4.ibd
+ DROP TABLE t1, t2, t3, t4;
+ # Test 4) The maximum row size is dependent upon the page size.
+@@ -53,133 +53,97 @@
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(211)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(155)
+ ) ROW_FORMAT=redundant;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(212)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(156)
+ ) ROW_FORMAT=redundant;
+-ERROR 42000: Row size too large (> 8123). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
+ ) ROW_FORMAT=compact;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
+ ) ROW_FORMAT=compact;
+-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(157)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
+ ) ROW_FORMAT=compressed;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(200), c40 char(160)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(106)
+ ) ROW_FORMAT=compressed;
+-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(246)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
+ ) ROW_FORMAT=dynamic;
+ DROP TABLE t1;
+ CREATE TABLE t1 (
+ c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+ c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+ c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(200),
+-c21 char(200), c22 char(200), c23 char(200), c24 char(200), c25 char(200),
+-c26 char(200), c27 char(200), c28 char(200), c29 char(200), c30 char(200),
+-c31 char(200), c32 char(200), c33 char(200), c34 char(200), c35 char(200),
+-c36 char(200), c37 char(200), c38 char(200), c39 char(250), c40 char(247)
++c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
+ ) ROW_FORMAT=dynamic;
+-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(4) character set utf8,
+-PRIMARY KEY (a,b,c,d,e))
++ERROR 42000: Row size too large (> max_row_size). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++CREATE TABLE t1 (a varchar(128) character set utf8,
++b varchar(128) character set utf8,
++c varchar(128) character set utf8,
++d varchar(128) character set utf8,
++PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+ DROP TABLE t1;
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(5) character set utf8,
+-PRIMARY KEY (a,b,c,d,e))
++CREATE TABLE t1 (a varchar(128) character set utf8,
++b varchar(128) character set utf8,
++c varchar(128) character set utf8,
++d varchar(129) character set utf8,
++PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+-ERROR 42000: Specified key was too long; max key length is 3072 bytes
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(255) character set utf8,
+-f varchar(4) character set utf8,
+-PRIMARY KEY (a), KEY (b,c,d,e,f))
++ERROR 42000: Specified key was too long; max key length is 1536 bytes
++CREATE TABLE t1 (a varchar(128) character set utf8,
++b varchar(128) character set utf8,
++c varchar(128) character set utf8,
++d varchar(128) character set utf8,
++e varchar(128) character set utf8,
++PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+ DROP TABLE t1;
+-CREATE TABLE t1 (a varchar(255) character set utf8,
+-b varchar(255) character set utf8,
+-c varchar(255) character set utf8,
+-d varchar(255) character set utf8,
+-e varchar(255) character set utf8,
+-f varchar(5) character set utf8,
+-PRIMARY KEY (a), KEY (b,c,d,e,f))
++CREATE TABLE t1 (a varchar(128) character set utf8,
++b varchar(128) character set utf8,
++c varchar(128) character set utf8,
++d varchar(128) character set utf8,
++e varchar(129) character set utf8,
++PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+-ERROR 42000: Specified key was too long; max key length is 3072 bytes
++ERROR 42000: Specified key was too long; max key length is 1536 bytes
+ # Test 5) KEY_BLOCK_SIZE validation
+-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
++CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
++ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
+-SELECT table_name, row_format, create_options
+-FROM information_schema.tables WHERE table_name = 't1';
+-table_name row_format create_options
+-t1 Compressed row_format=COMPRESSED key_block_size=16
+-ALTER TABLE t1 KEY_BLOCK_SIZE=8;
++Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
++Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
++Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
++CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
+ SHOW WARNINGS;
+ Level Code Message
+ SELECT table_name, row_format, create_options
+@@ -217,8 +181,11 @@
+ DROP TABLE t1;
+ SET SESSION innodb_strict_mode = OFF;
+ CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
++Warnings:
++Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
+ SHOW WARNINGS;
+ Level Code Message
++Warning 1478 InnoDB: ignoring KEY_BLOCK_SIZE=16.
+ SELECT table_name, row_format, create_options
+ FROM information_schema.tables WHERE table_name = 't1';
+ table_name row_format create_options
+@@ -276,105 +243,11 @@
+ ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ SHOW WARNINGS;
+ Level Code Message
++Warning 1478 InnoDB: KEY_BLOCK_SIZE=16 cannot be larger than 8.
+ Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
+ Error 1005 Can't create table `test`.`t5` (errno: 140 "Wrong create options")
+ Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
+ SET GLOBAL innodb_file_per_table = ON;
+-# Test 7) This series of tests were moved from innodb-index to here
+-# because the second alter table t1 assumes a 16k page size.
+-# Moving the test allows the rest of innodb-index to be run on all
+-# page sizes. The previously disabled portions of this test were
+-# moved as well.
+-CREATE TABLE t2(d varchar(17) PRIMARY KEY) ENGINE=innodb DEFAULT CHARSET=utf8;
+-CREATE TABLE t3(a int PRIMARY KEY) ENGINE=innodb;
+-INSERT INTO t3 VALUES (22),(44),(33),(55),(66);
+-INSERT INTO t2 VALUES ('jejdkrun87'),('adfd72nh9k'),
+-('adfdpplkeock'),('adfdijnmnb78k'),('adfdijn0loKNHJik');
+-CREATE TABLE t1(a int, b blob, c text, d text NOT NULL)
+-ENGINE=innodb DEFAULT CHARSET=utf8 STATS_PERSISTENT=0;
+-INSERT INTO t1
+-SELECT a,LEFT(REPEAT(d,100*a),65535),REPEAT(d,20*a),d FROM t2,t3 order by a, d;
+-DROP TABLE t2, t3;
+-SELECT COUNT(*) FROM t1 WHERE a=44;
+-COUNT(*)
+-5
+-SELECT a,
+-LENGTH(b),b=LEFT(REPEAT(d,100*a),65535),LENGTH(c),c=REPEAT(d,20*a),d FROM t1
+-ORDER BY 1, 2, 3, 4, 5, 6;
+-a LENGTH(b) b=LEFT(REPEAT(d,100*a),65535) LENGTH(c) c=REPEAT(d,20*a) d
+-22 22000 1 4400 1 adfd72nh9k
+-22 22000 1 4400 1 jejdkrun87
+-22 26400 1 5280 1 adfdpplkeock
+-22 28600 1 5720 1 adfdijnmnb78k
+-22 35200 1 7040 1 adfdijn0loKNHJik
+-33 33000 1 6600 1 adfd72nh9k
+-33 33000 1 6600 1 jejdkrun87
+-33 39600 1 7920 1 adfdpplkeock
+-33 42900 1 8580 1 adfdijnmnb78k
+-33 52800 1 10560 1 adfdijn0loKNHJik
+-44 44000 1 8800 1 adfd72nh9k
+-44 44000 1 8800 1 jejdkrun87
+-44 52800 1 10560 1 adfdpplkeock
+-44 57200 1 11440 1 adfdijnmnb78k
+-44 65535 1 14080 1 adfdijn0loKNHJik
+-55 55000 1 11000 1 adfd72nh9k
+-55 55000 1 11000 1 jejdkrun87
+-55 65535 1 13200 1 adfdpplkeock
+-55 65535 1 14300 1 adfdijnmnb78k
+-55 65535 1 17600 1 adfdijn0loKNHJik
+-66 65535 1 13200 1 adfd72nh9k
+-66 65535 1 13200 1 jejdkrun87
+-66 65535 1 15840 1 adfdpplkeock
+-66 65535 1 17160 1 adfdijnmnb78k
+-66 65535 1 21120 1 adfdijn0loKNHJik
+-ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
+-ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
+-DELETE FROM t1 WHERE d='null';
+-ALTER TABLE t1 ADD PRIMARY KEY (a), ADD KEY (b(20));
+-ERROR 23000: Duplicate entry '22' for key 'PRIMARY'
+-DELETE FROM t1 WHERE a%2;
+-CHECK TABLE t1;
+-Table Op Msg_type Msg_text
+-test.t1 check status OK
+-ALTER TABLE t1 ADD PRIMARY KEY (a,b(255),c(255)), ADD KEY (b(767));
+-SELECT COUNT(*) FROM t1 WHERE a=44;
+-COUNT(*)
+-5
+-SELECT a,
+-LENGTH(b), b=LEFT(REPEAT(d,100*a), 65535),LENGTH(c), c=REPEAT(d,20*a), d FROM t1;
+-a LENGTH(b) b=LEFT(REPEAT(d,100*a), 65535) LENGTH(c) c=REPEAT(d,20*a) d
+-22 22000 1 4400 1 adfd72nh9k
+-22 35200 1 7040 1 adfdijn0loKNHJik
+-22 28600 1 5720 1 adfdijnmnb78k
+-22 26400 1 5280 1 adfdpplkeock
+-22 22000 1 4400 1 jejdkrun87
+-44 44000 1 8800 1 adfd72nh9k
+-44 65535 1 14080 1 adfdijn0loKNHJik
+-44 57200 1 11440 1 adfdijnmnb78k
+-44 52800 1 10560 1 adfdpplkeock
+-44 44000 1 8800 1 jejdkrun87
+-66 65535 1 13200 1 adfd72nh9k
+-66 65535 1 21120 1 adfdijn0loKNHJik
+-66 65535 1 17160 1 adfdijnmnb78k
+-66 65535 1 15840 1 adfdpplkeock
+-66 65535 1 13200 1 jejdkrun87
+-SHOW CREATE TABLE t1;
+-Table Create Table
+-t1 CREATE TABLE `t1` (
+- `a` int(11) NOT NULL,
+- `b` blob NOT NULL,
+- `c` text NOT NULL,
+- `d` text NOT NULL,
+- PRIMARY KEY (`a`,`b`(255),`c`(255)),
+- KEY `b` (`b`(767))
+-) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
+-CHECK TABLE t1;
+-Table Op Msg_type Msg_text
+-test.t1 check status OK
+-EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%';
+-id select_type table type possible_keys key key_len ref rows Extra
+-1 SIMPLE t1 range b b 769 NULL # Using where
+-DROP TABLE t1;
+ # Test 8) Test creating a table that could lead to undo log overflow.
+ CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
+ h blob,i blob,j blob,k blob,l blob,m blob,n blob,
+@@ -389,10 +262,6 @@
+ UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
+ k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
+ CREATE INDEX t1a ON t1 (a(767));
+-CREATE INDEX t1b ON t1 (b(767));
+-CREATE INDEX t1c ON t1 (c(767));
+-CREATE INDEX t1d ON t1 (d(767));
+-CREATE INDEX t1e ON t1 (e(767));
+ UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
+ k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
+ CREATE INDEX t1f ON t1 (f(767));
+@@ -407,30 +276,6 @@
+ COMMIT;
+ CREATE INDEX t1g ON t1 (g(767));
+ UPDATE t1 SET g=@e;
+-CREATE INDEX t1h ON t1 (h(767));
+-UPDATE t1 SET h=@e;
+-CREATE INDEX t1i ON t1 (i(767));
+-UPDATE t1 SET i=@e;
+-CREATE INDEX t1j ON t1 (j(767));
+-UPDATE t1 SET j=@e;
+-CREATE INDEX t1k ON t1 (k(767));
+-UPDATE t1 SET k=@e;
+-CREATE INDEX t1l ON t1 (l(767));
+-UPDATE t1 SET l=@e;
+-CREATE INDEX t1m ON t1 (m(767));
+-UPDATE t1 SET m=@e;
+-CREATE INDEX t1n ON t1 (n(767));
+-UPDATE t1 SET n=@e;
+-CREATE INDEX t1o ON t1 (o(767));
+-UPDATE t1 SET o=@e;
+-CREATE INDEX t1p ON t1 (p(767));
+-UPDATE t1 SET p=@e;
+-CREATE INDEX t1q ON t1 (q(767));
+-UPDATE t1 SET q=@e;
+-CREATE INDEX t1r ON t1 (r(767));
+-UPDATE t1 SET r=@e;
+-CREATE INDEX t1s ON t1 (s(767));
+-UPDATE t1 SET s=@e;
+ CREATE INDEX t1t ON t1 (t(767));
+ BEGIN;
+ UPDATE t1 SET t=@e;
+@@ -463,24 +308,8 @@
+ `t` blob DEFAULT NULL,
+ `u` blob DEFAULT NULL,
+ KEY `t1a` (`a`(767)),
+- KEY `t1b` (`b`(767)),
+- KEY `t1c` (`c`(767)),
+- KEY `t1d` (`d`(767)),
+- KEY `t1e` (`e`(767)),
+ KEY `t1f` (`f`(767)),
+ KEY `t1g` (`g`(767)),
+- KEY `t1h` (`h`(767)),
+- KEY `t1i` (`i`(767)),
+- KEY `t1j` (`j`(767)),
+- KEY `t1k` (`k`(767)),
+- KEY `t1l` (`l`(767)),
+- KEY `t1m` (`m`(767)),
+- KEY `t1n` (`n`(767)),
+- KEY `t1o` (`o`(767)),
+- KEY `t1p` (`p`(767)),
+- KEY `t1q` (`q`(767)),
+- KEY `t1r` (`r`(767)),
+- KEY `t1s` (`s`(767)),
+ KEY `t1t` (`t`(767)),
+ KEY `t1u` (`u`(767)),
+ KEY `t1ut` (`u`(767),`t`(767)),
+@@ -568,14 +397,14 @@
+ PRIMARY KEY (c(767),d(767)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
+ Warnings:
+-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++Warning 139 Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ DROP TABLE t1;
+ CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+ PRIMARY KEY (c(767),d(767)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
+ Warnings:
+-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++Warning 139 Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ DROP TABLE t1;
+ CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+@@ -585,7 +414,7 @@
+ CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
+ Warnings:
+-Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
++Warning 139 Row size too large (> 4030). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
+ DROP TABLE t1;
+ CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
+ ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
diff --git a/mysql-test/suite/innodb_zip/r/16k.result b/mysql-test/suite/innodb_zip/r/page_size.result
index 0d1e67f8268..332a59ff656 100644
--- a/mysql-test/suite/innodb_zip/r/16k.result
+++ b/mysql-test/suite/innodb_zip/r/page_size.result
@@ -4,7 +4,6 @@ SELECT variable_value FROM information_schema.global_status
WHERE LOWER(variable_name) = 'innodb_page_size';
variable_value
16384
-# Test 2) The number of buffer pool pages is dependent upon the page size.
# Test 3) Query some information_shema tables that are dependent upon
# the page size.
SELECT t.name table_name, t.n_cols, t.flag table_flags,
@@ -40,15 +39,13 @@ test/t2 5 1 PRIMARY 3 3 1 50
test/t3 5 41 PRIMARY 3 3 1 50
test/t4 5 33 PRIMARY 3 3 1 50
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t1 DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1.ibd
-test/t2 DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2.ibd
-test/t3 DEFAULT 8192 Compressed MYSQLD_DATADIR/test/t3.ibd
-test/t4 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4.ibd
+Space_Name Page_Size Zip_Size Path
+test/t1 DEFAULT DEFAULT MYSQLD_DATADIR/test/t1.ibd
+test/t2 DEFAULT DEFAULT MYSQLD_DATADIR/test/t2.ibd
+test/t3 DEFAULT 8192 MYSQLD_DATADIR/test/t3.ibd
+test/t4 DEFAULT DEFAULT MYSQLD_DATADIR/test/t4.ibd
DROP TABLE t1, t2, t3, t4;
# Test 4) The maximum row size is dependent upon the page size.
-# Redundant: 8123, Compact: 8126.
-# Compressed: 8126, Dynamic: 8126.
# Each row format has its own amount of overhead that
# varies depending on number of fields and other overhead.
SET SESSION innodb_strict_mode = ON;
@@ -174,9 +171,7 @@ f varchar(5) character set utf8,
PRIMARY KEY (a), KEY (b,c,d,e,f))
ENGINE=innodb;
ERROR 42000: Specified key was too long; max key length is 3072 bytes
-# Test 5) Make sure that KEY_BLOCK_SIZE=16, 8, 4, 2 & 1
-# are all accepted.
-SET SESSION innodb_strict_mode = ON;
+# Test 5) KEY_BLOCK_SIZE validation
CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
Level Code Message
@@ -264,22 +259,21 @@ FROM information_schema.tables WHERE table_name = 't1';
table_name row_format create_options
t1 Compressed row_format=COMPRESSED
DROP TABLE t1;
-# Test 6) Make sure that KEY_BLOCK_SIZE = 8 and 16
-# are rejected when innodb_file_per_table=OFF
+# Test 6) KEY_BLOCK_SIZE with innodb_file_per_table=OFF
SET SESSION innodb_strict_mode = ON;
SET GLOBAL innodb_file_per_table = OFF;
SHOW VARIABLES LIKE 'innodb_file_per_table';
Variable_name Value
innodb_file_per_table OFF
CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
-Got one of the listed errors
+ERROR HY000: Can't create table `test`.`t4` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
Error 1005 Can't create table `test`.`t4` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
-Got one of the listed errors
+ERROR HY000: Can't create table `test`.`t5` (errno: 140 "Wrong create options")
SHOW WARNINGS;
Level Code Message
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
@@ -493,124 +487,7 @@ t1 CREATE TABLE `t1` (
KEY `t1st` (`s`(767),`t`(767))
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
DROP TABLE t1;
-# Bug #12429576 - Test an assertion failure on purge.
-CREATE TABLE t1_purge (
-A int,
-B blob, C blob, D blob, E blob,
-F blob, G blob, H blob,
-PRIMARY KEY (B(767), C(767), D(767), E(767), A),
-INDEX (A)
-) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-INSERT INTO t1_purge VALUES (1,
-REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
-REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766));
-CREATE TABLE t2_purge (
-A int PRIMARY KEY,
-B blob, C blob, D blob, E blob,
-F blob, G blob, H blob, I blob,
-J blob, K blob, L blob,
-INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-INSERT INTO t2_purge VALUES (1,
-REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
-REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766), REPEAT('i', 766),
-REPEAT('j', 766), REPEAT('k', 766), REPEAT('l', 766));
-CREATE TABLE t3_purge (
-A int,
-B varchar(800), C varchar(800), D varchar(800), E varchar(800),
-F varchar(800), G varchar(800), H varchar(800),
-PRIMARY KEY (B(767), C(767), D(767), E(767), A),
-INDEX (A)
-) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-INSERT INTO t3_purge SELECT * FROM t1_purge;
-CREATE TABLE t4_purge (
-A int PRIMARY KEY,
-B varchar(800), C varchar(800), D varchar(800), E varchar(800),
-F varchar(800), G varchar(800), H varchar(800), I varchar(800),
-J varchar(800), K varchar(800), L varchar(800),
-INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-INSERT INTO t4_purge SELECT * FROM t2_purge;
-DELETE FROM t1_purge;
-DELETE FROM t2_purge;
-DELETE FROM t3_purge;
-DELETE FROM t4_purge;
-SET @r=REPEAT('a',500);
-CREATE TABLE t12637786(a int,
-v1 varchar(500), v2 varchar(500), v3 varchar(500),
-v4 varchar(500), v5 varchar(500), v6 varchar(500),
-v7 varchar(500), v8 varchar(500), v9 varchar(500),
-v10 varchar(500), v11 varchar(500), v12 varchar(500),
-v13 varchar(500), v14 varchar(500), v15 varchar(500),
-v16 varchar(500), v17 varchar(500), v18 varchar(500)
-) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-CREATE INDEX idx1 ON t12637786(a,v1);
-INSERT INTO t12637786 VALUES(9,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-UPDATE t12637786 SET a=1000;
-DELETE FROM t12637786;
-# Bug#12963823 - Test that the purge thread does not crash when
-CREATE TABLE t12963823(a blob,b blob,c blob,d blob,e blob,f blob,g blob,h blob,
-i blob,j blob,k blob,l blob,m blob,n blob,o blob,p blob)
-ENGINE=innodb ROW_FORMAT=dynamic;
-SET @r = REPEAT('a', 767);
-INSERT INTO t12963823 VALUES (@r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r);
-CREATE INDEX ndx_a ON t12963823 (a(500));
-CREATE INDEX ndx_b ON t12963823 (b(500));
-CREATE INDEX ndx_c ON t12963823 (c(500));
-CREATE INDEX ndx_d ON t12963823 (d(500));
-CREATE INDEX ndx_e ON t12963823 (e(500));
-CREATE INDEX ndx_f ON t12963823 (f(500));
-CREATE INDEX ndx_k ON t12963823 (k(500));
-CREATE INDEX ndx_l ON t12963823 (l(500));
-SET @r = REPEAT('b', 500);
-UPDATE t12963823 set a=@r,b=@r,c=@r,d=@r;
-UPDATE t12963823 set e=@r,f=@r,g=@r,h=@r;
-UPDATE t12963823 set i=@r,j=@r,k=@r,l=@r;
-UPDATE t12963823 set m=@r,n=@r,o=@r,p=@r;
-ALTER TABLE t12963823 DROP INDEX ndx_a;
-ALTER TABLE t12963823 DROP INDEX ndx_b;
-CREATE INDEX ndx_g ON t12963823 (g(500));
-CREATE INDEX ndx_h ON t12963823 (h(500));
-CREATE INDEX ndx_i ON t12963823 (i(500));
-CREATE INDEX ndx_j ON t12963823 (j(500));
-CREATE INDEX ndx_m ON t12963823 (m(500));
-CREATE INDEX ndx_n ON t12963823 (n(500));
-CREATE INDEX ndx_o ON t12963823 (o(500));
-CREATE INDEX ndx_p ON t12963823 (p(500));
-SHOW CREATE TABLE t12963823;
-Table Create Table
-t12963823 CREATE TABLE `t12963823` (
- `a` blob DEFAULT NULL,
- `b` blob DEFAULT NULL,
- `c` blob DEFAULT NULL,
- `d` blob DEFAULT NULL,
- `e` blob DEFAULT NULL,
- `f` blob DEFAULT NULL,
- `g` blob DEFAULT NULL,
- `h` blob DEFAULT NULL,
- `i` blob DEFAULT NULL,
- `j` blob DEFAULT NULL,
- `k` blob DEFAULT NULL,
- `l` blob DEFAULT NULL,
- `m` blob DEFAULT NULL,
- `n` blob DEFAULT NULL,
- `o` blob DEFAULT NULL,
- `p` blob DEFAULT NULL,
- KEY `ndx_c` (`c`(500)),
- KEY `ndx_d` (`d`(500)),
- KEY `ndx_e` (`e`(500)),
- KEY `ndx_f` (`f`(500)),
- KEY `ndx_k` (`k`(500)),
- KEY `ndx_l` (`l`(500)),
- KEY `ndx_g` (`g`(500)),
- KEY `ndx_h` (`h`(500)),
- KEY `ndx_i` (`i`(500)),
- KEY `ndx_j` (`j`(500)),
- KEY `ndx_m` (`m`(500)),
- KEY `ndx_n` (`n`(500)),
- KEY `ndx_o` (`o`(500)),
- KEY `ndx_p` (`p`(500))
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
# Bug#12547647 UPDATE LOGGING COULD EXCEED LOG PAGE SIZE
-SET SESSION innodb_strict_mode = ON;
CREATE TABLE bug12547647(
a int NOT NULL, b blob NOT NULL, c text,
PRIMARY KEY (b(10), a), INDEX (c(767)), INDEX(b(767))
@@ -623,7 +500,69 @@ SHOW WARNINGS;
Level Code Message
ROLLBACK;
DROP TABLE bug12547647;
-SET SESSION innodb_strict_mode = off;
+SET SESSION innodb_strict_mode = OFF;
+CREATE TABLE t1(
+pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
+pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
+pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
+pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
+sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
+sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
+sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
+sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
+PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
+pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
+KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
+sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
+ROW_FORMAT=Redundant ENGINE=InnoDB;
+SET @r = repeat('a', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('b', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('c', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('d', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('e', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+DELETE from t1;
+DROP TABLE t1;
+CREATE TABLE t1(
+pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
+pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
+pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
+pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
+sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
+sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
+sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
+sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
+PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
+pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
+KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
+sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
+ROW_FORMAT=Compressed KEY_BLOCK_SIZE=4 ENGINE=InnoDB;
+SET @r = repeat('a', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('b', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('c', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('d', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('e', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+DELETE from t1;
+DROP TABLE t1;
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
@@ -642,7 +581,7 @@ CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
-drop table t1;
+DROP TABLE t1;
CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
Warnings:
@@ -652,50 +591,3 @@ CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
DROP TABLE t1;
-#
-# Bug#56862 Execution of a query that uses index merge returns a wrong result
-#
-CREATE TABLE t1 (
-pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-a int,
-b int,
-INDEX idx(a))
-ENGINE=INNODB;
-INSERT INTO t1(a,b) VALUES
-(11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500),
-(3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800),
-(6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700),
-(13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000);
-INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1;
-INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1;
-INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1 VALUES (1000000, 0, 0);
-set @optimizer_switch_saved=@@optimizer_switch;
-SET SESSION optimizer_switch='derived_merge=off';
-SET SESSION sort_buffer_size = 1024*36;
-EXPLAIN
-SELECT COUNT(*) FROM
-(SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
-WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
-id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL #
-2 DERIVED t1 index_merge PRIMARY,idx idx,PRIMARY 5,4 NULL # Using sort_union(idx,PRIMARY); Using where
-SELECT COUNT(*) FROM
-(SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
-WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
-COUNT(*)
-1537
-set @@optimizer_switch=@optimizer_switch_saved;
-SET SESSION sort_buffer_size = DEFAULT;
-DROP TABLE t1;
-DROP TABLE t1_purge, t2_purge, t3_purge, t4_purge;
-DROP TABLE t12637786;
-DROP TABLE t12963823;
diff --git a/mysql-test/suite/innodb_zip/r/restart,full_crc32.rdiff b/mysql-test/suite/innodb_zip/r/restart,full_crc32.rdiff
deleted file mode 100644
index c783cdf17b5..00000000000
--- a/mysql-test/suite/innodb_zip/r/restart,full_crc32.rdiff
+++ /dev/null
@@ -1,188 +0,0 @@
---- restart.result
-+++ restart.reject
-@@ -211,18 +211,18 @@
- test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0 Single
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t1_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
--test/t2_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
-+test/t1_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t1_restart.ibd
-+test/t2_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t2_restart.ibd
- test/t3_restart DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- #
- # Shutdown the server and list the tablespace OS files
- #
-@@ -395,18 +395,18 @@
- test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0 Single
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t1_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
--test/t2_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
-+test/t1_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t1_restart.ibd
-+test/t2_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t2_restart.ibd
- test/t3_restart DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- DROP TABLE t1_restart;
- DROP TABLE t2_restart;
- DROP TABLE t3_restart;
-@@ -418,15 +418,15 @@
- ALTER TABLE t7_restart TRUNCATE PARTITION p1;
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- INSERT INTO t5_restart VALUES (1000000000, 'MySQL', 'InnoDB', '2011-11-11', 'Read this after reboot');
- INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
- INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
-@@ -522,15 +522,15 @@
- innodb_file_per_table ON
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- SELECT count(*) FROM t5_restart;
- count(*)
- 8
-@@ -623,15 +623,15 @@
- RENAME TABLE t7_restart TO t77_restart;
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
- SELECT count(*) FROM t55_restart;
- count(*)
-@@ -720,15 +720,15 @@
- innodb_file_per_table ON
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
- SELECT count(*) FROM t55_restart;
- count(*)
-@@ -853,15 +853,15 @@
- #
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
- SELECT count(*) FROM t4_restart;
- count(*)
-@@ -990,15 +990,15 @@
- #
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
- SELECT count(*) FROM t4_restart;
- count(*)
diff --git a/mysql-test/suite/innodb_zip/r/restart,strict_full_crc32.rdiff b/mysql-test/suite/innodb_zip/r/restart,strict_full_crc32.rdiff
deleted file mode 100644
index c783cdf17b5..00000000000
--- a/mysql-test/suite/innodb_zip/r/restart,strict_full_crc32.rdiff
+++ /dev/null
@@ -1,188 +0,0 @@
---- restart.result
-+++ restart.reject
-@@ -211,18 +211,18 @@
- test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0 Single
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t1_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
--test/t2_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
-+test/t1_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t1_restart.ibd
-+test/t2_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t2_restart.ibd
- test/t3_restart DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- #
- # Shutdown the server and list the tablespace OS files
- #
-@@ -395,18 +395,18 @@
- test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0 Single
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t1_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
--test/t2_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
-+test/t1_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t1_restart.ibd
-+test/t2_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t2_restart.ibd
- test/t3_restart DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- DROP TABLE t1_restart;
- DROP TABLE t2_restart;
- DROP TABLE t3_restart;
-@@ -418,15 +418,15 @@
- ALTER TABLE t7_restart TRUNCATE PARTITION p1;
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- INSERT INTO t5_restart VALUES (1000000000, 'MySQL', 'InnoDB', '2011-11-11', 'Read this after reboot');
- INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
- INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
-@@ -522,15 +522,15 @@
- innodb_file_per_table ON
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
- test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
--test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
--test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
--test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-+test/t5_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
- test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
--test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
--test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
-+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
- SELECT count(*) FROM t5_restart;
- count(*)
- 8
-@@ -623,15 +623,15 @@
- RENAME TABLE t7_restart TO t77_restart;
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
- SELECT count(*) FROM t55_restart;
- count(*)
-@@ -720,15 +720,15 @@
- innodb_file_per_table ON
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
- SELECT count(*) FROM t55_restart;
- count(*)
-@@ -853,15 +853,15 @@
- #
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
- SELECT count(*) FROM t4_restart;
- count(*)
-@@ -990,15 +990,15 @@
- #
- === information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
- Space_Name Page_Size Zip_Size Formats_Permitted Path
--test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-+test/t4_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t4_restart.ibd
- test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p0.ibd
- test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p1.ibd
--test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
--test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
--test/t55_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t55_restart.ibd
-+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
-+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
-+test/t55_restart DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t55_restart.ibd
- test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p2.ibd
--test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
--test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
-+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
-+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT NULL MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
- INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
- SELECT count(*) FROM t4_restart;
- count(*)
diff --git a/mysql-test/suite/innodb_zip/r/restart.result b/mysql-test/suite/innodb_zip/r/restart.result
index 179c7ac71e8..59d739db5b5 100644
--- a/mysql-test/suite/innodb_zip/r/restart.result
+++ b/mysql-test/suite/innodb_zip/r/restart.result
@@ -210,19 +210,19 @@ test/t7_restart#p#p0#sp#s1 test/t7_restart#p#p0#sp#s1 97 8 Dynamic 0
test/t7_restart#p#p1#sp#s2 test/t7_restart#p#p1#sp#s2 97 8 Dynamic 0
test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t1_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
-test/t2_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
-test/t3_restart DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
-test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
-test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
-test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t1_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t1_restart.ibd
+test/t2_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t2_restart.ibd
+test/t3_restart DEFAULT 2048 MYSQLD_DATADIR/test/t3_restart.ibd
+test/t4_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t4_restart.ibd
+test/t5_restart DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
+test/t6_restart#p#p0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
+test/t6_restart#p#p1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
+test/t6_restart#p#p2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
#
# Shutdown the server and list the tablespace OS files
#
@@ -395,19 +395,19 @@ test/t7_restart#p#p0#sp#s1 test/t7_restart#p#p0#sp#s1 97 8 Dynamic 0
test/t7_restart#p#p1#sp#s2 test/t7_restart#p#p1#sp#s2 97 8 Dynamic 0
test/t7_restart#p#p1#sp#s3 test/t7_restart#p#p1#sp#s3 97 8 Dynamic 0
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t1_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t1_restart.ibd
-test/t2_restart DEFAULT DEFAULT Compact or Redundant MYSQLD_DATADIR/test/t2_restart.ibd
-test/t3_restart DEFAULT 2048 Compressed MYSQLD_DATADIR/test/t3_restart.ibd
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
-test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
-test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
-test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t1_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t1_restart.ibd
+test/t2_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t2_restart.ibd
+test/t3_restart DEFAULT 2048 MYSQLD_DATADIR/test/t3_restart.ibd
+test/t4_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t4_restart.ibd
+test/t5_restart DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
+test/t6_restart#p#p0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
+test/t6_restart#p#p1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
+test/t6_restart#p#p2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
DROP TABLE t1_restart;
DROP TABLE t2_restart;
DROP TABLE t3_restart;
@@ -418,16 +418,16 @@ TRUNCATE TABLE t5_restart;
ALTER TABLE t6_restart TRUNCATE PARTITION p2;
ALTER TABLE t7_restart TRUNCATE PARTITION p1;
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
-test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
-test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
-test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t4_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t4_restart.ibd
+test/t6_restart#p#p0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
+test/t6_restart#p#p1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
+test/t5_restart DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
+test/t6_restart#p#p2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
INSERT INTO t5_restart VALUES (1000000000, 'MySQL', 'InnoDB', '2011-11-11', 'Read this after reboot');
INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
@@ -523,16 +523,16 @@ SHOW VARIABLES LIKE 'innodb_file_per_table';
Variable_name Value
innodb_file_per_table ON
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-test/t6_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
-test/t6_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
-test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
-test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
-test/t5_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
-test/t6_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
-test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
-test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t4_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t4_restart.ibd
+test/t6_restart#p#p0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p0.ibd
+test/t6_restart#p#p1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p1.ibd
+test/t7_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s0.ibd
+test/t7_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p0#sp#s1.ibd
+test/t5_restart DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd
+test/t6_restart#p#p2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t6_restart#p#p2.ibd
+test/t7_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s2.ibd
+test/t7_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t7_restart#p#p1#sp#s3.ibd
SELECT count(*) FROM t5_restart;
count(*)
8
@@ -624,16 +624,16 @@ RENAME TABLE t5_restart TO t55_restart;
RENAME TABLE t6_restart TO t66_restart;
RENAME TABLE t7_restart TO t77_restart;
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
-test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
-test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
-test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
-test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
-test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
-test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
-test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t4_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t4_restart.ibd
+test/t66_restart#p#p0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
+test/t66_restart#p#p1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
+test/t55_restart DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
+test/t66_restart#p#p2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
SELECT count(*) FROM t55_restart;
count(*)
@@ -722,16 +722,16 @@ SHOW VARIABLES LIKE 'innodb_file_per_table';
Variable_name Value
innodb_file_per_table ON
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
-test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
-test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
-test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
-test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
-test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
-test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
-test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t4_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t4_restart.ibd
+test/t66_restart#p#p0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p0.ibd
+test/t66_restart#p#p1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p1.ibd
+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s0.ibd
+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p0#sp#s1.ibd
+test/t55_restart DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t55_restart.ibd
+test/t66_restart#p#p2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t66_restart#p#p2.ibd
+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s2.ibd
+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQL_TMP_DIR/alt_dir/test/t77_restart#p#p1#sp#s3.ibd
INSERT INTO t55_restart (SELECT 0, c2, c3, c4, c5 FROM t55_restart);
SELECT count(*) FROM t55_restart;
count(*)
@@ -856,16 +856,16 @@ t77_restart#p#p1#sp#s3.ibd
#
# restart
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
-test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p0.ibd
-test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p1.ibd
-test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
-test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
-test/t55_restart DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
-test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p2.ibd
-test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
-test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t4_restart DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
+test/t66_restart#p#p0 DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p0.ibd
+test/t66_restart#p#p1 DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p1.ibd
+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s0.ibd
+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p0#sp#s1.ibd
+test/t55_restart DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t55_restart.ibd
+test/t66_restart#p#p2 DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t66_restart#p#p2.ibd
+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s2.ibd
+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQL_TMP_DIR/new_dir/test/t77_restart#p#p1#sp#s3.ibd
INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
SELECT count(*) FROM t4_restart;
count(*)
@@ -994,16 +994,16 @@ t77_restart.par
#
# restart
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
-Space_Name Page_Size Zip_Size Formats_Permitted Path
-test/t4_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t4_restart.ibd
-test/t66_restart#p#p0 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p0.ibd
-test/t66_restart#p#p1 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p1.ibd
-test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
-test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
-test/t55_restart DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t55_restart.ibd
-test/t66_restart#p#p2 DEFAULT DEFAULT Compressed MYSQLD_DATADIR/test/t66_restart#p#p2.ibd
-test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
-test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT Dynamic MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
+Space_Name Page_Size Zip_Size Path
+test/t4_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t4_restart.ibd
+test/t66_restart#p#p0 DEFAULT DEFAULT MYSQLD_DATADIR/test/t66_restart#p#p0.ibd
+test/t66_restart#p#p1 DEFAULT DEFAULT MYSQLD_DATADIR/test/t66_restart#p#p1.ibd
+test/t77_restart#p#p0#sp#s0 DEFAULT DEFAULT MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s0.ibd
+test/t77_restart#p#p0#sp#s1 DEFAULT DEFAULT MYSQLD_DATADIR/test/t77_restart#p#p0#sp#s1.ibd
+test/t55_restart DEFAULT DEFAULT MYSQLD_DATADIR/test/t55_restart.ibd
+test/t66_restart#p#p2 DEFAULT DEFAULT MYSQLD_DATADIR/test/t66_restart#p#p2.ibd
+test/t77_restart#p#p1#sp#s2 DEFAULT DEFAULT MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s2.ibd
+test/t77_restart#p#p1#sp#s3 DEFAULT DEFAULT MYSQLD_DATADIR/test/t77_restart#p#p1#sp#s3.ibd
INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
SELECT count(*) FROM t4_restart;
count(*)
diff --git a/mysql-test/suite/innodb_zip/t/4k-master.opt b/mysql-test/suite/innodb_zip/t/4k-master.opt
deleted file mode 100644
index 82f574a8039..00000000000
--- a/mysql-test/suite/innodb_zip/t/4k-master.opt
+++ /dev/null
@@ -1,3 +0,0 @@
---loose-innodb-sys-indexes
---loose-innodb-sys-tablespaces
---loose-innodb-sys-datafiles
diff --git a/mysql-test/suite/innodb_zip/t/4k.test b/mysql-test/suite/innodb_zip/t/4k.test
deleted file mode 100644
index 3b8c1771a96..00000000000
--- a/mysql-test/suite/innodb_zip/t/4k.test
+++ /dev/null
@@ -1,433 +0,0 @@
-# Tests for setting innodb-page-size=4k
-
---source include/have_innodb.inc
---source include/have_innodb_4k.inc
-SET default_storage_engine=InnoDB;
-
---disable_query_log
-let $MYSQLD_DATADIR = `select @@datadir`;
-let $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
-
-call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
---enable_query_log
-
---echo # Test 1) Show the page size from Information Schema
---disable_warnings
-SELECT variable_value FROM information_schema.global_status
- WHERE LOWER(variable_name) = 'innodb_page_size';
---enable_warnings
-
---echo # Test 2) The number of buffer pool pages is dependent upon the page size.
---disable_warnings
---replace_result 2048 {checked_valid}
-SELECT variable_value FROM information_schema.global_status
- WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
---enable_warnings
-
---echo # Test 3) Query some information_shema tables that are dependent upon
---echo # the page size.
-# Show the metadata for tables in schema 'mysql'.
-# Pulled from innodb-system-table-view.test
-# The IDs of mysql.innodb_table_stats and mysql.innodb_index_stats are
-# unpredictable. They depend on whether mtr has created the database for
-# this test from scratch or is using a previously created database where
-# those tables have been dropped and recreated. Since we cannot force mtr
-# to use a freshly created database for this test we do not return the
-# table or index IDs. We can return the space IS of mysql schema tables
-# since they are created consistently during bootstrap.
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
- i.name index_name, i.page_no root_page, i.type,
- i.n_fields, i.merge_threshold
- FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
- INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
- WHERE t.table_id = i.table_id
- AND t.name LIKE 'mysql%'
- ORDER BY t.name, i.index_id;
-
-CREATE TABLE t1 (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
-CREATE TABLE t2 (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
-CREATE TABLE t3 (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb;
-CREATE TABLE t4 (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
-
-# Show the metadata for tables in schema 'test'.
-# Do not return the space ID since this tablespace may have existed before
-# this test runs. The root page number of each index should be consistent
-# within a file-per-table tablespace.
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
- i.name index_name, i.page_no root_page, i.type,
- i.n_fields, i.merge_threshold
- FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
- INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
- WHERE t.table_id = i.table_id
- AND t.name LIKE 'test%'
- ORDER BY t.name, i.name;
---source suite/innodb/include/show_i_s_tablespaces.inc
-DROP TABLE t1, t2, t3, t4;
-
---echo # Test 4) The maximum row size is dependent upon the page size.
---echo # Redundant: 1979, Compact: 1982.
---echo # Compressed: 1982, Dynamic: 1982.
---echo # Each row format has its own amount of overhead that
---echo # varies depending on number of fields and other overhead.
-
-SET SESSION innodb_strict_mode = ON;
-
-# Redundant table; 1927 bytes with 10 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(127)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(128)
-) ROW_FORMAT=redundant;
-
-# Compact table; 1955 bytes with 10 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
-) ROW_FORMAT=compact;
-
-# Compressed table; 1878 bytes with 10 CHAR fields
-# Bug#13391353 Limit is 1876 on 32-Linux only
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(76)
-) ROW_FORMAT=compressed;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(79)
-) ROW_FORMAT=compressed;
-
-# Dynamic table; 1955 bytes with 10 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
-) ROW_FORMAT=dynamic;
-
-#
-# Test the maximum key length
-# Moved from innodb-index.test since each page size has its own max key length.
-# Max Key Length is 768 for 4k pages.
-#
-# InnoDB assumes 3 bytes for each UTF8 character.
-#
-CREATE TABLE t1 (a varchar(64) character set utf8,
- b varchar(64) character set utf8,
- c varchar(64) character set utf8,
- d varchar(64) character set utf8,
- PRIMARY KEY (a,b,c,d))
- ENGINE=innodb;
-DROP TABLE t1;
---error ER_TOO_LONG_KEY
-CREATE TABLE t1 (a varchar(64) character set utf8,
- b varchar(64) character set utf8,
- c varchar(64) character set utf8,
- d varchar(65) character set utf8,
- PRIMARY KEY (a,b,c,d))
- ENGINE=innodb;
-CREATE TABLE t1 (a varchar(64) character set utf8,
- b varchar(64) character set utf8,
- c varchar(64) character set utf8,
- d varchar(64) character set utf8,
- e varchar(64) character set utf8,
- PRIMARY KEY (a), KEY (b,c,d,e))
- ENGINE=innodb;
-DROP TABLE t1;
---error ER_TOO_LONG_KEY
-CREATE TABLE t1 (a varchar(64) character set utf8,
- b varchar(64) character set utf8,
- c varchar(64) character set utf8,
- d varchar(64) character set utf8,
- e varchar(65) character set utf8,
- PRIMARY KEY (a), KEY (b,c,d,e))
- ENGINE=innodb;
-
---echo # Test 5) Make sure that KEY_BLOCK_SIZE=4, 2 & 1 are all
---echo # accepted and that KEY_BLOCK_SIZE=16 & 8 are rejected
---echo # in strict mode and converted to 4 in non-strict mode.
-
-SET SESSION innodb_strict_mode = ON;
-
---error ER_CANT_CREATE_TABLE
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-SHOW WARNINGS;
-
---error ER_CANT_CREATE_TABLE
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
-
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-SET SESSION innodb_strict_mode = OFF;
-
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-
---echo # Test 6) Make sure that KEY_BLOCK_SIZE = 8 and 16
---echo # are both rejected when innodb_file_per_table=OFF
-# Moved from innodb-zip.test
-SET SESSION innodb_strict_mode = ON;
-SET GLOBAL innodb_file_per_table = OFF;
-SHOW VARIABLES LIKE 'innodb_file_per_table';
---error ER_CANT_CREATE_TABLE
-CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
---error ER_CANT_CREATE_TABLE
-CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
-SHOW WARNINGS;
-SET GLOBAL innodb_file_per_table = ON;
-
---echo # Test 7) Not included here; 16k only
-
-
---echo # Test 8) Test creating a table that could lead to undo log overflow.
-CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
- h blob,i blob,j blob,k blob,l blob,m blob,n blob,
- o blob,p blob,q blob,r blob,s blob,t blob,u blob)
- ENGINE=InnoDB ROW_FORMAT=dynamic;
-SET @a = repeat('a', 767);
-SET @b = repeat('b', 767);
-SET @c = repeat('c', 767);
-SET @d = repeat('d', 767);
-SET @e = repeat('e', 767);
-
-# With no indexes defined, we can update all columns to max key part length.
-INSERT INTO t1 VALUES (@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a);
-UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
- k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
-
-# With one index defined, we can still update all fields.
-CREATE INDEX t1a ON t1 (a(767));
-UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
- k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
-
-# Add one more index and the UNDO record becomes too big to update all columns.
-# But a single transaction can update the columns in separate statements.
-# because the UNDO records will be smaller.
-CREATE INDEX t1b ON t1 (b(767));
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
- k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-ROLLBACK;
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
-UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
- n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-COMMIT;
-
-# Another index can still be added and a single field can still be updated
-CREATE INDEX t1c ON t1 (c(767));
-UPDATE t1 SET c=@e;
-
-# Add one more index and we cannot update a column to its defined index length.
-# This is a problem. It means that the DDL is allowed to create a table
-# that CANNOT be updated. See bug#12953735.
-CREATE INDEX t1d ON t1 (d(767));
-BEGIN;
-UPDATE t1 SET d=@e;
-ROLLBACK;
-
---replace_regex /> [0-9]*/> max_row_size/
-CREATE INDEX t1e ON t1 (e(767));
-
-SHOW CREATE TABLE t1;
-DROP TABLE t1;
-
-#
-# Bug #13336585 - INNODB: CHANGE BUFFERING WITH 4K PAGES CAN ASSERT
-# IF SECONDARY KEY IS NEAR MAX
-# If the secondary index tuple is close to half the page size,
-# ibuf_insert_low() could return DB_TOO_BIG_RECORD, which is not expected
-# in ibuf_insert(). In order to insure this does not happen, WL5756
-# imposes a maximum key length of 768 for 4k pages and 1536 for 8k pages.
-# The existing max key Size for 16k pages is 3072.
-#
-
-#-- disable_query_log
-# The flag innodb_change_buffering_debug is only available in debug builds.
-# It instructs InnoDB to try to evict pages from the buffer pool when
-# change buffering is possible, so that the change buffer will be used
-# whenever possible.
-# This flag is not used currently since it exposes valgrind error in ibuf
-# code with the following SQL
-#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
-#SET @innodb_change_buffering_debug_orig = @@innodb_change_buffering_debug;
-#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
-#SET GLOBAL innodb_change_buffering_debug = 1;
-#-- enable_query_log
-
-# make sure the largest possible key entry can be added to the insert buffer.
-# Make enough records so that the root page is not a leaf page.
-SET SESSION innodb_strict_mode = OFF;
-CREATE TABLE t1(
- pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
- pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
- pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
- pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
- sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
- sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
- sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
- sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
- PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
- pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
- KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
- sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
- ROW_FORMAT=Redundant ENGINE=InnoDB;
-SET @r = repeat('a', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-
-# Compressed tables do not compress parent pages. So the whole uncompressed
-# secondary tuple including the primary key must be able to fit in half the
-# compressed page size. This record length is enforced at index creation.
-# So the only way to get an ibuf tuple too big is to make the KEY_BLOCK_SIZE
-# the same as the page size.
-CREATE TABLE t1(
- pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
- pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
- pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
- pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
- sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
- sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
- sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
- sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
- PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
- pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
- KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
- sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
- ROW_FORMAT=Compressed KEY_BLOCK_SIZE=4 ENGINE=InnoDB;
-SET @r = repeat('a', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 48);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-
-#-- disable_query_log
-#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
-#SET GLOBAL innodb_change_buffering_debug = 0;
-#-- enable_query_log
-
-# The following should fail in non-strict mode too.
-# (The fix of Bug #50945 only affects REDUNDANT and COMPACT tables.)
-SET SESSION innodb_strict_mode = off;
---replace_regex /> [0-9]*/> max_row_size/
-CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
- PRIMARY KEY (c(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-DROP TABLE t1;
-CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
- PRIMARY KEY (c(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
-drop table t1;
-CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
- PRIMARY KEY (c(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
-drop table t1;
---replace_regex /> [0-9]*/> max_row_size/
-CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-DROP TABLE t1;
-CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_zip/t/8k-master.opt b/mysql-test/suite/innodb_zip/t/8k-master.opt
deleted file mode 100644
index 82f574a8039..00000000000
--- a/mysql-test/suite/innodb_zip/t/8k-master.opt
+++ /dev/null
@@ -1,3 +0,0 @@
---loose-innodb-sys-indexes
---loose-innodb-sys-tablespaces
---loose-innodb-sys-datafiles
diff --git a/mysql-test/suite/innodb_zip/t/8k.test b/mysql-test/suite/innodb_zip/t/8k.test
deleted file mode 100644
index 711eb594d4a..00000000000
--- a/mysql-test/suite/innodb_zip/t/8k.test
+++ /dev/null
@@ -1,463 +0,0 @@
-# Tests for setting innodb-page-size=8k
-
---source include/have_innodb.inc
---source include/have_innodb_8k.inc
---source include/innodb_checksum_algorithm.inc
-
-SET default_storage_engine=InnoDB;
-
---disable_query_log
-let $MYSQLD_DATADIR = `select @@datadir`;
-let $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
-
-call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
---enable_query_log
-
---echo # Test 1) Show the page size from Information Schema
---disable_warnings
-SELECT variable_value FROM information_schema.global_status
- WHERE LOWER(variable_name) = 'innodb_page_size';
---enable_warnings
-
---echo # Test 2) The number of buffer pool pages is dependent upon the page size.
---disable_warnings
---replace_result 1023 {checked_valid} 1024 {checked_valid}
-SELECT variable_value FROM information_schema.global_status
- WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
---enable_warnings
-
---echo # Test 3) Query some information_shema tables that are dependent upon
---echo # the page size.
-# Show the metadata for tables in schema 'mysql'.
-# Pulled from innodb-system-table-view.test
-# The IDs of mysql.innodb_table_stats and mysql.innodb_index_stats are
-# unpredictable. They depend on whether mtr has created the database for
-# this test from scratch or is using a previously created database where
-# those tables have been dropped and recreated. Since we cannot force mtr
-# to use a freshly created database for this test we do not return the
-# table or index IDs. We can return the space IS of mysql schema tables
-# since they are created consistently during bootstrap.
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
- i.name index_name, i.page_no root_page, i.type,
- i.n_fields, i.merge_threshold
- FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
- INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
- WHERE t.table_id = i.table_id
- AND t.name LIKE 'mysql%'
- ORDER BY t.name, i.index_id;
-
-CREATE TABLE t1 (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
-CREATE TABLE t2 (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
-CREATE TABLE t3 (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb;
-CREATE TABLE t4 (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
-
-# Show the metadata for tables in schema 'test'.
-# Do not return the space ID since this tablespace may have existed before
-# this test runs. The root page number of each index should be consistent
-# within a file-per-table tablespace.
-SELECT t.name table_name, t.n_cols, t.flag table_flags,
- i.name index_name, i.page_no root_page, i.type,
- i.n_fields, i.merge_threshold
- FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t,
- INFORMATION_SCHEMA.INNODB_SYS_INDEXES i
- WHERE t.table_id = i.table_id
- AND t.name LIKE 'test%'
- ORDER BY t.name, i.name;
---source suite/innodb/include/show_i_s_tablespaces.inc
-DROP TABLE t1, t2, t3, t4;
-
---echo # Test 4) The maximum row size is dependent upon the page size.
---echo # Redundant: 4027, Compact: 4030.
---echo # Compressed: 4030, Dynamic: 4030.
---echo # Each row format has its own amount of overhead that
---echo # varies depending on number of fields and other overhead.
-
-SET SESSION innodb_strict_mode = ON;
-
-# Redundant table; 3955 bytes with 20 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(155)
-) ROW_FORMAT=redundant;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(156)
-) ROW_FORMAT=redundant;
-
-# Compact table; 4002 bytes with 20 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
-) ROW_FORMAT=compact;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
-) ROW_FORMAT=compact;
-
-# Compressed table; 3905 bytes with 20 CHAR fields
-# Bug#13391353 Limit is 3903 on 32-Linux only
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
-) ROW_FORMAT=compressed;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(106)
-) ROW_FORMAT=compressed;
-
-# Dynamic table; 4002 bytes with 20 CHAR fields
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
-) ROW_FORMAT=dynamic;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
---error ER_TOO_BIG_ROWSIZE
-CREATE TABLE t1 (
-c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
-c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
-c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
-c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
-) ROW_FORMAT=dynamic;
-
-#
-# Test the maximum key length
-# Moved from innodb-index.test since each page size has its own max key length.
-# Max Key Length is 1536 for 8k pages.
-#
-# InnoDB assumes 3 bytes for each UTF8 character.
-#
-CREATE TABLE t1 (a varchar(128) character set utf8,
- b varchar(128) character set utf8,
- c varchar(128) character set utf8,
- d varchar(128) character set utf8,
- PRIMARY KEY (a,b,c,d))
- ENGINE=innodb;
-DROP TABLE t1;
---error ER_TOO_LONG_KEY
-CREATE TABLE t1 (a varchar(128) character set utf8,
- b varchar(128) character set utf8,
- c varchar(128) character set utf8,
- d varchar(129) character set utf8,
- PRIMARY KEY (a,b,c,d))
- ENGINE=innodb;
-CREATE TABLE t1 (a varchar(128) character set utf8,
- b varchar(128) character set utf8,
- c varchar(128) character set utf8,
- d varchar(128) character set utf8,
- e varchar(128) character set utf8,
- PRIMARY KEY (a), KEY (b,c,d,e))
- ENGINE=innodb;
-DROP TABLE t1;
---error ER_TOO_LONG_KEY
-CREATE TABLE t1 (a varchar(128) character set utf8,
- b varchar(128) character set utf8,
- c varchar(128) character set utf8,
- d varchar(128) character set utf8,
- e varchar(129) character set utf8,
- PRIMARY KEY (a), KEY (b,c,d,e))
- ENGINE=innodb;
-
---echo # Test 5) Make sure that KEY_BLOCK_SIZE=8, 4, 2 & 1 are all
---echo # accepted and that KEY_BLOCK_SIZE=16 is rejected in
---echo # strict mode and converted to 8 in non-strict mode.
-
-SET SESSION innodb_strict_mode = ON;
-
---error ER_CANT_CREATE_TABLE
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-SHOW WARNINGS;
-
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-SET SESSION innodb_strict_mode = OFF;
-
-CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=2;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=1;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-
-ALTER TABLE t1 KEY_BLOCK_SIZE=0;
-SHOW WARNINGS;
-SELECT table_name, row_format, create_options
- FROM information_schema.tables WHERE table_name = 't1';
-DROP TABLE t1;
-
-
---echo # Test 6) Make sure that KEY_BLOCK_SIZE = 8 and 16
---echo # are rejected when innodb_file_per_table=OFF
-# Moved from innodb-zip.test
-SET SESSION innodb_strict_mode = ON;
-SET GLOBAL innodb_file_per_table = OFF;
-SHOW VARIABLES LIKE 'innodb_file_per_table';
---error ER_CANT_CREATE_TABLE
-CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
-SHOW WARNINGS;
---error ER_CANT_CREATE_TABLE
-CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
-SHOW WARNINGS;
-SET GLOBAL innodb_file_per_table = ON;
-
---echo # Test 7) Not included here; 16k only
-
-
---echo # Test 8) Test creating a table that could lead to undo log overflow.
-CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
- h blob,i blob,j blob,k blob,l blob,m blob,n blob,
- o blob,p blob,q blob,r blob,s blob,t blob,u blob)
- ENGINE=InnoDB ROW_FORMAT=dynamic;
-SET @a = repeat('a', 767);
-SET @b = repeat('b', 767);
-SET @c = repeat('c', 767);
-SET @d = repeat('d', 767);
-SET @e = repeat('e', 767);
-
-# With no indexes defined, we can update all columns to max key part length.
-INSERT INTO t1 VALUES (@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a,@a);
-UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
- k=@b,l=@b,m=@b,n=@b,o=@b,p=@b,q=@b,r=@b,s=@b,t=@b,u=@b;
-
-# With this many indexes defined, we can still update all fields.
-CREATE INDEX t1a ON t1 (a(767));
-CREATE INDEX t1b ON t1 (b(767));
-UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
- k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
-
-# Add one more index and the UNDO record becomes too big to update all columns.
-# But a single transaction can update the columns in separate statements.
-# because the UNDO records will be smaller.
-CREATE INDEX t1c ON t1 (c(767));
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d,f=@d,g=@d,h=@d,i=@d,j=@d,
- k=@d,l=@d,m=@d,n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-ROLLBACK;
-BEGIN;
-UPDATE t1 SET a=@d,b=@d,c=@d,d=@d,e=@d;
-UPDATE t1 SET f=@d,g=@d,h=@d,i=@d,j=@d,k=@d,l=@d,m=@d,
- n=@d,o=@d,p=@d,q=@d,r=@d,s=@d,t=@d,u=@d;
-COMMIT;
-
-# More indexes can still be added and a single field can still be updated
-CREATE INDEX t1d ON t1 (d(767));
-UPDATE t1 SET d=@e;
-CREATE INDEX t1e ON t1 (e(767));
-UPDATE t1 SET e=@e;
-CREATE INDEX t1f ON t1 (f(767));
-UPDATE t1 SET f=@e;
-CREATE INDEX t1g ON t1 (g(767));
-UPDATE t1 SET g=@e;
-CREATE INDEX t1h ON t1 (h(767));
-UPDATE t1 SET h=@e;
-CREATE INDEX t1i ON t1 (i(767));
-UPDATE t1 SET i=@e;
-
---replace_regex /> [0-9]*/> max_row_size/
-CREATE INDEX t1k ON t1 (j(767));
-
-# But it does allow a 500 byte index. And with this, we cannot
-# update the record. This is a problem. It means that the DDL is
-# allowed to create a table and a record that CANNOT be updated.
-# See bug#12953735
---replace_regex /> [0-9]*/> max_row_size/
-CREATE INDEX t1j ON t1 (j(500));
-BEGIN;
-UPDATE t1 SET j=@e;
-ROLLBACK;
-SHOW CREATE TABLE t1;
-DROP TABLE t1;
-
-#
-# Bug #13336585 - INNODB: CHANGE BUFFERING WITH 4K PAGES CAN ASSERT
-# IF SECONDARY KEY IS NEAR MAX
-# If the secondary index tuple is close to half the page size,
-# ibuf_insert_low() could return DB_TOO_BIG_RECORD, which is not expected
-# in ibuf_insert(). In order to insure this does not happen, WL5756
-# imposes a maximum key length of 768 for 4k pages and 1536 for 8k pages.
-# The existing max key Size for 16k pages is 3072.
-#
-
-#-- disable_query_log
-# The flag innodb_change_buffering_debug is only available in debug builds.
-# It instructs InnoDB to try to evict pages from the buffer pool when
-# change buffering is possible, so that the change buffer will be used
-# whenever possible.
-#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
-#SET @innodb_change_buffering_debug_orig = @@innodb_change_buffering_debug;
-#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
-#SET GLOBAL innodb_change_buffering_debug = 1;
-#-- enable_query_log
-
-# make sure the largest possible key entry can be added to the insert buffer.
-# Make enough records so that the root page is not a leaf page.
-SET SESSION innodb_strict_mode = OFF;
-CREATE TABLE t1(
- pk01 varchar(96), pk02 varchar(96), pk03 varchar(96), pk04 varchar(96),
- pk05 varchar(96), pk06 varchar(96), pk07 varchar(96), pk08 varchar(96),
- pk09 varchar(96), pk10 varchar(96), pk11 varchar(96), pk12 varchar(96),
- pk13 varchar(96), pk14 varchar(96), pk15 varchar(96), pk16 varchar(96),
- sk01 varchar(96), sk02 varchar(96), sk03 varchar(96), sk04 varchar(96),
- sk05 varchar(96), sk06 varchar(96), sk07 varchar(96), sk08 varchar(96),
- sk09 varchar(96), sk10 varchar(96), sk11 varchar(96), sk12 varchar(96),
- sk13 varchar(96), sk14 varchar(96), sk15 varchar(96), sk16 varchar(96),
- PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
- pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
- KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
- sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
- ROW_FORMAT=Redundant ENGINE=InnoDB;
-SET @r = repeat('a', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-
-# Compressed tables do not compress parent pages. So the whole uncompressed
-# secondary tuple including the primary key must be able to fit in half the
-# compressed page size. This record length is enforced at index creation.
-# So the only way to get an ibuf tuple too big is to make the KEY_BLOCK_SIZE
-# the same as the page size.
-CREATE TABLE t1(
- pk01 varchar(96), pk02 varchar(96), pk03 varchar(96), pk04 varchar(96),
- pk05 varchar(96), pk06 varchar(96), pk07 varchar(96), pk08 varchar(96),
- pk09 varchar(96), pk10 varchar(96), pk11 varchar(96), pk12 varchar(96),
- pk13 varchar(96), pk14 varchar(96), pk15 varchar(96), pk16 varchar(96),
- sk01 varchar(96), sk02 varchar(96), sk03 varchar(96), sk04 varchar(96),
- sk05 varchar(96), sk06 varchar(96), sk07 varchar(96), sk08 varchar(96),
- sk09 varchar(96), sk10 varchar(96), sk11 varchar(96), sk12 varchar(96),
- sk13 varchar(96), sk14 varchar(96), sk15 varchar(96), sk16 varchar(96),
- PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
- pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
- KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
- sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
- ROW_FORMAT=Compressed KEY_BLOCK_SIZE=8 ENGINE=InnoDB;
-SET @r = repeat('a', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('b', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('c', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('d', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-SET @r = repeat('e', 96);
-INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
- @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-DELETE from t1;
-DROP TABLE t1;
-
-#-- disable_query_log
-#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
-#SET GLOBAL innodb_change_buffering_debug = 0;
-#-- enable_query_log
-
-# The following should fail in non-strict mode too.
-# (The fix of Bug #50945 only affects REDUNDANT and COMPACT tables.)
-SET SESSION innodb_strict_mode = off;
---replace_regex /> [0-9]*/> max_row_size/
-CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
- PRIMARY KEY (c(767),d(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-DROP TABLE t1;
---replace_regex /> [0-9]*/> max_row_size/
-CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
- PRIMARY KEY (c(767),d(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
-DROP TABLE t1;
-CREATE TABLE t1(
- c text NOT NULL, d text NOT NULL,
- PRIMARY KEY (c(767),d(767)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
-drop table t1;
---replace_regex /> [0-9]*/> max_row_size/
-CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-DROP TABLE t1;
-CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
-ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
-INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
-DROP TABLE t1;
diff --git a/mysql-test/suite/innodb_zip/t/16k-master.opt b/mysql-test/suite/innodb_zip/t/page_size.opt
index 82f574a8039..82f574a8039 100644
--- a/mysql-test/suite/innodb_zip/t/16k-master.opt
+++ b/mysql-test/suite/innodb_zip/t/page_size.opt
diff --git a/mysql-test/suite/innodb_zip/t/16k.test b/mysql-test/suite/innodb_zip/t/page_size.test
index c3da0de3acc..0faf4428f62 100644
--- a/mysql-test/suite/innodb_zip/t/16k.test
+++ b/mysql-test/suite/innodb_zip/t/page_size.test
@@ -1,9 +1,5 @@
-# Tests for setting innodb-page-size=16k; default value
---source include/big_test.inc
---source include/have_innodb.inc
---source include/have_innodb_16k.inc
+--source include/innodb_page_size_small.inc
--source include/innodb_checksum_algorithm.inc
-
SET default_storage_engine=InnoDB;
--disable_query_log
@@ -11,24 +7,11 @@ let $MYSQLD_DATADIR = `select @@datadir`;
let $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
call mtr.add_suppression("Cannot add field .* in table .* because after adding it, the row size is");
-# These values can change during the test
--enable_query_log
--echo # Test 1) Show the page size from Information Schema
---disable_warnings
SELECT variable_value FROM information_schema.global_status
WHERE LOWER(variable_name) = 'innodb_page_size';
---enable_warnings
-
---echo # Test 2) The number of buffer pool pages is dependent upon the page size.
-#
-# buffer pool pages is dependent upon buffer pool size and what other
-# tests are run concurrently
-#--disable_warnings
-#--replace_result 1535 {checked_valid} 1536 {checked_valid}
-#SELECT variable_value FROM information_schema.global_status
-# WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
-#--enable_warnings
--echo # Test 3) Query some information_shema tables that are dependent upon
--echo # the page size.
@@ -71,13 +54,212 @@ SELECT t.name table_name, t.n_cols, t.flag table_flags,
DROP TABLE t1, t2, t3, t4;
--echo # Test 4) The maximum row size is dependent upon the page size.
---echo # Redundant: 8123, Compact: 8126.
---echo # Compressed: 8126, Dynamic: 8126.
--echo # Each row format has its own amount of overhead that
--echo # varies depending on number of fields and other overhead.
SET SESSION innodb_strict_mode = ON;
+if ($INNODB_PAGE_SIZE == 4096) {
+# Redundant table; 1927 bytes with 10 CHAR fields
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(127)
+) ROW_FORMAT=redundant;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(128)
+) ROW_FORMAT=redundant;
+
+# Compact table; 1955 bytes with 10 CHAR fields
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
+) ROW_FORMAT=compact;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
+) ROW_FORMAT=compact;
+
+# Compressed table; 1878 bytes with 10 CHAR fields
+# Bug#13391353 Limit is 1876 on 32-Linux only
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(76)
+) ROW_FORMAT=compressed;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(79)
+) ROW_FORMAT=compressed;
+
+# Dynamic table; 1955 bytes with 10 CHAR fields
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(155)
+) ROW_FORMAT=dynamic;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(156)
+) ROW_FORMAT=dynamic;
+
+#
+# Test the maximum key length
+# Moved from innodb-index.test since each page size has its own max key length.
+# Max Key Length is 1173 for 4k pages.
+#
+# InnoDB assumes 3 bytes for each UTF8 character.
+#
+CREATE TABLE t1 (a varchar(98) character set utf8,
+ b varchar(98) character set utf8,
+ c varchar(98) character set utf8,
+ d varchar(97) character set utf8,
+ PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+DROP TABLE t1;
+--error ER_TOO_LONG_KEY
+CREATE TABLE t1 (a varchar(98) character set utf8,
+ b varchar(98) character set utf8,
+ c varchar(98) character set utf8,
+ d varchar(98) character set utf8,
+ PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+CREATE TABLE t1 (a varchar(98) character set utf8,
+ b varchar(98) character set utf8,
+ c varchar(98) character set utf8,
+ d varchar(98) character set utf8,
+ e varchar(97) character set utf8,
+ PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+DROP TABLE t1;
+--error ER_TOO_LONG_KEY
+CREATE TABLE t1 (a varchar(98) character set utf8,
+ b varchar(98) character set utf8,
+ c varchar(98) character set utf8,
+ d varchar(98) character set utf8,
+ e varchar(98) character set utf8,
+ PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+}
+if ($INNODB_PAGE_SIZE == 8192) {
+# Redundant table; 3955 bytes with 20 CHAR fields
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(155)
+) ROW_FORMAT=redundant;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(156)
+) ROW_FORMAT=redundant;
+
+# Compact table; 4002 bytes with 20 CHAR fields
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
+) ROW_FORMAT=compact;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
+) ROW_FORMAT=compact;
+
+# Compressed table; 3905 bytes with 20 CHAR fields
+# Bug#13391353 Limit is 3903 on 32-Linux only
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(103)
+) ROW_FORMAT=compressed;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(106)
+) ROW_FORMAT=compressed;
+
+# Dynamic table; 4002 bytes with 20 CHAR fields
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(202)
+) ROW_FORMAT=dynamic;
+DROP TABLE t1;
+--replace_regex /> [0-9]*/> max_row_size/
+--error ER_TOO_BIG_ROWSIZE
+CREATE TABLE t1 (
+c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
+c06 char(200), c07 char(200), c08 char(200), c09 char(200), c10 char(200),
+c11 char(200), c12 char(200), c13 char(200), c14 char(200), c15 char(200),
+c16 char(200), c17 char(200), c18 char(200), c19 char(200), c20 char(203)
+) ROW_FORMAT=dynamic;
+
+#
+# Test the maximum key length
+# Moved from innodb-index.test since each page size has its own max key length.
+# Max Key Length is 1536 for 8k pages.
+#
+# InnoDB assumes 3 bytes for each UTF8 character.
+#
+CREATE TABLE t1 (a varchar(128) character set utf8,
+ b varchar(128) character set utf8,
+ c varchar(128) character set utf8,
+ d varchar(128) character set utf8,
+ PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+DROP TABLE t1;
+--error ER_TOO_LONG_KEY
+CREATE TABLE t1 (a varchar(128) character set utf8,
+ b varchar(128) character set utf8,
+ c varchar(128) character set utf8,
+ d varchar(129) character set utf8,
+ PRIMARY KEY (a,b,c,d))
+ ENGINE=innodb;
+CREATE TABLE t1 (a varchar(128) character set utf8,
+ b varchar(128) character set utf8,
+ c varchar(128) character set utf8,
+ d varchar(128) character set utf8,
+ e varchar(128) character set utf8,
+ PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+DROP TABLE t1;
+--error ER_TOO_LONG_KEY
+CREATE TABLE t1 (a varchar(128) character set utf8,
+ b varchar(128) character set utf8,
+ c varchar(128) character set utf8,
+ d varchar(128) character set utf8,
+ e varchar(129) character set utf8,
+ PRIMARY KEY (a), KEY (b,c,d,e))
+ ENGINE=innodb;
+}
+if ($INNODB_PAGE_SIZE == 16384) {
# Redundant table; 8011 bytes with 40 char fields
CREATE TABLE t1 (
c01 char(200), c02 char(200), c03 char(200), c04 char(200), c05 char(200),
@@ -216,12 +398,32 @@ CREATE TABLE t1 (a varchar(255) character set utf8,
f varchar(5) character set utf8,
PRIMARY KEY (a), KEY (b,c,d,e,f))
ENGINE=innodb;
+}
---echo # Test 5) Make sure that KEY_BLOCK_SIZE=16, 8, 4, 2 & 1
---echo # are all accepted.
+--echo # Test 5) KEY_BLOCK_SIZE validation
-SET SESSION innodb_strict_mode = ON;
+if ($INNODB_PAGE_SIZE == 4096) {
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+SHOW WARNINGS;
+
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
+SHOW WARNINGS;
+
+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED;
+}
+if ($INNODB_PAGE_SIZE == 8192) {
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
+SHOW WARNINGS;
+CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
+SHOW WARNINGS;
+SELECT table_name, row_format, create_options
+ FROM information_schema.tables WHERE table_name = 't1';
+}
+if ($INNODB_PAGE_SIZE == 16384) {
CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
SELECT table_name, row_format, create_options
@@ -231,7 +433,7 @@ ALTER TABLE t1 KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
SELECT table_name, row_format, create_options
FROM information_schema.tables WHERE table_name = 't1';
-
+}
ALTER TABLE t1 KEY_BLOCK_SIZE=4;
SHOW WARNINGS;
SELECT table_name, row_format, create_options
@@ -287,20 +489,20 @@ SELECT table_name, row_format, create_options
DROP TABLE t1;
---echo # Test 6) Make sure that KEY_BLOCK_SIZE = 8 and 16
---echo # are rejected when innodb_file_per_table=OFF
+--echo # Test 6) KEY_BLOCK_SIZE with innodb_file_per_table=OFF
# Moved from innodb-zip.test
SET SESSION innodb_strict_mode = ON;
SET GLOBAL innodb_file_per_table = OFF;
SHOW VARIABLES LIKE 'innodb_file_per_table';
---error ER_ILLEGAL_HA,1005
+--error ER_CANT_CREATE_TABLE
CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
---error ER_ILLEGAL_HA,1005
+--error ER_CANT_CREATE_TABLE
CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
SET GLOBAL innodb_file_per_table = ON;
+if ($INNODB_PAGE_SIZE == 16384) {
--echo # Test 7) This series of tests were moved from innodb-index to here
--echo # because the second alter table t1 assumes a 16k page size.
--echo # Moving the test allows the rest of innodb-index to be run on all
@@ -412,6 +614,7 @@ EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%';
#
# end disabled45225_1
DROP TABLE t1;
+}
--echo # Test 8) Test creating a table that could lead to undo log overflow.
CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob,
@@ -431,10 +634,12 @@ UPDATE t1 SET a=@b,b=@b,c=@b,d=@b,e=@b,f=@b,g=@b,h=@b,i=@b,j=@b,
# With this many indexes defined, we can still update all fields.
CREATE INDEX t1a ON t1 (a(767));
+if ($INNODB_PAGE_SIZE == 16384) {
CREATE INDEX t1b ON t1 (b(767));
CREATE INDEX t1c ON t1 (c(767));
CREATE INDEX t1d ON t1 (d(767));
CREATE INDEX t1e ON t1 (e(767));
+}
UPDATE t1 SET a=@c,b=@c,c=@c,d=@c,e=@c,f=@c,g=@c,h=@c,i=@c,j=@c,
k=@c,l=@c,m=@c,n=@c,o=@c,p=@c,q=@c,r=@c,s=@c,t=@c,u=@c;
@@ -455,6 +660,7 @@ COMMIT;
# More indexes can still be added and a single field can still be updated
CREATE INDEX t1g ON t1 (g(767));
UPDATE t1 SET g=@e;
+if ($INNODB_PAGE_SIZE == 16384) {
CREATE INDEX t1h ON t1 (h(767));
UPDATE t1 SET h=@e;
CREATE INDEX t1i ON t1 (i(767));
@@ -479,6 +685,7 @@ CREATE INDEX t1r ON t1 (r(767));
UPDATE t1 SET r=@e;
CREATE INDEX t1s ON t1 (s(767));
UPDATE t1 SET s=@e;
+}
# Add one more index and we cannot update a column to its defined index length.
# This is a problem. It means that the DDL is allowed to create a table
@@ -489,133 +696,25 @@ UPDATE t1 SET t=@e;
ROLLBACK;
CREATE INDEX t1u ON t1 (u(767));
+if ($INNODB_PAGE_SIZE == 4096)
+{
+CREATE INDEX t1ut ON t1 (u(767));
+CREATE INDEX t1st ON t1 (s(767));
+}
+if ($INNODB_PAGE_SIZE != 4096)
+{
CREATE INDEX t1ut ON t1 (u(767), t(767));
CREATE INDEX t1st ON t1 (s(767), t(767));
+}
SHOW CREATE TABLE t1;
DROP TABLE t1;
---echo # Bug #12429576 - Test an assertion failure on purge.
-# This test is not in innodb_8k or innodb_4k since the bug is not about
-# page size. It just tests the condition that caused the assertion.
-CREATE TABLE t1_purge (
-A int,
-B blob, C blob, D blob, E blob,
-F blob, G blob, H blob,
-PRIMARY KEY (B(767), C(767), D(767), E(767), A),
-INDEX (A)
-) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-
-INSERT INTO t1_purge VALUES (1,
-REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
-REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766));
-
-CREATE TABLE t2_purge (
-A int PRIMARY KEY,
-B blob, C blob, D blob, E blob,
-F blob, G blob, H blob, I blob,
-J blob, K blob, L blob,
-INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-
-INSERT INTO t2_purge VALUES (1,
-REPEAT('b', 766), REPEAT('c', 766), REPEAT('d', 766), REPEAT('e', 766),
-REPEAT('f', 766), REPEAT('g', 766), REPEAT('h', 766), REPEAT('i', 766),
-REPEAT('j', 766), REPEAT('k', 766), REPEAT('l', 766));
-
-CREATE TABLE t3_purge (
-A int,
-B varchar(800), C varchar(800), D varchar(800), E varchar(800),
-F varchar(800), G varchar(800), H varchar(800),
-PRIMARY KEY (B(767), C(767), D(767), E(767), A),
-INDEX (A)
-) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-
-INSERT INTO t3_purge SELECT * FROM t1_purge;
-
-CREATE TABLE t4_purge (
-A int PRIMARY KEY,
-B varchar(800), C varchar(800), D varchar(800), E varchar(800),
-F varchar(800), G varchar(800), H varchar(800), I varchar(800),
-J varchar(800), K varchar(800), L varchar(800),
-INDEX (B(767))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-
-INSERT INTO t4_purge SELECT * FROM t2_purge;
-
-# This would trigger the failure (Bug #12429576)
-# if purge gets a chance to run before DROP TABLE t1_purge, ....
-DELETE FROM t1_purge;
-DELETE FROM t2_purge;
-DELETE FROM t3_purge;
-DELETE FROM t4_purge;
-# We need to activate the purge thread.
-# Instead of doing a --sleep 10 now, do it once at the end.
-
-# Bug#12637786 - Assertion hit; ut_ad(dict_index_is_clust(index));
-# A secondary index tuple is found to be too long to fit into a page.
-# This test is not in innodb_8k or innodb_4k since the bug is not about
-# page size. It just tests the condition that caused the assertion.
-SET @r=REPEAT('a',500);
-CREATE TABLE t12637786(a int,
- v1 varchar(500), v2 varchar(500), v3 varchar(500),
- v4 varchar(500), v5 varchar(500), v6 varchar(500),
- v7 varchar(500), v8 varchar(500), v9 varchar(500),
- v10 varchar(500), v11 varchar(500), v12 varchar(500),
- v13 varchar(500), v14 varchar(500), v15 varchar(500),
- v16 varchar(500), v17 varchar(500), v18 varchar(500)
-) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
-CREATE INDEX idx1 ON t12637786(a,v1);
-INSERT INTO t12637786 VALUES(9,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
-UPDATE t12637786 SET a=1000;
-DELETE FROM t12637786;
-# We need to activate the purge thread to make sure it does not assert and
-# is able to clean up the old versions of secondary index entries.
-# Instead of doing a --sleep 10 now for each test, do it once at the end.
-
---echo # Bug#12963823 - Test that the purge thread does not crash when
-# the number of indexes has changed since the UNDO record was logged.
-# This test is not in innodb_8k or innodb_4k since the bug is not about
-# page size. It just tests the condition that caused the crash.
-CREATE TABLE t12963823(a blob,b blob,c blob,d blob,e blob,f blob,g blob,h blob,
- i blob,j blob,k blob,l blob,m blob,n blob,o blob,p blob)
- ENGINE=innodb ROW_FORMAT=dynamic;
-SET @r = REPEAT('a', 767);
-INSERT INTO t12963823 VALUES (@r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r, @r,@r,@r,@r);
-CREATE INDEX ndx_a ON t12963823 (a(500));
-CREATE INDEX ndx_b ON t12963823 (b(500));
-CREATE INDEX ndx_c ON t12963823 (c(500));
-CREATE INDEX ndx_d ON t12963823 (d(500));
-CREATE INDEX ndx_e ON t12963823 (e(500));
-CREATE INDEX ndx_f ON t12963823 (f(500));
-CREATE INDEX ndx_k ON t12963823 (k(500));
-CREATE INDEX ndx_l ON t12963823 (l(500));
-
-SET @r = REPEAT('b', 500);
-UPDATE t12963823 set a=@r,b=@r,c=@r,d=@r;
-UPDATE t12963823 set e=@r,f=@r,g=@r,h=@r;
-UPDATE t12963823 set i=@r,j=@r,k=@r,l=@r;
-UPDATE t12963823 set m=@r,n=@r,o=@r,p=@r;
-ALTER TABLE t12963823 DROP INDEX ndx_a;
-ALTER TABLE t12963823 DROP INDEX ndx_b;
-CREATE INDEX ndx_g ON t12963823 (g(500));
-CREATE INDEX ndx_h ON t12963823 (h(500));
-CREATE INDEX ndx_i ON t12963823 (i(500));
-CREATE INDEX ndx_j ON t12963823 (j(500));
-CREATE INDEX ndx_m ON t12963823 (m(500));
-CREATE INDEX ndx_n ON t12963823 (n(500));
-CREATE INDEX ndx_o ON t12963823 (o(500));
-CREATE INDEX ndx_p ON t12963823 (p(500));
-SHOW CREATE TABLE t12963823;
-# We need to activate the purge thread at this point to see if it crashes.
-# Instead of doing a --sleep 10 now for each test, do it once at the end.
-
--echo # Bug#12547647 UPDATE LOGGING COULD EXCEED LOG PAGE SIZE
# InnoDB cannot know that this undo record would be too big for the undo
# page. Too much of text field is stored in the clustered record in this
# DYNAMIC row formatted record.
-# This test is not in innodb_8k or innodb_4k since the bug is not about
-# page size. It just tests the condition that caused the hang.
-SET SESSION innodb_strict_mode = ON;
CREATE TABLE bug12547647(
a int NOT NULL, b blob NOT NULL, c text,
PRIMARY KEY (b(10), a), INDEX (c(767)), INDEX(b(767))
@@ -629,9 +728,127 @@ SHOW WARNINGS;
ROLLBACK;
DROP TABLE bug12547647;
+#
+# Bug #13336585 - INNODB: CHANGE BUFFERING WITH 4K PAGES CAN ASSERT
+# IF SECONDARY KEY IS NEAR MAX
+# If the secondary index tuple is close to half the page size,
+# ibuf_insert_low() could return DB_TOO_BIG_RECORD, which is not expected
+# in ibuf_insert(). In order to insure this does not happen, WL5756
+# imposes a maximum key length of 768 for 4k pages and 1536 for 8k pages.
+# The existing max key Size for 16k pages is 3072.
+#
+
+#-- disable_query_log
+# The flag innodb_change_buffering_debug is only available in debug builds.
+# It instructs InnoDB to try to evict pages from the buffer pool when
+# change buffering is possible, so that the change buffer will be used
+# whenever possible.
+# This flag is not used currently since it exposes valgrind error in ibuf
+# code with the following SQL
+#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
+#SET @innodb_change_buffering_debug_orig = @@innodb_change_buffering_debug;
+#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
+#SET GLOBAL innodb_change_buffering_debug = 1;
+#-- enable_query_log
+
+# make sure the largest possible key entry can be added to the insert buffer.
+# Make enough records so that the root page is not a leaf page.
+SET SESSION innodb_strict_mode = OFF;
+CREATE TABLE t1(
+ pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
+ pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
+ pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
+ pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
+ sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
+ sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
+ sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
+ sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
+ PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
+ pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
+ KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
+ sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
+ ROW_FORMAT=Redundant ENGINE=InnoDB;
+SET @r = repeat('a', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('b', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('c', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('d', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('e', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+DELETE from t1;
+DROP TABLE t1;
+
+# Compressed tables do not compress parent pages. So the whole uncompressed
+# secondary tuple including the primary key must be able to fit in half the
+# compressed page size. This record length is enforced at index creation.
+# So the only way to get an ibuf tuple too big is to make the KEY_BLOCK_SIZE
+# the same as the page size.
+CREATE TABLE t1(
+ pk01 varchar(48), pk02 varchar(48), pk03 varchar(48), pk04 varchar(48),
+ pk05 varchar(48), pk06 varchar(48), pk07 varchar(48), pk08 varchar(48),
+ pk09 varchar(48), pk10 varchar(48), pk11 varchar(48), pk12 varchar(48),
+ pk13 varchar(48), pk14 varchar(48), pk15 varchar(48), pk16 varchar(48),
+ sk01 varchar(48), sk02 varchar(48), sk03 varchar(48), sk04 varchar(48),
+ sk05 varchar(48), sk06 varchar(48), sk07 varchar(48), sk08 varchar(48),
+ sk09 varchar(48), sk10 varchar(48), sk11 varchar(48), sk12 varchar(48),
+ sk13 varchar(48), sk14 varchar(48), sk15 varchar(48), sk16 varchar(48),
+ PRIMARY KEY pk(pk01,pk02,pk03,pk04,pk05,pk06,pk07,pk08,
+ pk09,pk10,pk11,pk12,pk13,pk14,pk15,pk16),
+ KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08,
+ sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16))
+ ROW_FORMAT=Compressed KEY_BLOCK_SIZE=4 ENGINE=InnoDB;
+SET @r = repeat('a', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('b', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('c', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('d', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+SET @r = repeat('e', 48);
+INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,
+ @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r);
+DELETE from t1;
+DROP TABLE t1;
+
+#-- disable_query_log
+#-- error 0,ER_UNKNOWN_SYSTEM_VARIABLE
+#SET GLOBAL innodb_change_buffering_debug = 0;
+#-- enable_query_log
+
# The following should fail in non-strict mode too.
# (The fix of Bug #50945 only affects REDUNDANT and COMPACT tables.)
-SET SESSION innodb_strict_mode = off;
+if ($INNODB_PAGE_SIZE == 4096)
+{
+CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+ PRIMARY KEY (c(767)))
+ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
+DROP TABLE t1;
+CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+ PRIMARY KEY (c(767)))
+ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2 CHARSET=ASCII;
+DROP TABLE t1;
+CREATE TABLE t1(
+ c text NOT NULL, d text NOT NULL,
+ PRIMARY KEY (c(767)))
+ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
+}
+if ($INNODB_PAGE_SIZE != 4096)
+{
CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
@@ -646,7 +863,8 @@ CREATE TABLE t1(
c text NOT NULL, d text NOT NULL,
PRIMARY KEY (c(767),d(767)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4 CHARSET=ASCII;
-drop table t1;
+}
+DROP TABLE t1;
CREATE TABLE t1(c text, PRIMARY KEY (c(440)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
DROP TABLE t1;
@@ -654,63 +872,3 @@ CREATE TABLE t1(c text, PRIMARY KEY (c(438)))
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1 CHARSET=ASCII;
INSERT INTO t1 VALUES(REPEAT('A',512)),(REPEAT('B',512));
DROP TABLE t1;
-
-
---echo #
---echo # Bug#56862 Execution of a query that uses index merge returns a wrong result
---echo #
-
-# Moved to here from innodb_mysql.test. Some PB3 systems sporadically
-# had timeouts doing this with smaller page sizes.
-
-CREATE TABLE t1 (
- pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
- a int,
- b int,
- INDEX idx(a))
-ENGINE=INNODB;
-
-INSERT INTO t1(a,b) VALUES
- (11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500),
- (3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800),
- (6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700),
- (13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000);
-INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1;
-INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1;
-INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1(a,b) SELECT a,b FROM t1;
-INSERT INTO t1 VALUES (1000000, 0, 0);
-
-set @optimizer_switch_saved=@@optimizer_switch;
-SET SESSION optimizer_switch='derived_merge=off';
-SET SESSION sort_buffer_size = 1024*36;
-
---replace_column 9 #
-EXPLAIN
-SELECT COUNT(*) FROM
- (SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
- WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
-
-SELECT COUNT(*) FROM
- (SELECT * FROM t1 FORCE INDEX (idx,PRIMARY)
- WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t;
-
-set @@optimizer_switch=@optimizer_switch_saved;
-SET SESSION sort_buffer_size = DEFAULT;
-
-DROP TABLE t1;
-
-
-# The tests that uses these tables required the purge thread to run.
-# Just in case it has not by now, provide a 10 second wait.
---sleep 10
-DROP TABLE t1_purge, t2_purge, t3_purge, t4_purge;
-DROP TABLE t12637786;
-DROP TABLE t12963823;
diff --git a/mysql-test/suite/maria/alter.result b/mysql-test/suite/maria/alter.result
index c2ddc813cdc..4e6f21b70a7 100644
--- a/mysql-test/suite/maria/alter.result
+++ b/mysql-test/suite/maria/alter.result
@@ -90,3 +90,17 @@ check table t2;
Table Op Msg_type Msg_text
test.t2 check status OK
DROP TABLE t1,t2;
+#
+# MDEV-17576
+# Assertion `share->reopen == 1' failed in maria_extra upon ALTER on
+# Aria table with triggers and locks
+#
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+CREATE TRIGGER tr BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t1 SELECT * FROM t1;
+LOCK TABLE t1 WRITE;
+ALTER TABLE t1 FORCE, LOCK=EXCLUSIVE;
+DROP TRIGGER tr;
+DROP TABLE t1;
+#
+# End of 10.2 test
+#
diff --git a/mysql-test/suite/maria/alter.test b/mysql-test/suite/maria/alter.test
index ef21ab2e5d2..31eeac1df87 100644
--- a/mysql-test/suite/maria/alter.test
+++ b/mysql-test/suite/maria/alter.test
@@ -11,7 +11,7 @@ drop table if exists t1;
CREATE TABLE t1 (pk INT, d DATETIME, PRIMARY KEY(pk), KEY(d)) ENGINE=Aria;
ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 VALUES (1,'2000-01-01 22:22:22'),(2,'2012-12-21 12:12:12');
-INSERT INTO t1 VALUES (3, '2008-07-24');
+INSERT INTO t1 VALUES (3, '2008-07-24');
ALTER TABLE t1 ENABLE KEYS;
SELECT t1a.pk FROM t1 AS t1a LEFT JOIN t1 AS t1b ON t1a.pk = t1b.pk;
@@ -74,6 +74,19 @@ check table t1;
check table t2;
DROP TABLE t1,t2;
-#
-# End of 10.2 tests
-#
+--echo #
+--echo # MDEV-17576
+--echo # Assertion `share->reopen == 1' failed in maria_extra upon ALTER on
+--echo # Aria table with triggers and locks
+--echo #
+
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+CREATE TRIGGER tr BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t1 SELECT * FROM t1;
+LOCK TABLE t1 WRITE;
+ALTER TABLE t1 FORCE, LOCK=EXCLUSIVE;
+DROP TRIGGER tr;
+DROP TABLE t1;
+
+--echo #
+--echo # End of 10.2 test
+--echo #
diff --git a/mysql-test/suite/maria/kill.result b/mysql-test/suite/maria/kill.result
new file mode 100644
index 00000000000..5e75e75a41a
--- /dev/null
+++ b/mysql-test/suite/maria/kill.result
@@ -0,0 +1,13 @@
+#
+# MDEV-14996
+# Assertion `!thd->get_stmt_da()->is_sent() ||
+# thd->killed == KILL_CONNECTION' failed in ha_maria::external_lock
+#
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+connect con1,localhost,root,,;
+FLUSH TABLE t1 FOR EXPORT;
+KILL CONNECTION_ID();
+ERROR 70100: Connection was killed
+disconnect con1;
+connection default;
+DROP TABLE t1;
diff --git a/mysql-test/suite/maria/kill.test b/mysql-test/suite/maria/kill.test
new file mode 100644
index 00000000000..98a588a6698
--- /dev/null
+++ b/mysql-test/suite/maria/kill.test
@@ -0,0 +1,14 @@
+--echo #
+--echo # MDEV-14996
+--echo # Assertion `!thd->get_stmt_da()->is_sent() ||
+--echo # thd->killed == KILL_CONNECTION' failed in ha_maria::external_lock
+--echo #
+
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+--connect (con1,localhost,root,,)
+FLUSH TABLE t1 FOR EXPORT;
+--error ER_CONNECTION_KILLED
+KILL CONNECTION_ID();
+--disconnect con1
+--connection default
+DROP TABLE t1;
diff --git a/mysql-test/suite/mariabackup/missing_ibd.result b/mysql-test/suite/mariabackup/missing_ibd.result
index 40caedf6492..1ad18e8b14d 100644
--- a/mysql-test/suite/mariabackup/missing_ibd.result
+++ b/mysql-test/suite/mariabackup/missing_ibd.result
@@ -3,5 +3,5 @@ INSERT INTO t1 VALUES(1);
# restart
# xtrabackup backup
select * from t1;
-ERROR 42S02: Table 'test.t1' doesn't exist in engine
+ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
drop table t1;
diff --git a/mysql-test/suite/mariabackup/missing_ibd.test b/mysql-test/suite/mariabackup/missing_ibd.test
index 22044e59841..ce22616e25d 100644
--- a/mysql-test/suite/mariabackup/missing_ibd.test
+++ b/mysql-test/suite/mariabackup/missing_ibd.test
@@ -30,7 +30,6 @@ exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir
rmdir $targetdir;
---error ER_NO_SUCH_TABLE_IN_ENGINE
+--error ER_GET_ERRNO
select * from t1;
drop table t1;
-
diff --git a/mysql-test/suite/mariabackup/suite.pm b/mysql-test/suite/mariabackup/suite.pm
index 9242bbc051f..14e38d16158 100644
--- a/mysql-test/suite/mariabackup/suite.pm
+++ b/mysql-test/suite/mariabackup/suite.pm
@@ -7,31 +7,14 @@ use strict;
return "Not run for embedded server" if $::opt_embedded_server;
-my $mariabackup_exe=
-::mtr_exe_maybe_exists(
- "$::bindir/extra/mariabackup$::opt_vs_config/mariabackup",
- "$::path_client_bindir/mariabackup");
-
-return "No mariabackup" if !$mariabackup_exe;
-
-
-$ENV{XTRABACKUP}= $mariabackup_exe;
-
-$ENV{XBSTREAM}= ::mtr_exe_maybe_exists(
- "$::bindir/extra/mariabackup/$::opt_vs_config/mbstream",
- "$::path_client_bindir/mbstream");
-
-$ENV{INNOBACKUPEX}= "$mariabackup_exe --innobackupex";
+return "No mariabackup" unless ::have_mariabackup();
my $have_qpress = index(`qpress 2>&1`,"Compression") > 0;
-
sub skip_combinations {
my %skip;
- $skip{'include/have_file_key_management.inc'} = 'needs file_key_management plugin' unless $ENV{FILE_KEY_MANAGEMENT_SO};
$skip{'compress_qpress.test'}= 'needs qpress executable in PATH' unless $have_qpress;
%skip;
}
bless { };
-
diff --git a/mysql-test/suite/multi_source/disabled.def b/mysql-test/suite/multi_source/disabled.def
new file mode 100644
index 00000000000..45c8a6c8891
--- /dev/null
+++ b/mysql-test/suite/multi_source/disabled.def
@@ -0,0 +1 @@
+mdev-8874 : MDEV-20101 Assertion failure
diff --git a/mysql-test/suite/multi_source/mdev-8874.cnf b/mysql-test/suite/multi_source/mdev-8874.cnf
new file mode 100644
index 00000000000..dc89db72772
--- /dev/null
+++ b/mysql-test/suite/multi_source/mdev-8874.cnf
@@ -0,0 +1,25 @@
+!include my.cnf
+
+[mysqld.1]
+log-bin
+log-slave-updates
+
+[mysqld.2]
+log-bin
+log-slave-updates
+
+[mysqld.3]
+log-bin
+log-slave-updates
+
+[mysqld.4]
+server-id=4
+log-bin=server4-bin
+log-slave-updates
+m1.replicate_ignore_table='a.t1'
+m2.replicate_ignore_table='b.t1'
+replicate_ignore_table='c.t1'
+
+[ENV]
+SERVER_MYPORT_4= @mysqld.4.port
+SERVER_MYSOCK_4= @mysqld.4.socket
diff --git a/mysql-test/suite/multi_source/mdev-8874.result b/mysql-test/suite/multi_source/mdev-8874.result
new file mode 100644
index 00000000000..aa9cc39b403
--- /dev/null
+++ b/mysql-test/suite/multi_source/mdev-8874.result
@@ -0,0 +1,126 @@
+connect server_1,127.0.0.1,root,,,$SERVER_MYPORT_1;
+connect server_2,127.0.0.1,root,,,$SERVER_MYPORT_2;
+connect server_3,127.0.0.1,root,,,$SERVER_MYPORT_3;
+connect server_4,127.0.0.1,root,,,$SERVER_MYPORT_4;
+connection server_1;
+create database a;
+use a;
+create table t1(a int);
+insert into t1 values(1);
+create table t2(a int);
+insert into t2 values(1);
+connection server_2;
+create database b;
+use b;
+create table t1(a int);
+insert into t1 values(1);
+create table t2(a int);
+insert into t2 values(1);
+connection server_3;
+create database c;
+use c;
+create table t1(a int);
+insert into t1 values(1);
+create table t2(a int);
+insert into t2 values(1);
+connection server_4;
+change master 'm1' to master_port=MYPORT_1 , master_host='127.0.0.1', master_user='root';
+change master 'm2' to master_port=MYPORT_2 , master_host='127.0.0.1', master_user='root';
+change master to master_port=MYPORT_3 , master_host='127.0.0.1', master_user='root';
+start all slaves;
+set default_master_connection = 'm1';
+include/wait_for_slave_to_start.inc
+set default_master_connection = 'm2';
+include/wait_for_slave_to_start.inc
+set default_master_connection = '';
+include/wait_for_slave_to_start.inc
+select @@global.'m1'.replicate_ignore_table;
+@@global.'m1'.replicate_ignore_table
+a.t1
+select @@global.'m2'.replicate_ignore_table;
+@@global.'m2'.replicate_ignore_table
+b.t1
+select @@global.replicate_ignore_table;
+@@global.replicate_ignore_table
+c.t1
+use a;
+#No t1 table
+show tables;
+Tables_in_a
+t2
+use b;
+#No t1 table
+show tables;
+Tables_in_b
+t2
+use c;
+#No t1 table
+show tables;
+Tables_in_c
+t2
+#TEST
+STOP ALL SLAVES;
+Warnings:
+Note 1938 SLAVE 'm2' stopped
+Note 1938 SLAVE '' stopped
+Note 1938 SLAVE 'm1' stopped
+RESET SLAVE 'm1' ALL ;
+RESET SLAVE 'm2' ALL ;
+RESET SLAVE ALL ;
+drop database a;
+drop database b;
+drop database c;
+change master 'm1' to master_port=MYPORT_1 , master_host='127.0.0.1', master_user='root';
+change master 'm2' to master_port=MYPORT_2 , master_host='127.0.0.1', master_user='root';
+change master to master_port=MYPORT_3 , master_host='127.0.0.1', master_user='root';
+start all slaves;
+Warnings:
+Note 1937 SLAVE 'm2' started
+Note 1937 SLAVE '' started
+Note 1937 SLAVE 'm1' started
+set default_master_connection = 'm1';
+include/wait_for_slave_to_start.inc
+set default_master_connection = 'm2';
+include/wait_for_slave_to_start.inc
+set default_master_connection = '';
+include/wait_for_slave_to_start.inc
+#Replication Filter should be intact (t1 still not replicated)
+select @@global.'m1'.replicate_ignore_table;
+@@global.'m1'.replicate_ignore_table
+a.t1
+select @@global.'m2'.replicate_ignore_table;
+@@global.'m2'.replicate_ignore_table
+b.t1
+select @@global.replicate_ignore_table;
+@@global.replicate_ignore_table
+c.t1
+use a;
+#No t1 table
+show tables;
+Tables_in_a
+t2
+use b;
+#No t1 table
+show tables;
+Tables_in_b
+t2
+use c;
+#No t1 table
+show tables;
+Tables_in_c
+t2
+#CleanUp
+connection server_1;
+drop database a;
+connection server_2;
+drop database b;
+connection server_3;
+drop database c;
+connection server_4;
+stop all slaves;
+SET default_master_connection = "m1";
+include/wait_for_slave_to_stop.inc
+SET default_master_connection = "m2";
+include/wait_for_slave_to_stop.inc
+SET default_master_connection = "";
+include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/multi_source/mdev-8874.test b/mysql-test/suite/multi_source/mdev-8874.test
new file mode 100644
index 00000000000..d03c255b911
--- /dev/null
+++ b/mysql-test/suite/multi_source/mdev-8874.test
@@ -0,0 +1,141 @@
+--source include/not_embedded.inc
+--source include/have_innodb.inc
+--source include/have_debug.inc
+# MDEV-8874
+# In Named Master slave connection if we do reset slave 'connection_name' ALL and then
+# if we reconnect slave, replication filters are ignored.
+# This patch fixes this issue.
+--connect (server_1,127.0.0.1,root,,,$SERVER_MYPORT_1)
+--connect (server_2,127.0.0.1,root,,,$SERVER_MYPORT_2)
+--connect (server_3,127.0.0.1,root,,,$SERVER_MYPORT_3)
+--connect (server_4,127.0.0.1,root,,,$SERVER_MYPORT_4)
+
+--connection server_1
+create database a;
+use a;
+create table t1(a int);
+insert into t1 values(1);
+create table t2(a int);
+insert into t2 values(1);
+--save_master_pos
+
+--connection server_2
+create database b;
+use b;
+create table t1(a int);
+insert into t1 values(1);
+create table t2(a int);
+insert into t2 values(1);
+--save_master_pos
+
+--connection server_3
+create database c;
+use c;
+create table t1(a int);
+insert into t1 values(1);
+create table t2(a int);
+insert into t2 values(1);
+--save_master_pos
+
+--connection server_4
+--disable_warnings
+--replace_result $SERVER_MYPORT_1 MYPORT_1
+eval change master 'm1' to master_port=$SERVER_MYPORT_1 , master_host='127.0.0.1', master_user='root';
+--replace_result $SERVER_MYPORT_2 MYPORT_2
+eval change master 'm2' to master_port=$SERVER_MYPORT_2 , master_host='127.0.0.1', master_user='root';
+--replace_result $SERVER_MYPORT_3 MYPORT_3
+eval change master to master_port=$SERVER_MYPORT_3 , master_host='127.0.0.1', master_user='root';
+start all slaves;
+set default_master_connection = 'm1';
+--source include/wait_for_slave_to_start.inc
+set default_master_connection = 'm2';
+--source include/wait_for_slave_to_start.inc
+set default_master_connection = '';
+--source include/wait_for_slave_to_start.inc
+select @@global.'m1'.replicate_ignore_table;
+select @@global.'m2'.replicate_ignore_table;
+select @@global.replicate_ignore_table;
+
+--enable_warnings
+--sync_with_master 0,'m1'
+--sync_with_master 0,'m2'
+--sync_with_master 0,''
+use a;
+--echo #No t1 table
+show tables;
+use b;
+--echo #No t1 table
+show tables;
+use c;
+--echo #No t1 table
+show tables;
+--echo #TEST
+STOP ALL SLAVES;
+RESET SLAVE 'm1' ALL ;
+RESET SLAVE 'm2' ALL ;
+RESET SLAVE ALL ;
+drop database a;
+drop database b;
+drop database c;
+--replace_result $SERVER_MYPORT_1 MYPORT_1
+eval change master 'm1' to master_port=$SERVER_MYPORT_1 , master_host='127.0.0.1', master_user='root';
+--replace_result $SERVER_MYPORT_2 MYPORT_2
+eval change master 'm2' to master_port=$SERVER_MYPORT_2 , master_host='127.0.0.1', master_user='root';
+--replace_result $SERVER_MYPORT_3 MYPORT_3
+eval change master to master_port=$SERVER_MYPORT_3 , master_host='127.0.0.1', master_user='root';
+start all slaves;
+set default_master_connection = 'm1';
+--source include/wait_for_slave_to_start.inc
+set default_master_connection = 'm2';
+--source include/wait_for_slave_to_start.inc
+set default_master_connection = '';
+--source include/wait_for_slave_to_start.inc
+--sync_with_master 0,'m1'
+--sync_with_master 0,'m2'
+--sync_with_master 0,''
+
+--echo #Replication Filter should be intact (t1 still not replicated)
+select @@global.'m1'.replicate_ignore_table;
+select @@global.'m2'.replicate_ignore_table;
+select @@global.replicate_ignore_table;
+use a;
+--echo #No t1 table
+show tables;
+use b;
+--echo #No t1 table
+show tables;
+use c;
+--echo #No t1 table
+show tables;
+
+
+#--echo #restart the server
+#--source include/restart_mysqld.inc
+
+
+--echo #CleanUp
+--connection server_1
+drop database a;
+--save_master_pos
+
+--connection server_2
+drop database b;
+--save_master_pos
+
+--connection server_3
+drop database c;
+--save_master_pos
+
+--connection server_4
+--sync_with_master 0,'m1'
+--sync_with_master 0,'m2'
+--sync_with_master 0,''
+--disable_warnings
+stop all slaves;
+--enable_warnings
+SET default_master_connection = "m1";
+--source include/wait_for_slave_to_stop.inc
+SET default_master_connection = "m2";
+--source include/wait_for_slave_to_stop.inc
+SET default_master_connection = "";
+--source include/wait_for_slave_to_stop.inc
diff --git a/mysql-test/suite/parts/r/fulltext.result b/mysql-test/suite/parts/r/fulltext.result
new file mode 100644
index 00000000000..6495c9aa5a1
--- /dev/null
+++ b/mysql-test/suite/parts/r/fulltext.result
@@ -0,0 +1,6 @@
+create table t1 (i int, f1 varchar(512), f2 varchar(512), fulltext (f1)) engine=myisam partition by hash (i);
+select * from t1 where match (f1) against ('foo');
+i f1 f2
+select * from t1 where match (f2) against ('bar' in boolean mode) ;
+i f1 f2
+drop table t1;
diff --git a/mysql-test/suite/parts/t/fulltext.test b/mysql-test/suite/parts/t/fulltext.test
new file mode 100644
index 00000000000..c591e660e5b
--- /dev/null
+++ b/mysql-test/suite/parts/t/fulltext.test
@@ -0,0 +1,9 @@
+--source include/have_partition.inc
+
+#
+# MDEV-17627 Assertion `inited==RND' failed in handler::ha_rnd_end() upon actions on partitioned table with FTS
+#
+create table t1 (i int, f1 varchar(512), f2 varchar(512), fulltext (f1)) engine=myisam partition by hash (i);
+select * from t1 where match (f1) against ('foo');
+select * from t1 where match (f2) against ('bar' in boolean mode) ;
+drop table t1;
diff --git a/mysql-test/suite/plugins/disabled.def b/mysql-test/suite/plugins/disabled.def
new file mode 100644
index 00000000000..81cc9131335
--- /dev/null
+++ b/mysql-test/suite/plugins/disabled.def
@@ -0,0 +1 @@
+auth_ed25519 : MDEV-20144 plugins.auth_ed25519 fails in buildbot with undefined symbol: inflate
diff --git a/mysql-test/suite/plugins/r/pam.result b/mysql-test/suite/plugins/r/pam.result
index 1d70f530969..40075245d0c 100644
--- a/mysql-test/suite/plugins/r/pam.result
+++ b/mysql-test/suite/plugins/r/pam.result
@@ -7,9 +7,9 @@ grant proxy on pam_test to test_pam;
# note that current_user() differs from user()
#
Challenge input first.
-Enter: not very secret challenge
+Enter: *************************
Now, the magic number!
-PIN: ****
+PIN: 9225
select user(), current_user(), database();
user() current_user() database()
test_pam@localhost pam_test@% test
@@ -17,16 +17,29 @@ test_pam@localhost pam_test@% test
# athentication is unsuccessful
#
Challenge input first.
-Enter: not very secret challenge
+Enter: *************************
Now, the magic number!
-PIN: ****
+PIN: 9224
#
# athentication is unsuccessful
#
Challenge input first.
-Enter: crash pam module
+Enter: ****************
Now, the magic number!
-PIN: ***
+PIN: 616
+#
+# athentication is successful
+#
+Now, the magic number!
+PIN: 9212
+select user(), current_user(), database();
+user() current_user() database()
+test_pam@localhost pam_test@% test
+#
+# athentication is unsuccessful
+#
+Now, the magic number!
+PIN: 9212
drop user test_pam;
drop user pam_test;
create user PAM_TEST identified via pam using 'mariadb_mtr';
@@ -34,17 +47,17 @@ create user PAM_TEST identified via pam using 'mariadb_mtr';
# athentication is unsuccessful
#
Challenge input first.
-Enter: not very secret challenge
+Enter: *************************
Now, the magic number!
-PIN: ****
+PIN: 9225
set global pam_winbind_workaround=1;
#
# athentication is successful
#
Challenge input first.
-Enter: not very secret challenge
+Enter: *************************
Now, the magic number!
-PIN: ****
+PIN: 9225
select user(), current_user(), database();
user() current_user() database()
PAM_TEST@localhost PAM_TEST@% test
diff --git a/mysql-test/suite/plugins/r/pam_cleartext.result b/mysql-test/suite/plugins/r/pam_cleartext.result
index 824e8329cc3..07c379a4b7f 100644
--- a/mysql-test/suite/plugins/r/pam_cleartext.result
+++ b/mysql-test/suite/plugins/r/pam_cleartext.result
@@ -8,6 +8,14 @@ pam_use_cleartext_plugin ON
#
# same test as in pam.test now fails
#
+#
+# success
+#
+user() current_user() database()
+test_pam@localhost pam_test@% NULL
+#
+# failure
+#
drop user test_pam;
drop user pam_test;
uninstall plugin pam;
diff --git a/mysql-test/suite/plugins/r/pam_v1.result b/mysql-test/suite/plugins/r/pam_v1.result
index bf4c0242df2..66776e3bca7 100644
--- a/mysql-test/suite/plugins/r/pam_v1.result
+++ b/mysql-test/suite/plugins/r/pam_v1.result
@@ -7,9 +7,9 @@ grant proxy on pam_test to test_pam;
# note that current_user() differs from user()
#
Challenge input first.
-Enter: not very secret challenge
+Enter: *************************
Now, the magic number!
-PIN: ****
+PIN: 9225
select user(), current_user(), database();
user() current_user() database()
test_pam@localhost pam_test@% test
@@ -17,9 +17,22 @@ test_pam@localhost pam_test@% test
# athentication is unsuccessful
#
Challenge input first.
-Enter: not very secret challenge
+Enter: *************************
Now, the magic number!
-PIN: ****
+PIN: 9224
+#
+# athentication is successful
+#
+Now, the magic number!
+PIN: 9212
+select user(), current_user(), database();
+user() current_user() database()
+test_pam@localhost pam_test@% test
+#
+# athentication is unsuccessful
+#
+Now, the magic number!
+PIN: 9212
drop user test_pam;
drop user pam_test;
uninstall plugin pam;
diff --git a/mysql-test/suite/plugins/suite.pm b/mysql-test/suite/plugins/suite.pm
index cb42fb66705..b265a1f818c 100644
--- a/mysql-test/suite/plugins/suite.pm
+++ b/mysql-test/suite/plugins/suite.pm
@@ -4,6 +4,13 @@ use My::Platform;
@ISA = qw(My::Suite);
+if (-d '../sql') {
+ my $src = "$::bindir/plugin/auth_pam/auth_pam_tool";
+ my $dst = "$::plugindir/auth_pam_tool_dir/auth_pam_tool";
+ ::mkpath( "$::plugindir/auth_pam_tool_dir");
+ eval { symlink $src, $dst } or ::copy $src, $dst;
+}
+
sub cassandra_running() {
return 0 if IS_WINDOWS;
system 'echo show version | cqlsh -3 2>/dev/null >/dev/null';
@@ -14,6 +21,8 @@ sub skip_combinations {
my %skip;
$skip{'t/pam_init.inc'} = 'No pam setup for mtr'
unless -e '/etc/pam.d/mariadb_mtr';
+ $skip{'t/pam_init.inc'} = 'Not run as user owning auth_pam_tool_dir'
+ unless -o $::plugindir . '/auth_pam_tool_dir';
$skip{'t/cassandra.test'} = 'Cassandra is not running'
unless cassandra_running();
$skip{'t/cassandra_qcache.test'} = $skip{'t/cassandra.test'};
diff --git a/mysql-test/suite/plugins/t/pam.test b/mysql-test/suite/plugins/t/pam.test
index 040b26ef8b8..1bb1fa2c230 100644
--- a/mysql-test/suite/plugins/t/pam.test
+++ b/mysql-test/suite/plugins/t/pam.test
@@ -15,7 +15,12 @@ EOF
--write_file $MYSQLTEST_VARDIR/tmp/pam_ugly.txt
crash pam module
-666
+616
+select user(), current_user(), database();
+EOF
+
+--write_file $MYSQLTEST_VARDIR/tmp/pam_good2.txt
+9212
select user(), current_user(), database();
EOF
@@ -37,6 +42,18 @@ EOF
--error 1
--exec $MYSQL_TEST -u test_pam --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_ugly.txt
+--echo #
+--echo # athentication is successful
+--echo #
+--error 0
+--exec $MYSQL_TEST -u test_pam -pgoodpassword --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_good2.txt
+
+--echo #
+--echo # athentication is unsuccessful
+--echo #
+--error 1
+--exec $MYSQL_TEST -u test_pam -pbadpassword --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_good2.txt
+
drop user test_pam;
drop user pam_test;
create user PAM_TEST identified via pam using 'mariadb_mtr';
@@ -54,6 +71,7 @@ set global pam_winbind_workaround=1;
--exec $MYSQL_TEST -u PAM_TEST < $MYSQLTEST_VARDIR/tmp/pam_good.txt
--remove_file $MYSQLTEST_VARDIR/tmp/pam_good.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/pam_good2.txt
--remove_file $MYSQLTEST_VARDIR/tmp/pam_bad.txt
--remove_file $MYSQLTEST_VARDIR/tmp/pam_ugly.txt
drop user PAM_TEST;
diff --git a/mysql-test/suite/plugins/t/pam_cleartext.test b/mysql-test/suite/plugins/t/pam_cleartext.test
index 5d137e6b416..7542c8f51f6 100644
--- a/mysql-test/suite/plugins/t/pam_cleartext.test
+++ b/mysql-test/suite/plugins/t/pam_cleartext.test
@@ -14,9 +14,22 @@ EOF
--echo #
--error 1
--exec $MYSQL_TEST -u test_pam --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_good.txt
+--error 1
+--exec $MYSQL_TEST -u test_pam --plugin-dir=$plugindir -p'something' < $MYSQLTEST_VARDIR/tmp/pam_good.txt
--remove_file $MYSQLTEST_VARDIR/tmp/pam_good.txt
+--echo #
+--echo # success
+--echo #
+--exec $MYSQL -u test_pam --plugin-dir=$plugindir -p'cleartext good' -e 'select user(), current_user(), database()'
+
+--echo #
+--echo # failure
+--echo #
+--error 1
+--exec $MYSQL -u test_pam --plugin-dir=$plugindir -p'cleartext bad' -e 'select user(), current_user(), database()'
+
drop user test_pam;
drop user pam_test;
let $count_sessions= 1;
diff --git a/mysql-test/suite/plugins/t/pam_v1.test b/mysql-test/suite/plugins/t/pam_v1.test
index d908e3a4b25..c9c0a97f6a9 100644
--- a/mysql-test/suite/plugins/t/pam_v1.test
+++ b/mysql-test/suite/plugins/t/pam_v1.test
@@ -13,6 +13,11 @@ not very secret challenge
select user(), current_user(), database();
EOF
+--write_file $MYSQLTEST_VARDIR/tmp/pam_good2.txt
+9212
+select user(), current_user(), database();
+EOF
+
--echo #
--echo # athentication is successful, challenge/pin are ok
--echo # note that current_user() differs from user()
@@ -25,7 +30,20 @@ EOF
--error 1
--exec $MYSQL_TEST -u test_pam --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_bad.txt
+--echo #
+--echo # athentication is successful
+--echo #
+--error 0
+--exec $MYSQL_TEST -u test_pam -pgoodpassword --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_good2.txt
+
+--echo #
+--echo # athentication is unsuccessful
+--echo #
+--error 1
+--exec $MYSQL_TEST -u test_pam -pbadpassword --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_good2.txt
+
--remove_file $MYSQLTEST_VARDIR/tmp/pam_good.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/pam_good2.txt
--remove_file $MYSQLTEST_VARDIR/tmp/pam_bad.txt
drop user test_pam;
drop user pam_test;
diff --git a/mysql-test/suite/rpl/include/rpl_drop_create_temp_table.test b/mysql-test/suite/rpl/include/rpl_drop_create_temp_table.test
index ef025eb96ca..456419803db 100644
--- a/mysql-test/suite/rpl/include/rpl_drop_create_temp_table.test
+++ b/mysql-test/suite/rpl/include/rpl_drop_create_temp_table.test
@@ -32,6 +32,10 @@
# is any
# Drop-Temp-TT-Temp - Drops two temporary T-tables if there is any
# Drop-Temp-NN-Temp - Drops two temporary N-tables if there is any
+#
+# Note: MDEV-20091: DROP TEMPORARY TABLE IF EXISTS statements will be written
+# to binlog only if the corresponding temporary table exists.
+#
# Drop-Temp-Xe-Temp - Tries to drop a temporary table that does not exist
# Drop-Temp-NXe-Temp - Drops a temporary N-table if there is any and
# a temporary table that does not exist
diff --git a/mysql-test/suite/rpl/r/create_or_replace_mix.result b/mysql-test/suite/rpl/r/create_or_replace_mix.result
index 6ad37ab5e46..661278aa7ef 100644
--- a/mysql-test/suite/rpl/r/create_or_replace_mix.result
+++ b/mysql-test/suite/rpl/r/create_or_replace_mix.result
@@ -265,6 +265,16 @@ set binlog_format="STATEMENT";
ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
drop temporary table t8;
set @@binlog_format=@org_binlog_format;
+set @@session.binlog_format=default;
+drop temporary table if exists t9;
+Warnings:
+Note 1051 Unknown table 'test.t9'
+connect con1,localhost,root,,;
+set session binlog_format=default;
+create temporary table t9 (i int);
+*** Must be no DROP logged for t9 when there was no CREATE, at disconnect too ***
+disconnect con1;
+connection server_1;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
@@ -275,5 +285,9 @@ master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create temporary table t7 (a int)
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`t7` /* generated by server */
+master-bin.000001 # Gtid # # GTID #-#-#
+master-bin.000001 # Query # # use `test`; create temporary table t9 (i int)
+master-bin.000001 # Gtid # # GTID #-#-#
+master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t9`
drop table t2;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/create_or_replace_row.result b/mysql-test/suite/rpl/r/create_or_replace_row.result
index ad7a537a2c9..c45daefd671 100644
--- a/mysql-test/suite/rpl/r/create_or_replace_row.result
+++ b/mysql-test/suite/rpl/r/create_or_replace_row.result
@@ -293,6 +293,16 @@ set binlog_format="STATEMENT";
ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
drop temporary table t8;
set @@binlog_format=@org_binlog_format;
+set @@session.binlog_format=default;
+drop temporary table if exists t9;
+Warnings:
+Note 1051 Unknown table 'test.t9'
+connect con1,localhost,root,,;
+set session binlog_format=default;
+create temporary table t9 (i int);
+*** Must be no DROP logged for t9 when there was no CREATE, at disconnect too ***
+disconnect con1;
+connection server_1;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
diff --git a/mysql-test/suite/rpl/r/create_or_replace_statement.result b/mysql-test/suite/rpl/r/create_or_replace_statement.result
index 69206cc861f..f95b451e5ec 100644
--- a/mysql-test/suite/rpl/r/create_or_replace_statement.result
+++ b/mysql-test/suite/rpl/r/create_or_replace_statement.result
@@ -252,6 +252,16 @@ set binlog_format="STATEMENT";
ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
drop temporary table t8;
set @@binlog_format=@org_binlog_format;
+set @@session.binlog_format=default;
+drop temporary table if exists t9;
+Warnings:
+Note 1051 Unknown table 'test.t9'
+connect con1,localhost,root,,;
+set session binlog_format=default;
+create temporary table t9 (i int);
+*** Must be no DROP logged for t9 when there was no CREATE, at disconnect too ***
+disconnect con1;
+connection server_1;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
@@ -262,5 +272,9 @@ master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create temporary table t7 (a int)
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`t7` /* generated by server */
+master-bin.000001 # Gtid # # GTID #-#-#
+master-bin.000001 # Query # # use `test`; create temporary table t9 (i int)
+master-bin.000001 # Gtid # # GTID #-#-#
+master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t9`
drop table t2;
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/kill_race_condition.result b/mysql-test/suite/rpl/r/kill_race_condition.result
index 87ee3214b8e..1181eb0b0b1 100644
--- a/mysql-test/suite/rpl/r/kill_race_condition.result
+++ b/mysql-test/suite/rpl/r/kill_race_condition.result
@@ -1,18 +1,23 @@
include/master-slave.inc
[connection master]
+connection master;
+create table t1 (a int);
+connection slave;
connection slave;
set global debug_dbug='d,rows_log_event_before_open_table';
-set debug_sync='now WAIT_FOR before_open_table';
connection master;
-create table t1 (a int);
insert t1 values (1),(2),(3);
connection slave;
+set debug_sync='now WAIT_FOR before_open_table';
kill slave_sql_thread;
set debug_sync='now SIGNAL go_ahead_sql';
+include/wait_for_slave_sql_error.inc [errno=1927]
+Last_SQL_Error = Error executing row event: 'Connection was killed'
set global debug_dbug='';
set debug_sync='RESET';
connection master;
drop table t1;
connection slave;
-start slave;
+include/start_slave.inc
+Last_SQL_Error =
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/mdev_17588.result b/mysql-test/suite/rpl/r/mdev_17588.result
new file mode 100644
index 00000000000..f6b4728bd88
--- /dev/null
+++ b/mysql-test/suite/rpl/r/mdev_17588.result
@@ -0,0 +1,36 @@
+include/master-slave.inc
+[connection master]
+connection master;
+create table t1 (a int) engine=innodb;
+create table t2 (a int);
+create table t3 (a int) engine=innodb;
+include/save_master_gtid.inc
+connection slave;
+include/wait_for_slave_sql_error.inc [errno=1286]
+Last_Error = 'Error 'Unknown storage engine 'innodb'' on query. Default database: 'test'. Query: 'create table t1 (a int) engine=innodb''
+STOP SLAVE IO_THREAD;
+include/wait_for_slave_to_stop.inc
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
+include/start_slave.inc
+include/sync_with_master_gtid.inc
+show tables;
+Tables_in_test
+t2
+show create table t2;
+Table Create Table
+t2 CREATE TABLE `t2` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+show create table t1;
+ERROR 42S02: Table 'test.t1' doesn't exist
+show create table t3;
+ERROR 42S02: Table 'test.t3' doesn't exist
+connection master;
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+include/save_master_gtid.inc
+connection slave;
+include/sync_with_master_gtid.inc
+CALL mtr.add_suppression('Slave: Unknown storage engine .* Error_code: 1286');
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_drop_temp_table_invaid_lex.result b/mysql-test/suite/rpl/r/rpl_drop_temp_table_invaid_lex.result
new file mode 100644
index 00000000000..49e9195ed35
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_drop_temp_table_invaid_lex.result
@@ -0,0 +1,8 @@
+include/master-slave.inc
+[connection master]
+connect con1,localhost,root,,;
+CREATE TEMPORARY TABLE tmp (a INT);
+CREATE TABLE non_existing_db.t SELECT 1 AS b;
+disconnect con1;
+connection default;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result b/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result
index 76f812b7512..d2f590ad136 100644
--- a/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result
+++ b/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result
@@ -91,9 +91,6 @@ Warnings:
Note 1051 Unknown table 'test.tt_xx_1'
-b-b-b-b-b-b-b-b-b-b-b- >> Drop-Temp-If-Xe-Temp << -b-b-b-b-b-b-b-b-b-b-b-
include/show_binlog_events.inc
-Log_name Pos Event_type Server_id End_log_pos Info
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-Xe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-TXe-Temp';
@@ -114,7 +111,7 @@ Note 1051 Unknown table 'test.tt_1'
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-TXe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-NXe-Temp';
@@ -136,8 +133,6 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_2` /* generated by server */
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-NXe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-TN-Temp';
@@ -293,7 +288,6 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -316,8 +310,6 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp N Drop-Temp-If-Xe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -370,7 +362,7 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -393,8 +385,8 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp N Drop-Temp-If-TXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -456,7 +448,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_2` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -485,8 +476,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_1` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp N Drop-Temp-If-NXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -803,7 +792,6 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -828,8 +816,6 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp N Drop-Temp-If-Xe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -884,7 +870,7 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -909,8 +895,8 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp N Drop-Temp-If-TXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -974,7 +960,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_2` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -1005,8 +990,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_1` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp N Drop-Temp-If-NXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
diff --git a/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result b/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result
index cc85e454cd2..f6e04b950d8 100644
--- a/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result
+++ b/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result
@@ -85,9 +85,6 @@ Warnings:
Note 1051 Unknown table 'test.tt_xx_1'
-b-b-b-b-b-b-b-b-b-b-b- >> Drop-Temp-If-Xe-Temp << -b-b-b-b-b-b-b-b-b-b-b-
include/show_binlog_events.inc
-Log_name Pos Event_type Server_id End_log_pos Info
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-Xe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-TXe-Temp';
@@ -103,9 +100,6 @@ Warnings:
Note 1051 Unknown table 'test.tt_1'
-b-b-b-b-b-b-b-b-b-b-b- >> Drop-Temp-If-TXe-Temp << -b-b-b-b-b-b-b-b-b-b-b-
include/show_binlog_events.inc
-Log_name Pos Event_type Server_id End_log_pos Info
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-TXe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-NXe-Temp';
@@ -121,9 +115,6 @@ Warnings:
Note 1051 Unknown table 'test.tt_1'
-b-b-b-b-b-b-b-b-b-b-b- >> Drop-Temp-If-NXe-Temp << -b-b-b-b-b-b-b-b-b-b-b-
include/show_binlog_events.inc
-Log_name Pos Event_type Server_id End_log_pos Info
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-NXe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-TN-Temp';
@@ -276,7 +267,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -303,8 +293,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp N Drop-Temp-If-Xe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -362,7 +350,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -389,8 +376,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp N Drop-Temp-If-TXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -448,7 +433,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -475,8 +459,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp N Drop-Temp-If-NXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -809,7 +791,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -838,8 +819,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp N Drop-Temp-If-Xe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -899,7 +878,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -928,8 +906,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp N Drop-Temp-If-TXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -989,7 +965,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -1018,8 +993,6 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1)
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp N Drop-Temp-If-NXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
diff --git a/mysql-test/suite/rpl/r/rpl_row_drop_temp_table.result b/mysql-test/suite/rpl/r/rpl_row_drop_temp_table.result
new file mode 100644
index 00000000000..eea0dbd40e7
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_row_drop_temp_table.result
@@ -0,0 +1,38 @@
+include/master-slave.inc
+[connection master]
+connection slave;
+SET GLOBAL read_only=1;
+connection master;
+CREATE PROCEDURE testproc()
+BEGIN
+DROP TEMPORARY TABLE IF EXISTS t1_tmp;
+DROP TEMPORARY TABLE IF EXISTS t2_tmp;
+CREATE TEMPORARY TABLE IF NOT EXISTS t1_tmp ( t1 varchar(400) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TEMPORARY TABLE IF NOT EXISTS t2_tmp ( t2 varchar(16) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+END|
+SET GLOBAL read_only=1;
+CALL testproc();
+******** None of the above DROP TEMPORARY TABLE statement should be found in binary log ********
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Gtid # # GTID #-#-#
+master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `testproc`()
+BEGIN
+DROP TEMPORARY TABLE IF EXISTS t1_tmp;
+DROP TEMPORARY TABLE IF EXISTS t2_tmp;
+CREATE TEMPORARY TABLE IF NOT EXISTS t1_tmp ( t1 varchar(400) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TEMPORARY TABLE IF NOT EXISTS t2_tmp ( t2 varchar(16) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+END
+connection slave;
+SELECT @@read_only;
+@@read_only
+1
+======== CLEAN UP =========
+connection master;
+DROP TEMPORARY TABLE t1_tmp;
+DROP TEMPORARY TABLE t2_tmp;
+DROP PROCEDURE testproc;
+SET GLOBAL read_only=0;
+connection slave;
+SET GLOBAL read_only=0;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_stm_drop_create_temp_table.result b/mysql-test/suite/rpl/r/rpl_stm_drop_create_temp_table.result
index d4bced3e521..d4250159866 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_drop_create_temp_table.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_drop_create_temp_table.result
@@ -91,9 +91,6 @@ Warnings:
Note 1051 Unknown table 'test.tt_xx_1'
-b-b-b-b-b-b-b-b-b-b-b- >> Drop-Temp-If-Xe-Temp << -b-b-b-b-b-b-b-b-b-b-b-
include/show_binlog_events.inc
-Log_name Pos Event_type Server_id End_log_pos Info
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-Xe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-TXe-Temp';
@@ -114,7 +111,7 @@ Note 1051 Unknown table 'test.tt_1'
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-TXe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-NXe-Temp';
@@ -136,8 +133,6 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_2` /* generated by server */
-master-bin.000001 # Gtid # # GTID #-#-#
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-e-e-e-e-e-e-e-e-e-e-e- >> Drop-Temp-If-NXe-Temp << -e-e-e-e-e-e-e-e-e-e-e-
SET @commands= 'Drop-Temp-TN-Temp';
@@ -293,7 +288,6 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -316,8 +310,6 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp N Drop-Temp-If-Xe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -370,7 +362,7 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -393,8 +385,8 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp N Drop-Temp-If-TXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -456,7 +448,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_2` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -485,8 +476,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_1` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp N Drop-Temp-If-NXe-Temp C << -e-e-e-e-e-e-e-e-e-e-e-
@@ -803,7 +792,6 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -828,8 +816,6 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-Xe-Temp N Drop-Temp-If-Xe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -884,7 +870,7 @@ include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -909,8 +895,8 @@ master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2`,`test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1`,`test`.`tt_1` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_2` /* generated by server */
+master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_tmp_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-TXe-Temp N Drop-Temp-If-TXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -974,7 +960,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_2` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
@@ -1005,8 +990,6 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`nt_tmp_1` /
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_xx_1() VALUES (1)
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
-master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */
master-bin.000001 # Query # # ROLLBACK
-e-e-e-e-e-e-e-e-e-e-e- >> B T Drop-Temp-If-NXe-Temp N Drop-Temp-If-NXe-Temp R << -e-e-e-e-e-e-e-e-e-e-e-
diff --git a/mysql-test/suite/rpl/t/create_or_replace.inc b/mysql-test/suite/rpl/t/create_or_replace.inc
index 7d0dc487061..35a6ead60ca 100644
--- a/mysql-test/suite/rpl/t/create_or_replace.inc
+++ b/mysql-test/suite/rpl/t/create_or_replace.inc
@@ -205,6 +205,19 @@ set binlog_format="STATEMENT";
drop temporary table t8;
set @@binlog_format=@org_binlog_format;
+# MDEV-20091:
+# 1. No DROP should be logged for non-existing tmp table, nor
+# 2. at the connection close when its creation has not been logged.
+set @@session.binlog_format=default;
+drop temporary table if exists t9;
+
+--connect(con1,localhost,root,,)
+set session binlog_format=default;
+create temporary table t9 (i int);
+--echo *** Must be no DROP logged for t9 when there was no CREATE, at disconnect too ***
+--disconnect con1
+
+--connection server_1
--source include/show_binlog_events.inc
# Clean up
diff --git a/mysql-test/suite/rpl/t/kill_race_condition.test b/mysql-test/suite/rpl/t/kill_race_condition.test
index 4268c12cdbf..0f3b44864fe 100644
--- a/mysql-test/suite/rpl/t/kill_race_condition.test
+++ b/mysql-test/suite/rpl/t/kill_race_condition.test
@@ -2,27 +2,34 @@ source include/have_debug_sync.inc;
source include/have_binlog_format_row.inc;
source include/master-slave.inc;
+connection master;
+create table t1 (a int);
+--sync_slave_with_master
+
connection slave;
set global debug_dbug='d,rows_log_event_before_open_table';
-send set debug_sync='now WAIT_FOR before_open_table';
connection master;
-create table t1 (a int);
insert t1 values (1),(2),(3);
connection slave;
-reap;
+set debug_sync='now WAIT_FOR before_open_table';
let $a=`select id from information_schema.processlist where state='debug sync point: now'`;
replace_result $a slave_sql_thread;
eval kill $a;
set debug_sync='now SIGNAL go_ahead_sql';
+--let $slave_sql_errno= 1927
+--source include/wait_for_slave_sql_error.inc
+let $error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
+--echo Last_SQL_Error = $error
set global debug_dbug='';
set debug_sync='RESET';
-
connection master;
drop table t1;
connection slave;
-start slave;
+--source include/start_slave.inc
+let $error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
+--echo Last_SQL_Error = $error
source include/rpl_end.inc;
diff --git a/mysql-test/suite/rpl/t/mdev_17588-slave.opt b/mysql-test/suite/rpl/t/mdev_17588-slave.opt
new file mode 100644
index 00000000000..d73dbeca51a
--- /dev/null
+++ b/mysql-test/suite/rpl/t/mdev_17588-slave.opt
@@ -0,0 +1 @@
+--loose-disable-innodb --replicate-ignore-table=test.t3
diff --git a/mysql-test/suite/rpl/t/mdev_17588.test b/mysql-test/suite/rpl/t/mdev_17588.test
new file mode 100644
index 00000000000..e9a340cbd25
--- /dev/null
+++ b/mysql-test/suite/rpl/t/mdev_17588.test
@@ -0,0 +1,39 @@
+--source include/master-slave.inc
+--source include/have_innodb.inc
+
+--connection master
+create table t1 (a int) engine=innodb;
+create table t2 (a int);
+create table t3 (a int) engine=innodb;
+--source include/save_master_gtid.inc
+
+--connection slave
+# Using ER_UNKNOWN_STORAGE_ENGINE wont work
+let $slave_sql_errno= 1286;
+--source include/wait_for_slave_sql_error.inc
+--let $status_items= Last_Error
+--source include/show_slave_status.inc
+STOP SLAVE IO_THREAD;
+source include/wait_for_slave_to_stop.inc;
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
+--source include/start_slave.inc
+--source include/sync_with_master_gtid.inc
+show tables;
+show create table t2;
+--error ER_NO_SUCH_TABLE
+show create table t1;
+--error ER_NO_SUCH_TABLE
+show create table t3;
+
+--connection master
+drop table if exists t1;
+drop table if exists t2;
+drop table if exists t3;
+--source include/save_master_gtid.inc
+
+--connection slave
+--source include/sync_with_master_gtid.inc
+
+
+CALL mtr.add_suppression('Slave: Unknown storage engine .* Error_code: 1286');
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_drop_temp_table_invaid_lex.test b/mysql-test/suite/rpl/t/rpl_drop_temp_table_invaid_lex.test
new file mode 100644
index 00000000000..2d3031da544
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_drop_temp_table_invaid_lex.test
@@ -0,0 +1,31 @@
+# ==== Purpose ====
+#
+# Test verifies that no ASAN issues are reported at the time of writing DROP
+# TEMPORARY TABLE statements to binary log as part of session cleanup.
+#
+# ==== Implementation ====
+#
+# Steps:
+# 1 - Create a new connection named 'con1'.
+# 2 - Create a temporary table named 'tmp' as part of connection 'con1'.
+# 3 - Try to disconnect the current session when a CREATE .. SELECT
+# statement is in the middle of execution.
+# 4 - Observe that no ASAN issue is reported.
+#
+# ==== References ====
+#
+# MDEV-19716: ASAN use-after-poison in Query_log_event::Query_log_event /
+# THD::log_events_and_free_tmp_shares
+
+--source include/master-slave.inc
+
+--connect (con1,localhost,root,,)
+
+CREATE TEMPORARY TABLE tmp (a INT);
+
+--send CREATE TABLE non_existing_db.t SELECT 1 AS b
+--disconnect con1
+
+--connection default
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_row_drop_temp_table.test b/mysql-test/suite/rpl/t/rpl_row_drop_temp_table.test
new file mode 100644
index 00000000000..ba3770d3013
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_row_drop_temp_table.test
@@ -0,0 +1,54 @@
+# ==== Purpose ====
+#
+# Test verifies that plain DROP TEMPORARY TABLE IF EXISTS statements are not
+# replicated during row based replication.
+#
+# ==== Implementation ====
+#
+# Steps:
+# 0 - Have a read_only master and slave. Binlog format should be "ROW".
+# 1 - Create a procedure which executes DROP TEMPORARY TABLE IF EXISTS
+# statements prior to CREATE TEMPORARY TABLE.
+# 2 - Execute the procedure.
+# 3 - Verify that the DROP TEMPORARY TABLE IF EXISTS statements within the
+# procedure are not written to the binary log.
+#
+# ==== References ====
+#
+# MDEV-20091: DROP TEMPORARY table is logged despite no CREATE was logged
+#
+
+--source include/have_binlog_format_row.inc
+--source include/have_innodb.inc
+--source include/master-slave.inc
+
+connection slave;
+SET GLOBAL read_only=1;
+
+connection master;
+DELIMITER |;
+CREATE PROCEDURE testproc()
+BEGIN
+ DROP TEMPORARY TABLE IF EXISTS t1_tmp;
+ DROP TEMPORARY TABLE IF EXISTS t2_tmp;
+ CREATE TEMPORARY TABLE IF NOT EXISTS t1_tmp ( t1 varchar(400) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+ CREATE TEMPORARY TABLE IF NOT EXISTS t2_tmp ( t2 varchar(16) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+END|
+DELIMITER ;|
+SET GLOBAL read_only=1;
+CALL testproc();
+--echo ******** None of the above DROP TEMPORARY TABLE statement should be found in binary log ********
+--source include/show_binlog_events.inc
+--sync_slave_with_master
+SELECT @@read_only;
+
+--echo ======== CLEAN UP =========
+connection master;
+DROP TEMPORARY TABLE t1_tmp;
+DROP TEMPORARY TABLE t2_tmp;
+DROP PROCEDURE testproc;
+SET GLOBAL read_only=0;
+--sync_slave_with_master
+SET GLOBAL read_only=0;
+
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result b/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result
index 1e2f21ddcd1..72b4041599a 100644
--- a/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result
+++ b/mysql-test/suite/sys_vars/r/slave_transaction_retry_errors.result
@@ -1,20 +1,20 @@
select @@global.slave_transaction_retry_errors;
@@global.slave_transaction_retry_errors
-1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,400
+1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
select @@session.slave_transaction_retry_errors;
ERROR HY000: Variable 'slave_transaction_retry_errors' is a GLOBAL variable
show global variables like 'slave_transaction_retry_errors';
Variable_name Value
-slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,400
+slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
show session variables like 'slave_transaction_retry_errors';
Variable_name Value
-slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,400
+slave_transaction_retry_errors 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
select * from information_schema.global_variables where variable_name='slave_transaction_retry_errors';
VARIABLE_NAME VARIABLE_VALUE
-SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,400
+SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
select * from information_schema.session_variables where variable_name='slave_transaction_retry_errors';
VARIABLE_NAME VARIABLE_VALUE
-SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,400
+SLAVE_TRANSACTION_RETRY_ERRORS 1158,1159,1160,1161,1205,1213,1429,2013,12701,10,20,5000,400
set global slave_transaction_retry_errors=1;
ERROR HY000: Variable 'slave_transaction_retry_errors' is a read only variable
set session slave_transaction_retry_errors=1;
diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
index 440e27edaf0..b6a8bff7296 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
@@ -862,6 +862,20 @@ NUMERIC_BLOCK_SIZE NULL
ENUM_VALUE_LIST OFF,ON,FORCE
READ_ONLY NO
COMMAND_LINE_ARGUMENT OPTIONAL
+VARIABLE_NAME INNODB_ENCRYPT_TEMPORARY_TABLES
+SESSION_VALUE NULL
+GLOBAL_VALUE OFF
+GLOBAL_VALUE_ORIGIN COMPILE-TIME
+DEFAULT_VALUE OFF
+VARIABLE_SCOPE GLOBAL
+VARIABLE_TYPE BOOLEAN
+VARIABLE_COMMENT Enrypt the temporary table data.
+NUMERIC_MIN_VALUE NULL
+NUMERIC_MAX_VALUE NULL
+NUMERIC_BLOCK_SIZE NULL
+ENUM_VALUE_LIST OFF,ON
+READ_ONLY YES
+COMMAND_LINE_ARGUMENT OPTIONAL
VARIABLE_NAME INNODB_FAST_SHUTDOWN
SESSION_VALUE NULL
GLOBAL_VALUE 1
diff --git a/mysql-test/suite/wsrep/r/variables.result b/mysql-test/suite/wsrep/r/variables.result
index 388fe7b8f4f..6314132ca6c 100644
--- a/mysql-test/suite/wsrep/r/variables.result
+++ b/mysql-test/suite/wsrep/r/variables.result
@@ -21,6 +21,7 @@ SET GLOBAL wsrep_provider=none;
CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*");
SHOW GLOBAL STATUS LIKE 'wsrep%';
Variable_name Value
+wsrep_applier_thread_count #
wsrep_apply_oooe #
wsrep_apply_oool #
wsrep_apply_window #
@@ -74,10 +75,12 @@ wsrep_repl_keys_bytes #
wsrep_repl_other_bytes #
wsrep_replicated #
wsrep_replicated_bytes #
+wsrep_rollbacker_thread_count #
wsrep_thread_count #
SHOW GLOBAL STATUS LIKE 'wsrep_%';
Variable_name Value
+wsrep_applier_thread_count #
wsrep_apply_oooe #
wsrep_apply_oool #
wsrep_apply_window #
@@ -131,6 +134,7 @@ wsrep_repl_keys_bytes #
wsrep_repl_other_bytes #
wsrep_replicated #
wsrep_replicated_bytes #
+wsrep_rollbacker_thread_count #
wsrep_thread_count #
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
Variable_name Value
@@ -185,7 +189,16 @@ wsrep_thread_count 0
# Setting wsrep_cluster_address triggers the creation of
# applier/rollbacker threads.
SET GLOBAL wsrep_cluster_address= 'gcomm://';
-# Wait for applier threads to get created.
+# Wait for applier thread to get created 1.
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
+VARIABLE_VALUE
+1
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count';
+VARIABLE_VALUE
+1
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+VARIABLE_VALUE
+2
SELECT @@global.wsrep_provider;
@@global.wsrep_provider
libgalera_smm.so
@@ -201,13 +214,19 @@ wsrep_thread_count 2
SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads;
SET GLOBAL wsrep_slave_threads= 10;
-# Wait for applier threads to get created.
+# Wait for 9 applier threads to get created.
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
+VARIABLE_VALUE
+10
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count';
+VARIABLE_VALUE
+1
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+VARIABLE_VALUE
+11
SHOW STATUS LIKE 'threads_connected';
Variable_name Value
Threads_connected 1
-SHOW STATUS LIKE 'wsrep_thread_count';
-Variable_name Value
-wsrep_thread_count 11
set wsrep_on=0;
set wsrep_on=1;
create user test@localhost;
diff --git a/mysql-test/suite/wsrep/suite.pm b/mysql-test/suite/wsrep/suite.pm
index fbaf5aa2b22..7b3dae7c8c3 100644
--- a/mysql-test/suite/wsrep/suite.pm
+++ b/mysql-test/suite/wsrep/suite.pm
@@ -6,23 +6,11 @@ use My::Find;
return "Not run for embedded server" if $::opt_embedded_server;
-return "WSREP is not compiled in" unless defined $::mysqld_variables{'wsrep-on'};
+return "WSREP is not compiled in" unless ::have_wsrep();
-my ($provider) = grep { -f $_ } $ENV{WSREP_PROVIDER},
- "/usr/lib64/galera-4/libgalera_smm.so",
- "/usr/lib64/galera/libgalera_smm.so",
- "/usr/lib/galera-4/libgalera_smm.so",
- "/usr/lib/galera/libgalera_smm.so";
+return "No wsrep provider library" unless ::have_wsrep_provider();
-return "No wsrep provider library" unless -f $provider;
-
-$ENV{WSREP_PROVIDER} = $provider;
-
-my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$::bindir/scripts", $::path_client_bindir;
-return "No SST scripts" unless $spath;
-
-my ($epath) = grep { -f "$_/my_print_defaults"; } "$::bindir/extra", $::path_client_bindir;
-return "No my_print_defaults" unless $epath;
+return ::wsrep_version_message() unless ::check_wsrep_version();
push @::global_suppressions,
(
@@ -31,8 +19,4 @@ push @::global_suppressions,
qr|WSREP: access file\(.*gvwstate.dat\) failed\(No such file or directory\)|,
);
-$ENV{PATH}="$epath:$ENV{PATH}";
-$ENV{PATH}="$spath:$ENV{PATH}" unless $epath eq $spath;
-
bless { };
-
diff --git a/mysql-test/suite/wsrep/t/variables.test b/mysql-test/suite/wsrep/t/variables.test
index c13a8c5f281..5032398fc42 100644
--- a/mysql-test/suite/wsrep/t/variables.test
+++ b/mysql-test/suite/wsrep/t/variables.test
@@ -1,4 +1,5 @@
--source include/have_wsrep.inc
+--source include/force_restart.inc
SET @wsrep_provider_options_saved= @@global.wsrep_provider_options;
SET @wsrep_cluster_address_saved= @@global.wsrep_cluster_address;
@@ -98,10 +99,14 @@ SHOW STATUS LIKE 'wsrep_thread_count';
--echo # applier/rollbacker threads.
SET GLOBAL wsrep_cluster_address= 'gcomm://';
---echo # Wait for applier threads to get created.
---let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+--echo # Wait for applier thread to get created 1.
+--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+
--replace_regex /.*libgalera_smm.*/libgalera_smm.so/
SELECT @@global.wsrep_provider;
SELECT @@global.wsrep_cluster_address;
@@ -112,12 +117,15 @@ SHOW STATUS LIKE 'wsrep_thread_count';
SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads;
SET GLOBAL wsrep_slave_threads= 10;
---echo # Wait for applier threads to get created.
---let $wait_condition = SELECT VARIABLE_VALUE = 11 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+--echo # Wait for 9 applier threads to get created.
+--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
--source include/wait_condition.inc
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count';
+SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
+
SHOW STATUS LIKE 'threads_connected';
-SHOW STATUS LIKE 'wsrep_thread_count';
#
# privileges for wsrep_on
diff --git a/mysql-test/unstable-tests b/mysql-test/unstable-tests
index 7246d2cc73e..6e478a312ba 100644
--- a/mysql-test/unstable-tests
+++ b/mysql-test/unstable-tests
@@ -22,425 +22,449 @@
# To use the list, run MTR with --skip-test-list=unstable-tests option.
#
##############################################################################
+#
+# Based on 10.4 11f3e2366282eb8cf1cb0062793d102067db6472
+
+main.alter_table_trans : MDEV-12084 - timeout
+main.analyze_stmt_slow_query_log : MDEV-12237 - Wrong result
+main.auth_named_pipe : MDEV-14724 - System error 2
+main.charset_client_win : Added in 10.4.7
+main.column_compression : Modified in 10.4.7
+main.connect : MDEV-17282 - Wrong result
+main.connect-abstract : MDEV-20162 - Could not execute 'check-testcase'
+main.connect2 : MDEV-13885 - Server crash
+main.count_distinct2 : MDEV-11768 - timeout
+main.create_delayed : MDEV-10605 - failed with timeout
+main.create_drop_event : MDEV-16271 - Wrong result
+main.ctype_ucs : MDEV-17681 - Data too long for column
+main.ctype_upgrade : MDEV-16945 - Error upon mysql_upgrade
+main.ctype_utf16 : MDEV-10675: timeout or extra warnings
+main.ctype_utf16le : MDEV-10675: timeout or extra warnings
+main.ctype_utf8_def_upgrade : Added in 10.3.16
+main.ctype_utf8mb4_innodb : MDEV-17744 - Timeout; MDEV-18567 - ASAN use-after-poison
+main.debug_sync : MDEV-10607 - internal error
+main.derived : Modified in 10.3.16
+main.derived_opt : MDEV-11768 - timeout
+main.derived_view : Modified in 10.3.16
+main.dirty_close : MDEV-19368 - mysqltest failed but provided no output
+main.distinct : MDEV-14194 - Crash
+main.drop_bad_db_type : MDEV-15676 - Wrong result
+main.dyncol : MDEV-19455 - Extra warning
+main.events_2 : MDEV-13277 - Crash
+main.events_bugs : MDEV-12892 - Crash
+main.events_restart : MDEV-12236 - Server shutdown problem
+main.events_slowlog : MDEV-12821 - Wrong result
+main.flush : MDEV-19368 - mysqltest failed but provided no output
+main.func_json : Modified in 10.3.16
+main.func_time : Modified in 10.4.7
+main.gis : MDEV-13411 - wrong result on P8; modified in 10.4.7
+main.host_cache_size_functionality : MDEV-10606 - sporadic failure on shutdown
+main.index_intersect_innodb : MDEV-10643 - failed with timeout
+main.index_merge_innodb : MDEV-7142 - Plan mismatch
+main.innodb_icp : MDEV-20168 - Wrong execution plans
+main.innodb_mysql_lock : MDEV-7861 - Wrong result
+main.join : Modified in 10.3.16
+main.join_cache : MDEV-17743 - Bad address from storage engine MyISAM; modified in 10.3.16
+main.join_nested : Modified in 10.3.16
+main.join_outer : Modified in 10.4.7
+main.keywords : Modified in 10.4.7
+main.kill-2 : MDEV-13257 - Wrong result
+main.kill_processlist-6619 : MDEV-10793 - Wrong result
+main.loaddata : MDEV-19368 - mysqltest failed but provided no output
+main.log_slow : MDEV-13263 - Wrong result
+main.log_tables-big : MDEV-13408 - wrong result
+main.mdev-504 : MDEV-15171 - warning
+main.mdev375 : MDEV-10607 - sporadic "can't connect"
+main.merge : MDEV-10607 - sporadic "can't connect"
+main.multi_update : Modified in 10.3.16
+main.multi_update_debug : MDEV-20136 - Debug sync point wait timed out; added in 10.3.16
+main.multi_update_innodb : Modified in 10.3.16
+main.mysql : MDEV-20156 - Wrong result
+main.mysql_client_test : MDEV-19369 - error: 5888, status: 23, errno: 2; MDEV-19511 - Big endian issue
+main.mysql_client_test_comp : MDEV-16641 - Error in exec
+main.mysql_client_test_nonblock : CONC-208 - Error on Power; MDEV-15096 - exec failed
+main.mysql_upgrade : MDEV-20161 - Wrong result; MDEV-20166 - FATAL ERROR: Upgrade failed
+main.mysql_upgrade_noengine : MDEV-14355 - Wrong result
+main.mysql_upgrade_ssl : MDEV-13492 - Unknown SSL error
+main.mysql_upgrade_view : MDEV-20161 - Wrong result
+main.mysqlcheck : MDEV-20164 - Wrong result
+main.mysqld--help : Modified in 10.3.17
+main.mysqldump : MDEV-14800 - Stack smashing detected; modified in 10.3.16
+main.mysqldump-compat-102 : Added in 10.4.7
+main.mysqldump_restore : Modified in 10.4.7
+main.mysqlhotcopy_myisam : MDEV-10995 - Hang on debug
+main.mysqlslap : MDEV-11801 - timeout
+main.mysqltest : MDEV-13887 - Wrong result
+main.old-mode : MDEV-19373 - Wrong result
+main.openssl_1 : MDEV-13492 - Unknown SSL error
+main.openssl_6975 : MDEV-17184 - Failures with OpenSSL 1.1.1
+main.opt_trace : Modified in 10.4.7
+main.order_by : Modified in 10.3.16
+main.order_by_optimizer_innodb : MDEV-10683 - Wrong result
+main.parser : Modified in 10.4.7
+main.partition_debug_sync : MDEV-15669 - Deadlock found when trying to get lock
+main.partition_innodb : MDEV-20169 - Wrong result
+main.partition_innodb_plugin : MDEV-12901 - Valgrind warnings
+main.partition_innodb_semi_consistent : MDEV-19411 - Failed to start mysqld.1
+main.plugin_auth : Modified in 10.3.17
+main.plugin_auth_qa_2 : MDEV-20165 - Wrong result
+main.pool_of_threads : MDEV-18135 - SSL error: key too small
+main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count
+main.query_cache : MDEV-16180 - Wrong result
+main.query_cache_debug : MDEV-15281 - Query cache is disabled
+main.range_vs_index_merge_innodb : MDEV-15283 - Server has gone away
+main.repair_symlink-5543 : Modified in 10.3.17
+main.rowid_filter_innodb : Modified in 10.4.7
+main.set_statement : MDEV-13183 - Wrong result
+main.set_statement_notembedded : MDEV-19414 - Wrong result
+main.shm : MDEV-12727 - Mismatch, ERROR 2013
+main.show_explain : MDEV-10674 - Wrong result code
+main.sp : MDEV-7866 - Mismatch; modified in 10.4.7
+main.sp-security : MDEV-10607 - sporadic "can't connect"
+main.sp_notembedded : MDEV-10607 - internal error
+main.ssl : MDEV-17184 - Failures with OpenSSL 1.1.1
+main.ssl_ca : MDEV-10895 - SSL connection error on Power
+main.ssl_cipher : MDEV-17184 - Failures with OpenSSL 1.1.1
+main.ssl_connect : MDEV-13492 - Unknown SSL error
+main.ssl_crl : MDEV-19119 - Wrong error code
+main.ssl_timeout : MDEV-11244 - Crash
+main.stat_tables : Modified in 10.3.16
+main.stat_tables_par : MDEV-13266 - Wrong result
+main.stat_tables_par_innodb : MDEV-14155 - Wrong rounding
+main.status : MDEV-13255 - Wrong result
+main.subselect_innodb : MDEV-10614 - Wrong result
+main.subselect_no_semijoin : Modified in 10.3.16
+main.subselect_sj : Modified in 10.3.16
+main.subselect_sj_mat : Modified in 10.3.16
+main.tc_heuristic_recover : MDEV-14189 - Wrong result
+main.temp_table : Modified in 10.3.16
+main.tls_version : MDEV-20170 - Unknown SSL error
+main.tls_version1 : MDEV-20170 - Unknown SSL error; added in 10.4.7
+main.trigger_null-8605 : Modified in 10.3.16
+main.type_blob : MDEV-15195 - Wrong result
+main.type_datetime : Modified in 10.3.17
+main.type_datetime_hires : MDEV-10687 - Timeout
+main.type_float : Modified in 10.3.16
+main.type_varchar : Modified in 10.4.7
+main.userstat : MDEV-12904 - SSL errors
+main.wait_timeout : MDEV-19023 - Lost connection to MySQL server during query
+main.win : Modified in 10.3.16
+main.xa : MDEV-11769 - lock wait timeout
+
+#-----------------------------------------------------------------------
+
+archive.archive_bitfield : MDEV-11771 - table is marked as crashed
+archive.archive_symlink : MDEV-12170 - unexpected error on rmdir
+archive.discover : MDEV-10510 - Table is marked as crashed
+archive.mysqlhotcopy_archive : MDEV-10995 - Hang on debug
+
+#-----------------------------------------------------------------------
+
+archive-test_sql_discovery.discover : MDEV-16817 - Table marked as crashed
+
+#-----------------------------------------------------------------------
+
+binlog.binlog_commit_wait : MDEV-10150 - Mismatch
+binlog.binlog_killed : MDEV-12925 - Wrong result
+binlog.binlog_max_extension : MDEV-19762 - Crash on shutdown
+binlog.binlog_mysqlbinlog_stop_never : Added in 10.3.17
+binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint
+binlog.flashback-largebinlog : MDEV-19764 - Out of memory; added in 10.3.16
+binlog.load_data_stm_view : MDEV-16948 - Wrong result
+
+#-----------------------------------------------------------------------
+
+binlog_encryption.binlog_xa_recover : MDEV-12908 - Extra checkpoint
+binlog_encryption.encrypted_master : MDEV-14201 - Extra warnings
+binlog_encryption.encrypted_master_switch_to_unencrypted : MDEV-14190 - Can't init tc log
+binlog_encryption.encrypted_slave : MDEV-18135 - SSL error: key too small
+binlog_encryption.encryption_combo : MDEV-14199 - Table is marked as crashed
+binlog_encryption.rpl_binlog_errors : MDEV-12742 - Crash
+binlog_encryption.rpl_checksum : MDEV-16951 - Wrong result
+binlog_encryption.rpl_corruption : MDEV-20159 - Assertion failure
+binlog_encryption.rpl_gtid_basic : MDEV-16947 - Server failed to start
+binlog_encryption.rpl_loadfile : MDEV-16645 - Timeout in include
+binlog_encryption.rpl_parallel : MDEV-10653 - Timeout in include
+binlog_encryption.rpl_relayrotate : MDEV-15194 - Timeout
+binlog_encryption.rpl_semi_sync : MDEV-11673 - Valgrind
+binlog_encryption.rpl_skip_replication : MDEV-13571 - Unexpected warning
+binlog_encryption.rpl_ssl : MDEV-14507 - Timeouts
+binlog_encryption.rpl_stm_relay_ign_space : MDEV-19375 - Test assertion failed
+binlog_encryption.rpl_sync : MDEV-13830 - Assertion failure
+binlog_encryption.rpl_temporal_format_mariadb53_to_mysql56 : MDEV-20159 - Assertion failure
+binlog_encryption.rpl_typeconv : MDEV-14362 - Lost connection to MySQL server during query
+
+#-----------------------------------------------------------------------
-# Based on 10.3 9556d56da2a87b47f545ce4c9cbd09f7778ad527
+compat/oracle.column_compression : Modified in 10.4.7
+compat/oracle.keywords : Added in 10.4.7
+compat/oracle.mysqldump_restore : Added in 10.4.7
#-----------------------------------------------------------------------
-archive.archive_bitfield : MDEV-11771 - table is marked as crashed
-archive.archive_symlink : MDEV-12170 - unexpected error on rmdir
-archive.discover : MDEV-10510 - Table is marked as crashed
-archive.mysqlhotcopy_archive : MDEV-10995 - Hang on debug
-
-archive-test_sql_discovery.discover : MDEV-16817 - Table marked as crashed
+connect.alter : MDEV-18135 - SSL error: key too small
+connect.drop-open-error : MDEV-18135 - SSL error: key too small
+connect.json : MDEV-18135 - SSL error: key too small
+connect.part_file : MDEV-18135 - SSL error: key too small
+connect.part_table : MDEV-18135 - SSL error: key too small
+connect.pivot : MDEV-14803 - Failed to discover table
+connect.secure_file_priv : MDEV-18135 - SSL error: key too small
+connect.vcol : MDEV-12374 - Fails on Windows
+connect.zip : MDEV-13884 - Wrong result
#-----------------------------------------------------------------------
-binlog.binlog_commit_wait : MDEV-10150 - Mismatch
-binlog.binlog_flush_binlogs_delete_domain : MDEV-14431 - Wrong exit code
-binlog.binlog_incident : Modified in 10.1.36
-binlog.binlog_killed : MDEV-12925 - Wrong result
-binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint
-binlog.load_data_stm_view : MDEV-16948 - Wrong result
-binlog_tmp_table_row : Added in 10.3.9
+disks.disks_notembedded : Added in 10.4.7
#-----------------------------------------------------------------------
-binlog_encryption.binlog_incident : Modified in 10.1.36
-binlog_encryption.binlog_xa_recover : MDEV-12908 - Extra checkpoint
-binlog_encryption.encrypted_master : MDEV-14201 - Extra warnings
-binlog_encryption.encrypted_master_switch_to_unencrypted : MDEV-14190 - Can't init tc log
-binlog_encryption.encryption_combo : MDEV-14199 - Table is marked as crashed
-binlog_encryption.rpl_binlog_errors : MDEV-12742 - Crash
-binlog_encryption.rpl_checksum : MDEV-16951 - Wrong result
-binlog_encryption.rpl_gtid_basic : MDEV-16947 - Server failed to start
-binlog_encryption.rpl_loadfile : MDEV-16645 - Timeout in include
-binlog_encryption.rpl_parallel : MDEV-10653 - Timeout in include
-binlog_encryption.rpl_relayrotate : MDEV-15194 - Timeout
-binlog_encryption.rpl_semi_sync : MDEV-11673 - Valgrind
-binlog_encryption.rpl_skip_replication : MDEV-13571 - Unexpected warning
-binlog_encryption.rpl_ssl : MDEV-14507 - Timeouts
-binlog_encryption.rpl_stm_relay_ign_space : MDEV-13278 - Wrong result (test assertion)
-binlog_encryption.rpl_sync : MDEV-13830 - Assertion failure
-binlog_encryption.rpl_typeconv : MDEV-14362 - Lost connection to MySQL server during query
+encryption.compressed_import_tablespace : Added in 10.3.16
+encryption.corrupted_during_recovery : Modified in 10.3.16
+encryption.create_or_replace : MDEV-12694 - Timeout; MDEV-16115 - Trying to access tablespace
+encryption.debug_key_management : MDEV-13841 - Timeout
+encryption.encrypt_and_grep : MDEV-13765 - Wrong result
+encryption.innochecksum : MDEV-13644 - Assertion failure; modified in 10.4.7
+encryption.innodb-bad-key-change2 : MDEV-19118 - Can't connect to local MySQL server through socket
+encryption.innodb-checksum-algorithm : MDEV-12898 - Deadlock of threads; MDEV-16896 - Server crash
+encryption.innodb-compressed-blob : MDEV-14728 - Unable to get certificate
+encryption.innodb-discard-import : MDEV-19113 - Timeout
+encryption.innodb-encryption-alter : MDEV-13566 - Lock wait timeout; modified in 10.4.7
+encryption.innodb-first-page-read : MDEV-14356 - Timeout in wait condition
+encryption.innodb-force-corrupt : MDEV-17286 - SSL error; modified in 10.3.16
+encryption.innodb-missing-key : MDEV-14728 - SSL error
+encryption.innodb-page_encryption : MDEV-10641 - mutex problem
+encryption.innodb-page_encryption_log_encryption : MDEV-17339 - Crash on restart
+encryption.innodb-read-only : MDEV-16563 - Crash on startup
+encryption.innodb-redo-badkey : MDEV-12898 - Server hang on startup
+encryption.innodb-redo-nokeys : MDEV-20159 - Assertion failure
+encryption.innodb-remove-encryption : MDEV-16493 - Timeout in wait condition
+encryption.innodb-spatial-index : MDEV-13746 - Wrong result
+encryption.innodb_encrypt_key_rotation_age : MDEV-19763 - Timeout
+encryption.innodb_encrypt_log : MDEV-13725 - Wrong result
+encryption.innodb_encrypt_temporary_tables : MDEV-20142 - Wrong result; added in 10.4.7
+encryption.innodb_encryption : MDEV-15675 - Timeout
+encryption.innodb_encryption-page-compression : MDEV-12630 - crash or assertion failure
+encryption.innodb_encryption_discard_import : MDEV-16116 - Wrong result
+encryption.innodb_encryption_filekeys : MDEV-15673 - Timeout
+encryption.innodb_encryption_row_compressed : MDEV-16113 - Crash
+encryption.innodb_encryption_tables : MDEV-17339 - Crash on restart
+encryption.innodb_first_page : MDEV-10689 - Crash
+encryption.innodb_onlinealter_encryption : MDEV-17287 - SIGABRT on server restart
+encryption.innodb_scrub : MDEV-8139 - scrubbing tests need fixing
+encryption.innodb_scrub_background : MDEV-8139 - scrubbing tests need fixing
+encryption.innodb_scrub_compressed : MDEV-8139 - scrubbing tests need fixing
#-----------------------------------------------------------------------
-compat/oracle.events : Added in 10.3.9
-compat/oracle.table_value_constr : Modified in 10.3.10
+engines/funcs.* : Not maintained in timely manner
#-----------------------------------------------------------------------
-connect.pivot : MDEV-14803 - Failed to discover table
-connect.vcol : MDEV-12374 - Fails on Windows
-connect.xml2 : Modified in 10.3.10
-connect.zip : MDEV-13884 - Wrong result
+engines/iuds.* : Not maintained in timely manner
#-----------------------------------------------------------------------
-
-encryption.create_or_replace : MDEV-12694 - Timeout; MDEV-16115 - Trying to access tablespace
-encryption.debug_key_management : MDEV-13841 - Timeout
-encryption.encrypt_and_grep : MDEV-13765 - Wrong result
-encryption.innochecksum : MDEV-13644 - Assertion failure
-encryption.innodb-checksum-algorithm : MDEV-12898 - Deadlock of threads; MDEV-16896 - Server crash
-encryption.innodb-compressed-blob : MDEV-14728 - Unable to get certificate
-encryption.innodb-encryption-alter : MDEV-13566 - Lock wait timeout
-encryption.innodb_encryption_tables : MDEV-17339 - Crash on restart
-encryption.innodb-first-page-read : MDEV-14356 - Timeout in wait condition
-encryption.innodb-force-corrupt : MDEV-17286 - SSL error
-encryption.innodb-missing-key : MDEV-14728 - SSL error
-encryption.innodb-page_encryption : MDEV-10641 - mutex problem
-encryption.innodb-page_encryption_log_encryption : MDEV-17339 - Crash on restart
-encryption.innodb-read-only : MDEV-16563 - Crash on startup
-encryption.innodb-redo-badkey : MDEV-13893 - Page cannot be decrypted
-encryption.innodb-remove-encryption : MDEV-16493 - Timeout in wait condition
-encryption.innodb-spatial-index : MDEV-13746 - Wrong result
-encryption.innodb_encrypt_log : MDEV-13725 - Wrong result
-encryption.innodb_encryption : MDEV-15675 - Timeout
-encryption.innodb_encryption-page-compression : MDEV-12630 - crash or assertion failure
-encryption.innodb_encryption_discard_import : MDEV-16116 - Wrong result
-encryption.innodb_encryption_filekeys : MDEV-15673 - Timeout
-encryption.innodb_encryption_row_compressed : MDEV-16113 - Crash
-encryption.innodb_first_page : MDEV-10689 - Crash
-encryption.innodb_onlinealter_encryption : MDEV-17287 - SIGABRT on server restart
-encryption.innodb_scrub : MDEV-8139 - scrubbing tests need fixing
-encryption.innodb_scrub_background : MDEV-8139 - scrubbing tests need fixing
-encryption.innodb_scrub_compressed : MDEV-8139 - scrubbing tests need fixing
-
-#-----------------------------------------------------------------------
-
-engines/funcs.* : Not maintained in timely manner
-engines/iuds.* : Not maintained in timely manner
-engines/rr_trx.* : MDEV-10998 - Not maintained
-
-#-----------------------------------------------------------------------
-
-federated.federated_bug_35333 : MDEV-13410 - Wrong result
-federated.federated_bug_585688 : MDEV-14805 - Server crash, MDEV-12907 - Valgrind
-federated.federated_innodb : MDEV-10617 - Wrong checksum
-federated.federated_partition : MDEV-10417 - Fails on Mips
-federated.federated_transactions : MDEV-10617 - Wrong checksum
-federated.federatedx : MDEV-10617 - Wrong checksum
-
-#-----------------------------------------------------------------------
-
-funcs_1.is_check_constraints : Added in 10.3.10
-funcs_1.memory_views : MDEV-11773 - timeout
-funcs_1.processlist_val_no_prot : MDEV-11223 - Wrong result
-funcs_1.processlist_val_ps : MDEV-12175 - Wrong plan
-
-#-----------------------------------------------------------------------
-
-funcs_2.memory_charset : MDEV-10290 - Timeout
-funcs_2.myisam_charset : MDEV-11535 - Timeout
-funcs_2/charset.* : MDEV-10999 - Not maintained
-
-#-----------------------------------------------------------------------
-
-galera.* : Suite is not stable yet
-galera_3nodes.* : Suite is not stable yet
-
-#-----------------------------------------------------------------------
-
-gcol.gcol_rollback : MDEV-16954 - Unknown storage engine 'InnoDB'
-gcol.gcol_update : Include file modified in 10.3.9
-gcol.innodb_virtual_basic : MDEV-16950 - Failing assertion
-gcol.innodb_virtual_debug : MDEV-14134 - Crash, assertion failure
-gcol.innodb_virtual_debug_purge : MDEV-16952 - Wrong result; modified in 10.3.10
-gcol.innodb_virtual_index : Include file modified in 10.3.9
-gcol.innodb_virtual_purge : Include file modified in 10.3.9
-
-#-----------------------------------------------------------------------
-
-innodb.101_compatibility : MDEV-13891 - Wrong result
-innodb.alter_algorithm : Modified in 10.3.10
-innodb.alter_copy : MDEV-16181 - Assertion failure
-innodb.alter_crash : MDEV-16944 - The process cannot access the file
-innodb.alter_kill : MDEV-16273 - Unknown storage engine 'InnoDB', MDEV-16946 - Wrong result
-innodb.alter_not_null : Modified in 10.3.9
-innodb.alter_not_null_debug : Added in 10.3.9
-innodb.autoinc_persist : MDEV-15282 - Assertion failure
-innodb.binlog_consistent : MDEV-10618 - Server fails to start
-innodb.dml_purge : Include file modified in 10.3.9
-innodb.doublewrite : MDEV-12905 - Server crash
-innodb.foreign_key : Modified in 10.3.10
-innodb.foreign-keys : Modified in 10.3.10
-innodb.group_commit_crash : MDEV-14191 - InnoDB registration failed
-innodb.group_commit_crash_no_optimize_thread : MDEV-13830 - Assertion failure
-innodb.index_merge_threshold : Include files modified in 10.3.9
-innodb.innodb-16k : Modified in 10.3.9
-innodb.innodb-32k-crash : MDEV-16953 - Corrupt log record found
-innodb.innodb-64k-crash : MDEV-13872 - Failure and crash on startup
-innodb.innodb-alter-debug : MDEV-13182 - InnoDB: adjusting FSP_SPACE_FLAGS
-innodb.innodb-alter-table : MDEV-10619 - Testcase timeout
-innodb.innodb-alter-tempfile : MDEV-15285 - Table already exists
-innodb.innodb-blob : MDEV-12053 - Client crash
-innodb.innodb-corrupted-table : Modified in 10.3.9
-innodb.innodb-fk : MDEV-13832 - Assertion failure on shutdown
-innodb.innodb-get-fk : MDEV-13276 - Server crash
-innodb.innodb-index-online : MDEV-14809 - Cannot save statistics
-innodb.innodb-lock : Modified in 10.3.10
-innodb.innodb-mdev-7513 : Modified in 10.3.9
-innodb.innodb-page_compression_bzip2 : Modified in 10.3.10
-innodb.innodb-page_compression_default : MDEV-13644 - Assertion failure
-innodb.innodb-page_compression_lz4 : Modified in 10.3.10
-innodb.innodb-page_compression_lzma : MDEV-14353 - Wrong result; modified in 10.3.10
-innodb.innodb-page_compression_lzo : Modified in 10.3.10
-innodb.innodb-page_compression_snappy : MDEV-13644 - Assertion failure
-innodb.innodb-page_compression_tables : Modified in 10.3.10
-innodb.innodb-page_compression_zip : MDEV-10641 - mutex problem; modified in 10.3.10
-innodb.innodb-table-online : MDEV-13894 - Wrong result
-innodb.innodb-wl5522 : MDEV-13644 - Assertion failure; modified in 10.3.9
-innodb.innodb-wl5522-debug : MDEV-14200 - Wrong errno
-innodb.innodb_bug14147491 : MDEV-11808 - Index is corrupt
-innodb.innodb_bug30423 : MDEV-7311 - Wrong result
-innodb.innodb_bug48024 : MDEV-14352 - Assertion failure
-innodb.innodb_bug59641 : MDEV-13830 - Assertion failure
-innodb.innodb_buffer_pool_resize : MDEV-16964 - Assertion failure
-innodb.innodb_buffer_pool_resize_with_chunks : MDEV-16964 - Assertion failure
-innodb.innodb_bulk_create_index_replication : MDEV-15273 - Slave failed to start
-innodb.innodb_defrag_stats_many_tables : MDEV-14198 - Table is full
-innodb.innodb_information_schema : MDEV-8851 - Wrong result
-innodb.innodb_max_recordsize_32k : MDEV-14801 - Operation failed
-innodb.innodb_max_recordsize_64k : MDEV-15203 - Wrong result
-innodb.innodb_monitor : MDEV-10939 - Testcase timeout
-innodb.innodb-page_compression_tables : MDEV-13644 - Assertion failure
-innodb.innodb_stats : MDEV-10682 - wrong result
-innodb.innodb_stats_persistent : Include file modified in 10.3.9
-innodb.innodb_stats_persistent_debug : MDEV-14801 - Operation failed
-innodb.innodb_sys_semaphore_waits : MDEV-10331 - Semaphore wait
-innodb.innodb_zip_innochecksum2 : MDEV-13882 - Extra warnings
-innodb.innodb_zip_innochecksum3 : MDEV-14486 - Resource temporarily unavailable
-innodb.instant_alter : Modified in 10.3.10
-innodb.instant_alter_crash : Include file modified in 10.3.9
-innodb.instant_alter_debug : Modified in 10.3.10
-innodb.instant_alter_rollback : Include file modified in 10.3.9
-innodb.log_corruption : MDEV-13251 - Wrong result
-innodb.log_data_file_size : MDEV-14204 - Server failed to start
-innodb.log_file_name : MDEV-14193 - Exception
-innodb.log_file_size : MDEV-15668 - Not found pattern
-innodb.monitor : MDEV-16179 - Wrong result; modified in 10.3.9
-innodb.purge_secondary : MDEV-15681 - Wrong result; include file modified in 10.3.9
-innodb.purge_thread_shutdown : MDEV-13792 - Wrong result
-innodb.read_only_recovery : MDEV-13886 - Server crash
-innodb.recovery_shutdown : MDEV-15671 - Checksum mismatch in datafile
-innodb.row_format_redundant : MDEV-15192 - Trying to access missing tablespace
-innodb.strict_mode : Modified in 10.3.9
-innodb.table_definition_cache_debug : MDEV-14206 - Extra warning
-innodb.table_flags : MDEV-13572 - Wrong result
-innodb.temp_table_savepoint : MDEV-16182 - Wrong result
-innodb.temporary_table : MDEV-13265 - Wrong result; modified in 10.3.9
-innodb.truncate : Added in 10.3.10
-innodb.truncate_crash : Added in 10.3.10
-innodb.truncate_foreign : Added in 10.3.10
-innodb.truncate_missing : Added in 10.3.10
-innodb.update_time : MDEV-14804 - Wrong result
-innodb.undo_log : Include file modified in 10.3.9
-innodb.undo_truncate : MDEV-17340 - Server hung; added in 10.3.10
-innodb.undo_truncate_recover : MDEV-13080 - Missing checkpoint; added in 10.3.10
-innodb.xa_recovery : MDEV-15279 - mysqld got exception
-
-#-----------------------------------------------------------------------
-
-innodb_fts.fts_kill_query : Added in 10.3.9
-innodb_fts.innodb-fts-fic : MDEV-14154 - Assertion failure
-innodb_fts.innodb_fts_misc_debug : MDEV-14156 - Unexpected warning
-innodb_fts.innodb_fts_multiple_index : Modified in 10.3.9
-innodb_fts.innodb_fts_plugin : MDEV-13888 - Errors in server log
-innodb_fts.innodb_fts_stopword_charset : MDEV-13259 - Table crashed
-innodb_fts.sync : MDEV-14808 - Wrong result
-innodb_fts.sync_ddl : MDEV-17296 - Server crash; added in 10.3.9
-
-#-----------------------------------------------------------------------
-
-innodb_gis.create_spatial_index : Modified in 10.3.9
-innodb_gis.kill_server : MDEV-16941 - Checksum mismatch
-innodb_gis.rtree_compress : Include file modified in 10.3.9
-innodb_gis.rtree_compress2 : MDEV-16269 - Wrong result
-innodb_gis.rtree_concurrent_srch : MDEV-15284 - Wrong result with embedded
-innodb_gis.rtree_purge : MDEV-15275 - Timeout; include file modified in 10.3.9
-innodb_gis.rtree_recovery : MDEV-15274 - Error on check
-innodb_gis.rtree_split : MDEV-14208 - Too many arguments
-innodb_gis.rtree_undo : MDEV-14456 - Timeout in include file; include file modified in 10.3.9
-innodb_gis.types : MDEV-15679 - Table is marked as crashed
-
-#-----------------------------------------------------------------------
-
-innodb_zip.cmp_per_index : MDEV-14490 - Table is marked as crashed
-innodb_zip.innochecksum_3 : MDEV-13279 - Extra warnings
-innodb_zip.wl5522_debug_zip : MDEV-11600 - Operating system error number 2
-innodb_zip.wl6470_1 : MDEV-14240 - Assertion failure
-
-#-----------------------------------------------------------------------
-
-main.alter_table_trans : MDEV-12084 - timeout
-main.analyze_stmt_slow_query_log : MDEV-12237 - Wrong result
-main.auth_named_pipe : MDEV-14724 - System error 2
-main.bootstrap : Modified in 10.3.9
-main.check_constraint : Modified in 10.3.9
-main.column_compression : Modified in 10.3.9
-main.connect : MDEV-16270, MDEV-17282 - Wrong result
-main.connect2 : MDEV-13885 - Server crash
-main.constraints : Modified in 10.3.10
-main.count_distinct2 : MDEV-11768 - timeout
-main.create_delayed : MDEV-10605 - failed with timeout
-main.create_drop_event : MDEV-16271 - Wrong result
-main.create_or_replace : Modified in 10.3.10
-main.create_replace_tmp : Added in 10.3.9
-main.cte_nonrecursive : Modified in 10.3.10
-main.cte_recursive : Modified in 10.3.10
-main.cte_recursive_not_embedded : Added in 10.3.9
-main.ctype_binary : Modified in 10.3.9
-main.ctype_eucjpms : Modified in 10.3.9
-main.ctype_euckr : Modified in 10.3.9
-main.ctype_gbk : Modified in 10.3.9
-main.ctype_latin1 : Modified in 10.3.9
-main.ctype_ucs : Modified in 10.3.9
-main.ctype_ujis : Modified in 10.3.9
-main.ctype_upgrade : MDEV-16945 - Error upon mysql_upgrade
-main.ctype_utf16le : MDEV-10675: timeout or extra warnings; modified in 10.3.9
-main.ctype_utf16 : MDEV-10675: timeout or extra warnings; modified in 10.3.9
-main.ctype_utf32 : Modified in 10.3.9
-main.ctype_utf8mb4 : Modified in 10.3.9
-main.ctype_utf8 : Modified in 10.3.9
-main.debug_sync : MDEV-10607 - internal error
-main.derived : Modified in 10.3.9
-main.derived_cond_pushdown : Modified in 10.3.10
-main.derived_opt : MDEV-11768 - timeout
-main.derived_split_innodb : Modified in 10.3.10
-main.distinct : MDEV-14194 - Crash
-main.drop_bad_db_type : MDEV-15676 - Wrong result
-main.events_2 : MDEV-13277 - Crash
-main.events_bugs : MDEV-12892 - Crash
-main.events_restart : MDEV-12236 - Server shutdown problem
-main.events_slowlog : MDEV-12821 - Wrong result
-main.flush : Modified in 10.3.10
-main.func_isnull : Modified in 10.3.10
-main.func_json : Modified in 10.3.10
-main.func_time : Modified in 10.3.10
-main.gis : MDEV-13411 - wrong result on P8; modified in 10.3.10
-main.gis-precise : Modified in 10.3.10
-main.grant : Modified in 10.3.10
-main.group_min_max : Modified in 10.3.10
-main.host_cache_size_functionality : MDEV-10606 - sporadic failure on shutdown
-main.index_intersect_innodb : MDEV-10643 - failed with timeout
-main.index_merge_innodb : MDEV-7142 - Plan mismatch
-main.innodb_mysql_lock : MDEV-7861 - Wrong result
-main.invisible_field_debug : Modified in 10.3.9
-main.join : Modified in 10.3.10
-main.join_cache : Modified in 10.3.9
-main.join_outer : Modified in 10.3.9
-main.kill-2 : MDEV-13257 - Wrong result
-main.kill_processlist-6619 : MDEV-10793 - Wrong result
-main.log_slow : MDEV-13263 - Wrong result
-main.log_tables-big : MDEV-13408 - wrong result
-main.mdev375 : MDEV-10607 - sporadic "can't connect"
-main.mdev-504 : MDEV-15171 - warning
-main.merge : MDEV-10607 - sporadic "can't connect"
-main.mysql : Modified in 10.3.10
-main.mysql_client_test_comp : MDEV-16641 - Error in exec
-main.mysql_client_test_nonblock : CONC-208 - Error on Power; MDEV-15096 - exec failed
-main.mysql_not_windows : Modified in 10.3.10
-main.mysqld_option_err : MDEV-12747 - Timeout
-main.mysqldump : MDEV-14800 - Stack smashing detected
-main.mysqlhotcopy_myisam : MDEV-10995 - Hang on debug
-main.mysqlslap : MDEV-11801 - timeout
-main.mysqltest : MDEV-13887 - Wrong result
-main.mysql_upgrade_noengine : MDEV-14355 - Wrong result
-main.mysql_upgrade_ssl : MDEV-13492 - Unknown SSL error
-main.openssl_1 : MDEV-13492 - Unknown SSL error
-main.openssl_6975 : MDEV-17184 - Failures with OpenSSL 1.1.1
-main.opt_tvc : Modified in 10.3.10
-main.order_by_optimizer_innodb : MDEV-10683 - Wrong result
-main.partition_debug_sync : MDEV-15669 - Deadlock found when trying to get lock
-main.partition_error : Modified in 10.3.10
-main.partition_innodb_plugin : MDEV-12901 - Valgrind warnings
-main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count; modified in 10.3.10
-main.query_cache_debug : MDEV-15281 - Query cache is disabled
-main.query_cache : MDEV-16180 - Wrong result
-main.range : Modified in 10.3.10
-main.range_debug : Added in 10.3.10
-main.range_vs_index_merge_innodb : MDEV-15283 - Server has gone away
-main.rename : Modified in 10.3.9
-main.selectivity : Modified in 10.3.10
-main.set_statement : MDEV-13183 - Wrong result
-main.shm : MDEV-12727 - Mismatch, ERROR 2013
-main.show_explain : MDEV-10674 - Wrong result code
-main.sp : MDEV-7866 - Mismatch; modified in 10.3.10
-main.sp_notembedded : MDEV-10607 - internal error
-main.sp-security : MDEV-10607 - sporadic "can't connect"; modified in 10.3.10
-main.ssl : MDEV-17184 - Failures with OpenSSL 1.1.1
-main.ssl_ca : MDEV-10895 - SSL connection error on Power
-main.ssl_cert_verify : MDEV-13735 - Server crash
-main.ssl_cipher : MDEV-17184 - Failures with OpenSSL 1.1.1
-main.ssl_connect : MDEV-13492 - Unknown SSL error
-main.ssl_timeout : MDEV-11244 - Crash
-main.stat_tables : Modified in 10.3.10
-main.stat_tables_par_innodb : MDEV-14155 - Wrong rounding
-main.stat_tables_par : MDEV-13266 - Wrong result
-main.status : MDEV-13255 - Wrong result
-main.subselect_extra_no_semijoin : Modified in 10.3.10
-main.subselect_innodb : MDEV-10614 - Wrong result
-main.subselect : Modified in 10.3.9
-main.subselect_sj2_mat : Modified in 10.3.9
-main.subselect_sj_mat : Modified in 10.3.9
-main.table_value_constr : Modified in 10.3.10
-main.tc_heuristic_recover : MDEV-14189 - Wrong result
-main.temp_table : Modified in 10.3.10
-main.type_blob : MDEV-15195 - Wrong result
-main.type_datetime : MDEV-14322 - wrong result
-main.type_datetime_hires : MDEV-10687 - Timeout
-main.type_float : Modified in 10.3.10
-main.union : Modified in 10.3.9
-main.userstat : MDEV-12904 - SSL errors
-main.win : Modified in 10.3.10
-main.win_lead_lag : Modified in 10.3.10
-main.xa : MDEV-11769 - lock wait timeout; modified in 10.3.9
-
-#-----------------------------------------------------------------------
-
-maria.concurrent : Added in 10.3.10
-maria.create : Added in 10.3.10
-maria.insert_select : MDEV-12757 - Timeout
-maria.insert_select-7314 : MDEV-16492 - Timeout
-maria.maria : MDEV-14430 - Extra warning; modified in 10.3.10
-
-#-----------------------------------------------------------------------
-
-mariabackup.absolute_ibdata_paths : MDEV-16571 - Wrong result; opt file modified in 10.3.10
-mariabackup.apply-log-only : MDEV-14192 - Assertion failure
-mariabackup.apply-log-only-incr : MDEV-14192 - Assertion failure
-mariabackup.backup_ssl : MDEV-14192 - Assertion failure
-mariabackup.create_during_backup : Added in 10.3.10
-mariabackup.create_with_data_directory_during_backup : Added in 10.3.10
-mariabackup.data_directory : MDEV-15270 - Error on exec
-mariabackup.drop_table_during_backup : Added in 10.3.10
-mariabackup.full_backup : MDEV-16571 - Wrong result
-mariabackup.huge_lsn : MDEV-15662 - Sequence number is in the future
-mariabackup.incremental_backup : MDEV-14192 - Assertion failure
-mariabackup.incremental_ddl_during_backup : Added in 10.3.10
-mariabackup.incremental_encrypted : MDEV-15667 - timeout; modified in 10.3.9
-mariabackup.innodb_log_optimize_ddl : Added in 10.3.9
-mariabackup.log_checksum_mismatch : MDEV-16571 - Wrong result
-mariabackup.mdev-14447 : MDEV-15201 - Timeout
-mariabackup.mlog_index_load : MDEV-14192 - Assertion failure; added in 10.3.10
-mariabackup.nolock_ddl_during_backup_end : Added in 10.3.10
-mariabackup.partial_exclude : MDEV-15270 - Error on exec
-mariabackup.recreate_table_during_backup : Added in 10.3.10
-mariabackup.rename_during_backup : Added in 10.3.10
-mariabackup.rename_during_mdl_lock : Modified in 10.3.10
-mariabackup.skip_innodb : Added in 10.3.10
-mariabackup.truncate_during_backup : Added in 10.3.10
-mariabackup.undo_space_id : Opt file modified in 10.3.10
-mariabackup.unsupported_redo : MDEV-14192 - Crash; modified in 10.3.10
-mariabackup.xb_aws_key_management : MDEV-17341 - Missing warning
-mariabackup.xb_compressed_encrypted : MDEV-14812 - Segmentation fault
-mariabackup.xb_file_key_management : MDEV-16571 - Wrong result
-mariabackup.xb_history : MDEV-16268 - Error on exec
-mariabackup.xb_page_compress : MDEV-14810 - status: 1, errno: 11
-mariabackup.xb_partition : MDEV-14192 - Crash
-mariabackup.xb_rocksdb : MDEV-17338 - Server hung on shutdown
-mariabackup.xbstream : MDEV-14192 - Crash
+
+engines/rr_trx.* : MDEV-10998 - Not maintained
+
+#-----------------------------------------------------------------------
+
+federated.federated_bug_35333 : MDEV-13410 - Wrong result
+federated.federated_bug_585688 : MDEV-14805 - Server crash, MDEV-12907 - Valgrind
+federated.federated_innodb : MDEV-10617 - Wrong checksum
+federated.federated_partition : MDEV-10417 - Fails on Mips
+federated.federated_transactions : MDEV-10617 - Wrong checksum
+federated.federatedx : MDEV-10617 - Wrong checksum
+
+#-----------------------------------------------------------------------
+
+funcs_1.memory_views : MDEV-11773 - timeout
+funcs_1.processlist_val_no_prot : MDEV-11223 - Wrong result
+funcs_1.processlist_val_ps : MDEV-12175 - Wrong plan
+
+#-----------------------------------------------------------------------
+
+funcs_2.memory_charset : MDEV-10290 - Timeout
+funcs_2.myisam_charset : MDEV-11535 - Timeout
+
+#-----------------------------------------------------------------------
+
+funcs_2/charset.* : MDEV-10999 - Not maintained
+
+#-----------------------------------------------------------------------
+
+galera.* : Suite is not stable yet
+
+#-----------------------------------------------------------------------
+
+galera_3nodes.* : Suite is not stable yet
+
+#-----------------------------------------------------------------------
+
+gcol.gcol_rollback : MDEV-16954 - Unknown storage engine 'InnoDB'
+gcol.innodb_virtual_basic : MDEV-16950 - Failing assertion
+gcol.innodb_virtual_debug : MDEV-19114 - Assertion failure
+gcol.innodb_virtual_debug_purge : MDEV-16952 - Wrong result
+gcol.innodb_virtual_fk_restart : MDEV-17466 - Assertion failure
+
+#-----------------------------------------------------------------------
+
+innodb.101_compatibility : MDEV-13891 - Wrong result
+innodb.alter_copy : MDEV-16181 - Assertion failure
+innodb.alter_crash : MDEV-16944 - The process cannot access the file
+innodb.alter_large_dml : MDEV-20148 - Debug sync point wait timed out; added in 10.3.17
+innodb.alter_missing_tablespace : Modified in 10.4.7
+innodb.autoinc_persist : MDEV-15282 - Assertion failure
+innodb.binlog_consistent : MDEV-10618 - Server fails to start
+innodb.blob-crash : Added in 10.4.7
+innodb.check_ibd_filesize : Added in 10.3.17
+innodb.corrupted_during_recovery : Modified in 10.3.16
+innodb.create_select : Added in 10.3.17
+innodb.doublewrite : MDEV-12905 - Server crash
+innodb.foreign-keys : Modified in 10.4.7
+innodb.group_commit_crash : MDEV-14191 - InnoDB registration failed
+innodb.group_commit_crash_no_optimize_thread : MDEV-13830 - Assertion failure
+innodb.ibuf_not_empty : MDEV-19021 - Wrong result
+innodb.innodb-16k : Modified in 10.3.17
+innodb.innodb-32k : Modified in 10.3.17
+innodb.innodb-32k-crash : MDEV-16953 - Corrupt log record found; modified in 10.3.17
+innodb.innodb-64k-crash : MDEV-13872 - Failure and crash on startup; modified in 10.3.17
+innodb.innodb-alter-debug : MDEV-13182 - InnoDB: adjusting FSP_SPACE_FLAGS
+innodb.innodb-alter-table : MDEV-10619 - Testcase timeout
+innodb.innodb-alter-tempfile : MDEV-15285 - Table already exists
+innodb.innodb-bigblob : MDEV-18655 - ASAN unknown crash
+innodb.innodb-blob : MDEV-12053 - Client crash
+innodb.innodb-change-buffer-recovery : MDEV-19115 - Lost connection to MySQL server during query
+innodb.innodb-fk : MDEV-13832 - Assertion failure on shutdown
+innodb.innodb-get-fk : MDEV-13276 - Server crash
+innodb.innodb-index-online : MDEV-14809 - Cannot save statistics
+innodb.innodb-page_compression_default : MDEV-13644 - Assertion failure
+innodb.innodb-page_compression_lzma : MDEV-14353 - Wrong result
+innodb.innodb-page_compression_snappy : MDEV-13644 - Assertion failure
+innodb.innodb-page_compression_tables : MDEV-13644 - Assertion failure
+innodb.innodb-page_compression_zip : MDEV-10641 - mutex problem
+innodb.innodb-system-table-view : MDEV-20149 - Wrong result; added in 10.3.17
+innodb.innodb-table-online : MDEV-13894 - Wrong result
+innodb.innodb-virtual-columns-debug : MDEV-20143 - Wrong result; added in 10.3.17
+innodb.innodb-wl5522 : MDEV-13644 - Assertion failure
+innodb.innodb-wl5522-debug : MDEV-14200 - Wrong errno
+innodb.innodb-wl5980-debug : Added in 10.3.17
+innodb.innodb_buffer_pool_dump_pct : MDEV-20139 - Timeout in wait_condition.inc; added in 10.4.7
+innodb.innodb_buffer_pool_resize : MDEV-16964 - Assertion failure
+innodb.innodb_buffer_pool_resize_with_chunks : MDEV-16964 - Assertion failure
+innodb.innodb_bug14147491 : MDEV-11808 - Index is corrupt
+innodb.innodb_bug30423 : MDEV-7311 - Wrong result
+innodb.innodb_bug48024 : MDEV-14352 - Assertion failure
+innodb.innodb_bug59641 : MDEV-13830 - Assertion failure
+innodb.innodb_bulk_create_index_replication : MDEV-15273 - Slave failed to start
+innodb.innodb_defrag_stats_many_tables : MDEV-14198 - Table is full
+innodb.innodb_force_recovery : Modified in 10.3.16
+innodb.innodb_information_schema : MDEV-8851 - Wrong result
+innodb.innodb_max_recordsize_32k : MDEV-14801 - Operation failed; modified in 10.3.17
+innodb.innodb_max_recordsize_64k : MDEV-15203 - Wrong result; modified in 10.3.17
+innodb.innodb_monitor : MDEV-10939 - Testcase timeout
+innodb.innodb_mysql : MDEV-19873 - Wrong result; modified in 10.4.7
+innodb.innodb_stats : MDEV-10682 - wrong result
+innodb.innodb_stats_persistent : MDEV-17745 - Wrong result
+innodb.innodb_stats_persistent_debug : MDEV-14801 - Operation failed
+innodb.innodb_sys_semaphore_waits : MDEV-10331 - Semaphore wait
+innodb.innodb_zip_innochecksum2 : MDEV-13882 - Warning: difficult to find free blocks
+innodb.instant_alter : Modified in 10.4.7
+innodb.instant_alter_bugs : Modified in 10.4.7
+innodb.instant_alter_charset : Modified in 10.4.7
+innodb.instant_alter_debug : Modified in 10.4.7
+innodb.leaf_page_corrupted_during_recovery : MDEV-19766 - Added in 10.3.16
+innodb.log_corruption : MDEV-13251 - Wrong result
+innodb.log_data_file_size : MDEV-14204 - Server failed to start
+innodb.log_file_name : MDEV-14193 - Exception
+innodb.log_file_size : MDEV-15668 - Not found pattern
+innodb.max_record_size : Added in 10.3.17
+innodb.missing_tablespaces : Added in 10.4.7
+innodb.monitor : MDEV-16179 - Wrong result
+innodb.page_id_innochecksum : Added in 10.4.7
+innodb.purge : Added in 10.4.7
+innodb.purge_secondary : MDEV-15681 - Wrong result
+innodb.purge_secondary_mdev-16222 : Added in 10.4.7
+innodb.purge_thread_shutdown : MDEV-13792 - Wrong result
+innodb.read_only_recovery : MDEV-13886 - Server crash
+innodb.recovery_shutdown : MDEV-15671 - Checksum mismatch in datafile
+innodb.row_format_redundant : MDEV-15192 - Trying to access missing tablespace
+innodb.strict_mode : Modified in 10.3.17
+innodb.table_definition_cache_debug : MDEV-14206 - Extra warning
+innodb.table_flags : MDEV-13572 - Wrong result; MDEV-19374 - Server failed to start
+innodb.temp_table_savepoint : MDEV-16182 - Wrong result
+innodb.temporary_table : MDEV-13265 - Wrong result
+innodb.truncate_missing : Modified in 10.4.7
+innodb.trx_id_future : MDEV-20138 - Table doesn't exist in engine; added in 10.3.17
+innodb.undo_log : Modified in 10.3.17
+innodb.undo_truncate : MDEV-17340 - Server hung
+innodb.undo_truncate_recover : MDEV-17679 - Server has gone away; MDEV-19200 - Shutdown fails
+innodb.update_time : MDEV-14804 - Wrong result
+innodb.xa_recovery : MDEV-15279 - mysqld got exception
+
+#-----------------------------------------------------------------------
+
+innodb_fts.fulltext2 : Modified in 10.4.7
+innodb_fts.innodb-fts-fic : MDEV-14154 - Assertion failure
+innodb_fts.innodb_ft_aux_table : Added in 10.3.16
+innodb_fts.innodb_fts_misc : Modified in 10.3.17
+innodb_fts.innodb_fts_misc_debug : MDEV-14156 - Unexpected warning
+innodb_fts.innodb_fts_plugin : MDEV-13888 - Errors in server log
+innodb_fts.innodb_fts_stopword_charset : MDEV-13259 - Table crashed
+innodb_fts.sync : MDEV-14808 - Wrong result
+innodb_fts.sync_ddl : MDEV-18654 - Assertion failure
+
+#-----------------------------------------------------------------------
+
+innodb_gis.alter_spatial_index : MDEV-13745 - Server crash; modified in 10.4.7
+innodb_gis.kill_server : MDEV-16941 - Checksum mismatch
+innodb_gis.rtree_add_index : Added in 10.3.16
+innodb_gis.rtree_compress2 : MDEV-16269 - Wrong result
+innodb_gis.rtree_concurrent_srch : MDEV-15284 - Wrong result with embedded
+innodb_gis.rtree_purge : MDEV-15275 - Timeout
+innodb_gis.rtree_recovery : MDEV-15274 - Error on check
+innodb_gis.rtree_split : MDEV-14208 - Too many arguments
+innodb_gis.rtree_undo : MDEV-14456 - Timeout in include file
+innodb_gis.types : MDEV-15679 - Table is marked as crashed
+
+#-----------------------------------------------------------------------
+
+innodb_zip.cmp_per_index : MDEV-14490 - Table is marked as crashed
+innodb_zip.innochecksum : MDEV-20158 - Server failed to shut down
+innodb_zip.innochecksum_3 : MDEV-13279 - Extra warnings
+innodb_zip.page_size : Include file modified in 10.4.7
+innodb_zip.restart : Include file modified in 10.4.7
+innodb_zip.wl5522_debug_zip : MDEV-11600 - Operating system error number 2
+innodb_zip.wl6470_1 : MDEV-14240 - Assertion failure
+innodb_zip.wl6501_1 : MDEV-10891 - Can't create UNIX socket
+innodb_zip.wl6501_scale_1 : MDEV-13254 - Timeout, MDEV-14104 - Error 192
+
+#-----------------------------------------------------------------------
+
+maria.alter : Modified in 10.4.7
+maria.insert_select : MDEV-12757 - Timeout
+maria.insert_select-7314 : MDEV-16492 - Timeout
+maria.kill : Added in 10.4.7
+maria.maria : MDEV-14430 - Extra warning
+maria.temporary : Added in 10.4.7
+
+#-----------------------------------------------------------------------
+
+mariabackup.absolute_ibdata_paths : MDEV-16571 - Wrong result
+mariabackup.apply-log-only : MDEV-20135 - Timeout
+mariabackup.data_directory : MDEV-15270 - Error on exec
+mariabackup.full_backup : MDEV-16571 - Wrong result
+mariabackup.huge_lsn : MDEV-15662 - Sequence number is in the future; MDEV-18569 - Table doesn't exist
+mariabackup.incremental_encrypted : MDEV-15667 - timeout
+mariabackup.log_checksum_mismatch : MDEV-16571 - Wrong result
+mariabackup.mdev-14447 : MDEV-15201 - Timeout
+mariabackup.missing_ibd : Modified in 10.4.7
+mariabackup.partial_exclude : MDEV-15270 - Error on exec
+mariabackup.unencrypted_page_compressed : MDEV-18653 - Wrong error
+mariabackup.xb_compressed_encrypted : MDEV-14812 - Segmentation fault
+mariabackup.xb_file_key_management : MDEV-16571 - Wrong result
+mariabackup.xb_page_compress : MDEV-14810 - status: 1, errno: 11
+mariabackup.xb_partition : MDEV-17584 - Crash upon shutdown
+mariabackup.xb_rocksdb : MDEV-17338 - Server hung on shutdown
#-----------------------------------------------------------------------
@@ -448,328 +472,412 @@ mroonga/storage.column_datetime_32bit_2038 : Wrong resul
mroonga/storage.column_datetime_32bit_before_unix_epoch : Wrong result on Alpha
mroonga/storage.column_datetime_32bit_max : Wrong result on Alpha
mroonga/storage.column_datetime_32bit_out_of_range : Wrong result on Alpha
-mroonga/storage.index_multiple_column_range_all_used_less_than : MDEV-16127 - Wrong result with GCC 8
-mroonga/storage.index_multiple_column_range_all_used_less_than_or_equal : MDEV-16127 - Wrong result with GCC 8
-mroonga/storage.index_multiple_column_range_partially_used_have_prefix_less_than : MDEV-16127 - Wrong result with GCC 8
-mroonga/storage.index_multiple_column_range_partially_used_have_prefix_less_than_or_equal : MDEV-16127 - Wrong result with GCC 8
-mroonga/storage.index_multiple_column_range_partially_used_no_prefix_less_than : MDEV-16127 - Wrong result with GCC 8
-mroonga/storage.index_multiple_column_range_partially_used_no_prefix_less_than_or_equal : MDEV-16127 - Wrong result with GCC 8
mroonga/storage.index_multiple_column_unique_date_32bit_equal : Wrong result on Alpha
mroonga/storage.index_multiple_column_unique_date_order_32bit_desc : Wrong result on Alpha
mroonga/storage.index_multiple_column_unique_datetime_index_read : MDEV-8643 - Valgrind
-mroonga/storage.optimization_order_limit_optimized_datetime_less_than : MDEV-16127 - Wrong result with GCC 8
-mroonga/storage.optimization_order_limit_optimized_datetime_less_than_or_equal : MDEV-16127 - Wrong result with GCC 8
mroonga/storage.repair_table_no_index_file : MDEV-9364 - wrong result, MDEV-14807 - wrong error message
-mroonga/wrapper.repair_table_no_index_file : MDEV-14807 - Wrong error message
-
#-----------------------------------------------------------------------
-multi_source.gtid : MDEV-14202 - Crash
-multi_source.info_logs : MDEV-12629 - Valgrind, MDEV-10042 - wrong result
-multi_source.multisource : MDEV-10417 - Fails on Mips
-multi_source.reset_slave : MDEV-10690 - Wrong result
-multi_source.simple : MDEV-4633 - Wrong result
-multi_source.status_vars : MDEV-4632 - failed while waiting for Slave_received_heartbeats
+mroonga/wrapper.repair_table_no_index_file : MDEV-14807 - Wrong error message
#-----------------------------------------------------------------------
-parts.partition_alter2_2_maria : MDEV-14364 - Lost connection to MySQL server during query
-parts.partition_auto_increment_archive : MDEV-16491 - Marked as crashed and should be repaired
-parts.partition_auto_increment_maria : MDEV-14430 - Extra warning
-parts.partition_debug_innodb : MDEV-10891 - Can't create UNIX socket; MDEV-15095 - Table doesn't exist
-parts.partition_exch_qa_10 : MDEV-11765 - wrong result
-parts.partition_innodb_status_file : MDEV-12901 - Valgrind
-parts.partition_special_innodb : MDEV-16942 - Timeout
-parts.show_create : Modified in 10.3.10
-parts.truncate_locked : Added in 10.3.9
-parts.update_and_cache : Added in 10.3.10
+multi_source.gtid : MDEV-14202 - Crash
+multi_source.info_logs : MDEV-12629 - Valgrind, MDEV-10042 - wrong result
+multi_source.mdev-8874 : MDEV-20101 - Assertion failure; added in 10.3.17
+multi_source.mdev-9544 : MDEV-19415 - AddressSanitizer: heap-use-after-free
+multi_source.multisource : MDEV-10417 - Fails on Mips
+multi_source.reset_slave : MDEV-10690 - Wrong result
+multi_source.simple : MDEV-4633 - Wrong result
+multi_source.status_vars : MDEV-4632 - failed while waiting for Slave_received_heartbeats
+
+#-----------------------------------------------------------------------
+
+parts.fulltext : Added in 10.3.17
+parts.partition_alter1_1_2_innodb : MDEV-18655 - ASAN unknown crash
+parts.partition_alter1_1_innodb : MDEV-18655 - ASAN unknown crash
+parts.partition_alter1_2_innodb : MDEV-18655 - ASAN unknown crash
+parts.partition_alter2_2_maria : MDEV-14364 - Lost connection to MySQL server during query
+parts.partition_auto_increment_archive : MDEV-16491 - Marked as crashed and should be repaired
+parts.partition_auto_increment_maria : MDEV-14430 - Extra warning
+parts.partition_debug_innodb : MDEV-10891 - Can't create UNIX socket; MDEV-15095 - Table doesn't exist
+parts.partition_exch_qa_10 : MDEV-11765 - wrong result
+parts.partition_innodb_status_file : MDEV-12901 - Valgrind
+parts.partition_special_innodb : MDEV-16942 - Timeout
+
+#-----------------------------------------------------------------------
+
+percona.* : MDEV-10997 - Not maintained
#-----------------------------------------------------------------------
-percona.* : MDEV-10997 - Not maintained
+perfschema.connect_attrs : MDEV-17283 - Wrong result
+perfschema.dml_file_instances : MDEV-15179 - Wrong result
+perfschema.dml_threads : MDEV-17746 - Wrong errno
+perfschema.func_file_io : MDEV-5708 - fails for s390x
+perfschema.func_mutex : MDEV-5708 - fails for s390x
+perfschema.hostcache_ipv4_addrinfo_again_allow : MDEV-12759 - Crash
+perfschema.hostcache_ipv6_addrinfo_again_allow : MDEV-12752 - Crash
+perfschema.hostcache_ipv6_addrinfo_bad_allow : MDEV-13260 - Crash
+perfschema.hostcache_ipv6_ssl : MDEV-10696 - Crash
+perfschema.privilege_table_io : MDEV-13184 - Extra lines
+perfschema.relaylog : MDEV-18134 - Wrong result
+perfschema.rpl_gtid_func : MDEV-16897 - Wrong result
+perfschema.socket_instances_func : MDEV-20140 - Wrong result
+perfschema.socket_summary_by_event_name_func : MDEV-10622 - Wrong result
+perfschema.socket_summary_by_instance_func : MDEV-19413 - Wrong result
+perfschema.stage_mdl_function : MDEV-20157 - Wrong result
+perfschema.stage_mdl_global : MDEV-11803 - wrong result on slow builders
+perfschema.stage_mdl_procedure : MDEV-11545 - Missing row
+perfschema.stage_mdl_table : MDEV-12638 - Wrong result
+perfschema.threads_mysql : MDEV-10677 - Wrong result
+
+#-----------------------------------------------------------------------
+
+perfschema_stress.* : MDEV-10996 - Not maintained
+
+#-----------------------------------------------------------------------
+
+period.versioning : MDEV-20159 - Assertion failure
+
+#-----------------------------------------------------------------------
+
+plugins.auth_ed25519 : MDEV-20144 - Undefined symbol
+plugins.feedback_plugin_load : Modified in 10.3.16
+plugins.feedback_plugin_send : MDEV-7932, MDEV-11118 - Connection problems and such
+plugins.multiauth : MDEV-20163 - Plugin could not be loaded
+plugins.pam : Modified in 10.4.7
+plugins.pam_cleartext : Modified in 10.4.7
+plugins.pam_v1 : Modified in 10.4.7
+plugins.processlist : MDEV-16574 - Wrong result
+plugins.server_audit : MDEV-14295 - Wrong result
+plugins.thread_pool_server_audit : MDEV-14295 - Wrong result
+
+#-----------------------------------------------------------------------
+
+rocksdb.* : Too many crashes in various tests
+rocksdb.2pc_group_commit : MDEV-14455 - Wrong result
+rocksdb.allow_no_primary_key_with_sk : MDEV-16639 - Server crash
+rocksdb.autoinc_crash_safe_partition : MDEV-16639, MDEV-16637 - Server crash
+rocksdb.autoinc_vars_thread : MDEV-16573 - Debug sync timed out
+rocksdb.bloomfilter2 : MDEV-16564 - Wrong result
+rocksdb.deadlock : MDEV-16033 - Timeout
+rocksdb.drop_index_inplace : MDEV-14162 - Crash on shutdown
+rocksdb.drop_table : MDEV-14308 - Timeout
+rocksdb.drop_table3 : MDEV-16949 - Server crash
+rocksdb.dup_key_update : MDEV-17284 - Wrong result
+rocksdb.locking_issues : MDEV-14464 - Wrong result; modified in 10.3.16
+rocksdb.locking_issues_case1_1_rc : Added in 10.3.16
+rocksdb.locking_issues_case1_1_rr : Added in 10.3.16
+rocksdb.locking_issues_case1_2_rc : Added in 10.3.16
+rocksdb.locking_issues_case1_2_rr : Added in 10.3.16
+rocksdb.locking_issues_case2_rc : Added in 10.3.16
+rocksdb.locking_issues_case2_rc_lsr : Added in 10.3.16
+rocksdb.locking_issues_case2_rr : Added in 10.3.16
+rocksdb.locking_issues_case2_rr_lsr : Added in 10.3.16
+rocksdb.locking_issues_case3_rc : Added in 10.3.16
+rocksdb.locking_issues_case3_rr : Added in 10.3.16
+rocksdb.locking_issues_case4_rc : Added in 10.3.16
+rocksdb.locking_issues_case4_rr : Added in 10.3.16
+rocksdb.locking_issues_case5_rc : Added in 10.3.16
+rocksdb.locking_issues_case5_rr : Added in 10.3.16
+rocksdb.locking_issues_case6_rc : Added in 10.3.16
+rocksdb.locking_issues_case6_rr : Added in 10.3.16
+rocksdb.locking_issues_case7_rc : Added in 10.3.16
+rocksdb.locking_issues_case7_rc_lsr : Added in 10.3.16
+rocksdb.locking_issues_case7_rr : Added in 10.3.16
+rocksdb.locking_issues_case7_rr_lsr : Added in 10.3.16
+rocksdb.mariadb_ignore_dirs : MDEV-16639 - Server crash
+rocksdb.mariadb_plugin : Modified in 10.3.16
+rocksdb.mariadb_port_fixes : MDEV-16387 - Wrong plan
+rocksdb.max_open_files : MDEV-16639 - Server crash
+rocksdb.perf_context : MDEV-17285 - Wrong results
+rocksdb.rocksdb_cf_options : MDEV-16639 - Server crash
+rocksdb.rocksdb_cf_per_partition : MDEV-16636 - Wrong result
+rocksdb.rocksdb_parts : MDEV-13843 - Wrong result
+rocksdb.ttl_primary_read_filtering : MDEV-16560 - Wrong result
+rocksdb.ttl_secondary : MDEV-16943 - Timeout
+rocksdb.ttl_secondary_read_filtering : MDEV-16560 - Wrong result
+rocksdb.unique_check : MDEV-16576 - Wrong errno
+rocksdb.use_direct_reads_writes : MDEV-16646 - Server crash
+rocksdb.write_sync : MDEV-16965 - WRong result
+
+#-----------------------------------------------------------------------
+
+rocksdb_rpl.mdev12179 : MDEV-16632 - Crash
+rocksdb_rpl.rpl_binlog_xid_count : MDEV-16644 - Crash
+
+#-----------------------------------------------------------------------
+
+rocksdb_sys_vars.rocksdb_rate_limiter_bytes_per_sec_basic : MDEV-16639 - Crash
+rocksdb_sys_vars.rocksdb_update_cf_options : MDEV-16955 - Bytes lost
+rocksdb_sys_vars.rocksdb_update_cf_options_basic : MDEV-16955 - Bytes lost
+
+#-----------------------------------------------------------------------
+
+roles.create_and_grant_role : MDEV-11772 - wrong result
+
+#-----------------------------------------------------------------------
+
+rpl.circular_serverid0 : MDEV-19372 - ASAN heap-use-after-free
+rpl.create_or_replace2 : MDEV-19412 - Lost connection to MySQL server
+rpl.create_select : MDEV-14121 - Assertion failure
+rpl.kill_race_condition : Modified in 10.3.17
+rpl.last_insert_id : MDEV-10625 - warnings in error log
+rpl.mdev_17588 : MDEV-20137 - Table doesn't exist; added in 10.3.17
+rpl.rpl_auto_increment : MDEV-10417 - Fails on Mips
+rpl.rpl_auto_increment_bug45679 : MDEV-10417 - Fails on Mips
+rpl.rpl_auto_increment_update_failure : MDEV-10625 - warnings in error log
+rpl.rpl_binlog_dup_entry : Added in 10.3.16
+rpl.rpl_binlog_errors : MDEV-12742 - Crash
+rpl.rpl_binlog_index : MDEV-9501 - Failed registering on master
+rpl.rpl_blackhole : Modified in 10.3.16
+rpl.rpl_blackhole_row_annotate : Added in 10.3.16
+rpl.rpl_colSize : MDEV-16112 - Server crash
+rpl.rpl_ctype_latin1 : MDEV-14813 - Wrong result on Mac
+rpl.rpl_ddl : MDEV-10417 - Fails on Mips
+rpl.rpl_domain_id_filter_io_crash : MDEV-12729 - Timeout in include file, MDEV-13677 - Server crash
+rpl.rpl_domain_id_filter_master_crash : MDEV-19043 - Table marked as crashed
+rpl.rpl_domain_id_filter_restart : MDEV-10684 - Wrong result; MDEV-19043 - Table marked as crashed
+rpl.rpl_drop_db_fail : MDEV-16898 - Slave fails to start
+rpl.rpl_drop_temp_table_invaid_lex : Added in 10.4.7
+rpl.rpl_extra_col_master_innodb : MDEV-16570 - Extra warning
+rpl.rpl_extra_col_master_myisam : MDEV-14203 - Extra warning
+rpl.rpl_get_lock : MDEV-19368 - mysqltest failed but provided no output
+rpl.rpl_gtid_basic : MDEV-10681 - server startup problem
+rpl.rpl_gtid_crash : MDEV-9501 - Failed registering on master, MDEV-13643 - Lost connection
+rpl.rpl_gtid_delete_domain : MDEV-14463 - Timeout
+rpl.rpl_gtid_errorhandling : MDEV-13261 - Crash
+rpl.rpl_gtid_mdev9033 : MDEV-10680 - warnings
+rpl.rpl_gtid_reconnect : MDEV-14497 - Crash
+rpl.rpl_gtid_startpos : MDEV-20141 - mysqltest failed but provided no output
+rpl.rpl_gtid_stop_start : MDEV-10629 - Crash on shutdown, MDEV-12629 - Valgrind warnings
+rpl.rpl_gtid_until : MDEV-10625 - warnings in error log
+rpl.rpl_ignore_table_update : MDEV-20159 - Assertion failure
+rpl.rpl_innodb_bug30888 : MDEV-10417 - Fails on Mips
+rpl.rpl_insert : MDEV-9329 - Fails on Ubuntu/s390x
+rpl.rpl_insert_delayed : MDEV-9329 - Fails on Ubuntu/s390x
+rpl.rpl_insert_id : MDEV-15197 - Wrong result
+rpl.rpl_insert_id_pk : MDEV-16567 - Assertion failure
+rpl.rpl_insert_ignore : MDEV-14365 - Lost connection to MySQL server during query
+rpl.rpl_invoked_features : MDEV-10417 - Fails on Mips
+rpl.rpl_ipv4_as_ipv6 : MDEV-20147 - Incorrect checksum for freed object
+rpl.rpl_mariadb_slave_capability : MDEV-11018 - Extra lines in binlog
+rpl.rpl_mdev12179 : MDEV-19043 - Table marked as crashed
+rpl.rpl_mdev6020 : MDEV-15272 - Server crash
+rpl.rpl_mixed_mixing_engines : MDEV-14489 - Sync slave with master failed
+rpl.rpl_non_direct_mixed_mixing_engines : MDEV-14489 - Sync slave with master failed
+rpl.rpl_non_direct_row_mixing_engines : MDEV-16561 - Timeout in master_pos_wait
+rpl.rpl_non_direct_stm_mixing_engines : MDEV-14489 - Failed sync_slave_with_master
+rpl.rpl_parallel : MDEV-10653 - Timeouts
+rpl.rpl_parallel2 : MDEV-17390 - Operation cannot be performed
+rpl.rpl_parallel_conflicts : MDEV-15272 - Server crash
+rpl.rpl_parallel_mdev6589 : MDEV-12979 - Assertion failure
+rpl.rpl_parallel_multilevel : MDEV-20160 - Server crash
+rpl.rpl_parallel_multilevel2 : MDEV-14723 - Timeout
+rpl.rpl_parallel_optimistic : MDEV-15278 - Failed to sync with master
+rpl.rpl_parallel_optimistic_nobinlog : MDEV-15278 - Failed to sync with master
+rpl.rpl_parallel_retry : MDEV-11119 - Crash; MDEV-17109 - Timeout
+rpl.rpl_parallel_temptable : MDEV-10356 - Crash; MDEV-19076 - Wrong result
+rpl.rpl_partition_innodb : MDEV-10417 - Fails on Mips
+rpl.rpl_password_boundaries : MDEV-11534 - Slave IO warnings
+rpl.rpl_read_only : MDEV-20159 - Assertion failure
+rpl.rpl_row_001 : MDEV-16653 - MTR's internal check fails
+rpl.rpl_row_basic_11bugs : MDEV-12171 - Server failed to start
+rpl.rpl_row_basic_2myisam : MDEV-13875 - command "diff_files" failed
+rpl.rpl_row_drop_create_temp_table : MDEV-14487 - Wrong result
+rpl.rpl_row_img_blobs : MDEV-13875 - command "diff_files" failed
+rpl.rpl_row_img_eng_min : MDEV-13875 - diff_files failed
+rpl.rpl_row_img_eng_noblob : MDEV-13875 - command "diff_files" failed
+rpl.rpl_row_index_choice : MDEV-15196 - Slave crash
+rpl.rpl_row_mysqlbinlog : Modified in 10.3.16
+rpl.rpl_row_sp001 : MDEV-9329 - Fails on Ubuntu/s390x
+rpl.rpl_row_until : MDEV-14052 - Master will not send events with checksum
+rpl.rpl_semi_sync : MDEV-11220 - Wrong result
+rpl.rpl_semi_sync_after_sync : MDEV-14366 - Wrong result
+rpl.rpl_semi_sync_after_sync_row : MDEV-14366 - Wrong result
+rpl.rpl_semi_sync_event_after_sync : MDEV-11806 - warnings
+rpl.rpl_semi_sync_skip_repl : Modified in 10.3.16
+rpl.rpl_semi_sync_uninstall_plugin : MDEV-7140 - Assorted failures
+rpl.rpl_semi_sync_wait_no_slave : MDEV-20159 - Assertion failure
+rpl.rpl_semi_sync_wait_point : MDEV-11807 - timeout in wait condition
+rpl.rpl_semisync_ali_issues : MDEV-16272 - Wrong result
+rpl.rpl_set_statement_default_master : MDEV-13258 - Extra warning
+rpl.rpl_show_slave_hosts : MDEV-10681 - Crash
+rpl.rpl_skip_replication : MDEV-13258 - Extra warning
+rpl.rpl_slave_grp_exec : MDEV-10514 - Deadlock
+rpl.rpl_slave_load_tmpdir_not_exist : MDEV-14203 - Extra warning
+rpl.rpl_slow_query_log : MDEV-13250 - Test abort
+rpl.rpl_sp_effects : MDEV-13249 - Crash
+rpl.rpl_start_stop_slave : MDEV-13567 - Sync slave timeout
+rpl.rpl_stm_mixing_engines : MDEV-14489 - Sync slave with master failed
+rpl.rpl_stm_multi_query : MDEV-9501 - Failed registering on master
+rpl.rpl_stm_relay_ign_space : MDEV-14360 - Test assertion
+rpl.rpl_stm_stop_middle_group : MDEV-13791 - Server crash
+rpl.rpl_sync : MDEV-13830 - Assertion failure
+rpl.rpl_temporal_mysql56_to_mariadb53 : MDEV-9501 - Failed registering on master
+rpl.rpl_temporary_error2 : MDEV-10634 - Wrong number of retries
+rpl.rpl_test_framework : MDEV-19368 - mysqltest failed but provided no output
+rpl.rpl_trigger : MDEV-18055 - Wrong result
+rpl.rpl_truncate_3innodb : MDEV-19454 - Syntax error
+rpl.rpl_variables : MDEV-20150 - Server crash
+rpl.sec_behind_master-5114 : MDEV-13878 - Wrong result
+rpl.show_status_stop_slave_race-7126 : MDEV-17438 - Timeout
+
+#-----------------------------------------------------------------------
+
+rpl-tokudb.* : MDEV-14354 - Tests fail with tcmalloc
+rpl-tokudb.rpl_tokudb_commit_after_flush : MDEV-16966 - Server crash
+
+#-----------------------------------------------------------------------
+
+rpl/extra/rpl_tests.* : MDEV-10994 - Not maintained
+
+#-----------------------------------------------------------------------
+
+sphinx.* : MDEV-10986 - Tests have not been maintained
+sphinx.sphinx : MDEV-10986 - Sporadic failures
+sphinx.union-5539 : MDEV-10986 - Sporadic failures
#-----------------------------------------------------------------------
-perfschema.bad_option_1 : MDEV-13892 - Timeout
-perfschema.bad_option_3 : MDEV-12728 - Timeout on Power
-perfschema.bad_option_5 : MDEV-14197 - Timeout
-perfschema.connect_attrs : MDEV-17283 - Wrong result
-perfschema.dml_file_instances : MDEV-15179 - Wrong result
-perfschema.func_file_io : MDEV-5708 - fails for s390x
-perfschema.func_mutex : MDEV-5708 - fails for s390x
-perfschema.hostcache_ipv4_addrinfo_again_allow : MDEV-12759 - Crash
-perfschema.hostcache_ipv6_addrinfo_again_allow : MDEV-12752 - Crash
-perfschema.hostcache_ipv6_addrinfo_bad_allow : MDEV-13260 - Crash
-perfschema.hostcache_ipv6_ssl : MDEV-10696 - Crash
-perfschema.privilege_table_io : MDEV-13184 - Extra lines
-perfschema.rpl_gtid_func : MDEV-16897 - Wrong result
-perfschema.socket_connect : MDEV-15677 - Wrong result
-perfschema.socket_summary_by_event_name_func : MDEV-10622 - Wrong result
-perfschema.stage_mdl_global : MDEV-11803 - wrong result on slow builders
-perfschema.stage_mdl_procedure : MDEV-11545 - Missing row
-perfschema.stage_mdl_table : MDEV-12638 - Wrong result
-perfschema.threads_mysql : MDEV-10677 - Wrong result
-
-#-----------------------------------------------------------------------
-
-perfschema_stress.* : MDEV-10996 - Not maintained
-
-#-----------------------------------------------------------------------
-
-plugins.feedback_plugin_send : MDEV-7932, MDEV-11118 - Connection problems and such
-plugins.processlist : MDEV-16574 - Wrong result
-plugins.server_audit : MDEV-14295 - Wrong result
-plugins.thread_pool_server_audit : MDEV-14295 - Wrong result
-
-#-----------------------------------------------------------------------
-
-rocksdb.* : Too many crashes in various tests
-
-#-----------------------------------------------------------------------
-
-rocksdb_rpl.mdev12179 : MDEV-16632 - Crash
-rocksdb_rpl.rpl_binlog_xid_count : MDEV-16644 - Crash
-
-#-----------------------------------------------------------------------
-
-rocksdb_sys_vars.rocksdb_rate_limiter_bytes_per_sec_basic : MDEV-16639 - Crash
-rocksdb_sys_vars.rocksdb_update_cf_options_basic : MDEV-16955 - Bytes lost
-rocksdb_sys_vars.rocksdb_update_cf_options : MDEV-16955 - Bytes lost
-
-#-----------------------------------------------------------------------
-
-roles.create_and_grant_role : MDEV-11772 - wrong result
-
-#-----------------------------------------------------------------------
-
-rpl-tokudb.* : MDEV-14354 - Tests fail with tcmalloc
-
-rpl-tokudb.rpl_tokudb_commit_after_flush : MDEV-16966 - Server crash
-
-rpl.last_insert_id : MDEV-10625 - warnings in error log
-rpl.rpl_15867 : Added in 10.3.9
-rpl.rpl_auto_increment : MDEV-10417 - Fails on Mips
-rpl.rpl_auto_increment_bug45679 : MDEV-10417 - Fails on Mips
-rpl.rpl_auto_increment_update_failure : MDEV-10625 - warnings in error log
-rpl.rpl_binlog_errors : MDEV-12742 - Crash
-rpl.rpl_binlog_index : MDEV-9501 - Failed registering on master
-rpl.rpl_colSize : MDEV-16112 - Server crash
-rpl.rpl_ctype_latin1 : MDEV-14813 - Wrong result on Mac
-rpl.rpl_ddl : MDEV-10417 - Fails on Mips
-rpl.rpl_domain_id_filter_io_crash : MDEV-12729 - Timeout in include file, MDEV-13677 - Server crash
-rpl.rpl_domain_id_filter_restart : MDEV-10684 - Wrong result
-rpl.rpl_drop_db_fail : MDEV-16898 - Slave fails to start
-rpl.rpl_extra_col_master_innodb : MDEV-16570 - Extra warning
-rpl.rpl_extra_col_master_myisam : MDEV-14203 - Extra warning
-rpl.rpl_foreign_key_innodb : Modified in 10.3.10
-rpl.rpl_gtid_basic : MDEV-10681 - server startup problem
-rpl.rpl_gtid_crash : MDEV-9501 - Failed registering on master, MDEV-13643 - Lost connection
-rpl.rpl_gtid_delete_domain : MDEV-14463 - Timeout
-rpl.rpl_gtid_errorhandling : MDEV-13261 - Crash
-rpl.rpl_gtid_mdev9033 : MDEV-10680 - warnings
-rpl.rpl_gtid_reconnect : MDEV-14497 - Crash
-rpl.rpl_gtid_stop_start : MDEV-10629 - Crash on shutdown, MDEV-12629 - Valgrind warnings
-rpl.rpl_gtid_until : MDEV-10625 - warnings in error log
-rpl.rpl_innodb_bug30888 : MDEV-10417 - Fails on Mips
-rpl.rpl_insert : MDEV-9329 - Fails on Ubuntu/s390x
-rpl.rpl_insert_delayed : MDEV-9329 - Fails on Ubuntu/s390x
-rpl.rpl_insert_id : MDEV-15197 - Wrong result
-rpl.rpl_insert_id_pk : MDEV-16567 - Assertion failure
-rpl.rpl_insert_ignore : MDEV-14365 - Lost connection to MySQL server during query
-rpl.rpl_invoked_features : MDEV-10417 - Fails on Mips
-rpl.rpl_mariadb_slave_capability : MDEV-11018 - Extra lines in binlog
-rpl.rpl_mdev6020 : MDEV-15272 - Server crash
-rpl.rpl_mixed_mixing_engines : MDEV-14489 - Sync slave with master failed
-rpl.rpl_non_direct_mixed_mixing_engines : MDEV-14489 - Sync slave with master failed
-rpl.rpl_non_direct_row_mixing_engines : MDEV-16561 - Timeout in master_pos_wait
-rpl.rpl_non_direct_stm_mixing_engines : MDEV-14489 - Failed sync_slave_with_master
-rpl.rpl_parallel : MDEV-10653 - Timeouts
-rpl.rpl_parallel_conflicts : MDEV-15272 - Server crash
-rpl.rpl_parallel_mdev6589 : MDEV-12979 - Assertion failure
-rpl.rpl_parallel_multilevel2 : MDEV-14723 - Timeout
-rpl.rpl_parallel_optimistic : MDEV-15278 - Failed to sync with master
-rpl.rpl_parallel_optimistic_nobinlog : MDEV-15278 - Failed to sync with master
-rpl.rpl_parallel_retry : MDEV-11119 - Crash; MDEV-17109 - Timeout
-rpl.rpl_parallel_temptable : MDEV-10356 - Crash
-rpl.rpl_partition_innodb : MDEV-10417 - Fails on Mips
-rpl.rpl_password_boundaries : MDEV-11534 - Slave IO warnings
-rpl.rpl_row_001 : MDEV-16653 - MTR's internal check fails; modified in 10.3.9
-rpl.rpl_row_basic_11bugs : MDEV-12171 - Server failed to start
-rpl.rpl_row_basic_2myisam : MDEV-13875 - command "diff_files" failed
-rpl.rpl_row_drop_create_temp_table : MDEV-14487 - Wrong result
-rpl.rpl_row_img_blobs : MDEV-13875 - command "diff_files" failed
-rpl.rpl_row_img_eng_min : MDEV-13875 - diff_files failed
-rpl.rpl_row_img_eng_noblob : MDEV-13875 - command "diff_files" failed
-rpl.rpl_row_index_choice : MDEV-15196 - Slave crash
-rpl.rpl_row_sp001 : MDEV-9329 - Fails on Ubuntu/s390x
-rpl.rpl_row_spatial : Added in 10.3.10
-rpl.rpl_row_until : MDEV-14052 - Master will not send events with checksum
-rpl.rpl_semi_sync : MDEV-11220 - Wrong result
-rpl.rpl_semi_sync_after_sync : MDEV-14366 - Wrong result
-rpl.rpl_semi_sync_after_sync_row : MDEV-14366 - Wrong result
-rpl.rpl_semi_sync_event_after_sync : MDEV-11806 - warnings
-rpl.rpl_semi_sync_master_shutdown : Added in 10.3.9
-rpl.rpl_semi_sync_uninstall_plugin : MDEV-7140 - Assorted failures
-rpl.rpl_semi_sync_wait_point : MDEV-11807 - timeout in wait condition
-rpl.rpl_semisync_ali_issues : MDEV-16272 - Wrong result
-rpl.rpl_set_statement_default_master : MDEV-13258 - Extra warning
-rpl.rpl_show_slave_hosts : MDEV-10681 - Crash
-rpl.rpl_skip_replication : MDEV-13258 - Extra warning
-rpl.rpl_slave_grp_exec : MDEV-10514 - Deadlock
-rpl.rpl_slave_load_tmpdir_not_exist : MDEV-14203 - Extra warning
-rpl.rpl_slow_query_log : MDEV-13250 - Test abort
-rpl.rpl_sp_effects : MDEV-13249 - Crash
-rpl.rpl_start_stop_slave : MDEV-13567 - Sync slave timeout
-rpl.rpl_stm_000001 : MDEV-16274 - Connection attributes were truncated; modified in 10.3.9
-rpl.rpl_stm_mixing_engines : MDEV-14489 - Sync slave with master failed
-rpl.rpl_stm_multi_query : MDEV-9501 - Failed registering on master
-rpl.rpl_stm_relay_ign_space : MDEV-14360 - Test assertion
-rpl.rpl_stm_reset_slave : MDEV-16274 - Connection attributes were truncated
-rpl.rpl_stm_stop_middle_group : MDEV-13791 - Server crash
-rpl.rpl_sync : MDEV-13830 - Assertion failure
-rpl.rpl_temporal_mysql56_to_mariadb53 : MDEV-9501 - Failed registering on master
-rpl.rpl_temporary_error2 : MDEV-10634 - Wrong number of retries
-rpl.sec_behind_master-5114 : MDEV-13878 - Wrong result
-
-rpl/extra/rpl_tests.* : MDEV-10994 - Not maintained
-
-#-----------------------------------------------------------------------
-
-sphinx.* : MDEV-10986 - Tests have not been maintained
-
-sphinx.sphinx : MDEV-10986 - Sporadic failures
-sphinx.union-5539 : MDEV-10986 - Sporadic failures
-
-#-----------------------------------------------------------------------
-
-spider.* : MDEV-9329 - tests are too memory-consuming
-spider.basic_sql : MDEV-11186 - Internal check fails
-spider.timestamp : Added in 10.3.9
-
-spider/bg.direct_aggregate : MDEV-7098 - Packets out of order
-spider/bg.direct_aggregate_part : MDEV-7098 - Trying to unlock mutex that wasn't locked
-spider/bg.ha : MDEV-9329 - failures on s390x
-spider/bg.ha_part : MDEV-9329 - Fails on Ubuntu/s390x
-spider/bg.spider3_fixes : MDEV-12639 - Syntax error
-spider/bg.spider_fixes : MDEV-7098 -Mutex problem, MDEV-9329 - failures on s390x
-spider/bg.spider_fixes_part : MDEV-7098 - Trying to unlock mutex that wasn't locked
-spider/bg.vp_fixes : MDEV-9329 - Fails on Ubuntu/s390x
+spider.* : MDEV-9329, MDEV-18737 - tests are too memory-consuming
+spider.basic_sql : MDEV-11186 - Internal check fails
+
+#-----------------------------------------------------------------------
-spider/handler.* : MDEV-10987, MDEV-10990 - Tests have not been maintained
+spider/bg.direct_aggregate : MDEV-7098 - Packets out of order
+spider/bg.direct_aggregate_part : MDEV-7098 - Trying to unlock mutex that wasn't locked
+spider/bg.ha : MDEV-9329 - failures on s390x
+spider/bg.ha_part : MDEV-9329 - Fails on Ubuntu/s390x
+spider/bg.spider3_fixes : MDEV-12639 - Syntax error
+spider/bg.spider3_fixes_part : MDEV-7098 - Trying to unlock mutex
+spider/bg.spider_fixes : MDEV-7098 -Mutex problem, MDEV-9329 - failures on s390x
+spider/bg.spider_fixes_part : MDEV-7098 - Trying to unlock mutex that wasn't locked
+spider/bg.vp_fixes : MDEV-9329 - Fails on Ubuntu/s390x
#-----------------------------------------------------------------------
-sql_sequence.auto_increment : Added in 10.3.10
-sql_sequence.concurrent_create : MDEV-16635 - Server crash
-sql_sequence.next : Modified in 10.3.10
+spider/handler.* : MDEV-10987, MDEV-10990 - Tests have not been maintained
#-----------------------------------------------------------------------
-storage_engine* : Tests are not always timely maintained
-storage_engine.* : Not always timely maintained
+sql_sequence.concurrent_create : MDEV-16635 - Server crash
#-----------------------------------------------------------------------
-stress.ddl_innodb : MDEV-10635 - Testcase timeout
+storage_engine.* : Tests are not always timely maintained
#-----------------------------------------------------------------------
-sys_vars.autocommit_func2 : MDEV-9329 - Fails on Ubuntu/s390x
-sys_vars.innodb_buffer_pool_dump_at_shutdown_basic : MDEV-14280 - Unexpected error
-sys_vars.innodb_log_optimize_ddl_basic : Added in 10.3.9
-sys_vars.keep_files_on_create_basic : MDEV-10676 - timeout
-sys_vars.log_slow_admin_statements_func : MDEV-12235 - Server crash
-sys_vars.rpl_init_slave_func : MDEV-10149 - Test assertion
-sys_vars.slow_query_log_func : MDEV-14273 - Wrong result
-sys_vars.thread_cache_size_func : MDEV-11775 - Wrong result
-sys_vars.wait_timeout_func : MDEV-12896 - Wrong result
-sys_vars.wsrep_start_position_basic : Modified in 10.3.10
+stress.ddl_innodb : MDEV-10635 - Testcase timeout
#-----------------------------------------------------------------------
-tokudb.* : suite.pm and massive modifications in 10.3.10
+sys_vars.autocommit_func2 : MDEV-9329 - Fails on Ubuntu/s390x
+sys_vars.delayed_insert_limit_func : MDEV-17683 - Wrong result
+sys_vars.host_cache_size_auto : MDEV-20112 - Wrong result
+sys_vars.innodb_buffer_pool_dump_at_shutdown_basic : MDEV-14280 - Unexpected error
+sys_vars.keep_files_on_create_basic : MDEV-10676 - timeout
+sys_vars.log_slow_admin_statements_func : MDEV-12235 - Server crash
+sys_vars.rpl_init_slave_func : MDEV-10149 - Test assertion
+sys_vars.slow_query_log_func : MDEV-14273 - Wrong result
+sys_vars.thread_cache_size_func : MDEV-11775 - Wrong result
+sys_vars.wait_timeout_func : MDEV-12896 - Wrong result
+sys_vars.wsrep_provider_basic : MDEV-19457 - Assertion failure
+
+#-----------------------------------------------------------------------
-tokudb.change_column_all_1000_10 : MDEV-12640 - Lost connection
-tokudb.change_column_bin : MDEV-12640 - Lost connection
-tokudb.change_column_char : MDEV-12822 - Lost connection
-tokudb.cluster_filter : MDEV-10678 - Wrong execution plan
-tokudb.cluster_filter_hidden : MDEV-10678 - Wrong execution plan
-tokudb.cluster_filter_unpack_varchar : MDEV-10636 - Wrong execution plan
-tokudb.dir_per_db : MDEV-11537 - Wrong result
-tokudb.dir_per_db_rename_to_nonexisting_schema : MDEV-14359 - Directory not empty
-tokudb.hotindex-del-0 : MDEV-16559 - Timeout
-tokudb.hotindex-insert-0 : MDEV-15271 - Timeout
-tokudb.hotindex-insert-1 : MDEV-13870 - Lost connection to MySQL server
-tokudb.hotindex-insert-2 : MDEV-15271 - Timeout
-tokudb.hotindex-insert-bigchar : MDEV-12640 - Crash
-tokudb.hotindex-update-0 : MDEV-15198 - Timeout
-tokudb.hotindex-update-1 : MDEV-12640 - Crash
-tokudb.locks-select-update-1 : MDEV-13406 - Lock wait timeout
-tokudb.rows-32m-rand-insert : MDEV-12640 - Crash
-tokudb.rows-32m-seq-insert : MDEV-12640 - Crash
-tokudb.savepoint-5 : MDEV-15280 - Wrong result
-tokudb.type_datetime : MDEV-15193 - Wrong result
+tokudb.change_column_all_1000_10 : MDEV-12640 - Lost connection
+tokudb.change_column_bin : MDEV-12640 - Lost connection
+tokudb.change_column_char : MDEV-12822 - Lost connection
+tokudb.change_column_varbin : MDEV-17682 - Timeout
+tokudb.cluster_filter : MDEV-10678 - Wrong execution plan
+tokudb.cluster_filter_hidden : MDEV-10678 - Wrong execution plan
+tokudb.cluster_filter_unpack_varchar : MDEV-10636 - Wrong execution plan
+tokudb.dir_per_db : MDEV-11537 - Wrong result
+tokudb.dir_per_db_rename_to_nonexisting_schema : MDEV-14359 - Directory not empty
+tokudb.hotindex-del-0 : MDEV-16559 - Timeout
+tokudb.hotindex-insert-0 : MDEV-15271 - Timeout
+tokudb.hotindex-insert-1 : MDEV-13870 - Lost connection to MySQL server
+tokudb.hotindex-insert-2 : MDEV-15271 - Timeout
+tokudb.hotindex-insert-bigchar : MDEV-12640 - Crash
+tokudb.hotindex-update-0 : MDEV-15198 - Timeout
+tokudb.hotindex-update-1 : MDEV-12640 - Crash
+tokudb.locks-select-update-1 : MDEV-13406 - Lock wait timeout
+tokudb.rows-32m-rand-insert : MDEV-12640 - Crash
+tokudb.rows-32m-seq-insert : MDEV-12640 - Crash
+tokudb.savepoint-5 : MDEV-15280 - Wrong result
+tokudb.type_datetime : MDEV-15193 - Wrong result
#-----------------------------------------------------------------------
-tokudb_alter_table.hcad_all_add2 : MDEV-15269 - Timeout
+tokudb_alter_table.hcad_all_add2 : MDEV-15269 - Timeout
#-----------------------------------------------------------------------
-tokudb_backup.* : MDEV-11001 - Missing include file
+tokudb_backup.* : MDEV-11001 - Missing include file
#-----------------------------------------------------------------------
-tokudb_bugs.alter_table_comment_rebuild_data : Added in 10.1.36
-tokudb_bugs.checkpoint_lock : MDEV-10637 - Wrong processlist output
-tokudb_bugs.checkpoint_lock_3 : MDEV-10637 - Wrong processlist output
-tokudb_bugs.frm_store : MDEV-12823 - Valgrind
-tokudb_bugs.frm_store2 : MDEV-12823 - Valgrind
-tokudb_bugs.frm_store3 : MDEV-12823 - Valgrind
-tokudb_bugs.PS-3773 : Added in 10.1.36
-tokudb_bugs.xa : MDEV-11804 - Lock wait timeout
-tokudb_bugs.xa-3 : MDEV-16953 - Corrupt log record found
+tokudb_bugs.checkpoint_lock : MDEV-10637 - Wrong processlist output
+tokudb_bugs.checkpoint_lock_3 : MDEV-10637 - Wrong processlist output
+tokudb_bugs.frm_store : MDEV-12823 - Valgrind
+tokudb_bugs.frm_store2 : MDEV-12823 - Valgrind
+tokudb_bugs.frm_store3 : MDEV-12823 - Valgrind
+tokudb_bugs.xa : MDEV-11804 - Lock wait timeout
+tokudb_bugs.xa-3 : MDEV-16953 - Corrupt log record found
#-----------------------------------------------------------------------
-tokudb_parts.partition_alter4_tokudb : MDEV-12640 - Lost connection
+tokudb_parts.partition_alter4_tokudb : MDEV-12640 - Lost connection
#-----------------------------------------------------------------------
-tokudb_rpl.* : MDEV-11001 - Missing include file
+tokudb_rpl.* : MDEV-11001 - Missing include file
#-----------------------------------------------------------------------
-tokudb_sys_vars.* : MDEV-11001 - Missing include file
+tokudb_sys_vars.* : MDEV-11001 - Missing include file
#-----------------------------------------------------------------------
-unit.conc_basic-t : MDEV-15286 - not ok 7 - test_reconnect_maxpackage
-unit.conc_misc : MDEV-14811 - not ok 12 - test_conc49
-unit.conc_ps_bugs : MDEV-13252 - not ok 44 test_bug4236
-unit.lf : MDEV-12897 - Signal 11 thrown
-unit.ma_test_loghandler : MDEV-10638 - record read not ok
-unit.my_atomic : MDEV-15670 - Signal 11 thrown
+unit.conc_basic-t : MDEV-15286 - not ok 7 - test_reconnect_maxpackage
+unit.conc_bulk1 : MDEV-19410 - LeakSanitizer: detected memory leaks
+unit.conc_errors : MDEV-18634 - ASAN global-buffer-overflow
+unit.conc_misc : MDEV-14811 - not ok 12 - test_conc49
+unit.conc_ps_bugs : MDEV-13252 - not ok 44 test_bug4236
+unit.ma_pagecache_consist_64kRD : MDEV-19367 - AddressSanitizer CHECK failed
+unit.ma_pagecache_consist_64kWR : MDEV-19367 - AddressSanitizer CHECK failed
+unit.ma_test_loghandler : MDEV-10638 - record read not ok
#-----------------------------------------------------------------------
-vcol.index : Modified in 10.3.10
-vcol.not_supported : MDEV-10639 - Testcase timeout
-vcol.vcol_keys_innodb : MDEV-10639 - Testcase timeout
-vcol.vcol_misc : MDEV-16651 - Wrong error message
+vcol.not_supported : MDEV-10639 - Testcase timeout
+vcol.vcol_keys_innodb : MDEV-10639 - Testcase timeout
+vcol.vcol_misc : MDEV-16651 - Wrong error message; modified in 10.4.7
#-----------------------------------------------------------------------
-versioning.truncate : Modified in 10.3.10
+versioning.create : Modified in 10.3.16
+versioning.engines : New combination added in 10.3.16
+versioning.partition : Modified in 10.4.7
+versioning.replace : Modified in 10.3.16
+versioning.rpl : Modified in 10.3.16
+versioning.simple : Modified in 10.3.17
+versioning.trx_id : Modified in 10.4.7
+versioning.update-big : MDEV-15458 - Server crash; added in 10.3.16
#-----------------------------------------------------------------------
-wsrep.foreign_key : MDEV-14725 - WSREP has not yet prepared node
-wsrep.mdev_6832 : MDEV-14195 - Check testcase failed
-wsrep.pool_of_threads : MDEV-17345 - WSREP has not yet prepared node for application use
-wsrep.variables : MDEV-14311 - Wrong result; modified in 10.3.10
+wsrep.* : suite.pm modified in 10.4.7
+wsrep.foreign_key : MDEV-14725 - WSREP has not yet prepared node
+wsrep.mdev_6832 : MDEV-14195 - Check testcase failed
+wsrep.pool_of_threads : MDEV-17345 - WSREP has not yet prepared node for application use
+wsrep.variables : MDEV-14311 - Wrong result; MDEV-17585 - Deadlock; modified in 10.3.17
#-----------------------------------------------------------------------
-wsrep_info.plugin : MDEV-13569 - No nodes coming from prim view
+wsrep_info.* : suite.pm modified in 10.4.7
+wsrep_info.plugin : MDEV-13569 - No nodes coming from prim view