• unknown's avatar
    BUG#20256 - LOCK WRITE - MyISAM · fa1436bf
    unknown authored
    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.
    
    
    mysql-test/r/index_merge.result:
      A test case for bug#20256.
    mysql-test/t/index_merge.test:
      A test case for bug#20256.
    sql/ha_myisam.cc:
      clone method added to handler class.
    sql/ha_myisam.h:
      clone method added to handler class.
    sql/handler.cc:
      clone method added to handler class.
    sql/handler.h:
      clone method added to handler class.
    sql/opt_range.cc:
      Use handler clone method.
    fa1436bf
index_merge.test 13.6 KB