#include <config.h>
#include <limits.h>
#include <fcntl.h>
#include <drizzled/error.h>
#include <drizzled/errmsg_print.h>
#include <drizzled/internal/m_string.h>
#include <drizzled/internal/my_sys.h>
#include <drizzled/plugin.h>
#include <drizzled/show.h>
#include <drizzled/data_home.h>
#include <drizzled/catalog/local.h>
#include <drizzled/field.h>
#include <drizzled/charset.h>
#include <drizzled/session.h>
#include <drizzled/current_session.h>
#include <drizzled/table.h>
#include <drizzled/field/blob.h>
#include <drizzled/field/varstring.h>
#include <drizzled/plugin/xa_storage_engine.h>
#include <drizzled/plugin/daemon.h>
#include <drizzled/memory/multi_malloc.h>
#include <drizzled/pthread_globals.h>
#include <drizzled/named_savepoint.h>
#include <drizzled/session/table_messages.h>
#include <drizzled/transaction_services.h>
#include <drizzled/message/statement_transform.h>
#include <drizzled/cached_directory.h>
#include <drizzled/statistics_variables.h>
#include <drizzled/system_variables.h>
#include <drizzled/session/times.h>
#include <drizzled/session/transactions.h>
#include <drizzled/typelib.h>
#include <boost/algorithm/string.hpp>
#include <boost/program_options.hpp>
#include <boost/scoped_array.hpp>
#include <boost/filesystem.hpp>
#include <drizzled/module/option_map.h>
#include <iostream>
#include "univ.i"
#include "buf0lru.h"
#include "btr0sea.h"
#include "os0file.h"
#include "os0thread.h"
#include "srv0start.h"
#include "srv0srv.h"
#include "trx0roll.h"
#include "trx0trx.h"
#include "trx0sys.h"
#include "mtr0mtr.h"
#include "row0ins.h"
#include "row0mysql.h"
#include "row0sel.h"
#include "row0upd.h"
#include "log0log.h"
#include "lock0lock.h"
#include "dict0crea.h"
#include "create_replication.h"
#include "btr0cur.h"
#include "btr0btr.h"
#include "fsp0fsp.h"
#include "sync0sync.h"
#include "fil0fil.h"
#include "trx0xa.h"
#include "row0merge.h"
#include "thr0loc.h"
#include "dict0boot.h"
#include "ha_prototypes.h"
#include "ut0mem.h"
#include "ibuf0ibuf.h"
#include "ha_innodb.h"
#include "data_dictionary.h"
#include "replication_dictionary.h"
#include "internal_dictionary.h"
#include "handler0vars.h"
#include <sstream>
#include <string>
#include <plugin/innobase/handler/status_function.h>
#include <plugin/innobase/handler/replication_log.h>
#include <google/protobuf/io/zero_copy_stream.h>
#include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/text_format.h>
#include <boost/thread/mutex.hpp>
Go to the source code of this file.
Classes | |
class | InnobaseEngine |
Macros | |
#define | INSIDE_HA_INNOBASE_CC |
#define | EQ_CURRENT_SESSION(session) ((session) == current_session) |
#define | INNOBASE_WAKE_INTERVAL 32 |
#define | DEFAULT_FILE_EXTENSION ".dfe" |
Typedefs | |
typedef constrained_check < uint32_t, UINT32_MAX, 10 > | open_files_constraint |
typedef constrained_check < uint32_t, 10, 1 > | mirrored_log_groups_constraint |
typedef constrained_check < uint32_t, 100, 2 > | log_files_in_group_constraint |
typedef constrained_check < uint32_t, 6, 0 > | force_recovery_constraint |
typedef constrained_check < size_t, SIZE_MAX, 256 *1024, 1024 > | log_buffer_constraint |
typedef constrained_check < size_t, SIZE_MAX, 512 *1024, 1024 > | additional_mem_pool_constraint |
typedef constrained_check < unsigned int, 1000, 1 > | autoextend_constraint |
typedef constrained_check < size_t, SIZE_MAX, 33554432, 1048576 > | buffer_pool_constraint |
typedef constrained_check < uint32_t, MAX_BUFFER_POOLS, 1 > | buffer_pool_instances_constraint |
typedef constrained_check < uint32_t,(1 << UNIV_PAGE_SIZE_SHIFT_MAX),(1<< 12)> | page_size_constraint |
typedef constrained_check < uint32_t,(1 << UNIV_PAGE_SIZE_SHIFT_MAX),(1<< 9)> | log_block_size_constraint |
typedef constrained_check < uint32_t, UINT32_MAX, 100 > | io_capacity_constraint |
typedef constrained_check < uint32_t, 5000, 1 > | purge_batch_constraint |
typedef constrained_check < uint32_t, 1, 0 > | purge_threads_constraint |
typedef constrained_check < uint32_t, 2, 0 > | trinary_constraint |
typedef constrained_check < unsigned int, 99, 0 > | max_dirty_pages_constraint |
typedef constrained_check < uint32_t, 64, 1 > | io_threads_constraint |
typedef constrained_check < uint32_t, 1000, 0 > | concurrency_constraint |
typedef constrained_check < int64_t, INT64_MAX, 1024 *1024, 1024 *1024 > | log_file_constraint |
typedef constrained_check < uint32_t, 95, 5 > | old_blocks_constraint |
typedef constrained_check < uint32_t, 64, 0 > | read_ahead_threshold_constraint |
typedef constrained_check < uint32_t, 1, 0 > | binary_constraint |
typedef constrained_check < uint32_t, 999999999, 100 > | ibuf_accel_rate_constraint |
typedef constrained_check < uint32_t, 1024 *1024 *1024, 1 > | lock_wait_constraint |
Functions | |
static INNOBASE_SHARE * | get_share (const char *table_name) |
static void | free_share (INNOBASE_SHARE *share) |
static uint | innobase_file_format_name_lookup (const char *format_name) |
static int | innobase_file_format_validate_and_set (const char *format_max) |
static void | innobase_commit_low (trx_t *trx) |
UNIV_INTERN ibool | thd_is_replication_slave_thread (drizzled::Session *) |
static void | innodb_srv_conc_enter_innodb (trx_t *trx) |
static void | innodb_srv_conc_exit_innodb (trx_t *trx) |
static void | innobase_release_stat_resources (trx_t *trx) |
UNIV_INTERN ibool | thd_has_edited_nontrans_tables (drizzled::Session *session) |
UNIV_INTERN ibool | thd_is_select (const drizzled::Session *session) |
UNIV_INTERN ibool | thd_supports_xa (drizzled::Session *) |
UNIV_INTERN ulong | thd_lock_wait_timeout (drizzled::Session *) |
UNIV_INTERN void | thd_set_lock_wait_time (drizzled::Session *in_session, ulint value) |
static trx_t *& | session_to_trx (Session *session) |
static void | innobase_active_small (void) |
UNIV_INTERN int | convert_error_code_to_mysql (int error, ulint flags, Session *session) |
UNIV_INTERN void | innobase_mysql_print_thd (FILE *f, drizzled::Session *in_session, uint) |
UNIV_INTERN void | innobase_get_cset_width (ulint cset, ulint *mbminlen, ulint *mbmaxlen) |
UNIV_INTERN void | innobase_convert_from_table_id (const void *, char *to, const char *from, ulint len) |
UNIV_INTERN void | innobase_convert_from_id (const void *, char *to, const char *from, ulint len) |
UNIV_INTERN int | innobase_strcasecmp (const char *a, const char *b) |
UNIV_INTERN void | innobase_casedn_str (char *a) |
UNIV_INTERN bool | innobase_isspace (const void *cs, char char_to_test) |
UNIV_INTERN int | innobase_mysql_tmpfile (void) |
UNIV_INTERN ulint | innobase_raw_format (const char *data, ulint data_len, ulint, char *buf, ulint buf_size) |
static uint64_t | innobase_next_autoinc (uint64_t current, uint64_t increment, uint64_t offset, uint64_t max_value) |
static void | innobase_trx_init (Session *session, trx_t *trx) |
UNIV_INTERN trx_t * | innobase_trx_allocate (Session *session) |
static trx_t * | check_trx_exists (Session *session) |
static char * | innobase_convert_identifier (char *buf, ulint buflen, const char *id, ulint idlen, drizzled::Session *session, ibool file_id) |
UNIV_INTERN char * | innobase_convert_name (char *buf, ulint buflen, const char *id, ulint idlen, drizzled::Session *session, ibool table_id) |
UNIV_INTERN ibool | trx_is_interrupted (trx_t *trx) |
UNIV_INTERN ibool | trx_is_strict (trx_t *trx) |
static void | reset_template (row_prebuilt_t *prebuilt) |
template<class T > | |
void | align_value (T &value, size_t align_val=1024) |
static void | auto_extend_update (Session *, sql_var_t) |
static void | io_capacity_update (Session *, sql_var_t) |
static void | purge_batch_update (Session *, sql_var_t) |
static void | purge_threads_update (Session *, sql_var_t) |
static void | innodb_adaptive_hash_index_update (Session *, sql_var_t) |
static void | innodb_old_blocks_pct_update (Session *, sql_var_t) |
static void | innodb_thread_concurrency_update (Session *, sql_var_t) |
static void | innodb_sync_spin_loops_update (Session *, sql_var_t) |
static void | innodb_spin_wait_delay_update (Session *, sql_var_t) |
static void | innodb_thread_sleep_delay_update (Session *, sql_var_t) |
static void | innodb_read_ahead_threshold_update (Session *, sql_var_t) |
static void | auto_lru_dump_update (Session *, sql_var_t) |
static void | ibuf_active_contract_update (Session *, sql_var_t) |
static void | ibuf_accel_rate_update (Session *, sql_var_t) |
static void | checkpoint_age_target_update (Session *, sql_var_t) |
static void | flush_neighbor_pages_update (Session *, sql_var_t) |
static int | innodb_commit_concurrency_validate (Session *session, set_var *var) |
static int | innodb_file_format_name_validate (Session *, set_var *var) |
static int | innodb_change_buffering_validate (Session *, set_var *var) |
static int | innodb_file_format_max_validate (Session *session, set_var *var) |
static int | read_ahead_validate (Session *, set_var *var) |
static int | adaptive_flushing_method_validate (Session *, set_var *var) |
static int | innobase_init (module::Context &context) |
static int | innobase_rollback_trx (trx_t *trx) |
static uint64_t | innobase_get_int_col_max_value (const Field *field) |
static ibool | innobase_match_index_columns (const KeyInfo *key_info, const dict_index_t *index_info) |
static ibool | innobase_build_index_translation (const Table *table, dict_table_t *ib_table, INNOBASE_SHARE *share) |
static dict_index_t * | innobase_index_lookup (INNOBASE_SHARE *share, uint keynr) |
static uint | get_field_offset (Table *table, Field *field) |
static uint | field_in_record_is_null (Table *table, Field *field, char *record) |
static void | set_field_in_record_to_null (Table *table, Field *field, char *record) |
UNIV_INTERN int | innobase_mysql_cmp (int mysql_type, uint charset_number, const unsigned char *a, unsigned int a_length, const unsigned char *b, unsigned int b_length) |
UNIV_INTERN ulint | get_innobase_type_from_mysql_type (ulint *unsigned_flag, const void *f) |
static void | innobase_write_to_2_little_endian (byte *buf, ulint val) |
static uint | innobase_read_from_2_little_endian (const unsigned char *buf) |
static void | build_template (row_prebuilt_t *prebuilt, Session *, Table *table, uint templ_type) |
static int | calc_row_difference (upd_t *uvect, unsigned char *old_row, unsigned char *new_row, Table *table, unsigned char *upd_buff, ulint buff_len, row_prebuilt_t *prebuilt, Session *) |
static ulint | convert_search_mode_to_innobase (enum ha_rkey_function find_flag) |
static int | create_table_def (trx_t *trx, Table *form, const char *table_name, const char *path_of_temp_table, ulint flags) |
static int | create_index (trx_t *trx, Table *form, ulint flags, const char *table_name, uint key_num) |
static int | create_clustered_index_when_no_primary (trx_t *trx, ulint flags, const char *table_name) |
static int | innobase_rename_table (trx_t *trx, const identifier::Table &from, const identifier::Table &to, ibool lock_and_commit) |
static unsigned int | innobase_get_mysql_key_number_for_index (INNOBASE_SHARE *share, const drizzled::Table *table, dict_table_t *ib_table, const dict_index_t *index) |
static ulint | innobase_map_isolation_level (enum_tx_isolation iso) |
static bool | innodb_show_status (plugin::StorageEngine *engine, Session *session, stat_print_fn *stat_print) |
static bool | innodb_mutex_show_status (plugin::StorageEngine *engine, Session *session, stat_print_fn *stat_print) |
ulint | innobase_get_at_most_n_mbchars (ulint charset_id, ulint prefix_len, ulint data_len, const char *str) |
static void | init_options (drizzled::module::option_context &context) |
UNIV_INTERN bool | innobase_index_name_is_reserved (const trx_t *trx, const KeyInfo *key_info, ulint num_of_keys) |
Variables | |
static boost::mutex | innobase_share_mutex |
static ulong | commit_threads = 0 |
static boost::condition_variable | commit_cond |
static boost::mutex | commit_cond_m |
static bool | innodb_inited = 0 |
static plugin::XaStorageEngine * | innodb_engine_ptr = NULL |
static open_files_constraint | innobase_open_files |
static mirrored_log_groups_constraint | innobase_mirrored_log_groups |
static log_files_in_group_constraint | innobase_log_files_in_group |
force_recovery_constraint | innobase_force_recovery |
static log_buffer_constraint | innobase_log_buffer_size |
static additional_mem_pool_constraint | innobase_additional_mem_pool_size |
static autoextend_constraint | innodb_auto_extend_increment |
static buffer_pool_constraint | innobase_buffer_pool_size |
static buffer_pool_instances_constraint | innobase_buffer_pool_instances |
static page_size_constraint | innobase_page_size |
static log_block_size_constraint | innobase_log_block_size |
static io_capacity_constraint | innodb_io_capacity |
static purge_batch_constraint | innodb_purge_batch_size |
static purge_threads_constraint | innodb_n_purge_threads |
static trinary_constraint | innodb_flush_log_at_trx_commit |
static max_dirty_pages_constraint | innodb_max_dirty_pages_pct |
static uint64_constraint | innodb_max_purge_lag |
static uint64_nonzero_constraint | innodb_stats_sample_pages |
static io_threads_constraint | innobase_read_io_threads |
static io_threads_constraint | innobase_write_io_threads |
static concurrency_constraint | innobase_commit_concurrency |
static concurrency_constraint | innobase_thread_concurrency |
static uint32_nonzero_constraint | innodb_concurrency_tickets |
static log_file_constraint | innobase_log_file_size |
static uint64_constraint | innodb_replication_delay |
static uint32_constraint | buffer_pool_restore_at_startup |
static old_blocks_constraint | innobase_old_blocks_pct |
static uint32_constraint | innodb_sync_spin_loops |
static uint32_constraint | innodb_spin_wait_delay |
static uint32_constraint | innodb_thread_sleep_delay |
static read_ahead_threshold_constraint | innodb_read_ahead_threshold |
static uint64_constraint | ibuf_max_size |
static binary_constraint | ibuf_active_contract |
static ibuf_accel_rate_constraint | ibuf_accel_rate |
static uint32_constraint | checkpoint_age_target |
static binary_constraint | flush_neighbor_pages |
static string | sysvar_transaction_log_use_replicator |
std::string | innobase_data_home_dir |
std::string | innobase_data_file_path |
std::string | innobase_log_group_home_dir |
static string | innobase_file_format_name |
static string | innobase_change_buffering |
static string | read_ahead |
static string | adaptive_flushing_method |
static string | innobase_file_format_max |
static trinary_constraint | innobase_fast_shutdown |
static my_bool | innobase_file_format_check = TRUE |
static my_bool | innobase_use_doublewrite = TRUE |
static my_bool | innobase_use_checksums = TRUE |
static my_bool | innobase_rollback_on_timeout = FALSE |
static my_bool | innobase_create_status_file = FALSE |
static bool | innobase_use_replication_log |
static bool | support_xa |
static bool | strict_mode |
static lock_wait_constraint | lock_wait_timeout |
static char * | internal_innobase_data_file_path = NULL |
static ulong | innobase_active_counter = 0 |
static hash_table_t * | innobase_open_tables |
static const char * | innobase_change_buffering_values [IBUF_USE_COUNT] |
static const char * | read_ahead_names [] |
static TYPELIB | read_ahead_typelib |
static const char * | adaptive_flushing_method_names [] |
static TYPELIB | adaptive_flushing_method_typelib |
static const char | innobase_index_reserve_name [] = "GEN_CLUST_INDEX" |
static const char * | ha_innobase_exts [] |
static const char | innobase_engine_name [] = "InnoDB" |
static drizzle_show_var | innodb_status_variables [] |
Definition in file ha_innodb.cc.
typedef constrained_check<uint32_t, 95, 5> old_blocks_constraint |
Percentage of the buffer pool to reserve for 'old' blocks. Connected to buf_LRU_old_ratio.
Definition at line 226 of file ha_innodb.cc.
Check if argument is a valid value for srv_adaptive_flushing_method and set it. This function is registered as a callback with MySQL.
Definition at line 2132 of file ha_innodb.cc.
References drizzled::Item::str_value.
Referenced by innobase_init().
|
static |
Builds a 'template' to the prebuilt struct. The template is used in fast retrieval of just those column values MySQL needs in its processing.
prebuilt | in/out: prebuilt struct |
table | in: MySQL table |
templ_type | in: ROW_MYSQL_WHOLE_ROW or ROW_DRIZZLE_REC_FIELDS |
Definition at line 4260 of file ha_innodb.cc.
References mysql_row_templ_struct::charset, mysql_row_templ_struct::clust_rec_field_no, mysql_row_templ_struct::col_no, dict_table_struct::cols, dict_col_get_clust_pos(), dict_col_get_mbmaxlen(), dict_col_get_mbminlen(), dtype_get_charset_coll(), get_field_offset(), row_prebuilt_struct::hint_need_to_fetch_extra_cols, row_prebuilt_struct::index, mysql_row_templ_struct::is_unsigned, mysql_row_templ_struct::mbmaxlen, mysql_row_templ_struct::mbminlen, dict_col_struct::mtype, mysql_row_templ_struct::mysql_col_len, mysql_row_templ_struct::mysql_col_offset, mysql_row_templ_struct::mysql_length_bytes, mysql_row_templ_struct::mysql_null_bit_mask, mysql_row_templ_struct::mysql_null_byte_offset, row_prebuilt_struct::mysql_prefix_len, row_prebuilt_struct::mysql_template, mysql_row_templ_struct::mysql_type, row_prebuilt_struct::n_template, row_prebuilt_struct::need_to_access_clustered, drizzled::Field::null_bit, row_prebuilt_struct::null_bitmap_len, drizzled::Field::null_ptr, drizzled::Field::pack_length(), dict_col_struct::prtype, row_prebuilt_struct::read_just_key, mysql_row_templ_struct::rec_field_no, row_prebuilt_struct::select_lock_type, dict_index_struct::table, row_prebuilt_struct::table, row_prebuilt_struct::templ_contains_blob, row_prebuilt_struct::template_type, mysql_row_templ_struct::type, and ut_ad.
Referenced by ha_innobase::change_active_index(), ha_innobase::check(), ha_innobase::doInsertRecord(), and ha_innobase::index_read().
|
static |
Checks which fields have changed in a row and stores information of them to an update vector.
uvect | in/out: update vector |
old_row | in: old row in MySQL format |
new_row | in: new row in MySQL format |
table | in: table in MySQL data dictionary |
upd_buff | in: buffer to use |
buff_len | in: buffer length |
prebuilt | in: InnoDB prebuilt struct |
Definition at line 4764 of file ha_innodb.cc.
References dict_table_struct::cols, dfield_copy_data(), dfield_set_null(), dict_col_copy_type(), dict_col_get_clust_pos(), dict_table_is_comp(), upd_field_struct::exp, field_in_record_is_null(), upd_field_struct::field_no, upd_struct::fields, get_field_offset(), upd_struct::info_bits, dict_col_struct::mtype, upd_struct::n_fields, upd_field_struct::new_val, drizzled::Field::null_ptr, upd_field_struct::orig_len, drizzled::Field::pack_length(), row_mysql_read_blob_ref(), row_mysql_read_true_varchar(), row_mysql_store_col_in_innobase_format(), row_prebuilt_struct::table, dfield_struct::type, and ut_a.
Referenced by ha_innobase::doUpdateRecord().
Gets the InnoDB transaction handle for a MySQL Cursor object, creates an InnoDB transaction struct if the corresponding MySQL thread struct still lacks one.
session | in: user thread handle |
Definition at line 1631 of file ha_innodb.cc.
References innobase_trx_allocate(), innobase_trx_init(), mem_analyze_corruption(), session_to_trx(), ut_ad, and ut_error.
Referenced by InnobaseEngine::doCommit(), InnobaseEngine::doCreateTable(), InnobaseEngine::doDropSchema(), InnobaseEngine::doDropTable(), InnobaseEngine::doReleaseSavepoint(), InnobaseEngine::doRenameTable(), InnobaseEngine::doRollback(), InnobaseEngine::doRollbackToSavepoint(), InnobaseEngine::doSetSavepoint(), InnobaseEngine::doStartStatement(), InnobaseEngine::doStartTransaction(), InnobaseEngine::doXaPrepare(), innodb_show_status(), ha_innobase::store_lock(), and ha_innobase::update_session().
UNIV_INTERN int convert_error_code_to_mysql | ( | int | error, |
ulint | flags, | ||
Session * | session | ||
) |
Converts an InnoDB error code to a MySQL error code and also tells to MySQL about a possible transaction rollback inside InnoDB caused by a lock wait timeout or a deadlock.
error | in: InnoDB error code |
flags | in: InnoDB table flags, or 0 |
session | in: user thread handle or NULL |
Definition at line 1101 of file ha_innodb.cc.
References DICT_FK_MAX_RECURSIVE_LOAD, DICT_TF_COMPACT, drizzled::Session::markTransactionForRollback(), page_get_free_space_of_empty(), and row_rollback_on_timeout.
Referenced by create_clustered_index_when_no_primary(), create_index(), create_table_def(), ha_innobase::delete_all_rows(), ha_innobase::discard_or_import_tablespace(), InnobaseEngine::doCreateTable(), ha_innobase::doDeleteRecord(), InnobaseEngine::doDropTable(), ha_innobase::doInsertRecord(), InnobaseEngine::doReleaseSavepoint(), InnobaseEngine::doRenameTable(), InnobaseEngine::doRollback(), InnobaseEngine::doRollbackToSavepoint(), InnobaseEngine::doSetSavepoint(), ha_innobase::doUpdateRecord(), ha_innobase::general_fetch(), ha_innobase::index_read(), innobase_rollback_trx(), and ha_innobase::reset_auto_increment().
|
inlinestatic |
Converts a search mode flag understood by MySQL to a flag understood by InnoDB.
Definition at line 5186 of file ha_innodb.cc.
Referenced by ha_innobase::index_read(), and ha_innobase::records_in_range().
|
static |
Creates an index to an InnoDB table when the user has defined no primary index.
trx | in: InnoDB transaction handle |
flags | in: InnoDB table flags |
table_name | in: table name |
Definition at line 6171 of file ha_innodb.cc.
References convert_error_code_to_mysql(), DICT_CLUSTERED, and row_create_index_for_mysql().
Referenced by InnobaseEngine::doCreateTable().
|
static |
Creates an index in an InnoDB database.
trx | in: InnoDB transaction handle |
form | in: information on table columns and indexes |
flags | in: InnoDB table flags |
table_name | in: table name |
key_num | in: index number |
Definition at line 6044 of file ha_innodb.cc.
References convert_error_code_to_mysql(), DICT_CLUSTERED, DICT_UNIQUE, drizzled::Field::field_name, get_innobase_type_from_mysql_type(), innobase_strcasecmp(), drizzled::Table::key_info, drizzled::Field::pack_length(), row_create_index_for_mysql(), and ut_a.
Referenced by InnobaseEngine::doCreateTable().
|
static |
Creates a table definition to an InnoDB database.
trx | in: InnoDB transaction handle |
form | in: information on table columns and indexes |
table_name | in: table name |
path_of_temp_table | in: if this is a table explicitly created by the user with the TEMPORARY keyword, then this parameter is the dir path where the table should be placed if we create an .ibd file for it (no .ibd extension in the path, though); otherwise this is NULL |
flags | in: table flags |
Definition at line 5885 of file ha_innodb.cc.
References convert_error_code_to_mysql(), dict_table_struct::dir_path_of_temp_table, drizzled::Field::field_name, get_innobase_type_from_mysql_type(), dict_table_struct::heap, innobase_convert_identifier(), mem_heap_strdup(), trx_struct::mysql_thd, dict_table_struct::name, drizzled::Field::null_ptr, drizzled::Field::pack_length(), row_create_table_for_mysql(), trx_commit_for_mysql(), and ut_a.
Referenced by InnobaseEngine::doCreateTable().
Checks if a field in a record is SQL NULL. Uses the record format information in table to track the null bit in record.
table | in: MySQL table object |
field | in: MySQL field object |
record | in: a row in MySQL format |
Definition at line 3789 of file ha_innodb.cc.
References drizzled::Field::null_bit, and drizzled::Field::null_ptr.
Referenced by calc_row_difference().
Gets field offset for a field in a table.
table | in: MySQL table object |
field | in: MySQL field object |
Definition at line 3775 of file ha_innodb.cc.
References drizzled::Field::ptr.
Referenced by build_template(), calc_row_difference(), and ha_innobase::store_key_val_for_row().
UNIV_INTERN ulint get_innobase_type_from_mysql_type | ( | ulint * | unsigned_flag, |
const void * | f | ||
) |
Converts a MySQL type to an InnoDB type. Note that this function returns the 'mtype' of InnoDB. InnoDB differentiates between MySQL's old <= 4.1 VARCHAR and the new true VARCHAR in >= 5.0.3 by the 'prtype'.
unsigned_flag | out: DATA_UNSIGNED if an 'unsigned type'; at least ENUM and SET, and unsigned integer types are 'unsigned types' |
f | in: MySQL Field |
Definition at line 3922 of file ha_innodb.cc.
References ut_error.
Referenced by create_index(), create_table_def(), and innobase_match_index_columns().
|
static |
Handling the shared INNOBASE_SHARE structure that is needed to provide table locking.
Definition at line 8453 of file ha_innodb.cc.
References innodb_idx_translate_struct::array_size, HASH_INSERT, HASH_SEARCH, st_innobase_share::idx_trans_tbl, innodb_idx_translate_struct::index_count, innodb_idx_translate_struct::index_mapping, innobase_share_mutex, st_innobase_share::lock, st_innobase_share::table_name, st_innobase_share::use_count, ut_ad, and ut_fold_string().
Referenced by ha_innobase::doOpen().
|
inlinestatic |
Increments innobase_active_counter and every INNOBASE_WAKE_INTERVALth time calls srv_active_wake_master_thread. This function should be used when a single database operation may introduce a small need for server utility activity, like checkpointing.
Definition at line 1084 of file ha_innodb.cc.
References srv_active_wake_master_thread().
Referenced by ha_innobase::doDeleteRecord(), ha_innobase::doInsertRecord(), and ha_innobase::doUpdateRecord().
|
static |
This function builds a translation table in INNOBASE_SHARE structure for fast index location with mysql array number from its table->key_info structure. This also provides the necessary translation between the key order in mysql key_info and Innodb ib_table->indexes if they are not fully matched with each other. Note we do not have any mutex protecting the translation table building based on the assumption that there is no concurrent index creation/drop and DMLs that requires index lookup. All table handle will be closed before the index creation/drop.
table | in: table in MySQL data dictionary |
ib_table | in: table in Innodb data dictionary |
share | in/out: share structure where index translation table will be constructed in. |
Definition at line 3216 of file ha_innodb.cc.
References innodb_idx_translate_struct::array_size, st_innobase_share::idx_trans_tbl, innodb_idx_translate_struct::index_count, innodb_idx_translate_struct::index_mapping, dict_table_struct::indexes, innobase_match_index_columns(), drizzled::Table::key_info, dict_sys_struct::mutex, ut_a, and UT_LIST_GET_LEN.
Referenced by ha_innobase::doOpen().
UNIV_INTERN void innobase_casedn_str | ( | char * | a | ) |
Makes all characters in a NUL-terminated UTF-8 string lower case.
a | in/out: string to put in lower case |
Definition at line 1338 of file ha_innodb.cc.
Referenced by dict_casedn_str().
|
static |
Commits a transaction in an InnoDB database. in: transaction handle
Commits a transaction in an InnoDB database.
trx | in: transaction handle |
Definition at line 2665 of file ha_innodb.cc.
References trx_struct::conc_state, and trx_commit_for_mysql().
Referenced by InnobaseEngine::doCommit(), InnobaseEngine::doCreateTable(), InnobaseEngine::doDropSchema(), InnobaseEngine::doDropTable(), InnobaseEngine::doRenameTable(), and InnobaseEngine::doXaCommitXid().
UNIV_INTERN void innobase_convert_from_id | ( | const void * | , |
char * | to, | ||
const char * | from, | ||
ulint | len | ||
) |
Converts an identifier to UTF-8.
to | out: converted identifier |
from | in: identifier to convert |
len | in: length of 'to', in bytes |
Definition at line 1311 of file ha_innodb.cc.
UNIV_INTERN void innobase_convert_from_table_id | ( | const void * | , |
char * | to, | ||
const char * | from, | ||
ulint | len | ||
) |
Converts an identifier to a table name.
to | out: converted identifier |
from | in: identifier to convert |
len | in: length of 'to', in bytes |
Definition at line 1297 of file ha_innodb.cc.
|
static |
Convert an SQL identifier to the MySQL system_charset_info (UTF-8) and quote it if needed.
buf | out: buffer for converted identifier |
buflen | in: length of buf, in bytes |
id | in: identifier to convert |
idlen | in: length of id, in bytes |
session | in: MySQL connection thread, or NULL |
file_id | in: TRUE=id is a table or database name; FALSE=id is an UTF-8 string |
Definition at line 1702 of file ha_innodb.cc.
References srv_mysql50_table_name_prefix().
Referenced by create_table_def(), and innobase_convert_name().
UNIV_INTERN char* innobase_convert_name | ( | char * | buf, |
ulint | buflen, | ||
const char * | id, | ||
ulint | idlen, | ||
drizzled::Session * | session, | ||
ibool | table_id | ||
) |
Convert a table or index name to the MySQL system_charset_info (UTF-8) and quote it if needed.
buf | out: buffer for converted identifier |
buflen | in: length of buf, in bytes |
id | in: identifier to convert |
idlen | in: length of id, in bytes |
session | in: MySQL connection thread, or NULL |
table_id | in: TRUE=id is a table or database name; FALSE=id is an index name |
Definition at line 1788 of file ha_innodb.cc.
Referenced by ut_print_namel().
|
static |
Validate the file format name and return its corresponding id.
Validate the file format name and return its corresponding id.
format_name | in: pointer to file format name |
Definition at line 9218 of file ha_innodb.cc.
References DICT_TF_FORMAT_MAX, innobase_strcasecmp(), trx_sys_file_format_id_to_name(), and ut_a.
Referenced by innobase_file_format_validate_and_set(), innobase_init(), and innodb_file_format_name_validate().
|
static |
Validate the file format check config parameters, as a side effect it sets the srv_max_file_format_at_startup variable.
Validate the file format check config parameters, as a side effect it sets the srv_max_file_format_at_startup variable.
format_max | in: parameter value |
Definition at line 9262 of file ha_innodb.cc.
References DICT_TF_FORMAT_MAX, innobase_file_format_name_lookup(), and srv_max_file_format_at_startup.
Referenced by innobase_init(), and innodb_file_format_max_validate().
ulint innobase_get_at_most_n_mbchars | ( | ulint | charset_id, |
ulint | prefix_len, | ||
ulint | data_len, | ||
const char * | str | ||
) |
This function is used to find the storage length in bytes of the first n characters for prefix indexes using a multibyte character set. The function finds charset information and returns length of prefix_len characters in the index field in bytes.
< character length in bytes
< number of characters in prefix
< charset used in the field
charset_id | in: character set id |
prefix_len | in: prefix length in bytes of the index (this has to be divided by mbmaxlen to get the number of CHARACTERS n in the prefix) |
data_len | in: length of the string in bytes |
str | in: character string |
Definition at line 8955 of file ha_innodb.cc.
Referenced by dtype_get_at_most_n_mbchars().
UNIV_INTERN void innobase_get_cset_width | ( | ulint | cset, |
ulint * | mbminlen, | ||
ulint * | mbmaxlen | ||
) |
Get the variable length bounds of the given character set.
cset | in: MySQL charset-collation code |
mbminlen | out: minimum length of a char (in bytes) |
mbmaxlen | out: maximum length of a char (in bytes) |
Definition at line 1270 of file ha_innodb.cc.
|
static |
Get the upper limit of the MySQL integral and floating-point type.
field | in: MySQL field |
Definition at line 3103 of file ha_innodb.cc.
References ut_error.
Referenced by ha_innobase::doInsertRecord(), ha_innobase::doUpdateRecord(), ha_innobase::get_auto_increment(), and ha_innobase::innobase_initialize_autoinc().
|
static |
Calculates the key number used inside MySQL for an Innobase index. We will first check the "index translation table" for a match of the index to get the index number. If there does not exist an "index translation table", or not able to find the index in the translation table, then we will fall back to the traditional way of looping through dict_index_t list to find a match. In this case, we have to take into account if we generated a default clustered index for the table
share | in: share structure for index translation table. |
table | in: table in MySQL data dictionary |
ib_table | in: table in Innodb data dictionary |
index | in: index |
Definition at line 7160 of file ha_innodb.cc.
References st_innobase_share::idx_trans_tbl, innodb_idx_translate_struct::index_count, innodb_idx_translate_struct::index_mapping, drizzled::Table::key_info, dict_index_struct::name, row_table_got_default_clust_index(), dict_index_struct::table, ut_a, and ut_ad.
Referenced by ha_innobase::info().
|
static |
This function uses index translation table to quickly locate the requested index structure. Note we do not have mutex protection for the index translatoin table access, it is based on the assumption that there is no concurrent translation table rebuild (fter create/drop index) and DMLs that require index lookup.
share | in: share structure for index translation table. |
keynr | in: index number for the requested index |
Definition at line 3333 of file ha_innodb.cc.
References st_innobase_share::idx_trans_tbl, innodb_idx_translate_struct::index_count, and innodb_idx_translate_struct::index_mapping.
Referenced by ha_innobase::innobase_get_index().
|
static |
Opens an InnoDB database.
=512
context | in: Drizzle Plugin Context |
Definition at line 2153 of file ha_innodb.cc.
References adaptive_flushing_method_validate(), DICT_TF_FORMAT_MAX, DICT_TF_FORMAT_MIN, innobase_change_buffering_values, innobase_file_format_name_lookup(), innobase_file_format_validate_and_set(), innobase_start_or_create_for_mysql(), innobase_strcasecmp(), innodb_change_buffering_validate(), innodb_file_format_max_validate(), innodb_file_format_name_validate(), os_innodb_umask, read_ahead_validate(), row_rollback_on_timeout, srv_auto_lru_dump, srv_buf_pool_instances, srv_buf_pool_size, srv_file_format, srv_file_per_table, srv_free_paths_and_sizes(), srv_locks_unsafe_for_binlog, srv_max_file_format_at_startup, srv_mysql50_table_name_prefix(), srv_parse_data_file_paths_and_sizes(), srv_parse_log_group_home_dirs(), trx_sys_file_format_id_to_name(), trx_sys_file_format_max_get(), and ut_a.
|
inlinestatic |
Maps a MySQL trx isolation level code to the InnoDB isolation level code
iso | in: MySQL isolation level code |
Definition at line 8079 of file ha_innodb.cc.
References ut_a.
Referenced by InnobaseEngine::doStartStatement().
|
static |
This function checks whether the index column information is consistent between KEY info from mysql and that from innodb index.
key_info | in: Index info from mysql |
index_info | in: Index info from Innodb |
Definition at line 3145 of file ha_innodb.cc.
References dict_field_struct::col, dict_index_struct::fields, get_innobase_type_from_mysql_type(), dict_col_struct::mtype, dict_index_struct::n_fields, and dict_index_struct::n_user_defined_cols.
Referenced by innobase_build_index_translation().
int innobase_mysql_cmp | ( | int | mysql_type, |
uint | charset_number, | ||
const unsigned char * | a, | ||
unsigned int | a_length, | ||
const unsigned char * | b, | ||
unsigned int | b_length | ||
) |
InnoDB uses this function to compare two data fields for which the data type is such that we must use MySQL code to compare them. NOTE that the prototype of this function is in rem0cmp.c in InnoDB source code! If you change this function, remember to update the prototype there!
mysql_type | in: MySQL type |
charset_number | in: number of the charset |
a | in: data field |
a_length | in: data field length, not UNIV_SQL_NULL |
b | in: data field |
Definition at line 3851 of file ha_innodb.cc.
UNIV_INTERN void innobase_mysql_print_thd | ( | FILE * | f, |
drizzled::Session * | in_session, | ||
uint | |||
) |
Prints info of a Session object (== user session thread) to the given file.
f | in: output stream |
in_session | in: pointer to a Drizzle Session object |
Definition at line 1245 of file ha_innodb.cc.
Referenced by trx_print().
UNIV_INTERN int innobase_mysql_tmpfile | ( | void | ) |
Creates a temporary file.
Definition at line 1447 of file ha_innodb.cc.
Referenced by os_file_create_tmpfile().
|
static |
Compute the next autoinc value.
For MySQL replication the autoincrement values can be partitioned among the nodes. The offset is the start or origin of the autoincrement value for a particular node. For n nodes the increment will be n and the offset will be in the interval [1, n]. The formula tries to allocate the next value for a particular node.
Note: This function is also called with increment set to the number of values we want to reserve for multi-value inserts e.g.,
INSERT INTO T VALUES(), (), ();
innobase_next_autoinc() will be called with increment set to to reserve 3 values for the multi-value INSERT above.
current | in: Current value |
increment | in: increment current by |
offset | in: AUTOINC offset |
max_value | in: max value for type |
Definition at line 1518 of file ha_innodb.cc.
References ut_a.
Referenced by ha_innobase::doInsertRecord(), ha_innobase::doUpdateRecord(), ha_innobase::get_auto_increment(), and ha_innobase::innobase_initialize_autoinc().
UNIV_INTERN ulint innobase_raw_format | ( | const char * | data, |
ulint | data_len, | ||
ulint | , | ||
char * | buf, | ||
ulint | buf_size | ||
) |
Formats the raw data in "data" (in InnoDB on-disk format) that is of type DATA_(CHAR|VARCHAR|DRIZZLE|VARDRIZZLE) using "charset_coll" and writes the result to "buf". The result is converted to "system_charset_info". Not more than "buf_size" bytes are written to "buf". The result is always NUL-terminated (provided buf_size > 0) and the number of bytes that were written to "buf" is returned (including the terminating NUL).
data | in: raw data |
data_len | in: raw data length in bytes |
buf | out: output buffer |
buf_size | in: output buffer size in bytes |
Definition at line 1486 of file ha_innodb.cc.
|
inlinestatic |
Reads an unsigned integer value < 64k from 2 bytes, in the little-endian storage format.
buf | in: from where to read |
Definition at line 4017 of file ha_innodb.cc.
Referenced by ha_innobase::cmp_ref().
|
inlinestatic |
Releases possible search latch and InnoDB thread FIFO ticket. These should be released at each SQL statement end, and also when mysqld passes the control to the client. It does no harm to release these also in the middle of an SQL statement.
trx | in: transaction object |
Definition at line 916 of file ha_innodb.cc.
References srv_conc_force_exit_innodb(), and trx_search_latch_release_if_reserved().
Referenced by InnobaseEngine::doReleaseTemporaryLatches(), InnobaseEngine::doRollback(), InnobaseEngine::doRollbackToSavepoint(), InnobaseEngine::doSetSavepoint(), InnobaseEngine::doStartTransaction(), InnobaseEngine::doXaPrepare(), innobase_rollback_trx(), and innodb_show_status().
|
static |
Renames an InnoDB table.
trx | in: transaction |
lock_and_commit | in: TRUE=lock data dictionary and commit |
Definition at line 6814 of file ha_innodb.cc.
References log_buffer_flush_to_disk(), row_mysql_unlock_data_dictionary(), row_rename_table_for_mysql(), and ut_print_name().
Referenced by InnobaseEngine::doRenameTable().
|
static |
Rolls back a transaction
trx | in: transaction |
Definition at line 2881 of file ha_innodb.cc.
References convert_error_code_to_mysql(), innobase_release_stat_resources(), row_unlock_table_autoinc_for_mysql(), and trx_rollback_for_mysql().
Referenced by InnobaseEngine::close_connection(), and InnobaseEngine::doXaRollbackXid().
UNIV_INTERN int innobase_strcasecmp | ( | const char * | a, |
const char * | b | ||
) |
Compares NUL-terminated UTF-8 strings case insensitively.
a | in: first string to compare |
b | in: second string to compare |
Definition at line 1326 of file ha_innodb.cc.
Referenced by create_index(), dict_col_name_is_reserved(), dict_table_get_index_by_max_id(), innobase_file_format_name_lookup(), innobase_init(), and innodb_change_buffering_validate().
Allocates an InnoDB transaction for a MySQL Cursor object.
session | in: user thread handle |
Definition at line 1606 of file ha_innodb.cc.
References innobase_trx_init(), trx_struct::mysql_thd, and trx_allocate_for_mysql().
Referenced by check_trx_exists(), InnobaseEngine::doCreateTable(), InnobaseEngine::doDropSchema(), InnobaseEngine::doDropTable(), and InnobaseEngine::doRenameTable().
Initializes some fields in an InnoDB transaction object.
session | in: user thread handle |
trx | in/out: InnoDB transaction handle |
Definition at line 1585 of file ha_innodb.cc.
References trx_struct::mysql_thd.
Referenced by check_trx_exists(), and innobase_trx_allocate().
|
inlinestatic |
Writes an unsigned integer value < 64k to 2 bytes, in the little-endian storage format.
buf | in: where to store |
val | in: value to write, must be < 64k |
Definition at line 4000 of file ha_innodb.cc.
References ut_a.
Referenced by ha_innobase::store_key_val_for_row().
Check if it is a valid value of innodb_change_buffering. This function is registered as a callback with MySQL.
Definition at line 2023 of file ha_innodb.cc.
References innobase_change_buffering_values, innobase_strcasecmp(), and drizzled::Item::str_value.
Referenced by innobase_init().
Check if valid argument to innodb_file_format_max. This function is registered as a callback with MySQL.
session | in: thread handle |
Definition at line 2056 of file ha_innodb.cc.
References DICT_TF_FORMAT_MAX, innobase_file_format_validate_and_set(), drizzled::Item::str_value, trx_sys_file_format_id_to_name(), and trx_sys_file_format_max_set().
Referenced by innobase_init().
Check if it is a valid file format. This function is registered as a callback with MySQL.
Definition at line 1991 of file ha_innodb.cc.
References DICT_TF_FORMAT_MAX, innobase_file_format_name_lookup(), drizzled::Item::str_value, and trx_sys_file_format_id_to_name().
Referenced by innobase_init().
|
static |
Implements the SHOW MUTEX STATUS command.
engine | in: the innodb StorageEngine |
session | in: the MySQL query thread of the caller |
stat_print | in: function for printing statistics |
Definition at line 8259 of file ha_innodb.cc.
References buf_pool_is_block_lock, buf_pool_is_block_mutex, rw_lock_struct::cfile_name, mutex_struct::cfile_name, rw_lock_struct::cline, mutex_struct::cline, rw_lock_struct::count_os_wait, mutex_struct::count_os_wait, mutex_list, mutex_list_mutex, UT_LIST_GET_FIRST, and UT_LIST_GET_NEXT.
|
static |
Implements the SHOW INNODB STATUS command. Sends the output of the InnoDB Monitor to the client.
engine | in: the innodb StorageEngine |
session | in: the MySQL query thread of the caller |
Definition at line 8173 of file ha_innodb.cc.
References check_trx_exists(), innobase_release_stat_resources(), os_file_set_eof(), and srv_printf_innodb_monitor().
|
inlinestatic |
Save some CPU by testing the value of srv_thread_concurrency in inline functions.
trx | in: transaction handle |
Definition at line 880 of file ha_innodb.cc.
References srv_conc_enter_innodb().
Referenced by ha_innobase::doDeleteRecord(), ha_innobase::doInsertRecord(), ha_innobase::doUpdateRecord(), ha_innobase::general_fetch(), and ha_innobase::index_read().
|
inlinestatic |
Save some CPU by testing the value of srv_thread_concurrency in inline functions.
trx | in: transaction handle |
Definition at line 897 of file ha_innodb.cc.
References srv_conc_exit_innodb().
Referenced by ha_innobase::doDeleteRecord(), ha_innobase::doInsertRecord(), ha_innobase::doUpdateRecord(), ha_innobase::general_fetch(), and ha_innobase::index_read().
Check if argument is a valid value for srv_read_ahead and set it. This function is registered as a callback with MySQL.
Definition at line 2110 of file ha_innodb.cc.
References drizzled::Item::str_value.
Referenced by innobase_init().
|
static |
Resets some fields of a prebuilt struct. The template is used in fast retrieval of just those column values MySQL needs in its processing.
prebuilt | in/out: prebuilt struct |
Definition at line 1869 of file ha_innodb.cc.
References row_prebuilt_struct::keep_other_fields_on_keyread, and row_prebuilt_struct::read_just_key.
Referenced by ha_innobase::external_lock(), ha_innobase::extra(), and ha_innobase::reset().
Obtain the InnoDB transaction of a MySQL thread.
session | in: Drizzle Session |
Definition at line 1010 of file ha_innodb.cc.
Referenced by ReplicationLog::apply(), ha_innobase::can_switch_engines(), ha_innobase::change_active_index(), ha_innobase::check(), check_trx_exists(), InnobaseEngine::close_connection(), ha_innobase::discard_or_import_tablespace(), ha_innobase::doDeleteRecord(), ha_innobase::doInsertRecord(), InnobaseEngine::doReleaseTemporaryLatches(), ha_innobase::doUpdateRecord(), ha_innobase::extra(), ha_innobase::general_fetch(), ha_innobase::index_read(), ha_innobase::innobase_initialize_autoinc(), ha_innobase::position(), ha_innobase::records_in_range(), ha_innobase::rnd_pos(), and ha_innobase::try_semi_consistent_read().
|
inlinestatic |
Sets a field in a record to SQL NULL. Uses the record format information in table to track the null bit in record.
table | in: MySQL table object |
field | in: MySQL field object |
record | in: a row in MySQL format |
Definition at line 3818 of file ha_innodb.cc.
References drizzled::Field::null_bit, and drizzled::Field::null_ptr.
UNIV_INTERN ibool thd_has_edited_nontrans_tables | ( | drizzled::Session * | session | ) |
Returns true if the transaction this thread is processing has edited non-transactional tables. Used by the deadlock detector when deciding which transaction to rollback in case of a deadlock - we try to avoid rolling back transactions that have edited non-transactional tables.
DRIZZLE: Note, we didn't change this name to avoid more ifdef forking in non-Cursor code.
session | in: thread handle (Session*) |
Definition at line 942 of file ha_innodb.cc.
Referenced by trx_weight_ge().
UNIV_INTERN ibool thd_is_replication_slave_thread | ( | drizzled::Session * | ) |
Returns true if the thread is the replication thread on the slave server. Used in srv_conc_enter_innodb() to determine if the thread should be allowed to enter InnoDB - the replication thread is treated differently than other threads. Also used in srv_conc_force_exit_innodb().
DRIZZLE: Note, we didn't change this name to avoid more ifdef forking in non-Cursor code.
Definition at line 868 of file ha_innodb.cc.
Referenced by srv_conc_enter_innodb(), and srv_conc_force_exit_innodb().
UNIV_INTERN ibool thd_is_select | ( | const drizzled::Session * | session | ) |
Returns true if the thread is executing a SELECT statement.
session | in: thread handle (Session*) |
Definition at line 954 of file ha_innodb.cc.
Referenced by row_search_for_mysql().
UNIV_INTERN ulong thd_lock_wait_timeout | ( | drizzled::Session * | ) |
Returns the lock wait timeout for the current connection.
Definition at line 981 of file ha_innodb.cc.
Referenced by srv_lock_timeout_thread(), and srv_suspend_mysql_thread().
UNIV_INTERN void thd_set_lock_wait_time | ( | drizzled::Session * | in_session, |
ulint | value | ||
) |
Set the time waited for the lock for the current query.
in_session | in: thread handle (THD*) |
value | in: time waited for the lock |
Definition at line 996 of file ha_innodb.cc.
Referenced by srv_suspend_mysql_thread().
UNIV_INTERN ibool thd_supports_xa | ( | drizzled::Session * | ) |
Returns true if the thread supports XA, global value of innodb_supports_xa if session is NULL.
Definition at line 967 of file ha_innodb.cc.
Referenced by trx_start().
UNIV_INTERN ibool trx_is_interrupted | ( | trx_t * | trx | ) |
Determines if the currently running transaction has been interrupted.
trx | in: transaction |
Definition at line 1844 of file ha_innodb.cc.
Referenced by btr_validate_index(), row_check_index_for_mysql(), srv_lock_timeout_thread(), and srv_suspend_mysql_thread().
UNIV_INTERN ibool trx_is_strict | ( | trx_t * | trx | ) |
Determines if the currently running transaction is in strict mode.
trx | in: transaction |
Definition at line 1856 of file ha_innodb.cc.
Referenced by dict_create_index_step().
|
static |
Allowed values of adaptive_flushing_method
Definition at line 339 of file ha_innodb.cc.
|
static |
Definition at line 350 of file ha_innodb.cc.
|
static |
to force correct commit order in binlog
Definition at line 151 of file ha_innodb.cc.
Referenced by InnobaseEngine::doCommit().
|
static |
Definition at line 362 of file ha_innodb.cc.
|
static |
Allowed values of innodb_change_buffering
Definition at line 310 of file ha_innodb.cc.
Referenced by innobase_init(), and innodb_change_buffering_validate().
|
static |
to protect innobase_open_files
Definition at line 148 of file ha_innodb.cc.
Referenced by get_share().
|
static |
Allowed values of read_ahead
Definition at line 320 of file ha_innodb.cc.
|
static |
Definition at line 333 of file ha_innodb.cc.