29 #if !defined (SERVER_MODE) && !defined (SA_MODE) 30 #error Belongs to server module 48 #define HFID_EQ(hfid_ptr1, hfid_ptr2) \ 49 ((hfid_ptr1) == (hfid_ptr2) \ 50 || ((hfid_ptr1)->hpgid == (hfid_ptr2)->hpgid && VFID_EQ (&((hfid_ptr1)->vfid), &((hfid_ptr2)->vfid)))) 52 #define HEAP_SET_RECORD(recdes, record_area_size, record_length, record_type, record_data) \ 55 (recdes)->area_size = (record_area_size); \ 56 (recdes)->length = (record_length); \ 57 (recdes)->type = (record_type); \ 58 (recdes)->data = (char *) (record_data); \ 62 #define HEAP_HEADER_AND_CHAIN_SLOTID 0 64 #define HEAP_MAX_ALIGN INT_ALIGNMENT 66 #define HEAP_ISJUNK_OID(oid) \ 67 ((oid)->slotid == HEAP_HEADER_AND_CHAIN_SLOTID \ 68 || (oid)->slotid < 0 || (oid)->volid < 0 || (oid)->pageid < 0) 71 #define HEAP_ISVALID_OID(thread_p, oid) \ 72 (HEAP_ISJUNK_OID (oid) \ 77 #define HEAP_ISVALID_OID(thread_p, oid) \ 78 (HEAP_ISJUNK_OID (oid) \ 80 : disk_is_page_sector_reserved ((thread_p), (oid)->volid, (oid)->pageid)) 83 #define HEAP_SCANCACHE_SET_NODE(scan_cache, class_oid_p, hfid_p) \ 86 COPY_OID (&(scan_cache)->node.class_oid, class_oid_p); \ 87 HFID_COPY (&(scan_cache)->node.hfid, hfid_p); \ 91 #define heap_classrepr_free_and_init(class_repr, idxp) \ 94 if ((class_repr) != NULL) \ 96 heap_classrepr_free ((class_repr), (idxp)); \ 97 (class_repr) = NULL; \ 161 void reserve_area (
size_t size = 0);
162 void assign_recdes_to_area (
RECDES &
recdes,
size_t size = 0);
163 bool is_recdes_assigned_to_area (
const RECDES &
recdes)
const;
194 #define HEAP_HFID_HASH_SIZE 1000 234 typedef struct heap_spacecache HEAP_SPACECACHE;
235 struct heap_spacecache
271 #define HEAP_IS_UPDATE_INPLACE(update_inplace_style) \ 272 ((update_inplace_style) != UPDATE_INPLACE_NONE) 390 struct mvcc_reev_data;
394 #ifdef DEBUG_CLASSREPR_CACHE 395 extern int heap_classrepr_dump_anyfixed (
void);
401 int expected_length);
408 const OID * class_oid,
int cache_last_fix_page,
int is_indexscan,
432 #if defined (ENABLE_UNUSED_FUNCTION) 442 #if defined (ENABLE_UNUSED_FUNCTION) 460 char **class_name_out);
466 #if defined (ENABLE_UNUSED_FUNCTION) 467 extern char *heap_get_class_name_with_is_class (
THREAD_ENTRY * thread_p,
const OID * oid,
int *isclass);
495 #if defined (ENABLE_UNUSED_FUNCTION) 496 extern DB_VALUE *heap_attrvalue_get_index (
int value_index,
ATTR_ID * attrid,
int *n_btids,
BTID ** btids,
509 int *attrs_prefix_length,
int len_attrs_prefix_length);
513 int **attrs_prefix_length,
char **btnamepp,
int *func_index_col_id);
515 int *max_oid_cnt,
OID ** oid_list);
544 #if defined (CUBRID_DEBUG) 545 extern void heap_chnguess_dump (FILE * fp);
551 REPR_ID reprid,
int *idx_incache);
585 FILE_TYPE * ftype_out,
char **classname_out);
587 FILE_TYPE ftype,
const char *classname_in);
593 BTID * p_found_btid);
622 ATTR_ID * att_id,
int n_att_id);
684 VPID * new_page_vpid);
692 const std::vector<VPID> &heap_pages_array);
int heap_attrinfo_clear_dbvalues(HEAP_CACHE_ATTRINFO *attr_info)
enum mvcc_satisfies_delete_result MVCC_SATISFIES_DELETE_RESULT
int heap_delete_hfid_from_cache(THREAD_ENTRY *thread_p, OID *class_oid)
int heap_attrinfo_set_uninitialized_global(THREAD_ENTRY *thread_p, OID *inst_oid, RECDES *recdes, HEAP_CACHE_ATTRINFO *attr_info)
int heap_indexinfo_get_attrs_prefix_length(int btid_index, HEAP_CACHE_ATTRINFO *attrinfo, int *attrs_prefix_length, int len_attrs_prefix_length)
SCAN_CODE heap_get_record_data_when_all_ready(THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context)
void heap_classrepr_dump_all(THREAD_ENTRY *thread_p, FILE *fp, OID *class_oid)
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)
void heap_attrinfo_dump(THREAD_ENTRY *thread_p, FILE *fp, HEAP_CACHE_ATTRINFO *attr_info, bool dump_schema)
DB_VALUE * heap_attrinfo_access(ATTR_ID attrid, HEAP_CACHE_ATTRINFO *attr_info)
HEAP_SCANCACHE * scan_cache_p
int heap_manager_finalize(void)
void heap_create_insert_context(HEAP_OPERATION_CONTEXT *context, HFID *hfid_p, OID *class_oid_p, RECDES *recdes_p, HEAP_SCANCACHE *scancache_p)
int heap_classrepr_find_index_id(OR_CLASSREP *classrepr, const BTID *btid)
bool heap_does_exist(THREAD_ENTRY *thread_p, OID *class_oid, const OID *oid)
DISK_ISVALID heap_check_all_heaps(THREAD_ENTRY *thread_p)
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)
bool heap_should_try_update_stat(const int current_freespace, const int prev_freespace)
bool is_redistribute_insert_with_delid
int heap_rv_nop(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_rv_redo_update_and_update_chain(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
HEAP_HFID_TABLE_ENTRY * next
OR_CLASSREP * heap_classrepr_get(THREAD_ENTRY *thread_p, const OID *class_oid, RECDES *class_recdes, REPR_ID reprid, int *idx_incache)
SCAN_CODE heap_attrinfo_transform_to_disk(THREAD_ENTRY *thread_p, HEAP_CACHE_ATTRINFO *attr_info, RECDES *old_recdes, record_descriptor *new_recdes)
PGBUF_WATCHER overflow_page_watcher
int heap_get_class_supers(THREAD_ENTRY *thread_p, const OID *class_oid, OID **super_oids, int *count)
int heap_get_class_name_alloc_if_diff(THREAD_ENTRY *thread_p, const OID *class_oid, char *guess_classname, char **class_name_out)
OR_ATTRIBUTE * heap_locate_last_attrepr(ATTR_ID attrid, HEAP_CACHE_ATTRINFO *attr_info)
int heap_rv_mark_deleted_on_postpone(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
SCAN_CODE heap_get_mvcc_header(THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context, MVCC_REC_HEADER *mvcc_header)
int heap_chnguess_put(THREAD_ENTRY *thread_p, const OID *oid, int tran_index, int chn)
int heap_scanrange_start(THREAD_ENTRY *thread_p, HEAP_SCANRANGE *scan_range, const HFID *hfid, const OID *class_oid, MVCC_SNAPSHOT *mvcc_snapshot)
int heap_rv_update_chain_after_mvcc_op(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_get_class_partitions(THREAD_ENTRY *thread_p, const OID *class_oid, OR_PARTITION **parts, int *parts_count)
SCAN_CODE heap_scanrange_next(THREAD_ENTRY *thread_p, OID *next_oid, RECDES *recdes, HEAP_SCANRANGE *scan_range, int ispeeking)
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)
multi_index_unique_stats * m_index_stats
int heap_attrinfo_read_dbvalues_without_oid(THREAD_ENTRY *thread_p, RECDES *recdes, HEAP_CACHE_ATTRINFO *attr_info)
int heap_vpid_next(THREAD_ENTRY *thread_p, const HFID *hfid, PAGE_PTR pgptr, VPID *next_vpid)
PGBUF_WATCHER home_page_watcher
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_prefetch(THREAD_ENTRY *thread_p, OID *class_oid, const OID *oid, LC_COPYAREA_DESC *prefetch)
void heap_rv_dump_statistics(FILE *fp, int ignore_length, void *data)
int heap_get_hfid_from_vfid(THREAD_ENTRY *thread_p, const VFID *vfid, HFID *hfid)
int heap_header_capacity_start_scan(THREAD_ENTRY *thread_p, int show_type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
PGBUF_WATCHER * overflow_page_watcher_p
SCAN_CODE heap_get_visible_version_internal(THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context, bool is_heap_scan)
SCAN_CODE heap_header_next_scan(THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ptr)
HEAP_ATTRVALUE * heap_attrvalue_locate(ATTR_ID attrid, HEAP_CACHE_ATTRINFO *attr_info)
int heap_rv_redo_update(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_estimate_num_objects(THREAD_ENTRY *thread_p, const HFID *hfid)
int heap_attrinfo_set(const OID *inst_oid, ATTR_ID attrid, DB_VALUE *attr_val, HEAP_CACHE_ATTRINFO *attr_info)
int heap_chnguess_get(THREAD_ENTRY *thread_p, const OID *oid, int tran_index)
int heap_rv_mvcc_redo_delete_overflow(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
REPR_ID heap_get_class_repr_id(THREAD_ENTRY *thread_p, OID *class_oid)
LF_FREELIST hfid_hash_freelist
void heap_clear_partition_info(THREAD_ENTRY *thread_p, OR_PARTITION *parts, int parts_count)
int heap_get_class_name(THREAD_ENTRY *thread_p, const OID *class_oid, char **class_name)
int heap_attrinfo_delete_lob(THREAD_ENTRY *thread_p, RECDES *recdes, HEAP_CACHE_ATTRINFO *attr_info)
int heap_scancache_end_when_scan_will_resume(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
void heap_rv_dump_reuse_page(FILE *fp, int ignore_length, void *data)
HEAP_SCANCACHE_NODE_LIST * partition_list
PGBUF_WATCHER fwd_page_watcher
void heap_chnguess_clear(THREAD_ENTRY *thread_p, int tran_index)
int heap_assign_address(THREAD_ENTRY *thread_p, const HFID *hfid, OID *class_oid, OID *oid, int expected_length)
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)
void heap_clean_get_context(THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context)
int heap_rv_redo_reuse_page_reuse_oid(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
DISK_ISVALID heap_check_heap_file(THREAD_ENTRY *thread_p, HFID *hfid)
int heap_header_capacity_end_scan(THREAD_ENTRY *thread_p, void **ptr)
bool heap_attrinfo_check_unique_index(THREAD_ENTRY *thread_p, HEAP_CACHE_ATTRINFO *attr_info, ATTR_ID *att_id, int n_att_id)
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)
PGBUF_WATCHER home_page_watcher
int heap_scancache_quick_start_root_hfid(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
void heap_attrinfo_end(THREAD_ENTRY *thread_p, HEAP_CACHE_ATTRINFO *attr_info)
int heap_rv_redo_insert(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_scan_cache_allocate_area(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache_p, int size)
VFID * heap_ovf_find_vfid(THREAD_ENTRY *thread_p, const HFID *hfid, VFID *ovf_vfid, bool create, PGBUF_LATCH_CONDITION latch_cond)
PGBUF_WATCHER * forward_page_watcher_p
int heap_classrepr_restart_cache(void)
int heap_scancache_quick_start_with_class_oid(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, OID *class_oid)
void heap_scanrange_end(THREAD_ENTRY *thread_p, HEAP_SCANRANGE *scan_range)
int heap_get_class_oid_from_page(THREAD_ENTRY *thread_p, PAGE_PTR page_p, OID *class_oid)
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_vacuum_all_objects(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *upd_scancache, MVCCID threshold_mvccid)
int heap_rv_postpone_append_pages_to_heap(THREAD_ENTRY *thread_p, LOG_RCV *recv)
int heap_scancache_end(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
void heap_stats_update(THREAD_ENTRY *thread_p, PAGE_PTR pgptr, const HFID *hfid, int prev_freespace)
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)
int heap_rv_redo_mark_reusable_slot(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void heap_rv_dump_append_pages_to_heap(FILE *fp, int length, void *data)
void heap_create_delete_context(HEAP_OPERATION_CONTEXT *context, HFID *hfid_p, OID *oid_p, OID *class_oid_p, HEAP_SCANCACHE *scancache_p)
const OID * heap_ovf_delete(THREAD_ENTRY *thread_p, const HFID *hfid, const OID *ovf_oid, VFID *ovf_vfid_p)
SCAN_CODE heap_get_class_oid(THREAD_ENTRY *thread_p, const OID *oid, OID *class_oid)
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)
int heap_scancache_quick_start_modify(HEAP_SCANCACHE *scan_cache)
int heap_estimate(THREAD_ENTRY *thread_p, const HFID *hfid, int *npages, int *nobjs, int *avg_length)
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)
MVCCID heap_page_get_max_mvccid(THREAD_ENTRY *thread_p, PAGE_PTR heap_page)
xasl_unpack_info * unpack_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_rv_redo_reuse_page(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
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_classrepr_free(OR_CLASSREP *classrep, int *idx_incache)
int xheap_get_class_num_objects_pages(THREAD_ENTRY *thread_p, const HFID *hfid, int approximation, int *nobjs, int *npages)
int heap_manager_initialize(void)
INT16 heap_rv_remove_flags_from_offset(INT16 offset)
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_rv_mvcc_redo_delete_newhome(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
bool heap_is_object_not_null(THREAD_ENTRY *thread_p, OID *class_oid, const OID *oid)
int heap_prepare_object_page(THREAD_ENTRY *thread_p, const OID *oid, PGBUF_WATCHER *page_watcher_p, PGBUF_LATCH_MODE latch_mode)
int xheap_has_instance(THREAD_ENTRY *thread_p, const HFID *hfid, OID *class_oid, int has_visible_instance)
int heap_update_logical(THREAD_ENTRY *thread_p, HEAP_OPERATION_CONTEXT *context)
HEAP_HFID_TABLE_ENTRY * stack
HEAP_SCANCACHE scan_cache
int heap_get_best_space_num_stats_entries(void)
SCAN_CODE heap_capacity_next_scan(THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ptr)
bool heap_remove_page_on_vacuum(THREAD_ENTRY *thread_p, PAGE_PTR *page_ptr, HFID *hfid)
PGBUF_WATCHER page_watcher
int heap_get_class_tde_algorithm(THREAD_ENTRY *thread_p, const OID *class_oid, TDE_ALGORITHM *tde_algo)
int heap_scancache_quick_start_with_class_hfid(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, const HFID *hfid)
DISK_ISVALID heap_check_all_pages(THREAD_ENTRY *thread_p, HFID *hfid)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
int heap_get_num_objects(THREAD_ENTRY *thread_p, const HFID *hfid, int *npages, int *nobjs, int *avg_length)
int heap_scancache_start(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, const HFID *hfid, const OID *class_oid, int cache_last_fix_page, int is_indexscan, MVCC_SNAPSHOT *mvcc_snapshot)
SCAN_CODE heap_page_prev(THREAD_ENTRY *thread_p, const OID *class_oid, const HFID *hfid, VPID *prev_vpid, DB_VALUE **cache_pageinfo)
SCAN_CODE heap_get_last_version(THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context)
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 mvcc_header_size_lookup[8]
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)
bool heap_is_big_length(int length)
SCAN_CODE heap_scanrange_to_prior(THREAD_ENTRY *thread_p, HEAP_SCANRANGE *scan_range, OID *last_oid)
MVCC_SATISFIES_DELETE_RESULT satisfies_delete_result
PGBUF_WATCHER forward_page_watcher
void heap_scancache_end_modify(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
struct func_pred * func_pred
void heap_finalize_hfid_table(void)
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)
std::atomic< char * > classname
SCAN_CODE heap_get_class_record(THREAD_ENTRY *thread_p, const OID *class_oid, RECDES *recdes_p, HEAP_SCANCACHE *scan_cache, int ispeeking)
int heap_indexinfo_get_num_attrs(int btid_index, HEAP_CACHE_ATTRINFO *attrinfo)
int heap_vpid_prev(THREAD_ENTRY *thread_p, const HFID *hfid, PAGE_PTR pgptr, VPID *prev_vpid)
int heap_set_mvcc_rec_header_on_overflow(PAGE_PTR ovf_page, MVCC_REC_HEADER *mvcc_header)
BTID * heap_indexinfo_get_btid(int btid_index, HEAP_CACHE_ATTRINFO *attrinfo)
MVCC_SNAPSHOT * mvcc_snapshot
PGBUF_WATCHER * home_page_watcher_p
int xheap_reclaim_addresses(THREAD_ENTRY *thread_p, const HFID *hfid)
int heap_scancache_quick_start_modify_with_class_oid(THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, OID *class_oid)
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)
int heap_rv_mvcc_undo_delete_overflow(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
PGBUF_WATCHER * header_page_watcher_p
cubmem::single_block_allocator * m_area
PGBUF_WATCHER header_page_watcher
void heap_page_set_vacuum_status_none(THREAD_ENTRY *thread_p, PAGE_PTR heap_page)
bool heap_is_page_header(THREAD_ENTRY *thread_p, PAGE_PTR page)
int heap_set_autoincrement_value(THREAD_ENTRY *thread_p, HEAP_CACHE_ATTRINFO *attr_info, HEAP_SCANCACHE *scan_cache, int *is_set)
int heap_classrepr_decache(THREAD_ENTRY *thread_p, const OID *class_oid)
int heap_rv_undoredo_pagehdr(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
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_last(THREAD_ENTRY *thread_p, const HFID *hfid, OID *class_oid, OID *oid, RECDES *recdes, HEAP_SCANCACHE *scan_cache, int ispeeking)
int heap_cache_class_info(THREAD_ENTRY *thread_p, const OID *class_oid, HFID *hfid, FILE_TYPE ftype, const char *classname_in)
int heap_rv_mvcc_redo_redistribute(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_rv_undoredo_update(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_insert_logical(THREAD_ENTRY *thread_p, HEAP_OPERATION_CONTEXT *context, PGBUF_WATCHER *home_hint_p)
int heap_rv_mvcc_redo_delete_home(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_compact_pages(THREAD_ENTRY *thread_p, OID *class_oid)
HEAP_PAGE_VACUUM_STATUS heap_page_get_vacuum_status(THREAD_ENTRY *thread_p, PAGE_PTR heap_page)
HEAP_SCANCACHE_NODE_LIST * next
SCAN_CODE heap_first(THREAD_ENTRY *thread_p, const HFID *hfid, OID *class_oid, OID *oid, RECDES *recdes, HEAP_SCANCACHE *scan_cache, int ispeeking)
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_indexinfo_get_attrids(int btid_index, HEAP_CACHE_ATTRINFO *attrinfo, ATTR_ID *attrids)
int heap_rv_undo_delete(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
HEAP_SCANCACHE * scan_cache
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_rv_mvcc_undo_delete(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_rv_redo_delete(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_scancache_quick_start(HEAP_SCANCACHE *scan_cache)
void heap_dump(THREAD_ENTRY *thread_p, FILE *fp, HFID *hfid, bool dump_records)
SCAN_CODE heap_scanrange_to_following(THREAD_ENTRY *thread_p, HEAP_SCANRANGE *scan_range, OID *start_oid)
int heap_initialize_hfid_table(void)
enum update_inplace_style UPDATE_INPLACE_STYLE
int heap_rv_mvcc_redo_insert(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_dump_capacity(THREAD_ENTRY *thread_p, FILE *fp, const HFID *hfid)
PGBUF_LATCH_MODE latch_mode
int heap_rv_undo_insert(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void heap_flush(THREAD_ENTRY *thread_p, const OID *oid)
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)
SCAN_CODE heap_scan_get_visible_version(THREAD_ENTRY *thread_p, const OID *oid, OID *class_oid, RECDES *recdes, HEAP_SCANCACHE *scan_cache, int ispeeking, int old_chn)
void heap_rv_dump_chain(FILE *fp, int ignore_length, void *data)
int heap_rv_undo_ovf_update(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
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)
int heap_nonheader_page_capacity()
int heap_get_mvcc_rec_header_from_overflow(PAGE_PTR ovf_page, MVCC_REC_HEADER *mvcc_header, RECDES *peek_recdes)
PERF_UTIME_TRACKER * time_track
UPDATE_INPLACE_STYLE update_in_place
int heap_get_index_with_name(THREAD_ENTRY *thread_p, OID *class_oid, const char *index_name, BTID *btid)
int heap_rv_undo_update(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_delete_logical(THREAD_ENTRY *thread_p, HEAP_OPERATION_CONTEXT *context)
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)
int heap_rv_redo_newpage_reuse_oid(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int heap_rv_mark_deleted_on_undo(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
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)
int heap_attrinfo_read_dbvalues(THREAD_ENTRY *thread_p, const OID *inst_oid, RECDES *recdes, HEAP_SCANCACHE *scan_cache, HEAP_CACHE_ATTRINFO *attr_info)
LF_ENTRY_DESCRIPTOR hfid_hash_descriptor
int heap_rv_redo_newpage(THREAD_ENTRY *thread_p, LOG_RCV *rcv)