Commit a1631518 authored by sunny's avatar sunny

branches/5.1: Since handler::get_auto_increment() doesn't allow us

to return the cause of failure we have to inform MySQL using the
sql_print_warning() function to return the cause for autoinc failure.
Previously we simply printed the error code, this patch prints the
text string representing the following two error codes:

DB_LOCK_WAIT_TIMEOUT
DB_DEADLOCK.

Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info

Approved by Marko.
parent a811adc8
......@@ -7456,13 +7456,23 @@ ha_innobase::innobase_get_auto_increment(
} else {
*value = autoinc;
}
/* A deadlock error during normal processing is OK
and can be ignored. */
} else if (error != DB_DEADLOCK) {
/* We need to print this message here because the
handler::get_auto_increment() doesn't allow a way
to return the specific error for why it failed. */
} else if (error == DB_DEADLOCK) {
sql_print_warning(
"Deadlock in "
"innobase_get_auto_increment()");
} else if (error == DB_LOCK_WAIT_TIMEOUT) {
sql_print_warning(
"Lock wait timeout in "
"innobase_get_auto_increment()");
} else {
sql_print_error("InnoDB: Error: %lu in "
"::innobase_get_auto_increment()",
error);
sql_print_error(
"InnoDB: Error: %lu in "
"innobase_get_auto_increment()",
error);
}
} while (*value == 0 && error == DB_SUCCESS);
......
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