diff options
author | Satya Bodapati <satya.bodapati@oracle.com> | 2013-09-11 16:57:02 +0530 |
---|---|---|
committer | Satya Bodapati <satya.bodapati@oracle.com> | 2013-09-11 16:57:02 +0530 |
commit | 59402fe0a76bae115c622cc241995180c4bdf4c9 (patch) | |
tree | dc30c5c7b5e6032fde388ffc10af96ecd0026076 /storage/innobase/include | |
parent | 42501173084f8a085a5cab38cb7d19ada8a96739 (diff) | |
download | mariadb-git-59402fe0a76bae115c622cc241995180c4bdf4c9.tar.gz |
Bug#16752251 - INNODB DOESN'T REDO-LOG INSERT BUFFER MERGE OPERATION IF
IT IS DONE IN-PLACE
With change buffer enabled, InnoDB doesn't write a transaction log
record when it merges a record from the insert buffer to an secondary
index page if the insertion is performed as an update-in-place.
Fixed by logging the 'update-in-place' operation on secondary index
pages.
Approved by Marko. rb#2429
Diffstat (limited to 'storage/innobase/include')
-rw-r--r-- | storage/innobase/include/btr0cur.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/storage/innobase/include/btr0cur.h b/storage/innobase/include/btr0cur.h index c2b81d0ae91..bab405fa91e 100644 --- a/storage/innobase/include/btr0cur.h +++ b/storage/innobase/include/btr0cur.h @@ -558,6 +558,19 @@ btr_push_update_extern_fields( const ulint* offsets,/* in: array returned by rec_get_offsets() */ upd_t* update);/* in: update vector or NULL */ +/*************************************************************** +Writes a redo log record of updating a record in-place. */ +UNIV_INLINE +void +btr_cur_update_in_place_log( +/*========================*/ + ulint flags, /* in: flags */ + rec_t* rec, /* in: record */ + dict_index_t* index, /* in: index where cursor positioned */ + upd_t* update, /* in: update vector */ + trx_t* trx, /* in: transaction */ + dulint roll_ptr, /* in: roll ptr */ + mtr_t* mtr); /* in: mtr */ /*######################################################################*/ |