Commit 3e49a78c authored by unknown's avatar unknown

InnoDB: Do not get a lock for consistent reads (Bug #3894)


sql/ha_innodb.cc:
  start_stmt(): Obtain an exclusive lock for other than plain SELECT
parent a7d8307e
...@@ -4504,6 +4504,17 @@ ha_innobase::start_stmt( ...@@ -4504,6 +4504,17 @@ ha_innobase::start_stmt(
prepared for an update of a row */ prepared for an update of a row */
prebuilt->select_lock_type = LOCK_X; prebuilt->select_lock_type = LOCK_X;
} else {
/* For other than temporary tables, we obtain
no lock for consistent read (plain SELECT), and
an exclusive lock for SELECT ... FOR UPDATE or
SELECT ... LOCK IN SHARE MODE. */
prebuilt->select_lock_type =
thd->lex.sql_command == SQLCOM_SELECT
&& thd->lex.lock_option == TL_READ
? LOCK_NONE
: LOCK_X;
} }
/* Set the MySQL flag to mark that there is an active transaction */ /* Set the MySQL flag to mark that there is an active transaction */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment