summaryrefslogtreecommitdiff
path: root/storage/xtradb/trx
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-10-24 19:25:19 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-10-24 19:25:19 +0300
commit44ed24352212ed23bbc13ef0badedf41e87c3aad (patch)
tree2ad4dd83a81322df66e0c55b1a1330477f5ae9a8 /storage/xtradb/trx
parenta1a79aa5760ff9595b0089ac6ad4ad917c109a03 (diff)
parent439a7c994a6f01de1a3980c0405fb9e24ae3bd1a (diff)
downloadmariadb-git-44ed24352212ed23bbc13ef0badedf41e87c3aad.tar.gz
Merge 5.5 into 10.0
Diffstat (limited to 'storage/xtradb/trx')
-rw-r--r--storage/xtradb/trx/trx0rec.cc24
1 files changed, 23 insertions, 1 deletions
diff --git a/storage/xtradb/trx/trx0rec.cc b/storage/xtradb/trx/trx0rec.cc
index 8c0904dd57b..3193dfd81b5 100644
--- a/storage/xtradb/trx/trx0rec.cc
+++ b/storage/xtradb/trx/trx0rec.cc
@@ -1,6 +1,7 @@
/*****************************************************************************
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 2017, MariaDB Corporation.
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
@@ -771,7 +772,25 @@ trx_undo_page_report_modify(
const dict_col_t* col
= dict_table_get_nth_col(table, col_no);
- if (col->ord_part) {
+ if (!col->ord_part) {
+ continue;
+ }
+
+ if (update) {
+ for (i = 0; i < update->n_fields; i++) {
+ const dict_field_t* f
+ = dict_index_get_nth_field(
+ index,
+ upd_get_nth_field(
+ update, i)
+ ->field_no);
+ if (f->col == col) {
+ goto already_logged;
+ }
+ }
+ }
+
+ if (TRUE) {
ulint pos;
/* Write field number to undo log */
@@ -822,6 +841,9 @@ trx_undo_page_report_modify(
ptr += flen;
}
}
+
+already_logged:
+ continue;
}
mach_write_to_2(old_ptr, ptr - old_ptr);