diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-12-22 17:06:50 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-12-22 17:06:50 +0100 |
commit | ffa8c4cfcc41d4f160e3bdfca5cfd4b01a7d6e63 (patch) | |
tree | 728585c36f22a5db3cea796430883d0ebc5c05eb /storage/xtradb/include/trx0undo.h | |
parent | e27c34f9e4ca15c797fcd3191ee5679c2f237a09 (diff) | |
parent | 52c26f7a1f675185d2ef1a28aca7f9bcc67c6414 (diff) | |
download | mariadb-git-ffa8c4cfcc41d4f160e3bdfca5cfd4b01a7d6e63.tar.gz |
Percona-Server-5.6.14-rel62.0 merge
support ha_innodb.so as a dynamic plugin.
* remove obsolete *,innodb_plugin.rdiff files
* s/--plugin-load=/--plugin-load-add=/
* MYSQL_PLUGIN_IMPORT glob_hostname[]
* use my_error instead of push_warning_printf(ER_DEFAULT)
* don't use tdc_size and tc_size in a module
update test cases (XtraDB is 5.6.14, InnoDB is 5.6.10)
* copy new tests over
* disable some tests for (old) InnoDB
* delete XtraDB tests that no longer apply
small compatibility changes:
* s/HTON_EXTENDED_KEYS/HTON_SUPPORTS_EXTENDED_KEYS/
* revert unnecessary InnoDB changes to make it a bit closer to the upstream
fix XtraDB to compile on Windows (both as a static and a dynamic plugin)
disable XtraDB on Windows (deadlocks) and where no atomic ops are available (e.g. CentOS 5)
storage/innobase/handler/ha_innodb.cc:
revert few unnecessary changes to make it a bit closer to the original InnoDB
storage/innobase/include/univ.i:
correct the version to match what it was merged from
Diffstat (limited to 'storage/xtradb/include/trx0undo.h')
-rw-r--r-- | storage/xtradb/include/trx0undo.h | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/storage/xtradb/include/trx0undo.h b/storage/xtradb/include/trx0undo.h index 4a1e40af505..61b0dabb1e6 100644 --- a/storage/xtradb/include/trx0undo.h +++ b/storage/xtradb/include/trx0undo.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -65,6 +65,15 @@ ibool trx_undo_roll_ptr_is_insert( /*========================*/ roll_ptr_t roll_ptr); /*!< in: roll pointer */ +/***********************************************************************//** +Returns true if the record is of the insert type. +@return true if the record was freshly inserted (not updated). */ +UNIV_INLINE +bool +trx_undo_trx_id_is_insert( +/*======================*/ + const byte* trx_id) /*!< in: DB_TRX_ID, followed by DB_ROLL_PTR */ + __attribute__((nonnull, pure, warn_unused_result)); #endif /* !UNIV_HOTBACKUP */ /*****************************************************************//** Writes a roll ptr to an index page. In case that the size changes in @@ -166,6 +175,7 @@ trx_undo_get_prev_rec( trx_undo_rec_t* rec, /*!< in: undo record */ ulint page_no,/*!< in: undo log header page number */ ulint offset, /*!< in: undo log header offset on page */ + bool shared, /*!< in: true=S-latch, false=X-latch */ mtr_t* mtr); /*!< in: mtr */ /***********************************************************************//** Gets the next record in an undo log. @@ -282,14 +292,15 @@ trx_undo_lists_init( Assigns an undo log for a transaction. A new undo log is created or a cached undo log reused. @return DB_SUCCESS if undo log assign successful, possible error codes -are: DB_TOO_MANY_CONCURRENT_TRXS DB_OUT_OF_FILE_SPACE +are: DB_TOO_MANY_CONCURRENT_TRXS DB_OUT_OF_FILE_SPACE DB_READ_ONLY DB_OUT_OF_MEMORY */ UNIV_INTERN -ulint +dberr_t trx_undo_assign_undo( /*=================*/ trx_t* trx, /*!< in: transaction */ - ulint type); /*!< in: TRX_UNDO_INSERT or TRX_UNDO_UPDATE */ + ulint type) /*!< in: TRX_UNDO_INSERT or TRX_UNDO_UPDATE */ + __attribute__((nonnull, warn_unused_result)); /******************************************************************//** Sets the state of the undo log segment at a transaction finish. @return undo log segment header page, x-latched */ @@ -404,7 +415,7 @@ trx_undo_mem_free( /** Transaction undo log memory object; this is protected by the undo_mutex in the corresponding transaction object */ -struct trx_undo_struct{ +struct trx_undo_t{ /*-----------------------------*/ ulint id; /*!< undo log slot number within the rollback segment */ @@ -412,8 +423,8 @@ struct trx_undo_struct{ TRX_UNDO_UPDATE */ ulint state; /*!< state of the corresponding undo log segment */ - ibool del_marks; /*!< relevant only in an update undo log: - this is TRUE if the transaction may + ibool del_marks; /*!< relevant only in an update undo + log: this is TRUE if the transaction may have delete marked records, because of a delete of a row or an update of an indexed field; purge is then @@ -435,8 +446,8 @@ struct trx_undo_struct{ in bytes, or 0 for uncompressed */ ulint hdr_page_no; /*!< page number of the header page in the undo log */ - ulint hdr_offset; /*!< header offset of the undo log on the - page */ + ulint hdr_offset; /*!< header offset of the undo log on + the page */ ulint last_page_no; /*!< page number of the last page in the undo log; this may differ from top_page_no during a rollback */ @@ -582,8 +593,8 @@ quite a large overhead. */ #define TRX_UNDO_XA_XID (TRX_UNDO_XA_BQUAL_LEN + 4) /*--------------------------------------------------------------*/ #define TRX_UNDO_LOG_XA_HDR_SIZE (TRX_UNDO_XA_XID + XIDDATASIZE) - /*!< Total size of the undo log header - with the XA XID */ + /*!< Total size of the undo log header + with the XA XID */ /* @} */ #ifndef UNIV_NONINL |