![]()  | 
  
    MySQL 9.5.0
    
   Source Code Documentation 
   | 
 
InnoDB Native API. More...
#include <dd/properties.h>#include <dd/types/tablespace.h>#include <errno.h>#include <stdlib.h>#include <sys/types.h>#include "api0api.h"#include "api0misc.h"#include "btr0pcur.h"#include "dict0crea.h"#include "dict0dd.h"#include "dict0dict.h"#include "dict0priv.h"#include "fsp0fsp.h"#include "ha_prototypes.h"#include "lob0lob.h"#include "lock0lock.h"#include "lock0types.h"#include "ddl0ddl.h"#include "dict0sdi-decompress.h"#include "dict0sdi.h"#include "pars0pars.h"#include "rem0cmp.h"#include "row0ins.h"#include "row0sel.h"#include "row0upd.h"#include "row0vers.h"#include "srv0start.h"#include "trx0roll.h"Classes | |
| struct | ib_qry_grph_t | 
| Query graph types.  More... | |
| struct | ib_qry_node_t | 
| Query node types.  More... | |
| struct | ib_qry_proc_t | 
| Query processing fields.  More... | |
| struct | ib_cursor_t | 
| Cursor instance for traversing tables/indexes.  More... | |
| struct | ib_col_t | 
| InnoDB table columns used during table and index schema creation.  More... | |
| struct | ib_key_col_t | 
| InnoDB index columns used during index and index schema creation.  More... | |
| struct | ib_Index_defn | 
| InnoDB index schema used during index creation.  More... | |
| struct | ib_table_def_t | 
| InnoDB table schema used during table creation.  More... | |
| struct | ib_tuple_t | 
| InnoDB tuple used for key operations.  More... | |
Enumerations | |
| enum | ib_tuple_type_t { TPL_TYPE_ROW , TPL_TYPE_KEY } | 
| InnoDB tuple types.  More... | |
| enum | ib_qry_type_t { QRY_NON , QRY_INS , QRY_UPD , QRY_SEL } | 
| Query types supported.  More... | |
Functions | |
| static bool | ib_btr_cursor_is_positioned (btr_pcur_t *pcur) | 
| Check whether the InnoDB persistent cursor is positioned.  More... | |
| static dict_table_t * | ib_lookup_table_by_name (const char *name) | 
| Find table using table name.  More... | |
| static void | ib_wake_master_thread (void) | 
| Increments innobase_active_counter and every INNOBASE_WAKE_INTERVALth time calls srv_active_wake_master_thread.  More... | |
| static ib_err_t | ib_read_tuple (const rec_t *rec, bool page_format, ib_tuple_t *tuple, ib_tuple_t *cmp_tuple, int mode, void **rec_buf_list, ulint *cur_slot, ulint *used_len) | 
| Read the columns from a rec into a tuple.  More... | |
| static ib_tpl_t | ib_key_tuple_new_low (const dict_index_t *index, ulint n_cols, mem_heap_t *heap) | 
| Create an InnoDB key tuple.  More... | |
| static ib_tpl_t | ib_key_tuple_new (const dict_index_t *index, ulint n_cols) | 
| Create an InnoDB key tuple.  More... | |
| static ib_tpl_t | ib_row_tuple_new_low (const dict_index_t *index, ulint n_cols, mem_heap_t *heap) | 
| Create an InnoDB row tuple.  More... | |
| static ib_tpl_t | ib_row_tuple_new (const dict_index_t *index, ulint n_cols) | 
| Create an InnoDB row tuple.  More... | |
| ib_err_t | ib_trx_start (ib_trx_t ib_trx, ib_trx_level_t ib_trx_level, bool read_write, bool auto_commit, void *thd) | 
| Begin a transaction.  More... | |
| ib_trx_t | ib_trx_begin (ib_trx_level_t ib_trx_level, bool read_write, bool auto_commit, void *thd) | 
| Begin a transaction.  More... | |
| uint32_t | ib_trx_read_only (ib_trx_t ib_trx) | 
| Check if transaction is read_only.  More... | |
| uint64_t | ib_trx_get_start_time (ib_trx_t ib_trx) | 
| Get a trx start time.  More... | |
| ib_err_t | ib_trx_release (ib_trx_t ib_trx) | 
| Release the resources of the transaction.  More... | |
| ib_err_t | ib_trx_commit (ib_trx_t ib_trx) | 
| Commit a transaction.  More... | |
| ib_err_t | ib_trx_rollback (ib_trx_t ib_trx) | 
| Rollback a transaction.  More... | |
| static void | ib_normalize_table_name (char *norm_name, const char *name) | 
| Normalizes a table name string.  More... | |
| static ib_err_t | ib_table_get_id_low (const char *table_name, ib_id_u64_t *table_id) | 
| Get a table id.  More... | |
| static ib_err_t | ib_create_cursor (ib_crsr_t *ib_crsr, dict_table_t *table, dict_index_t *index, trx_t *trx) | 
| Create an internal cursor instance.  More... | |
| static ib_err_t | ib_create_cursor_with_clust_index (ib_crsr_t *ib_crsr, dict_table_t *table, trx_t *trx) | 
| Create an internal cursor instance on the clustered index.  More... | |
| ib_err_t | ib_cursor_open_index_using_name (ib_crsr_t ib_open_crsr, const char *index_name, ib_crsr_t *ib_crsr, int *idx_type, ib_id_u64_t *idx_id) | 
| Open an InnoDB secondary index cursor and return a cursor handle to it.  More... | |
| ib_err_t | ib_cursor_open_table (const char *name, ib_trx_t ib_trx, ib_crsr_t *ib_crsr) | 
| Open an InnoDB table and return a cursor handle to it.  More... | |
| bool | ib_is_virtual_table (ib_crsr_t crsr) | 
| Check the table whether it contains virtual columns.  More... | |
| static void | ib_qry_proc_free (ib_qry_proc_t *q_proc) | 
| Free a context struct for a table handle.  More... | |
| ib_err_t | ib_cursor_reset (ib_crsr_t ib_crsr) | 
| Reset the cursor.  More... | |
| ib_err_t | ib_cursor_new_trx (ib_crsr_t ib_crsr, ib_trx_t ib_trx) | 
| update the cursor with new transactions and also reset the cursor  More... | |
| ib_err_t | ib_cursor_commit_trx (ib_crsr_t ib_crsr, ib_trx_t ib_trx) | 
| Commit the transaction in a cursor.  More... | |
| ib_err_t | ib_cursor_close (ib_crsr_t ib_crsr) | 
| Close an InnoDB table and free the cursor.  More... | |
| static ib_err_t | ib_insert_row_with_lock_retry (que_thr_t *thr, ins_node_t *node, trx_savept_t *savept) | 
| Run the insert query and do error handling.  More... | |
| static ib_err_t | ib_execute_insert_query_graph (dict_table_t *table, que_fork_t *ins_graph, ins_node_t *node) | 
| Write a row.  More... | |
| static void | ib_insert_query_graph_create (ib_cursor_t *cursor) | 
| Create an insert query graph node.  More... | |
| ib_err_t | ib_cursor_insert_row (ib_crsr_t ib_crsr, const ib_tpl_t ib_tpl) | 
| Insert a row to a table.  More... | |
| static upd_t * | ib_update_vector_create (ib_cursor_t *cursor) | 
| Gets pointer to a prebuilt update vector used in updates.  More... | |
| static void | ib_update_col (ib_cursor_t *cursor, upd_field_t *upd_field, ulint col_no, dfield_t *dfield) | 
| Note that a column has changed.  More... | |
| static ib_err_t | ib_calc_diff (ib_cursor_t *cursor, upd_t *upd, const ib_tuple_t *old_tuple, const ib_tuple_t *new_tuple) | 
| Checks which fields have changed in a row and stores the new data to an update vector.  More... | |
| static ib_err_t | ib_update_row_with_lock_retry (que_thr_t *thr, upd_node_t *node, trx_savept_t *savept) | 
| Run the update query and do error handling.  More... | |
| static ib_err_t | ib_execute_update_query_graph (ib_cursor_t *cursor, btr_pcur_t *pcur) | 
| Does an update or delete of a row.  More... | |
| ib_err_t | ib_cursor_update_row (ib_crsr_t ib_crsr, const ib_tpl_t ib_old_tpl, const ib_tpl_t ib_new_tpl) | 
| Update a row in a table.  More... | |
| static ib_err_t | ib_delete_row (ib_cursor_t *cursor, btr_pcur_t *pcur, const rec_t *rec) | 
| Build the update query graph to delete a row from an index.  More... | |
| ib_err_t | ib_cursor_delete_row (ib_crsr_t ib_crsr) | 
| Delete a row in a table.  More... | |
| ib_err_t | ib_cursor_read_row (ib_crsr_t ib_crsr, ib_tpl_t ib_tpl, ib_tpl_t cmp_tpl, int mode, void **row_buf, uint64_t *slot, uint64_t *used_len) | 
| Read current row.  More... | |
| static ib_err_t | ib_cursor_position (ib_cursor_t *cursor, ib_srch_mode_t mode) | 
| Move cursor to the first record in the table.  More... | |
| ib_err_t | ib_cursor_first (ib_crsr_t ib_crsr) | 
| Move cursor to the first record in the table.  More... | |
| ib_err_t | ib_cursor_next (ib_crsr_t ib_crsr) | 
| Move cursor to the next user record in the table.  More... | |
| ib_err_t | ib_cursor_moveto (ib_crsr_t ib_crsr, ib_tpl_t ib_tpl, ib_srch_mode_t ib_srch_mode, uint64_t direction) | 
| Search for key.  More... | |
| void | ib_cursor_set_match_mode (ib_crsr_t ib_crsr, ib_match_mode_t match_mode) | 
| Set the cursor search mode.  More... | |
| static dfield_t * | ib_col_get_dfield (ib_tuple_t *tuple, ulint col_no) | 
| Get the dfield instance for the column in the tuple.  More... | |
| static ib_err_t | ib_col_is_capped (const dtype_t *dtype) | 
| Predicate to check whether a column type contains variable length data.  More... | |
| ib_err_t | ib_col_set_value (ib_tpl_t ib_tpl, ib_ulint_t col_no, const void *src, uint64_t len, bool need_cpy) | 
| Set a column of the tuple.  More... | |
| uint64_t | ib_col_get_len (ib_tpl_t ib_tpl, ib_ulint_t i) | 
| Get the size of the data available in the column the tuple.  More... | |
| uint64_t | ib_col_copy_value (ib_tpl_t ib_tpl, ib_ulint_t i, void *dst, uint32_t len) | 
| Copy a column value from the tuple.  More... | |
| static ib_col_attr_t | ib_col_get_attr (ulint prtype) | 
| Get the InnoDB column attribute from the internal column precise type.  More... | |
| const char * | ib_col_get_name (ib_crsr_t ib_crsr, ulint i) | 
| Get a column type, length and attributes from the tuple.  More... | |
| const char * | ib_get_idx_field_name (ib_crsr_t ib_crsr, ulint i) | 
| Get an index field name from the cursor.  More... | |
| uint64_t | ib_col_get_meta (ib_tpl_t ib_tpl, ulint i, ib_col_meta_t *ib_col_meta) | 
| Get a column type, length and attributes from the tuple.  More... | |
| static ib_err_t | ib_tuple_check_int (ib_tpl_t ib_tpl, ulint i, bool usign, ulint size) | 
| Read a signed int 8 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_i8 (ib_tpl_t ib_tpl, ib_ulint_t i, int8_t *ival) | 
| Read a signed int 8 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_u8 (ib_tpl_t ib_tpl, ib_ulint_t i, uint8_t *ival) | 
| Read an unsigned int 8 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_i16 (ib_tpl_t ib_tpl, ib_ulint_t i, int16_t *ival) | 
| Read a signed int 16 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_u16 (ib_tpl_t ib_tpl, ib_ulint_t i, uint16_t *ival) | 
| Read an unsigned int 16 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_i32 (ib_tpl_t ib_tpl, ib_ulint_t i, int32_t *ival) | 
| Read a signed int 32 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_u32 (ib_tpl_t ib_tpl, ib_ulint_t i, uint32_t *ival) | 
| Read an unsigned int 32 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_i64 (ib_tpl_t ib_tpl, ib_ulint_t i, int64_t *ival) | 
| Read a signed int 64 bit column from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_read_u64 (ib_tpl_t ib_tpl, ib_ulint_t i, uint64_t *ival) | 
| Read an unsigned int 64 bit column from an InnoDB tuple.  More... | |
| const void * | ib_col_get_value (ib_tpl_t ib_tpl, ib_ulint_t i) | 
| Get a column value pointer from the tuple.  More... | |
| ib_tpl_t | ib_tuple_clear (ib_tpl_t ib_tpl) | 
| "Clear" or reset an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_get_cluster_key (ib_crsr_t ib_crsr, ib_tpl_t *ib_dst_tpl, const ib_tpl_t ib_src_tpl) | 
| Create a new cluster key search tuple and copy the contents of the secondary index key tuple columns that refer to the cluster index record to the cluster key.  More... | |
| ib_tpl_t | ib_sec_search_tuple_create (ib_crsr_t ib_crsr) | 
| Create an InnoDB tuple used for index/table search.  More... | |
| ib_tpl_t | ib_sec_read_tuple_create (ib_crsr_t ib_crsr) | 
| Create an InnoDB tuple used for index/table search.  More... | |
| ib_tpl_t | ib_clust_search_tuple_create (ib_crsr_t ib_crsr) | 
| Create an InnoDB tuple used for table key operations.  More... | |
| ib_tpl_t | ib_clust_read_tuple_create (ib_crsr_t ib_crsr) | 
| Create an InnoDB tuple for table row operations.  More... | |
| uint64_t | ib_tuple_get_n_user_cols (const ib_tpl_t ib_tpl) | 
| Return the number of user columns in the tuple definition.  More... | |
| uint64_t | ib_tuple_get_n_cols (const ib_tpl_t ib_tpl) | 
| Return the number of columns in the tuple definition.  More... | |
| void | ib_tuple_delete (ib_tpl_t ib_tpl) | 
| Destroy an InnoDB tuple.  More... | |
| ib_err_t | ib_table_get_id (const char *table_name, ib_id_u64_t *table_id) | 
| Get a table id.  More... | |
| bool | ib_cursor_is_positioned (const ib_crsr_t ib_crsr) | 
| Check if cursor is positioned.  More... | |
| bool | ib_schema_lock_is_exclusive (const ib_trx_t ib_trx) | 
| Checks if the data dictionary is latched in exclusive mode.  More... | |
| ib_err_t | ib_cursor_lock (ib_crsr_t ib_crsr, ib_lck_mode_t ib_lck_mode) | 
| Set the Lock an InnoDB cursor/table.  More... | |
| ib_err_t | ib_cursor_set_lock_mode (ib_crsr_t ib_crsr, ib_lck_mode_t ib_lck_mode) | 
| Set the Lock mode of the cursor.  More... | |
| void | ib_cursor_set_cluster_access (ib_crsr_t ib_crsr) | 
| Set need to access clustered index record.  More... | |
| void | ib_cursor_stmt_begin (ib_crsr_t ib_crsr) | 
| Inform the cursor that it's the start of an SQL statement.  More... | |
| ib_err_t | ib_tuple_write_double (ib_tpl_t ib_tpl, int col_no, double val) | 
| Write a double value to a column.  More... | |
| ib_err_t | ib_tuple_read_double (ib_tpl_t ib_tpl, uint64_t col_no, double *dval) | 
| Read a double column value from an InnoDB tuple.  More... | |
| ib_err_t | ib_tuple_write_float (ib_tpl_t ib_tpl, uint64_t col_no, float val) | 
| ib_err_t | ib_tuple_read_float (ib_tpl_t ib_tpl, ulint col_no, float *fval) | 
| Read a float value from an InnoDB tuple.  More... | |
| ib_trx_level_t | ib_cfg_trx_level () | 
| Return isolation configuration set by "innodb_api_trx_level".  More... | |
| uint64_t | ib_cfg_bk_commit_interval () | 
| Return configure value for background commit interval (in seconds)  More... | |
| int | ib_cfg_get_cfg () | 
| Get generic configure status.  More... | |
| const char * | ib_ut_strerr (ib_err_t num) | 
| Wrapper of ut_strerr() which converts an InnoDB error number to a human readable text message.  More... | |
| static ib_err_t | ib_cursor_open_table_using_id (ib_id_u64_t table_id, ib_trx_t ib_trx, ib_crsr_t *ib_crsr) | 
| Open an InnoDB table and return a cursor handle to it.  More... | |
| static ib_tpl_t | ib_sdi_create_search_tuple (ib_crsr_t ib_crsr, const sdi_key_t *sdi_key) | 
| Create a tuple to search from SDI table.  More... | |
| static ib_tpl_t | ib_sdi_create_insert_tuple (ib_crsr_t ib_crsr, const sdi_key_t *sdi_key, uint32_t uncomp_len, uint32_t comp_len, const void *sdi) | 
| Create a tuple to insert into SDI table.  More... | |
| static ib_err_t | ib_sdi_open_table (uint32_t tablespace_id, trx_t *trx, ib_crsr_t *ib_crsr) | 
| Open SDI table.  More... | |
| dberr_t | ib_sdi_set (uint32_t tablespace_id, const ib_sdi_key_t *ib_sdi_key, uint32_t uncomp_len, uint32_t comp_len, const void *sdi, trx_t *trx) | 
| Insert/Update SDI in tablespace.  More... | |
| dberr_t | ib_sdi_get_keys (uint32_t tablespace_id, ib_sdi_vector_t *ib_sdi_vector, trx_t *trx) | 
| Get the SDI keys in a tablespace into vector.  More... | |
| dberr_t | ib_sdi_get (uint32_t tablespace_id, const ib_sdi_key_t *ib_sdi_key, void *comp_sdi, uint32_t *comp_sdi_len, uint32_t *uncomp_sdi_len, trx_t *trx) | 
| Retrieve SDI from tablespace.  More... | |
| ib_err_t | ib_sdi_delete (uint32_t tablespace_id, const ib_sdi_key_t *ib_sdi_key, trx_t *trx) | 
| Delete SDI from tablespace.  More... | |
| ib_err_t | ib_sdi_create (space_id_t tablespace_id) | 
| Create SDI in a tablespace.  More... | |
| ib_err_t | ib_sdi_drop (space_id_t tablespace_id) | 
| Drop SDI Index from tablespace.  More... | |
| ib_err_t | ib_sdi_flush (space_id_t space_id) | 
| Flush SDI in a tablespace.  More... | |
Variables | |
| bool | ib_binlog_enabled = false | 
| configure variable for binlog option with InnoDB APIs  More... | |
| bool | ib_mdl_enabled = false | 
| configure variable for MDL option with InnoDB APIs  More... | |
| bool | ib_disable_row_lock = false | 
| configure variable for disable rowlock with InnoDB APIs  More... | |
| ulong | ib_trx_level_setting = IB_TRX_READ_UNCOMMITTED | 
| configure variable for Transaction isolation levels  More... | |
| ulong | ib_bk_commit_interval = 0 | 
| configure variable for background commit interval in seconds  More... | |
| constexpr uint32_t | INNOBASE_WAKE_INTERVAL = 32 | 
| The following counter is used to convey information to InnoDB about server activity: in case of normal DML ops it is not sensible to call srv_active_wake_master_thread after each operation, we only do it every INNOBASE_WAKE_INTERVAL'th step.  More... | |
InnoDB Native API.
2008-08-01 Created Sunny Bains 3/20/2011 Jimmy Yang extracted from Embedded InnoDB
| enum ib_qry_type_t | 
| enum ib_tuple_type_t | 
      
  | 
  inlinestatic | 
