Skip to content

File btree.h

FileList > cubrid > src > storage > btree.h

Go to the source code of this file

  • #include "access_spec.hpp"
  • #include "config.h"
  • #include "disk_manager.h"
  • #include "object_domain.h"
  • #include "oid.h"
  • #include "lock_manager.h"
  • #include "log_lsa.hpp"
  • #include "mvcc.h"
  • #include "query_evaluator.h"
  • #include "recovery.h"
  • #include "statistics.h"
  • #include "storage_common.h"
  • #include "scan_manager.h"

Classes

Type Name
struct btid_int
struct btree_capacity
struct btree_checkscan
struct btree_insert_list
struct btree_iscan_oid_list
struct btree_keyrange
struct btree_mvcc_info
struct btree_node_scan
struct btree_node_scan_queue_item
struct btree_object_info
struct btree_ovfl_oid_capacity
struct btree_scan
struct bts_attid_idx_info
struct key_oid
struct leaf_rec
struct non_leaf_rec
struct page_key_boundary

Public Types

Type Name
typedef struct btid_int BTID_INT
typedef struct btree_capacity BTREE_CAPACITY
typedef struct btree_checkscan BTREE_CHECKSCAN
typedef struct btree_iscan_oid_list BTREE_ISCAN_OID_LIST
typedef struct btree_keyrange BTREE_KEYRANGE
typedef struct btree_mvcc_info BTREE_MVCC_INFO
typedef struct btree_node_scan BTREE_NODE_SCAN
typedef struct btree_node_scan_queue_item BTREE_NODE_SCAN_QUEUE_ITEM
enum BTREE_NODE_TYPE
typedef struct btree_object_info BTREE_OBJECT_INFO
typedef enum btree_op_purpose BTREE_OP_PURPOSE
typedef int BTREE_RANGE_SCAN_PROCESS_KEY_FUNC
typedef struct btree_scan BTREE_SCAN
typedef enum bts_key_status BTS_KEY_STATUS
typedef struct indx_scan_id INDX_SCAN_ID
typedef struct leaf_rec LEAF_REC
typedef struct non_leaf_rec NON_LEAF_REC
typedef struct or_buf OR_BUF
enum btree_8h_1aaa1faf9307efabe7471b4443de4ba66b
enum btree_op_purpose
enum bts_key_status

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 * src_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)
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_estimate_total_numpages (THREAD_ENTRY * thread_p, int dis_key_cnt, int avg_key_len, int tot_val_cnt, int * blt_pgcnt_est, int * blt_wrs_pgcnt_est)
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 flag_minkey)
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)
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)
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)
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 ** ctx)
SCAN_CODE btree_index_next_scan (THREAD_ENTRY * thread_p, int cursor, DB_VALUE ** out_values, int out_cnt, void * ctx)
int btree_index_start_scan (THREAD_ENTRY * thread_p, int show_type, DB_VALUE ** arg_values, int arg_cnt, void ** ctx)
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 * key_val_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 * cls_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 * key_val_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, 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 * btid, bool repair)
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 * mvccid, 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)
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)
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)

Macros

