From 2e22de68f3c42add73e95073ca42fa1f89fa519f Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 20 Mar 2008 16:05:23 +0100 Subject: [PATCH] Fix for BUG#35441 "Cannot change PAGE_CHECKSUM table option". A big test was written and is committed, which found 3 bugs in total: - ALTER TABLE PAGE_CHECKSUM=0 sometimes had no effect - ALTER TABLE ENGINE=MARIA sometimes changed page checksumming in the table - SHOW CREATE TABLE and 'maria_chk -dv' disagreed on the presence of page checksumming. They are all fixed here. Side-effect is that SHOW CREATE TABLE now always prints a PAGE_CHECKSUM clause for Maria tables. mysql-test/mysql-test-run.pl: allow calling maria_chk and maria_pack in tests mysql-test/r/maria.result: PAGE_CHECKSUM=0 is now always printed mysql-test/t/create.test: PAGE_CHECKSUM= is now always present in SHOW CREATE TABLE of Maria tables mysql-test/t/disabled.def: better bug number sql/sql_table.cc: If ALTER TABLE PAGE_CHECKSUM=#, it affects the engine's data (structure of data pages) so a full table rebuild is needed. We already did so for ROW_FORMAT=#, following same logic. This fixes disagreements between SHOW CREATE TABLE and 'maria_chk -dv' regarding the presence of page checksums after certain ALTER TABLE (as seen with the attached testcase). storage/maria/ha_maria.cc: In ALTER TABLE PAGE_CHECKSUM=0, ha_maria::update_create_info() started with create_info->page_checksum=HA_CHOICE_NO and wrongly set it to the table's original setting, which is HA_CHOICE_YES if the table had page checksums, in which case the ALTER left page checksum in the table. The fix for this bug is: only if create_info->page_checksum is undefined (no clause in the ALTER TABLE, or we are in SHOW CREATE TABLE) we may set HA_CHOICE_YES. The second bug in this file was that the code left HA_CHOICE_UNDEF if the table didn't have page checksums originally, leading ALTER TABLE ENGINE=MARIA to change the table's page checksum to the value of maria_page_checksum. This is fixed by setting create_info->page_checksum to HA_CHOICE_NO if UNDEF and table does not have page checksum. The side-effect of this last fix, because ha_maria::update_create_info() is also called by SHOW CREATE TABLE, is that: SET GLOBAL maria_page_checksum=0; CREATE TABLE t(a INT) ENGINE=MARIA; SHOW CREATE TABLE t; which used to not show a PAGE_CHECKSUM= clause, now shows PAGE_CHECKSUM=0. I consider this side-effect good: - clearer for users: it eliminates the differences between the above and this: SET GLOBAL maria_page_checksum=0; CREATE TABLE t(a INT) ENGINE=MARIA PAGE_CHECKSUM=0; SHOW CREATE TABLE t; which already showed PAGE_CHECKSUM=0; difference which is not easy to explain. - if using mysqldump to copy from one server to another, it eliminates the dependency on the value of maria_page_checksum being the same on original server and new server. mysql-test/r/maria-page-checksum.result: Result. If you undo the code fixes and run the test, the new result file will show bugs at: error lineno 56 : expected PAGE_CHECKSUM=1, got Page checksums are not used error lineno 73 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 110 : expected PAGE_CHECKSUM=1, got Page checksums are not used error lineno 164 : expected PAGE_CHECKSUM=1, got Page checksums are not used error lineno 181 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 218 : expected PAGE_CHECKSUM=1, got Page checksums are not used error lineno 253 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 307 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 361 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 415 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 488 : expected PAGE_CHECKSUM=1, got Page checksums are not used error lineno 505 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 542 : expected PAGE_CHECKSUM=1, got Page checksums are not used error lineno 577 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 error lineno 631 : expected PAGE_CHECKSUM=0, got ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 (lineno is line number in the result file) mysql-test/t/maria-page-checksum.test: Test for the 3 bugs --- mysql-test/mysql-test-run.pl | 16 + mysql-test/r/maria-page-checksum.result | 651 ++++++++++++++ mysql-test/r/maria.result | 78 +- mysql-test/t/create.test | 4 +- mysql-test/t/disabled.def | 2 +- mysql-test/t/maria-page-checksum.test | 1045 +++++++++++++++++++++++ sql/sql_table.cc | 1 + storage/maria/ha_maria.cc | 6 +- 8 files changed, 1759 insertions(+), 44 deletions(-) create mode 100644 mysql-test/r/maria-page-checksum.result create mode 100644 mysql-test/t/maria-page-checksum.test diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 845aee28c45..b65db0088b1 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -2178,6 +2178,22 @@ sub environment_setup () { "$glob_basedir/storage/myisam/myisampack", "$glob_basedir/myisam/myisampack")); + # ---------------------------------------------------- + # Setup env so childs can execute maria_pack and maria_chk + # ---------------------------------------------------- + $ENV{'MARIA_CHK'}= mtr_native_path(mtr_exe_exists( + vs_config_dirs('storage/maria', 'maria_chk'), + vs_config_dirs('maria', 'maria_chk'), + "$path_client_bindir/maria_chk", + "$glob_basedir/storage/maria/maria_chk", + "$glob_basedir/maria/maria_chk")); + $ENV{'MARIA_PACK'}= mtr_native_path(mtr_exe_exists( + vs_config_dirs('storage/maria', 'maria_pack'), + vs_config_dirs('maria', 'maria_pack'), + "$path_client_bindir/maria_pack", + "$glob_basedir/storage/maria/maria_pack", + "$glob_basedir/maria/maria_pack")); + # ---------------------------------------------------- # We are nice and report a bit about our settings # ---------------------------------------------------- diff --git a/mysql-test/r/maria-page-checksum.result b/mysql-test/r/maria-page-checksum.result new file mode 100644 index 00000000000..1a7ec2e3fdd --- /dev/null +++ b/mysql-test/r/maria-page-checksum.result @@ -0,0 +1,651 @@ +select @@global.maria_page_checksum; +@@global.maria_page_checksum +1 +# iteration 1 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 2 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 3 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 4 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 5 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 6 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 7 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 8 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 9 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 10 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 11 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 12 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 13 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 14 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 15 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 16 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 17 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 18 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 19 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 20 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 21 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 22 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 23 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 24 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 25 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 26 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 27 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 28 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 29 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 30 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 31 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 32 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 33 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 34 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; +# iteration 35 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 +Page checksums are not used +drop table t1; +# iteration 36 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 +Page checksums are used +drop table t1; diff --git a/mysql-test/r/maria.result b/mysql-test/r/maria.result index d48606a8b56..3824aed8cb4 100644 --- a/mysql-test/r/maria.result +++ b/mysql-test/r/maria.result @@ -993,7 +993,7 @@ t1 CREATE TABLE `t1` ( `v` varchar(10) DEFAULT NULL, `c` char(10) DEFAULT NULL, `t` text -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 create table t2 like t1; show create table t2; Table Create Table @@ -1001,7 +1001,7 @@ t2 CREATE TABLE `t2` ( `v` varchar(10) DEFAULT NULL, `c` char(10) DEFAULT NULL, `t` text -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 create table t3 select * from t1; show create table t3; Table Create Table @@ -1009,7 +1009,7 @@ t3 CREATE TABLE `t3` ( `v` varchar(10) DEFAULT NULL, `c` char(10) DEFAULT NULL, `t` text -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 alter table t1 modify c varchar(10); show create table t1; Table Create Table @@ -1017,7 +1017,7 @@ t1 CREATE TABLE `t1` ( `v` varchar(10) DEFAULT NULL, `c` varchar(10) DEFAULT NULL, `t` text -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 alter table t1 modify v char(10); show create table t1; Table Create Table @@ -1025,7 +1025,7 @@ t1 CREATE TABLE `t1` ( `v` char(10) DEFAULT NULL, `c` varchar(10) DEFAULT NULL, `t` text -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 alter table t1 modify t varchar(10); Warnings: Note 1265 Data truncated for column 't' at row 2 @@ -1035,7 +1035,7 @@ t1 CREATE TABLE `t1` ( `v` char(10) DEFAULT NULL, `c` varchar(10) DEFAULT NULL, `t` varchar(10) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 select concat('*',v,'*',c,'*',t,'*') from t1; concat('*',v,'*',c,'*',t,'*') *+*+*+ * @@ -1051,7 +1051,7 @@ t1 CREATE TABLE `t1` ( KEY `v` (`v`), KEY `c` (`c`), KEY `t` (`t`(10)) -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 select count(*) from t1; count(*) 270 @@ -1270,7 +1270,7 @@ t1 CREATE TABLE `t1` ( KEY `c` (`c`), KEY `t` (`t`(10)), KEY `v` (`v`) -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 select count(*) from t1 where v='a'; count(*) 10 @@ -1350,7 +1350,7 @@ t1 CREATE TABLE `t1` ( KEY `c` (`c`), KEY `t` (`t`(10)), KEY `v` (`v`(30)) -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 select count(*) from t1 where v='a'; count(*) 10 @@ -1430,7 +1430,7 @@ t1 CREATE TABLE `t1` ( KEY `c` (`c`), KEY `t` (`t`(10)), KEY `v` (`v`) -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 select v,count(*) from t1 group by v limit 10; v count(*) a 1 @@ -1508,14 +1508,14 @@ t1 CREATE TABLE `t1` ( KEY `v` (`v`(5)), KEY `c` (`c`(5)), KEY `t` (`t`(5)) -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (v char(10) character set utf8); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `v` char(10) CHARACTER SET utf8 DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (v varchar(10), c char(10)) row_format=fixed; show create table t1; @@ -1523,7 +1523,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `v` varchar(10) DEFAULT NULL, `c` char(10) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=FIXED insert into t1 values('a','a'),('a ','a '); select concat('*',v,'*',c,'*') from t1; concat('*',v,'*',c,'*') @@ -1556,7 +1556,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `v` mediumtext -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (v varchar(65530) character set utf8); Warnings: @@ -1565,7 +1565,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `v` mediumtext CHARACTER SET utf8 -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (v varchar(65535)); ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs @@ -1669,7 +1669,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, KEY `a` (`a`) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a int not null, key `a` (a) key_block_size=2048); show create table t1; @@ -1677,7 +1677,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, KEY `a` (`a`) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a varchar(2048), key `a` (a)); Warnings: @@ -1687,7 +1687,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(2048) DEFAULT NULL, KEY `a` (`a`(1112)) -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a varchar(2048), key `a` (a) key_block_size=1024); Warnings: @@ -1697,7 +1697,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(2048) DEFAULT NULL, KEY `a` (`a`(1112)) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a int not null, b varchar(2048), key (a), key(b)) key_block_size=1024; Warnings: @@ -1709,7 +1709,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(2048) DEFAULT NULL, KEY `a` (`a`) KEY_BLOCK_SIZE=8192, KEY `b` (`b`(1112)) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=1024 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 KEY_BLOCK_SIZE=1024 alter table t1 key_block_size=2048; show create table t1; Table Create Table @@ -1718,7 +1718,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(2048) DEFAULT NULL, KEY `a` (`a`) KEY_BLOCK_SIZE=8192, KEY `b` (`b`(1112)) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=2048 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 KEY_BLOCK_SIZE=2048 alter table t1 add c int, add key (c); show create table t1; Table Create Table @@ -1729,7 +1729,7 @@ t1 CREATE TABLE `t1` ( KEY `a` (`a`) KEY_BLOCK_SIZE=8192, KEY `b` (`b`(1112)) KEY_BLOCK_SIZE=8192, KEY `c` (`c`) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=2048 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 KEY_BLOCK_SIZE=2048 alter table t1 key_block_size=0; alter table t1 add d int, add key (d); show create table t1; @@ -1743,7 +1743,7 @@ t1 CREATE TABLE `t1` ( KEY `b` (`b`(1112)) KEY_BLOCK_SIZE=8192, KEY `c` (`c`) KEY_BLOCK_SIZE=8192, KEY `d` (`d`) -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a int not null, b varchar(2048), key (a), key(b)) key_block_size=8192; Warnings: @@ -1755,7 +1755,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(2048) DEFAULT NULL, KEY `a` (`a`), KEY `b` (`b`(1112)) -) ENGINE=MARIA DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=8192 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 KEY_BLOCK_SIZE=8192 drop table t1; create table t1 (a int not null, b varchar(2048), key (a) key_block_size=1024, key(b)) key_block_size=8192; Warnings: @@ -1767,7 +1767,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(2048) DEFAULT NULL, KEY `a` (`a`), KEY `b` (`b`(1112)) -) ENGINE=MARIA DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=8192 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 KEY_BLOCK_SIZE=8192 drop table t1; create table t1 (a int not null, b int, key (a) key_block_size=1024, key(b) key_block_size=8192) key_block_size=16384; show create table t1; @@ -1777,7 +1777,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, KEY `a` (`a`) KEY_BLOCK_SIZE=8192, KEY `b` (`b`) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 KEY_BLOCK_SIZE=16384 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 KEY_BLOCK_SIZE=16384 drop table t1; create table t1 (a int not null, key `a` (a) key_block_size=512); show create table t1; @@ -1785,7 +1785,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, KEY `a` (`a`) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a varchar(2048), key `a` (a) key_block_size=1000000000000000000); Warnings: @@ -1795,7 +1795,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(2048) DEFAULT NULL, KEY `a` (`a`(1112)) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a int not null, key `a` (a) key_block_size=1025); show create table t1; @@ -1803,7 +1803,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, KEY `a` (`a`) KEY_BLOCK_SIZE=8192 -) ENGINE=MARIA DEFAULT CHARSET=latin1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; create table t1 (a int not null, key key_block_size=1024 (a)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=1024 (a))' at line 1 @@ -1859,14 +1859,14 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 TRANSACTIONAL=0 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 TRANSACTIONAL=0 drop table t1; create table t1 (a int) row_format=dynamic transactional=0; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0 drop table t1; create table t1 (a int) row_format=dynamic transactional=1; Warnings: @@ -1875,13 +1875,13 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=PAGE TRANSACTIONAL=1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1 alter table t1 row_format=PAGE; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=PAGE TRANSACTIONAL=1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1 alter table t1 row_format=DYNAMIC; Warnings: Note 1478 Row format set to PAGE because of TRANSACTIONAL=1 option @@ -1889,39 +1889,39 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=PAGE TRANSACTIONAL=1 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1 alter table t1 transactional=0; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=PAGE TRANSACTIONAL=0 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=0 alter table t1 row_format=DYNAMIC; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0 +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0 drop table t1; create table t1 (a int) row_format=PAGE; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=PAGE +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE drop table t1; create table t1 (a int) row_format=PAGE TRANSACTIONAL=DEFAULT; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=PAGE +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE alter table t1 row_format=DYNAMIC; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL -) ENGINE=MARIA DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC +) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC drop table t1; create table `t1` ( t1_name varchar(255) default null, diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index e491832ebac..d121d761705 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -1332,11 +1332,11 @@ drop function f1; # Bug#25629 CREATE TABLE LIKE does not work with INFORMATION_SCHEMA # create table t1 like information_schema.processlist; ---replace_result ENGINE=MyISAM "" ENGINE=MARIA "" " PAGE_CHECKSUM=1" "" +--replace_result ENGINE=MyISAM "" ENGINE=MARIA "" " PAGE_CHECKSUM=1" "" " PAGE_CHECKSUM=0" "" show create table t1; drop table t1; create temporary table t1 like information_schema.processlist; ---replace_result ENGINE=MyISAM "" ENGINE=MARIA "" " PAGE_CHECKSUM=1" "" +--replace_result ENGINE=MyISAM "" ENGINE=MARIA "" " PAGE_CHECKSUM=1" "" " PAGE_CHECKSUM=0" "" show create table t1; drop table t1; create table t1 like information_schema.character_sets; diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index 421e168821b..a073af5268b 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -24,4 +24,4 @@ wait_timeout : Bug#32801 wait_timeout.test fails randomly ctype_create : Bug#32965 main.ctype_create fails status : Bug#32966 main.status fails ps_ddl : Bug#12093 2007-12-14 pending WL#4165 / WL#4166 -maria-preload : Bug#35030 unrepeatable output of SHOW STATUS +maria-preload : Bug#34911 unrepeatable output of SHOW STATUS diff --git a/mysql-test/t/maria-page-checksum.test b/mysql-test/t/maria-page-checksum.test new file mode 100644 index 00000000000..7bed7393d2d --- /dev/null +++ b/mysql-test/t/maria-page-checksum.test @@ -0,0 +1,1045 @@ +select @@global.maria_page_checksum; + +--echo # iteration 1 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 2 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 3 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 4 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 5 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 6 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 7 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 8 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 9 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 10 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 11 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 12 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 13 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 14 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 15 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 16 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 17 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 18 +set global maria_page_checksum = 0 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 19 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 20 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 21 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 22 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 23 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 24 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 25 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 26 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 27 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 28 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 29 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 30 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 31 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 32 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 33 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 0 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 34 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 engine=maria ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 35 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=0 ; +show create table t1 /* expecting PAGE_CHECKSUM=0 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; + +--echo # iteration 36 +set global maria_page_checksum = 1 ; +create table t1(a int) engine=maria PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +set global maria_page_checksum = 1 ; +alter table t1 PAGE_CHECKSUM=1 ; +show create table t1 /* expecting PAGE_CHECKSUM=1 */ ; +--exec $MARIA_CHK -dv $MYSQLTEST_VARDIR/master-data/test/t1 >$MYSQLTEST_VARDIR/tmp/mariachk.txt +perl; + use strict; + use warnings; + my $fname= "$ENV{'MYSQLTEST_VARDIR'}/tmp/mariachk.txt"; + open(FILE, "<", $fname) or die; + my @content= grep(/Page checksums are used/, ); + print @content ? $content[0] : "Page checksums are not used\n"; + close FILE; +EOF +drop table t1; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index b1d4e6e20c4..4646a8fb647 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -5161,6 +5161,7 @@ compare_tables(TABLE *table, create_info->used_fields & HA_CREATE_USED_CHARSET || create_info->used_fields & HA_CREATE_USED_DEFAULT_CHARSET || create_info->used_fields & HA_CREATE_USED_ROW_FORMAT || + create_info->used_fields & HA_CREATE_USED_PAGE_CHECKSUM || (alter_info->flags & (ALTER_RECREATE | ALTER_FOREIGN_KEY)) || order_num || !table->s->mysql_version || diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index ca5951cc8f7..1ea42ac395a 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -2343,8 +2343,10 @@ void ha_maria::update_create_info(HA_CREATE_INFO *create_info) Show always page checksums, as this can be forced with maria_page_checksums variable */ - if (file->s->options & HA_OPTION_PAGE_CHECKSUM) - create_info->page_checksum= HA_CHOICE_YES; + if (create_info->page_checksum == HA_CHOICE_UNDEF) + create_info->page_checksum= + (file->s->options & HA_OPTION_PAGE_CHECKSUM) ? HA_CHOICE_YES : + HA_CHOICE_NO; }