From c8fad67da792333af8cbc6b659dffa6d742f35a3 Mon Sep 17 00:00:00 2001 From: Timothy Smith Date: Tue, 19 Aug 2008 18:40:56 -0600 Subject: [PATCH] Cherry-pick one change from innodb-5.1-ss2485 snapshot. Fixes Bug#35602. Bug #35602 "Failed to read auto-increment value from storage engine" with Innodb The test for REPLACE was an error of ommission since it's classified as a simple INSERT. For REPLACE statements we don't acquire the special AUTOINC lock for AUTOINC_NEW_STYLE_LOCKING with this fix. --- storage/innobase/handler/ha_innodb.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 31e74b97515..03104eac150 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -3277,7 +3277,8 @@ ha_innobase::innobase_autoinc_lock(void) old style only if another transaction has already acquired the AUTOINC lock on behalf of a LOAD FILE or INSERT ... SELECT etc. type of statement. */ - if (thd_sql_command(user_thd) == SQLCOM_INSERT) { + if (thd_sql_command(user_thd) == SQLCOM_INSERT + || thd_sql_command(user_thd) == SQLCOM_REPLACE) { dict_table_t* table = prebuilt->table; /* Acquire the AUTOINC mutex. */