Type Name
define BTREE_CONTINUE -1
define BTREE_END_OF_SCAN (bts) /* multi line expression */
define BTREE_GETOID_AGAIN -2
define BTREE_GETOID_AGAIN_WITH_CHECK -3
define BTREE_GOTO_END_OF_SCAN -5
define BTREE_GOTO_LOCKING_DONE -7
define BTREE_GOTO_START_LOCKING -6
define BTREE_INIT_MVCC_HEADER (p_mvcc_rec_header) /* multi line expression */
define BTREE_INIT_SCAN (bts)
define BTREE_INIT_SCAN_ATTID_IDXS_INFO (bts) /* multi line expression */
define BTREE_IS_MULTI_ROW_OP (op) (op == [**MULTI\_ROW\_INSERT**](btree_8h.md#define-multi_row_insert) \|\| op == [**MULTI\_ROW\_UPDATE**](btree_8h.md#define-multi_row_update) \|\| op == [**MULTI\_ROW\_DELETE**](btree_8h.md#define-multi_row_delete))
define BTREE_IS_PART_KEY_DESC (btid_int) (([**btid\_int**](structbtid__int.md))->part\_key\_desc != 0)
define BTREE_IS_PRIMARY_KEY (unique_pk) ((unique\_pk) & BTREE\_CONSTRAINT\_PRIMARY\_KEY)
define BTREE_IS_UNIQUE (unique_pk) ((unique\_pk) & BTREE\_CONSTRAINT\_UNIQUE)
define BTREE_MVCC_INFO_INITIALIZER { 0, [**MVCCID\_ALL\_VISIBLE**](storage__common_8h.md#define-mvccid_all_visible), [**MVCCID\_NULL**](storage__common_8h.md#define-mvccid_null) }
define BTREE_NEED_UNIQUE_CHECK (thread_p, op) /* multi line expression */
define BTREE_NODE_SCAN_ADD_PAGE_TO_QUEUE (bns, node) /* multi line expression */
define BTREE_NODE_SCAN_INIT (bns) /* multi line expression */
define BTREE_NODE_SCAN_IS_QUEUE_EMPTY (bns) (([**bns**](broker__monitor_8c.md#function-timeout))->queue\_head == [**NULL**](freelistheap_8h.md#define-null))
define BTREE_NODE_SCAN_POP_PAGE_FROM_QUEUE (bns, node) /* multi line expression */
define BTREE_NORMAL_KEY 0
define BTREE_OBJECT_INFO_INITIALIZER { [**OID\_INITIALIZER**](oid_8h.md#define-oid_initializer), [**OID\_INITIALIZER**](oid_8h.md#define-oid_initializer), [**BTREE\_MVCC\_INFO\_INITIALIZER**](btree_8h.md#define-btree_mvcc_info_initializer) }
define BTREE_OVERFLOW_KEY 1
define BTREE_RESET_SCAN (bts) /* multi line expression */
define BTREE_RESTART_SCAN -8
define BTREE_SEARCH_AGAIN_WITH_CHECK -4
define BTREE_SET_UNIQUE_VIOLATION_ERROR (THREAD, KEY, OID, C_OID, BTID, BTNM) /* multi line expression */
define BTREE_START_OF_SCAN (bts) [**BTREE\_END\_OF\_SCAN**](btree_8h.md#define-btree_end_of_scan)(bts)
define BTS_IS_DESCENDING_SCAN (bts) ((bts)->index\_scan\_idp->[**indx\_info**](structindx__info.md)->use\_desc\_index)
define BTS_SET_INDEX_SCANID (bts, index_scan_idp) ((bts)->index\_scan\_idp = index\_scan\_idp)
define BTS_SET_KEY_LIMIT (bts, lower, upper) /* multi line expression */
define CHECK_VERIFY_COMMON_PREFIX_PAGE_INFO
define COMMON_PREFIX_PAGE_DEBUG_INFO_RESET (bts) /* multi line expression */
define COMMON_PREFIX_UNKNOWN (-1)
define DBVAL_BUFSIZE 4096
define MULTI_ROW_DELETE 6
define MULTI_ROW_INSERT 5
define MULTI_ROW_UPDATE 7
define SINGLE_ROW_DELETE 2
define SINGLE_ROW_INSERT 1
define SINGLE_ROW_MODIFY 4 /\* used in [**case**](broker__monitor_8c.md#function-timeout) [**of**](broker__monitor_8c.md#function-timeout) undo \*/
define SINGLE_ROW_UPDATE 3

Public Types Documentation

typedef BTID_INT

typedef struct btid_int BTID_INT;

typedef BTREE_CAPACITY

typedef struct btree_capacity BTREE_CAPACITY;

typedef BTREE_CHECKSCAN

typedef struct btree_checkscan BTREE_CHECKSCAN;

typedef BTREE_ISCAN_OID_LIST

typedef struct btree_iscan_oid_list BTREE_ISCAN_OID_LIST;

typedef BTREE_KEYRANGE

typedef struct btree_keyrange BTREE_KEYRANGE;

typedef BTREE_MVCC_INFO

typedef struct btree_mvcc_info BTREE_MVCC_INFO;

typedef BTREE_NODE_SCAN

typedef struct btree_node_scan BTREE_NODE_SCAN;

typedef BTREE_NODE_SCAN_QUEUE_ITEM

typedef struct btree_node_scan_queue_item BTREE_NODE_SCAN_QUEUE_ITEM;

enum BTREE_NODE_TYPE

enum BTREE_NODE_TYPE {
    BTREE_LEAF_NODE = 0,
    BTREE_NON_LEAF_NODE,
    BTREE_OVERFLOW_NODE
};

typedef BTREE_OBJECT_INFO

typedef struct btree_object_info BTREE_OBJECT_INFO;

typedef BTREE_OP_PURPOSE

typedef enum btree_op_purpose BTREE_OP_PURPOSE;

typedef BTREE_RANGE_SCAN_PROCESS_KEY_FUNC

typedef int BTREE_RANGE_SCAN_PROCESS_KEY_FUNC(THREAD_ENTRY *thread_p, BTREE_SCAN *bts);

typedef BTREE_SCAN

typedef struct btree_scan BTREE_SCAN;

typedef BTS_KEY_STATUS

typedef enum bts_key_status BTS_KEY_STATUS;

typedef INDX_SCAN_ID

typedef struct indx_scan_id INDX_SCAN_ID;

typedef LEAF_REC

typedef struct leaf_rec LEAF_REC;

typedef NON_LEAF_REC

typedef struct non_leaf_rec NON_LEAF_REC;

typedef OR_BUF

typedef struct or_buf OR_BUF;

enum btree_8h_1aaa1faf9307efabe7471b4443de4ba66b

enum btree_8h_1aaa1faf9307efabe7471b4443de4ba66b {
    BTREE_COERCE_KEY_WITH_MIN_VALUE = 1,
    BTREE_COERCE_KEY_WITH_MAX_VALUE = 2
};

enum btree_op_purpose

enum btree_op_purpose {
    BTREE_OP_NO_OP,
    BTREE_OP_INSERT_NEW_OBJECT,
    BTREE_OP_INSERT_MVCC_DELID,
    BTREE_OP_INSERT_MARK_DELETED,
    BTREE_OP_INSERT_UNDO_PHYSICAL_DELETE,
    BTREE_OP_DELETE_OBJECT_PHYSICAL,
    BTREE_OP_DELETE_OBJECT_PHYSICAL_POSTPONED,
    BTREE_OP_DELETE_UNDO_INSERT,
    BTREE_OP_DELETE_UNDO_INSERT_UNQ_MULTIUPD,
    BTREE_OP_DELETE_UNDO_INSERT_DELID,
    BTREE_OP_DELETE_VACUUM_OBJECT,
    BTREE_OP_DELETE_VACUUM_INSID,
    BTREE_OP_NOTIFY_VACUUM,
    BTREE_OP_ONLINE_INDEX_IB_INSERT,
    BTREE_OP_ONLINE_INDEX_IB_DELETE,
    BTREE_OP_ONLINE_INDEX_TRAN_INSERT,
    BTREE_OP_ONLINE_INDEX_TRAN_INSERT_DF,
    BTREE_OP_ONLINE_INDEX_UNDO_TRAN_INSERT,
    BTREE_OP_ONLINE_INDEX_TRAN_DELETE,
    BTREE_OP_ONLINE_INDEX_UNDO_TRAN_DELETE
};

enum bts_key_status

enum bts_key_status {
    BTS_KEY_IS_NOT_VERIFIED,
    BTS_KEY_IS_VERIFIED,
    BTS_KEY_IS_CONSUMED
};

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 * src_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_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_estimate_total_numpages

int btree_estimate_total_numpages (
    THREAD_ENTRY * thread_p,
    int dis_key_cnt,
    int avg_key_len,
    int tot_val_cnt,
    int * blt_pgcnt_est,
    int * blt_wrs_pgcnt_est
) 

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 flag_minkey
) 

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_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_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_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 ** ctx
) 

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 * ctx
) 

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 ** ctx
) 

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 * key_val_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 * cls_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 * key_val_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,
    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 * btid,
    bool repair
) 

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 * mvccid,
    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_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_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
) 

Macro Definition Documentation

define BTREE_CONTINUE

#define BTREE_CONTINUE `-1`

define BTREE_END_OF_SCAN

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

define BTREE_GETOID_AGAIN

#define BTREE_GETOID_AGAIN `-2`

define BTREE_GETOID_AGAIN_WITH_CHECK

#define BTREE_GETOID_AGAIN_WITH_CHECK `-3`

define BTREE_GOTO_END_OF_SCAN

#define BTREE_GOTO_END_OF_SCAN `-5`

define BTREE_GOTO_LOCKING_DONE

#define BTREE_GOTO_LOCKING_DONE `-7`

define BTREE_GOTO_START_LOCKING

#define BTREE_GOTO_START_LOCKING `-6`

define BTREE_INIT_MVCC_HEADER

#define BTREE_INIT_MVCC_HEADER (
    p_mvcc_rec_header
) `/* multi line expression */`

define BTREE_INIT_SCAN

#define BTREE_INIT_SCAN (
    bts
) 

define BTREE_INIT_SCAN_ATTID_IDXS_INFO

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

define BTREE_IS_MULTI_ROW_OP

#define BTREE_IS_MULTI_ROW_OP (
    op
) `(op == MULTI_ROW_INSERT || op == MULTI_ROW_UPDATE || op == MULTI_ROW_DELETE )`

define BTREE_IS_PART_KEY_DESC

#define BTREE_IS_PART_KEY_DESC (
    btid_int
) `(( btid_int )->part_key_desc != 0)`

define BTREE_IS_PRIMARY_KEY

#define BTREE_IS_PRIMARY_KEY (
    unique_pk
) `((unique_pk) & BTREE_CONSTRAINT_PRIMARY_KEY )`

