Skip to content

File btree.c

FileList > cubrid > src > storage > btree.c

Go to the source code of this file

  • #include <inttypes.h>
  • #include "btree.h"
  • #include "btree_load.h"
  • #include "config.h"
  • #include "db_value_printer.hpp"
  • #include "deduplicate_key.h"
  • #include "file_manager.h"
  • #include "slotted_page.h"
  • #include "log_append.hpp"
  • #include "log_manager.h"
  • #include "log_recovery.h"
  • #include "overflow_file.h"
  • #include "xserver_interface.h"
  • #include "scan_manager.h"
  • #include "fetch.h"
  • #include "locator_sr.h"
  • #include "network_interface_sr.h"
  • #include "utility.h"
  • #include "transform.h"
  • #include "partition_sr.h"
  • #include "porting_inline.hpp"
  • #include "query_executor.h"
  • #include "query_opfunc.h"
  • #include "object_primitive.h"
  • #include "object_representation.h"
  • #include "perf_monitor.h"
  • #include "regu_var.hpp"
  • #include "fault_injection.h"
  • #include "dbtype.h"
  • #include "thread_manager.hpp"
  • #include <assert.h>
  • #include <algorithm>
  • #include <cinttypes>
  • #include <stdlib.h>
  • #include <string.h>
  • #include "memory_wrapper.hpp"

Classes

Type Name
struct btree_delete_helper
struct btree_find_fk_object
struct btree_find_unique_helper
struct btree_helper
struct btree_insert_helper
struct btree_rec_satisfies_snapshot_helper
struct btree_search_key_helper
struct btree_stats_env
struct fk_object_exist_arg
struct recset_header
struct show_index_scan_ctx

Public Types

Type Name
typedef int BTREE_ADVANCE_WITH_KEY_FUNCTION
enum BTREE_BOUNDARY
typedef struct btree_delete_helper BTREE_DELETE_HELPER
typedef struct btree_find_fk_object BTREE_FIND_FK_OBJECT
typedef struct btree_find_unique_helper BTREE_FIND_UNIQUE_HELPER
typedef struct fk_object_exist_arg BTREE_FK_EXIST_ARG
typedef struct btree_helper BTREE_HELPER
typedef struct btree_insert_helper BTREE_INSERT_HELPER
enum BTREE_MERGE_STATUS
typedef int BTREE_PROCESS_KEY_FUNCTION
typedef int BTREE_PROCESS_OBJECT_FUNCTION
typedef struct btree_rec_satisfies_snapshot_helper BTREE_REC_SATISFIES_SNAPSHOT_HELPER
typedef int BTREE_ROOT_WITH_KEY_FUNCTION
typedef enum btree_rv_debug_id BTREE_RV_DEBUG_ID
typedef struct btree_search_key_helper BTREE_SEARCH_KEY_HELPER
typedef struct btree_stats_env BTREE_STATS_ENV
typedef struct recset_header RECSET_HEADER
typedef struct show_index_scan_ctx SHOW_INDEX_SCAN_CTX
enum btree_rv_debug_id

Public Attributes