Check whether the InnoDB persistent cursor is positioned.
| pcur | in: InnoDB persistent cursor | 
      
  | 
  static | 
Checks which fields have changed in a row and stores the new data to an update vector.
| cursor | in: current cursor | 
| upd | in/out: update vector | 
| old_tuple | in: Old tuple in table | 
| new_tuple | in: New tuple to update | 
| uint64_t ib_cfg_bk_commit_interval | ( | ) | 
Return configure value for background commit interval (in seconds)
| int ib_cfg_get_cfg | ( | ) | 
Get generic configure status.
| ib_trx_level_t ib_cfg_trx_level | ( | ) | 
Return isolation configuration set by "innodb_api_trx_level".
Create an InnoDB tuple for table row operations.
| ib_crsr | in: Cursor instance | 
Create an InnoDB tuple used for table key operations.
| ib_crsr | in: Cursor instance | 
| uint64_t ib_col_copy_value | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| void * | dst, | ||
| uint32_t | len | ||
| ) | 
Copy a column value from the tuple.
| [in] | ib_tpl | tuple instance | 
| [in] | i | in column index in tuple | 
| [out] | dst | copied data value | 
| [in] | len | max data value len to copy | 
      
  | 
  inlinestatic | 
Get the InnoDB column attribute from the internal column precise type.
| prtype | in: column definition | 
      
  | 
  inlinestatic | 
Get the dfield instance for the column in the tuple.
| tuple | in: tuple instance | 
| col_no | in: col no. in tuple | 
| uint64_t ib_col_get_len | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i | ||
| ) | 
Get the size of the data available in the column the tuple.
| [in] | ib_tpl | tuple instance | 
| [in] | i | column index in tuple | 
| uint64_t ib_col_get_meta | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| ib_col_meta_t * | ib_col_meta | ||
| ) | 
Get a column type, length and attributes from the tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ib_col_meta | column meta data | 
| const char * ib_col_get_name | ( | ib_crsr_t | ib_crsr, | 
| ib_ulint_t | i | ||
| ) | 
Get a column type, length and attributes from the tuple.
| [in] | ib_crsr | InnoDB cursor instance | 
| [in] | i | column index in tuple | 
| const void * ib_col_get_value | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i | ||
| ) | 
Get a column value pointer from the tuple.
| [in] | ib_tpl | tuple instance | 
| [in] | i | column index in tuple | 
Predicate to check whether a column type contains variable length data.
| dtype | in: column type | 
| ib_err_t ib_col_set_value | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | col_no, | ||
| const void * | src, | ||
| uint64_t | len, | ||
| bool | need_cpy | ||
| ) | 
Set a column of the tuple.
Make a copy using the tuple's heap.
| [in] | ib_tpl | tuple instance | 
| [in] | col_no | column index in tuple | 
| [in] | src | data value | 
| [in] | len | data value len | 
| [in] | need_cpy | if need memcpy | 
      
  | 
  static | 
Create an internal cursor instance.
| ib_crsr | out: InnoDB cursor | 
| table | in: table instance | 
| index | in: index to use | 
| trx | in: transaction | 
      
  | 
  static | 
Create an internal cursor instance on the clustered index.
| [out] | ib_crsr | InnoDB cursor | 
| [in,out] | table | table instance | 
| [in,out] | trx | transaction | 
Close an InnoDB table and free the cursor.
| ib_crsr | in,own: InnoDB cursor | 
Commit the transaction in a cursor.
| ib_crsr | in/out: InnoDB cursor | 
| ib_trx | in: transaction | 
Delete a row in a table.
| ib_crsr | in: InnoDB cursor instance | 
Move cursor to the first record in the table.
| ib_crsr | in: InnoDB cursor instance | 
Insert a row to a table.
| ib_crsr | in/out: InnoDB cursor instance | 
| ib_tpl | in: tuple to insert | 
| bool ib_cursor_is_positioned | ( | const ib_crsr_t | ib_crsr | ) | 
Check if cursor is positioned.
| [in] | ib_crsr | InnoDB cursor instance | 
| ib_err_t ib_cursor_lock | ( | ib_crsr_t | ib_crsr, | 
| ib_lck_mode_t | ib_lck_mode | ||
| ) | 
Set the Lock an InnoDB cursor/table.
Lock an InnoDB cursor/table.
| ib_crsr | in/out: InnoDB cursor | 
| ib_lck_mode | in: InnoDB lock mode | 
| ib_err_t ib_cursor_moveto | ( | ib_crsr_t | ib_crsr, | 
| ib_tpl_t | ib_tpl, | ||
| ib_srch_mode_t | ib_srch_mode, | ||
| uint64_t | direction | ||
| ) | 
Search for key.
| ib_crsr | in: InnoDB cursor instance | 
| ib_tpl | in: Key to search for | 
| ib_srch_mode | in: search mode | 
| direction | in: search direction | 
update the cursor with new transactions and also reset the cursor
| ib_crsr | in/out: InnoDB cursor | 
| ib_trx | in: transaction | 
Move cursor to the next user record in the table.
Move cursor to the next record in the table.
| ib_crsr | in: InnoDB cursor instance | 
| ib_err_t ib_cursor_open_index_using_name | ( | ib_crsr_t | ib_open_crsr, | 
| const char * | index_name, | ||
| ib_crsr_t * | ib_crsr, | ||
| int * | idx_type, | ||
| ib_id_u64_t * | idx_id | ||
| ) | 
Open an InnoDB secondary index cursor and return a cursor handle to it.
| ib_open_crsr | in: open/active cursor | 
| index_name | in: secondary index name | 
| ib_crsr | out,own: InnoDB index cursor | 
| idx_type | out: index is cluster index | 
| idx_id | out: index id | 
Open an InnoDB table and return a cursor handle to it.
Open an InnoDB table by name and return a cursor handle to it.
| name | in: table name | 
| ib_trx | in: Current transaction handle can be NULL | 
| ib_crsr | out,own: InnoDB cursor | 
      
  | 
  static | 
