mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 03:17:20 +02:00
Merge jlindstrom@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/jan/talle/mysql-4.1 sql/ha_innodb.cc: Auto merged
This commit is contained in:
commit
433aec148f
1 changed files with 7 additions and 3 deletions
|
|
@ -2461,9 +2461,10 @@ ha_innobase::write_row(
|
|||
/* If the insert did not succeed we restore the value of
|
||||
the auto-inc counter we used; note that this behavior was
|
||||
introduced only in version 4.0.4.
|
||||
NOTE that a REPLACE command handles a duplicate key error
|
||||
NOTE that a REPLACE command and LOAD DATA INFILE REPLACE
|
||||
handles a duplicate key error
|
||||
itself, and we must not decrement the autoinc counter
|
||||
if we are performing a REPLACE statement.
|
||||
if we are performing a those statements.
|
||||
NOTE 2: if there was an error, for example a deadlock,
|
||||
which caused InnoDB to roll back the whole transaction
|
||||
already in the call of row_insert_for_mysql(), we may no
|
||||
|
|
@ -2475,7 +2476,9 @@ ha_innobase::write_row(
|
|||
if (error == DB_DUPLICATE_KEY
|
||||
&& (user_thd->lex->sql_command == SQLCOM_REPLACE
|
||||
|| user_thd->lex->sql_command
|
||||
== SQLCOM_REPLACE_SELECT)) {
|
||||
== SQLCOM_REPLACE_SELECT
|
||||
|| (user_thd->lex->sql_command == SQLCOM_LOAD
|
||||
&& user_thd->lex->duplicates == DUP_REPLACE))) {
|
||||
|
||||
skip_auto_inc_decr= TRUE;
|
||||
}
|
||||
|
|
@ -5501,6 +5504,7 @@ innobase_query_is_replace(void)
|
|||
thd = (THD *)innobase_current_thd();
|
||||
|
||||
if ( thd->lex->sql_command == SQLCOM_REPLACE ||
|
||||
thd->lex->sql_command == SQLCOM_REPLACE_SELECT ||
|
||||
( thd->lex->sql_command == SQLCOM_LOAD &&
|
||||
thd->lex->duplicates == DUP_REPLACE )) {
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue