File btree_load.c¶
FileList > cubrid > src > storage > btree_load.c
Go to the source code of this file
#include "config.h"#include <stdlib.h>#include <string.h>#include <assert.h>#include "btree_load.h"#include "btree.h"#include "deduplicate_key.h"#include "external_sort.h"#include "heap_file.h"#include "log_append.hpp"#include "log_manager.h"#include "memory_alloc.h"#include "memory_private_allocator.hpp"#include "mvcc.h"#include "object_primitive.h"#include "object_representation.h"#include "object_representation_sr.h"#include "partition.h"#include "partition_sr.h"#include "query_executor.h"#include "query_opfunc.h"#include "server_support.h"#include "stream_to_xasl.h"#include "thread_manager.hpp"#include "thread_entry_task.hpp"#include "xserver_interface.h"#include "xasl.h"#include "xasl_unpack_info.hpp"#include "px_ftab_set.hpp"#include "bit.h"#include "db_value_printer.hpp"#include "memory_wrapper.hpp"
Classes¶
| Type | Name |
|---|---|
| struct | S_PARAM_ST |
| struct | btree_page |
| struct | btree_scan_partition_info |
| class | index_builder_loader_context |
| class | index_builder_loader_task |
| struct | load_args |
Public Types¶
| Type | Name |
|---|---|
| typedef struct btree_page | BTREE_PAGE |
| typedef struct btree_scan_partition_info | BTREE_SCAN_PART |
| typedef struct load_args | LOAD_ARGS |
Public Functions¶
| Type | Name |
|---|---|
| REGISTER_WORKERPOOL (online_index, () { return 16;}) |
|
| 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_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) |
| BTREE_ROOT_HEADER * | btree_get_root_header (THREAD_ENTRY * thread_p, PAGE_PTR page_ptr) |
| 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) |
| void | btree_load_foo_debug (void) |
| 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) |
| SORT_STATUS | btree_sort_get_next_parallel (THREAD_ENTRY * thread_p, RECDES * temp_recdes, void * arg) |
| BTID * | xbtree_load_index (THREAD_ENTRY * thread_p, BTID * btid, const char * bt_name, TP_DOMAIN * key_type, OID * class_oids, int n_classes, int n_attrs, int * attr_ids, int * attrs_prefix_length, HFID * hfids, int unique_pk, int not_null_flag, OID * fk_refcls_oid, BTID * fk_refcls_pk_btid, const char * fk_name, char * pred_stream, int pred_stream_size, char * func_pred_stream, int func_pred_stream_size, int func_col_id, int func_attr_index_start) |
| BTID * | xbtree_load_online_index (THREAD_ENTRY * thread_p, BTID * btid, const char * bt_name, TP_DOMAIN * key_type, OID * class_oids, int n_classes, int n_attrs, int * attr_ids, int * attrs_prefix_length, HFID * hfids, int unique_pk, int not_null_flag, OID * fk_refcls_oid, BTID * fk_refcls_pk_btid, const char * fk_name, char * pred_stream, int pred_stream_size, char * func_pred_stream, int func_pred_stream_size, int func_col_id, int func_attr_index_start, int ib_thread_count) |
Public Static Functions¶
Public Types Documentation¶
typedef BTREE_PAGE¶
typedef BTREE_SCAN_PART¶
typedef LOAD_ARGS¶
Public Functions Documentation¶
function REGISTER_WORKERPOOL¶
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
)
function btree_change_root_header_delta¶
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_get_next_overflow_vpid¶
function btree_get_node_header¶
function btree_get_overflow_header¶
function btree_get_root_header¶
function btree_init_node_header¶
int btree_init_node_header (
THREAD_ENTRY * thread_p,
const VFID * vfid,
PAGE_PTR page_ptr,
BTREE_NODE_HEADER * header,
bool redo
)
function btree_init_overflow_header¶
int btree_init_overflow_header (
THREAD_ENTRY * thread_p,
PAGE_PTR page_ptr,
BTREE_OVERFLOW_HEADER * ovf_header
)
function btree_init_root_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
)
function btree_load_foo_debug¶
function btree_node_header_redo_log¶
function btree_node_header_undo_log¶
function btree_node_number_of_keys¶
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¶
function btree_sort_get_next_parallel¶
SORT_STATUS btree_sort_get_next_parallel (
THREAD_ENTRY * thread_p,
RECDES * temp_recdes,
void * arg
)
function xbtree_load_index¶
BTID * xbtree_load_index (
THREAD_ENTRY * thread_p,
BTID * btid,
const char * bt_name,
TP_DOMAIN * key_type,
OID * class_oids,
int n_classes,
int n_attrs,
int * attr_ids,
int * attrs_prefix_length,
HFID * hfids,
int unique_pk,
int not_null_flag,
OID * fk_refcls_oid,
BTID * fk_refcls_pk_btid,
const char * fk_name,
char * pred_stream,
int pred_stream_size,
char * func_pred_stream,
int func_pred_stream_size,
int func_col_id,
int func_attr_index_start
)
function xbtree_load_online_index¶
BTID * xbtree_load_online_index (
THREAD_ENTRY * thread_p,
BTID * btid,
const char * bt_name,
TP_DOMAIN * key_type,
OID * class_oids,
int n_classes,
int n_attrs,
int * attr_ids,
int * attrs_prefix_length,
HFID * hfids,
int unique_pk,
int not_null_flag,
OID * fk_refcls_oid,
BTID * fk_refcls_pk_btid,
const char * fk_name,
char * pred_stream,
int pred_stream_size,
char * func_pred_stream,
int func_pred_stream_size,
int func_col_id,
int func_attr_index_start,
int ib_thread_count
)
Public Static Functions Documentation¶
function bt_load_add_same_key_to_record¶
static int bt_load_add_same_key_to_record (
THREAD_ENTRY * thread_p,
LOAD_ARGS * load_args,
S_PARAM_ST * pparam,
int * sp_success
)
function bt_load_get_buf_from_record¶
static int bt_load_get_buf_from_record (
RECDES * recdes,
LOAD_ARGS * load_args,
S_PARAM_ST * pparam,
bool copy
)
function bt_load_get_first_leaf_page_and_init_args¶
static int bt_load_get_first_leaf_page_and_init_args (
THREAD_ENTRY * thread_p,
LOAD_ARGS * load_args,
S_PARAM_ST * pparam
)
function bt_load_invalidate_mvcc_del_id¶
static int bt_load_invalidate_mvcc_del_id (
THREAD_ENTRY * thread_p,
LOAD_ARGS * load_args,
S_PARAM_ST * pparam
)
function bt_load_make_new_record_on_leaf_page¶
static int bt_load_make_new_record_on_leaf_page (
THREAD_ENTRY * thread_p,
LOAD_ARGS * load_args,
S_PARAM_ST * pparam,
int * sp_success
)
function bt_load_nospace_for_new_oid¶
static int bt_load_nospace_for_new_oid (
THREAD_ENTRY * thread_p,
LOAD_ARGS * load_args,
int * sp_success
)
function bt_load_notify_to_vacuum¶
static int bt_load_notify_to_vacuum (
THREAD_ENTRY * thread_p,
LOAD_ARGS * load_args,
S_PARAM_ST * pparam,
char ** notify_vacuum_rv_data,
char * notify_vacuum_rv_data_bufalign
)
function bt_load_put_buf_to_record¶
static int bt_load_put_buf_to_record (
RECDES * recdes,
SORT_ARGS * sort_args,
int value_has_null,
OID * rec_oid,
MVCC_REC_HEADER * mvcc_header,
DB_VALUE * dbvalue_ptr,
int key_len,
int cur_class,
bool is_btree_ops_log
)
function btree_advance_to_next_slot_and_fix_page¶
static int btree_advance_to_next_slot_and_fix_page (
THREAD_ENTRY * thread_p,
BTID_INT * btid,
VPID * vpid,
PAGE_PTR * pg_ptr,
INT16 * slot_id,
DB_VALUE * key,
bool * clear_key,
bool is_desc,
int * key_cnt,
BTREE_NODE_HEADER ** header,
MVCC_SNAPSHOT * mvcc
)
function btree_build_nleafs¶
static int btree_build_nleafs (
THREAD_ENTRY * thread_p,
LOAD_ARGS * load_args,
int n_nulls,
int n_oids,
int n_keys
)
function btree_connect_page¶
static PAGE_PTR btree_connect_page (
THREAD_ENTRY * thread_p,
DB_VALUE * key,
int max_key_len,
VPID * pageid,
LOAD_ARGS * load_args,
int node_level
)
function btree_construct_leafs¶
function btree_dump_sort_output¶
function btree_first_oid¶
static int btree_first_oid (
THREAD_ENTRY * thread_p,
DB_VALUE * this_key,
OID * class_oid,
OID * first_oid,
MVCC_REC_HEADER * p_mvcc_rec_header,
LOAD_ARGS * load_args
)
function btree_get_value_from_leaf_slot¶
static int btree_get_value_from_leaf_slot (
THREAD_ENTRY * thread_p,
BTID_INT * btid_int,
PAGE_PTR leaf_ptr,
int slot_id,
DB_VALUE * key,
bool * clear_key
)
function btree_index_sort¶
static int btree_index_sort (
THREAD_ENTRY * thread_p,
SORT_ARGS * sort_args,
SORT_PUT_FUNC * out_func,
void * out_args
)
function btree_is_slot_visible¶
static int btree_is_slot_visible (
THREAD_ENTRY * thread_p,
BTID_INT * btid,
PAGE_PTR pg_ptr,
MVCC_SNAPSHOT * mvcc_snapshot,
int slot_id,
bool * is_slot_visible
)
function btree_is_worker_pool_logging_true¶
function btree_load_check_fk¶
static int btree_load_check_fk (
THREAD_ENTRY * thread_p,
const LOAD_ARGS * load_args_local,
const SORT_ARGS * sort_args_local
)
function btree_load_new_page¶
static int btree_load_new_page (
THREAD_ENTRY * thread_p,
const BTID * btid,
BTREE_NODE_HEADER * header,
int node_level,
VPID * vpid_new,
PAGE_PTR * page_new
)
function btree_log_page¶
function btree_pack_root_header¶
static int btree_pack_root_header (
RECDES * Rec,
BTREE_ROOT_HEADER * header,
TP_DOMAIN * key_type
)
function btree_proceed_leaf¶
function btree_rv_save_root_head¶
static void btree_rv_save_root_head (
long long null_delta,
long long oid_delta,
long long key_delta,
RECDES * recdes
)
function btree_save_last_leafrec¶
function btree_sort_get_next¶
static SORT_STATUS btree_sort_get_next (
THREAD_ENTRY * thread_p,
RECDES * temp_recdes,
void * arg
)
function compare_driver¶
function get_next_vpid¶
static SCAN_CODE get_next_vpid (
THREAD_ENTRY * thread_p,
parallel_query::ftab_set & ftab,
FILE_PARTIAL_SECTOR * fsector,
int * offset,
VPID * vpid_out,
HEAP_SCANCACHE * scan_cache,
PGBUF_WATCHER * old_pgwatcher,
HFID * hfid
)
function list_add¶
function list_clear¶
function list_length¶
function list_print¶
function list_remove_first¶
function online_index_builder¶
static int online_index_builder (
THREAD_ENTRY * thread_p,
BTID_INT * btid_int,
HFID * hfids,
OID * class_oids,
int n_classes,
int * attrids,
int n_attrs,
FUNCTION_INDEX_INFO func_idx_info,
PRED_EXPR_WITH_CONTEXT * filter_pred,
int * attrs_prefix_length,
HEAP_CACHE_ATTRINFO * attr_info,
HEAP_SCANCACHE * scancache,
int unique_pk,
int ib_thread_count,
TP_DOMAIN * key_type
)
The documentation for this class was generated from the following file cubrid/src/storage/btree_load.c