Skip to content

File heap_file.h

FileList > cubrid > src > storage > heap_file.h

Go to the source code of this file

  • #include "config.h"
  • #include "file_manager.h"
  • #include "heap_attrinfo.h"
  • #include "mem_block.hpp"
  • #include "mvcc.h"
  • #include "page_buffer.h"
  • #include "perf_monitor.h"
  • #include "storage_common.h"
  • #include "thread_compat.hpp"
  • #include "tde.h"

Classes

Type Name
struct func_pred_unpack_info
struct function_index_info
struct heap_bestspace
struct heap_get_context
struct heap_hfid_table
struct heap_hfid_table_entry
struct heap_idx_elements_info
struct heap_mvcc_delete_info
struct heap_operation_context
struct heap_scancache
struct heap_scancache_node
struct heap_scancache_node_list
struct heap_scanrange
struct sampling_info

Public Types

Type Name
typedef struct function_index_info FUNCTION_INDEX_INFO
typedef struct func_pred_unpack_info FUNC_PRED_UNPACK_INFO
typedef struct heap_bestspace HEAP_BESTSPACE
typedef struct heap_get_context HEAP_GET_CONTEXT
typedef struct heap_hfid_table HEAP_HFID_TABLE
typedef struct heap_hfid_table_entry HEAP_HFID_TABLE_ENTRY
typedef struct heap_idx_elements_info HEAP_IDX_ELEMENTS_INFO
typedef struct heap_mvcc_delete_info HEAP_MVCC_DELETE_INFO
typedef struct heap_operation_context HEAP_OPERATION_CONTEXT
enum HEAP_OPERATION_TYPE
enum HEAP_PAGE_VACUUM_STATUS
typedef struct heap_scancache HEAP_SCANCACHE
typedef struct heap_scancache_node HEAP_SCANCACHE_NODE
typedef struct heap_scancache_node_list HEAP_SCANCACHE_NODE_LIST
typedef struct heap_scanrange HEAP_SCANRANGE
typedef struct sampling_info SAMPLING_INFO
enum SNAPSHOT_TYPE
typedef enum update_inplace_style UPDATE_INPLACE_STYLE
enum heap__file_8h_1ab98c672c5aaffb98a9189cd99e58ff23
enum update_inplace_style

Public Attributes

Type Name
int mvcc_header_size_lookup

Public Functions

Type Name
int heap_alloc_new_page (THREAD_ENTRY * thread_p, HFID * hfid, OID class_oid, PGBUF_WATCHER * home_hint_p, VPID * new_page_vpid)
int heap_assign_address (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * oid, int expected_length)
DB_VALUE * heap_attrinfo_access (ATTR_ID attrid, HEAP_CACHE_ATTRINFO * attr_info)
bool heap_attrinfo_check_unique_index (THREAD_ENTRY * thread_p, HEAP_CACHE_ATTRINFO * attr_info, ATTR_ID * att_id, int n_att_id)
int heap_attrinfo_clear_dbvalues (HEAP_CACHE_ATTRINFO * attr_info)
int heap_attrinfo_delete_lob (THREAD_ENTRY * thread_p, RECDES * recdes, HEAP_CACHE_ATTRINFO * attr_info)
void heap_attrinfo_dump (THREAD_ENTRY * thread_p, FILE * fp, HEAP_CACHE_ATTRINFO * attr_info, bool dump_schema)
void heap_attrinfo_end (THREAD_ENTRY * thread_p, HEAP_CACHE_ATTRINFO * attr_info)
DB_VALUE * heap_attrinfo_generate_key (THREAD_ENTRY * thread_p, int n_atts, int * att_ids, int * atts_prefix_length, HEAP_CACHE_ATTRINFO * attr_info, RECDES * recdes, DB_VALUE * dbvalue, char * buf, FUNCTION_INDEX_INFO * func_index_info, TP_DOMAIN * midxkey_domain, OID * cur_oid)
int heap_attrinfo_read_dbvalues (THREAD_ENTRY * thread_p, const OID * inst_oid, RECDES * recdes, HEAP_CACHE_ATTRINFO * attr_info)
int heap_attrinfo_read_dbvalues_without_oid (THREAD_ENTRY * thread_p, RECDES * recdes, HEAP_CACHE_ATTRINFO * attr_info)
int heap_attrinfo_set (const OID * inst_oid, ATTR_ID attrid, DB_VALUE * attr_val, HEAP_CACHE_ATTRINFO * attr_info)
int heap_attrinfo_set_uninitialized_global (THREAD_ENTRY * thread_p, OID * inst_oid, RECDES * recdes, HEAP_CACHE_ATTRINFO * attr_info)
int heap_attrinfo_start (THREAD_ENTRY * thread_p, const OID * class_oid, int requested_num_attrs, const ATTR_ID * attrid, HEAP_CACHE_ATTRINFO * attr_info)
int heap_attrinfo_start_with_btid (THREAD_ENTRY * thread_p, OID * class_oid, BTID * btid, HEAP_CACHE_ATTRINFO * attr_info)
int heap_attrinfo_start_with_index (THREAD_ENTRY * thread_p, OID * class_oid, RECDES * class_recdes, HEAP_CACHE_ATTRINFO * attr_info, HEAP_IDX_ELEMENTS_INFO * idx_info, bool is_check_foreign)
SCAN_CODE heap_attrinfo_transform_to_disk (THREAD_ENTRY * thread_p, HEAP_CACHE_ATTRINFO * attr_info, RECDES * old_recdes, record_descriptor * new_recdes)
SCAN_CODE heap_attrinfo_transform_to_disk_except_lob (THREAD_ENTRY * thread_p, HEAP_CACHE_ATTRINFO * attr_info, RECDES * old_recdes, record_descriptor * new_recdes)
DB_VALUE * heap_attrvalue_get_index (int value_index, ATTR_ID * attrid, int * n_btids, BTID ** btids, HEAP_CACHE_ATTRINFO * idx_attrinfo)
DB_VALUE * heap_attrvalue_get_key (THREAD_ENTRY * thread_p, int btid_index, HEAP_CACHE_ATTRINFO * idx_attrinfo, RECDES * recdes, BTID * btid, DB_VALUE * db_value, char * buf, FUNC_PRED_UNPACK_INFO * func_indx_preds, TP_DOMAIN ** key_domain, OID * rec_oid, bool is_check_foreign)
HEAP_ATTRVALUE * heap_attrvalue_locate (ATTR_ID attrid, HEAP_CACHE_ATTRINFO * attr_info)
int heap_cache_class_info (THREAD_ENTRY * thread_p, const OID * class_oid, HFID * hfid, FILE_TYPE ftype, const char * classname_in)
SCAN_CODE heap_capacity_next_scan (THREAD_ENTRY * thread_p, int cursor, DB_VALUE ** out_values, int out_cnt, void * ptr)
DISK_ISVALID heap_check_all_heaps (THREAD_ENTRY * thread_p)
DISK_ISVALID heap_check_all_pages (THREAD_ENTRY * thread_p, HFID * hfid)
DISK_ISVALID heap_check_heap_file (THREAD_ENTRY * thread_p, HFID * hfid)
void heap_chnguess_clear (THREAD_ENTRY * thread_p, int tran_index)
void heap_chnguess_dump (FILE * fp)
int heap_chnguess_get (THREAD_ENTRY * thread_p, const OID * oid, int tran_index)
int heap_chnguess_put (THREAD_ENTRY * thread_p, const OID * oid, int tran_index, int chn)
int heap_classrepr_decache (THREAD_ENTRY * thread_p, const OID * class_oid)
void heap_classrepr_dump_all (THREAD_ENTRY * thread_p, FILE * fp, OID * class_oid)
int heap_classrepr_find_index_id (OR_CLASSREP * classrepr, const BTID * btid)
int heap_classrepr_free (OR_CLASSREP * classrep, int * idx_incache)
OR_CLASSREP * heap_classrepr_get (THREAD_ENTRY * thread_p, const OID * class_oid, RECDES * class_recdes, REPR_ID reprid, int * idx_incache)
int heap_classrepr_restart_cache (void)
void heap_clean_get_context (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context)
void heap_clear_partition_info (THREAD_ENTRY * thread_p, OR_PARTITION * parts, int parts_count)
int heap_cmp (THREAD_ENTRY * thread_p, const OID * oid, RECDES * recdes)
int heap_compact_pages (THREAD_ENTRY * thread_p, OID * class_oid)
void heap_create_delete_context (HEAP_OPERATION_CONTEXT * context, HFID * hfid_p, OID * oid_p, OID * class_oid_p, HEAP_SCANCACHE * scancache_p)
void heap_create_insert_context (HEAP_OPERATION_CONTEXT * context, HFID * hfid_p, OID * class_oid_p, RECDES * recdes_p, HEAP_SCANCACHE * scancache_p)
void heap_create_update_context (HEAP_OPERATION_CONTEXT * context, HFID * hfid_p, OID * oid_p, OID * class_oid_p, RECDES * recdes_p, HEAP_SCANCACHE * scancache_p, UPDATE_INPLACE_STYLE in_place)
int heap_delete_hfid_from_cache (THREAD_ENTRY * thread_p, OID * class_oid)
int heap_delete_logical (THREAD_ENTRY * thread_p, HEAP_OPERATION_CONTEXT * context)
bool heap_does_exist (THREAD_ENTRY * thread_p, OID * class_oid, const OID * oid)
void heap_dump (THREAD_ENTRY * thread_p, FILE * fp, HFID * hfid, bool dump_records)
int heap_dump_capacity (THREAD_ENTRY * thread_p, FILE * fp, const HFID * hfid)
int heap_dump_heap_file (THREAD_ENTRY * thread_p, FILE * fp, bool dump_records, const char * class_name)
int heap_estimate (THREAD_ENTRY * thread_p, const HFID * hfid, int * npages, int * nobjs, int * avg_length)
int heap_estimate_num_objects (THREAD_ENTRY * thread_p, const HFID * hfid)
void heap_finalize_hfid_table (void)
SCAN_CODE heap_first (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking)
void heap_flush (THREAD_ENTRY * thread_p, const OID * oid)
void heap_free_func_pred_unpack_info (THREAD_ENTRY * thread_p, int n_indexes, FUNC_PRED_UNPACK_INFO * func_indx_preds, int * attr_info_started)
int heap_get_best_space_num_stats_entries (void)
int heap_get_btid_from_index_name (THREAD_ENTRY * thread_p, const OID * p_class_oid, const char * index_name, BTID * p_found_btid)
int heap_get_class_info (THREAD_ENTRY * thread_p, const OID * class_oid, HFID * hfid_out, FILE_TYPE * ftype_out, char ** classname_out)
int heap_get_class_name (THREAD_ENTRY * thread_p, const OID * class_oid, char ** class_name)
int heap_get_class_name_alloc_if_diff (THREAD_ENTRY * thread_p, const OID * class_oid, char * guess_classname, char ** class_name_out)
char * heap_get_class_name_with_is_class (THREAD_ENTRY * thread_p, const OID * oid, int * isclass)
SCAN_CODE heap_get_class_oid (THREAD_ENTRY * thread_p, const OID * oid, OID * class_oid)
int heap_get_class_oid_from_page (THREAD_ENTRY * thread_p, PAGE_PTR page_p, OID * class_oid)
int heap_get_class_partitions (THREAD_ENTRY * thread_p, const OID * class_oid, OR_PARTITION ** parts, int * parts_count)
SCAN_CODE heap_get_class_record (THREAD_ENTRY * thread_p, const OID * class_oid, RECDES * recdes_p, HEAP_SCANCACHE * scan_cache, int ispeeking)
REPR_ID heap_get_class_repr_id (THREAD_ENTRY * thread_p, OID * class_oid)
int heap_get_class_supers (THREAD_ENTRY * thread_p, const OID * class_oid, OID ** super_oids, int * count)
int heap_get_class_tde_algorithm (THREAD_ENTRY * thread_p, const OID * class_oid, TDE_ALGORITHM * tde_algo)
int heap_get_compress_attr_by_btid (THREAD_ENTRY * thread_p, OID * class_oid, BTID * btid, ATTR_ID * last_attrid, int * last_asc_desc, TP_DOMAIN ** tpdomain)
int heap_get_hfid_from_vfid (THREAD_ENTRY * thread_p, const VFID * vfid, HFID * hfid)
int heap_get_hfid_if_cached (THREAD_ENTRY * thread_p, const OID * class_oid, HFID * hfid_out, FILE_TYPE * ftype_out, char ** classname_out, bool * success)
int heap_get_index_with_name (THREAD_ENTRY * thread_p, OID * class_oid, const char * index_name, BTID * btid)
int heap_get_indexinfo_of_btid (THREAD_ENTRY * thread_p, const OID * class_oid, const BTID * btid, BTREE_TYPE * type, int * num_attrs, ATTR_ID ** attr_ids, int ** attrs_prefix_length, char ** btnamepp, int * func_index_col_id)
SCAN_CODE heap_get_last_version (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context)
SCAN_CODE heap_get_mvcc_header (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context, MVCC_REC_HEADER * mvcc_header)
int heap_get_mvcc_rec_header_from_overflow (PAGE_PTR ovf_page, MVCC_REC_HEADER * mvcc_header, RECDES * peek_recdes)
int heap_get_num_objects (THREAD_ENTRY * thread_p, const HFID * hfid, int * npages, int * nobjs, int * avg_length)
SCAN_CODE heap_get_record_data_when_all_ready (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context)
int heap_get_referenced_by (THREAD_ENTRY * thread_p, OID * class_oid, const OID * obj_oid, RECDES * obj, int * max_oid_cnt, OID ** oid_list)
SCAN_CODE heap_get_visible_version (THREAD_ENTRY * thread_p, const OID * oid, OID * class_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking, int old_chn)
SCAN_CODE heap_get_visible_version_internal (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context, bool is_heap_scan)
int heap_header_capacity_end_scan (THREAD_ENTRY * thread_p, void ** ptr)
int heap_header_capacity_start_scan (THREAD_ENTRY * thread_p, int show_type, DB_VALUE ** arg_values, int arg_cnt, void ** ptr)
SCAN_CODE heap_header_next_scan (THREAD_ENTRY * thread_p, int cursor, DB_VALUE ** out_values, int out_cnt, void * ptr)
int heap_indexinfo_get_attrids (int btid_index, HEAP_CACHE_ATTRINFO * attrinfo, ATTR_ID * attrids)
int heap_indexinfo_get_attrs_prefix_length (int btid_index, HEAP_CACHE_ATTRINFO * attrinfo, int * attrs_prefix_length, int len_attrs_prefix_length)
BTID * heap_indexinfo_get_btid (int btid_index, HEAP_CACHE_ATTRINFO * attrinfo)
int heap_indexinfo_get_num_attrs (int btid_index, HEAP_CACHE_ATTRINFO * attrinfo)
int heap_init_func_pred_unpack_info (THREAD_ENTRY * thread_p, HEAP_CACHE_ATTRINFO * attr_info, const OID * class_oid, FUNC_PRED_UNPACK_INFO ** func_indx_preds)
void heap_init_get_context (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context, const OID * oid, OID * class_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking, int old_chn)
int heap_initialize_hfid_table (void)
int heap_insert_logical (THREAD_ENTRY * thread_p, HEAP_OPERATION_CONTEXT * context, PGBUF_WATCHER * home_hint_p)
bool heap_is_big_length (int length)
bool heap_is_object_not_null (THREAD_ENTRY * thread_p, OID * class_oid, const OID * oid)
bool heap_is_page_header (THREAD_ENTRY * thread_p, PAGE_PTR page)
SCAN_CODE heap_last (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking)
OR_ATTRIBUTE * heap_locate_last_attrepr (ATTR_ID attrid, HEAP_CACHE_ATTRINFO * attr_info)
void heap_log_postpone_heap_append_pages (THREAD_ENTRY * thread_p, const HFID * hfid, const OID * class_oid, const std::vector< VPID > & heap_pages_array)
int heap_manager_finalize (void)
int heap_manager_initialize (void)
SCAN_CODE heap_next (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * next_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking)
SCAN_CODE heap_next_1page (THREAD_ENTRY * thread_p, const HFID * hfid, const VPID * vpid, OID * class_oid, OID * next_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking)
SCAN_CODE heap_next_record_info (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * next_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking, DB_VALUE ** cache_recordinfo)
SCAN_CODE heap_next_sampling (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * next_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking, sampling_info * sampling)
int heap_nonheader_page_capacity ()
int heap_object_upgrade_domain (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * upd_scancache, HEAP_CACHE_ATTRINFO * attr_info, OID * oid, const ATTR_ID att_id)
const OID * heap_ovf_delete (THREAD_ENTRY * thread_p, const HFID * hfid, const OID * ovf_oid, VFID * ovf_vfid_p)
VFID * heap_ovf_find_vfid (THREAD_ENTRY * thread_p, const HFID * hfid, VFID * ovf_vfid, bool create, PGBUF_LATCH_CONDITION latch_cond)
MVCCID heap_page_get_max_mvccid (THREAD_ENTRY * thread_p, PAGE_PTR heap_page)
HEAP_PAGE_VACUUM_STATUS heap_page_get_vacuum_status (THREAD_ENTRY * thread_p, PAGE_PTR heap_page)
SCAN_CODE heap_page_next (THREAD_ENTRY * thread_p, const OID * class_oid, const HFID * hfid, VPID * next_vpid, DB_VALUE ** cache_pageinfo)
SCAN_CODE heap_page_next_fix_old (THREAD_ENTRY * thread_p, HFID * hfid, VPID * curr_vpid, HEAP_SCANCACHE * scan_cache)
SCAN_CODE heap_page_prev (THREAD_ENTRY * thread_p, const OID * class_oid, const HFID * hfid, VPID * prev_vpid, DB_VALUE ** cache_pageinfo)
void heap_page_set_vacuum_status_none (THREAD_ENTRY * thread_p, PAGE_PTR heap_page)
int heap_prefetch (THREAD_ENTRY * thread_p, OID * class_oid, const OID * oid, LC_COPYAREA_DESC * prefetch)
SCAN_CODE heap_prepare_get_context (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context, bool is_heap_scan, NON_EXISTENT_HANDLING non_ex_handling_type)
int heap_prepare_object_page (THREAD_ENTRY * thread_p, const OID * oid, PGBUF_WATCHER * page_watcher_p, PGBUF_LATCH_MODE latch_mode)
SCAN_CODE heap_prev (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * prev_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking)
SCAN_CODE heap_prev_record_info (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, OID * next_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking, DB_VALUE ** cache_recordinfo)
bool heap_remove_page_on_vacuum (THREAD_ENTRY * thread_p, PAGE_PTR * page_ptr, HFID * hfid)
void heap_rv_dump_append_pages_to_heap (FILE * fp, int length, void * data)
void heap_rv_dump_chain (FILE * fp, int ignore_length, void * data)
void heap_rv_dump_reuse_page (FILE * fp, int ignore_length, void * data)
void heap_rv_dump_statistics (FILE * fp, int ignore_length, void * data)
int heap_rv_lob_remove_dir (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mark_deleted_on_postpone (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mark_deleted_on_undo (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mvcc_redo_delete_home (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mvcc_redo_delete_newhome (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mvcc_redo_delete_overflow (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mvcc_redo_insert (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mvcc_redo_redistribute (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mvcc_undo_delete (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_mvcc_undo_delete_overflow (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_nop (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_postpone_append_pages_to_heap (THREAD_ENTRY * thread_p, LOG_RCV * recv)
int heap_rv_redo_delete (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_insert (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_mark_reusable_slot (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_newpage (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_newpage_reuse_oid (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_reuse_page (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_reuse_page_reuse_oid (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_update (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_redo_update_and_update_chain (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
INT16 heap_rv_remove_flags_from_offset (INT16 offset)
int heap_rv_undo_delete (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_undo_insert (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_undo_ovf_update (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_undo_update (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_undoredo_pagehdr (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_undoredo_update (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_rv_update_chain_after_mvcc_op (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int heap_scan_cache_allocate_area (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache_p, int size)
SCAN_CODE heap_scan_get_visible_version (THREAD_ENTRY * thread_p, const OID * oid, OID * class_oid, RECDES * recdes, RECDES * forward_recdes, HEAP_SCANCACHE * scan_cache, int ispeeking, int old_chn)
int heap_scancache_end (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache)
void heap_scancache_end_modify (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache)
int heap_scancache_end_when_scan_will_resume (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache)
int heap_scancache_quick_start (HEAP_SCANCACHE * scan_cache)
int heap_scancache_quick_start_modify (HEAP_SCANCACHE * scan_cache)
int heap_scancache_quick_start_modify_with_class_oid (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache, OID * class_oid)
int heap_scancache_quick_start_root_hfid (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache)
int heap_scancache_quick_start_with_class_hfid (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache, const HFID * hfid)
int heap_scancache_quick_start_with_class_oid (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache, OID * class_oid)
int heap_scancache_start (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache, const HFID * hfid, const OID * class_oid, int cache_last_fix_page, MVCC_SNAPSHOT * mvcc_snapshot)
int heap_scancache_start_modify (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache, const HFID * hfid, const OID * class_oid, int op_type, MVCC_SNAPSHOT * mvcc_snapshot)
void heap_scanrange_end (THREAD_ENTRY * thread_p, HEAP_SCANRANGE * scan_range)
SCAN_CODE heap_scanrange_first (THREAD_ENTRY * thread_p, OID * first_oid, RECDES * recdes, HEAP_SCANRANGE * scan_range, int ispeeking)
SCAN_CODE heap_scanrange_last (THREAD_ENTRY * thread_p, OID * last_oid, RECDES * recdes, HEAP_SCANRANGE * scan_range, int ispeeking)
SCAN_CODE heap_scanrange_next (THREAD_ENTRY * thread_p, OID * next_oid, RECDES * recdes, HEAP_SCANRANGE * scan_range, int ispeeking)
SCAN_CODE heap_scanrange_prev (THREAD_ENTRY * thread_p, OID * prev_oid, RECDES * recdes, HEAP_SCANRANGE * scan_range, int ispeeking)
int heap_scanrange_start (THREAD_ENTRY * thread_p, HEAP_SCANRANGE * scan_range, const HFID * hfid, const OID * class_oid, MVCC_SNAPSHOT * mvcc_snapshot)
SCAN_CODE heap_scanrange_to_following (THREAD_ENTRY * thread_p, HEAP_SCANRANGE * scan_range, OID * start_oid)
SCAN_CODE heap_scanrange_to_prior (THREAD_ENTRY * thread_p, HEAP_SCANRANGE * scan_range, OID * last_oid)
int heap_set_autoincrement_value (THREAD_ENTRY * thread_p, HEAP_CACHE_ATTRINFO * attr_info, HEAP_SCANCACHE * scan_cache, int * is_set)
int heap_set_mvcc_rec_header_on_overflow (PAGE_PTR ovf_page, MVCC_REC_HEADER * mvcc_header)
bool heap_should_try_update_stat (const int current_freespace, const int prev_freespace)
void heap_stats_update (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, const HFID * hfid, int prev_freespace)
int heap_update_logical (THREAD_ENTRY * thread_p, HEAP_OPERATION_CONTEXT * context)
int heap_vacuum_all_objects (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * upd_scancache, MVCCID threshold_mvccid)
int heap_vpid_next (THREAD_ENTRY * thread_p, const HFID * hfid, PAGE_PTR pgptr, VPID * next_vpid)
int heap_vpid_prev (THREAD_ENTRY * thread_p, const HFID * hfid, PAGE_PTR pgptr, VPID * prev_vpid)
int heap_vpid_skip_next (THREAD_ENTRY * thread_p, const HFID * hfid, PGBUF_WATCHER * curr_page_watcher, PGBUF_WATCHER * old_page_watcher, int skip_cnt, VPID * vpid, HEAP_SCANCACHE * scan_cache)
int xheap_get_class_num_objects_pages (THREAD_ENTRY * thread_p, const HFID * hfid, int approximation, int * nobjs, int * npages)
int xheap_get_maxslotted_reclength (int & maxslotted_reclength)
int xheap_has_instance (THREAD_ENTRY * thread_p, const HFID * hfid, OID * class_oid, int has_visible_instance)
int xheap_reclaim_addresses (THREAD_ENTRY * thread_p, const HFID * hfid)

Macros

Type Name
define HEAP_DROP_FREE_SPACE ([**int**](broker__monitor_8c.md#function-timeout))([**DB\_PAGESIZE**](storage__common_8h.md#define-db_pagesize) \* 0.3)
define HEAP_HEADER_AND_CHAIN_SLOTID 0 /\* [**Slot**](broker__monitor_8c.md#function-timeout) [**for**](dynamic__load_8c.md#function-for) chain [**and**](broker__monitor_8c.md#function-timeout) header \*/
define HEAP_HFID_HASH_SIZE 1000
define HEAP_ISJUNK_OID (oid) /* multi line expression */
define HEAP_ISVALID_OID (thread_p, oid) /* multi line expression */
define HEAP_IS_UPDATE_INPLACE (update_inplace_style) (([**update\_inplace\_style**](heap__file_8h.md#enum-update_inplace_style)) != UPDATE\_INPLACE\_NONE)
define HEAP_MAX_ALIGN [**INT\_ALIGNMENT**](memory__alloc_8h.md#define-int_alignment) /\* [**maximum**](broker__monitor_8c.md#function-timeout) alignment [**for**](dynamic__load_8c.md#function-for) heap record \*/
define HEAP_SCANCACHE_SET_NODE (scan_cache, class_oid_p, hfid_p) /* multi line expression */
define HEAP_SET_RECORD (recdes, record_area_size, record_length, record_type, record_data) /* multi line expression */
define HFID_EQ (hfid_ptr1, hfid_ptr2) /* multi line expression */
define heap_classrepr_free_and_init (class_repr, idxp) /* multi line expression */

Public Types Documentation

typedef FUNCTION_INDEX_INFO

typedef struct function_index_info FUNCTION_INDEX_INFO;

typedef FUNC_PRED_UNPACK_INFO

typedef struct func_pred_unpack_info FUNC_PRED_UNPACK_INFO;

typedef HEAP_BESTSPACE

typedef struct heap_bestspace HEAP_BESTSPACE;

typedef HEAP_GET_CONTEXT

typedef struct heap_get_context HEAP_GET_CONTEXT;

typedef HEAP_HFID_TABLE

typedef struct heap_hfid_table HEAP_HFID_TABLE;

typedef HEAP_HFID_TABLE_ENTRY

typedef struct heap_hfid_table_entry HEAP_HFID_TABLE_ENTRY;

typedef HEAP_IDX_ELEMENTS_INFO

typedef struct heap_idx_elements_info HEAP_IDX_ELEMENTS_INFO;

typedef HEAP_MVCC_DELETE_INFO

typedef struct heap_mvcc_delete_info HEAP_MVCC_DELETE_INFO;

typedef HEAP_OPERATION_CONTEXT

typedef struct heap_operation_context HEAP_OPERATION_CONTEXT;

enum HEAP_OPERATION_TYPE

enum HEAP_OPERATION_TYPE {
    HEAP_OPERATION_NONE = 0,
    HEAP_OPERATION_INSERT,
    HEAP_OPERATION_DELETE,
    HEAP_OPERATION_UPDATE
};

enum HEAP_PAGE_VACUUM_STATUS

enum HEAP_PAGE_VACUUM_STATUS {
    HEAP_PAGE_VACUUM_NONE,
    HEAP_PAGE_VACUUM_ONCE,
    HEAP_PAGE_VACUUM_UNKNOWN
};

typedef HEAP_SCANCACHE

typedef struct heap_scancache HEAP_SCANCACHE;

typedef HEAP_SCANCACHE_NODE

typedef struct heap_scancache_node HEAP_SCANCACHE_NODE;

typedef HEAP_SCANCACHE_NODE_LIST

typedef struct heap_scancache_node_list HEAP_SCANCACHE_NODE_LIST;

typedef HEAP_SCANRANGE

typedef struct heap_scanrange HEAP_SCANRANGE;

typedef SAMPLING_INFO

typedef struct sampling_info SAMPLING_INFO;

enum SNAPSHOT_TYPE

enum SNAPSHOT_TYPE {
    SNAPSHOT_TYPE_NONE,
    SNAPSHOT_TYPE_MVCC,
    SNAPSHOT_TYPE_DIRTY
};

typedef UPDATE_INPLACE_STYLE

typedef enum update_inplace_style UPDATE_INPLACE_STYLE;

enum heap__file_8h_1ab98c672c5aaffb98a9189cd99e58ff23

enum heap__file_8h_1ab98c672c5aaffb98a9189cd99e58ff23 {
    END_SCAN,
    CONTINUE_SCAN
};

enum update_inplace_style

enum update_inplace_style {
    UPDATE_INPLACE_NONE = 0,
    UPDATE_INPLACE_CURRENT_MVCCID = 1,
    UPDATE_INPLACE_OLD_MVCCID = 2
};

Public Attributes Documentation

variable mvcc_header_size_lookup

int mvcc_header_size_lookup[8];

Public Functions Documentation

function heap_alloc_new_page

int heap_alloc_new_page (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID class_oid,
    PGBUF_WATCHER * home_hint_p,
    VPID * new_page_vpid
) 

function heap_assign_address

int heap_assign_address (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * oid,
    int expected_length
) 

function heap_attrinfo_access

DB_VALUE * heap_attrinfo_access (
    ATTR_ID attrid,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_check_unique_index

bool heap_attrinfo_check_unique_index (
    THREAD_ENTRY * thread_p,
    HEAP_CACHE_ATTRINFO * attr_info,
    ATTR_ID * att_id,
    int n_att_id
) 

function heap_attrinfo_clear_dbvalues

int heap_attrinfo_clear_dbvalues (
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_delete_lob

int heap_attrinfo_delete_lob (
    THREAD_ENTRY * thread_p,
    RECDES * recdes,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_dump

void heap_attrinfo_dump (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    HEAP_CACHE_ATTRINFO * attr_info,
    bool dump_schema
) 

function heap_attrinfo_end

void heap_attrinfo_end (
    THREAD_ENTRY * thread_p,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_generate_key

DB_VALUE * heap_attrinfo_generate_key (
    THREAD_ENTRY * thread_p,
    int n_atts,
    int * att_ids,
    int * atts_prefix_length,
    HEAP_CACHE_ATTRINFO * attr_info,
    RECDES * recdes,
    DB_VALUE * dbvalue,
    char * buf,
    FUNCTION_INDEX_INFO * func_index_info,
    TP_DOMAIN * midxkey_domain,
    OID * cur_oid
) 

function heap_attrinfo_read_dbvalues

int heap_attrinfo_read_dbvalues (
    THREAD_ENTRY * thread_p,
    const  OID * inst_oid,
    RECDES * recdes,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_read_dbvalues_without_oid

int heap_attrinfo_read_dbvalues_without_oid (
    THREAD_ENTRY * thread_p,
    RECDES * recdes,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_set

int heap_attrinfo_set (
    const  OID * inst_oid,
    ATTR_ID attrid,
    DB_VALUE * attr_val,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_set_uninitialized_global

int heap_attrinfo_set_uninitialized_global (
    THREAD_ENTRY * thread_p,
    OID * inst_oid,
    RECDES * recdes,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_start

int heap_attrinfo_start (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    int requested_num_attrs,
    const  ATTR_ID * attrid,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_start_with_btid

int heap_attrinfo_start_with_btid (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    BTID * btid,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_attrinfo_start_with_index

int heap_attrinfo_start_with_index (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    RECDES * class_recdes,
    HEAP_CACHE_ATTRINFO * attr_info,
    HEAP_IDX_ELEMENTS_INFO * idx_info,
    bool is_check_foreign
) 

function heap_attrinfo_transform_to_disk

SCAN_CODE heap_attrinfo_transform_to_disk (
    THREAD_ENTRY * thread_p,
    HEAP_CACHE_ATTRINFO * attr_info,
    RECDES * old_recdes,
    record_descriptor * new_recdes
) 

function heap_attrinfo_transform_to_disk_except_lob

SCAN_CODE heap_attrinfo_transform_to_disk_except_lob (
    THREAD_ENTRY * thread_p,
    HEAP_CACHE_ATTRINFO * attr_info,
    RECDES * old_recdes,
    record_descriptor * new_recdes
) 

function heap_attrvalue_get_index

DB_VALUE * heap_attrvalue_get_index (
    int value_index,
    ATTR_ID * attrid,
    int * n_btids,
    BTID ** btids,
    HEAP_CACHE_ATTRINFO * idx_attrinfo
) 

function heap_attrvalue_get_key

DB_VALUE * heap_attrvalue_get_key (
    THREAD_ENTRY * thread_p,
    int btid_index,
    HEAP_CACHE_ATTRINFO * idx_attrinfo,
    RECDES * recdes,
    BTID * btid,
    DB_VALUE * db_value,
    char * buf,
    FUNC_PRED_UNPACK_INFO * func_indx_preds,
    TP_DOMAIN ** key_domain,
    OID * rec_oid,
    bool is_check_foreign
) 

function heap_attrvalue_locate

HEAP_ATTRVALUE * heap_attrvalue_locate (
    ATTR_ID attrid,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_cache_class_info

int heap_cache_class_info (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    HFID * hfid,
    FILE_TYPE ftype,
    const  char * classname_in
) 

function heap_capacity_next_scan

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

function heap_check_all_heaps

DISK_ISVALID heap_check_all_heaps (
    THREAD_ENTRY * thread_p
) 

function heap_check_all_pages

DISK_ISVALID heap_check_all_pages (
    THREAD_ENTRY * thread_p,
    HFID * hfid
) 

function heap_check_heap_file

DISK_ISVALID heap_check_heap_file (
    THREAD_ENTRY * thread_p,
    HFID * hfid
) 

function heap_chnguess_clear

void heap_chnguess_clear (
    THREAD_ENTRY * thread_p,
    int tran_index
) 

function heap_chnguess_dump

void heap_chnguess_dump (
    FILE * fp
) 

function heap_chnguess_get

int heap_chnguess_get (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    int tran_index
) 

function heap_chnguess_put

int heap_chnguess_put (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    int tran_index,
    int chn
) 

function heap_classrepr_decache

int heap_classrepr_decache (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid
) 

function heap_classrepr_dump_all

void heap_classrepr_dump_all (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    OID * class_oid
) 

function heap_classrepr_find_index_id

int heap_classrepr_find_index_id (
    OR_CLASSREP * classrepr,
    const  BTID * btid
) 

function heap_classrepr_free

int heap_classrepr_free (
    OR_CLASSREP * classrep,
    int * idx_incache
) 

function heap_classrepr_get

OR_CLASSREP * heap_classrepr_get (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    RECDES * class_recdes,
    REPR_ID reprid,
    int * idx_incache
) 

function heap_classrepr_restart_cache

int heap_classrepr_restart_cache (
    void
) 

function heap_clean_get_context

void heap_clean_get_context (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context
) 

function heap_clear_partition_info

void heap_clear_partition_info (
    THREAD_ENTRY * thread_p,
    OR_PARTITION * parts,
    int parts_count
) 

function heap_cmp

int heap_cmp (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    RECDES * recdes
) 

function heap_compact_pages

int heap_compact_pages (
    THREAD_ENTRY * thread_p,
    OID * class_oid
) 

function heap_create_delete_context

void heap_create_delete_context (
    HEAP_OPERATION_CONTEXT * context,
    HFID * hfid_p,
    OID * oid_p,
    OID * class_oid_p,
    HEAP_SCANCACHE * scancache_p
) 

function heap_create_insert_context

void heap_create_insert_context (
    HEAP_OPERATION_CONTEXT * context,
    HFID * hfid_p,
    OID * class_oid_p,
    RECDES * recdes_p,
    HEAP_SCANCACHE * scancache_p
) 

function heap_create_update_context

void heap_create_update_context (
    HEAP_OPERATION_CONTEXT * context,
    HFID * hfid_p,
    OID * oid_p,
    OID * class_oid_p,
    RECDES * recdes_p,
    HEAP_SCANCACHE * scancache_p,
    UPDATE_INPLACE_STYLE in_place
) 

function heap_delete_hfid_from_cache

int heap_delete_hfid_from_cache (
    THREAD_ENTRY * thread_p,
    OID * class_oid
) 

function heap_delete_logical

int heap_delete_logical (
    THREAD_ENTRY * thread_p,
    HEAP_OPERATION_CONTEXT * context
) 

function heap_does_exist

bool heap_does_exist (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    const  OID * oid
) 

function heap_dump

void heap_dump (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    HFID * hfid,
    bool dump_records
) 

function heap_dump_capacity

int heap_dump_capacity (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    const  HFID * hfid
) 

function heap_dump_heap_file

int heap_dump_heap_file (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    bool dump_records,
    const  char * class_name
) 

function heap_estimate

int heap_estimate (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    int * npages,
    int * nobjs,
    int * avg_length
) 

function heap_estimate_num_objects

int heap_estimate_num_objects (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid
) 

function heap_finalize_hfid_table

void heap_finalize_hfid_table (
    void
) 

function heap_first

SCAN_CODE heap_first (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking
) 

function heap_flush

void heap_flush (
    THREAD_ENTRY * thread_p,
    const  OID * oid
) 

function heap_free_func_pred_unpack_info

void heap_free_func_pred_unpack_info (
    THREAD_ENTRY * thread_p,
    int n_indexes,
    FUNC_PRED_UNPACK_INFO * func_indx_preds,
    int * attr_info_started
) 

function heap_get_best_space_num_stats_entries

int heap_get_best_space_num_stats_entries (
    void
) 

function heap_get_btid_from_index_name

int heap_get_btid_from_index_name (
    THREAD_ENTRY * thread_p,
    const  OID * p_class_oid,
    const  char * index_name,
    BTID * p_found_btid
) 

function heap_get_class_info

int heap_get_class_info (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    HFID * hfid_out,
    FILE_TYPE * ftype_out,
    char ** classname_out
) 

function heap_get_class_name

int heap_get_class_name (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    char ** class_name
) 

function heap_get_class_name_alloc_if_diff

int heap_get_class_name_alloc_if_diff (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    char * guess_classname,
    char ** class_name_out
) 

function heap_get_class_name_with_is_class

char * heap_get_class_name_with_is_class (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    int * isclass
) 

function heap_get_class_oid

SCAN_CODE heap_get_class_oid (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    OID * class_oid
) 

function heap_get_class_oid_from_page

int heap_get_class_oid_from_page (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_p,
    OID * class_oid
) 

function heap_get_class_partitions

int heap_get_class_partitions (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    OR_PARTITION ** parts,
    int * parts_count
) 

function heap_get_class_record

SCAN_CODE heap_get_class_record (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    RECDES * recdes_p,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking
) 

function heap_get_class_repr_id

REPR_ID heap_get_class_repr_id (
    THREAD_ENTRY * thread_p,
    OID * class_oid
) 

function heap_get_class_supers

int heap_get_class_supers (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    OID ** super_oids,
    int * count
) 

function heap_get_class_tde_algorithm

int heap_get_class_tde_algorithm (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    TDE_ALGORITHM * tde_algo
) 

function heap_get_compress_attr_by_btid

int heap_get_compress_attr_by_btid (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    BTID * btid,
    ATTR_ID * last_attrid,
    int * last_asc_desc,
    TP_DOMAIN ** tpdomain
) 

function heap_get_hfid_from_vfid

int heap_get_hfid_from_vfid (
    THREAD_ENTRY * thread_p,
    const  VFID * vfid,
    HFID * hfid
) 

function heap_get_hfid_if_cached

int heap_get_hfid_if_cached (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    HFID * hfid_out,
    FILE_TYPE * ftype_out,
    char ** classname_out,
    bool * success
) 

function heap_get_index_with_name

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

function heap_get_indexinfo_of_btid

int heap_get_indexinfo_of_btid (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    const  BTID * btid,
    BTREE_TYPE * type,
    int * num_attrs,
    ATTR_ID ** attr_ids,
    int ** attrs_prefix_length,
    char ** btnamepp,
    int * func_index_col_id
) 

function heap_get_last_version

SCAN_CODE heap_get_last_version (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context
) 

function heap_get_mvcc_header

SCAN_CODE heap_get_mvcc_header (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context,
    MVCC_REC_HEADER * mvcc_header
) 

function heap_get_mvcc_rec_header_from_overflow

int heap_get_mvcc_rec_header_from_overflow (
    PAGE_PTR ovf_page,
    MVCC_REC_HEADER * mvcc_header,
    RECDES * peek_recdes
) 

function heap_get_num_objects

int heap_get_num_objects (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    int * npages,
    int * nobjs,
    int * avg_length
) 

function heap_get_record_data_when_all_ready

SCAN_CODE heap_get_record_data_when_all_ready (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context
) 

function heap_get_referenced_by

int heap_get_referenced_by (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    const  OID * obj_oid,
    RECDES * obj,
    int * max_oid_cnt,
    OID ** oid_list
) 

function heap_get_visible_version

SCAN_CODE heap_get_visible_version (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    OID * class_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking,
    int old_chn
) 

function heap_get_visible_version_internal

SCAN_CODE heap_get_visible_version_internal (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context,
    bool is_heap_scan
) 

function heap_header_capacity_end_scan

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

function heap_header_capacity_start_scan

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

function heap_header_next_scan

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

function heap_indexinfo_get_attrids

int heap_indexinfo_get_attrids (
    int btid_index,
    HEAP_CACHE_ATTRINFO * attrinfo,
    ATTR_ID * attrids
) 

function heap_indexinfo_get_attrs_prefix_length

int heap_indexinfo_get_attrs_prefix_length (
    int btid_index,
    HEAP_CACHE_ATTRINFO * attrinfo,
    int * attrs_prefix_length,
    int len_attrs_prefix_length
) 

function heap_indexinfo_get_btid

BTID * heap_indexinfo_get_btid (
    int btid_index,
    HEAP_CACHE_ATTRINFO * attrinfo
) 

function heap_indexinfo_get_num_attrs

int heap_indexinfo_get_num_attrs (
    int btid_index,
    HEAP_CACHE_ATTRINFO * attrinfo
) 

function heap_init_func_pred_unpack_info

int heap_init_func_pred_unpack_info (
    THREAD_ENTRY * thread_p,
    HEAP_CACHE_ATTRINFO * attr_info,
    const  OID * class_oid,
    FUNC_PRED_UNPACK_INFO ** func_indx_preds
) 

function heap_init_get_context

void heap_init_get_context (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context,
    const  OID * oid,
    OID * class_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking,
    int old_chn
) 

function heap_initialize_hfid_table

int heap_initialize_hfid_table (
    void
) 

function heap_insert_logical

int heap_insert_logical (
    THREAD_ENTRY * thread_p,
    HEAP_OPERATION_CONTEXT * context,
    PGBUF_WATCHER * home_hint_p
) 

function heap_is_big_length

bool heap_is_big_length (
    int length
) 

function heap_is_object_not_null

bool heap_is_object_not_null (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    const  OID * oid
) 

function heap_is_page_header

bool heap_is_page_header (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page
) 

function heap_last

SCAN_CODE heap_last (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking
) 

function heap_locate_last_attrepr

OR_ATTRIBUTE * heap_locate_last_attrepr (
    ATTR_ID attrid,
    HEAP_CACHE_ATTRINFO * attr_info
) 

function heap_log_postpone_heap_append_pages

void heap_log_postpone_heap_append_pages (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    const  OID * class_oid,
    const std::vector< VPID > & heap_pages_array
) 

function heap_manager_finalize

int heap_manager_finalize (
    void
) 

function heap_manager_initialize

int heap_manager_initialize (
    void
) 

function heap_next

SCAN_CODE heap_next (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * next_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking
) 

function heap_next_1page

SCAN_CODE heap_next_1page (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    const  VPID * vpid,
    OID * class_oid,
    OID * next_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking
) 

function heap_next_record_info

SCAN_CODE heap_next_record_info (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * next_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking,
    DB_VALUE ** cache_recordinfo
) 

function heap_next_sampling

SCAN_CODE heap_next_sampling (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * next_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking,
    sampling_info * sampling
) 

function heap_nonheader_page_capacity

int heap_nonheader_page_capacity () 

function heap_object_upgrade_domain

int heap_object_upgrade_domain (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * upd_scancache,
    HEAP_CACHE_ATTRINFO * attr_info,
    OID * oid,
    const  ATTR_ID att_id
) 

function heap_ovf_delete

const  OID * heap_ovf_delete (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    const  OID * ovf_oid,
    VFID * ovf_vfid_p
) 

function heap_ovf_find_vfid

VFID * heap_ovf_find_vfid (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    VFID * ovf_vfid,
    bool create,
    PGBUF_LATCH_CONDITION latch_cond
) 

function heap_page_get_max_mvccid

MVCCID heap_page_get_max_mvccid (
    THREAD_ENTRY * thread_p,
    PAGE_PTR heap_page
) 

function heap_page_get_vacuum_status

HEAP_PAGE_VACUUM_STATUS heap_page_get_vacuum_status (
    THREAD_ENTRY * thread_p,
    PAGE_PTR heap_page
) 

function heap_page_next

SCAN_CODE heap_page_next (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    const  HFID * hfid,
    VPID * next_vpid,
    DB_VALUE ** cache_pageinfo
) 

function heap_page_next_fix_old

SCAN_CODE heap_page_next_fix_old (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    VPID * curr_vpid,
    HEAP_SCANCACHE * scan_cache
) 

function heap_page_prev

SCAN_CODE heap_page_prev (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    const  HFID * hfid,
    VPID * prev_vpid,
    DB_VALUE ** cache_pageinfo
) 

function heap_page_set_vacuum_status_none

void heap_page_set_vacuum_status_none (
    THREAD_ENTRY * thread_p,
    PAGE_PTR heap_page
) 

function heap_prefetch

int heap_prefetch (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    const  OID * oid,
    LC_COPYAREA_DESC * prefetch
) 

function heap_prepare_get_context

SCAN_CODE heap_prepare_get_context (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context,
    bool is_heap_scan,
    NON_EXISTENT_HANDLING non_ex_handling_type
) 

function heap_prepare_object_page

int heap_prepare_object_page (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    PGBUF_WATCHER * page_watcher_p,
    PGBUF_LATCH_MODE latch_mode
) 

function heap_prev

SCAN_CODE heap_prev (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * prev_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking
) 

function heap_prev_record_info

SCAN_CODE heap_prev_record_info (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    OID * next_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking,
    DB_VALUE ** cache_recordinfo
) 

function heap_remove_page_on_vacuum

bool heap_remove_page_on_vacuum (
    THREAD_ENTRY * thread_p,
    PAGE_PTR * page_ptr,
    HFID * hfid
) 

function heap_rv_dump_append_pages_to_heap

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

function heap_rv_dump_chain

void heap_rv_dump_chain (
    FILE * fp,
    int ignore_length,
    void * data
) 

function heap_rv_dump_reuse_page

void heap_rv_dump_reuse_page (
    FILE * fp,
    int ignore_length,
    void * data
) 

function heap_rv_dump_statistics

void heap_rv_dump_statistics (
    FILE * fp,
    int ignore_length,
    void * data
) 

function heap_rv_lob_remove_dir

int heap_rv_lob_remove_dir (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mark_deleted_on_postpone

int heap_rv_mark_deleted_on_postpone (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mark_deleted_on_undo

int heap_rv_mark_deleted_on_undo (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mvcc_redo_delete_home

int heap_rv_mvcc_redo_delete_home (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mvcc_redo_delete_newhome

int heap_rv_mvcc_redo_delete_newhome (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mvcc_redo_delete_overflow

int heap_rv_mvcc_redo_delete_overflow (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mvcc_redo_insert

int heap_rv_mvcc_redo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mvcc_redo_redistribute

int heap_rv_mvcc_redo_redistribute (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mvcc_undo_delete

int heap_rv_mvcc_undo_delete (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_mvcc_undo_delete_overflow

int heap_rv_mvcc_undo_delete_overflow (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_nop

int heap_rv_nop (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_postpone_append_pages_to_heap

int heap_rv_postpone_append_pages_to_heap (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv
) 

function heap_rv_redo_delete

int heap_rv_redo_delete (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_insert

int heap_rv_redo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_mark_reusable_slot

int heap_rv_redo_mark_reusable_slot (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_newpage

int heap_rv_redo_newpage (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_newpage_reuse_oid

int heap_rv_redo_newpage_reuse_oid (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_reuse_page

int heap_rv_redo_reuse_page (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_reuse_page_reuse_oid

int heap_rv_redo_reuse_page_reuse_oid (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_update

int heap_rv_redo_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_redo_update_and_update_chain

int heap_rv_redo_update_and_update_chain (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_remove_flags_from_offset

INT16 heap_rv_remove_flags_from_offset (
    INT16 offset
) 

function heap_rv_undo_delete

int heap_rv_undo_delete (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_undo_insert

int heap_rv_undo_insert (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_undo_ovf_update

int heap_rv_undo_ovf_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_undo_update

int heap_rv_undo_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_undoredo_pagehdr

int heap_rv_undoredo_pagehdr (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_undoredo_update

int heap_rv_undoredo_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_rv_update_chain_after_mvcc_op

int heap_rv_update_chain_after_mvcc_op (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function heap_scan_cache_allocate_area

int heap_scan_cache_allocate_area (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache_p,
    int size
) 

function heap_scan_get_visible_version

SCAN_CODE heap_scan_get_visible_version (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    OID * class_oid,
    RECDES * recdes,
    RECDES * forward_recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking,
    int old_chn
) 

function heap_scancache_end

int heap_scancache_end (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache
) 

function heap_scancache_end_modify

void heap_scancache_end_modify (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache
) 

function heap_scancache_end_when_scan_will_resume

int heap_scancache_end_when_scan_will_resume (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache
) 

function heap_scancache_quick_start

int heap_scancache_quick_start (
    HEAP_SCANCACHE * scan_cache
) 

function heap_scancache_quick_start_modify

int heap_scancache_quick_start_modify (
    HEAP_SCANCACHE * scan_cache
) 

function heap_scancache_quick_start_modify_with_class_oid

int heap_scancache_quick_start_modify_with_class_oid (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache,
    OID * class_oid
) 

function heap_scancache_quick_start_root_hfid

int heap_scancache_quick_start_root_hfid (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache
) 

function heap_scancache_quick_start_with_class_hfid

int heap_scancache_quick_start_with_class_hfid (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache,
    const  HFID * hfid
) 

function heap_scancache_quick_start_with_class_oid

int heap_scancache_quick_start_with_class_oid (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache,
    OID * class_oid
) 

function heap_scancache_start

int heap_scancache_start (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache,
    const  HFID * hfid,
    const  OID * class_oid,
    int cache_last_fix_page,
    MVCC_SNAPSHOT * mvcc_snapshot
) 

function heap_scancache_start_modify

int heap_scancache_start_modify (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache,
    const  HFID * hfid,
    const  OID * class_oid,
    int op_type,
    MVCC_SNAPSHOT * mvcc_snapshot
) 

function heap_scanrange_end

void heap_scanrange_end (
    THREAD_ENTRY * thread_p,
    HEAP_SCANRANGE * scan_range
) 

function heap_scanrange_first

SCAN_CODE heap_scanrange_first (
    THREAD_ENTRY * thread_p,
    OID * first_oid,
    RECDES * recdes,
    HEAP_SCANRANGE * scan_range,
    int ispeeking
) 

function heap_scanrange_last

SCAN_CODE heap_scanrange_last (
    THREAD_ENTRY * thread_p,
    OID * last_oid,
    RECDES * recdes,
    HEAP_SCANRANGE * scan_range,
    int ispeeking
) 

function heap_scanrange_next

SCAN_CODE heap_scanrange_next (
    THREAD_ENTRY * thread_p,
    OID * next_oid,
    RECDES * recdes,
    HEAP_SCANRANGE * scan_range,
    int ispeeking
) 

function heap_scanrange_prev

SCAN_CODE heap_scanrange_prev (
    THREAD_ENTRY * thread_p,
    OID * prev_oid,
    RECDES * recdes,
    HEAP_SCANRANGE * scan_range,
    int ispeeking
) 

function heap_scanrange_start

int heap_scanrange_start (
    THREAD_ENTRY * thread_p,
    HEAP_SCANRANGE * scan_range,
    const  HFID * hfid,
    const  OID * class_oid,
    MVCC_SNAPSHOT * mvcc_snapshot
) 

function heap_scanrange_to_following

SCAN_CODE heap_scanrange_to_following (
    THREAD_ENTRY * thread_p,
    HEAP_SCANRANGE * scan_range,
    OID * start_oid
) 

function heap_scanrange_to_prior

SCAN_CODE heap_scanrange_to_prior (
    THREAD_ENTRY * thread_p,
    HEAP_SCANRANGE * scan_range,
    OID * last_oid
) 

function heap_set_autoincrement_value

int heap_set_autoincrement_value (
    THREAD_ENTRY * thread_p,
    HEAP_CACHE_ATTRINFO * attr_info,
    HEAP_SCANCACHE * scan_cache,
    int * is_set
) 

function heap_set_mvcc_rec_header_on_overflow

int heap_set_mvcc_rec_header_on_overflow (
    PAGE_PTR ovf_page,
    MVCC_REC_HEADER * mvcc_header
) 

function heap_should_try_update_stat

bool heap_should_try_update_stat (
    const  int current_freespace,
    const  int prev_freespace
) 

function heap_stats_update

void heap_stats_update (
    THREAD_ENTRY * thread_p,
    PAGE_PTR pgptr,
    const  HFID * hfid,
    int prev_freespace
) 

function heap_update_logical

int heap_update_logical (
    THREAD_ENTRY * thread_p,
    HEAP_OPERATION_CONTEXT * context
) 

function heap_vacuum_all_objects

int heap_vacuum_all_objects (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * upd_scancache,
    MVCCID threshold_mvccid
) 

function heap_vpid_next

int heap_vpid_next (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    PAGE_PTR pgptr,
    VPID * next_vpid
) 

function heap_vpid_prev

int heap_vpid_prev (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    PAGE_PTR pgptr,
    VPID * prev_vpid
) 

function heap_vpid_skip_next

int heap_vpid_skip_next (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    PGBUF_WATCHER * curr_page_watcher,
    PGBUF_WATCHER * old_page_watcher,
    int skip_cnt,
    VPID * vpid,
    HEAP_SCANCACHE * scan_cache
) 

function xheap_get_class_num_objects_pages

int xheap_get_class_num_objects_pages (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    int approximation,
    int * nobjs,
    int * npages
) 

function xheap_get_maxslotted_reclength

int xheap_get_maxslotted_reclength (
    int & maxslotted_reclength
) 

function xheap_has_instance

int xheap_has_instance (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * class_oid,
    int has_visible_instance
) 

function xheap_reclaim_addresses

int xheap_reclaim_addresses (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid
) 

Macro Definition Documentation

define HEAP_DROP_FREE_SPACE

#define HEAP_DROP_FREE_SPACE `( int )( DB_PAGESIZE * 0.3)`

define HEAP_HEADER_AND_CHAIN_SLOTID

#define HEAP_HEADER_AND_CHAIN_SLOTID `0 /* Slot  for chain and header */`

define HEAP_HFID_HASH_SIZE

#define HEAP_HFID_HASH_SIZE `1000`

define HEAP_ISJUNK_OID

#define HEAP_ISJUNK_OID (
    oid
) `/* multi line expression */`

define HEAP_ISVALID_OID

#define HEAP_ISVALID_OID (
    thread_p,
    oid
) `/* multi line expression */`

define HEAP_IS_UPDATE_INPLACE

#define HEAP_IS_UPDATE_INPLACE (
    update_inplace_style
) `(( update_inplace_style ) != UPDATE_INPLACE_NONE )`

define HEAP_MAX_ALIGN

#define HEAP_MAX_ALIGN `INT_ALIGNMENT /* maximum alignment for heap record */`

define HEAP_SCANCACHE_SET_NODE

#define HEAP_SCANCACHE_SET_NODE (
    scan_cache,
    class_oid_p,
    hfid_p
) `/* multi line expression */`

define HEAP_SET_RECORD

#define HEAP_SET_RECORD (
    recdes,
    record_area_size,
    record_length,
    record_type,
    record_data
) `/* multi line expression */`

define HFID_EQ

#define HFID_EQ (
    hfid_ptr1,
    hfid_ptr2
) `/* multi line expression */`

define heap_classrepr_free_and_init

#define heap_classrepr_free_and_init (
    class_repr,
    idxp
) `/* multi line expression */`


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