Commit 2bd02714 authored by unknown's avatar unknown
Browse files

Fixed a bug using mysqldump to InnoDB tables causes error (Bug #10200).


sql/ha_innodb.cc:
  Fixed a bug using mysqldump to InnoDB tables causes error (Bug #10200).
  Lock type must be stored when sql_command = SQLCOM_LOCK_TABLES and
  lock_type = TL_READ or TL_READ_INSERT even when 
  innobase_locks_unsafe_for_binlog is set.
parent 21d5136d
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -5340,15 +5340,14 @@ ha_innobase::store_lock(
		    (lock_type == TL_READ || lock_type == TL_READ_NO_INSERT) &&
		    thd->lex->sql_command != SQLCOM_SELECT &&
		    thd->lex->sql_command != SQLCOM_UPDATE_MULTI &&
		    thd->lex->sql_command != SQLCOM_DELETE_MULTI ) {
		    thd->lex->sql_command != SQLCOM_DELETE_MULTI &&
		    thd->lex->sql_command != SQLCOM_LOCK_TABLES) {

			/* In case we have innobase_locks_unsafe_for_binlog
			option set and isolation level of the transaction
			is not set to serializable and MySQL is doing
			INSERT INTO...SELECT without FOR UPDATE or IN
			SHARE MODE we use consistent read for select. 
			Similarly, in case of DELETE...SELECT and
			UPDATE...SELECT when these are not multi table.*/
			SHARE MODE we use consistent read for select. */

			prebuilt->select_lock_type = LOCK_NONE;
			prebuilt->stored_select_lock_type = LOCK_NONE;