Open an InnoDB table and return a cursor handle to it.
| table_id | in: table id of table to open | 
| ib_trx | in: Current transaction handle can be NULL | 
| ib_crsr | out,own: InnoDB cursor | 
      
  | 
  inlinestatic | 
Move cursor to the first record in the table.
| cursor | in: InnoDB cursor instance | 
| mode | in: Search mode | 
| ib_err_t ib_cursor_read_row | ( | ib_crsr_t | ib_crsr, | 
| ib_tpl_t | ib_tpl, | ||
| ib_tpl_t | cmp_tpl, | ||
| int | mode, | ||
| void ** | row_buf, | ||
| uint64_t * | slot, | ||
| uint64_t * | used_len | ||
| ) | 
Read current row.
| ib_crsr | in: InnoDB cursor instance | 
| ib_tpl | out: read cols into this tuple | 
| cmp_tpl | in: tuple to compare and stop reading | 
| mode | in: mode determine when to stop read | 
| row_buf | in/out: row buffer | 
| slot | in/out: slot being used | 
| used_len | in/out: buffer len used | 
Reset the cursor.
| ib_crsr | in/out: InnoDB cursor | 
| void ib_cursor_set_cluster_access | ( | ib_crsr_t | ib_crsr | ) | 
Set need to access clustered index record.
Set need to access clustered index record flag.
| ib_crsr | in/out: InnoDB cursor | 
| ib_err_t ib_cursor_set_lock_mode | ( | ib_crsr_t | ib_crsr, | 
| ib_lck_mode_t | ib_lck_mode | ||
| ) | 
Set the Lock mode of the cursor.
| ib_crsr | in/out: InnoDB cursor | 
| ib_lck_mode | in: InnoDB lock mode | 
| void ib_cursor_set_match_mode | ( | ib_crsr_t | ib_crsr, | 
| ib_match_mode_t | match_mode | ||
| ) | 
Set the cursor search mode.
Set the match mode for ib_cursor_move().
| ib_crsr | in: Cursor instance | 
| match_mode | in: ib_cursor_moveto match mode | 
| void ib_cursor_stmt_begin | ( | ib_crsr_t | ib_crsr | ) | 
Inform the cursor that it's the start of an SQL statement.
| [in,out] | ib_crsr | InnoDB cursor | 
| ib_crsr | in: cursor | 
| ib_err_t ib_cursor_update_row | ( | ib_crsr_t | ib_crsr, | 
| const ib_tpl_t | ib_old_tpl, | ||
| const ib_tpl_t | ib_new_tpl | ||
| ) | 
Update a row in a table.
| ib_crsr | in: InnoDB cursor instance | 
| ib_old_tpl | in: Old tuple in table | 
| ib_new_tpl | in: New tuple to update | 
      
  | 
  static | 
