diff options
author | Nikita Malyavin <nikitamalyavin@gmail.com> | 2020-10-22 01:32:44 +1000 |
---|---|---|
committer | Nikita Malyavin <nikitamalyavin@gmail.com> | 2020-11-02 14:11:43 +1000 |
commit | a79c6e369e8d07786395a04493f2142f41f7befc (patch) | |
tree | 061037ea112901441b2a7050a302d19536e43775 /storage/heap | |
parent | d9e00770a31892588fe6293a70e81312eaf329a6 (diff) | |
download | mariadb-git-a79c6e369e8d07786395a04493f2142f41f7befc.tar.gz |
MDEV-22677 UPDATE crashes on partitioned HEAP table WITHOUT OVERLAPS
`ha_heap::clone` was creating a handler by share's handlerton, which is
partition handlerton.
handler's handlerton should be used instead.
Here in particular, HEAP handlerton will be used and it will create ha_heap
handler.
Diffstat (limited to 'storage/heap')
-rw-r--r-- | storage/heap/ha_heap.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/storage/heap/ha_heap.cc b/storage/heap/ha_heap.cc index f8c2e72ba4a..96f4f4dc53a 100644 --- a/storage/heap/ha_heap.cc +++ b/storage/heap/ha_heap.cc @@ -153,7 +153,7 @@ int ha_heap::close(void) handler *ha_heap::clone(const char *name, MEM_ROOT *mem_root) { - handler *new_handler= get_new_handler(table->s, mem_root, table->s->db_type()); + handler *new_handler= get_new_handler(table->s, mem_root, ht); if (new_handler && !new_handler->ha_open(table, file->s->name, table->db_stat, HA_OPEN_IGNORE_IF_LOCKED)) return new_handler; |