define BTREE_IS_UNIQUE

#define BTREE_IS_UNIQUE (
    unique_pk
) `((unique_pk) & BTREE_CONSTRAINT_UNIQUE )`

define BTREE_MVCC_INFO_INITIALIZER

#define BTREE_MVCC_INFO_INITIALIZER `{ 0, MVCCID_ALL_VISIBLE , MVCCID_NULL }`

define BTREE_NEED_UNIQUE_CHECK

#define BTREE_NEED_UNIQUE_CHECK (
    thread_p,
    op
) `/* multi line expression */`

define BTREE_NODE_SCAN_ADD_PAGE_TO_QUEUE

#define BTREE_NODE_SCAN_ADD_PAGE_TO_QUEUE (
    bns,
    node
) `/* multi line expression */`

define BTREE_NODE_SCAN_INIT

#define BTREE_NODE_SCAN_INIT (
    bns
) `/* multi line expression */`

define BTREE_NODE_SCAN_IS_QUEUE_EMPTY

#define BTREE_NODE_SCAN_IS_QUEUE_EMPTY (
    bns
) `(( bns )->queue_head == NULL )`

define BTREE_NODE_SCAN_POP_PAGE_FROM_QUEUE

#define BTREE_NODE_SCAN_POP_PAGE_FROM_QUEUE (
    bns,
    node
) `/* multi line expression */`

