summaryrefslogtreecommitdiff
path: root/sql/table.cc
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2013-06-15 16:02:43 +0200
committerSergei Golubchik <sergii@pisem.net>2013-06-15 16:02:43 +0200
commit10be9160c14f3bd488578ed64304a10d27b7b122 (patch)
tree19ce475db347619718db3834b30c35f1e966cfeb /sql/table.cc
parent04aeaaa04fe4a39c878904e1a0d33b245b7e4541 (diff)
downloadmariadb-git-10be9160c14f3bd488578ed64304a10d27b7b122.tar.gz
MDEV-4466 Partitioned Aria table created by a previous version is recognized as TEST_SQL_DISCOVERY
Partitioning didn't store the name of default storage engine for partitions in the frm file - it only store the typecode. Typecodes aren't stable, and might vary depending on the order in which storage engines are loaded (can be changed even from my.cnf without recompilation). As a temporary workaround for 5.5, we hard-code Aria's typecode, to make sure it never changes.
Diffstat (limited to 'sql/table.cc')
-rw-r--r--sql/table.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/table.cc b/sql/table.cc
index 77e251729c7..31c645ed3ce 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -802,6 +802,11 @@ static int open_binary_frm(THD *thd, TABLE_SHARE *share, uchar *head,
share->frm_version= FRM_VER_TRUE_VARCHAR;
#ifdef WITH_PARTITION_STORAGE_ENGINE
+ /*
+ Yuck! Double-bad. Doesn't work with dynamic engine codes.
+ And doesn't lock the plugin. Fixed in 10.0.4
+ */
+ compile_time_assert(MYSQL_VERSION_ID < 100000);
if (*(head+61) &&
!(share->default_part_db_type=
ha_checktype(thd, (enum legacy_db_type) (uint) *(head+61), 1, 0)))