summaryrefslogtreecommitdiff
path: root/mysql-test/std_data
diff options
context:
space:
mode:
authorunknown <gshchepa/uchum@host.loc>2008-05-12 21:01:13 +0500
committerunknown <gshchepa/uchum@host.loc>2008-05-12 21:01:13 +0500
commit32425d4cea2222a82b06d689377ed339e03228e3 (patch)
treec199105fc93fb719a3a0fc021e64ed6662c0b00e /mysql-test/std_data
parent51b980ad43bfe06fa93ff0679d8925f4dcd9cda1 (diff)
downloadmariadb-git-32425d4cea2222a82b06d689377ed339e03228e3.tar.gz
Fixed bug #36055: mysql_upgrade doesn't really 'upgrade' tables
The REPAIR TABLE ... USE_FRM query silently corrupts data of tables with old .FRM file version. The mysql_upgrade client program or the REPAIR TABLE query (without the USE_FRM clause) can't prevent this trouble, because in the common case they don't upgrade .FRM file to compatible structure. 1. Evaluation of the REPAIR TABLE ... USE_FRM query has been modified to reject such tables with the message: "Failed repairing incompatible .FRM file". 2. REPAIR TABLE query (without USE_FRM clause) evaluation has been modified to upgrade .FRM files to current version. 3. CHECK TABLE ... FOR UPGRADE query evaluation has been modified to return error status when .FRM file has incompatible version. 4. mysql_upgrade and mysqlcheck client programs call CHECK TABLE FOR UPGRADE and REPAIR TABLE queries, so their behaviors have been changed too to upgrade .FRM files with incompatible version numbers. mysql-test/std_data/bug36055.MYD: Added test data for bug #36055. mysql-test/std_data/bug36055.MYI: Added test data for bug #36055. mysql-test/std_data/bug36055.frm: Added test data for bug #36055. mysql-test/r/repair.result: Added test case for bug# 36055. mysql-test/t/repair.test: Added test case for bug# 36055. sql/handler.cc: Fixed bug #36055: mysql_upgrade doesn't really 'upgrade' tables The handler::ha_check_for_upgrade method has been modified to return error if .FRM file has incompatible version number. sql/sql_table.cc: Fixed bug #36055: mysql_upgrade doesn't really 'upgrade' tables The prepare_for_repair function has been modified to reject REPAIR TABLE ... USE_FRM queries on incompatible .FRM files with the message: "Failed repairing incompatible .FRM file".
Diffstat (limited to 'mysql-test/std_data')
-rw-r--r--mysql-test/std_data/bug36055.MYDbin0 -> 10 bytes
-rw-r--r--mysql-test/std_data/bug36055.MYIbin0 -> 1024 bytes
-rw-r--r--mysql-test/std_data/bug36055.frmbin0 -> 8556 bytes
3 files changed, 0 insertions, 0 deletions
diff --git a/mysql-test/std_data/bug36055.MYD b/mysql-test/std_data/bug36055.MYD
new file mode 100644
index 00000000000..4932a077113
--- /dev/null
+++ b/mysql-test/std_data/bug36055.MYD
Binary files differ
diff --git a/mysql-test/std_data/bug36055.MYI b/mysql-test/std_data/bug36055.MYI
new file mode 100644
index 00000000000..531c505c102
--- /dev/null
+++ b/mysql-test/std_data/bug36055.MYI
Binary files differ
diff --git a/mysql-test/std_data/bug36055.frm b/mysql-test/std_data/bug36055.frm
new file mode 100644
index 00000000000..11c9cb31dad
--- /dev/null
+++ b/mysql-test/std_data/bug36055.frm
Binary files differ