43 extern ibool lock_print_waits;
46 extern FILE* lock_latest_err_file;
78 const ulint* offsets);
123 const rec_t* old_end);
144 const rec_t* orig_succ,
191 const rec_t* orig_pred,
322 const ulint* offsets,
360 const ulint* offsets,
390 const ulint* offsets,
440 const ulint* offsets,
485 enum lock_mode lock_mode);
514 ibool remove_also_table_sx_locks);
527 __attribute__((
const));
564 enum lock_mode* mode);
599 const ulint* offsets,
600 ibool has_kernel_mutex);
757 #define LOCK_MODE_MASK 0xFUL
761 #define LOCK_TABLE 16
763 #define LOCK_TYPE_MASK 0xF0UL
765 #if LOCK_MODE_MASK & LOCK_TYPE_MASK
766 # error "LOCK_MODE_MASK & LOCK_TYPE_MASK"
769 #define LOCK_WAIT 256
774 #define LOCK_ORDINARY 0
784 #define LOCK_REC_NOT_GAP 1024
792 #define LOCK_INSERT_INTENTION 2048
800 #if (LOCK_WAIT|LOCK_GAP|LOCK_REC_NOT_GAP|LOCK_INSERT_INTENTION)&LOCK_MODE_MASK
803 #if (LOCK_WAIT|LOCK_GAP|LOCK_REC_NOT_GAP|LOCK_INSERT_INTENTION)&LOCK_TYPE_MASK
826 #include "lock0lock.ic"
UNIV_INTERN void lock_remove_all_on_table(dict_table_t *table, ibool remove_also_table_sx_locks)
UNIV_INTERN void lock_move_rec_list_end(const buf_block_t *new_block, const buf_block_t *block, const rec_t *rec)
UNIV_INTERN void lock_move_reorganize_page(const buf_block_t *block, const buf_block_t *oblock)
UNIV_INTERN void lock_update_merge_right(const buf_block_t *right_block, const rec_t *orig_succ, const buf_block_t *left_block)
UNIV_INTERN void lock_update_insert(const buf_block_t *block, const rec_t *rec)
UNIV_INTERN void lock_cancel_waiting_and_release(lock_t *lock)
UNIV_INTERN ulint lock_table(ulint flags, dict_table_t *table, enum lock_mode mode, que_thr_t *thr)
UNIV_INLINE ulint lock_rec_fold(ulint space, ulint page_no) __attribute__((const ))
UNIV_INTERN ibool lock_has_to_wait(const lock_t *lock1, const lock_t *lock2)
UNIV_INTERN table_id_t lock_get_table_id(const lock_t *lock)
UNIV_INTERN ibool lock_is_table_exclusive(dict_table_t *table, trx_t *trx)
UNIV_INTERN void lock_sys_close(void)
UNIV_INTERN void lock_update_merge_left(const buf_block_t *left_block, const rec_t *orig_pred, const buf_block_t *right_block)
UNIV_INTERN const char * lock_get_type_str(const lock_t *lock)
UNIV_INTERN void lock_update_copy_and_discard(const buf_block_t *new_block, const buf_block_t *block)
UNIV_INTERN ulint lock_sec_rec_cons_read_sees(const rec_t *rec, const read_view_t *view)
UNIV_INLINE ulint lock_rec_hash(ulint space, ulint page_no)
UNIV_INTERN void lock_release_autoinc_locks(trx_t *trx)
UNIV_INTERN ibool lock_rec_expl_exist_on_page(ulint space, ulint page_no)
UNIV_INLINE ulint lock_get_min_heap_no(const buf_block_t *block)
UNIV_INTERN ulint lock_clust_rec_modify_check_and_lock(ulint flags, const buf_block_t *block, const rec_t *rec, dict_index_t *index, const ulint *offsets, que_thr_t *thr)
UNIV_INTERN void lock_update_split_left(const buf_block_t *right_block, const buf_block_t *left_block)
UNIV_INTERN const char * lock_get_table_name(const lock_t *lock)
UNIV_INTERN void lock_update_delete(const buf_block_t *block, const rec_t *rec)
UNIV_INTERN void lock_table_print(FILE *file, const lock_t *lock)
UNIV_INTERN enum db_err lock_sec_rec_read_check_and_lock(ulint flags, const buf_block_t *block, const rec_t *rec, dict_index_t *index, const ulint *offsets, enum lock_mode mode, ulint gap_mode, que_thr_t *thr)
UNIV_INTERN ibool lock_clust_rec_cons_read_sees(const rec_t *rec, dict_index_t *index, const ulint *offsets, read_view_t *view)
UNIV_INTERN ulint lock_clust_rec_read_check_and_lock_alt(ulint flags, const buf_block_t *block, const rec_t *rec, dict_index_t *index, enum lock_mode mode, ulint gap_mode, que_thr_t *thr)
UNIV_INTERN void lock_release_off_kernel(trx_t *trx)
UNIV_INTERN void lock_rec_store_on_page_infimum(const buf_block_t *block, const rec_t *rec)
UNIV_INTERN void lock_rec_restore_from_page_infimum(const buf_block_t *block, const rec_t *rec, const buf_block_t *donator)
UNIV_INTERN enum db_err lock_clust_rec_read_check_and_lock(ulint flags, const buf_block_t *block, const rec_t *rec, dict_index_t *index, const ulint *offsets, enum lock_mode mode, ulint gap_mode, que_thr_t *thr)
UNIV_INTERN void lock_move_rec_list_start(const buf_block_t *new_block, const buf_block_t *block, const rec_t *rec, const rec_t *old_end)
UNIV_INTERN void lock_rec_print(FILE *file, const lock_t *lock)
UNIV_INTERN trx_id_t lock_get_trx_id(const lock_t *lock)
UNIV_INTERN void lock_update_root_raise(const buf_block_t *block, const buf_block_t *root)
UNIV_INTERN const dict_index_t * lock_rec_get_index(const lock_t *lock)
UNIV_INLINE trx_t * lock_clust_rec_some_has_impl(const rec_t *rec, dict_index_t *index, const ulint *offsets)
UNIV_INTERN ulint lock_rec_get_page_no(const lock_t *lock)
UNIV_INTERN void lock_update_discard(const buf_block_t *heir_block, ulint heir_heap_no, const buf_block_t *block)
UNIV_INTERN ulint lock_rec_insert_check_and_lock(ulint flags, const rec_t *rec, buf_block_t *block, dict_index_t *index, que_thr_t *thr, mtr_t *mtr, ibool *inherit)
UNIV_INTERN ibool lock_print_info_summary(FILE *file, ibool nowait)
UNIV_INTERN ulint lock_sec_rec_modify_check_and_lock(ulint flags, buf_block_t *block, const rec_t *rec, dict_index_t *index, que_thr_t *thr, mtr_t *mtr)
UNIV_INTERN const char * lock_get_mode_str(const lock_t *lock)
UNIV_INTERN void lock_rec_unlock(trx_t *trx, const buf_block_t *block, const rec_t *rec, enum lock_mode lock_mode)
UNIV_INTERN ibool lock_trx_holds_autoinc_locks(const trx_t *trx)
UNIV_INTERN ulint lock_rec_find_set_bit(const lock_t *lock)
UNIV_INTERN void lock_rec_reset_and_inherit_gap_locks(const buf_block_t *heir_block, const buf_block_t *block, ulint heir_heap_no, ulint heap_no)
UNIV_INTERN ulint lock_get_type(const lock_t *lock)
UNIV_INTERN dict_table_t * lock_get_src_table(trx_t *trx, dict_table_t *dest, enum lock_mode *mode)
UNIV_INTERN void lock_sys_create(ulint n_cells)
UNIV_INTERN ulint lock_rec_get_space_id(const lock_t *lock)
UNIV_INTERN void lock_update_split_right(const buf_block_t *right_block, const buf_block_t *left_block)
UNIV_INTERN const char * lock_rec_get_index_name(const lock_t *lock)
UNIV_INTERN ulint lock_number_of_rows_locked(const trx_t *trx)
UNIV_INTERN ibool lock_check_trx_id_sanity(trx_id_t trx_id, const rec_t *rec, dict_index_t *index, const ulint *offsets, ibool has_kernel_mutex)
UNIV_INTERN void lock_print_info_all_transactions(FILE *file)
UNIV_INTERN ulint lock_get_size(void)