summaryrefslogtreecommitdiff
path: root/sql/ha_partition.cc
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2010-10-25 15:21:16 +0200
committerSergei Golubchik <sergii@pisem.net>2010-10-25 15:21:16 +0200
commit04a4b4334650b2183d25a7b04c1e83c31bffb22d (patch)
tree587654c186615669df8d81b851db711bb8ac2f62 /sql/ha_partition.cc
parent37a78d6868d0e25d286299c91d5787fb6733844d (diff)
parent60c15066db4f59e0362420d46a1ca5b6fbb30e56 (diff)
downloadmariadb-git-04a4b4334650b2183d25a7b04c1e83c31bffb22d.tar.gz
merge with 5.1
Diffstat (limited to 'sql/ha_partition.cc')
-rw-r--r--sql/ha_partition.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index a46df40a5ed..a27dfc0e851 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -2406,9 +2406,14 @@ bool ha_partition::get_from_handler_file(const char *name, MEM_ROOT *mem_root)
tot_partition_words= (m_tot_parts + 3) / 4;
engine_array= (handlerton **) my_alloca(m_tot_parts * sizeof(handlerton*));
for (i= 0; i < m_tot_parts; i++)
+ {
engine_array[i]= ha_resolve_by_legacy_type(ha_thd(),
(enum legacy_db_type)
- *(uchar *) ((file_buffer) + 12 + i));
+ *(uchar *) ((file_buffer) +
+ 12 + i));
+ if (!engine_array[i])
+ goto err3;
+ }
address_tot_name_len= file_buffer + 12 + 4 * tot_partition_words;
tot_name_words= (uint4korr(address_tot_name_len) + 3) / 4;
if (len_words != (tot_partition_words + tot_name_words + 4))