MySQL 5.6.14 Source Code Document
|
#include <sql_table.h>
#include <sql_acl.h>
#include <debug_sync.h>
#include <my_base.h>
#include <mysys_err.h>
#include <mysql/innodb_priv.h>
#include "univ.i"
#include "buf0dump.h"
#include "buf0lru.h"
#include "buf0flu.h"
#include "buf0dblwr.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 "rem0types.h"
#include "row0ins.h"
#include "row0mysql.h"
#include "row0sel.h"
#include "row0upd.h"
#include "log0log.h"
#include "lock0lock.h"
#include "dict0crea.h"
#include "btr0cur.h"
#include "btr0btr.h"
#include "fsp0fsp.h"
#include "sync0sync.h"
#include "fil0fil.h"
#include "trx0xa.h"
#include "row0merge.h"
#include "dict0boot.h"
#include "dict0stats.h"
#include "dict0stats_bg.h"
#include "ha_prototypes.h"
#include "ut0mem.h"
#include "ibuf0ibuf.h"
#include "dict0dict.h"
#include "srv0mon.h"
#include "api0api.h"
#include "api0misc.h"
#include "pars0pars.h"
#include "fts0fts.h"
#include "fts0types.h"
#include "row0import.h"
#include "row0quiesce.h"
#include "fts0priv.h"
#include "page0zip.h"
#include "ha_innodb.h"
#include "i_s.h"
Go to the source code of this file.
Macros | |
#define | MYSQL_PLUGIN_IMPORT /* nothing */ |
#define | INSIDE_HA_INNOBASE_CC |
#define | EQ_CURRENT_THD(thd) ((thd) == current_thd) |
#define | INNOBASE_WAKE_INTERVAL 32 |
#define | normalize_table_name(norm_name, name) normalize_table_name_low(norm_name, name, FALSE) |
#define | true_word_char(c, ch) ((c) & (_MY_U | _MY_L | _MY_NMR) || (ch) == '_') |
#define | misc_word_char(X) 0 |
#define | IS_MAGIC_TABLE_AND_USER_DENIED_ACCESS(table_name, thd) |
#define | CHECK_ERROR_ROW_TYPE_NEEDS_FILE_PER_TABLE(use_tablespace) |
#define | CHECK_ERROR_ROW_TYPE_NEEDS_GT_ANTELOPE |
#define | STATS_SAMPLE_PAGES_DEPRECATED_MSG |
#define | innodb_srv_buf_dump_filename_validate NULL |
Functions | |
enum_tx_isolation | thd_get_trx_isolation (const THD *thd) |
int | innodb_page_size_validate (ulong page_size) |
UNIV_INTERN ibool | thd_is_replication_slave_thread (THD *thd) |
UNIV_INTERN enum durability_properties | thd_requested_durability (const THD *thd) |
UNIV_INTERN ibool | thd_trx_is_read_only (THD *thd) |
UNIV_INTERN ibool | thd_trx_is_auto_commit (THD *thd) |
UNIV_INTERN const char * | server_get_hostname () |
UNIV_INTERN ibool | thd_has_edited_nontrans_tables (THD *thd) |
UNIV_INTERN ibool | thd_is_select (const THD *thd) |
UNIV_INTERN ibool | thd_supports_xa (THD *thd) |
UNIV_INTERN ulong | thd_lock_wait_timeout (THD *thd) |
UNIV_INTERN void | thd_set_lock_wait_time (THD *thd, ulint value) |
__attribute__ ((warn_unused_result, nonnull)) static inline trx_t *&thd_to_trx(THD *thd) | |
UNIV_INTERN void | innobase_mysql_print_thd (FILE *f, THD *thd, uint max_query_len) |
UNIV_INTERN const char * | innobase_get_err_msg (int error_code) |
UNIV_INTERN void | innobase_get_cset_width (ulint cset, ulint *mbminlen, ulint *mbmaxlen) |
UNIV_INTERN void | innobase_convert_from_table_id (struct charset_info_st *cs, char *to, const char *from, ulint len) |
UNIV_INTERN my_bool | innobase_check_identifier_length (const char *id) |
UNIV_INTERN void | innobase_convert_from_id (struct charset_info_st *cs, char *to, const char *from, ulint len) |
UNIV_INTERN int | innobase_strcasecmp (const char *a, const char *b) |
UNIV_INTERN int | innobase_wildcasecmp (const char *a, const char *b) |
UNIV_INTERN const char * | innobase_basename (const char *path_name) |
UNIV_INTERN void | innobase_casedn_str (char *a) |
UNIV_INTERN struct charset_info_st * | innobase_get_charset (THD *mysql_thd) |
UNIV_INTERN const char * | innobase_get_stmt (THD *thd, size_t *length) |
UNIV_INTERN ulint | innobase_get_table_cache_size (void) |
UNIV_INTERN ulint | innobase_get_lower_case_table_names (void) |
UNIV_INTERN int | innobase_mysql_tmpfile (void) |
UNIV_INTERN ulint | innobase_convert_string (void *to, ulint to_length, CHARSET_INFO *to_cs, const void *from, ulint from_length, CHARSET_INFO *from_cs, uint *errors) |
UNIV_INTERN ulint | innobase_raw_format (const char *data, ulint data_len, ulint charset_coll, char *buf, ulint buf_size) |
UNIV_INTERN ulonglong | innobase_next_autoinc (ulonglong current, ulonglong need, ulonglong step, ulonglong offset, ulonglong max_value) |
UNIV_INTERN trx_t * | innobase_trx_allocate (THD *thd) |
UNIV_INTERN void | innobase_copy_frm_flags_from_create_info (dict_table_t *innodb_table, const HA_CREATE_INFO *create_info) |
UNIV_INTERN void | innobase_copy_frm_flags_from_table_share (dict_table_t *innodb_table, const TABLE_SHARE *table_share) |
UNIV_INTERN void | innobase_invalidate_query_cache (trx_t *trx, const char *full_name, ulint full_name_len) |
UNIV_INTERN char * | innobase_convert_name (char *buf, ulint buflen, const char *id, ulint idlen, THD *thd, ibool table_id) |
UNIV_INTERN void | innobase_format_name (char *buf, ulint buflen, const char *name, ibool is_index_name) |
UNIV_INTERN ibool | trx_is_interrupted (const trx_t *trx) |
UNIV_INTERN ibool | trx_is_strict (trx_t *trx) |
UNIV_INLINE ibool | thd_is_strict (THD *thd) |
UNIV_INTERN int | innobase_close_thd (THD *thd) |
UNIV_INTERN ulonglong | innobase_get_int_col_max_value (const Field *field) |
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 CHARSET_INFO * | innobase_get_fts_charset (int mysql_type, uint charset_number) |
UNIV_INTERN int | innobase_mysql_cmp_prefix (int mysql_type, uint charset_number, const unsigned char *a, unsigned int a_length, const unsigned char *b, unsigned int b_length) |
UNIV_INTERN int | innobase_fts_text_cmp (const void *cs, const void *p1, const void *p2) |
UNIV_INTERN int | innobase_fts_text_case_cmp (const void *cs, const void *p1, const void *p2) |
UNIV_INTERN ulint | innobase_strnxfrm (const CHARSET_INFO *cs, const uchar *str, const ulint len) |
UNIV_INTERN int | innobase_fts_text_cmp_prefix (const void *cs, const void *p1, const void *p2) |
UNIV_INTERN int | innobase_fts_string_cmp (const void *cs, const void *p1, const void *p2) |
UNIV_INTERN size_t | innobase_fts_casedn_str (CHARSET_INFO *cs, char *src, size_t src_len, char *dst, size_t dst_len) |
UNIV_INTERN ulint | innobase_mysql_fts_get_token (CHARSET_INFO *cs, const byte *start, const byte *end, fts_string_t *token, ulint *offset) |
UNIV_INTERN ulint | get_innobase_type_from_mysql_type (ulint *unsigned_flag, const void *f) |
bool | build_template_needs_field_in_icp (const dict_index_t *index, const row_prebuilt_t *prebuilt, bool contains, ulint i) |
mysql_declare_plugin (innobase) | |
UNIV_INTERN enum icp_result | innobase_index_cond (void *file) |
UNIV_INTERN void | ib_senderrf (THD *thd, ib_log_level_t level, ib_uint32_t code,...) |
UNIV_INTERN void | ib_errf (THD *thd, ib_log_level_t level, ib_uint32_t code, const char *format,...) |
UNIV_INTERN void | ib_logf (ib_log_level_t level, const char *format,...) |
uint | innobase_convert_to_filename_charset (char *to, const char *from, ulint len) |
uint | innobase_convert_to_system_charset (char *to, const char *from, ulint len, uint *errors) |
Variables | |
struct _ft_vft | ft_vft_result |
struct _ft_vft_ext | ft_vft_ext_result |
ib_cb_t | innodb_api_cb [] |
const char | innobase_index_reserve_name [] = "GEN_CLUST_INDEX" |
static const TABLE * | form |
static const TABLE const char * | table_name |
static const TABLE const char const char * | temp_path |
static const TABLE const char const char const char * | remote_path |
static const TABLE const char const char const char ulint | flags |
i_s_innodb_trx | |
i_s_innodb_locks | |
i_s_innodb_lock_waits | |
i_s_innodb_cmp | |
i_s_innodb_cmp_reset | |
i_s_innodb_cmpmem | |
i_s_innodb_cmpmem_reset | |
i_s_innodb_cmp_per_index | |
i_s_innodb_cmp_per_index_reset | |
i_s_innodb_buffer_page | |
i_s_innodb_buffer_page_lru | |
i_s_innodb_buffer_stats | |
i_s_innodb_metrics | |
i_s_innodb_ft_default_stopword | |
i_s_innodb_ft_deleted | |
i_s_innodb_ft_being_deleted | |
i_s_innodb_ft_config | |
i_s_innodb_ft_index_cache | |
i_s_innodb_ft_index_table | |
i_s_innodb_sys_tables | |
i_s_innodb_sys_tablestats | |
i_s_innodb_sys_indexes | |
i_s_innodb_sys_columns | |
i_s_innodb_sys_fields | |
i_s_innodb_sys_foreign | |
i_s_innodb_sys_foreign_cols | |
i_s_innodb_sys_tablespaces | |
i_s_innodb_sys_datafiles | mysql_declare_plugin_end |
Definition in file ha_innodb.cc.
#define CHECK_ERROR_ROW_TYPE_NEEDS_FILE_PER_TABLE | ( | use_tablespace | ) |
#define CHECK_ERROR_ROW_TYPE_NEEDS_GT_ANTELOPE |
#define IS_MAGIC_TABLE_AND_USER_DENIED_ACCESS | ( | table_name, | |
thd | |||
) |
Definition at line 8351 of file ha_innodb.cc.
Always normalize table name to lower case on Windows
Definition at line 420 of file ha_innodb.cc.
#define STATS_SAMPLE_PAGES_DEPRECATED_MSG |
__attribute__ | ( | (warn_unused_result, nonnull) | ) |
Obtain the InnoDB transaction of a MySQL thread.
< in: MySQL thread
Definition at line 1286 of file ha_innodb.cc.
|
inline |
Determines if a field is needed in a prebuilt struct 'template'.
index | in: InnoDB index |
prebuilt | in: row fetch template |
contains | in: whether the index contains column i |
i | in: column number |
Definition at line 5959 of file ha_innodb.cc.
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 5472 of file ha_innodb.cc.
UNIV_INTERN void ib_errf | ( | THD * | thd, |
ib_log_level_t | level, | ||
ib_uint32_t | code, | ||
const char * | format, | ||
... | |||
) |
Use this when the args are first converted to a formatted string and then passed to the format string from errmsg-utf8.txt. The error message format must be: "Some string ... %s".
Push a warning message to the client, it is a wrapper around:
void push_warning_printf( THD *thd, Sql_condition::enum_warning_level level, uint code, const char *format, ...);
thd | in/out: session |
level | in: warning level |
code | MySQL error code |
format | printf format |
Definition at line 16813 of file ha_innodb.cc.
UNIV_INTERN void ib_logf | ( | ib_log_level_t | level, |
const char * | format, | ||
... | |||
) |
Write a message to the MySQL log, prefixed with "InnoDB: "
level | in: warning level |
format | printf format |
Definition at line 16855 of file ha_innodb.cc.
UNIV_INTERN void ib_senderrf | ( | THD * | thd, |
ib_log_level_t | level, | ||
ib_uint32_t | code, | ||
... | |||
) |
Use this when the args are passed to the format string from errmsg-utf8.txt directly as is.
Push a warning message to the client, it is a wrapper around:
void push_warning_printf( THD *thd, Sql_condition::enum_warning_level level, uint code, const char *format, ...);
thd | in/out: session |
level | in: warning level |
code | MySQL error code |
Definition at line 16735 of file ha_innodb.cc.
UNIV_INTERN const char* innobase_basename | ( | const char * | path_name | ) |
Strip dir name from a full path name and return only the file name
path_name | in: full path name |
Definition at line 1688 of file ha_innodb.cc.
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 1701 of file ha_innodb.cc.
UNIV_INTERN int innobase_close_thd | ( | THD * | thd | ) |
Frees a possible InnoDB trx object associated with the current THD.
thd | in: handle to the MySQL thread of the user whose resources should be free'd |
Definition at line 3826 of file ha_innodb.cc.
UNIV_INTERN void innobase_convert_from_id | ( | struct charset_info_st * | cs, |
char * | to, | ||
const char * | from, | ||
ulint | len | ||
) |
Converts an identifier to UTF-8.
cs | in: the 'from' character set |
to | out: converted identifier |
from | in: identifier to convert |
len | in: length of 'to', in bytes |
Definition at line 1634 of file ha_innodb.cc.
UNIV_INTERN void innobase_convert_from_table_id | ( | struct charset_info_st * | cs, |
char * | to, | ||
const char * | from, | ||
ulint | len | ||
) |
Converts an identifier to a table name.
cs | in: the 'from' character set |
to | out: converted identifier |
from | in: identifier to convert |
len | in: length of 'to', in bytes |
Definition at line 1593 of file ha_innodb.cc.
UNIV_INTERN char* innobase_convert_name | ( | char * | buf, |
ulint | buflen, | ||
const char * | id, | ||
ulint | idlen, | ||
THD * | thd, | ||
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 |
thd | 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 2557 of file ha_innodb.cc.
UNIV_INTERN ulint innobase_convert_string | ( | void * | to, |
ulint | to_length, | ||
CHARSET_INFO * | to_cs, | ||
const void * | from, | ||
ulint | from_length, | ||
CHARSET_INFO * | from_cs, | ||
uint * | errors | ||
) |
Wrapper around MySQL's copy_and_convert function.
to | out: converted string |
to_length | in: number of bytes reserved for the converted string |
to_cs | in: character set to convert to |
from | in: string to convert |
from_length | in: number of bytes to convert |
from_cs | in: character set to convert from |
errors | out: number of errors encountered during the conversion |
Definition at line 1833 of file ha_innodb.cc.
UNIV_INTERN void innobase_copy_frm_flags_from_create_info | ( | dict_table_t * | innodb_table, |
const HA_CREATE_INFO * | create_info | ||
) |
Copy table flags from MySQL's HA_CREATE_INFO into an InnoDB table object. Those flags are stored in .frm file and end up in the MySQL table object, but are frequently used inside InnoDB so we keep their copies into the InnoDB table object.
innodb_table | in/out: InnoDB table |
create_info | in: create info |
Definition at line 2120 of file ha_innodb.cc.
UNIV_INTERN void innobase_copy_frm_flags_from_table_share | ( | dict_table_t * | innodb_table, |
const TABLE_SHARE * | table_share | ||
) |
Copy table flags from MySQL's TABLE_SHARE into an InnoDB table object. Those flags are stored in .frm file and end up in the MySQL table object, but are frequently used inside InnoDB so we keep their copies into the InnoDB table object.
innodb_table | in/out: InnoDB table |
table_share | in: table share |
Definition at line 2156 of file ha_innodb.cc.
UNIV_INTERN void innobase_format_name | ( | char * | buf, |
ulint | buflen, | ||
const char * | name, | ||
ibool | is_index_name | ||
) |
A wrapper function of innobase_convert_name(), 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 |
name | in: index or table name to format |
is_index_name | in: index name |
Definition at line 2613 of file ha_innodb.cc.
UNIV_INTERN size_t innobase_fts_casedn_str | ( | CHARSET_INFO * | cs, |
char * | src, | ||
size_t | src_len, | ||
char * | dst, | ||
size_t | dst_len | ||
) |
Makes all characters in a string lower case.
cs | in: Character set |
src | in: string to put in lower case |
src_len | in: input string length |
dst | in: buffer for result string |
dst_len | in: buffer size |
Definition at line 5370 of file ha_innodb.cc.
UNIV_INTERN int innobase_fts_string_cmp | ( | const void * | cs, |
const void * | p1, | ||
const void * | p2 | ||
) |
compare two character string according to their charset.
cs | in: Character set |
p1 | in: key |
p2 | in: node |
Definition at line 5353 of file ha_innodb.cc.
UNIV_INTERN int innobase_fts_text_case_cmp | ( | const void * | cs, |
const void * | p1, | ||
const void * | p2 | ||
) |
compare two character string case insensitively according to their charset.
cs | in: Character set |
p1 | in: key |
p2 | in: node |
Definition at line 5280 of file ha_innodb.cc.
UNIV_INTERN int innobase_fts_text_cmp | ( | const void * | cs, |
const void * | p1, | ||
const void * | p2 | ||
) |
compare two character string according to their charset.
cs | in: Character set |
p1 | in: key |
p2 | in: node |
Definition at line 5263 of file ha_innodb.cc.
UNIV_INTERN int innobase_fts_text_cmp_prefix | ( | const void * | cs, |
const void * | p1, | ||
const void * | p2 | ||
) |
compare two character string according to their charset.
cs | in: Character set |
p1 | in: prefix key |
p2 | in: value to compare |
Definition at line 5331 of file ha_innodb.cc.
|
read |
Determines the connection character set.
mysql_thd | in: MySQL thread handle |
Definition at line 1713 of file ha_innodb.cc.
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 1550 of file ha_innodb.cc.
UNIV_INTERN const char* innobase_get_err_msg | ( | int | error_code | ) |
Get the error message format string.
error_code | in: MySQL error code |
Definition at line 1539 of file ha_innodb.cc.
UNIV_INTERN CHARSET_INFO* innobase_get_fts_charset | ( | int | mysql_type, |
uint | charset_number | ||
) |
Get the next token from the given string and store it in *token.
mysql_type | in: MySQL type |
charset_number | in: number of the charset |
Definition at line 5182 of file ha_innodb.cc.
UNIV_INTERN ulonglong innobase_get_int_col_max_value | ( | const Field * | field | ) |
Get the upper limit of the MySQL integral and floating-point type.
field | in: MySQL field |
Definition at line 4241 of file ha_innodb.cc.
UNIV_INTERN ulint innobase_get_lower_case_table_names | ( | void | ) |
Get the current setting of the lower_case_table_names global parameter from mysqld.cc. We do a dirty read because for one there is no synchronization object and secondly there is little harm in doing so even if we get a torn read.
Definition at line 1758 of file ha_innodb.cc.
UNIV_INTERN const char* innobase_get_stmt | ( | THD * | thd, |
size_t * | length | ||
) |
Determines the current SQL statement.
thd | in: MySQL thread handle |
length | out: length of the SQL statement |
Definition at line 1725 of file ha_innodb.cc.
UNIV_INTERN ulint innobase_get_table_cache_size | ( | void | ) |
Get the current setting of the table_def_size global parameter. We do a dirty read because for one there is no synchronization object and secondly there is little harm in doing so even if we get a torn read.
Definition at line 1744 of file ha_innodb.cc.
UNIV_INTERN enum icp_result innobase_index_cond | ( | void * | file | ) |
Index Condition Pushdown interface implementation InnoDB index push-down condition check
file | in/out: pointer to ha_innobase |
Definition at line 16681 of file ha_innodb.cc.
UNIV_INTERN void innobase_invalidate_query_cache | ( | trx_t * | trx, |
const char * | full_name, | ||
ulint | full_name_len | ||
) |
Invalidates the MySQL query cache for the table.
trx | in: transaction which modifies the table |
full_name | in: concatenation of database name, null char NUL, table name, null char NUL; NOTE that in Windows this is always in LOWER CASE! |
full_name_len | in: full name length where also the null chars count |
Definition at line 2441 of file ha_innodb.cc.
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 | ||
) |
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.cc 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 |
b_length | in: data field length, not UNIV_SQL_NULL |
Definition at line 5104 of file ha_innodb.cc.
UNIV_INTERN int innobase_mysql_cmp_prefix | ( | 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 |
b_length | in: data field length, not UNIV_SQL_NULL |
Definition at line 5238 of file ha_innodb.cc.
UNIV_INTERN ulint innobase_mysql_fts_get_token | ( | CHARSET_INFO * | cs, |
const byte * | start, | ||
const byte * | end, | ||
fts_string_t * | token, | ||
ulint * | offset | ||
) |
Get the next token from the given string and store it in *token. It is mostly copied from MyISAM's doc parsing function ft_simple_get_word()
cs | in: Character set |
start | in: start of text |
end | in: one character past end of text |
token | out: token's text |
offset | out: offset to token, measured as characters from 'start' |
Definition at line 5399 of file ha_innodb.cc.
UNIV_INTERN void innobase_mysql_print_thd | ( | FILE * | f, |
THD * | thd, | ||
uint | max_query_len | ||
) |
Prints info of a THD object (== user session thread) to the given file.
f | in: output stream |
thd | in: MySQL THD object |
max_query_len | in: max query length to print, or 0 to use the default max length |
Definition at line 1520 of file ha_innodb.cc.
UNIV_INTERN int innobase_mysql_tmpfile | ( | void | ) |
Creates a temporary file.
Definition at line 1769 of file ha_innodb.cc.
UNIV_INTERN ulonglong innobase_next_autoinc | ( | ulonglong | current, |
ulonglong | need, | ||
ulonglong | step, | ||
ulonglong | offset, | ||
ulonglong | max_value | ||
) |
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 3 where autoinc_lock_mode != TRADITIONAL because we want to reserve 3 values for the multi-value INSERT above.
current | in: Current value |
need | in: count of values needed |
step | in: AUTOINC increment step |
offset | in: AUTOINC offset |
max_value | in: max value for type |
Definition at line 1910 of file ha_innodb.cc.
UNIV_INTERN ulint innobase_raw_format | ( | const char * | data, |
ulint | data_len, | ||
ulint | charset_coll, | ||
char * | buf, | ||
ulint | buf_size | ||
) |
Formats the raw data in "data" (in InnoDB on-disk format) that is of type DATA_(CHAR|VARCHAR|MYSQL|VARMYSQL) 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 |
charset_coll | in: charset collation |
buf | out: output buffer |
buf_size | in: output buffer size in bytes |
Definition at line 1863 of file ha_innodb.cc.
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 1651 of file ha_innodb.cc.
UNIV_INTERN ulint innobase_strnxfrm | ( | const CHARSET_INFO * | cs, |
const uchar * | str, | ||
const ulint | len | ||
) |
Get the first character's code position for FTS index partition.
cs | in: Character set |
str | in: string |
len | in: string length |
Definition at line 5302 of file ha_innodb.cc.
UNIV_INTERN trx_t* innobase_trx_allocate | ( | THD * | thd | ) |
Allocates an InnoDB transaction for a MySQL handler object for DML.
thd | in: user thread handle |
Definition at line 2018 of file ha_innodb.cc.
UNIV_INTERN int innobase_wildcasecmp | ( | const char * | a, |
const char * | b | ||
) |
Compares NUL-terminated UTF-8 strings case insensitively. The second string contains wildcards.
a | in: string to compare |
b | in: wildcard string to compare |
Definition at line 1675 of file ha_innodb.cc.
|
inline |
Check that a page_size is correct for InnoDB. If correct, set the associated page_size_shift which is the power of 2 for this page size.
page_size | in: Page Size to evaluate |
Definition at line 1055 of file ha_innodb.cc.
UNIV_INTERN const char* server_get_hostname | ( | ) |
Returns the NUL terminated value of glob_hostname.
Definition at line 1207 of file ha_innodb.cc.
UNIV_INTERN ibool thd_has_edited_nontrans_tables | ( | THD * | thd | ) |
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.
thd | in: thread handle |
Definition at line 1221 of file ha_innodb.cc.
UNIV_INTERN ibool thd_is_replication_slave_thread | ( | THD * | thd | ) |
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().
thd | in: thread handle |
Definition at line 1083 of file ha_innodb.cc.
UNIV_INTERN ibool thd_is_select | ( | const THD * | thd | ) |
Returns true if the thread is executing a SELECT statement.
thd | in: thread handle |
Definition at line 1233 of file ha_innodb.cc.
UNIV_INLINE ibool thd_is_strict | ( | THD * | thd | ) |
Determines if the current MySQL thread is running in strict mode. If thd==NULL, THDVAR returns the global value of innodb-strict-mode.
thd | in: MySQL thread descriptor |
Definition at line 2660 of file ha_innodb.cc.
UNIV_INTERN ulong thd_lock_wait_timeout | ( | THD * | thd | ) |
Returns the lock wait timeout for the current connection.
thd | in: thread handle, or NULL to query the global innodb_lock_wait_timeout |
Definition at line 1259 of file ha_innodb.cc.
UNIV_INTERN enum durability_properties thd_requested_durability | ( | const THD * | thd | ) |
Gets information on the durability property requested by thread. Used when writing either a prepare or commit record to the log buffer.
thd | in: thread handle |
Definition at line 1096 of file ha_innodb.cc.
UNIV_INTERN void thd_set_lock_wait_time | ( | THD * | thd, |
ulint | value | ||
) |
Set the time waited for the lock for the current query.
thd | in/out: thread handle |
value | in: time waited for the lock |
Definition at line 1273 of file ha_innodb.cc.
UNIV_INTERN ibool thd_supports_xa | ( | THD * | thd | ) |
Returns true if the thread supports XA, global value of innodb_supports_xa if thd is NULL.
thd | in: thread handle, or NULL to query the global innodb_supports_xa |
Definition at line 1246 of file ha_innodb.cc.
UNIV_INTERN ibool thd_trx_is_auto_commit | ( | THD * | thd | ) |
Check if the transaction is an auto-commit transaction. TRUE also implies that it is a SELECT (read-only) transaction.
thd | in: thread handle, can be NULL |
Definition at line 1121 of file ha_innodb.cc.
UNIV_INTERN ibool thd_trx_is_read_only | ( | THD * | thd | ) |
Returns true if transaction should be flagged as read-only.
thd | in: thread handle |
Definition at line 1108 of file ha_innodb.cc.
UNIV_INTERN ibool trx_is_interrupted | ( | const trx_t * | trx | ) |
Determines if the currently running transaction has been interrupted.
trx | in: transaction |
Definition at line 2635 of file ha_innodb.cc.
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 2647 of file ha_innodb.cc.
const TABLE const char const char const char ulint flags |
in: table flags
Definition at line 8423 of file ha_innodb.cc.
const TABLE* form |
< in: InnoDB transaction handle in: information on table columns and indexes
Definition at line 8423 of file ha_innodb.cc.
struct _ft_vft_ext ft_vft_ext_result |
Definition at line 260 of file ha_innodb.cc.
struct _ft_vft ft_vft_result |
Definition at line 254 of file ha_innodb.cc.
const char innobase_index_reserve_name[] = "GEN_CLUST_INDEX" |
"GEN_CLUST_INDEX" is the name reserved for InnoDB default
system clustered index when there is no primary key.
Definition at line 504 of file ha_innodb.cc.
ib_cb_t innodb_api_cb[] |
Set up InnoDB API callback function array
Definition at line 425 of file ha_innodb.cc.
const TABLE const char const char const char* remote_path |
in: Remote path or zero length-string
Definition at line 8423 of file ha_innodb.cc.
const TABLE const char* table_name |
in: table name
Definition at line 8423 of file ha_innodb.cc.
const TABLE const char const char* temp_path |
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 a zero length-string
Definition at line 8423 of file ha_innodb.cc.