Commit 0a0eed80 authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 5.5 into 10.0

parents 2d347132 8024f8c6
/***************************************************************************** /*****************************************************************************
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, 2018, MariaDB Corporation. Copyright (c) 2017, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -615,8 +615,7 @@ row_mysql_handle_errors( ...@@ -615,8 +615,7 @@ row_mysql_handle_errors(
switch (err) { switch (err) {
case DB_LOCK_WAIT_TIMEOUT: case DB_LOCK_WAIT_TIMEOUT:
if (row_rollback_on_timeout) { if (row_rollback_on_timeout) {
trx_rollback_to_savepoint(trx, NULL); goto rollback;
break;
} }
/* fall through */ /* fall through */
case DB_DUPLICATE_KEY: case DB_DUPLICATE_KEY:
...@@ -633,6 +632,7 @@ row_mysql_handle_errors( ...@@ -633,6 +632,7 @@ row_mysql_handle_errors(
case DB_FTS_INVALID_DOCID: case DB_FTS_INVALID_DOCID:
case DB_INTERRUPTED: case DB_INTERRUPTED:
case DB_DICT_CHANGED: case DB_DICT_CHANGED:
rollback_to_savept:
if (savept) { if (savept) {
/* Roll back the latest, possibly incomplete insertion /* Roll back the latest, possibly incomplete insertion
or update */ or update */
...@@ -656,6 +656,7 @@ row_mysql_handle_errors( ...@@ -656,6 +656,7 @@ row_mysql_handle_errors(
case DB_DEADLOCK: case DB_DEADLOCK:
case DB_LOCK_TABLE_FULL: case DB_LOCK_TABLE_FULL:
rollback:
/* Roll back the whole transaction; this resolution was added /* Roll back the whole transaction; this resolution was added
to version 3.23.43 */ to version 3.23.43 */
...@@ -686,14 +687,14 @@ row_mysql_handle_errors( ...@@ -686,14 +687,14 @@ row_mysql_handle_errors(
"InnoDB: you dump the tables, look at\n" "InnoDB: you dump the tables, look at\n"
"InnoDB: " REFMAN "forcing-innodb-recovery.html" "InnoDB: " REFMAN "forcing-innodb-recovery.html"
" for help.\n", stderr); " for help.\n", stderr);
break; goto rollback_to_savept;
case DB_FOREIGN_EXCEED_MAX_CASCADE: case DB_FOREIGN_EXCEED_MAX_CASCADE:
fprintf(stderr, "InnoDB: Cannot delete/update rows with" fprintf(stderr, "InnoDB: Cannot delete/update rows with"
" cascading foreign key constraints that exceed max" " cascading foreign key constraints that exceed max"
" depth of %lu\n" " depth of %lu\n"
"Please drop excessive foreign constraints" "Please drop excessive foreign constraints"
" and try again\n", (ulong) DICT_FK_MAX_RECURSIVE_LOAD); " and try again\n", (ulong) DICT_FK_MAX_RECURSIVE_LOAD);
break; goto rollback_to_savept;
default: default:
fprintf(stderr, "InnoDB: unknown error code %lu\n", fprintf(stderr, "InnoDB: unknown error code %lu\n",
(ulong) err); (ulong) err);
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, 2018, MariaDB Corporation. Copyright (c) 2017, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -613,8 +613,7 @@ row_mysql_handle_errors( ...@@ -613,8 +613,7 @@ row_mysql_handle_errors(
switch (err) { switch (err) {
case DB_LOCK_WAIT_TIMEOUT: case DB_LOCK_WAIT_TIMEOUT:
if (row_rollback_on_timeout) { if (row_rollback_on_timeout) {
trx_rollback_to_savepoint(trx, NULL); goto rollback;
break;
} }
/* fall through */ /* fall through */
case DB_DUPLICATE_KEY: case DB_DUPLICATE_KEY:
...@@ -631,6 +630,7 @@ row_mysql_handle_errors( ...@@ -631,6 +630,7 @@ row_mysql_handle_errors(
case DB_FTS_INVALID_DOCID: case DB_FTS_INVALID_DOCID:
case DB_INTERRUPTED: case DB_INTERRUPTED:
case DB_DICT_CHANGED: case DB_DICT_CHANGED:
rollback_to_savept:
if (savept) { if (savept) {
/* Roll back the latest, possibly incomplete insertion /* Roll back the latest, possibly incomplete insertion
or update */ or update */
...@@ -654,6 +654,7 @@ row_mysql_handle_errors( ...@@ -654,6 +654,7 @@ row_mysql_handle_errors(
case DB_DEADLOCK: case DB_DEADLOCK:
case DB_LOCK_TABLE_FULL: case DB_LOCK_TABLE_FULL:
rollback:
/* Roll back the whole transaction; this resolution was added /* Roll back the whole transaction; this resolution was added
to version 3.23.43 */ to version 3.23.43 */
...@@ -684,14 +685,14 @@ row_mysql_handle_errors( ...@@ -684,14 +685,14 @@ row_mysql_handle_errors(
"InnoDB: you dump the tables, look at\n" "InnoDB: you dump the tables, look at\n"
"InnoDB: " REFMAN "forcing-innodb-recovery.html" "InnoDB: " REFMAN "forcing-innodb-recovery.html"
" for help.\n", stderr); " for help.\n", stderr);
break; goto rollback_to_savept;
case DB_FOREIGN_EXCEED_MAX_CASCADE: case DB_FOREIGN_EXCEED_MAX_CASCADE:
fprintf(stderr, "InnoDB: Cannot delete/update rows with" fprintf(stderr, "InnoDB: Cannot delete/update rows with"
" cascading foreign key constraints that exceed max" " cascading foreign key constraints that exceed max"
" depth of %lu\n" " depth of %lu\n"
"Please drop excessive foreign constraints" "Please drop excessive foreign constraints"
" and try again\n", (ulong) DICT_FK_MAX_RECURSIVE_LOAD); " and try again\n", (ulong) DICT_FK_MAX_RECURSIVE_LOAD);
break; goto rollback_to_savept;
default: default:
fprintf(stderr, "InnoDB: unknown error code %lu\n", fprintf(stderr, "InnoDB: unknown error code %lu\n",
(ulong) err); (ulong) err);
......
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