File btree_load.h
FileList > cubrid > src > storage > btree_load.h
Go to the source code of this file
#include <assert.h>
#include "btree.h"
#include "dbtype.h"
#include "object_representation_constants.h"
#include "error_manager.h"
#include "storage_common.h"
#include "oid.h"
#include "system_parameter.h"
#include "object_domain.h"
#include "slotted_page.h"
Namespaces
Classes
Public Types
Public Functions
| Type |
Name |
| void |
BTREE_MVCC_SET_HEADER_FIXED_SIZE (MVCC_REC_HEADER * p_mvcc_rec_header)
|
| void |
bt_load_clear_pred_and_unpack (THREAD_ENTRY * thread_p, SORT_ARGS * args, XASL_UNPACK_INFO * func_unpack_info)
|
| void |
bt_load_heap_scancache_end_for_attrinfo (THREAD_ENTRY * thread_p, SORT_ARGS * args, HEAP_SCANCACHE * scan_cache, HEAP_CACHE_ATTRINFO * attr_info)
|
| int |
bt_load_heap_scancache_start_for_attrinfo (THREAD_ENTRY * thread_p, SORT_ARGS * args, HEAP_SCANCACHE * scan_cache, HEAP_CACHE_ATTRINFO * attr_info, int save_cache_last_fix_page)
|
| int |
btree_change_root_header_delta (THREAD_ENTRY * thread_p, VFID * vfid, PAGE_PTR page_ptr, long long null_delta, long long oid_delta, long long key_delta)
|
| int |
btree_create_overflow_key_file (THREAD_ENTRY * thread_p, BTID_INT * btid)
|
| 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_disk_size_of_key (DB_VALUE * key)
|
| int |
btree_get_next_overflow_vpid (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr, VPID * vpid)
|
| BTREE_NODE_HEADER * |
btree_get_node_header (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr)
|
| BTREE_OVERFLOW_HEADER * |
btree_get_overflow_header (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr)
|
| int |
btree_get_prefix_separator (const DB_VALUE * key1, const DB_VALUE * key2, DB_VALUE * prefix_key, TP_DOMAIN * key_domain)
|
| BTREE_ROOT_HEADER * |
btree_get_root_header (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr)
|
| int |
btree_glean_root_header_info (THREAD_ENTRY * thread_p, BTREE_ROOT_HEADER * root_header, BTID_INT * btid, bool is_key_type)
|
| int |
btree_init_node_header (THREAD_ENTRY * thread_p, const VFID * vfid, PAGE_PTR page_ptr, BTREE_NODE_HEADER * header, bool redo)
|
| int |
btree_init_overflow_header (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr, BTREE_OVERFLOW_HEADER * ovf_header)
|
| int |
btree_init_root_header (THREAD_ENTRY * thread_p, VFID * vfid, PAGE_PTR page_ptr, BTREE_ROOT_HEADER * root_header, TP_DOMAIN * key_type)
|
| int |
btree_load_filter_pred_function_info (THREAD_ENTRY * thread_p, SORT_ARGS * sort_args, PRED_EXPR_WITH_CONTEXT ** filter_pred_p, FILTER_INDEX_INFO * filter_index_info_p, FUNCTION_INDEX_INFO * func_index_info_p, XASL_UNPACK_INFO ** func_unpack_info_p, DB_TYPE * single_node_type)
|
| int |
btree_node_header_redo_log (THREAD_ENTRY * thread_p, VFID * vfid, PAGE_PTR page_ptr)
|
| int |
btree_node_header_undo_log (THREAD_ENTRY * thread_p, VFID * vfid, PAGE_PTR page_ptr)
|
| int |
btree_node_number_of_keys (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr)
|
| void |
btree_rv_mvcc_save_increments (const BTID * btid, long long key_delta, long long oid_delta, long long null_delta, RECDES * recdes)
|
| void |
btree_rv_nodehdr_dump (FILE * fp, int length, void * data)
|
| DISK_ISVALID |
btree_verify_tree (THREAD_ENTRY * thread_p, const OID * class_oid_p, BTID_INT * btid, const char * btname)
|
Public Static Functions
Macros
| Type |
Name |
| define |
BTREE_CURRENT_REV_LEVEL 0
|
| define |
BTREE_GET_KEY_LEN_IN_PAGE (key_len) (((key\_len) >= [**BTREE\_MAX\_KEYLEN\_INPAGE**](btree__load_8h.md#define-btree_max_keylen_inpage)) ? [**DISK\_VPID\_SIZE**](storage__common_8h.md#define-disk_vpid_size) : (key\_len))
|
| define |
BTREE_INVALID_INDEX_ID (btid) /* multi line expression */
|
| define |
BTREE_MAX_ALIGN [**INT\_ALIGNMENT**](memory__alloc_8h.md#define-int_alignment)
|
| define |
BTREE_MAX_KEYLEN_INPAGE (([**int**](broker__monitor_8c.md#function-timeout))([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize) / 8))
|
| define |
BTREE_MAX_OIDCOUNT_IN_LEAF_RECORD (btid) ([**BTREE\_MAX\_OIDCOUNT\_IN\_SIZE**](btree__load_8h.md#define-btree_max_oidcount_in_size) ([**btid**](structbtid.md), [**BTREE\_MAX\_OIDLEN\_INPAGE**](btree__load_8h.md#define-btree_max_oidlen_inpage)))
|
| define |
BTREE_MAX_OIDCOUNT_IN_OVERFLOW_RECORD (btid) ([**BTREE\_MAX\_OIDCOUNT\_IN\_SIZE**](btree__load_8h.md#define-btree_max_oidcount_in_size) ([**btid**](structbtid.md), [**BTREE\_MAX\_OVERFLOW\_RECORD\_SIZE**](btree__load_8h.md#define-btree_max_overflow_record_size)))
|
| define |
BTREE_MAX_OIDCOUNT_IN_SIZE (btid, size) (([**int**](broker__monitor_8c.md#function-timeout)) (size) / [**BTREE\_OBJECT\_FIXED\_SIZE**](btree__load_8h.md#define-btree_object_fixed_size) ([**btid**](structbtid.md)))
|
| define |
BTREE_MAX_OIDLEN_INPAGE (([**int**](broker__monitor_8c.md#function-timeout))([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize) / 8))
|
| define |
BTREE_MAX_OVERFLOW_RECORD_SIZE /* multi line expression */
|
| define |
BTREE_NEW_ENTRY_MAX_SIZE (key_disk_size, node_type) /* multi line expression */
|
| define |
BTREE_OBJECT_FIXED_SIZE (btree_info) /* multi line expression */
|
| define |
BTREE_OBJECT_MAX_SIZE (2 \* [**OR\_OID\_SIZE**](object__representation__constants_8h.md#define-or_oid_size) + 2 \* [**OR\_MVCCID\_SIZE**](object__representation_8h.md#define-or_mvccid_size))
|
| define |
BTREE_SET_CREATED_OVERFLOW_KEY_NOTIFICATION (THREAD, KEY, OID, C_OID, BTID, BTNM) /* multi line expression */
|
| define |
BTREE_SET_CREATED_OVERFLOW_PAGE_NOTIFICATION (THREAD, KEY, OID, C_OID, BTID) /* multi line expression */
|
| define |
BTREE_SET_DELETED_OVERFLOW_PAGE_NOTIFICATION (THREAD, KEY, OID, C_OID, BTID) /* multi line expression */
|
| define |
COPY_KEY_VALUE [**COPY**](storage__common_8h.md#variable-copy)
|
| define |
GET_DECOMPRESS_IDX_HEADER (hdr) ((hdr)->\_32.deduplicate\_key\_idx - 1)
|
| define |
HEADER 0
|
| define |
LEAF_ENTRY_MAX_SIZE (n) /* multi line expression */
|
| define |
LEAF_FENCE_MAX_SIZE (n) /* multi line expression */
|
| define |
LOAD_FIXED_EMPTY_FOR_LEAF /* multi line expression */
|
| define |
LOAD_FIXED_EMPTY_FOR_NONLEAF /* multi line expression */
|
| define |
NON_LEAF_ENTRY_MAX_SIZE (n) ([**NON\_LEAF\_RECORD\_SIZE**](storage__common_8h.md#define-non_leaf_record_size) + [**BTREE\_MAX\_ALIGN**](btree__load_8h.md#define-btree_max_align) + n)
|
| define |
OIDCMP (n1, n2) /* multi line expression */
|
| define |
PEEK_KEY_VALUE [**PEEK**](file__io_8h.md#define-peek)
|
| define |
SET_DECOMPRESS_IDX_HEADER (hdr, idx) ((hdr)->\_32.deduplicate\_key\_idx = ((idx) + 1))
|
Public Types Documentation
typedef BTREE_NODE
typedef struct btree_node BTREE_NODE;
typedef struct btree_node_header BTREE_NODE_HEADER;
typedef BTREE_NODE_INFO
typedef struct btree_node_info BTREE_NODE_INFO;
typedef struct btree_overflow_header BTREE_OVERFLOW_HEADER;
typedef struct btree_root_header BTREE_ROOT_HEADER;
typedef FILTER_INDEX_INFO
typedef struct filter_index_info FILTER_INDEX_INFO;
typedef PRED_EXPR_WITH_CONTEXT
typedef struct pred_expr_with_context PRED_EXPR_WITH_CONTEXT;
typedef SORT_ARGS
typedef struct sort_args SORT_ARGS;
typedef XASL_UNPACK_INFO
typedef struct xasl_unpack_info XASL_UNPACK_INFO;
Public Functions Documentation
inline void BTREE_MVCC_SET_HEADER_FIXED_SIZE (
MVCC_REC_HEADER * p_mvcc_rec_header
)
function bt_load_clear_pred_and_unpack
void bt_load_clear_pred_and_unpack (
THREAD_ENTRY * thread_p,
SORT_ARGS * args,
XASL_UNPACK_INFO * func_unpack_info
)
function bt_load_heap_scancache_end_for_attrinfo
void bt_load_heap_scancache_end_for_attrinfo (
THREAD_ENTRY * thread_p,
SORT_ARGS * args,
HEAP_SCANCACHE * scan_cache,
HEAP_CACHE_ATTRINFO * attr_info
)
function bt_load_heap_scancache_start_for_attrinfo
int bt_load_heap_scancache_start_for_attrinfo (
THREAD_ENTRY * thread_p,
SORT_ARGS * args,
HEAP_SCANCACHE * scan_cache,
HEAP_CACHE_ATTRINFO * attr_info,
int save_cache_last_fix_page
)
int btree_change_root_header_delta (
THREAD_ENTRY * thread_p,
VFID * vfid,
PAGE_PTR page_ptr,
long long null_delta,
long long oid_delta,
long long key_delta
)
function btree_create_overflow_key_file
int btree_create_overflow_key_file (
THREAD_ENTRY * thread_p,
BTID_INT * btid
)
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_disk_size_of_key
int btree_get_disk_size_of_key (
DB_VALUE * key
)
function btree_get_next_overflow_vpid
int btree_get_next_overflow_vpid (
THREAD_ENTRY * thread_p,
PAGE_PTR page_ptr,
VPID * vpid
)
BTREE_NODE_HEADER * btree_get_node_header (
THREAD_ENTRY * thread_p,
PAGE_PTR page_ptr
)
BTREE_OVERFLOW_HEADER * btree_get_overflow_header (
THREAD_ENTRY * thread_p,
PAGE_PTR page_ptr
)
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
)
BTREE_ROOT_HEADER * btree_get_root_header (
THREAD_ENTRY * thread_p,
PAGE_PTR page_ptr
)
int btree_glean_root_header_info (
THREAD_ENTRY * thread_p,
BTREE_ROOT_HEADER * root_header,
BTID_INT * btid,
bool is_key_type
)
int btree_init_node_header (
THREAD_ENTRY * thread_p,
const VFID * vfid,
PAGE_PTR page_ptr,
BTREE_NODE_HEADER * header,
bool redo
)
int btree_init_overflow_header (
THREAD_ENTRY * thread_p,
PAGE_PTR page_ptr,
BTREE_OVERFLOW_HEADER * ovf_header
)
int btree_init_root_header (
THREAD_ENTRY * thread_p,
VFID * vfid,
PAGE_PTR page_ptr,
BTREE_ROOT_HEADER * root_header,
TP_DOMAIN * key_type
)
function btree_load_filter_pred_function_info
int btree_load_filter_pred_function_info (
THREAD_ENTRY * thread_p,
SORT_ARGS * sort_args,
PRED_EXPR_WITH_CONTEXT ** filter_pred_p,
FILTER_INDEX_INFO * filter_index_info_p,
FUNCTION_INDEX_INFO * func_index_info_p,
XASL_UNPACK_INFO ** func_unpack_info_p,
DB_TYPE * single_node_type
)
int btree_node_header_redo_log (
THREAD_ENTRY * thread_p,
VFID * vfid,
PAGE_PTR page_ptr
)
int btree_node_header_undo_log (
THREAD_ENTRY * thread_p,
VFID * vfid,
PAGE_PTR page_ptr
)
function btree_node_number_of_keys
int btree_node_number_of_keys (
THREAD_ENTRY * thread_p,
PAGE_PTR page_ptr
)
function btree_rv_mvcc_save_increments
void btree_rv_mvcc_save_increments (
const BTID * btid,
long long key_delta,
long long oid_delta,
long long null_delta,
RECDES * recdes
)
function btree_rv_nodehdr_dump
void btree_rv_nodehdr_dump (
FILE * fp,
int length,
void * data
)
function btree_verify_tree
DISK_ISVALID btree_verify_tree (
THREAD_ENTRY * thread_p,
const OID * class_oid_p,
BTID_INT * btid,
const char * btname
)
Public Static Functions Documentation
function btree_clear_key_value
static bool btree_clear_key_value (
bool * clear_flag,
DB_VALUE * key_value
)
function btree_init_temp_key_value
static void btree_init_temp_key_value (
bool * clear_flag,
DB_VALUE * key_value
)
Macro Definition Documentation
define BTREE_CURRENT_REV_LEVEL
#define BTREE_CURRENT_REV_LEVEL `0`
define BTREE_GET_KEY_LEN_IN_PAGE
#define BTREE_GET_KEY_LEN_IN_PAGE (
key_len
) `(((key_len) >= BTREE_MAX_KEYLEN_INPAGE ) ? DISK_VPID_SIZE : (key_len))`
define BTREE_INVALID_INDEX_ID
#define BTREE_INVALID_INDEX_ID (
btid
) `/* multi line expression */`
define BTREE_MAX_ALIGN
#define BTREE_MAX_ALIGN `INT_ALIGNMENT`
define BTREE_MAX_KEYLEN_INPAGE
#define BTREE_MAX_KEYLEN_INPAGE `(( int )( DB_PAGESIZE / 8))`
define BTREE_MAX_OIDCOUNT_IN_LEAF_RECORD
#define BTREE_MAX_OIDCOUNT_IN_LEAF_RECORD (
btid
) `( BTREE_MAX_OIDCOUNT_IN_SIZE ( btid , BTREE_MAX_OIDLEN_INPAGE ))`
define BTREE_MAX_OIDCOUNT_IN_OVERFLOW_RECORD
#define BTREE_MAX_OIDCOUNT_IN_OVERFLOW_RECORD (
btid
) `( BTREE_MAX_OIDCOUNT_IN_SIZE ( btid , BTREE_MAX_OVERFLOW_RECORD_SIZE ))`
define BTREE_MAX_OIDCOUNT_IN_SIZE
#define BTREE_MAX_OIDCOUNT_IN_SIZE (
btid,
size
) `(( int ) (size) / BTREE_OBJECT_FIXED_SIZE ( btid ))`
define BTREE_MAX_OIDLEN_INPAGE
#define BTREE_MAX_OIDLEN_INPAGE `(( int )( DB_PAGESIZE / 8))`
define BTREE_MAX_OVERFLOW_RECORD_SIZE
#define BTREE_MAX_OVERFLOW_RECORD_SIZE `/* multi line expression */`
define BTREE_NEW_ENTRY_MAX_SIZE
#define BTREE_NEW_ENTRY_MAX_SIZE (
key_disk_size,
node_type
) `((node_type) == BTREE_LEAF_NODE ? \ LEAF_ENTRY_MAX_SIZE ( key_disk_size ) : \ NON_LEAF_ENTRY_MAX_SIZE ( key_disk_size ))`
define BTREE_OBJECT_FIXED_SIZE
#define BTREE_OBJECT_FIXED_SIZE (
btree_info
) `/* multi line expression */`
define BTREE_OBJECT_MAX_SIZE
#define BTREE_OBJECT_MAX_SIZE `(2 * OR_OID_SIZE + 2 * OR_MVCCID_SIZE )`
define BTREE_SET_CREATED_OVERFLOW_KEY_NOTIFICATION
#define BTREE_SET_CREATED_OVERFLOW_KEY_NOTIFICATION (
THREAD,
KEY,
OID,
C_OID,
BTID,
BTNM
) `btree_set_error ( THREAD , KEY , OID , C_OID , BTID , BTNM , ER_NOTIFICATION_SEVERITY , \ ER_BTREE_CREATED_OVERFLOW_KEY , __FILE__ , __LINE__ )`
define BTREE_SET_CREATED_OVERFLOW_PAGE_NOTIFICATION
#define BTREE_SET_CREATED_OVERFLOW_PAGE_NOTIFICATION (
THREAD,
KEY,
OID,
C_OID,
BTID
) `btree_set_error ( THREAD , KEY , OID , C_OID , BTID , NULL , ER_NOTIFICATION_SEVERITY , \ ER_BTREE_CREATED_OVERFLOW_PAGE , __FILE__ , __LINE__ )`
define BTREE_SET_DELETED_OVERFLOW_PAGE_NOTIFICATION
#define BTREE_SET_DELETED_OVERFLOW_PAGE_NOTIFICATION (
THREAD,
KEY,
OID,
C_OID,
BTID
) `btree_set_error ( THREAD , KEY , OID , C_OID , BTID , NULL , ER_NOTIFICATION_SEVERITY , \ ER_BTREE_DELETED_OVERFLOW_PAGE , __FILE__ , __LINE__ )`
define COPY_KEY_VALUE
#define COPY_KEY_VALUE `COPY`
#define GET_DECOMPRESS_IDX_HEADER (
hdr
) `((hdr)->_32.deduplicate_key_idx - 1)`
define LEAF_ENTRY_MAX_SIZE
#define LEAF_ENTRY_MAX_SIZE (
n
) `/* multi line expression */`
define LEAF_FENCE_MAX_SIZE
#define LEAF_FENCE_MAX_SIZE (
n
) `/* multi line expression */`
define LOAD_FIXED_EMPTY_FOR_LEAF
#define LOAD_FIXED_EMPTY_FOR_LEAF `/* multi line expression */`
define LOAD_FIXED_EMPTY_FOR_NONLEAF
#define LOAD_FIXED_EMPTY_FOR_NONLEAF `/* multi line expression */`
define NON_LEAF_ENTRY_MAX_SIZE
#define NON_LEAF_ENTRY_MAX_SIZE (
n
) `( NON_LEAF_RECORD_SIZE + BTREE_MAX_ALIGN + n)`
define OIDCMP
#define OIDCMP (
n1,
n2
) `/* multi line expression */`
define PEEK_KEY_VALUE
#define PEEK_KEY_VALUE `PEEK`
#define SET_DECOMPRESS_IDX_HEADER (
hdr,
idx
) `((hdr)->_32.deduplicate_key_idx = ((idx) + 1))`
The documentation for this class was generated from the following file cubrid/src/storage/btree_load.h