Build the update query graph to delete a row from an index.
| cursor | in: current cursor | 
| pcur | in: Btree persistent cursor | 
| rec | in: record to delete | 
      
  | 
  static | 
Write a row.
| table | in: table where to insert | 
| ins_graph | in: query graph | 
| node | in: insert node | 
      
  | 
  inlinestatic | 
Does an update or delete of a row.
| cursor | in: Cursor instance | 
| pcur | in: Btree persistent cursor | 
| const char * ib_get_idx_field_name | ( | ib_crsr_t | ib_crsr, | 
| ib_ulint_t | i | ||
| ) | 
Get an index field name from the cursor.
| [in] | ib_crsr | InnoDB cursor instance | 
| [in] | i | column index in tuple | 
      
  | 
  static | 
Create an insert query graph node.
| cursor | in: Cursor instance | 
      
  | 
  inlinestatic | 
Run the insert query and do error handling.
| thr | in: insert query graph | 
| node | in: insert node for the query | 
| savept | in: savepoint to rollback to in case of an error | 
| bool ib_is_virtual_table | ( | ib_crsr_t | crsr | ) | 
Check the table whether it contains virtual columns.
| [in] | crsr | InnoDB Cursor | 
      
  | 
  static | 
Create an InnoDB key tuple.
| index | in: index of tuple | 
| n_cols | in: no. of user defined cols | 
      
  | 
  static | 
Create an InnoDB key tuple.
| index | in: index for which tuple required | 
| n_cols | in: no. of user defined cols | 
| heap | in: memory heap | 
      
  | 
  static | 
Find table using table name.
| name | in: table name to lookup | 
      
  | 
  static | 
Normalizes a table name string.
A normalized name consists of the database name catenated to '/' and table name. An example: test/mytable. On Windows normalization puts both the database name and the table name always to lower case. This function can be called for system tables and they don't have a database component. For tables that don't have a database component, we don't normalize them to lower case on Windows. The assumption is that they are system tables that reside in the system table space.
| norm_name | out: normalized name as a null-terminated string | 
| name | in: table name string | 
      
  | 
  static | 
Free a context struct for a table handle.
| q_proc | in, own: qproc struct | 
      
  | 
  static | 
Read the columns from a rec into a tuple.
| rec | in: Record to read | 
| page_format | in: true if compressed format | 
| tuple | in: tuple to read into | 
| cmp_tuple | in: tuple to compare and stop reading | 
| mode | in: mode determine when to stop read | 
| rec_buf_list | in/out: row buffer | 
| cur_slot | in/out: buffer slot being used | 
| used_len | in/out: used buf len | 
      
  | 
  static | 
Create an InnoDB row tuple.
| index | in: index of tuple | 
| n_cols | in: no. of cols in tuple | 
      
  | 
  static | 
Create an InnoDB row tuple.
| index | in: index of tuple | 
| n_cols | in: no. of cols in tuple | 
| heap | in: memory heap | 
| bool ib_schema_lock_is_exclusive | ( | const ib_trx_t | ib_trx | ) | 
Checks if the data dictionary is latched in exclusive mode.
Checks if the data dictionary is latched in exclusive mode by a user transaction.
| ib_trx | in: transaction | 
| ib_err_t ib_sdi_create | ( | space_id_t | tablespace_id | ) | 
Create SDI in a tablespace.
| [in] | tablespace_id | InnoDB tablespace id | 
      
  | 
  static | 