Type Name
const MVCCID BTREE_ONLINE_INDEX_DELETE_FLAG_STATE = 0x8000000000000000 \| (([**MVCCID**](storage__common_8h.md#typedef-mvccid)) 3)
const MVCCID BTREE_ONLINE_INDEX_FLAG_MASK = 0xC000000000000000
const MVCCID BTREE_ONLINE_INDEX_INSERT_FLAG_STATE = 0x4000000000000000 \| (([**MVCCID**](storage__common_8h.md#typedef-mvccid)) 3)
const MVCCID BTREE_ONLINE_INDEX_MVCCID_MASK = ~0xC000000000000000
const MVCCID BTREE_ONLINE_INDEX_NORMAL_FLAG_STATE = (([**MVCCID**](storage__common_8h.md#typedef-mvccid)) 3)
const size_t BTREE_RV_BUFFER_SIZE = /* multi line expression */

Public Functions

Type Name
int btree_attrinfo_read_dbvalues (THREAD_ENTRY * thread_p, DB_VALUE * curr_key, BTREE_SCAN * bts, int * btree_att_ids, int btree_num_att, HEAP_CACHE_ATTRINFO * attr_info, int func_index_col_id, int * attr_idx_ptr)
DISK_ISVALID btree_check_all (THREAD_ENTRY * thread_p)
DISK_ISVALID btree_check_by_class_oid (THREAD_ENTRY * thread_p, OID * cls_oid, BTID * idx_btid)
int btree_check_foreign_key (THREAD_ENTRY * thread_p, OID * cls_oid, HFID * hfid, OID * oid, DB_VALUE * keyval, int n_attrs, OID * pk_cls_oid, BTID * pk_btid, const char * fk_name)
int btree_check_valid_record (THREAD_ENTRY * thread_p, BTID_INT * btid, RECDES * recp, BTREE_NODE_TYPE node_type, DB_VALUE * key)
void btree_clear_mvcc_flags_from_oid (OID * oid)
int btree_coerce_key (DB_VALUE * keyp, int keysize, TP_DOMAIN * btree_domainp, int key_minmax)
int btree_compare_btids (void * mem_btid1, void * mem_btid2)
DB_VALUE_COMPARE_RESULT btree_compare_key (DB_VALUE * key1, DB_VALUE * key2, TP_DOMAIN * key_domain, int do_coercion, int total_order, int * start_colp)
int btree_create_file (THREAD_ENTRY * thread_p, const OID * class_oid, int attrid, BTID * btid)
int btree_create_overflow_key_file (THREAD_ENTRY * thread_p, BTID_INT * btid)
void btree_dump (THREAD_ENTRY * thread_p, FILE * fp, BTID * btid, int level)
int btree_dump_capacity (THREAD_ENTRY * thread_p, FILE * fp, BTID * btid)
void btree_dump_key (FILE * fp, const DB_VALUE * key)
int btree_find_foreign_key (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * class_oid, OID * found_oid)
DISK_ISVALID btree_find_key (THREAD_ENTRY * thread_p, BTID * btid, OID * oid, DB_VALUE * key, bool * clear_key)
int btree_find_min_or_max_key (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, int find_min_key)
TP_DOMAIN * btree_generate_prefix_domain (BTID_INT * btid)
int btree_get_asc_desc (THREAD_ENTRY * thread_p, BTID * btid, int col_idx, int * asc_desc)
int btree_get_btid_from_file (THREAD_ENTRY * thread_p, const VFID * vfid, BTID * btid_out)
int btree_get_class_oid_of_unique_btid (THREAD_ENTRY * thread_p, BTID * btid, OID * class_oid)
int btree_get_disk_size_of_key (DB_VALUE * key)
SCAN_CODE btree_get_next_key_info (THREAD_ENTRY * thread_p, BTID * btid, BTREE_SCAN * bts, int num_classes, OID * class_oids_ptr, INDX_SCAN_ID * index_scan_id_p, DB_VALUE ** key_info)
SCAN_CODE btree_get_next_node_info (THREAD_ENTRY * thread_p, BTID * btid, BTREE_NODE_SCAN * btns, DB_VALUE ** node_info)
int btree_get_num_visible_from_leaf_and_ovf (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * leaf_record, int offset_after_key, LEAF_REC * leaf_info, int * max_visible_oids, MVCC_SNAPSHOT * mvcc_snapshot, int * num_visible)
PERF_PAGE_TYPE btree_get_perf_btree_page_type (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr)
int btree_get_pkey_btid (THREAD_ENTRY * thread_p, OID * cls_oid, BTID * pkey_btid)
int btree_get_prefix_separator (const DB_VALUE * key1, const DB_VALUE * key2, DB_VALUE * prefix_key, TP_DOMAIN * key_domain)
void btree_get_root_vpid_from_btid (THREAD_ENTRY * thread_p, BTID * btid, VPID * root_vpid)
int btree_get_stats (THREAD_ENTRY * thread_p, BTREE_STATS * stat_info_p, bool with_fullscan)
int btree_get_unique_statistics (THREAD_ENTRY * thread_p, BTID * btid, long long * oid_cnt, long long * null_cnt, long long * key_cnt)
int btree_get_unique_statistics_for_count (THREAD_ENTRY * thread_p, BTID * btid, long long * oid_cnt, long long * null_cnt, long long * key_cnt)
int btree_glean_root_header_info (THREAD_ENTRY * thread_p, BTREE_ROOT_HEADER * root_header, BTID_INT * btid, bool is_key_type)
unsigned int btree_hash_btid (void * btid, int hash_size)
int btree_index_capacity (THREAD_ENTRY * thread_p, BTID * btid, BTREE_CAPACITY * cpc)
int btree_index_end_scan (THREAD_ENTRY * thread_p, void ** ptr)
SCAN_CODE btree_index_next_scan (THREAD_ENTRY * thread_p, int cursor, DB_VALUE ** out_values, int out_cnt, void * ptr)
int btree_index_start_scan (THREAD_ENTRY * thread_p, int show_type, DB_VALUE ** arg_values, int arg_cnt, void ** ptr)
int btree_initialize_new_page (THREAD_ENTRY * thread_p, PAGE_PTR page, void * args)
int btree_insert (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * cls_oid, OID * oid, int op_type, btree_unique_stats * unique_stat_info, int * unique, MVCC_REC_HEADER * p_mvcc_rec_header)
bool btree_is_btid_online_index (THREAD_ENTRY * thread_p, OID * class_oid, BTID * btid)
bool btree_is_unique_type (BTREE_TYPE type)
DISK_ISVALID btree_keyoid_checkscan_check (THREAD_ENTRY * thread_p, BTREE_CHECKSCAN * btscan, OID * cls_oid, DB_VALUE * key, OID * oid)
void btree_keyoid_checkscan_end (THREAD_ENTRY * thread_p, BTREE_CHECKSCAN * btscan)
int btree_keyoid_checkscan_start (THREAD_ENTRY * thread_p, BTID * btid, BTREE_CHECKSCAN * btscan)
int btree_keyval_search (THREAD_ENTRY * thread_p, BTID * btid, SCAN_OPERATION_TYPE scan_op_type, BTREE_SCAN * bts, key_val_range * kv_range, OID * class_oid, FILTER_INFO * filter, INDX_SCAN_ID * isidp, bool is_all_class_srch)
void btree_leaf_change_first_object (THREAD_ENTRY * thread_p, RECDES * recp, BTID_INT * btid, OID * oidp, OID * class_oidp, BTREE_MVCC_INFO * mvcc_info, int * key_offset, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
int btree_leaf_get_first_object (BTID_INT * btid, RECDES * recp, OID * oidp, OID * class_oid, BTREE_MVCC_INFO * mvcc_info)
void btree_leaf_record_change_overflow_link (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * leaf_record, VPID * new_overflow_vpid, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
int btree_locate_key (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, VPID * pg_vpid, INT16 * slot_id, PAGE_PTR * leaf_page_out, bool * found_p)
int btree_multicol_key_has_null (DB_VALUE * key)
bool btree_multicol_key_is_null (DB_VALUE * key)
int btree_mvcc_delete (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * class_oid, OID * oid, int op_type, btree_unique_stats * unique_stat_info, int * unique, MVCC_REC_HEADER * p_mvcc_rec_header)
void btree_mvcc_info_from_heap_mvcc_header (MVCC_REC_HEADER * mvcc_header, BTREE_MVCC_INFO * mvcc_info)
void btree_mvcc_info_to_heap_mvcc_header (BTREE_MVCC_INFO * mvcc_info, MVCC_REC_HEADER * mvcc_header)
int btree_online_index_check_unique_constraint (THREAD_ENTRY * thread_p, BTID * btid, const char * index_name, OID * class_oid)
int btree_online_index_dispatcher (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * cls_oid, OID * oid, int unique, BTREE_OP_PURPOSE purpose, LOG_LSA * undo_nxlsa)
int btree_online_index_list_dispatcher (THREAD_ENTRY * thread_p, BTID * btid, OID * class_oid, btree_insert_list * insert_list, int unique, BTREE_OP_PURPOSE purpose, LOG_LSA * undo_nxlsa)
char * btree_pack_mvccinfo (char * ptr, BTREE_MVCC_INFO * mvcc_info)
int btree_packed_mvccinfo_size (BTREE_MVCC_INFO * mvcc_info)
int btree_physical_delete (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * oid, OID * class_oid, int * unique, int op_type, btree_unique_stats * unique_stat_info)
int btree_prepare_bts (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, BTID * btid, INDX_SCAN_ID * index_scan_id_p, key_val_range * kv_range, FILTER_INFO * filter, const OID * match_class_oid, DB_BIGINT * key_limit_upper, DB_BIGINT * key_limit_lower, bool need_to_check_null, void * bts_other)
int btree_range_scan (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, BTREE_RANGE_SCAN_PROCESS_KEY_FUNC * key_func)
void btree_range_scan_free_matched_idx (BTREE_SCAN * bts)
int btree_range_scan_select_visible_oids (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
TP_DOMAIN * btree_read_key_type (THREAD_ENTRY * thread_p, BTID * btid)
int btree_read_record (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR pgptr, RECDES * rec, DB_VALUE * key, void * rec_header, BTREE_NODE_TYPE node_type, bool * clear_key, int * offset, int copy_key, BTREE_SCAN * bts)
int btree_reflect_global_unique_statistics (THREAD_ENTRY * thread_p, GLOBAL_UNIQUE_STATS * unique_stat_info, bool only_active_tran)
int btree_remake_foreign_key_with_PK (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * class_oid, key_val_range * kv_range, bool * is_newly)
int btree_remake_reference_key_with_FK (THREAD_ENTRY * thread_p, TP_DOMAIN * pk_domain, DB_VALUE * fk_key, DB_VALUE * new_key)
DISK_ISVALID btree_repair_prev_link (THREAD_ENTRY * thread_p, OID * oid, BTID * index_btid, bool repair)
void btree_reset_common_prefix_page_info (BTREE_SCAN * bts)
void btree_rv_keyval_dump (FILE * fp, int length, void * data)
int btree_rv_keyval_undo_delete (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_keyval_undo_insert (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_keyval_undo_insert_mvcc_delid (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_keyval_undo_insert_unique (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_keyval_undo_online_index_tran_delete (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_keyval_undo_online_index_tran_insert (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_newpage_redo_init (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_nodehdr_redo_insert (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_nodehdr_undo_insert (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_nodehdr_undoredo_update (THREAD_ENTRY * thread_p, LOG_RCV * recv)
void btree_rv_noderec_dump (FILE * fp, int length, void * data)
void btree_rv_noderec_dump_slot_id (FILE * fp, int length, void * data)
int btree_rv_noderec_redo_insert (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_noderec_undo_insert (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_noderec_undoredo_update (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_nop (THREAD_ENTRY * thread_p, LOG_RCV * recv)
void btree_rv_ovfid_dump (FILE * fp, int length, void * data)
int btree_rv_ovfid_undoredo_update (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_pagerec_delete (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_pagerec_insert (THREAD_ENTRY * thread_p, LOG_RCV * recv)
void btree_rv_read_keybuf_nocopy (THREAD_ENTRY * thread_p, char * datap, int data_size, BTID_INT * btid, OID * cls_oid, OID * oid, BTREE_MVCC_INFO * mvcc_info, OR_BUF * key_buf)
void btree_rv_read_keybuf_two_objects (THREAD_ENTRY * thread_p, char * datap, int data_size, BTID_INT * btid_int, BTREE_OBJECT_INFO * first_version, BTREE_OBJECT_INFO * second_version, OR_BUF * key_buf)
int btree_rv_read_keyval_info_nocopy (THREAD_ENTRY * thread_p, char * datap, int data_size, BTID_INT * btid, OID * cls_oid, OID * oid, BTREE_MVCC_INFO * mvcc_info, DB_VALUE * key)
int btree_rv_redo_global_unique_stats_commit (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_redo_record_modify (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int btree_rv_remove_marked_for_delete (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int btree_rv_remove_unique_stats (THREAD_ENTRY * thread_p, LOG_RCV * recv)
void btree_rv_roothdr_dump (FILE * fp, int length, void * data)
int btree_rv_roothdr_undo_update (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_save_keyval_for_undo (BTID_INT * btid, DB_VALUE * key, OID * cls_oid, OID * oid, BTREE_MVCC_INFO * mvcc_info, BTREE_OP_PURPOSE purpose, char * preallocated_buffer, char ** data, int * capacity, int * length)
int btree_rv_undo_global_unique_stats_commit (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_undo_mark_dealloc_page (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int btree_rv_undo_record_modify (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int btree_rv_undoredo_copy_page (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int btree_rv_update_tran_stats (THREAD_ENTRY * thread_p, LOG_RCV * recv)
void btree_rv_util_dump_leafrec (THREAD_ENTRY * thread_p, FILE * fp, BTID_INT * btid, RECDES * rec)
void btree_rv_util_dump_nleafrec (THREAD_ENTRY * thread_p, FILE * fp, BTID_INT * btid, RECDES * rec)
int btree_rv_util_save_page_records (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr, INT16 first_slotid, int rec_cnt, INT16 ins_slotid, char * data, int * length)
void btree_scan_clear_key (BTREE_SCAN * btree_scan)
int btree_set_error (THREAD_ENTRY * thread_p, const DB_VALUE * key, const OID * obj_oid, const OID * class_oid, const BTID * btid, const char * bt_name, int severity, int err_id, const char * filename, int lineno)
void btree_set_mvcc_flags_into_oid (MVCC_REC_HEADER * p_mvcc_header, OID * oid)
void btree_set_mvcc_header_ids_for_update (THREAD_ENTRY * thread_p, bool do_delete_only, bool do_insert_only, MVCCID * mvcc_id, MVCC_REC_HEADER * mvcc_rec_header)
int btree_update (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * old_key, DB_VALUE * new_key, OID * cls_oid, OID * oid, int op_type, btree_unique_stats * unique_stat_info, int * unique, MVCC_REC_HEADER * p_mvcc_rec_header)
int btree_vacuum_insert_mvccid (THREAD_ENTRY * thread_p, BTID * btid, OR_BUF * buffered_key, OID * oid, OID * class_oid, MVCCID insert_mvccid)
int btree_vacuum_object (THREAD_ENTRY * thread_p, BTID * btid, OR_BUF * buffered_key, OID * oid, OID * class_oid, MVCCID delete_mvccid)
DISK_ISVALID btree_verify_tree (THREAD_ENTRY * thread_p, const OID * class_oid_p, BTID_INT * btid_int, const char * btname)
int btree_write_record (THREAD_ENTRY * thread_p, BTID_INT * btid, void * node_rec, DB_VALUE * key, BTREE_NODE_TYPE node_type, int key_type, int key_len, bool during_loading, OID * class_oid, OID * oid, BTREE_MVCC_INFO * mvcc_info, RECDES * rec)
void bts_reset_scan (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
BTID * xbtree_add_index (THREAD_ENTRY * thread_p, BTID * btid, TP_DOMAIN * key_type, OID * class_oid, int attr_id, int unique_pk, long long num_oids, long long num_nulls, long long num_keys, int deduplicate_key_pos)
int xbtree_class_test_unique (THREAD_ENTRY * thread_p, char * buf, int buf_size)
int xbtree_delete_index (THREAD_ENTRY * thread_p, BTID * btid)
BTREE_SEARCH xbtree_find_multi_uniques (THREAD_ENTRY * thread_p, OID * class_oid, int pruning_type, BTID * btids, DB_VALUE * values, int count, SCAN_OPERATION_TYPE op_type, OID ** oids, int * oids_count)
BTREE_SEARCH xbtree_find_unique (THREAD_ENTRY * thread_p, BTID * btid, SCAN_OPERATION_TYPE scan_op_type, DB_VALUE * key, OID * class_oid, OID * oid, bool is_all_class_srch)
int xbtree_get_key_type (THREAD_ENTRY * thread_p, BTID btid, TP_DOMAIN ** key_type)
int xbtree_get_unique_pk (THREAD_ENTRY * thread_p, BTID * btid)

Public Static Functions

Type Name
void BTREE_RV_GET_DATA_LENGTH (const char * rv_ptr, const char * rv_start, int & rv_length)
void btree_add_mvccid (RECDES * rec, int oid_offset, int mvccid_offset, MVCCID mvccid, short flag, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
int btree_advance_and_find_key (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * crt_page, PAGE_PTR * advance_to_page, bool * is_leaf, BTREE_SEARCH_KEY_HELPER * search_key, bool * stop, bool * restart, void * other_args)
void btree_append_oid (RECDES * rec, OID * oid)
int btree_apply_key_range_and_filter (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, bool is_iss, bool * key_range_satisfied, bool * key_filter_satisfied)
DISK_ISVALID btree_check_by_btid (THREAD_ENTRY * thread_p, BTID * btid)
void btree_check_decompress_key (BTREE_SCAN * bts)
bool btree_check_locking_for_delete_unique (THREAD_ENTRY * thread_p, const BTREE_DELETE_HELPER * delete_helper)
bool btree_check_locking_for_insert_unique (THREAD_ENTRY * thread_p, const BTREE_INSERT_HELPER * insert_helper)
DISK_ISVALID btree_check_page_key (THREAD_ENTRY * thread_p, const OID * class_oid_p, BTID_INT * btid, const char * btname, PAGE_PTR page_ptr, VPID * page_vpid)
DISK_ISVALID btree_check_pages (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR pg_ptr, VPID * pg_vpid)
DISK_ISVALID btree_check_tree (THREAD_ENTRY * thread_p, const OID * class_oid_p, BTID * btid, const char * btname)
int btree_compare_individual_key_value (DB_VALUE * key1, DB_VALUE * key2, TP_DOMAIN * key_domain)
int btree_compress_node (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr)
int btree_count_oids (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, char * object_ptr, OID * oid, OID * class_oid, MVCC_REC_HEADER * mvcc_header, bool * stop, void * args)
void btree_delete_helper_to_insert_helper (BTREE_DELETE_HELPER * delete_helper, BTREE_INSERT_HELPER * insert_helper)
int btree_delete_internal (THREAD_ENTRY * thread_p, BTID * btid, OID * oid, OID * class_oid, BTREE_MVCC_INFO * mvcc_info, DB_VALUE * key, OR_BUF * buffered_key, int * unique, int op_type, btree_unique_stats * unique_stat_info, BTREE_MVCC_INFO * match_mvccinfo, LOG_LSA * undo_nxlsa, BTREE_OBJECT_INFO * second_obj_info, BTREE_OP_PURPOSE purpose)
int btree_delete_key_from_leaf (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR leaf_pg, LEAF_REC * leafrec_pnt, BTREE_DELETE_HELPER * delete_helper, BTREE_SEARCH_KEY_HELPER * search_key)
int btree_delete_meta_record (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr, int slot_id)
int btree_delete_overflow_key (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr, INT16 slot_id, BTREE_NODE_TYPE node_type)
int btree_delete_postponed (THREAD_ENTRY * thread_p, BTID * btid, OR_BUF * buffered_key, BTREE_OBJECT_INFO * btree_obj, MVCCID tran_mvccid, LOG_LSA * reference_lsa)
void btree_delete_sysop_end (THREAD_ENTRY * thread_p, BTREE_DELETE_HELPER * helper)
int btree_dump_curr_key (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, FILTER_INFO * filter, OID * oid, INDX_SCAN_ID * iscan_id)
void btree_dump_leaf_record (THREAD_ENTRY * thread_p, FILE * fp, BTID_INT * btid, RECDES * rec, int n)
void btree_dump_non_leaf_record (THREAD_ENTRY * thread_p, FILE * fp, BTID_INT * btid, RECDES * rec, int n, int print_key)
void btree_dump_page (THREAD_ENTRY * thread_p, FILE * fp, const OID * class_oid_p, BTID_INT * btid, const char * btname, PAGE_PTR page_ptr, VPID * pg_vpid, int depth, int level)
void btree_dump_page_with_subtree (THREAD_ENTRY * thread_p, FILE * fp, BTID_INT * btid, PAGE_PTR pg_ptr, VPID * pg_vpid, int depth, int level)
void btree_dump_root_header (THREAD_ENTRY * thread_p, FILE * fp, PAGE_PTR page_ptr)
PAGE_PTR btree_find_AR_sampling_leaf (THREAD_ENTRY * thread_p, BTID * btid, VPID * pg_vpid, BTREE_STATS * stat_info_p)
PAGE_PTR btree_find_boundary_leaf (THREAD_ENTRY * thread_p, BTID * btid, VPID * pg_vpid, BTREE_STATS * stat_info, BTREE_BOUNDARY where)
int btree_find_free_overflow_oids_page (THREAD_ENTRY * thread_p, BTID_INT * btid, VPID * first_ovfl_vpid, PAGE_PTR * overflow_page)
DISK_ISVALID btree_find_key_from_leaf (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR pg_ptr, int key_cnt, OID * oid, DB_VALUE * key, bool * clear_key)
DISK_ISVALID btree_find_key_from_nleaf (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR pg_ptr, int key_cnt, OID * oid, DB_VALUE * key, bool * clear_key)
DISK_ISVALID btree_find_key_from_page (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR pg_ptr, OID * oid, DB_VALUE * key, bool * clear_key)
PAGE_PTR btree_find_leftmost_leaf (THREAD_ENTRY * thread_p, BTID * btid, VPID * pg_vpid, BTREE_STATS * stat_info_p)
int btree_find_lower_bound_leaf (THREAD_ENTRY * thread_p, BTREE_SCAN * BTS, BTREE_STATS * stat_info_p)
int btree_find_next_index_record (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
int btree_find_next_index_record_holding_current (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, RECDES * peek_rec)
int btree_find_next_index_record_holding_current_helper (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, PAGE_PTR first_page)
int btree_find_oid_and_its_page (THREAD_ENTRY * thread_p, BTID_INT * btid_int, OID * oid, PAGE_PTR leaf_page, BTREE_OP_PURPOSE purpose, BTREE_MVCC_INFO * match_mvccinfo, RECDES * leaf_record, LEAF_REC * leaf_rec_info, int after_key_offset, PAGE_PTR * found_page, PAGE_PTR * prev_page, int * offset_to_object, BTREE_MVCC_INFO * object_mvcc_info)
int btree_find_oid_does_mvcc_info_match (THREAD_ENTRY * thread_p, BTREE_MVCC_INFO * mvcc_info, BTREE_OP_PURPOSE purpose, BTREE_MVCC_INFO * match_mvccinfo, bool * is_match)
int btree_find_oid_from_leaf (THREAD_ENTRY * thread_p, BTID_INT * btid, RECDES * leaf_record, int after_key_offset, OID * oid, BTREE_MVCC_INFO * match_mvccinfo, BTREE_OP_PURPOSE purpose, int * offset_to_object, BTREE_MVCC_INFO * mvcc_info)
int btree_find_oid_from_ovfl (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR overflow_page, OID * oid, BTREE_OP_PURPOSE purpose, BTREE_MVCC_INFO * match_mvccinfo, int * offset_to_object, BTREE_MVCC_INFO * mvcc_info)
int btree_find_oid_with_page_and_record (THREAD_ENTRY * thread_p, BTID_INT * btid_int, OID * oid, PAGE_PTR leaf_page, BTREE_OP_PURPOSE purpose, BTREE_MVCC_INFO * match_mvccinfo, RECDES * record, LEAF_REC * leaf_info, int offset_after_key, PAGE_PTR * found_page, PAGE_PTR * prev_page, int * offset_to_object, BTREE_MVCC_INFO * object_mvcc_info, RECDES * new_record)
PAGE_PTR btree_find_rightmost_leaf (THREAD_ENTRY * thread_p, BTID * btid, VPID * pg_vpid, BTREE_STATS * stat_info_p)
DB_VALUE * btree_find_split_point (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr, int * mid_slot, DB_VALUE * key, BTREE_INSERT_HELPER * helper, bool * clear_midkey)
int btree_fix_root_for_delete (THREAD_ENTRY * thread_p, BTID * btid, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * root_page, bool * is_leaf, BTREE_SEARCH_KEY_HELPER * search_key, bool * stop, bool * restart, void * other_args)
int btree_fix_root_for_insert (THREAD_ENTRY * thread_p, BTID * btid, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * root_page, bool * is_leaf, BTREE_SEARCH_KEY_HELPER * search_key, bool * stop, bool * restart, void * other_args)
PAGE_PTR btree_fix_root_with_info (THREAD_ENTRY * thread_p, BTID * btid, PGBUF_LATCH_MODE latch_mode, VPID * root_vpid_p, BTREE_ROOT_HEADER ** root_header_p, BTID_INT * btid_int_p)
int btree_fk_object_does_exist (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, char * object_ptr, OID * oid, OID * class_oid, BTREE_MVCC_INFO * mvcc_info, bool * stop, void * args)
MVCCID btree_get_creator_mvccid (THREAD_ENTRY * thread_p, PAGE_PTR root_page)
int btree_get_max_new_data_size (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR page, BTREE_NODE_TYPE node_type, int key_len, BTREE_INSERT_HELPER * helper, bool known_to_be_found)
PAGE_PTR btree_get_new_page (THREAD_ENTRY * thread_p, BTID_INT * btid, VPID * vpid, VPID * near_vpid)
PAGE_PTR btree_get_next_page (THREAD_ENTRY * thread_p, PAGE_PTR page_p)
int btree_get_next_page_vpid (THREAD_ENTRY * thread_p, PAGE_PTR leaf_page, VPID * next_vpid)
int btree_get_node_level (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr)
int btree_get_num_visible_oids_from_all_ovf (THREAD_ENTRY * thread_p, BTID_INT * btid, VPID * first_ovfl_vpid, int * num_visible_oids, int * max_visible_oids, MVCC_SNAPSHOT * mvcc_snapshot)
int btree_get_root_with_key (THREAD_ENTRY * thread_p, BTID * btid, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * root_page, bool * is_leaf, BTREE_SEARCH_KEY_HELPER * search_key, bool * stop, bool * restart, void * other_args)
int btree_get_stats_key (THREAD_ENTRY * thread_p, BTREE_STATS_ENV * env, MVCC_SNAPSHOT * mvcc_snapshot)
int btree_get_stats_midxkey (THREAD_ENTRY * thread_p, BTREE_STATS_ENV * env, DB_MIDXKEY * midxkey)
int btree_get_stats_with_AR_sampling (THREAD_ENTRY * thread_p, BTREE_STATS_ENV * env)
int btree_get_stats_with_fullscan (THREAD_ENTRY * thread_p, BTREE_STATS_ENV * env)
int btree_get_subtree_capacity (THREAD_ENTRY * thread_p, PAGE_PTR pg_ptr, BTREE_CAPACITY * cpc, BTREE_STATS_ENV * env)
int btree_get_subtree_stats (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR pg_ptr, BTREE_STATS_ENV * env)
int btree_ils_adjust_range (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
void btree_insert_helper_to_delete_helper (BTREE_INSERT_HELPER * insert_helper, BTREE_DELETE_HELPER * delete_helper)
int btree_insert_internal (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * class_oid, OID * oid, int op_type, btree_unique_stats * unique_stat_info, int * unique, BTREE_MVCC_INFO * mvcc_info, LOG_LSA * undo_nxlsa, BTREE_OP_PURPOSE purpose)
int btree_insert_mvcc_delid_into_page (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr, BTREE_NODE_TYPE node_type, DB_VALUE * key, BTREE_INSERT_HELPER * insert_helper, PGSLOTID slot_id, RECDES * rec, int oid_offset)
void btree_insert_object_ordered_by_oid (THREAD_ENTRY * thread_p, RECDES * record, BTID_INT * btid_int, BTREE_OBJECT_INFO * object_info, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr, int * offset_to_objptr)
void btree_insert_sysop_end (THREAD_ENTRY * thread_p, BTREE_INSERT_HELPER * helper)
bool btree_is_class_oid_packed (BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, bool is_first)
bool btree_is_delete_data_purpose (BTREE_OP_PURPOSE purpose)
bool btree_is_delete_object_purpose (BTREE_OP_PURPOSE purpose)
bool btree_is_fence_key (PAGE_PTR leaf_page, PGSLOTID slotid)
bool btree_is_fixed_size (BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, bool is_first)
bool btree_is_insert_data_purpose (BTREE_OP_PURPOSE purpose)
bool btree_is_insert_delid_purpose (BTREE_OP_PURPOSE purpose)
bool btree_is_insert_object_purpose (BTREE_OP_PURPOSE purpose)
int btree_is_key_visible (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR pg_ptr, MVCC_SNAPSHOT * mvcc_snapshot, int slot_id, bool * is_visible, DB_VALUE * key_value)
bool btree_is_online_index_loading (BTREE_OP_PURPOSE purpose)
bool btree_is_same_key_for_stats (BTREE_STATS_ENV * env, DB_VALUE * key_value)
bool btree_is_single_object_key (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_NODE_TYPE node_type, RECDES * record, int offset_after_key)
int btree_iss_set_key (BTREE_SCAN * bts, INDEX_SKIP_SCAN * iss)
int btree_key_append_object_as_new_overflow (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR leaf_page, BTREE_OBJECT_INFO * object_info, BTREE_INSERT_HELPER * insert_helper, BTREE_SEARCH_KEY_HELPER * search_key, RECDES * leaf_rec, VPID * first_ovfl_vpid)
int btree_key_append_object_into_ovf (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR leaf, BTREE_SEARCH_KEY_HELPER * search_key, RECDES * leaf_record, LEAF_REC * leaf_record_info, BTREE_INSERT_HELPER * insert_helper, BTREE_OBJECT_INFO * append_object)
int btree_key_append_object_non_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR leaf, BTREE_SEARCH_KEY_HELPER * search_key, RECDES * leaf_record, int offset_after_key, LEAF_REC * leaf_info, BTREE_OBJECT_INFO * btree_obj, BTREE_INSERT_HELPER * insert_helper)
int btree_key_append_object_to_overflow (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR ovfl_page, BTREE_OBJECT_INFO * object_info, BTREE_INSERT_HELPER * insert_helper)
int btree_key_append_object_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR leaf, BTREE_SEARCH_KEY_HELPER * search_key, RECDES * leaf_record, LEAF_REC * leaf_record_info, int offset_after_key, BTREE_INSERT_HELPER * insert_helper, BTREE_OBJECT_INFO * first_object)
int btree_key_delete_remove_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_find_and_insert_delete_mvccid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_find_and_lock_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_find_and_lock_unique_of_non_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_find_and_lock_unique_of_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
BTREE_SEARCH btree_key_find_first_visible_row (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * rec, int offset, BTREE_NODE_TYPE node_type, OID * oid, OID * class_oid, int max_oids)
BTREE_SEARCH btree_key_find_first_visible_row_from_all_ovf (THREAD_ENTRY * thread_p, BTID_INT * btid_int, VPID * first_ovfl_vpid, OID * oid, OID * class_oid)
int btree_key_find_unique_version_oid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_insert_delete_mvccid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, BTREE_INSERT_HELPER * insert_helper, RECDES * leaf_record, PAGE_PTR object_page, int offset_to_found_object)
bool btree_key_insert_does_leaf_need_split (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR leaf_page, BTREE_INSERT_HELPER * insert_helper, BTREE_SEARCH_KEY_HELPER * search_key)
int btree_key_insert_new_key (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR leaf_page, BTREE_INSERT_HELPER * insert_helper, BTREE_SEARCH_KEY_HELPER * search_key)
int btree_key_insert_new_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_lock_and_append_object_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf, bool * restart, BTREE_SEARCH_KEY_HELPER * search_key, BTREE_INSERT_HELPER * insert_helper, RECDES * leaf_record)
int btree_key_lock_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, PAGE_PTR * overflow_page, OID * oid, OID * class_oid, LOCK lock_mode, BTREE_SEARCH_KEY_HELPER * search_key, bool try_cond_lock, bool * restart, bool * was_page_refixed)
int btree_key_online_index_IB_insert (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_online_index_IB_insert_list (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_online_index_tran_delete (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_online_index_tran_insert (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_online_index_tran_insert_DF (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_process_objects (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * leaf_record, int after_key_offset, LEAF_REC * leaf_info, BTREE_PROCESS_OBJECT_FUNCTION * func, void * args)
void btree_key_record_check_no_visible (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR leaf_page, PGSLOTID slotid)
int btree_key_relocate_last_into_ovf (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR leaf, BTREE_SEARCH_KEY_HELPER * search_key, RECDES * leaf_record, LEAF_REC * leaf_record_info, int offset_after_key, BTREE_INSERT_HELPER * insert_helper)
int btree_key_remove_delete_mvccid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_remove_delete_mvccid_non_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR page, RECDES * record, PGSLOTID slotid, BTREE_NODE_TYPE node_type, int offset_to_object)
int btree_key_remove_delete_mvccid_unique (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, BTREE_SEARCH_KEY_HELPER * search_key, PAGE_PTR leaf_page, RECDES * leaf_record, PAGE_PTR overflow_page, RECDES * overflow_record, BTREE_NODE_TYPE node_type, int offset_to_object)
int btree_key_remove_insert_mvccid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
int btree_key_remove_object (THREAD_ENTRY * thread_p, DB_VALUE * key, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR leaf_page, RECDES * leaf_record, LEAF_REC * leaf_info, int offset_after_key, BTREE_SEARCH_KEY_HELPER * search_key, PAGE_PTR * overflow_page, PAGE_PTR prev_page, BTREE_NODE_TYPE node_type, int offset_to_object)
int btree_key_remove_object_and_keep_visible_first (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, bool * restart, void * other_args)
void btree_leaf_clear_flag (RECDES * recp, short record_flag)
short btree_leaf_get_flag (RECDES * recp)
char * btree_leaf_get_nth_oid_ptr (BTID_INT * btid, RECDES * recp, BTREE_NODE_TYPE node_type, int oid_list_offset, int n)
int btree_leaf_get_vpid_for_overflow_oids (RECDES * rec, VPID * vpid)
bool btree_leaf_is_flaged (RECDES * recp, short record_flag)
int btree_leaf_is_key_between_min_max (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR leaf, DB_VALUE * key, BTREE_SEARCH_KEY_HELPER * search_key)
bool btree_leaf_lsa_eq (THREAD_ENTRY * thread_p, LOG_LSA * a, LOG_LSA * b)
void btree_leaf_record_handle_first_overflow (THREAD_ENTRY * thread_p, RECDES * recp, BTID_INT * btid_int, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
int btree_leaf_record_replace_first_with_last (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR leaf_page, RECDES * leaf_record, BTREE_SEARCH_KEY_HELPER * search_key, OID * last_oid, OID * last_class_oid, BTREE_MVCC_INFO * last_mvcc_info, int offset_to_last_object)
int btree_leaf_remove_object (THREAD_ENTRY * thread_p, DB_VALUE * key, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR leaf_page, RECDES * leaf_record, LEAF_REC * leaf_rec_info, int offset_after_key, BTREE_SEARCH_KEY_HELPER * search_key, int offset_to_object)
void btree_leaf_set_flag (RECDES * recp, short record_flag)
int btree_load_overflow_key (THREAD_ENTRY * thread_p, BTID_INT * btid, VPID * firstpg_vpid, DB_VALUE * key, BTREE_NODE_TYPE node_type)
void btree_make_complete_key_including_prefix (BTREE_SCAN * bts, DB_VALUE * common_prefix_key, int common_prefix_size)
int btree_merge_node (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR P, PAGE_PTR Q, PAGE_PTR R, INT16 p_slot_id, VPID * child_vpid, BTREE_MERGE_STATUS status)
int btree_merge_node_and_advance (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * crt_page, PAGE_PTR * advance_to_page, bool * is_leaf, BTREE_SEARCH_KEY_HELPER * search_key, bool * stop, bool * restart, void * other_args)
int btree_merge_root (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR P, PAGE_PTR Q, PAGE_PTR R)
int btree_modify_leaf_ovfl_vpid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR leaf_page, RECDES * leaf_record, BTREE_SEARCH_KEY_HELPER * search_key, VPID * next_ovfl_vpid)
int btree_modify_overflow_link (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR ovfl_page, VPID * next_ovfl_vpid)
int btree_node_calculate_common_prefix (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr)
int btree_node_get_common_prefix (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr)
BTREE_MERGE_STATUS btree_node_mergeable (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR L, PAGE_PTR R)
int btree_node_size_uncompressed (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr)
void btree_online_index_change_state (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, int offset_to_object, MVCCID new_state, char ** rv_undo_data, char ** rv_redo_data)
void btree_online_index_check_state (MVCCID state)
bool btree_online_index_is_delete_flag_state (MVCCID state)
bool btree_online_index_is_insert_flag_state (MVCCID state)
bool btree_online_index_is_normal_state (MVCCID state)
void btree_online_index_set_delete_flag_state (MVCCID & state)
void btree_online_index_set_insert_flag_state (MVCCID & state)
void btree_online_index_set_normal_state (MVCCID & state)
const char * btree_op_type_to_string (int op_type)
int btree_or_get_mvccinfo (OR_BUF * buf, BTREE_MVCC_INFO * mvcc_info, short btree_mvcc_flags)
int btree_or_get_object (OR_BUF * buf, BTID_INT * btid_int, BTREE_NODE_TYPE node_type, int after_key_offset, OID * oid, OID * class_oid, BTREE_MVCC_INFO * mvcc_info)
int btree_or_put_mvccinfo (OR_BUF * buf, BTREE_MVCC_INFO * mvcc_info)
int btree_or_put_object (OR_BUF * buf, BTID_INT * btid_int, BTREE_NODE_TYPE node_type, BTREE_OBJECT_INFO * object_info)
int btree_overflow_record_replace_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR overflow_page, RECDES * overflow_record, int * offset_to_replaced_object, BTREE_OBJECT_INFO * replacing_object)
int btree_overflow_remove_object (THREAD_ENTRY * thread_p, DB_VALUE * key, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR * overflow_page, PAGE_PTR prev_page, PAGE_PTR leaf_page, RECDES * leaf_record, BTREE_SEARCH_KEY_HELPER * search_key, int offset_to_object)
char * btree_pack_object (char * ptr, BTID_INT * btid_int, BTREE_NODE_TYPE node_type, RECDES * record, BTREE_OBJECT_INFO * object_info)
void btree_perf_ovf_oids_fix_time (THREAD_ENTRY * thread_p, PERF_UTIME_TRACKER * track)
void btree_perf_track_time (THREAD_ENTRY * thread_p, Helper * helper)
void btree_perf_track_traverse_time (THREAD_ENTRY * thread_p, Helper * helper)
void btree_perf_unique_lock_time (THREAD_ENTRY * thread_p, PERF_UTIME_TRACKER * track, LOCK lock)
void btree_print_space (FILE * fp, int n)
const char * btree_purpose_to_string (BTREE_OP_PURPOSE purpose)
int btree_range_opt_check_add_index_key (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, MULTI_RANGE_OPT * multi_range_opt, OID * p_new_oid, bool * key_added)
int btree_range_scan_advance_over_filtered_keys (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
void btree_range_scan_alloc_matched_idx (BTREE_SCAN * bts)
int btree_range_scan_count_oids_leaf_and_one_ovf (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
int btree_range_scan_descending_fix_prev_leaf (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, int * key_count, BTREE_NODE_HEADER ** node_header_ptr, VPID * next_vpid)
int btree_range_scan_find_fk_any_object (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
int btree_range_scan_read_record (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
int btree_range_scan_resume (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
int btree_range_scan_start (THREAD_ENTRY * thread_p, BTREE_SCAN * bts)
void btree_read_fixed_portion_of_non_leaf_record (RECDES * rec, NON_LEAF_REC * nlf_rec)
int btree_read_fixed_portion_of_non_leaf_record_from_orbuf (OR_BUF * buf, NON_LEAF_REC * nlf_rec)
int btree_read_record_in_leafpage (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, int copy_key, BTREE_SCAN * bts)
int btree_read_record_without_decompression (THREAD_ENTRY * thread_p, BTID_INT * btid, RECDES * Rec, DB_VALUE * key, void * rec_header, BTREE_NODE_TYPE node_type, bool * clear_key, int * offset, int copy)
int btree_recompress_record (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, DB_VALUE * fence_key, int old_prefix, int new_prefix)
void btree_record_add_delid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, int offset_to_object, MVCCID delete_mvccid, char ** rv_undo_data, char ** rv_redo_data)
void btree_record_append_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, BTREE_OBJECT_INFO * object_info, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
int btree_record_get_last_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * recp, BTREE_NODE_TYPE node_type, int after_key_offset, OID * oidp, OID * class_oid, BTREE_MVCC_INFO * mvcc_info, int * last_oid_mvcc_offset)
int btree_record_get_num_oids (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * rec, int offset, BTREE_NODE_TYPE node_type)
int btree_record_get_num_visible_oids (THREAD_ENTRY * thread_p, BTID_INT * btid, RECDES * rec, int oid_offset, BTREE_NODE_TYPE node_type, int * max_visible_oids, MVCC_SNAPSHOT * mvcc_snapshot, int * num_visible)
void btree_record_object_clear_mvcc_flags (char * rec_data, short mvcc_flags)
short btree_record_object_get_mvcc_flags (char * data)
bool btree_record_object_is_flagged (char * data, short mvcc_flag)
void btree_record_object_set_mvcc_flags (char * data, short mvcc_flags)
int btree_record_process_objects (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_NODE_TYPE node_type, RECDES * record, int after_key_offset, bool * stop, BTREE_PROCESS_OBJECT_FUNCTION * func, void * args)
void btree_record_remove_delid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, int offset_to_object, char ** rv_undo_data, char ** rv_redo_data)
void btree_record_remove_insid (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, int offset_to_object, char ** rv_undo_data, char ** rv_redo_data, int * displacement)
void btree_record_remove_last_object (THREAD_ENTRY * thread_p, BTID_INT * btid, RECDES * recp, BTREE_NODE_TYPE node_type, int last_oid_mvcc_offset, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
int btree_record_remove_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR page, RECDES * record, BTREE_SEARCH_KEY_HELPER * search_key, BTREE_NODE_TYPE node_type, int offset_to_object, LOG_DATA_ADDR * addr)
void btree_record_remove_object_internal (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, int offset_to_object, char ** rv_undo_data, char ** rv_redo_data, int * displacement)
void btree_record_replace_object (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, BTREE_NODE_TYPE node_type, int * offset_to_replaced, BTREE_OBJECT_INFO * replacement, char ** rv_undo_data, char ** rv_redo_data)
int btree_record_satisfies_snapshot (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, char * object_ptr, OID * oid, OID * class_oid, BTREE_MVCC_INFO * mvcc_info, bool * stop, void * args)
int btree_remove_delete_mvccid_unique_internal (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_DELETE_HELPER * helper, PAGE_PTR leaf_page, RECDES * leaf_record, BTREE_NODE_TYPE node_type, PAGE_PTR overflow_page, RECDES * overflow_record, int offset_to_object, char ** rv_undo_data, char ** rv_redo_data)
void btree_remove_mvccid (RECDES * record, int oid_offset, int mvccid_offset, short flag, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
DISK_ISVALID btree_repair_prev_link_by_btid (THREAD_ENTRY * thread_p, BTID * btid, bool repair, char * index_name)
DISK_ISVALID btree_repair_prev_link_by_class_oid (THREAD_ENTRY * thread_p, OID * oid, BTID * idx_btid, bool repair)
int btree_replace_first_oid_with_ovfl_oid (THREAD_ENTRY * thread_p, BTID_INT * btid, DB_VALUE * key, BTREE_DELETE_HELPER * delete_helper, PAGE_PTR leaf_page, BTREE_SEARCH_KEY_HELPER * search_key, RECDES * leaf_rec, VPID * ovfl_vpid)
void btree_rv_log_delete_object (THREAD_ENTRY * thread_p, const BTREE_DELETE_HELPER & delete_helper, LOG_DATA_ADDR & addr, int undo_length, int redo_length, const char * undo_data, const char * redo_data)
void btree_rv_log_insert_object (THREAD_ENTRY * thread_p, const BTREE_INSERT_HELPER & insert_helper, LOG_DATA_ADDR & addr, int undo_length, int redo_length, const char * undo_data, const char * redo_data)
int btree_rv_record_modify_internal (THREAD_ENTRY * thread_p, LOG_RCV * rcv, bool is_undo)
int btree_rv_save_keyval_for_undo_two_objects (BTID_INT * btid, DB_VALUE * key, BTREE_OBJECT_INFO * first_version, BTREE_OBJECT_INFO * second_version, BTREE_OP_PURPOSE purpose, char * preallocated_buffer, char ** data, int * capacity, int * length)
int btree_rv_write_log_record (char * log_rec, int * log_length, RECDES * recp, BTREE_NODE_TYPE node_type)
int btree_rv_write_log_record_for_key_insert (char * log_rec, int * log_length, INT16 key_len, RECDES * recp)
SCAN_CODE btree_scan_for_show_index_capacity (THREAD_ENTRY * thread_p, DB_VALUE ** out_values, int out_cnt, const char * class_name, OR_INDEX * index_p)
SCAN_CODE btree_scan_for_show_index_header (THREAD_ENTRY * thread_p, DB_VALUE ** out_values, int out_cnt, const char * class_name, OR_INDEX * index_p, OID * class_oid_p)
int btree_scan_update_range (THREAD_ENTRY * thread_p, BTREE_SCAN * bts, key_val_range * kv_range)
int btree_search_key_and_apply_functions (THREAD_ENTRY * thread_p, BTID * btid, BTID_INT * btid_int, DB_VALUE * key, BTREE_ROOT_WITH_KEY_FUNCTION * root_fnct, void * root_args, BTREE_ADVANCE_WITH_KEY_FUNCTION * advance_fnct, void * advance_args, BTREE_PROCESS_KEY_FUNCTION * leaf_fnct, void * process_key_args, BTREE_SEARCH_KEY_HELPER * search_key, PAGE_PTR * leaf_page_ptr)
int btree_search_leaf_page (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr, DB_VALUE * key, BTREE_SEARCH_KEY_HELPER * search_key)
int btree_search_nonleaf_page (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr, DB_VALUE * key, INT16 * slot_id, VPID * child_vpid, page_key_boundary * page_bounds)
int btree_select_visible_object_for_range_scan (THREAD_ENTRY * thread_p, BTID_INT * btid_int, RECDES * record, char * object_ptr, OID * oid, OID * class_oid, BTREE_MVCC_INFO * mvcc_info, bool * stop, void * args)
int btree_seq_find_oid_from_ovfl (THREAD_ENTRY * thread_p, BTID_INT * btid_int, OID * oid, RECDES * ovf_record, char * initial_oid_ptr, char * oid_ptr_lower_bound, char * oid_ptr_upper_bound, BTREE_OP_PURPOSE purpose, BTREE_MVCC_INFO * match_mvccinfo, int * offset_to_object, BTREE_MVCC_INFO * mvcc_info)
void btree_set_mvccid (RECDES * rec, int mvccid_offset, MVCCID * p_mvccid, char ** rv_undo_data_ptr, char ** rv_redo_data_ptr)
DB_VALUE * btree_set_split_point (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_ptr, INT16 mid_slot, DB_VALUE * key, bool * clear_midkey)
void btree_set_unknown_key_error (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, const char * debug_msg)
int btree_set_vpid_previous_vpid (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR page_p, VPID * prev)
int btree_split_find_pivot (int total, BTREE_NODE_SPLIT_INFO * split_info)
int btree_split_next_pivot (BTREE_NODE_SPLIT_INFO * split_info, float new_value, int max_index)
int btree_split_node (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR P, PAGE_PTR Q, PAGE_PTR R, VPID * P_vpid, VPID * Q_vpid, VPID * R_vpid, INT16 p_slot_id, BTREE_NODE_TYPE node_type, DB_VALUE * key, BTREE_INSERT_HELPER * helper, VPID * child_vpid)
int btree_split_node_and_advance (THREAD_ENTRY * thread_p, BTID_INT * btid_int, DB_VALUE * key, PAGE_PTR * crt_page, PAGE_PTR * advance_to_page, bool * is_leaf, BTREE_SEARCH_KEY_HELPER * search_key, bool * stop, bool * restart, void * other_args)
int btree_split_root (THREAD_ENTRY * thread_p, BTID_INT * btid, PAGE_PTR P, PAGE_PTR Q, PAGE_PTR R, VPID * P_vpid, VPID * Q_vpid, VPID * R_vpid, BTREE_NODE_TYPE node_type, DB_VALUE * key, BTREE_INSERT_HELPER * helper, VPID * child_vpid)
void btree_split_test (THREAD_ENTRY * thread_p, BTID_INT * btid, DB_VALUE * key, VPID * S_vpid, PAGE_PTR S_page, BTREE_NODE_TYPE node_type)
int btree_start_overflow_page (THREAD_ENTRY * thread_p, BTID_INT * btid_int, BTREE_OBJECT_INFO * object_info, VPID * first_overflow_vpid, VPID * near_vpid, VPID * new_vpid, PAGE_PTR * new_page_ptr)
int btree_store_overflow_key (THREAD_ENTRY * thread_p, BTID_INT * btid, DB_VALUE * key, int size, BTREE_NODE_TYPE node_type, VPID * firstpg_vpid)
int btree_top_n_items_binary_search (RANGE_OPT_ITEM ** top_n_items, int * att_idxs, TP_DOMAIN ** domains, bool * desc_order, DB_VALUE * new_key_values, int num_keys, int first, int last, int * new_pos)
int btree_undo_delete_physical (THREAD_ENTRY * thread_p, BTID * btid, DB_VALUE * key, OID * class_oid, OID * oid, BTREE_MVCC_INFO * mvcc_info, LOG_LSA * undo_nxlsa)
int btree_undo_insert_object (THREAD_ENTRY * thread_p, BTID * btid, OR_BUF * buffered_key, OID * oid, OID * class_oid, MVCCID insert_mvccid, LOG_LSA * undo_nxlsa)
int btree_undo_insert_object_unique_multiupd (THREAD_ENTRY * thread_p, BTID * btid, OR_BUF * buffered_key, BTREE_OBJECT_INFO * inserted_object, BTREE_OBJECT_INFO * second_object, MVCCID insert_mvccid, LOG_LSA * undo_nxlsa)
int btree_undo_mvcc_delete (THREAD_ENTRY * thread_p, BTID * btid, OR_BUF * buffered_key, OID * oid, OID * class_oid, BTREE_MVCC_INFO * match_mvccinfo, LOG_LSA * undo_nxlsa)
char * btree_unpack_mvccinfo (char * ptr, BTREE_MVCC_INFO * mvcc_info, short btree_mvcc_flags)
char * btree_unpack_object (char * ptr, BTID_INT * btid_int, BTREE_NODE_TYPE node_type, RECDES * record, int after_key_offset, OID * oid, OID * class_oid, BTREE_MVCC_INFO * mvcc_info)
int btree_verify_leaf_node (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR page_ptr)
int btree_verify_node (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR page_ptr)
int btree_verify_nonleaf_node (THREAD_ENTRY * thread_p, BTID_INT * btid_int, PAGE_PTR page_ptr)
DISK_ISVALID btree_verify_subtree (THREAD_ENTRY * thread_p, const OID * class_oid_p, BTID_INT * btid, const char * btname, PAGE_PTR pg_ptr, VPID * pg_vpid, BTREE_NODE_INFO * INFO)
void btree_write_default_split_info (BTREE_NODE_SPLIT_INFO * info)
void btree_write_fixed_portion_of_non_leaf_record (RECDES * rec, NON_LEAF_REC * nlf_rec)
void btree_write_fixed_portion_of_non_leaf_record_to_orbuf (OR_BUF * buf, NON_LEAF_REC * nlf_rec)
void check_validate (BTREE_SCAN * bts)
int index_attrs_to_string (char * buf, int buf_size, OR_INDEX * index_p, RECDES * recdes)
char * key_type_to_string (char * buf, int buf_size, TP_DOMAIN * key_type)
const char * node_type_to_string (short node_type)
void peek_key_to_copy_key (BTREE_SCAN * bts)
int xbtree_test_unique (THREAD_ENTRY * thread_p, BTID * btid)

Macros

Type Name
define BTID_DOMAIN_CHECK_MAX_SIZE 1024
define BTREE_CHECK_VALID_PRINT_REC_MAX_LENGTH 1024
define BTREE_DEBUG_DUMP_FULL 0x0002 /\* [**full**](broker__monitor_8c.md#function-timeout) dump in insert [**or**](broker__monitor_8c.md#function-timeout) [**delete**](broker__monitor_8c.md#function-timeout) \*/
define BTREE_DEBUG_DUMP_SIMPLE 0x0001 /\* [**simple**](broker__monitor_8c.md#function-timeout) message in [**SMO**](broker__monitor_8c.md#function-timeout) \*/
define BTREE_DEBUG_HEALTH_FULL 0x0020 /\* [**full**](broker__monitor_8c.md#function-timeout) [**health**](broker__monitor_8c.md#function-timeout) check ([**traverse**](broker__monitor_8c.md#function-timeout) [**all**](broker__monitor_8c.md#function-timeout) [**slot**](structslot.md) in page) \*/
define BTREE_DEBUG_HEALTH_SIMPLE 0x0010 /\* [**simple**](broker__monitor_8c.md#function-timeout) [**health**](broker__monitor_8c.md#function-timeout) check in [**SMO**](broker__monitor_8c.md#function-timeout) \*/
define BTREE_DEBUG_TEST_SPLIT 0x0100 /\* [**full**](broker__monitor_8c.md#function-timeout) split [**test**](broker__monitor_8c.md#function-timeout) \*/
define BTREE_DELETE_CLASS_OID (helper) (&(([**helper**](broker__monitor_8c.md#function-timeout))-&gt;object\_info.class\_oid))
define BTREE_DELETE_HELPER_AS_ARGS (helper) /* multi line expression */
define BTREE_DELETE_HELPER_MSG (tabs) /* multi line expression */
define BTREE_DELETE_MODIFY_ARGS (thread_p, helper, page, save_lsa, is_leaf, slotid, new_size, btid) /* multi line expression */
define BTREE_DELETE_MODIFY_MSG (desc) /* multi line expression */
define BTREE_DELETE_MVCC_INFO (helper) (&(([**helper**](broker__monitor_8c.md#function-timeout))-&gt;object\_info.mvcc\_info))
define BTREE_DELETE_OID (helper) (&(([**helper**](broker__monitor_8c.md#function-timeout))-&gt;object\_info.oid))
define BTREE_FIND_FK_OBJECT_INITIALIZER { [**OID\_INITIALIZER**](oid_8h.md#define-oid_initializer), [**OID\_INITIALIZER**](oid_8h.md#define-oid_initializer), NULL\_LOCK }
define BTREE_FIND_UNIQUE_HELPER_INITIALIZER /* multi line expression */
define BTREE_GET_MVCC_INFO_SIZE_FROM_FLAGS (mvcc_flags) /* multi line expression */
define BTREE_GET_OID (buf, oid_ptr) /* multi line expression */
define BTREE_HEALTH_CHECK
define BTREE_ID_MSG "index = %d, %d\|%[**d"**](broker__monitor_8c.md#function-timeout)
define BTREE_INSERT_CLASS_OID (ins_helper) (&(([**ins\_helper**](broker__monitor_8c.md#function-timeout))-&gt;obj\_info.class\_oid))
define BTREE_INSERT_HELPER_AS_ARGS (helper) /* multi line expression */
define BTREE_INSERT_HELPER_MSG (tabs) /* multi line expression */
define BTREE_INSERT_MODIFY_ARGS (thread_p, helper, page, save_lsa, is_leaf, slotid, new_size, btid) /* multi line expression */
define BTREE_INSERT_MODIFY_MSG (desc) /* multi line expression */
define BTREE_INSERT_MVCC_INFO (ins_helper) (&(([**ins\_helper**](broker__monitor_8c.md#function-timeout))-&gt;obj\_info.mvcc\_info))
define BTREE_INSERT_OID (ins_helper) (&(([**ins\_helper**](broker__monitor_8c.md#function-timeout))-&gt;obj\_info.oid))
define BTREE_IS_PAGE_VALID_LEAF (thread_p, page) /* multi line expression */
define BTREE_LEAF_RECORD_CLASS_OID (([**short**](broker__monitor_8c.md#function-timeout)) 0x8000)
define BTREE_LEAF_RECORD_FENCE (([**short**](broker__monitor_8c.md#function-timeout)) 0x1000)
define BTREE_LEAF_RECORD_MASK (([**short**](broker__monitor_8c.md#function-timeout)) 0xF000)
define BTREE_LEAF_RECORD_OVERFLOW_KEY (([**short**](broker__monitor_8c.md#function-timeout)) 0x4000)
define BTREE_LEAF_RECORD_OVERFLOW_OIDS (([**short**](broker__monitor_8c.md#function-timeout)) 0x2000)
define BTREE_MAX_OID_COUNT [**IO\_MAX\_PAGE\_SIZE**](storage__common_8h.md#define-io_max_page_size) / [**OR\_OID\_SIZE**](object__representation__constants_8h.md#define-or_oid_size)
define BTREE_MVCC_INFO_AS_ARGS (mvcc_info) ([**unsigned**](broker__monitor_8c.md#function-timeout) [**long**](broker__monitor_8c.md#function-timeout) [**long**](broker__monitor_8c.md#function-timeout)) [**BTREE\_MVCC\_INFO\_INSID**](btree_8c.md#define-btree_mvcc_info_insid) ([**mvcc\_info**](structmvcc__info.md)), ([**unsigned**](broker__monitor_8c.md#function-timeout) [**long**](broker__monitor_8c.md#function-timeout) [**long**](broker__monitor_8c.md#function-timeout)) [**BTREE\_MVCC\_INFO\_DELID**](btree_8c.md#define-btree_mvcc_info_delid) ([**mvcc\_info**](structmvcc__info.md))
define BTREE_MVCC_INFO_CLEAR_DELID (mvcc_info) (([**mvcc\_info**](structmvcc__info.md))-&gt;flags &= ~[**BTREE\_OID\_HAS\_MVCC\_DELID**](btree_8c.md#define-btree_oid_has_mvcc_delid))
define BTREE_MVCC_INFO_CLEAR_FIXED_SIZE (mvcc_info) /* multi line expression */
define BTREE_MVCC_INFO_CLEAR_INSID (mvcc_info) (([**mvcc\_info**](structmvcc__info.md))-&gt;flags &= ~[**BTREE\_OID\_HAS\_MVCC\_INSID**](btree_8c.md#define-btree_oid_has_mvcc_insid))
define BTREE_MVCC_INFO_DELID (mvcc_info) ([**BTREE\_MVCC\_INFO\_HAS\_DELID**](btree_8c.md#define-btree_mvcc_info_has_delid) ([**mvcc\_info**](structmvcc__info.md)) ? ([**mvcc\_info**](structmvcc__info.md))-&gt;delete\_mvccid : [**MVCCID\_NULL**](storage__common_8h.md#define-mvccid_null))
define BTREE_MVCC_INFO_HAS_DELID (mvcc_info) ((([**mvcc\_info**](structmvcc__info.md))-&gt;flags & [**BTREE\_OID\_HAS\_MVCC\_DELID**](btree_8c.md#define-btree_oid_has_mvcc_delid)) != 0)
define BTREE_MVCC_INFO_HAS_INSID (mvcc_info) ((([**mvcc\_info**](structmvcc__info.md))-&gt;flags & [**BTREE\_OID\_HAS\_MVCC\_INSID**](btree_8c.md#define-btree_oid_has_mvcc_insid)) != 0)
define BTREE_MVCC_INFO_INSID (mvcc_info) ([**BTREE\_MVCC\_INFO\_HAS\_INSID**](btree_8c.md#define-btree_mvcc_info_has_insid) ([**mvcc\_info**](structmvcc__info.md)) ? ([**mvcc\_info**](structmvcc__info.md))-&gt;insert\_mvccid : [**MVCCID\_ALL\_VISIBLE**](storage__common_8h.md#define-mvccid_all_visible))
define BTREE_MVCC_INFO_IS_DELID_VALID (mvcc_info) ([**BTREE\_MVCC\_INFO\_HAS\_DELID**](btree_8c.md#define-btree_mvcc_info_has_delid) ([**mvcc\_info**](structmvcc__info.md)) && ([**mvcc\_info**](structmvcc__info.md))-&gt;delete\_mvccid != [**MVCCID\_NULL**](storage__common_8h.md#define-mvccid_null))
define BTREE_MVCC_INFO_IS_INSID_NOT_ALL_VISIBLE (mvcc_info) ([**BTREE\_MVCC\_INFO\_HAS\_INSID**](btree_8c.md#define-btree_mvcc_info_has_insid) ([**mvcc\_info**](structmvcc__info.md)) && [**MVCCID\_IS\_NOT\_ALL\_VISIBLE**](storage__common_8h.md#define-mvccid_is_not_all_visible) (([**mvcc\_info**](structmvcc__info.md))-&gt;insert\_mvccid))
define BTREE_MVCC_INFO_SET_DELID (mvcc_info, delid) /* multi line expression */
define BTREE_MVCC_INFO_SET_FIXED_SIZE (mvcc_info) /* multi line expression */
define BTREE_MVCC_INFO_SET_INSID (mvcc_info, insid) /* multi line expression */
define BTREE_NODE_MAX_SPLIT_SIZE (thread_p, page_ptr) (([**int**](broker__monitor_8c.md#function-timeout)) ([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize) - [**SPAGE\_HEADER\_SIZE**](slotted__page_8h.md#define-spage_header_size) - [**spage\_get\_space\_for\_record**](slotted__page_8c.md#function-spage_get_space_for_record)(thread\_p, ([**page\_ptr**](broker__monitor_8c.md#function-timeout)), [**HEADER**](btree__load_8h.md#define-header))))
define BTREE_OBJINFO_AS_ARGS (objinfo) /* multi line expression */
define BTREE_OBJINFO_MSG (name) name " { OID = %d\|%d\|%d, [**CLASS**](broker__monitor_8c.md#function-timeout) = %d\|%d\|%d, [**MVCC\_INFO**](mvcc_8h.md#typedef-mvcc_info) = %[**llu**](broker__monitor_8c.md#function-timeout)\|%[**llu**](broker__monitor_8c.md#function-timeout) } "
define BTREE_OID_CLEAR_ALL_FLAGS (oid_ptr) /* multi line expression */
define BTREE_OID_CLEAR_MVCC_FLAGS (oid_ptr) ((oid\_ptr)-&gt;volid &= ~[**BTREE\_OID\_MVCC\_FLAGS\_MASK**](btree_8c.md#define-btree_oid_mvcc_flags_mask))
define BTREE_OID_CLEAR_RECORD_FLAGS (oid_ptr) ((oid\_ptr)-&gt;slotid &= ~[**BTREE\_LEAF\_RECORD\_MASK**](btree_8c.md#define-btree_leaf_record_mask))
define BTREE_OID_GET_MVCC_FLAGS (oid_ptr) ((oid\_ptr)-&gt;volid & [**BTREE\_OID\_MVCC\_FLAGS\_MASK**](btree_8c.md#define-btree_oid_mvcc_flags_mask))
define BTREE_OID_GET_RECORD_FLAGS (oid_ptr) ((oid\_ptr)-&gt;slotid & [**BTREE\_LEAF\_RECORD\_MASK**](btree_8c.md#define-btree_leaf_record_mask))
define BTREE_OID_HAS_MVCC_DELID (([**short**](broker__monitor_8c.md#function-timeout)) 0x8000)
define BTREE_OID_HAS_MVCC_INSID (([**short**](broker__monitor_8c.md#function-timeout)) 0x4000)
define BTREE_OID_HAS_MVCC_INSID_AND_DELID ([**BTREE\_OID\_HAS\_MVCC\_INSID**](btree_8c.md#define-btree_oid_has_mvcc_insid) \| [**BTREE\_OID\_HAS\_MVCC\_DELID**](btree_8c.md#define-btree_oid_has_mvcc_delid))
define BTREE_OID_IS_MVCC_FLAG_SET (oid_ptr, mvcc_flag) (((oid\_ptr)-&gt;volid & (mvcc\_flag)) == (mvcc\_flag))
define BTREE_OID_IS_RECORD_FLAG_SET (oid_ptr, mvcc_flag) (((oid\_ptr)-&gt;slotid & (mvcc\_flag)) == (mvcc\_flag))
define BTREE_OID_MVCC_FLAGS_MASK (([**short**](broker__monitor_8c.md#function-timeout)) 0xC000)
define BTREE_OID_SET_MVCC_FLAG (oid_ptr, mvcc_flag) ((oid\_ptr)-&gt;volid \|= (mvcc\_flag))
define BTREE_OID_SET_RECORD_FLAG (oid_ptr, mvcc_flag) ((oid\_ptr)-&gt;slotid \|= (mvcc\_flag))
define BTREE_PRINT_KEY_ARGS (key) (key) != [**NULL**](freelistheap_8h.md#define-null) ? (key) : "\*\* UNKNOWN [**KEY**](broker__monitor_8c.md#function-timeout) \*\*"
define BTREE_PRINT_KEY_MSG (key) key " = %.32s"
define BTREE_RECORD_OR_BUF_INIT (buf, btree_rec) /* multi line expression */
define BTREE_REC_SATISFIES_SNAPSHOT_HELPER_INITIALIZER /* multi line expression */
define BTREE_RV_DEBUG_INFO_FLAG 0x1000
define BTREE_RV_DEBUG_INFO_MAX_SIZE /* multi line expression */
define BTREE_RV_EXCLUSIVE_FLAGS_MASK 0x3C00
define BTREE_RV_FLAGS_MASK ([**LOG\_RV\_RECORD\_MODIFY\_MASK**](log__append_8hpp.md#variable-log_rv_record_modify_mask) \| [**BTREE\_RV\_EXCLUSIVE\_FLAGS\_MASK**](btree_8c.md#define-btree_rv_exclusive_flags_mask))
define BTREE_RV_HAS_DEBUG_INFO (flags) ((flags & [**BTREE\_RV\_DEBUG\_INFO\_FLAG**](btree_8c.md#define-btree_rv_debug_info_flag)) != 0)
define BTREE_RV_IS_OVERFLOW_NODE (flags) ((flags & [**BTREE\_RV\_OVERFLOW\_FLAG**](btree_8c.md#define-btree_rv_overflow_flag)) != 0)
define BTREE_RV_IS_UNDO_MVCCDEL_MYOBJ (flags) ((flags & [**BTREE\_RV\_UNDO\_MVCCDEL\_MYOBJ**](btree_8c.md#define-btree_rv_undo_mvccdel_myobj)) != 0)
define BTREE_RV_IS_UPDATE_MAX_KEY_LEN (flags) ((flags & [**BTREE\_RV\_UPDATE\_MAX\_KEY\_LEN**](btree_8c.md#define-btree_rv_update_max_key_len)) != 0)
define BTREE_RV_OVERFLOW_FLAG 0x2000
define BTREE_RV_REDO_SET_DEBUG_INFO (addr, rv_ptr, btid_int, id) /* multi line expression */
define BTREE_RV_SET_OVERFLOW_NODE (addr) (([**addr**](broker__monitor_8c.md#function-timeout))-&gt;offset \|= [**BTREE\_RV\_OVERFLOW\_FLAG**](btree_8c.md#define-btree_rv_overflow_flag))
define BTREE_RV_SET_UNDO_MVCCDEL_MYOBJ (addr) (([**addr**](broker__monitor_8c.md#function-timeout))-&gt;offset \|= [**BTREE\_RV\_UNDO\_MVCCDEL\_MYOBJ**](btree_8c.md#define-btree_rv_undo_mvccdel_myobj))
define BTREE_RV_SET_UPDATE_MAX_KEY_LEN (addr) (([**addr**](broker__monitor_8c.md#function-timeout))-&gt;offset \|= [**BTREE\_RV\_UPDATE\_MAX\_KEY\_LEN**](btree_8c.md#define-btree_rv_update_max_key_len))
define BTREE_RV_UNDOREDO_SET_DEBUG_INFO (addr, rv_redo_ptr, rv_undo_ptr, btid_int, id) /* multi line expression */
define BTREE_RV_UNDO_MVCCDEL_MYOBJ 0x0800
define BTREE_RV_UPDATE_MAX_KEY_LEN 0x0800
define BTREE_SEARCH_KEY_HELPER_INITIALIZER { BTREE\_KEY\_NOTFOUND, [**NULL\_SLOTID**](storage__common_8h.md#define-null_slotid), btree\_search\_key\_helper::NO\_FENCE\_KEY }
define BTREE_SPLIT_DEFAULT_PIVOT 0.5f
define BTREE_SPLIT_LOWER_BOUND 0.20f
define BTREE_SPLIT_MAX_PIVOT (1.0f - [**BTREE\_SPLIT\_MIN\_PIVOT**](btree_8c.md#define-btree_split_min_pivot))
define BTREE_SPLIT_MIN_PIVOT 0.05f
define BTREE_SPLIT_UPPER_BOUND (1.0f - [**BTREE\_SPLIT\_LOWER\_BOUND**](btree_8c.md#define-btree_split_lower_bound))
define BTS_INCREMENT_READ_OIDS (bts) /* multi line expression */
define BTS_IS_HARD_CAPACITY_ENOUGH (bts, count) /* multi line expression */
define BTS_IS_INDEX_COVERED (bts) ((bts) != [**NULL**](freelistheap_8h.md#define-null) && (bts)-&gt;index\_scan\_idp != [**NULL**](freelistheap_8h.md#define-null) && [**SCAN\_IS\_INDEX\_COVERED**](scan__manager_8h.md#define-scan_is_index_covered) ((bts)-&gt;index\_scan\_idp))
define BTS_IS_INDEX_ILS (bts) /* multi line expression */
define BTS_IS_INDEX_ISS (bts) ((bts) != [**NULL**](freelistheap_8h.md#define-null) && (bts)-&gt;index\_scan\_idp != [**NULL**](freelistheap_8h.md#define-null) && [**SCAN\_IS\_INDEX\_ISS**](scan__manager_8h.md#define-scan_is_index_iss) ((bts)-&gt;index\_scan\_idp))
define BTS_IS_INDEX_MRO (bts) ((bts) != [**NULL**](freelistheap_8h.md#define-null) && (bts)-&gt;index\_scan\_idp != [**NULL**](freelistheap_8h.md#define-null) && [**SCAN\_IS\_INDEX\_MRO**](scan__manager_8h.md#define-scan_is_index_mro) ((bts)-&gt;index\_scan\_idp))
define BTS_IS_SOFT_CAPACITY_ENOUGH (bts, count) /* multi line expression */
define BTS_NEED_COUNT_ONLY (bts) ((bts) != [**NULL**](freelistheap_8h.md#define-null) && (bts)-&gt;index\_scan\_idp != [**NULL**](freelistheap_8h.md#define-null) && (bts)-&gt;index\_scan\_idp-&gt;need\_count\_only)
define BTS_SAVE_OID_IN_BUFFER (bts, oid) /* multi line expression */
define CAN_MERGE_WHEN_EMPTY ([**MAX**](broker__monitor_8c.md#function-timeout) ([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize) \* 0.33, [**MAX\_MERGE\_ALIGN\_WASTE**](btree_8c.md#define-max_merge_align_waste) \* 1.3))
define COMMON_PREFIX_PAGE_SIZE_RESET (bts) /* multi line expression */
define DISK_PAGE_BITS ([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize) \* [**CHAR\_BIT**](broker__monitor_8c.md#function-timeout)) /\* [**Num**](broker__monitor_8c.md#function-timeout) [**of**](broker__monitor_8c.md#function-timeout) bits [**per**](broker__monitor_8c.md#function-timeout) page \*/
define FORCE_MERGE_WHEN_EMPTY ([**MAX**](broker__monitor_8c.md#function-timeout) ([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize) \* 0.66, [**MAX\_MERGE\_ALIGN\_WASTE**](btree_8c.md#define-max_merge_align_waste) \* 1.3))
define LOFFS1 0 /\* Key [**Len**](broker__monitor_8c.md#function-timeout) [**Offset**](broker__monitor_8c.md#function-timeout) \*/
define LOFFS2 2 /\* Node [**Type**](broker__monitor_8c.md#function-timeout) [**Offset:**](broker__monitor_8c.md#function-timeout) [**Leaf**](broker__monitor_8c.md#function-timeout)/[**NonLeaf**](broker__monitor_8c.md#function-timeout) [**Information**](broker__monitor_8c.md#function-timeout) \*/
define LOFFS3 4 /\* [**RECDES**](storage__common_8h.md#typedef-recdes) [**Type**](broker__monitor_8c.md#function-timeout) [**Offset**](broker__monitor_8c.md#function-timeout) \*/
define LOFFS4 6 /\* [**RECDES**](storage__common_8h.md#typedef-recdes) [**Data**](broker__monitor_8c.md#function-timeout) [**Offset**](broker__monitor_8c.md#function-timeout) \*/
define MAX_LEAF_REC_NUM ([**IO\_MAX\_PAGE\_SIZE**](storage__common_8h.md#define-io_max_page_size) / [**MIN\_LEAF\_REC\_SIZE**](btree_8c.md#define-min_leaf_rec_size))
define MAX_MERGE_ALIGN_WASTE (([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize)/[**MIN\_LEAF\_REC\_SIZE**](btree_8c.md#define-min_leaf_rec_size)) \* ([**BTREE\_MAX\_ALIGN**](btree__load_8h.md#define-btree_max_align) - 1))
define MIN_KEY_SIZE [**DB\_ALIGN**](memory__alloc_8h.md#define-db_align) (1, [**BTREE\_MAX\_ALIGN**](btree__load_8h.md#define-btree_max_align))
define MIN_LEAF_REC_SIZE ([**OR\_OID\_SIZE**](object__representation__constants_8h.md#define-or_oid_size) + [**MIN\_KEY\_SIZE**](btree_8c.md#define-min_key_size))
define NEXT_MERGE_RECORD () /* multi line expression */
define NOT_FOUND -1
define OFFS1 0 /\* Node [**Type**](broker__monitor_8c.md#function-timeout) [**Offset:**](broker__monitor_8c.md#function-timeout) [**Leaf**](broker__monitor_8c.md#function-timeout)/[**NonLeaf**](broker__monitor_8c.md#function-timeout) [**Information**](broker__monitor_8c.md#function-timeout) \*/
define OFFS2 2 /\* [**RECDES**](storage__common_8h.md#typedef-recdes) [**Type**](broker__monitor_8c.md#function-timeout) [**Offset**](broker__monitor_8c.md#function-timeout) \*/
define OFFS3 4 /\* [**RECDES**](storage__common_8h.md#typedef-recdes) [**Data**](broker__monitor_8c.md#function-timeout) [**Offset**](broker__monitor_8c.md#function-timeout) \*/
define OID_MSG_BUF_SIZE 64
define __STDC_FORMAT_MACROS
define btree_delete_log (helper, msg, ...) [**if**](dynamic__load_8c.md#function-if) (([**helper**](broker__monitor_8c.md#function-timeout))-&gt;log\_operations) [**btree\_log**](btree_8c.md#define-btree_log) ("BTREE\_DELETE ", msg, [**\_\_VA\_ARGS\_\_**](broker__monitor_8c.md#function-timeout))
define btree_insert_log (helper, msg, ...) [**if**](dynamic__load_8c.md#function-if) (([**helper**](broker__monitor_8c.md#function-timeout))-&gt;log\_operations) [**btree\_log**](btree_8c.md#define-btree_log) ("BTREE\_INSERT ", msg, [**\_\_VA\_ARGS\_\_**](broker__monitor_8c.md#function-timeout))
define btree_log (prefix, msg, ...) /* multi line expression */
define btree_log_if_enabled (...) [**if**](dynamic__load_8c.md#function-if) ([**prm\_get\_bool\_value**](system__parameter_8h.md#function-prm_get_bool_value)(PRM\_ID\_LOG\_BTREE\_OPS)) [**\_er\_log\_debug**](error__manager_8c.md#function-_er_log_debug) ([**ARG\_FILE\_LINE**](error__manager_8h.md#define-arg_file_line), [**\_\_VA\_ARGS\_\_**](broker__monitor_8c.md#function-timeout))

Public Types Documentation

typedef BTREE_ADVANCE_WITH_KEY_FUNCTION

typedef int BTREE_ADVANCE_WITH_KEY_FUNCTION(THREAD_ENTRY *thread_p, BTID_INT *btid_int, DB_VALUE *key, PAGE_PTR *crt_page, PAGE_PTR *advance_to_page, bool *is_leaf, BTREE_SEARCH_KEY_HELPER *search_key, bool *stop, bool *restart, void *other_args);

enum BTREE_BOUNDARY

enum BTREE_BOUNDARY {
    BTREE_BOUNDARY_FIRST = 1,
    BTREE_BOUNDARY_LAST
};

typedef BTREE_DELETE_HELPER

typedef struct btree_delete_helper BTREE_DELETE_HELPER;

typedef BTREE_FIND_FK_OBJECT

typedef struct btree_find_fk_object BTREE_FIND_FK_OBJECT;

typedef BTREE_FIND_UNIQUE_HELPER

typedef struct btree_find_unique_helper BTREE_FIND_UNIQUE_HELPER;

typedef BTREE_FK_EXIST_ARG

typedef struct fk_object_exist_arg BTREE_FK_EXIST_ARG;

typedef BTREE_HELPER

typedef struct btree_helper BTREE_HELPER;

typedef BTREE_INSERT_HELPER

typedef struct btree_insert_helper BTREE_INSERT_HELPER;

enum BTREE_MERGE_STATUS

enum BTREE_MERGE_STATUS {
    BTREE_MERGE_NO = 0,
    BTREE_MERGE_TRY,
    BTREE_MERGE_FORCE
};

typedef BTREE_PROCESS_KEY_FUNCTION

typedef int BTREE_PROCESS_KEY_FUNCTION(THREAD_ENTRY *thread_p, BTID_INT *btid_int, DB_VALUE *key, PAGE_PTR *leaf_page, BTREE_SEARCH_KEY_HELPER *search_key, bool *restart, void *other_args);

typedef BTREE_PROCESS_OBJECT_FUNCTION

typedef int BTREE_PROCESS_OBJECT_FUNCTION(THREAD_ENTRY *thread_p, BTID_INT *btid_int, RECDES *record, char *object_ptr, OID *oid, OID *class_oid, BTREE_MVCC_INFO *mvcc_info, bool *stop, void *args);

typedef BTREE_REC_SATISFIES_SNAPSHOT_HELPER

typedef struct btree_rec_satisfies_snapshot_helper BTREE_REC_SATISFIES_SNAPSHOT_HELPER;

typedef BTREE_ROOT_WITH_KEY_FUNCTION

typedef int BTREE_ROOT_WITH_KEY_FUNCTION(THREAD_ENTRY *thread_p, BTID *btid, BTID_INT *btid_int, DB_VALUE *key, PAGE_PTR *root_page, bool *is_leaf, BTREE_SEARCH_KEY_HELPER *search_key, bool *stop, bool *restart, void *other_args);

typedef BTREE_RV_DEBUG_ID

typedef enum btree_rv_debug_id BTREE_RV_DEBUG_ID;

typedef BTREE_SEARCH_KEY_HELPER

typedef struct btree_search_key_helper BTREE_SEARCH_KEY_HELPER;

typedef BTREE_STATS_ENV

typedef struct btree_stats_env BTREE_STATS_ENV;

typedef RECSET_HEADER

typedef struct recset_header RECSET_HEADER;

typedef SHOW_INDEX_SCAN_CTX

typedef struct show_index_scan_ctx SHOW_INDEX_SCAN_CTX;

enum btree_rv_debug_id

enum btree_rv_debug_id {
    BTREE_RV_REDO_NO_ID = 0,
    BTREE_RV_DEBUG_ID_INSERT_DELID,
    BTREE_RV_DEBUG_ID_START_OVF,
    BTREE_RV_DEBUG_ID_INS_NEW_OVF,
    BTREE_RV_DEBUG_ID_INS_OLD_OVF,
    BTREE_RV_DEBUG_ID_UNIQUE,
    BTREE_RV_DEBUG_ID_NON_UNIQUE,
    BTREE_RV_DEBUG_ID_REM_INSID,
    BTREE_RV_DEBUG_ID_REM_DELID_UNIQUE,
    BTREE_RV_DEBUG_ID_REM_DELID_NON_UNIQUE,
    BTREE_RV_DEBUG_ID_OVF_REPLACE,
    BTREE_RV_DEBUG_ID_SWAP_LEAF,
    BTREE_RV_DEBUG_ID_OVF_LINK,
    BTREE_RV_DEBUG_ID_LAST_OID,
    BTREE_RV_DEBUG_ID_REM_OBJ,
    BTREE_RV_DEBUG_ID_INS_KEY,
    BTREE_RV_DEBUG_ID_UNDO_INS_UNQ_MUPD,
    BTREE_RV_DEBUG_ID_INS_REM_LEAF_LAST
};

Public Attributes Documentation

variable BTREE_ONLINE_INDEX_DELETE_FLAG_STATE

const MVCCID BTREE_ONLINE_INDEX_DELETE_FLAG_STATE;

variable BTREE_ONLINE_INDEX_FLAG_MASK

const MVCCID BTREE_ONLINE_INDEX_FLAG_MASK;

variable BTREE_ONLINE_INDEX_INSERT_FLAG_STATE

const MVCCID BTREE_ONLINE_INDEX_INSERT_FLAG_STATE;

variable BTREE_ONLINE_INDEX_MVCCID_MASK

const MVCCID BTREE_ONLINE_INDEX_MVCCID_MASK;

variable BTREE_ONLINE_INDEX_NORMAL_FLAG_STATE

const MVCCID BTREE_ONLINE_INDEX_NORMAL_FLAG_STATE;

variable BTREE_RV_BUFFER_SIZE

const size_t BTREE_RV_BUFFER_SIZE;

Public Functions Documentation

function btree_attrinfo_read_dbvalues

int btree_attrinfo_read_dbvalues (
    THREAD_ENTRY * thread_p,
    DB_VALUE * curr_key,
    BTREE_SCAN * bts,
    int * btree_att_ids,
    int btree_num_att,
    HEAP_CACHE_ATTRINFO * attr_info,
    int func_index_col_id,
    int * attr_idx_ptr
) 

function btree_check_all

DISK_ISVALID btree_check_all (
    THREAD_ENTRY * thread_p
) 

function btree_check_by_class_oid

DISK_ISVALID btree_check_by_class_oid (
    THREAD_ENTRY * thread_p,
    OID * cls_oid,
    BTID * idx_btid
) 

function btree_check_foreign_key

int btree_check_foreign_key (
    THREAD_ENTRY * thread_p,
    OID * cls_oid,
    HFID * hfid,
    OID * oid,
    DB_VALUE * keyval,
    int n_attrs,
    OID * pk_cls_oid,
    BTID * pk_btid,
    const  char * fk_name
) 

function btree_check_valid_record

int btree_check_valid_record (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    RECDES * recp,
    BTREE_NODE_TYPE node_type,
    DB_VALUE * key
) 

function btree_clear_mvcc_flags_from_oid

void btree_clear_mvcc_flags_from_oid (
    OID * oid
) 

function btree_coerce_key

int btree_coerce_key (
    DB_VALUE * keyp,
    int keysize,
    TP_DOMAIN * btree_domainp,
    int key_minmax
) 

function btree_compare_btids

int btree_compare_btids (
    void * mem_btid1,
    void * mem_btid2
) 

function btree_compare_key

DB_VALUE_COMPARE_RESULT btree_compare_key (
    DB_VALUE * key1,
    DB_VALUE * key2,
    TP_DOMAIN * key_domain,
    int do_coercion,
    int total_order,
    int * start_colp
) 

function btree_create_file

int btree_create_file (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    int attrid,
    BTID * btid
) 

function btree_create_overflow_key_file

int btree_create_overflow_key_file (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid
) 

function btree_dump

void btree_dump (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    BTID * btid,
    int level
) 

function btree_dump_capacity

int btree_dump_capacity (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    BTID * btid
) 

function btree_dump_key

void btree_dump_key (
    FILE * fp,
    const  DB_VALUE * key
) 

function btree_find_foreign_key

int btree_find_foreign_key (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * class_oid,
    OID * found_oid
) 

function btree_find_key

DISK_ISVALID btree_find_key (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OID * oid,
    DB_VALUE * key,
    bool * clear_key
) 

function btree_find_min_or_max_key

int btree_find_min_or_max_key (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    int find_min_key
) 

function btree_generate_prefix_domain

TP_DOMAIN * btree_generate_prefix_domain (
    BTID_INT * btid
) 

function btree_get_asc_desc

int btree_get_asc_desc (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    int col_idx,
    int * asc_desc
) 

function btree_get_btid_from_file

int btree_get_btid_from_file (
    THREAD_ENTRY * thread_p,
    const  VFID * vfid,
    BTID * btid_out
) 

function btree_get_class_oid_of_unique_btid

int btree_get_class_oid_of_unique_btid (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OID * class_oid
) 

function btree_get_disk_size_of_key

int btree_get_disk_size_of_key (
    DB_VALUE * key
) 

function btree_get_next_key_info

SCAN_CODE btree_get_next_key_info (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTREE_SCAN * bts,
    int num_classes,
    OID * class_oids_ptr,
    INDX_SCAN_ID * index_scan_id_p,
    DB_VALUE ** key_info
) 

function btree_get_next_node_info

SCAN_CODE btree_get_next_node_info (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTREE_NODE_SCAN * btns,
    DB_VALUE ** node_info
) 

function btree_get_num_visible_from_leaf_and_ovf

int btree_get_num_visible_from_leaf_and_ovf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * leaf_record,
    int offset_after_key,
    LEAF_REC * leaf_info,
    int * max_visible_oids,
    MVCC_SNAPSHOT * mvcc_snapshot,
    int * num_visible
) 

function btree_get_perf_btree_page_type

PERF_PAGE_TYPE btree_get_perf_btree_page_type (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_ptr
) 

function btree_get_pkey_btid

int btree_get_pkey_btid (
    THREAD_ENTRY * thread_p,
    OID * cls_oid,
    BTID * pkey_btid
) 

function btree_get_prefix_separator

int btree_get_prefix_separator (
    const  DB_VALUE * key1,
    const  DB_VALUE * key2,
    DB_VALUE * prefix_key,
    TP_DOMAIN * key_domain
) 

function btree_get_root_vpid_from_btid

void btree_get_root_vpid_from_btid (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    VPID * root_vpid
) 

function btree_get_stats

int btree_get_stats (
    THREAD_ENTRY * thread_p,
    BTREE_STATS * stat_info_p,
    bool with_fullscan
) 

function btree_get_unique_statistics

int btree_get_unique_statistics (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    long  long * oid_cnt,
    long  long * null_cnt,
    long  long * key_cnt
) 

function btree_get_unique_statistics_for_count

int btree_get_unique_statistics_for_count (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    long  long * oid_cnt,
    long  long * null_cnt,
    long  long * key_cnt
) 

function btree_glean_root_header_info

int btree_glean_root_header_info (
    THREAD_ENTRY * thread_p,
    BTREE_ROOT_HEADER * root_header,
    BTID_INT * btid,
    bool is_key_type
) 

function btree_hash_btid

unsigned  int btree_hash_btid (
    void * btid,
    int hash_size
) 

function btree_index_capacity

int btree_index_capacity (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTREE_CAPACITY * cpc
) 

function btree_index_end_scan

int btree_index_end_scan (
    THREAD_ENTRY * thread_p,
    void ** ptr
) 

function btree_index_next_scan

SCAN_CODE btree_index_next_scan (
    THREAD_ENTRY * thread_p,
    int cursor,
    DB_VALUE ** out_values,
    int out_cnt,
    void * ptr
) 

function btree_index_start_scan

int btree_index_start_scan (
    THREAD_ENTRY * thread_p,
    int show_type,
    DB_VALUE ** arg_values,
    int arg_cnt,
    void ** ptr
) 

function btree_initialize_new_page

int btree_initialize_new_page (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page,
    void * args
) 

function btree_insert

int btree_insert (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * cls_oid,
    OID * oid,
    int op_type,
    btree_unique_stats * unique_stat_info,
    int * unique,
    MVCC_REC_HEADER * p_mvcc_rec_header
) 

function btree_is_btid_online_index

bool btree_is_btid_online_index (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    BTID * btid
) 

function btree_is_unique_type

bool btree_is_unique_type (
    BTREE_TYPE type
) 

function btree_keyoid_checkscan_check

DISK_ISVALID btree_keyoid_checkscan_check (
    THREAD_ENTRY * thread_p,
    BTREE_CHECKSCAN * btscan,
    OID * cls_oid,
    DB_VALUE * key,
    OID * oid
) 

function btree_keyoid_checkscan_end

void btree_keyoid_checkscan_end (
    THREAD_ENTRY * thread_p,
    BTREE_CHECKSCAN * btscan
) 

function btree_keyoid_checkscan_start

int btree_keyoid_checkscan_start (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTREE_CHECKSCAN * btscan
) 

int btree_keyval_search (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    SCAN_OPERATION_TYPE scan_op_type,
    BTREE_SCAN * bts,
    key_val_range * kv_range,
    OID * class_oid,
    FILTER_INFO * filter,
    INDX_SCAN_ID * isidp,
    bool is_all_class_srch
) 

function btree_leaf_change_first_object

void btree_leaf_change_first_object (
    THREAD_ENTRY * thread_p,
    RECDES * recp,
    BTID_INT * btid,
    OID * oidp,
    OID * class_oidp,
    BTREE_MVCC_INFO * mvcc_info,
    int * key_offset,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

function btree_leaf_get_first_object

int btree_leaf_get_first_object (
    BTID_INT * btid,
    RECDES * recp,
    OID * oidp,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info
) 

void btree_leaf_record_change_overflow_link (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * leaf_record,
    VPID * new_overflow_vpid,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

function btree_locate_key

int btree_locate_key (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    VPID * pg_vpid,
    INT16 * slot_id,
    PAGE_PTR * leaf_page_out,
    bool * found_p
) 

function btree_multicol_key_has_null

int btree_multicol_key_has_null (
    DB_VALUE * key
) 

function btree_multicol_key_is_null

bool btree_multicol_key_is_null (
    DB_VALUE * key
) 

function btree_mvcc_delete

int btree_mvcc_delete (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * class_oid,
    OID * oid,
    int op_type,
    btree_unique_stats * unique_stat_info,
    int * unique,
    MVCC_REC_HEADER * p_mvcc_rec_header
) 

function btree_mvcc_info_from_heap_mvcc_header

void btree_mvcc_info_from_heap_mvcc_header (
    MVCC_REC_HEADER * mvcc_header,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_mvcc_info_to_heap_mvcc_header

void btree_mvcc_info_to_heap_mvcc_header (
    BTREE_MVCC_INFO * mvcc_info,
    MVCC_REC_HEADER * mvcc_header
) 

function btree_online_index_check_unique_constraint

int btree_online_index_check_unique_constraint (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    const  char * index_name,
    OID * class_oid
) 

function btree_online_index_dispatcher

int btree_online_index_dispatcher (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * cls_oid,
    OID * oid,
    int unique,
    BTREE_OP_PURPOSE purpose,
    LOG_LSA * undo_nxlsa
) 

function btree_online_index_list_dispatcher

int btree_online_index_list_dispatcher (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OID * class_oid,
    btree_insert_list * insert_list,
    int unique,
    BTREE_OP_PURPOSE purpose,
    LOG_LSA * undo_nxlsa
) 

function btree_pack_mvccinfo

char * btree_pack_mvccinfo (
    char * ptr,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_packed_mvccinfo_size

int btree_packed_mvccinfo_size (
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_physical_delete

int btree_physical_delete (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * oid,
    OID * class_oid,
    int * unique,
    int op_type,
    btree_unique_stats * unique_stat_info
) 

function btree_prepare_bts

int btree_prepare_bts (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    BTID * btid,
    INDX_SCAN_ID * index_scan_id_p,
    key_val_range * kv_range,
    FILTER_INFO * filter,
    const  OID * match_class_oid,
    DB_BIGINT * key_limit_upper,
    DB_BIGINT * key_limit_lower,
    bool need_to_check_null,
    void * bts_other
) 

function btree_range_scan

int btree_range_scan (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    BTREE_RANGE_SCAN_PROCESS_KEY_FUNC * key_func
) 

function btree_range_scan_free_matched_idx

void btree_range_scan_free_matched_idx (
    BTREE_SCAN * bts
) 

function btree_range_scan_select_visible_oids

int btree_range_scan_select_visible_oids (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_read_key_type

TP_DOMAIN * btree_read_key_type (
    THREAD_ENTRY * thread_p,
    BTID * btid
) 

function btree_read_record

int btree_read_record (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR pgptr,
    RECDES * rec,
    DB_VALUE * key,
    void * rec_header,
    BTREE_NODE_TYPE node_type,
    bool * clear_key,
    int * offset,
    int copy_key,
    BTREE_SCAN * bts
) 

function btree_reflect_global_unique_statistics

int btree_reflect_global_unique_statistics (
    THREAD_ENTRY * thread_p,
    GLOBAL_UNIQUE_STATS * unique_stat_info,
    bool only_active_tran
) 

function btree_remake_foreign_key_with_PK

int btree_remake_foreign_key_with_PK (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * class_oid,
    key_val_range * kv_range,
    bool * is_newly
) 

function btree_remake_reference_key_with_FK

int btree_remake_reference_key_with_FK (
    THREAD_ENTRY * thread_p,
    TP_DOMAIN * pk_domain,
    DB_VALUE * fk_key,
    DB_VALUE * new_key
) 

DISK_ISVALID btree_repair_prev_link (
    THREAD_ENTRY * thread_p,
    OID * oid,
    BTID * index_btid,
    bool repair
) 

function btree_reset_common_prefix_page_info

void btree_reset_common_prefix_page_info (
    BTREE_SCAN * bts
) 

function btree_rv_keyval_dump

void btree_rv_keyval_dump (
    FILE * fp,
    int length,
    void * data
) 

function btree_rv_keyval_undo_delete

int btree_rv_keyval_undo_delete (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_keyval_undo_insert

int btree_rv_keyval_undo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_keyval_undo_insert_mvcc_delid

int btree_rv_keyval_undo_insert_mvcc_delid (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_keyval_undo_insert_unique

int btree_rv_keyval_undo_insert_unique (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_keyval_undo_online_index_tran_delete

int btree_rv_keyval_undo_online_index_tran_delete (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_keyval_undo_online_index_tran_insert

int btree_rv_keyval_undo_online_index_tran_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_newpage_redo_init

int btree_rv_newpage_redo_init (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_nodehdr_redo_insert

int btree_rv_nodehdr_redo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_nodehdr_undo_insert

int btree_rv_nodehdr_undo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_nodehdr_undoredo_update

int btree_rv_nodehdr_undoredo_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_noderec_dump

void btree_rv_noderec_dump (
    FILE * fp,
    int length,
    void * data
) 

function btree_rv_noderec_dump_slot_id

void btree_rv_noderec_dump_slot_id (
    FILE * fp,
    int length,
    void * data
) 

function btree_rv_noderec_redo_insert

int btree_rv_noderec_redo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_noderec_undo_insert

int btree_rv_noderec_undo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_noderec_undoredo_update

int btree_rv_noderec_undoredo_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_nop

int btree_rv_nop (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_ovfid_dump

void btree_rv_ovfid_dump (
    FILE * fp,
    int length,
    void * data
) 

function btree_rv_ovfid_undoredo_update

int btree_rv_ovfid_undoredo_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_pagerec_delete

int btree_rv_pagerec_delete (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_pagerec_insert

int btree_rv_pagerec_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_read_keybuf_nocopy

void btree_rv_read_keybuf_nocopy (
    THREAD_ENTRY * thread_p,
    char * datap,
    int data_size,
    BTID_INT * btid,
    OID * cls_oid,
    OID * oid,
    BTREE_MVCC_INFO * mvcc_info,
    OR_BUF * key_buf
) 

function btree_rv_read_keybuf_two_objects

void btree_rv_read_keybuf_two_objects (
    THREAD_ENTRY * thread_p,
    char * datap,
    int data_size,
    BTID_INT * btid_int,
    BTREE_OBJECT_INFO * first_version,
    BTREE_OBJECT_INFO * second_version,
    OR_BUF * key_buf
) 

function btree_rv_read_keyval_info_nocopy

int btree_rv_read_keyval_info_nocopy (
    THREAD_ENTRY * thread_p,
    char * datap,
    int data_size,
    BTID_INT * btid,
    OID * cls_oid,
    OID * oid,
    BTREE_MVCC_INFO * mvcc_info,
    DB_VALUE * key
) 

function btree_rv_redo_global_unique_stats_commit

int btree_rv_redo_global_unique_stats_commit (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_redo_record_modify

int btree_rv_redo_record_modify (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function btree_rv_remove_marked_for_delete

int btree_rv_remove_marked_for_delete (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function btree_rv_remove_unique_stats

int btree_rv_remove_unique_stats (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_roothdr_dump

void btree_rv_roothdr_dump (
    FILE * fp,
    int length,
    void * data
) 

function btree_rv_roothdr_undo_update

int btree_rv_roothdr_undo_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_save_keyval_for_undo

int btree_rv_save_keyval_for_undo (
    BTID_INT * btid,
    DB_VALUE * key,
    OID * cls_oid,
    OID * oid,
    BTREE_MVCC_INFO * mvcc_info,
    BTREE_OP_PURPOSE purpose,
    char * preallocated_buffer,
    char ** data,
    int * capacity,
    int * length
) 

function btree_rv_undo_global_unique_stats_commit

int btree_rv_undo_global_unique_stats_commit (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_undo_mark_dealloc_page

int btree_rv_undo_mark_dealloc_page (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function btree_rv_undo_record_modify

int btree_rv_undo_record_modify (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function btree_rv_undoredo_copy_page

int btree_rv_undoredo_copy_page (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_update_tran_stats

int btree_rv_update_tran_stats (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function btree_rv_util_dump_leafrec

void btree_rv_util_dump_leafrec (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    BTID_INT * btid,
    RECDES * rec
) 

function btree_rv_util_dump_nleafrec

void btree_rv_util_dump_nleafrec (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    BTID_INT * btid,
    RECDES * rec
) 

function btree_rv_util_save_page_records

int btree_rv_util_save_page_records (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_ptr,
    INT16 first_slotid,
    int rec_cnt,
    INT16 ins_slotid,
    char * data,
    int * length
) 

function btree_scan_clear_key

void btree_scan_clear_key (
    BTREE_SCAN * btree_scan
) 

function btree_set_error

int btree_set_error (
    THREAD_ENTRY * thread_p,
    const  DB_VALUE * key,
    const  OID * obj_oid,
    const  OID * class_oid,
    const  BTID * btid,
    const  char * bt_name,
    int severity,
    int err_id,
    const  char * filename,
    int lineno
) 

function btree_set_mvcc_flags_into_oid

void btree_set_mvcc_flags_into_oid (
    MVCC_REC_HEADER * p_mvcc_header,
    OID * oid
) 

function btree_set_mvcc_header_ids_for_update

void btree_set_mvcc_header_ids_for_update (
    THREAD_ENTRY * thread_p,
    bool do_delete_only,
    bool do_insert_only,
    MVCCID * mvcc_id,
    MVCC_REC_HEADER * mvcc_rec_header
) 

function btree_update

int btree_update (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * old_key,
    DB_VALUE * new_key,
    OID * cls_oid,
    OID * oid,
    int op_type,
    btree_unique_stats * unique_stat_info,
    int * unique,
    MVCC_REC_HEADER * p_mvcc_rec_header
) 

function btree_vacuum_insert_mvccid

int btree_vacuum_insert_mvccid (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OR_BUF * buffered_key,
    OID * oid,
    OID * class_oid,
    MVCCID insert_mvccid
) 

function btree_vacuum_object

int btree_vacuum_object (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OR_BUF * buffered_key,
    OID * oid,
    OID * class_oid,
    MVCCID delete_mvccid
) 

function btree_verify_tree

DISK_ISVALID btree_verify_tree (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid_p,
    BTID_INT * btid_int,
    const  char * btname
) 

function btree_write_record

int btree_write_record (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    void * node_rec,
    DB_VALUE * key,
    BTREE_NODE_TYPE node_type,
    int key_type,
    int key_len,
    bool during_loading,
    OID * class_oid,
    OID * oid,
    BTREE_MVCC_INFO * mvcc_info,
    RECDES * rec
) 

function bts_reset_scan

void bts_reset_scan (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function xbtree_add_index

BTID * xbtree_add_index (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    TP_DOMAIN * key_type,
    OID * class_oid,
    int attr_id,
    int unique_pk,
    long  long num_oids,
    long  long num_nulls,
    long  long num_keys,
    int deduplicate_key_pos
) 

function xbtree_class_test_unique

int xbtree_class_test_unique (
    THREAD_ENTRY * thread_p,
    char * buf,
    int buf_size
) 

function xbtree_delete_index

int xbtree_delete_index (
    THREAD_ENTRY * thread_p,
    BTID * btid
) 

function xbtree_find_multi_uniques

BTREE_SEARCH xbtree_find_multi_uniques (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    int pruning_type,
    BTID * btids,
    DB_VALUE * values,
    int count,
    SCAN_OPERATION_TYPE op_type,
    OID ** oids,
    int * oids_count
) 

function xbtree_find_unique

BTREE_SEARCH xbtree_find_unique (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    SCAN_OPERATION_TYPE scan_op_type,
    DB_VALUE * key,
    OID * class_oid,
    OID * oid,
    bool is_all_class_srch
) 

function xbtree_get_key_type

int xbtree_get_key_type (
    THREAD_ENTRY * thread_p,
    BTID btid,
    TP_DOMAIN ** key_type
) 

function xbtree_get_unique_pk

int xbtree_get_unique_pk (
    THREAD_ENTRY * thread_p,
    BTID * btid
) 

Public Static Functions Documentation

function BTREE_RV_GET_DATA_LENGTH

static void BTREE_RV_GET_DATA_LENGTH (
    const  char * rv_ptr,
    const  char * rv_start,
    int & rv_length
) 

function btree_add_mvccid

static void btree_add_mvccid (
    RECDES * rec,
    int oid_offset,
    int mvccid_offset,
    MVCCID mvccid,
    short flag,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

function btree_advance_and_find_key

static int btree_advance_and_find_key (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * crt_page,
    PAGE_PTR * advance_to_page,
    bool * is_leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * stop,
    bool * restart,
    void * other_args
) 

function btree_append_oid

static void btree_append_oid (
    RECDES * rec,
    OID * oid
) 

function btree_apply_key_range_and_filter

static int btree_apply_key_range_and_filter (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    bool is_iss,
    bool * key_range_satisfied,
    bool * key_filter_satisfied
) 

function btree_check_by_btid

static DISK_ISVALID btree_check_by_btid (
    THREAD_ENTRY * thread_p,
    BTID * btid
) 

function btree_check_decompress_key

static void btree_check_decompress_key (
    BTREE_SCAN * bts
) 

function btree_check_locking_for_delete_unique

static bool btree_check_locking_for_delete_unique (
    THREAD_ENTRY * thread_p,
    const  BTREE_DELETE_HELPER * delete_helper
) 

function btree_check_locking_for_insert_unique

static bool btree_check_locking_for_insert_unique (
    THREAD_ENTRY * thread_p,
    const  BTREE_INSERT_HELPER * insert_helper
) 

function btree_check_page_key

static DISK_ISVALID btree_check_page_key (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid_p,
    BTID_INT * btid,
    const  char * btname,
    PAGE_PTR page_ptr,
    VPID * page_vpid
) 

function btree_check_pages

static DISK_ISVALID btree_check_pages (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR pg_ptr,
    VPID * pg_vpid
) 

function btree_check_tree

static DISK_ISVALID btree_check_tree (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid_p,
    BTID * btid,
    const  char * btname
) 

function btree_compare_individual_key_value

static int btree_compare_individual_key_value (
    DB_VALUE * key1,
    DB_VALUE * key2,
    TP_DOMAIN * key_domain
) 

function btree_compress_node

static int btree_compress_node (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr
) 

function btree_count_oids

static int btree_count_oids (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    char * object_ptr,
    OID * oid,
    OID * class_oid,
    MVCC_REC_HEADER * mvcc_header,
    bool * stop,
    void * args
) 

function btree_delete_helper_to_insert_helper

static inline void btree_delete_helper_to_insert_helper (
    BTREE_DELETE_HELPER * delete_helper,
    BTREE_INSERT_HELPER * insert_helper
) 

function btree_delete_internal

static int btree_delete_internal (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OID * oid,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info,
    DB_VALUE * key,
    OR_BUF * buffered_key,
    int * unique,
    int op_type,
    btree_unique_stats * unique_stat_info,
    BTREE_MVCC_INFO * match_mvccinfo,
    LOG_LSA * undo_nxlsa,
    BTREE_OBJECT_INFO * second_obj_info,
    BTREE_OP_PURPOSE purpose
) 

function btree_delete_key_from_leaf

static int btree_delete_key_from_leaf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR leaf_pg,
    LEAF_REC * leafrec_pnt,
    BTREE_DELETE_HELPER * delete_helper,
    BTREE_SEARCH_KEY_HELPER * search_key
) 

function btree_delete_meta_record

static int btree_delete_meta_record (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr,
    int slot_id
) 

function btree_delete_overflow_key

static int btree_delete_overflow_key (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr,
    INT16 slot_id,
    BTREE_NODE_TYPE node_type
) 

function btree_delete_postponed

static int btree_delete_postponed (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OR_BUF * buffered_key,
    BTREE_OBJECT_INFO * btree_obj,
    MVCCID tran_mvccid,
    LOG_LSA * reference_lsa
) 

function btree_delete_sysop_end

static void btree_delete_sysop_end (
    THREAD_ENTRY * thread_p,
    BTREE_DELETE_HELPER * helper
) 

function btree_dump_curr_key

static int btree_dump_curr_key (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    FILTER_INFO * filter,
    OID * oid,
    INDX_SCAN_ID * iscan_id
) 

function btree_dump_leaf_record

static void btree_dump_leaf_record (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    BTID_INT * btid,
    RECDES * rec,
    int n
) 

function btree_dump_non_leaf_record

static void btree_dump_non_leaf_record (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    BTID_INT * btid,
    RECDES * rec,
    int n,
    int print_key
) 

function btree_dump_page

static void btree_dump_page (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    const  OID * class_oid_p,
    BTID_INT * btid,
    const  char * btname,
    PAGE_PTR page_ptr,
    VPID * pg_vpid,
    int depth,
    int level
) 

function btree_dump_page_with_subtree

static void btree_dump_page_with_subtree (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    BTID_INT * btid,
    PAGE_PTR pg_ptr,
    VPID * pg_vpid,
    int depth,
    int level
) 

function btree_dump_root_header

static void btree_dump_root_header (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    PAGE_PTR page_ptr
) 

function btree_find_AR_sampling_leaf

static PAGE_PTR btree_find_AR_sampling_leaf (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    VPID * pg_vpid,
    BTREE_STATS * stat_info_p
) 

function btree_find_boundary_leaf

static PAGE_PTR btree_find_boundary_leaf (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    VPID * pg_vpid,
    BTREE_STATS * stat_info,
    BTREE_BOUNDARY where
) 

function btree_find_free_overflow_oids_page

static int btree_find_free_overflow_oids_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    VPID * first_ovfl_vpid,
    PAGE_PTR * overflow_page
) 

function btree_find_key_from_leaf

static DISK_ISVALID btree_find_key_from_leaf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR pg_ptr,
    int key_cnt,
    OID * oid,
    DB_VALUE * key,
    bool * clear_key
) 

function btree_find_key_from_nleaf

static DISK_ISVALID btree_find_key_from_nleaf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR pg_ptr,
    int key_cnt,
    OID * oid,
    DB_VALUE * key,
    bool * clear_key
) 

function btree_find_key_from_page

static DISK_ISVALID btree_find_key_from_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR pg_ptr,
    OID * oid,
    DB_VALUE * key,
    bool * clear_key
) 

function btree_find_leftmost_leaf

static PAGE_PTR btree_find_leftmost_leaf (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    VPID * pg_vpid,
    BTREE_STATS * stat_info_p
) 

function btree_find_lower_bound_leaf

static int btree_find_lower_bound_leaf (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * BTS,
    BTREE_STATS * stat_info_p
) 

function btree_find_next_index_record

static int btree_find_next_index_record (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_find_next_index_record_holding_current

static int btree_find_next_index_record_holding_current (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    RECDES * peek_rec
) 

function btree_find_next_index_record_holding_current_helper

static int btree_find_next_index_record_holding_current_helper (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    PAGE_PTR first_page
) 

function btree_find_oid_and_its_page

static int btree_find_oid_and_its_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    OID * oid,
    PAGE_PTR leaf_page,
    BTREE_OP_PURPOSE purpose,
    BTREE_MVCC_INFO * match_mvccinfo,
    RECDES * leaf_record,
    LEAF_REC * leaf_rec_info,
    int after_key_offset,
    PAGE_PTR * found_page,
    PAGE_PTR * prev_page,
    int * offset_to_object,
    BTREE_MVCC_INFO * object_mvcc_info
) 

function btree_find_oid_does_mvcc_info_match

static int btree_find_oid_does_mvcc_info_match (
    THREAD_ENTRY * thread_p,
    BTREE_MVCC_INFO * mvcc_info,
    BTREE_OP_PURPOSE purpose,
    BTREE_MVCC_INFO * match_mvccinfo,
    bool * is_match
) 

function btree_find_oid_from_leaf

static int btree_find_oid_from_leaf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    RECDES * leaf_record,
    int after_key_offset,
    OID * oid,
    BTREE_MVCC_INFO * match_mvccinfo,
    BTREE_OP_PURPOSE purpose,
    int * offset_to_object,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_find_oid_from_ovfl

static int btree_find_oid_from_ovfl (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR overflow_page,
    OID * oid,
    BTREE_OP_PURPOSE purpose,
    BTREE_MVCC_INFO * match_mvccinfo,
    int * offset_to_object,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_find_oid_with_page_and_record

static int btree_find_oid_with_page_and_record (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    OID * oid,
    PAGE_PTR leaf_page,
    BTREE_OP_PURPOSE purpose,
    BTREE_MVCC_INFO * match_mvccinfo,
    RECDES * record,
    LEAF_REC * leaf_info,
    int offset_after_key,
    PAGE_PTR * found_page,
    PAGE_PTR * prev_page,
    int * offset_to_object,
    BTREE_MVCC_INFO * object_mvcc_info,
    RECDES * new_record
) 

function btree_find_rightmost_leaf

static PAGE_PTR btree_find_rightmost_leaf (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    VPID * pg_vpid,
    BTREE_STATS * stat_info_p
) 

function btree_find_split_point

static DB_VALUE * btree_find_split_point (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr,
    int * mid_slot,
    DB_VALUE * key,
    BTREE_INSERT_HELPER * helper,
    bool * clear_midkey
) 

function btree_fix_root_for_delete

static int btree_fix_root_for_delete (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * root_page,
    bool * is_leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * stop,
    bool * restart,
    void * other_args
) 

function btree_fix_root_for_insert

static int btree_fix_root_for_insert (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * root_page,
    bool * is_leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * stop,
    bool * restart,
    void * other_args
) 

function btree_fix_root_with_info

static PAGE_PTR btree_fix_root_with_info (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    PGBUF_LATCH_MODE latch_mode,
    VPID * root_vpid_p,
    BTREE_ROOT_HEADER ** root_header_p,
    BTID_INT * btid_int_p
) 

function btree_fk_object_does_exist

static int btree_fk_object_does_exist (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    char * object_ptr,
    OID * oid,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info,
    bool * stop,
    void * args
) 

function btree_get_creator_mvccid

static MVCCID btree_get_creator_mvccid (
    THREAD_ENTRY * thread_p,
    PAGE_PTR root_page
) 

function btree_get_max_new_data_size

static int btree_get_max_new_data_size (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR page,
    BTREE_NODE_TYPE node_type,
    int key_len,
    BTREE_INSERT_HELPER * helper,
    bool known_to_be_found
) 

function btree_get_new_page

static PAGE_PTR btree_get_new_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    VPID * vpid,
    VPID * near_vpid
) 

function btree_get_next_page

static PAGE_PTR btree_get_next_page (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_p
) 

function btree_get_next_page_vpid

static int btree_get_next_page_vpid (
    THREAD_ENTRY * thread_p,
    PAGE_PTR leaf_page,
    VPID * next_vpid
) 

function btree_get_node_level

static int btree_get_node_level (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_ptr
) 

function btree_get_num_visible_oids_from_all_ovf

static int btree_get_num_visible_oids_from_all_ovf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    VPID * first_ovfl_vpid,
    int * num_visible_oids,
    int * max_visible_oids,
    MVCC_SNAPSHOT * mvcc_snapshot
) 

function btree_get_root_with_key

static int btree_get_root_with_key (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * root_page,
    bool * is_leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * stop,
    bool * restart,
    void * other_args
) 

function btree_get_stats_key

static int btree_get_stats_key (
    THREAD_ENTRY * thread_p,
    BTREE_STATS_ENV * env,
    MVCC_SNAPSHOT * mvcc_snapshot
) 

function btree_get_stats_midxkey

static int btree_get_stats_midxkey (
    THREAD_ENTRY * thread_p,
    BTREE_STATS_ENV * env,
    DB_MIDXKEY * midxkey
) 

function btree_get_stats_with_AR_sampling

static int btree_get_stats_with_AR_sampling (
    THREAD_ENTRY * thread_p,
    BTREE_STATS_ENV * env
) 

function btree_get_stats_with_fullscan

static int btree_get_stats_with_fullscan (
    THREAD_ENTRY * thread_p,
    BTREE_STATS_ENV * env
) 

function btree_get_subtree_capacity

static int btree_get_subtree_capacity (
    THREAD_ENTRY * thread_p,
    PAGE_PTR pg_ptr,
    BTREE_CAPACITY * cpc,
    BTREE_STATS_ENV * env
) 

function btree_get_subtree_stats

static int btree_get_subtree_stats (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR pg_ptr,
    BTREE_STATS_ENV * env
) 

function btree_ils_adjust_range

static int btree_ils_adjust_range (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_insert_helper_to_delete_helper

static inline void btree_insert_helper_to_delete_helper (
    BTREE_INSERT_HELPER * insert_helper,
    BTREE_DELETE_HELPER * delete_helper
) 

function btree_insert_internal

static int btree_insert_internal (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * class_oid,
    OID * oid,
    int op_type,
    btree_unique_stats * unique_stat_info,
    int * unique,
    BTREE_MVCC_INFO * mvcc_info,
    LOG_LSA * undo_nxlsa,
    BTREE_OP_PURPOSE purpose
) 

function btree_insert_mvcc_delid_into_page

static int btree_insert_mvcc_delid_into_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr,
    BTREE_NODE_TYPE node_type,
    DB_VALUE * key,
    BTREE_INSERT_HELPER * insert_helper,
    PGSLOTID slot_id,
    RECDES * rec,
    int oid_offset
) 

function btree_insert_object_ordered_by_oid

static void btree_insert_object_ordered_by_oid (
    THREAD_ENTRY * thread_p,
    RECDES * record,
    BTID_INT * btid_int,
    BTREE_OBJECT_INFO * object_info,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr,
    int * offset_to_objptr
) 

function btree_insert_sysop_end

static void btree_insert_sysop_end (
    THREAD_ENTRY * thread_p,
    BTREE_INSERT_HELPER * helper
) 

function btree_is_class_oid_packed

static bool btree_is_class_oid_packed (
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    bool is_first
) 

function btree_is_delete_data_purpose

static bool btree_is_delete_data_purpose (
    BTREE_OP_PURPOSE purpose
) 

function btree_is_delete_object_purpose

static bool btree_is_delete_object_purpose (
    BTREE_OP_PURPOSE purpose
) 

function btree_is_fence_key

static bool btree_is_fence_key (
    PAGE_PTR leaf_page,
    PGSLOTID slotid
) 

function btree_is_fixed_size

static inline bool btree_is_fixed_size (
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    bool is_first
) 

function btree_is_insert_data_purpose

static bool btree_is_insert_data_purpose (
    BTREE_OP_PURPOSE purpose
) 

function btree_is_insert_delid_purpose

static bool btree_is_insert_delid_purpose (
    BTREE_OP_PURPOSE purpose
) 

function btree_is_insert_object_purpose

static bool btree_is_insert_object_purpose (
    BTREE_OP_PURPOSE purpose
) 

function btree_is_key_visible

static int btree_is_key_visible (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR pg_ptr,
    MVCC_SNAPSHOT * mvcc_snapshot,
    int slot_id,
    bool * is_visible,
    DB_VALUE * key_value
) 

function btree_is_online_index_loading

static inline bool btree_is_online_index_loading (
    BTREE_OP_PURPOSE purpose
) 

function btree_is_same_key_for_stats

static inline bool btree_is_same_key_for_stats (
    BTREE_STATS_ENV * env,
    DB_VALUE * key_value
) 

function btree_is_single_object_key

static bool btree_is_single_object_key (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_NODE_TYPE node_type,
    RECDES * record,
    int offset_after_key
) 

function btree_iss_set_key

static int btree_iss_set_key (
    BTREE_SCAN * bts,
    INDEX_SKIP_SCAN * iss
) 

function btree_key_append_object_as_new_overflow

static int btree_key_append_object_as_new_overflow (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR leaf_page,
    BTREE_OBJECT_INFO * object_info,
    BTREE_INSERT_HELPER * insert_helper,
    BTREE_SEARCH_KEY_HELPER * search_key,
    RECDES * leaf_rec,
    VPID * first_ovfl_vpid
) 

function btree_key_append_object_into_ovf

static int btree_key_append_object_into_ovf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    RECDES * leaf_record,
    LEAF_REC * leaf_record_info,
    BTREE_INSERT_HELPER * insert_helper,
    BTREE_OBJECT_INFO * append_object
) 

function btree_key_append_object_non_unique

static int btree_key_append_object_non_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    RECDES * leaf_record,
    int offset_after_key,
    LEAF_REC * leaf_info,
    BTREE_OBJECT_INFO * btree_obj,
    BTREE_INSERT_HELPER * insert_helper
) 

function btree_key_append_object_to_overflow

static int btree_key_append_object_to_overflow (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR ovfl_page,
    BTREE_OBJECT_INFO * object_info,
    BTREE_INSERT_HELPER * insert_helper
) 

function btree_key_append_object_unique

static int btree_key_append_object_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    RECDES * leaf_record,
    LEAF_REC * leaf_record_info,
    int offset_after_key,
    BTREE_INSERT_HELPER * insert_helper,
    BTREE_OBJECT_INFO * first_object
) 

function btree_key_delete_remove_object

static int btree_key_delete_remove_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_find_and_insert_delete_mvccid

static int btree_key_find_and_insert_delete_mvccid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_find_and_lock_unique

static int btree_key_find_and_lock_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_find_and_lock_unique_of_non_unique

static int btree_key_find_and_lock_unique_of_non_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_find_and_lock_unique_of_unique

static int btree_key_find_and_lock_unique_of_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_find_first_visible_row

static BTREE_SEARCH btree_key_find_first_visible_row (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * rec,
    int offset,
    BTREE_NODE_TYPE node_type,
    OID * oid,
    OID * class_oid,
    int max_oids
) 

function btree_key_find_first_visible_row_from_all_ovf

static BTREE_SEARCH btree_key_find_first_visible_row_from_all_ovf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    VPID * first_ovfl_vpid,
    OID * oid,
    OID * class_oid
) 

function btree_key_find_unique_version_oid

static int btree_key_find_unique_version_oid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_insert_delete_mvccid

static int btree_key_insert_delete_mvccid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    BTREE_INSERT_HELPER * insert_helper,
    RECDES * leaf_record,
    PAGE_PTR object_page,
    int offset_to_found_object
) 

function btree_key_insert_does_leaf_need_split

static bool btree_key_insert_does_leaf_need_split (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR leaf_page,
    BTREE_INSERT_HELPER * insert_helper,
    BTREE_SEARCH_KEY_HELPER * search_key
) 

function btree_key_insert_new_key

static int btree_key_insert_new_key (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR leaf_page,
    BTREE_INSERT_HELPER * insert_helper,
    BTREE_SEARCH_KEY_HELPER * search_key
) 

function btree_key_insert_new_object

static int btree_key_insert_new_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_lock_and_append_object_unique

static int btree_key_lock_and_append_object_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf,
    bool * restart,
    BTREE_SEARCH_KEY_HELPER * search_key,
    BTREE_INSERT_HELPER * insert_helper,
    RECDES * leaf_record
) 

function btree_key_lock_object

static int btree_key_lock_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    PAGE_PTR * overflow_page,
    OID * oid,
    OID * class_oid,
    LOCK lock_mode,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool try_cond_lock,
    bool * restart,
    bool * was_page_refixed
) 

function btree_key_online_index_IB_insert

static int btree_key_online_index_IB_insert (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_online_index_IB_insert_list

static int btree_key_online_index_IB_insert_list (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_online_index_tran_delete

static int btree_key_online_index_tran_delete (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_online_index_tran_insert

static int btree_key_online_index_tran_insert (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_online_index_tran_insert_DF

static int btree_key_online_index_tran_insert_DF (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_process_objects

static int btree_key_process_objects (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * leaf_record,
    int after_key_offset,
    LEAF_REC * leaf_info,
    BTREE_PROCESS_OBJECT_FUNCTION * func,
    void * args
) 

function btree_key_record_check_no_visible

static void btree_key_record_check_no_visible (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR leaf_page,
    PGSLOTID slotid
) 

function btree_key_relocate_last_into_ovf

static int btree_key_relocate_last_into_ovf (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    RECDES * leaf_record,
    LEAF_REC * leaf_record_info,
    int offset_after_key,
    BTREE_INSERT_HELPER * insert_helper
) 

function btree_key_remove_delete_mvccid

static int btree_key_remove_delete_mvccid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_remove_delete_mvccid_non_unique

static int btree_key_remove_delete_mvccid_non_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR page,
    RECDES * record,
    PGSLOTID slotid,
    BTREE_NODE_TYPE node_type,
    int offset_to_object
) 

function btree_key_remove_delete_mvccid_unique

static int btree_key_remove_delete_mvccid_unique (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    BTREE_SEARCH_KEY_HELPER * search_key,
    PAGE_PTR leaf_page,
    RECDES * leaf_record,
    PAGE_PTR overflow_page,
    RECDES * overflow_record,
    BTREE_NODE_TYPE node_type,
    int offset_to_object
) 

function btree_key_remove_insert_mvccid

static int btree_key_remove_insert_mvccid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_key_remove_object

static int btree_key_remove_object (
    THREAD_ENTRY * thread_p,
    DB_VALUE * key,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR leaf_page,
    RECDES * leaf_record,
    LEAF_REC * leaf_info,
    int offset_after_key,
    BTREE_SEARCH_KEY_HELPER * search_key,
    PAGE_PTR * overflow_page,
    PAGE_PTR prev_page,
    BTREE_NODE_TYPE node_type,
    int offset_to_object
) 

function btree_key_remove_object_and_keep_visible_first

static int btree_key_remove_object_and_keep_visible_first (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * restart,
    void * other_args
) 

function btree_leaf_clear_flag

static void btree_leaf_clear_flag (
    RECDES * recp,
    short record_flag
) 

function btree_leaf_get_flag

static short btree_leaf_get_flag (
    RECDES * recp
) 

function btree_leaf_get_nth_oid_ptr

static char * btree_leaf_get_nth_oid_ptr (
    BTID_INT * btid,
    RECDES * recp,
    BTREE_NODE_TYPE node_type,
    int oid_list_offset,
    int n
) 

function btree_leaf_get_vpid_for_overflow_oids

static int btree_leaf_get_vpid_for_overflow_oids (
    RECDES * rec,
    VPID * vpid
) 

function btree_leaf_is_flaged

static bool btree_leaf_is_flaged (
    RECDES * recp,
    short record_flag
) 

function btree_leaf_is_key_between_min_max

static int btree_leaf_is_key_between_min_max (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR leaf,
    DB_VALUE * key,
    BTREE_SEARCH_KEY_HELPER * search_key
) 

function btree_leaf_lsa_eq

static bool btree_leaf_lsa_eq (
    THREAD_ENTRY * thread_p,
    LOG_LSA * a,
    LOG_LSA * b
) 

function btree_leaf_record_handle_first_overflow

static void btree_leaf_record_handle_first_overflow (
    THREAD_ENTRY * thread_p,
    RECDES * recp,
    BTID_INT * btid_int,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

function btree_leaf_record_replace_first_with_last

static int btree_leaf_record_replace_first_with_last (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR leaf_page,
    RECDES * leaf_record,
    BTREE_SEARCH_KEY_HELPER * search_key,
    OID * last_oid,
    OID * last_class_oid,
    BTREE_MVCC_INFO * last_mvcc_info,
    int offset_to_last_object
) 

function btree_leaf_remove_object

static int btree_leaf_remove_object (
    THREAD_ENTRY * thread_p,
    DB_VALUE * key,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR leaf_page,
    RECDES * leaf_record,
    LEAF_REC * leaf_rec_info,
    int offset_after_key,
    BTREE_SEARCH_KEY_HELPER * search_key,
    int offset_to_object
) 

function btree_leaf_set_flag

static void btree_leaf_set_flag (
    RECDES * recp,
    short record_flag
) 

function btree_load_overflow_key

static int btree_load_overflow_key (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    VPID * firstpg_vpid,
    DB_VALUE * key,
    BTREE_NODE_TYPE node_type
) 

function btree_make_complete_key_including_prefix

static void btree_make_complete_key_including_prefix (
    BTREE_SCAN * bts,
    DB_VALUE * common_prefix_key,
    int common_prefix_size
) 

function btree_merge_node

static int btree_merge_node (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR P,
    PAGE_PTR Q,
    PAGE_PTR R,
    INT16 p_slot_id,
    VPID * child_vpid,
    BTREE_MERGE_STATUS status
) 

function btree_merge_node_and_advance

static int btree_merge_node_and_advance (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * crt_page,
    PAGE_PTR * advance_to_page,
    bool * is_leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * stop,
    bool * restart,
    void * other_args
) 

function btree_merge_root

static int btree_merge_root (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR P,
    PAGE_PTR Q,
    PAGE_PTR R
) 

function btree_modify_leaf_ovfl_vpid

static int btree_modify_leaf_ovfl_vpid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR leaf_page,
    RECDES * leaf_record,
    BTREE_SEARCH_KEY_HELPER * search_key,
    VPID * next_ovfl_vpid
) 

static int btree_modify_overflow_link (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR ovfl_page,
    VPID * next_ovfl_vpid
) 

function btree_node_calculate_common_prefix

static int btree_node_calculate_common_prefix (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr
) 

function btree_node_get_common_prefix

static int btree_node_get_common_prefix (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr
) 

function btree_node_mergeable

static BTREE_MERGE_STATUS btree_node_mergeable (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR L,
    PAGE_PTR R
) 

function btree_node_size_uncompressed

static int btree_node_size_uncompressed (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr
) 

function btree_online_index_change_state

static void btree_online_index_change_state (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    int offset_to_object,
    MVCCID new_state,
    char ** rv_undo_data,
    char ** rv_redo_data
) 

function btree_online_index_check_state

static inline void btree_online_index_check_state (
    MVCCID state
) 

function btree_online_index_is_delete_flag_state

static inline bool btree_online_index_is_delete_flag_state (
    MVCCID state
) 

function btree_online_index_is_insert_flag_state

static inline bool btree_online_index_is_insert_flag_state (
    MVCCID state
) 

function btree_online_index_is_normal_state

static inline bool btree_online_index_is_normal_state (
    MVCCID state
) 

function btree_online_index_set_delete_flag_state

static inline void btree_online_index_set_delete_flag_state (
    MVCCID & state
) 

function btree_online_index_set_insert_flag_state

static inline void btree_online_index_set_insert_flag_state (
    MVCCID & state
) 

function btree_online_index_set_normal_state

static inline void btree_online_index_set_normal_state (
    MVCCID & state
) 

function btree_op_type_to_string

static const  char * btree_op_type_to_string (
    int op_type
) 

function btree_or_get_mvccinfo

static int btree_or_get_mvccinfo (
    OR_BUF * buf,
    BTREE_MVCC_INFO * mvcc_info,
    short btree_mvcc_flags
) 

function btree_or_get_object

static int btree_or_get_object (
    OR_BUF * buf,
    BTID_INT * btid_int,
    BTREE_NODE_TYPE node_type,
    int after_key_offset,
    OID * oid,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_or_put_mvccinfo

static int btree_or_put_mvccinfo (
    OR_BUF * buf,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_or_put_object

static int btree_or_put_object (
    OR_BUF * buf,
    BTID_INT * btid_int,
    BTREE_NODE_TYPE node_type,
    BTREE_OBJECT_INFO * object_info
) 

function btree_overflow_record_replace_object

static int btree_overflow_record_replace_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR overflow_page,
    RECDES * overflow_record,
    int * offset_to_replaced_object,
    BTREE_OBJECT_INFO * replacing_object
) 

function btree_overflow_remove_object

static int btree_overflow_remove_object (
    THREAD_ENTRY * thread_p,
    DB_VALUE * key,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR * overflow_page,
    PAGE_PTR prev_page,
    PAGE_PTR leaf_page,
    RECDES * leaf_record,
    BTREE_SEARCH_KEY_HELPER * search_key,
    int offset_to_object
) 

function btree_pack_object

static char * btree_pack_object (
    char * ptr,
    BTID_INT * btid_int,
    BTREE_NODE_TYPE node_type,
    RECDES * record,
    BTREE_OBJECT_INFO * object_info
) 

function btree_perf_ovf_oids_fix_time

static inline void btree_perf_ovf_oids_fix_time (
    THREAD_ENTRY * thread_p,
    PERF_UTIME_TRACKER * track
) 

function btree_perf_track_time

template<typename  Helper>
static inline void btree_perf_track_time (
    THREAD_ENTRY * thread_p,
    Helper * helper
) 

function btree_perf_track_traverse_time

template<typename  Helper>
static inline void btree_perf_track_traverse_time (
    THREAD_ENTRY * thread_p,
    Helper * helper
) 

function btree_perf_unique_lock_time

static inline void btree_perf_unique_lock_time (
    THREAD_ENTRY * thread_p,
    PERF_UTIME_TRACKER * track,
    LOCK lock
) 

function btree_print_space

static void btree_print_space (
    FILE * fp,
    int n
) 

function btree_purpose_to_string

static const  char * btree_purpose_to_string (
    BTREE_OP_PURPOSE purpose
) 

function btree_range_opt_check_add_index_key

static int btree_range_opt_check_add_index_key (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    MULTI_RANGE_OPT * multi_range_opt,
    OID * p_new_oid,
    bool * key_added
) 

function btree_range_scan_advance_over_filtered_keys

static int btree_range_scan_advance_over_filtered_keys (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_range_scan_alloc_matched_idx

static void btree_range_scan_alloc_matched_idx (
    BTREE_SCAN * bts
) 

function btree_range_scan_count_oids_leaf_and_one_ovf

static int btree_range_scan_count_oids_leaf_and_one_ovf (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_range_scan_descending_fix_prev_leaf

static int btree_range_scan_descending_fix_prev_leaf (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    int * key_count,
    BTREE_NODE_HEADER ** node_header_ptr,
    VPID * next_vpid
) 

function btree_range_scan_find_fk_any_object

static int btree_range_scan_find_fk_any_object (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_range_scan_read_record

static int btree_range_scan_read_record (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_range_scan_resume

static int btree_range_scan_resume (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_range_scan_start

static int btree_range_scan_start (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts
) 

function btree_read_fixed_portion_of_non_leaf_record

static void btree_read_fixed_portion_of_non_leaf_record (
    RECDES * rec,
    NON_LEAF_REC * nlf_rec
) 

function btree_read_fixed_portion_of_non_leaf_record_from_orbuf

static int btree_read_fixed_portion_of_non_leaf_record_from_orbuf (
    OR_BUF * buf,
    NON_LEAF_REC * nlf_rec
) 

function btree_read_record_in_leafpage

static int btree_read_record_in_leafpage (
    THREAD_ENTRY * thread_p,
    PAGE_PTR pgptr,
    int copy_key,
    BTREE_SCAN * bts
) 

function btree_read_record_without_decompression

static int btree_read_record_without_decompression (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    RECDES * Rec,
    DB_VALUE * key,
    void * rec_header,
    BTREE_NODE_TYPE node_type,
    bool * clear_key,
    int * offset,
    int copy
) 

function btree_recompress_record

static int btree_recompress_record (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    DB_VALUE * fence_key,
    int old_prefix,
    int new_prefix
) 

function btree_record_add_delid

static void btree_record_add_delid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    int offset_to_object,
    MVCCID delete_mvccid,
    char ** rv_undo_data,
    char ** rv_redo_data
) 

function btree_record_append_object

static void btree_record_append_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    BTREE_OBJECT_INFO * object_info,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

function btree_record_get_last_object

static int btree_record_get_last_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * recp,
    BTREE_NODE_TYPE node_type,
    int after_key_offset,
    OID * oidp,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info,
    int * last_oid_mvcc_offset
) 

function btree_record_get_num_oids

static int btree_record_get_num_oids (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * rec,
    int offset,
    BTREE_NODE_TYPE node_type
) 

function btree_record_get_num_visible_oids

static int btree_record_get_num_visible_oids (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    RECDES * rec,
    int oid_offset,
    BTREE_NODE_TYPE node_type,
    int * max_visible_oids,
    MVCC_SNAPSHOT * mvcc_snapshot,
    int * num_visible
) 

function btree_record_object_clear_mvcc_flags

static void btree_record_object_clear_mvcc_flags (
    char * rec_data,
    short mvcc_flags
) 

function btree_record_object_get_mvcc_flags

static inline short btree_record_object_get_mvcc_flags (
    char * data
) 

function btree_record_object_is_flagged

static inline bool btree_record_object_is_flagged (
    char * data,
    short mvcc_flag
) 

function btree_record_object_set_mvcc_flags

static void btree_record_object_set_mvcc_flags (
    char * data,
    short mvcc_flags
) 

function btree_record_process_objects

static int btree_record_process_objects (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_NODE_TYPE node_type,
    RECDES * record,
    int after_key_offset,
    bool * stop,
    BTREE_PROCESS_OBJECT_FUNCTION * func,
    void * args
) 

function btree_record_remove_delid

static void btree_record_remove_delid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    int offset_to_object,
    char ** rv_undo_data,
    char ** rv_redo_data
) 

function btree_record_remove_insid

static void btree_record_remove_insid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    int offset_to_object,
    char ** rv_undo_data,
    char ** rv_redo_data,
    int * displacement
) 

function btree_record_remove_last_object

static void btree_record_remove_last_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    RECDES * recp,
    BTREE_NODE_TYPE node_type,
    int last_oid_mvcc_offset,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

function btree_record_remove_object

static int btree_record_remove_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR page,
    RECDES * record,
    BTREE_SEARCH_KEY_HELPER * search_key,
    BTREE_NODE_TYPE node_type,
    int offset_to_object,
    LOG_DATA_ADDR * addr
) 

function btree_record_remove_object_internal

static void btree_record_remove_object_internal (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    int offset_to_object,
    char ** rv_undo_data,
    char ** rv_redo_data,
    int * displacement
) 

function btree_record_replace_object

static void btree_record_replace_object (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    BTREE_NODE_TYPE node_type,
    int * offset_to_replaced,
    BTREE_OBJECT_INFO * replacement,
    char ** rv_undo_data,
    char ** rv_redo_data
) 

function btree_record_satisfies_snapshot

static int btree_record_satisfies_snapshot (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    char * object_ptr,
    OID * oid,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info,
    bool * stop,
    void * args
) 

function btree_remove_delete_mvccid_unique_internal

static int btree_remove_delete_mvccid_unique_internal (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_DELETE_HELPER * helper,
    PAGE_PTR leaf_page,
    RECDES * leaf_record,
    BTREE_NODE_TYPE node_type,
    PAGE_PTR overflow_page,
    RECDES * overflow_record,
    int offset_to_object,
    char ** rv_undo_data,
    char ** rv_redo_data
) 

function btree_remove_mvccid

static inline void btree_remove_mvccid (
    RECDES * record,
    int oid_offset,
    int mvccid_offset,
    short flag,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

static DISK_ISVALID btree_repair_prev_link_by_btid (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    bool repair,
    char * index_name
) 

static DISK_ISVALID btree_repair_prev_link_by_class_oid (
    THREAD_ENTRY * thread_p,
    OID * oid,
    BTID * idx_btid,
    bool repair
) 

function btree_replace_first_oid_with_ovfl_oid

static int btree_replace_first_oid_with_ovfl_oid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    DB_VALUE * key,
    BTREE_DELETE_HELPER * delete_helper,
    PAGE_PTR leaf_page,
    BTREE_SEARCH_KEY_HELPER * search_key,
    RECDES * leaf_rec,
    VPID * ovfl_vpid
) 

function btree_rv_log_delete_object

static void btree_rv_log_delete_object (
    THREAD_ENTRY * thread_p,
    const  BTREE_DELETE_HELPER & delete_helper,
    LOG_DATA_ADDR & addr,
    int undo_length,
    int redo_length,
    const  char * undo_data,
    const  char * redo_data
) 

function btree_rv_log_insert_object

static void btree_rv_log_insert_object (
    THREAD_ENTRY * thread_p,
    const  BTREE_INSERT_HELPER & insert_helper,
    LOG_DATA_ADDR & addr,
    int undo_length,
    int redo_length,
    const  char * undo_data,
    const  char * redo_data
) 

function btree_rv_record_modify_internal

static int btree_rv_record_modify_internal (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv,
    bool is_undo
) 

function btree_rv_save_keyval_for_undo_two_objects

static int btree_rv_save_keyval_for_undo_two_objects (
    BTID_INT * btid,
    DB_VALUE * key,
    BTREE_OBJECT_INFO * first_version,
    BTREE_OBJECT_INFO * second_version,
    BTREE_OP_PURPOSE purpose,
    char * preallocated_buffer,
    char ** data,
    int * capacity,
    int * length
) 

function btree_rv_write_log_record

static int btree_rv_write_log_record (
    char * log_rec,
    int * log_length,
    RECDES * recp,
    BTREE_NODE_TYPE node_type
) 

function btree_rv_write_log_record_for_key_insert

static int btree_rv_write_log_record_for_key_insert (
    char * log_rec,
    int * log_length,
    INT16 key_len,
    RECDES * recp
) 

function btree_scan_for_show_index_capacity

static SCAN_CODE btree_scan_for_show_index_capacity (
    THREAD_ENTRY * thread_p,
    DB_VALUE ** out_values,
    int out_cnt,
    const  char * class_name,
    OR_INDEX * index_p
) 

function btree_scan_for_show_index_header

static SCAN_CODE btree_scan_for_show_index_header (
    THREAD_ENTRY * thread_p,
    DB_VALUE ** out_values,
    int out_cnt,
    const  char * class_name,
    OR_INDEX * index_p,
    OID * class_oid_p
) 

function btree_scan_update_range

static int btree_scan_update_range (
    THREAD_ENTRY * thread_p,
    BTREE_SCAN * bts,
    key_val_range * kv_range
) 

function btree_search_key_and_apply_functions

static int btree_search_key_and_apply_functions (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    BTID_INT * btid_int,
    DB_VALUE * key,
    BTREE_ROOT_WITH_KEY_FUNCTION * root_fnct,
    void * root_args,
    BTREE_ADVANCE_WITH_KEY_FUNCTION * advance_fnct,
    void * advance_args,
    BTREE_PROCESS_KEY_FUNCTION * leaf_fnct,
    void * process_key_args,
    BTREE_SEARCH_KEY_HELPER * search_key,
    PAGE_PTR * leaf_page_ptr
) 

function btree_search_leaf_page

static int btree_search_leaf_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr,
    DB_VALUE * key,
    BTREE_SEARCH_KEY_HELPER * search_key
) 

function btree_search_nonleaf_page

static int btree_search_nonleaf_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr,
    DB_VALUE * key,
    INT16 * slot_id,
    VPID * child_vpid,
    page_key_boundary * page_bounds
) 

function btree_select_visible_object_for_range_scan

static int btree_select_visible_object_for_range_scan (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    RECDES * record,
    char * object_ptr,
    OID * oid,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info,
    bool * stop,
    void * args
) 

function btree_seq_find_oid_from_ovfl

static int btree_seq_find_oid_from_ovfl (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    OID * oid,
    RECDES * ovf_record,
    char * initial_oid_ptr,
    char * oid_ptr_lower_bound,
    char * oid_ptr_upper_bound,
    BTREE_OP_PURPOSE purpose,
    BTREE_MVCC_INFO * match_mvccinfo,
    int * offset_to_object,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_set_mvccid

static void btree_set_mvccid (
    RECDES * rec,
    int mvccid_offset,
    MVCCID * p_mvccid,
    char ** rv_undo_data_ptr,
    char ** rv_redo_data_ptr
) 

function btree_set_split_point

static DB_VALUE * btree_set_split_point (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_ptr,
    INT16 mid_slot,
    DB_VALUE * key,
    bool * clear_midkey
) 

function btree_set_unknown_key_error

static void btree_set_unknown_key_error (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    const  char * debug_msg
) 

function btree_set_vpid_previous_vpid

static int btree_set_vpid_previous_vpid (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR page_p,
    VPID * prev
) 

function btree_split_find_pivot

static int btree_split_find_pivot (
    int total,
    BTREE_NODE_SPLIT_INFO * split_info
) 

function btree_split_next_pivot

static int btree_split_next_pivot (
    BTREE_NODE_SPLIT_INFO * split_info,
    float new_value,
    int max_index
) 

function btree_split_node

static int btree_split_node (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR P,
    PAGE_PTR Q,
    PAGE_PTR R,
    VPID * P_vpid,
    VPID * Q_vpid,
    VPID * R_vpid,
    INT16 p_slot_id,
    BTREE_NODE_TYPE node_type,
    DB_VALUE * key,
    BTREE_INSERT_HELPER * helper,
    VPID * child_vpid
) 

function btree_split_node_and_advance

static int btree_split_node_and_advance (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    DB_VALUE * key,
    PAGE_PTR * crt_page,
    PAGE_PTR * advance_to_page,
    bool * is_leaf,
    BTREE_SEARCH_KEY_HELPER * search_key,
    bool * stop,
    bool * restart,
    void * other_args
) 

function btree_split_root

static int btree_split_root (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    PAGE_PTR P,
    PAGE_PTR Q,
    PAGE_PTR R,
    VPID * P_vpid,
    VPID * Q_vpid,
    VPID * R_vpid,
    BTREE_NODE_TYPE node_type,
    DB_VALUE * key,
    BTREE_INSERT_HELPER * helper,
    VPID * child_vpid
) 

function btree_split_test

static void btree_split_test (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    DB_VALUE * key,
    VPID * S_vpid,
    PAGE_PTR S_page,
    BTREE_NODE_TYPE node_type
) 

function btree_start_overflow_page

static int btree_start_overflow_page (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    BTREE_OBJECT_INFO * object_info,
    VPID * first_overflow_vpid,
    VPID * near_vpid,
    VPID * new_vpid,
    PAGE_PTR * new_page_ptr
) 

function btree_store_overflow_key

static int btree_store_overflow_key (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid,
    DB_VALUE * key,
    int size,
    BTREE_NODE_TYPE node_type,
    VPID * firstpg_vpid
) 

static int btree_top_n_items_binary_search (
    RANGE_OPT_ITEM ** top_n_items,
    int * att_idxs,
    TP_DOMAIN ** domains,
    bool * desc_order,
    DB_VALUE * new_key_values,
    int num_keys,
    int first,
    int last,
    int * new_pos
) 

function btree_undo_delete_physical

static int btree_undo_delete_physical (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    DB_VALUE * key,
    OID * class_oid,
    OID * oid,
    BTREE_MVCC_INFO * mvcc_info,
    LOG_LSA * undo_nxlsa
) 

function btree_undo_insert_object

static int btree_undo_insert_object (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OR_BUF * buffered_key,
    OID * oid,
    OID * class_oid,
    MVCCID insert_mvccid,
    LOG_LSA * undo_nxlsa
) 

function btree_undo_insert_object_unique_multiupd

static int btree_undo_insert_object_unique_multiupd (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OR_BUF * buffered_key,
    BTREE_OBJECT_INFO * inserted_object,
    BTREE_OBJECT_INFO * second_object,
    MVCCID insert_mvccid,
    LOG_LSA * undo_nxlsa
) 

function btree_undo_mvcc_delete

static int btree_undo_mvcc_delete (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OR_BUF * buffered_key,
    OID * oid,
    OID * class_oid,
    BTREE_MVCC_INFO * match_mvccinfo,
    LOG_LSA * undo_nxlsa
) 

function btree_unpack_mvccinfo

static char * btree_unpack_mvccinfo (
    char * ptr,
    BTREE_MVCC_INFO * mvcc_info,
    short btree_mvcc_flags
) 

function btree_unpack_object

static char * btree_unpack_object (
    char * ptr,
    BTID_INT * btid_int,
    BTREE_NODE_TYPE node_type,
    RECDES * record,
    int after_key_offset,
    OID * oid,
    OID * class_oid,
    BTREE_MVCC_INFO * mvcc_info
) 

function btree_verify_leaf_node

static int btree_verify_leaf_node (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR page_ptr
) 

function btree_verify_node

static int btree_verify_node (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR page_ptr
) 

function btree_verify_nonleaf_node

static int btree_verify_nonleaf_node (
    THREAD_ENTRY * thread_p,
    BTID_INT * btid_int,
    PAGE_PTR page_ptr
) 

function btree_verify_subtree

static DISK_ISVALID btree_verify_subtree (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid_p,
    BTID_INT * btid,
    const  char * btname,
    PAGE_PTR pg_ptr,
    VPID * pg_vpid,
    BTREE_NODE_INFO * INFO
) 

function btree_write_default_split_info

static void btree_write_default_split_info (
    BTREE_NODE_SPLIT_INFO * info
) 

function btree_write_fixed_portion_of_non_leaf_record

static void btree_write_fixed_portion_of_non_leaf_record (
    RECDES * rec,
    NON_LEAF_REC * nlf_rec
) 

function btree_write_fixed_portion_of_non_leaf_record_to_orbuf

static void btree_write_fixed_portion_of_non_leaf_record_to_orbuf (
    OR_BUF * buf,
    NON_LEAF_REC * nlf_rec
) 

function check_validate

static void check_validate (
    BTREE_SCAN * bts
) 

function index_attrs_to_string

static int index_attrs_to_string (
    char * buf,
    int buf_size,
    OR_INDEX * index_p,
    RECDES * recdes
) 

function key_type_to_string

static char * key_type_to_string (
    char * buf,
    int buf_size,
    TP_DOMAIN * key_type
) 

function node_type_to_string

static const  char * node_type_to_string (
    short node_type
) 

function peek_key_to_copy_key

static void peek_key_to_copy_key (
    BTREE_SCAN * bts
) 

function xbtree_test_unique

static int xbtree_test_unique (
    THREAD_ENTRY * thread_p,
    BTID * btid
) 

Macro Definition Documentation

define BTID_DOMAIN_CHECK_MAX_SIZE

#define BTID_DOMAIN_CHECK_MAX_SIZE `1024`

define BTREE_CHECK_VALID_PRINT_REC_MAX_LENGTH

#define BTREE_CHECK_VALID_PRINT_REC_MAX_LENGTH `1024`

define BTREE_DEBUG_DUMP_FULL

#define BTREE_DEBUG_DUMP_FULL `0x0002   /* full dump in insert or  delete */`

define BTREE_DEBUG_DUMP_SIMPLE

#define BTREE_DEBUG_DUMP_SIMPLE `0x0001 /* simple message in SMO */`

define BTREE_DEBUG_HEALTH_FULL

#define BTREE_DEBUG_HEALTH_FULL `0x0020 /* full  health check ( traverse  all  slot in page) */`

define BTREE_DEBUG_HEALTH_SIMPLE

#define BTREE_DEBUG_HEALTH_SIMPLE `0x0010   /* simple  health check in SMO */`

define BTREE_DEBUG_TEST_SPLIT

#define BTREE_DEBUG_TEST_SPLIT `0x0100  /* full split test */`

define BTREE_DELETE_CLASS_OID

#define BTREE_DELETE_CLASS_OID (
    helper
) `(&(( helper )->object_info.class_oid))`

define BTREE_DELETE_HELPER_AS_ARGS

#define BTREE_DELETE_HELPER_AS_ARGS (
    helper
) `BTREE_OBJINFO_AS_ARGS (&( helper )->object_info), \ btree_purpose_to_string (( helper )->purpose), \ btree_op_type_to_string (( helper )->op_type), \ BTREE_PRINT_KEY_ARGS (( helper )->printed_key), SHA1_AS_ARGS (&( helper )->printed_key_sha1), \ BTREE_MVCC_INFO_AS_ARGS (&( helper )->match_mvccinfo)`

define BTREE_DELETE_HELPER_MSG

#define BTREE_DELETE_HELPER_MSG (
    tabs
) `/* multi line expression */`

define BTREE_DELETE_MODIFY_ARGS

#define BTREE_DELETE_MODIFY_ARGS (
    thread_p,
    helper,
    page,
    save_lsa,
    is_leaf,
    slotid,
    new_size,
    btid
) `/* multi line expression */`

define BTREE_DELETE_MODIFY_MSG

#define BTREE_DELETE_MODIFY_MSG (
    desc
) `/* multi line expression */`

define BTREE_DELETE_MVCC_INFO

#define BTREE_DELETE_MVCC_INFO (
    helper
) `(&(( helper )->object_info.mvcc_info))`

define BTREE_DELETE_OID

#define BTREE_DELETE_OID (
    helper
) `(&(( helper )->object_info.oid))`

define BTREE_FIND_FK_OBJECT_INITIALIZER

#define BTREE_FIND_FK_OBJECT_INITIALIZER `{ OID_INITIALIZER , OID_INITIALIZER , NULL_LOCK }`

define BTREE_FIND_UNIQUE_HELPER_INITIALIZER

#define BTREE_FIND_UNIQUE_HELPER_INITIALIZER `/* multi line expression */`

define BTREE_GET_MVCC_INFO_SIZE_FROM_FLAGS

#define BTREE_GET_MVCC_INFO_SIZE_FROM_FLAGS (
    mvcc_flags
) `/* multi line expression */`

define BTREE_GET_OID

#define BTREE_GET_OID (
    buf,
    oid_ptr
) `/* multi line expression */`

define BTREE_HEALTH_CHECK

#define BTREE_HEALTH_CHECK 

define BTREE_ID_MSG

#define BTREE_ID_MSG `"index = %d, %d|% d"`

define BTREE_INSERT_CLASS_OID

#define BTREE_INSERT_CLASS_OID (
    ins_helper
) `(&(( ins_helper )->obj_info.class_oid))`

define BTREE_INSERT_HELPER_AS_ARGS

#define BTREE_INSERT_HELPER_AS_ARGS (
    helper
) `BTREE_OBJINFO_AS_ARGS (&( helper )->obj_info), \ btree_purpose_to_string (( helper )->purpose), \ btree_op_type_to_string (( helper )->op_type), \ BTREE_PRINT_KEY_ARGS (( helper )->printed_key), SHA1_AS_ARGS (&( helper )->printed_key_sha1)`

define BTREE_INSERT_HELPER_MSG

#define BTREE_INSERT_HELPER_MSG (
    tabs
) `tabs "INSERT HELPER: \ n" \ tabs "\t" BTREE_OBJINFO_MSG ("obj_info") "\n" \ tabs "\t" "purpose = %s \ n" \ tabs "\t" "op_type = %s \ n" \ tabs "\t" BTREE_PRINT_KEY_MSG ("printed_key") "... (sha1 = %08 x | %08 x | %08 x | %08 x | %08 x ) \ n"`

define BTREE_INSERT_MODIFY_ARGS

#define BTREE_INSERT_MODIFY_ARGS (
    thread_p,
    helper,
    page,
    save_lsa,
    is_leaf,
    slotid,
    new_size,
    btid
) `/* multi line expression */`

define BTREE_INSERT_MODIFY_MSG

#define BTREE_INSERT_MODIFY_MSG (
    desc
) `/* multi line expression */`

define BTREE_INSERT_MVCC_INFO

#define BTREE_INSERT_MVCC_INFO (
    ins_helper
) `(&(( ins_helper )->obj_info.mvcc_info))`

define BTREE_INSERT_OID

#define BTREE_INSERT_OID (
    ins_helper
) `(&(( ins_helper )->obj_info.oid))`

define BTREE_IS_PAGE_VALID_LEAF

#define BTREE_IS_PAGE_VALID_LEAF (
    thread_p,
    page
) `/* multi line expression */`

define BTREE_LEAF_RECORD_CLASS_OID

#define BTREE_LEAF_RECORD_CLASS_OID `(( short ) 0x8000)`

define BTREE_LEAF_RECORD_FENCE

#define BTREE_LEAF_RECORD_FENCE `(( short ) 0x1000)`

define BTREE_LEAF_RECORD_MASK

#define BTREE_LEAF_RECORD_MASK `(( short ) 0xF000)`

define BTREE_LEAF_RECORD_OVERFLOW_KEY

#define BTREE_LEAF_RECORD_OVERFLOW_KEY `(( short ) 0x4000)`

define BTREE_LEAF_RECORD_OVERFLOW_OIDS

#define BTREE_LEAF_RECORD_OVERFLOW_OIDS `(( short ) 0x2000)`

define BTREE_MAX_OID_COUNT

#define BTREE_MAX_OID_COUNT `IO_MAX_PAGE_SIZE / OR_OID_SIZE`

define BTREE_MVCC_INFO_AS_ARGS

#define BTREE_MVCC_INFO_AS_ARGS (
    mvcc_info
) `( unsigned  long  long ) BTREE_MVCC_INFO_INSID ( mvcc_info ), ( unsigned  long  long ) BTREE_MVCC_INFO_DELID ( mvcc_info )`

define BTREE_MVCC_INFO_CLEAR_DELID

#define BTREE_MVCC_INFO_CLEAR_DELID (
    mvcc_info
) `(( mvcc_info )->flags &= ~ BTREE_OID_HAS_MVCC_DELID )`

define BTREE_MVCC_INFO_CLEAR_FIXED_SIZE

#define BTREE_MVCC_INFO_CLEAR_FIXED_SIZE (
    mvcc_info
) `/* multi line expression */`

define BTREE_MVCC_INFO_CLEAR_INSID

#define BTREE_MVCC_INFO_CLEAR_INSID (
    mvcc_info
) `(( mvcc_info )->flags &= ~ BTREE_OID_HAS_MVCC_INSID )`

define BTREE_MVCC_INFO_DELID

#define BTREE_MVCC_INFO_DELID (
    mvcc_info
) `( BTREE_MVCC_INFO_HAS_DELID ( mvcc_info ) ? ( mvcc_info )->delete_mvccid : MVCCID_NULL )`

define BTREE_MVCC_INFO_HAS_DELID

#define BTREE_MVCC_INFO_HAS_DELID (
    mvcc_info
) `((( mvcc_info )->flags & BTREE_OID_HAS_MVCC_DELID ) != 0)`

define BTREE_MVCC_INFO_HAS_INSID

#define BTREE_MVCC_INFO_HAS_INSID (
    mvcc_info
) `((( mvcc_info )->flags & BTREE_OID_HAS_MVCC_INSID ) != 0)`

define BTREE_MVCC_INFO_INSID

#define BTREE_MVCC_INFO_INSID (
    mvcc_info
) `( BTREE_MVCC_INFO_HAS_INSID ( mvcc_info ) ? ( mvcc_info )->insert_mvccid : MVCCID_ALL_VISIBLE )`

define BTREE_MVCC_INFO_IS_DELID_VALID

#define BTREE_MVCC_INFO_IS_DELID_VALID (
    mvcc_info
) `( BTREE_MVCC_INFO_HAS_DELID ( mvcc_info ) && ( mvcc_info )->delete_mvccid != MVCCID_NULL )`

define BTREE_MVCC_INFO_IS_INSID_NOT_ALL_VISIBLE

#define BTREE_MVCC_INFO_IS_INSID_NOT_ALL_VISIBLE (
    mvcc_info
) `( BTREE_MVCC_INFO_HAS_INSID ( mvcc_info ) && MVCCID_IS_NOT_ALL_VISIBLE (( mvcc_info )->insert_mvccid))`

define BTREE_MVCC_INFO_SET_DELID

#define BTREE_MVCC_INFO_SET_DELID (
    mvcc_info,
    delid
) `/* multi line expression */`

define BTREE_MVCC_INFO_SET_FIXED_SIZE

#define BTREE_MVCC_INFO_SET_FIXED_SIZE (
    mvcc_info
) `/* multi line expression */`

define BTREE_MVCC_INFO_SET_INSID

#define BTREE_MVCC_INFO_SET_INSID (
    mvcc_info,
    insid
) `/* multi line expression */`

define BTREE_NODE_MAX_SPLIT_SIZE

#define BTREE_NODE_MAX_SPLIT_SIZE (
    thread_p,
    page_ptr
) `(( int ) ( DB_PAGESIZE - SPAGE_HEADER_SIZE - spage_get_space_for_record (thread_p, ( page_ptr ), HEADER )))`

define BTREE_OBJINFO_AS_ARGS

#define BTREE_OBJINFO_AS_ARGS (
    objinfo
) `OID_AS_ARGS (&(( objinfo )->oid)), \ OID_AS_ARGS (&(( objinfo )->class_oid)), \ BTREE_MVCC_INFO_AS_ARGS (&(( objinfo )-> mvcc_info ))`

define BTREE_OBJINFO_MSG

#define BTREE_OBJINFO_MSG (
    name
) `name " { OID = %d|%d|%d, CLASS = %d|%d|%d, MVCC_INFO = % llu |% llu } "`

define BTREE_OID_CLEAR_ALL_FLAGS

#define BTREE_OID_CLEAR_ALL_FLAGS (
    oid_ptr
) `/* multi line expression */`

define BTREE_OID_CLEAR_MVCC_FLAGS

#define BTREE_OID_CLEAR_MVCC_FLAGS (
    oid_ptr
) `((oid_ptr)->volid &= ~ BTREE_OID_MVCC_FLAGS_MASK )`

define BTREE_OID_CLEAR_RECORD_FLAGS

#define BTREE_OID_CLEAR_RECORD_FLAGS (
    oid_ptr
) `((oid_ptr)->slotid &= ~ BTREE_LEAF_RECORD_MASK )`

define BTREE_OID_GET_MVCC_FLAGS

#define BTREE_OID_GET_MVCC_FLAGS (
    oid_ptr
) `((oid_ptr)->volid & BTREE_OID_MVCC_FLAGS_MASK )`

define BTREE_OID_GET_RECORD_FLAGS

#define BTREE_OID_GET_RECORD_FLAGS (
    oid_ptr
) `((oid_ptr)->slotid & BTREE_LEAF_RECORD_MASK )`

define BTREE_OID_HAS_MVCC_DELID

#define BTREE_OID_HAS_MVCC_DELID `(( short ) 0x8000)`

define BTREE_OID_HAS_MVCC_INSID

#define BTREE_OID_HAS_MVCC_INSID `(( short ) 0x4000)`

define BTREE_OID_HAS_MVCC_INSID_AND_DELID

#define BTREE_OID_HAS_MVCC_INSID_AND_DELID `( BTREE_OID_HAS_MVCC_INSID | BTREE_OID_HAS_MVCC_DELID )`

define BTREE_OID_IS_MVCC_FLAG_SET

#define BTREE_OID_IS_MVCC_FLAG_SET (
    oid_ptr,
    mvcc_flag
) `(((oid_ptr)->volid & (mvcc_flag)) == (mvcc_flag))`

define BTREE_OID_IS_RECORD_FLAG_SET

#define BTREE_OID_IS_RECORD_FLAG_SET (
    oid_ptr,
    mvcc_flag
) `(((oid_ptr)->slotid & (mvcc_flag)) == (mvcc_flag))`

define BTREE_OID_MVCC_FLAGS_MASK

#define BTREE_OID_MVCC_FLAGS_MASK `(( short ) 0xC000)`

define BTREE_OID_SET_MVCC_FLAG

#define BTREE_OID_SET_MVCC_FLAG (
    oid_ptr,
    mvcc_flag
) `((oid_ptr)->volid |= (mvcc_flag))`

define BTREE_OID_SET_RECORD_FLAG

#define BTREE_OID_SET_RECORD_FLAG (
    oid_ptr,
    mvcc_flag
) `((oid_ptr)->slotid |= (mvcc_flag))`

define BTREE_PRINT_KEY_ARGS

#define BTREE_PRINT_KEY_ARGS (
    key
) `(key) != NULL ? (key) : "** UNKNOWN KEY **"`

define BTREE_PRINT_KEY_MSG

#define BTREE_PRINT_KEY_MSG (
    key
) `key " = %.32s"`

define BTREE_RECORD_OR_BUF_INIT

#define BTREE_RECORD_OR_BUF_INIT (
    buf,
    btree_rec
) `/* multi line expression */`

define BTREE_REC_SATISFIES_SNAPSHOT_HELPER_INITIALIZER

#define BTREE_REC_SATISFIES_SNAPSHOT_HELPER_INITIALIZER `{ NULL /* snapshot */, OID_INITIALIZER /* match_class_oid */, \ NULL /* oid_ptr */, 0 /* oid_cnt */, 0 /* oid_capacity */ }`

define BTREE_RV_DEBUG_INFO_FLAG

#define BTREE_RV_DEBUG_INFO_FLAG `0x1000`

define BTREE_RV_DEBUG_INFO_MAX_SIZE

#define BTREE_RV_DEBUG_INFO_MAX_SIZE `/* multi line expression */`

define BTREE_RV_EXCLUSIVE_FLAGS_MASK

#define BTREE_RV_EXCLUSIVE_FLAGS_MASK `0x3C00`

define BTREE_RV_FLAGS_MASK

#define BTREE_RV_FLAGS_MASK `( LOG_RV_RECORD_MODIFY_MASK | BTREE_RV_EXCLUSIVE_FLAGS_MASK )`

define BTREE_RV_HAS_DEBUG_INFO

#define BTREE_RV_HAS_DEBUG_INFO (
    flags
) `((flags & BTREE_RV_DEBUG_INFO_FLAG ) != 0)`

define BTREE_RV_IS_OVERFLOW_NODE

#define BTREE_RV_IS_OVERFLOW_NODE (
    flags
) `((flags & BTREE_RV_OVERFLOW_FLAG ) != 0)`

define BTREE_RV_IS_UNDO_MVCCDEL_MYOBJ

#define BTREE_RV_IS_UNDO_MVCCDEL_MYOBJ (
    flags
) `((flags & BTREE_RV_UNDO_MVCCDEL_MYOBJ ) != 0)`

define BTREE_RV_IS_UPDATE_MAX_KEY_LEN

#define BTREE_RV_IS_UPDATE_MAX_KEY_LEN (
    flags
) `((flags & BTREE_RV_UPDATE_MAX_KEY_LEN ) != 0)`

define BTREE_RV_OVERFLOW_FLAG

#define BTREE_RV_OVERFLOW_FLAG `0x2000`

define BTREE_RV_REDO_SET_DEBUG_INFO

#define BTREE_RV_REDO_SET_DEBUG_INFO (
    addr,
    rv_ptr,
    btid_int,
    id
) `/* multi line expression */`

define BTREE_RV_SET_OVERFLOW_NODE

#define BTREE_RV_SET_OVERFLOW_NODE (
    addr
) `(( addr )->offset |= BTREE_RV_OVERFLOW_FLAG )`

define BTREE_RV_SET_UNDO_MVCCDEL_MYOBJ

#define BTREE_RV_SET_UNDO_MVCCDEL_MYOBJ (
    addr
) `(( addr )->offset |= BTREE_RV_UNDO_MVCCDEL_MYOBJ )`

define BTREE_RV_SET_UPDATE_MAX_KEY_LEN

#define BTREE_RV_SET_UPDATE_MAX_KEY_LEN (
    addr
) `(( addr )->offset |= BTREE_RV_UPDATE_MAX_KEY_LEN )`

define BTREE_RV_UNDOREDO_SET_DEBUG_INFO

#define BTREE_RV_UNDOREDO_SET_DEBUG_INFO (
    addr,
    rv_redo_ptr,
    rv_undo_ptr,
    btid_int,
    id
) `/* multi line expression */`

define BTREE_RV_UNDO_MVCCDEL_MYOBJ

#define BTREE_RV_UNDO_MVCCDEL_MYOBJ `0x0800`

define BTREE_RV_UPDATE_MAX_KEY_LEN

#define BTREE_RV_UPDATE_MAX_KEY_LEN `0x0800`

define BTREE_SEARCH_KEY_HELPER_INITIALIZER

#define BTREE_SEARCH_KEY_HELPER_INITIALIZER `{ BTREE_KEY_NOTFOUND , NULL_SLOTID , btree_search_key_helper::NO_FENCE_KEY }`

define BTREE_SPLIT_DEFAULT_PIVOT

#define BTREE_SPLIT_DEFAULT_PIVOT `0.5f`

define BTREE_SPLIT_LOWER_BOUND

#define BTREE_SPLIT_LOWER_BOUND `0.20f`

define BTREE_SPLIT_MAX_PIVOT

#define BTREE_SPLIT_MAX_PIVOT `(1.0f - BTREE_SPLIT_MIN_PIVOT )`

define BTREE_SPLIT_MIN_PIVOT

#define BTREE_SPLIT_MIN_PIVOT `0.05f`

define BTREE_SPLIT_UPPER_BOUND

#define BTREE_SPLIT_UPPER_BOUND `(1.0f - BTREE_SPLIT_LOWER_BOUND )`

define BTS_INCREMENT_READ_OIDS

#define BTS_INCREMENT_READ_OIDS (
    bts
) `/* multi line expression */`

define BTS_IS_HARD_CAPACITY_ENOUGH

#define BTS_IS_HARD_CAPACITY_ENOUGH (
    bts,
    count
) `/* multi line expression */`

define BTS_IS_INDEX_COVERED

#define BTS_IS_INDEX_COVERED (
    bts
) `((bts) != NULL && (bts)->index_scan_idp != NULL && SCAN_IS_INDEX_COVERED ((bts)->index_scan_idp))`

define BTS_IS_INDEX_ILS

#define BTS_IS_INDEX_ILS (
    bts
) `/* multi line expression */`

define BTS_IS_INDEX_ISS

#define BTS_IS_INDEX_ISS (
    bts
) `((bts) != NULL && (bts)->index_scan_idp != NULL && SCAN_IS_INDEX_ISS ((bts)->index_scan_idp))`

define BTS_IS_INDEX_MRO

#define BTS_IS_INDEX_MRO (
    bts
) `((bts) != NULL && (bts)->index_scan_idp != NULL && SCAN_IS_INDEX_MRO ((bts)->index_scan_idp))`

define BTS_IS_SOFT_CAPACITY_ENOUGH

#define BTS_IS_SOFT_CAPACITY_ENOUGH (
    bts,
    count
) `/* multi line expression */`

define BTS_NEED_COUNT_ONLY

#define BTS_NEED_COUNT_ONLY (
    bts
) `((bts) != NULL && (bts)->index_scan_idp != NULL && (bts)->index_scan_idp->need_count_only)`

define BTS_SAVE_OID_IN_BUFFER

#define BTS_SAVE_OID_IN_BUFFER (
    bts,
    oid
) `/* multi line expression */`

define CAN_MERGE_WHEN_EMPTY

#define CAN_MERGE_WHEN_EMPTY `( MAX ( DB_PAGESIZE * 0.33, MAX_MERGE_ALIGN_WASTE * 1.3))`

define COMMON_PREFIX_PAGE_SIZE_RESET

#define COMMON_PREFIX_PAGE_SIZE_RESET (
    bts
) `/* multi line expression */`

define DISK_PAGE_BITS

#define DISK_PAGE_BITS `( DB_PAGESIZE * CHAR_BIT )  /* Num  of bits per page */`

define FORCE_MERGE_WHEN_EMPTY

#define FORCE_MERGE_WHEN_EMPTY `( MAX ( DB_PAGESIZE * 0.66, MAX_MERGE_ALIGN_WASTE * 1.3))`

define LOFFS1

#define LOFFS1 `0       /* Key Len  Offset */`

define LOFFS2

#define LOFFS2 `2       /* Node Type  Offset:  Leaf / NonLeaf  Information */`

define LOFFS3

#define LOFFS3 `4       /* RECDES  Type  Offset */`

define LOFFS4

#define LOFFS4 `6       /* RECDES  Data  Offset */`

define MAX_LEAF_REC_NUM

#define MAX_LEAF_REC_NUM `( IO_MAX_PAGE_SIZE / MIN_LEAF_REC_SIZE )`

define MAX_MERGE_ALIGN_WASTE

#define MAX_MERGE_ALIGN_WASTE `(( DB_PAGESIZE / MIN_LEAF_REC_SIZE ) * ( BTREE_MAX_ALIGN - 1))`

define MIN_KEY_SIZE

#define MIN_KEY_SIZE `DB_ALIGN (1, BTREE_MAX_ALIGN )`

define MIN_LEAF_REC_SIZE

#define MIN_LEAF_REC_SIZE `( OR_OID_SIZE + MIN_KEY_SIZE )`

define NEXT_MERGE_RECORD

#define NEXT_MERGE_RECORD (

) `/* multi line expression */`

define NOT_FOUND

#define NOT_FOUND `-1`

define OFFS1

#define OFFS1 `0        /* Node Type  Offset:  Leaf / NonLeaf  Information */`

define OFFS2

#define OFFS2 `2        /* RECDES  Type  Offset */`

define OFFS3

#define OFFS3 `4        /* RECDES  Data  Offset */`

define OID_MSG_BUF_SIZE

#define OID_MSG_BUF_SIZE `64`

define __STDC_FORMAT_MACROS

#define __STDC_FORMAT_MACROS 

define btree_delete_log

#define btree_delete_log (
    helper,
    msg,
    ...
) `if (( helper )->log_operations) btree_log ("BTREE_DELETE ", msg, __VA_ARGS__ )`

define btree_insert_log

#define btree_insert_log (
    helper,
    msg,
    ...
) `if (( helper )->log_operations) btree_log ("BTREE_INSERT ", msg, __VA_ARGS__ )`

define btree_log

#define btree_log (
    prefix,
    msg,
    ...
) `_er_log_debug ( ARG_FILE_LINE , prefix  LOG_THREAD_TRAN_MSG ": " msg "\n", \ LOG_THREAD_TRAN_ARGS ( thread_get_thread_entry_info ()), __VA_ARGS__ )`

define btree_log_if_enabled

#define btree_log_if_enabled (
    ...
) `if ( prm_get_bool_value ( PRM_ID_LOG_BTREE_OPS )) _er_log_debug ( ARG_FILE_LINE , __VA_ARGS__ )`


The documentation for this class was generated from the following file cubrid/src/storage/btree.c