summaryrefslogtreecommitdiff
path: root/sql/ha_myisam.h
diff options
context:
space:
mode:
authorsvoj@april.(none) <>2006-09-12 18:25:35 +0500
committersvoj@april.(none) <>2006-09-12 18:25:35 +0500
commit44f167ee1d0ca223562066c5d2ccd85be93832d0 (patch)
treef55c1bef77080c8bc784fbe2aac8f150441acea5 /sql/ha_myisam.h
parent50192889a485a60c54d6899aaf6649ef50291c41 (diff)
downloadmariadb-git-44f167ee1d0ca223562066c5d2ccd85be93832d0.tar.gz
BUG#20256 - LOCK WRITE - MyISAM
Only MyISAM tables locked with LOCK TABLES ... WRITE were affected. A query that is optimized with index_merge doesn't reflect rows inserted within LOCK TABLES. MyISAM doesn't flush a state within LOCK TABLES. index_merge optimization creates a copy of the handler, which thus gets outdated MyISAM state. New handler->clone() method is introduced to fix this problem. For non-MyISAM storage engines it allocates a handler and opens it with ha_open(). For MyISAM it additionally copies MyISAM state pointer to cloned handler.
Diffstat (limited to 'sql/ha_myisam.h')
-rw-r--r--sql/ha_myisam.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/ha_myisam.h b/sql/ha_myisam.h
index ca684463311..950817d42bd 100644
--- a/sql/ha_myisam.h
+++ b/sql/ha_myisam.h
@@ -45,6 +45,7 @@ class ha_myisam: public handler
public:
ha_myisam(TABLE *table_arg);
~ha_myisam() {}
+ handler *clone(MEM_ROOT *mem_root);
const char *table_type() const { return "MyISAM"; }
const char *index_type(uint key_number);
const char **bas_ext() const;