define BTREE_NORMAL_KEY

#define BTREE_NORMAL_KEY `0`

define BTREE_OBJECT_INFO_INITIALIZER

#define BTREE_OBJECT_INFO_INITIALIZER `{ OID_INITIALIZER , OID_INITIALIZER , BTREE_MVCC_INFO_INITIALIZER }`

define BTREE_OVERFLOW_KEY

#define BTREE_OVERFLOW_KEY `1`

define BTREE_RESET_SCAN

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

define BTREE_RESTART_SCAN

#define BTREE_RESTART_SCAN `-8`

define BTREE_SEARCH_AGAIN_WITH_CHECK

#define BTREE_SEARCH_AGAIN_WITH_CHECK `-4`

define BTREE_SET_UNIQUE_VIOLATION_ERROR

#define BTREE_SET_UNIQUE_VIOLATION_ERROR (
    THREAD,
    KEY,
    OID,
    C_OID,
    BTID,
    BTNM
) `btree_set_error ( THREAD , KEY , OID , C_OID , BTID , BTNM , \ ER_ERROR_SEVERITY , ER_BTREE_UNIQUE_FAILED , __FILE__ , __LINE__ )`

define BTREE_START_OF_SCAN

#define BTREE_START_OF_SCAN (
    bts
) `BTREE_END_OF_SCAN (bts)`

define BTS_IS_DESCENDING_SCAN

#define BTS_IS_DESCENDING_SCAN (
    bts
) `((bts)->index_scan_idp-> indx_info ->use_desc_index)`

define BTS_SET_INDEX_SCANID

#define BTS_SET_INDEX_SCANID (
    bts,
    index_scan_idp
) `((bts)->index_scan_idp = index_scan_idp)`

define BTS_SET_KEY_LIMIT

#define BTS_SET_KEY_LIMIT (
    bts,
    lower,
    upper
) `/* multi line expression */`

define CHECK_VERIFY_COMMON_PREFIX_PAGE_INFO

#define CHECK_VERIFY_COMMON_PREFIX_PAGE_INFO 

define COMMON_PREFIX_PAGE_DEBUG_INFO_RESET

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

define COMMON_PREFIX_UNKNOWN

#define COMMON_PREFIX_UNKNOWN `(-1)`

define DBVAL_BUFSIZE

#define DBVAL_BUFSIZE `4096`

define MULTI_ROW_DELETE

#define MULTI_ROW_DELETE `6`

define MULTI_ROW_INSERT

#define MULTI_ROW_INSERT `5`

define MULTI_ROW_UPDATE

#define MULTI_ROW_UPDATE `7`

define SINGLE_ROW_DELETE

#define SINGLE_ROW_DELETE `2`

define SINGLE_ROW_INSERT

#define SINGLE_ROW_INSERT `1`

define SINGLE_ROW_MODIFY

#define SINGLE_ROW_MODIFY `4    /* used in case  of undo */`

define SINGLE_ROW_UPDATE

#define SINGLE_ROW_UPDATE `3`


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