summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-04-14 10:33:59 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2021-04-14 10:33:59 +0300
commit5008171b05e0d3b8b5f4af312b94a312281e77c7 (patch)
tree4a551df68976e937d18a7416d799c7a5605cb12f /sql/sql_update.cc
parent61f84bba603aa85957b48d151f9ddf5ba4e71ab1 (diff)
parent13d0641710802bd57b0c0d88c9fc321932014994 (diff)
downloadmariadb-git-5008171b05e0d3b8b5f4af312b94a312281e77c7.tar.gz
Merge 10.3 into 10.4
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc37
1 files changed, 19 insertions, 18 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 570e748739d..19a9a15921b 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -1,5 +1,5 @@
/* Copyright (c) 2000, 2016, Oracle and/or its affiliates.
- Copyright (c) 2011, 2020, MariaDB
+ Copyright (c) 2011, 2021, MariaDB
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
@@ -2489,10 +2489,10 @@ int multi_update::send_data(List<Item> &not_used_values)
{
TABLE_LIST *cur_table;
DBUG_ENTER("multi_update::send_data");
- int error= 0;
for (cur_table= update_tables; cur_table; cur_table= cur_table->next_local)
{
+ int error= 0;
TABLE *table= cur_table->table;
uint offset= cur_table->shared;
/*
@@ -2562,21 +2562,7 @@ int multi_update::send_data(List<Item> &not_used_values)
updated--;
if (!ignore ||
table->file->is_fatal_error(error, HA_CHECK_ALL))
- {
-error:
- /*
- If (ignore && error == is ignorable) we don't have to
- do anything; otherwise...
- */
- myf flags= 0;
-
- if (table->file->is_fatal_error(error, HA_CHECK_ALL))
- flags|= ME_FATAL; /* Other handler errors are fatal */
-
- prepare_record_for_error_message(error, table);
- table->file->print_error(error,MYF(flags));
- DBUG_RETURN(1);
- }
+ goto error;
}
else
{
@@ -2653,7 +2639,22 @@ error:
}
}
}
- }
+ continue;
+error:
+ DBUG_ASSERT(error > 0);
+ /*
+ If (ignore && error == is ignorable) we don't have to
+ do anything; otherwise...
+ */
+ myf flags= 0;
+
+ if (table->file->is_fatal_error(error, HA_CHECK_ALL))
+ flags|= ME_FATAL; /* Other handler errors are fatal */
+
+ prepare_record_for_error_message(error, table);
+ table->file->print_error(error,MYF(flags));
+ DBUG_RETURN(1);
+ } // for (cur_table)
DBUG_RETURN(0);
}