diff options
author | Sergei Golubchik <sergii@pisem.net> | 2014-02-26 19:36:33 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2014-02-26 19:36:33 +0100 |
commit | 15ee97214da759f5b30232081fb71331d9369102 (patch) | |
tree | 62a5742e75e71e934ffe8a2f16861735e8d82d8b /storage/innobase/include | |
parent | f92058a23e5c33815ce123ff314308839407f149 (diff) | |
parent | eeb7091e14d7feda093c7fa04bb2b0373a05e87f (diff) | |
download | mariadb-git-15ee97214da759f5b30232081fb71331d9369102.tar.gz |
InnoDB 5.6.15 merge.
update test results
Diffstat (limited to 'storage/innobase/include')
24 files changed, 166 insertions, 70 deletions
diff --git a/storage/innobase/include/api0api.h b/storage/innobase/include/api0api.h index 1d6aaab60bc..c294e3f34d5 100644 --- a/storage/innobase/include/api0api.h +++ b/storage/innobase/include/api0api.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2011, 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 @@ -460,6 +460,10 @@ ib_trx_start( /*=========*/ ib_trx_t ib_trx, /*!< in: transaction to restart */ ib_trx_level_t ib_trx_level, /*!< in: trx isolation level */ + ib_bool_t read_write, /*!< in: true if read write + transaction */ + ib_bool_t auto_commit, /*!< in: auto commit after each + single DML */ void* thd); /*!< in: THD */ /*****************************************************************//** @@ -470,7 +474,11 @@ put the transaction in the active state. ib_trx_t ib_trx_begin( /*=========*/ - ib_trx_level_t ib_trx_level); /*!< in: trx isolation level */ + ib_trx_level_t ib_trx_level, /*!< in: trx isolation level */ + ib_bool_t read_write, /*!< in: true if read write + transaction */ + ib_bool_t auto_commit); /*!< in: auto commit after each + single DML */ /*****************************************************************//** Query the transaction's state. This function can be used to check for @@ -669,7 +677,9 @@ ib_err_t ib_cursor_read_row( /*===============*/ ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_tpl_t ib_tpl); /*!< out: read cols into this tuple */ + ib_tpl_t ib_tpl, /*!< out: read cols into this tuple */ + void** row_buf, /*!< in/out: row buffer */ + ib_ulint_t* row_len); /*!< in/out: row buffer len */ /*****************************************************************//** Move cursor to the first record in the table. diff --git a/storage/innobase/include/btr0cur.h b/storage/innobase/include/btr0cur.h index e2bc599d598..833166e783c 100644 --- a/storage/innobase/include/btr0cur.h +++ b/storage/innobase/include/btr0cur.h @@ -326,6 +326,20 @@ btr_cur_update_in_place( mtr_commit(mtr) before latching any further pages */ __attribute__((warn_unused_result, nonnull)); +/***********************************************************//** +Writes a redo log record of updating a record in-place. */ +UNIV_INTERN +void +btr_cur_update_in_place_log( +/*========================*/ + ulint flags, /*!< in: flags */ + const rec_t* rec, /*!< in: record */ + dict_index_t* index, /*!< in: index of the record */ + const upd_t* update, /*!< in: update vector */ + trx_id_t trx_id, /*!< in: transaction id */ + roll_ptr_t roll_ptr, /*!< in: roll ptr */ + mtr_t* mtr) /*!< in: mtr */ + __attribute__((nonnull)); /*************************************************************//** Tries to update a record on a page in an index tree. It is assumed that mtr holds an x-latch on the page. The operation does not succeed if there is too diff --git a/storage/innobase/include/btr0pcur.h b/storage/innobase/include/btr0pcur.h index 973fae382ab..fc008cdd185 100644 --- a/storage/innobase/include/btr0pcur.h +++ b/storage/innobase/include/btr0pcur.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 @@ -460,6 +460,27 @@ btr_pcur_move_to_prev_on_page( /*==========================*/ btr_pcur_t* cursor);/*!< in/out: persistent cursor */ +/** Position state of persistent B-tree cursor. */ +enum pcur_pos_t { + /** The persistent cursor is not positioned. */ + BTR_PCUR_NOT_POSITIONED = 0, + /** The persistent cursor was previously positioned. + TODO: currently, the state can be BTR_PCUR_IS_POSITIONED, + though it really should be BTR_PCUR_WAS_POSITIONED, + because we have no obligation to commit the cursor with + mtr; similarly latch_mode may be out of date. This can + lead to problems if btr_pcur is not used the right way; + all current code should be ok. */ + BTR_PCUR_WAS_POSITIONED, + /** The persistent cursor is positioned by optimistic get to the same + record as it was positioned at. Not used for rel_pos == BTR_PCUR_ON. + It may need adjustment depending on previous/current search direction + and rel_pos. */ + BTR_PCUR_IS_POSITIONED_OPTIMISTIC, + /** The persistent cursor is positioned by index search. + Or optimistic get for rel_pos == BTR_PCUR_ON. */ + BTR_PCUR_IS_POSITIONED +}; /* The persistent B-tree cursor structure. This is used mainly for SQL selects, updates, and deletes. */ @@ -493,10 +514,8 @@ struct btr_pcur_t{ ib_uint64_t modify_clock; /*!< the modify clock value of the buffer block when the cursor position was stored */ - ulint pos_state; /*!< see TODO note below! - BTR_PCUR_IS_POSITIONED, - BTR_PCUR_WAS_POSITIONED, - BTR_PCUR_NOT_POSITIONED */ + enum pcur_pos_t pos_state; /*!< btr_pcur_store_position() and + btr_pcur_restore_position() state. */ ulint search_mode; /*!< PAGE_CUR_G, ... */ trx_t* trx_if_known; /*!< the transaction, if we know it; otherwise this field is not defined; @@ -512,21 +531,6 @@ struct btr_pcur_t{ is not NULL */ }; -#define BTR_PCUR_IS_POSITIONED 1997660512 /* TODO: currently, the state - can be BTR_PCUR_IS_POSITIONED, - though it really should be - BTR_PCUR_WAS_POSITIONED, - because we have no obligation - to commit the cursor with - mtr; similarly latch_mode may - be out of date. This can - lead to problems if btr_pcur - is not used the right way; - all current code should be - ok. */ -#define BTR_PCUR_WAS_POSITIONED 1187549791 -#define BTR_PCUR_NOT_POSITIONED 1328997689 - #define BTR_PCUR_OLD_STORED 908467085 #define BTR_PCUR_OLD_NOT_STORED 122766467 diff --git a/storage/innobase/include/btr0pcur.ic b/storage/innobase/include/btr0pcur.ic index 79afd7c322e..29f2fc722a2 100644 --- a/storage/innobase/include/btr0pcur.ic +++ b/storage/innobase/include/btr0pcur.ic @@ -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 @@ -379,7 +379,7 @@ btr_pcur_commit_specify_mtr( btr_pcur_t* pcur, /*!< in: persistent cursor */ mtr_t* mtr) /*!< in: mtr to commit */ { - ut_a(pcur->pos_state == BTR_PCUR_IS_POSITIONED); + ut_ad(pcur->pos_state == BTR_PCUR_IS_POSITIONED); pcur->latch_mode = BTR_NO_LATCHES; diff --git a/storage/innobase/include/btr0sea.h b/storage/innobase/include/btr0sea.h index fea117d0aaf..848bde451a0 100644 --- a/storage/innobase/include/btr0sea.h +++ b/storage/innobase/include/btr0sea.h @@ -189,8 +189,6 @@ UNIV_INTERN ibool btr_search_validate(void); /*======================*/ -#else -# define btr_search_validate() TRUE #endif /* defined UNIV_AHI_DEBUG || defined UNIV_DEBUG */ /** The search info struct in an index */ diff --git a/storage/innobase/include/db0err.h b/storage/innobase/include/db0err.h index 1f5ab0d7923..982bf1943cf 100644 --- a/storage/innobase/include/db0err.h +++ b/storage/innobase/include/db0err.h @@ -127,6 +127,7 @@ enum dberr_t { DB_IDENTIFIER_TOO_LONG, /*!< Identifier name too long */ DB_FTS_EXCEED_RESULT_CACHE_LIMIT, /*!< FTS query memory exceeds result cache limit */ + DB_TEMP_FILE_WRITE_FAILURE, /*!< Temp file write failure */ /* The following are partial failure codes */ DB_FAIL = 1000, diff --git a/storage/innobase/include/dict0stats.ic b/storage/innobase/include/dict0stats.ic index 8fb31678af9..ec9a9065470 100644 --- a/storage/innobase/include/dict0stats.ic +++ b/storage/innobase/include/dict0stats.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2012, 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 diff --git a/storage/innobase/include/dict0types.h b/storage/innobase/include/dict0types.h index 6acb6a2dcbe..1299445a8ee 100644 --- a/storage/innobase/include/dict0types.h +++ b/storage/innobase/include/dict0types.h @@ -82,4 +82,9 @@ enum ib_quiesce_t { #define TEMP_TABLE_PREFIX "#sql" #define TEMP_TABLE_PATH_PREFIX "/" TEMP_TABLE_PREFIX +#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG +/** Flag to control insert buffer debugging. */ +extern uint ibuf_debug; +#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ + #endif diff --git a/storage/innobase/include/fts0fts.h b/storage/innobase/include/fts0fts.h index f94112ef4d4..5bea5bc0e97 100644 --- a/storage/innobase/include/fts0fts.h +++ b/storage/innobase/include/fts0fts.h @@ -773,16 +773,12 @@ fts_cache_destroy( fts_cache_t* cache); /*!< in: cache*/ /*********************************************************************//** -Clear cache. If the shutdown flag is TRUE then the cache can contain -data that needs to be freed. For regular clear as part of normal -working we assume the caller has freed all resources. */ +Clear cache. */ UNIV_INTERN void fts_cache_clear( /*============*/ - fts_cache_t* cache, /*!< in: cache */ - ibool free_words); /*!< in: TRUE if free - in memory word cache. */ + fts_cache_t* cache); /*!< in: cache */ /*********************************************************************//** Initialize things in cache. */ @@ -833,7 +829,7 @@ fts_drop_index_split_tables( Run SYNC on the table, i.e., write out data from the cache to the FTS auxiliary INDEX table and clear the cache at the end. */ UNIV_INTERN -void +dberr_t fts_sync_table( /*===========*/ dict_table_t* table) /*!< in: table */ diff --git a/storage/innobase/include/fts0types.h b/storage/innobase/include/fts0types.h index b714d326487..64677428331 100644 --- a/storage/innobase/include/fts0types.h +++ b/storage/innobase/include/fts0types.h @@ -237,6 +237,7 @@ struct fts_fetch_t { fts_sql_callback read_record; /*!< Callback for reading index record */ + ulint total_memory; /*!< Total memory used */ }; /** For horizontally splitting an FTS auxiliary index */ diff --git a/storage/innobase/include/ibuf0ibuf.h b/storage/innobase/include/ibuf0ibuf.h index 0c5a336a1f0..9c3b686c998 100644 --- a/storage/innobase/include/ibuf0ibuf.h +++ b/storage/innobase/include/ibuf0ibuf.h @@ -67,11 +67,6 @@ typedef enum { /** Operations that can currently be buffered. */ extern ibuf_use_t ibuf_use; -#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG -/** Flag to control insert buffer debugging. */ -extern uint ibuf_debug; -#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ - /** The insert buffer control structure */ extern ibuf_t* ibuf; diff --git a/storage/innobase/include/log0log.h b/storage/innobase/include/log0log.h index 1e61ea54e7b..61318e34561 100644 --- a/storage/innobase/include/log0log.h +++ b/storage/innobase/include/log0log.h @@ -824,6 +824,8 @@ struct log_t{ later; this is advanced when a flush operation is completed to all the log groups */ + volatile bool is_extending; /*!< this is set to true during extend + the log buffer size */ lsn_t written_to_some_lsn; /*!< first log sequence number not yet written to any log group; for this to diff --git a/storage/innobase/include/mtr0mtr.h b/storage/innobase/include/mtr0mtr.h index 3257402d8aa..ed7fd76d425 100644 --- a/storage/innobase/include/mtr0mtr.h +++ b/storage/innobase/include/mtr0mtr.h @@ -315,7 +315,7 @@ mtr_memo_release( Checks if memo contains the given item. @return TRUE if contains */ UNIV_INLINE -ibool +bool mtr_memo_contains( /*==============*/ mtr_t* mtr, /*!< in: mtr */ diff --git a/storage/innobase/include/mtr0mtr.ic b/storage/innobase/include/mtr0mtr.ic index bb24734c9bb..a9f02430220 100644 --- a/storage/innobase/include/mtr0mtr.ic +++ b/storage/innobase/include/mtr0mtr.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 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 @@ -158,37 +158,38 @@ mtr_release_s_latch_at_savepoint( Checks if memo contains the given item. @return TRUE if contains */ UNIV_INLINE -ibool +bool mtr_memo_contains( /*==============*/ mtr_t* mtr, /*!< in: mtr */ const void* object, /*!< in: object to search */ ulint type) /*!< in: type of object */ { - mtr_memo_slot_t* slot; - dyn_array_t* memo; - ulint offset; - ut_ad(mtr); ut_ad(mtr->magic_n == MTR_MAGIC_N); ut_ad(mtr->state == MTR_ACTIVE || mtr->state == MTR_COMMITTING); - memo = &(mtr->memo); - - offset = dyn_array_get_data_size(memo); - - while (offset > 0) { - offset -= sizeof(mtr_memo_slot_t); - - slot = (mtr_memo_slot_t*) dyn_array_get_element(memo, offset); - - if ((object == slot->object) && (type == slot->type)) { - - return(TRUE); + for (const dyn_block_t* block = dyn_array_get_last_block(&mtr->memo); + block; + block = dyn_array_get_prev_block(&mtr->memo, block)) { + const mtr_memo_slot_t* start + = reinterpret_cast<mtr_memo_slot_t*>( + dyn_block_get_data(block)); + mtr_memo_slot_t* slot + = reinterpret_cast<mtr_memo_slot_t*>( + dyn_block_get_data(block) + + dyn_block_get_used(block)); + + ut_ad(!(dyn_block_get_used(block) % sizeof(mtr_memo_slot_t))); + + while (slot-- != start) { + if (object == slot->object && type == slot->type) { + return(true); + } } } - return(FALSE); + return(false); } # endif /* UNIV_DEBUG */ #endif /* !UNIV_HOTBACKUP */ diff --git a/storage/innobase/include/row0ftsort.h b/storage/innobase/include/row0ftsort.h index 4a486450efc..4e04a099140 100644 --- a/storage/innobase/include/row0ftsort.h +++ b/storage/innobase/include/row0ftsort.h @@ -84,10 +84,13 @@ struct fts_psort_t { row_merge_block_t* block_alloc[FTS_NUM_AUX_INDEX]; /*!< buffer to allocated */ ulint child_status; /*!< child thread status */ - ulint state; /*!< child thread state */ + ulint state; /*!< parent thread state */ fts_doc_list_t fts_doc_list; /*!< doc list to process */ fts_psort_common_t* psort_common; /*!< ptr to all psort info */ os_thread_t thread_hdl; /*!< thread handler */ + dberr_t error; /*!< db error during psort */ + ulint memory_used; /*!< memory used by fts_doc_list */ + ib_mutex_t mutex; /*!< mutex for fts_doc_list */ }; /** Structure stores information from string tokenization operation */ @@ -124,6 +127,7 @@ typedef struct fts_psort_insert fts_psort_insert_t; /** status bit used for communication between parent and child thread */ #define FTS_PARENT_COMPLETE 1 +#define FTS_PARENT_EXITING 2 #define FTS_CHILD_COMPLETE 1 #define FTS_CHILD_EXITING 2 diff --git a/storage/innobase/include/srv0conc.h b/storage/innobase/include/srv0conc.h index 9aee1b17bf0..cf61ef5528d 100644 --- a/storage/innobase/include/srv0conc.h +++ b/storage/innobase/include/srv0conc.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2011, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2011, 2012, Oracle and/or its affiliates. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described diff --git a/storage/innobase/include/srv0mon.h b/storage/innobase/include/srv0mon.h index 209894833a0..e2ab81bf53a 100644 --- a/storage/innobase/include/srv0mon.h +++ b/storage/innobase/include/srv0mon.h @@ -308,7 +308,11 @@ enum monitor_id_t { /* Index related counters */ MONITOR_MODULE_INDEX, MONITOR_INDEX_SPLIT, - MONITOR_INDEX_MERGE, + MONITOR_INDEX_MERGE_ATTEMPTS, + MONITOR_INDEX_MERGE_SUCCESSFUL, + MONITOR_INDEX_REORG_ATTEMPTS, + MONITOR_INDEX_REORG_SUCCESSFUL, + MONITOR_INDEX_DISCARD, /* Adaptive Hash Index related counters */ MONITOR_MODULE_ADAPTIVE_HASH, diff --git a/storage/innobase/include/srv0mon.ic b/storage/innobase/include/srv0mon.ic index 17411d77a8b..225390c6b6f 100644 --- a/storage/innobase/include/srv0mon.ic +++ b/storage/innobase/include/srv0mon.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2010, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2010, 2012, 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 diff --git a/storage/innobase/include/sync0arr.h b/storage/innobase/include/sync0arr.h index bb4d1037a62..15dbdcb540d 100644 --- a/storage/innobase/include/sync0arr.h +++ b/storage/innobase/include/sync0arr.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2009, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 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 @@ -37,10 +37,27 @@ struct sync_cell_t; struct sync_array_t; /******************************************************************//** +Get an instance of the sync wait array and reserve a wait array cell +in the instance for waiting for an object. The event of the cell is +reset to nonsignalled state. +If reserving cell of the instance fails, try to get another new +instance until we can reserve an empty cell of it. +@return the instance found, never NULL. */ +UNIV_INLINE +sync_array_t* +sync_array_get_and_reserve_cell( +/*============================*/ + void* object, /*!< in: pointer to the object to wait for */ + ulint type, /*!< in: lock request type */ + const char* file, /*!< in: file where requested */ + ulint line, /*!< in: line where requested */ + ulint* index); /*!< out: index of the reserved cell */ +/******************************************************************//** Reserves a wait array cell for waiting for an object. -The event of the cell is reset to nonsignalled state. */ +The event of the cell is reset to nonsignalled state. +@return true if free cell is found, otherwise false */ UNIV_INTERN -void +bool sync_array_reserve_cell( /*====================*/ sync_array_t* arr, /*!< in: wait array */ diff --git a/storage/innobase/include/sync0arr.ic b/storage/innobase/include/sync0arr.ic index 0114a1ff5a2..18a46dd0a41 100644 --- a/storage/innobase/include/sync0arr.ic +++ b/storage/innobase/include/sync0arr.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2009, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 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 @@ -24,3 +24,41 @@ Inline code Created 9/5/1995 Heikki Tuuri *******************************************************/ + +/** User configured sync array size */ +extern ulong srv_sync_array_size; + +/******************************************************************//** +Get an instance of the sync wait array and reserve a wait array cell +in the instance for waiting for an object. The event of the cell is +reset to nonsignalled state. +If reserving cell of the instance fails, try to get another new +instance until we can reserve an empty cell of it. +@return the instance found, never NULL. */ +UNIV_INLINE +sync_array_t* +sync_array_get_and_reserve_cell( +/*============================*/ + void* object, /*!< in: pointer to the object to wait for */ + ulint type, /*!< in: lock request type */ + const char* file, /*!< in: file where requested */ + ulint line, /*!< in: line where requested */ + ulint* index) /*!< out: index of the reserved cell */ +{ + sync_array_t* sync_arr; + bool reserved = false; + + for (ulint i = 0; i < srv_sync_array_size && !reserved; ++i) { + sync_arr = sync_array_get(); + reserved = sync_array_reserve_cell(sync_arr, object, type, + file, line, index); + } + + /* This won't be true every time, for the loop above may execute + more than srv_sync_array_size times to reserve a cell. + But an assertion here makes the code more solid. */ + ut_a(reserved); + + return sync_arr; +} + diff --git a/storage/innobase/include/sync0sync.h b/storage/innobase/include/sync0sync.h index 9950a6fbf6b..7b00e16476b 100644 --- a/storage/innobase/include/sync0sync.h +++ b/storage/innobase/include/sync0sync.h @@ -80,6 +80,7 @@ extern mysql_pfs_key_t fts_bg_threads_mutex_key; extern mysql_pfs_key_t fts_delete_mutex_key; extern mysql_pfs_key_t fts_optimize_mutex_key; extern mysql_pfs_key_t fts_doc_id_mutex_key; +extern mysql_pfs_key_t fts_pll_tokenize_mutex_key; extern mysql_pfs_key_t hash_table_mutex_key; extern mysql_pfs_key_t ibuf_bitmap_mutex_key; extern mysql_pfs_key_t ibuf_mutex_key; @@ -710,6 +711,7 @@ or row lock! */ #define SYNC_LOG 170 #define SYNC_LOG_FLUSH_ORDER 147 #define SYNC_RECV 168 +#define SYNC_FTS_TOKENIZE 167 #define SYNC_FTS_CACHE_INIT 166 /* Used for FTS cache initialization */ #define SYNC_FTS_BG_THREADS 165 #define SYNC_FTS_OPTIMIZE 164 // FIXME: is this correct number, test diff --git a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h index a75d925d4eb..f580901237f 100644 --- a/storage/innobase/include/trx0trx.h +++ b/storage/innobase/include/trx0trx.h @@ -997,6 +997,10 @@ struct trx_t{ ulint start_line; /*!< Track where it was started from */ const char* start_file; /*!< Filename where it was started */ #endif /* UNIV_DEBUG */ + /*------------------------------*/ + bool api_trx; /*!< trx started by InnoDB API */ + bool api_auto_commit;/*!< automatic commit */ + bool read_write; /*!< if read and write operation */ /*------------------------------*/ char detailed_error[256]; /*!< detailed error message for last diff --git a/storage/innobase/include/ut0bh.h b/storage/innobase/include/ut0bh.h index 84ea6dd915a..1085736c7ab 100644 --- a/storage/innobase/include/ut0bh.h +++ b/storage/innobase/include/ut0bh.h @@ -1,6 +1,6 @@ /***************************************************************************//** -Copyright (c) 2011, Oracle Corpn. All Rights Reserved. +Copyright (c) 2011, 2013, Oracle Corpn. 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 diff --git a/storage/innobase/include/ut0bh.ic b/storage/innobase/include/ut0bh.ic index a604237665d..b11de5b8b3e 100644 --- a/storage/innobase/include/ut0bh.ic +++ b/storage/innobase/include/ut0bh.ic @@ -1,6 +1,6 @@ /***************************************************************************//** -Copyright (c) 2011, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2011, 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 |