diff options
author | svoj@april.(none) <> | 2006-09-12 18:25:35 +0500 |
---|---|---|
committer | svoj@april.(none) <> | 2006-09-12 18:25:35 +0500 |
commit | 44f167ee1d0ca223562066c5d2ccd85be93832d0 (patch) | |
tree | f55c1bef77080c8bc784fbe2aac8f150441acea5 /sql/ha_myisam.h | |
parent | 50192889a485a60c54d6899aaf6649ef50291c41 (diff) | |
download | mariadb-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.h | 1 |
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; |