summaryrefslogtreecommitdiff
path: root/sql/ha_partition.h
diff options
context:
space:
mode:
authorMattias Jonsson <mattias.jonsson@oracle.com>2010-08-10 10:43:12 +0200
committerMattias Jonsson <mattias.jonsson@oracle.com>2010-08-10 10:43:12 +0200
commitb409fad8cc0812cc1da44bb6b893e95be46049ca (patch)
treeb108b786a0fd8c8078ddc3d97b56510095765627 /sql/ha_partition.h
parentd62bfebc7ede98df28ac75ec0d0880fd07f201db (diff)
downloadmariadb-git-b409fad8cc0812cc1da44bb6b893e95be46049ca.tar.gz
Bug#55458: Partitioned MyISAM table gets crashed by multi-table update
Problem was that the handler call ::extra(HA_EXTRA_CACHE) was cached but the ::extra(HA_EXTRA_PREPARE_FOR_UPDATE) was not. Solution was to also cache the other call and forward it when moving to a new partition to scan. mysql-test/r/partition.result: test result mysql-test/t/partition.test: New test from bug report. sql/ha_partition.cc: cache the HA_EXTRA_PREPARE_FOR_UPDATE just like HA_EXTRA_CACHE. sql/ha_partition.h: Added cache flag for HA_EXTRA_PREPARE_FOR_UPDATE
Diffstat (limited to 'sql/ha_partition.h')
-rw-r--r--sql/ha_partition.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index e3dc7d17c6d..013341e4df3 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -154,6 +154,8 @@ private:
*/
bool m_extra_cache;
uint m_extra_cache_size;
+ /* The same goes for HA_EXTRA_PREPARE_FOR_UPDATE */
+ bool m_extra_prepare_for_update;
void init_handler_variables();
/*