Create a tuple to insert into SDI table.
| [in,out] | ib_crsr | InnoDB cursor | 
| [in] | sdi_key | SDI Key | 
| [in] | uncomp_len | uncompressed length of SDI | 
| [in] | comp_len | compressed length of SDI | 
| [in] | sdi | compressed SDI data | 
Create a tuple to search from SDI table.
| [in,out] | ib_crsr | InnoDB cursor | 
| [in,out] | sdi_key | SDI Key | 
| ib_err_t ib_sdi_delete | ( | uint32_t | tablespace_id, | 
| const ib_sdi_key_t * | ib_sdi_key, | ||
| trx_t * | trx | ||
| ) | 
Delete SDI from tablespace.
| [in] | tablespace_id | tablespace id | 
| [in] | ib_sdi_key | SDI key to uniquely identify the tablespace object | 
| [in,out] | trx | innodb transaction | 
| ib_err_t ib_sdi_drop | ( | space_id_t | tablespace_id | ) | 
Drop SDI Index from tablespace.
This should be used only when SDI is corrupted.
| [in] | tablespace_id | InnoDB tablespace id | 
| ib_err_t ib_sdi_flush | ( | space_id_t | space_id | ) | 
Flush SDI in a tablespace.
The pages of a SDI Index modified by the transaction will be flushed to disk.
| [in] | space_id | tablespace id | 
| dberr_t ib_sdi_get | ( | uint32_t | tablespace_id, | 
| const ib_sdi_key_t * | ib_sdi_key, | ||
| void * | comp_sdi, | ||
| uint32_t * | comp_sdi_len, | ||
| uint32_t * | uncomp_sdi_len, | ||
| trx_t * | trx | ||
| ) | 
Retrieve SDI from tablespace.
| [in] | tablespace_id | tablespace id | 
| [in] | ib_sdi_key | SDI key | 
| [in,out] | comp_sdi | in: buffer to hold the SDI BLOB out: compressed SDI retrieved from tablespace | 
| [in,out] | comp_sdi_len | in: Size of memory allocated out: compressed length of SDI | 
| [out] | uncomp_sdi_len | out: uncompressed length of SDI | 
| [in,out] | trx | innodb transaction | 
| dberr_t ib_sdi_get_keys | ( | uint32_t | tablespace_id, | 
| ib_sdi_vector_t * | ib_sdi_vector, | ||
| trx_t * | trx | ||
| ) | 
Get the SDI keys in a tablespace into vector.
| [in] | tablespace_id | tablespace id | 
| [in,out] | ib_sdi_vector | vector to hold objects with tablespace types and ids | 
| [in,out] | trx | data dictionary transaction | 
      
  | 
  static | 
Open SDI table.
| [in] | tablespace_id | tablespace id | 
| [in,out] | trx | innodb transaction | 
| [in,out] | ib_crsr | InnoDB cursor | 
| dberr_t ib_sdi_set | ( | uint32_t | tablespace_id, | 
| const ib_sdi_key_t * | ib_sdi_key, | ||
| uint32_t | uncomp_len, | ||
| uint32_t | comp_len, | ||
| const void * | sdi, | ||
| trx_t * | trx | ||
| ) | 
Insert/Update SDI in tablespace.
| [in] | tablespace_id | tablespace id | 
| [in] | ib_sdi_key | SDI key to uniquely identify the tablespace object | 
| [in] | uncomp_len | uncompressed length of SDI | 
| [in] | comp_len | compressed length of SDI | 
| [in] | sdi | compressed SDI to be stored in tablespace | 
| [in,out] | trx | innodb transaction | 
Create an InnoDB tuple used for index/table search.
| ib_crsr | in: Cursor instance | 
Create an InnoDB tuple used for index/table search.
| ib_crsr | in: Cursor instance | 
| ib_err_t ib_table_get_id | ( | const char * | table_name, | 
| ib_id_u64_t * | table_id | ||
| ) | 
Get a table id.
This function will acquire the dictionary mutex.
| table_name | in: table to find | 
| table_id | out: table id if found | 
      
  | 
  static | 
Get a table id.
The caller must have acquired the dictionary mutex.
| table_name | in: table to find | 
| table_id | out: table id if found | 
| ib_trx_t ib_trx_begin | ( | ib_trx_level_t | ib_trx_level, | 
| bool | read_write, | ||
| bool | auto_commit, | ||
| void * | thd | ||
| ) | 
Begin a transaction.
This will allocate a new transaction handle. put the transaction in the active state.
| ib_trx_level | in: trx isolation level | 
| read_write | in: true if read write transaction | 
| auto_commit | in: auto commit after each single DML | 
| thd | in,out: MySQL THD | 
Commit a transaction.
This function will also release the schema latches too.
| ib_trx | in: trx handle | 
| uint64_t ib_trx_get_start_time | ( | ib_trx_t | ib_trx | ) | 
Get a trx start time.
| ib_trx | in: transaction | 
| uint32_t ib_trx_read_only | ( | ib_trx_t | ib_trx | ) | 
Check if transaction is read_only.
Check if the transaction is read_only.
| ib_trx | in: trx handle | 
Release the resources of the transaction.
| ib_trx | in: trx handle | 
Rollback a transaction.
This function will also release the schema latches too.
| ib_trx | in: trx handle | 
| ib_err_t ib_trx_start | ( | ib_trx_t | ib_trx, | 
| ib_trx_level_t | ib_trx_level, | ||
| bool | read_write, | ||
| bool | auto_commit, | ||
| void * | thd | ||
| ) | 
Begin a transaction.
Start a transaction that's been rolled back.
| ib_trx | in: transaction to restart | 
| ib_trx_level | in: trx isolation level | 
| read_write | in: true if read write transaction | 
| auto_commit | in: auto commit after each single DML | 
| thd | in: THD | 
      
  | 
  inlinestatic | 
