summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Malyavin <nikitamalyavin@gmail.com>2020-10-14 15:40:46 +1000
committerNikita Malyavin <nikitamalyavin@gmail.com>2020-11-02 14:21:08 +1000
commitf244b499e736ac55ce5f31eee726096658b5cc6b (patch)
tree6320316260ff738873c5b6e6b0d8fa431f15520f
parente618f7e9f60acb89e6990d9f705f90220fda0252 (diff)
downloadmariadb-git-f244b499e736ac55ce5f31eee726096658b5cc6b.tar.gz
handler: move row change start signal down after the checks
-rw-r--r--sql/handler.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index 038effc3e5b..01825c13da6 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -7129,16 +7129,17 @@ int handler::ha_write_row(const uchar *buf)
if ((error= ha_check_overlaps(NULL, buf)))
DBUG_RETURN(error);
- MYSQL_INSERT_ROW_START(table_share->db.str, table_share->table_name.str);
- mark_trx_read_write();
- increment_statistics(&SSV::ha_write_count);
-
if (table->s->long_unique_table && this == table->file)
{
DBUG_ASSERT(inited == NONE || lookup_handler != this);
if ((error= check_duplicate_long_entries(buf)))
DBUG_RETURN(error);
}
+
+ MYSQL_INSERT_ROW_START(table_share->db.str, table_share->table_name.str);
+ mark_trx_read_write();
+ increment_statistics(&SSV::ha_write_count);
+
TABLE_IO_WAIT(tracker, PSI_TABLE_WRITE_ROW, MAX_KEY, error,
{ error= write_row(buf); })
@@ -7181,10 +7182,6 @@ int handler::ha_update_row(const uchar *old_data, const uchar *new_data)
uint saved_status= table->status;
error= ha_check_overlaps(old_data, new_data);
- MYSQL_UPDATE_ROW_START(table_share->db.str, table_share->table_name.str);
- mark_trx_read_write();
- increment_statistics(&SSV::ha_update_count);
-
if (!error && table->s->long_unique_table && this == table->file)
error= check_duplicate_long_entries_update(new_data);
table->status= saved_status;
@@ -7192,6 +7189,9 @@ int handler::ha_update_row(const uchar *old_data, const uchar *new_data)
if (error)
return error;
+ MYSQL_UPDATE_ROW_START(table_share->db.str, table_share->table_name.str);
+ mark_trx_read_write();
+ increment_statistics(&SSV::ha_update_count);
TABLE_IO_WAIT(tracker, PSI_TABLE_UPDATE_ROW, active_index, 0,
{ error= update_row(old_data, new_data);})