Read a signed int 8 bit column from an InnoDB tuple.
| ib_tpl | in: InnoDB tuple | 
| i | in: column number | 
| usign | in: true if unsigned | 
| size | in: size of integer | 
"Clear" or reset an InnoDB tuple.
We free the heap and recreate the tuple.
| ib_tpl | in,own: tuple (will be freed) | 
| void ib_tuple_delete | ( | ib_tpl_t | ib_tpl | ) | 
Destroy an InnoDB tuple.
| [in] | ib_tpl | Tuple for current table | 
| ib_tpl | in,own: Tuple instance to delete | 
| ib_err_t ib_tuple_get_cluster_key | ( | ib_crsr_t | ib_crsr, | 
| ib_tpl_t * | ib_dst_tpl, | ||
| const ib_tpl_t | ib_src_tpl | ||
| ) | 
Create a new cluster key search tuple and copy the contents of the secondary index key tuple columns that refer to the cluster index record to the cluster key.
It does a deep copy of the column data.
| ib_crsr | in: secondary index cursor | 
| ib_dst_tpl | out,own: destination tuple | 
| ib_src_tpl | in: source tuple | 
| uint64_t ib_tuple_get_n_cols | ( | const ib_tpl_t | ib_tpl | ) | 
Return the number of columns in the tuple definition.
| ib_tpl | in: Tuple for table/index | 
| uint64_t ib_tuple_get_n_user_cols | ( | const ib_tpl_t | ib_tpl | ) | 
Return the number of user columns in the tuple definition.
| ib_tpl | in: Tuple for current table | 
Read a double column value from an InnoDB tuple.
| ib_tpl | in: InnoDB tuple | 
| col_no | in: column number | 
| dval | out: double value | 
Read a float value from an InnoDB tuple.
| ib_tpl | in: InnoDB tuple | 
| col_no | in: column number | 
| fval | out: float value | 
| ib_err_t ib_tuple_read_i16 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| int16_t * | ival | ||
| ) | 
Read a signed int 16 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ival | integer value | 
| ib_err_t ib_tuple_read_i32 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| int32_t * | ival | ||
| ) | 
Read a signed int 32 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ival | integer value | 
| ib_err_t ib_tuple_read_i64 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| int64_t * | ival | ||
| ) | 
Read a signed int 64 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ival | integer value | 
| ib_err_t ib_tuple_read_i8 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| int8_t * | ival | ||
| ) | 
Read a signed int 8 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ival | integer value | 
| ib_err_t ib_tuple_read_u16 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| uint16_t * | ival | ||
| ) | 
Read an unsigned int 16 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ival | integer value | 
| ib_err_t ib_tuple_read_u32 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| uint32_t * | ival | ||
| ) | 
Read an unsigned int 32 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ival | integer value | 
| ib_err_t ib_tuple_read_u64 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| uint64_t * | ival | ||
| ) | 
Read an unsigned int 64 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuple | 
| [in] | i | column number | 
| [out] | ival | integer value | 
| ib_err_t ib_tuple_read_u8 | ( | ib_tpl_t | ib_tpl, | 
| ib_ulint_t | i, | ||
| uint8_t * | ival | ||
| ) | 
Read an unsigned int 8 bit column from an InnoDB tuple.
| [in] | ib_tpl | InnoDB tuplr | 
| [in] | i | column number | 
| [out] | ival | integer value | 
Write a double value to a column.
| ib_tpl | in/out: tuple to write to | 
| col_no | in: column number | 
| val | in: value to write | 
      
  | 
  static | 
Note that a column has changed.
| cursor | in: current cursor | 
| upd_field | in/out: update field | 
| col_no | in: column number | 
| dfield | in: updated dfield | 
      
  | 
  inlinestatic | 
Run the update query and do error handling.
| thr | in: Update query graph | 
| node | in: Update node for the query | 
| savept | in: savepoint to rollback to in case of an error | 
      
  | 
  inlinestatic | 
Gets pointer to a prebuilt update vector used in updates.
| cursor | in: current cursor | 
| const char * ib_ut_strerr | ( | ib_err_t | num | ) | 
Wrapper of ut_strerr() which converts an InnoDB error number to a human readable text message.
| num | in: error number | 
      
  | 
  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.
| bool ib_binlog_enabled = false | 
configure variable for binlog option with InnoDB APIs
Whether binlog is enabled for applications using InnoDB APIs.
| ulong ib_bk_commit_interval = 0 | 
configure variable for background commit interval in seconds
configure value for background commit interval (in seconds)
| bool ib_disable_row_lock = false | 
configure variable for disable rowlock with InnoDB APIs
Whether InnoDB row lock is disabled for applications using InnoDB APIs.
| bool ib_mdl_enabled = false | 
configure variable for MDL option with InnoDB APIs
Whether MySQL MDL is enabled for applications using InnoDB APIs.
| ulong ib_trx_level_setting = IB_TRX_READ_UNCOMMITTED | 
configure variable for Transaction isolation levels
configure value for transaction isolation level
      
  | 
  constexpr | 
The following counter is used to convey information to InnoDB about server activity: in case of normal DML ops it is not sensible to call srv_active_wake_master_thread after each operation, we only do it every INNOBASE_WAKE_INTERVAL'th step.