CUBRID Engine  latest
heap_file.h File Reference
#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"
Include dependency graph for heap_file.h:

Go to the source code of this file.

Classes

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

Macros

#define HFID_EQ(hfid_ptr1, hfid_ptr2)
 
#define HEAP_SET_RECORD(recdes, record_area_size, record_length, record_type, record_data)
 
#define HEAP_HEADER_AND_CHAIN_SLOTID   0 /* Slot for chain and header */
 
#define HEAP_MAX_ALIGN   INT_ALIGNMENT /* maximum alignment for heap record */
 
#define HEAP_ISJUNK_OID(oid)
 
#define HEAP_ISVALID_OID(thread_p, oid)
 
#define HEAP_SCANCACHE_SET_NODE(scan_cache, class_oid_p, hfid_p)
 
#define heap_classrepr_free_and_init(class_repr, idxp)
 
#define HEAP_HFID_HASH_SIZE   1000
 
#define HEAP_IS_UPDATE_INPLACE(update_inplace_style)   ((update_inplace_style) != UPDATE_INPLACE_NONE)
 

Typedefs

typedef struct heap_mvcc_delete_info HEAP_MVCC_DELETE_INFO
 
typedef struct heap_bestspace HEAP_BESTSPACE
 
typedef struct heap_scancache_node HEAP_SCANCACHE_NODE
 
typedef struct heap_scancache_node_list HEAP_SCANCACHE_NODE_LIST
 
typedef struct heap_scancache HEAP_SCANCACHE
 
typedef struct heap_scanrange HEAP_SCANRANGE
 
typedef struct heap_hfid_table HEAP_HFID_TABLE
 
typedef struct heap_hfid_table_entry HEAP_HFID_TABLE_ENTRY
 
typedef struct function_index_info FUNCTION_INDEX_INFO
 
typedef struct func_pred_unpack_info FUNC_PRED_UNPACK_INFO
 
typedef struct heap_idx_elements_info HEAP_IDX_ELEMENTS_INFO
 
typedef enum update_inplace_style UPDATE_INPLACE_STYLE
 
typedef struct heap_operation_context HEAP_OPERATION_CONTEXT
 
typedef struct heap_get_context HEAP_GET_CONTEXT
 

Enumerations

enum  HEAP_OPERATION_TYPE { HEAP_OPERATION_NONE = 0, HEAP_OPERATION_INSERT, HEAP_OPERATION_DELETE, HEAP_OPERATION_UPDATE }
 
enum  update_inplace_style { UPDATE_INPLACE_NONE = 0, UPDATE_INPLACE_CURRENT_MVCCID = 1, UPDATE_INPLACE_OLD_MVCCID = 2 }
 
enum  { END_SCAN, CONTINUE_SCAN }
 
enum  SNAPSHOT_TYPE { SNAPSHOT_TYPE_NONE, SNAPSHOT_TYPE_MVCC, SNAPSHOT_TYPE_DIRTY }
 
enum  HEAP_PAGE_VACUUM_STATUS { HEAP_PAGE_VACUUM_NONE, HEAP_PAGE_VACUUM_ONCE, HEAP_PAGE_VACUUM_UNKNOWN }
 

Functions

int heap_classrepr_decache (THREAD_ENTRY *thread_p, const OID *class_oid)
 
int heap_manager_initialize (void)
 
int heap_classrepr_restart_cache (void)
 
int heap_manager_finalize (void)
 
int heap_assign_address (THREAD_ENTRY *thread_p, const HFID *hfid, OID *class_oid, OID *oid, int expected_length)
 
const OIDheap_ovf_delete (THREAD_ENTRY *thread_p, const HFID *hfid, const OID *ovf_oid, VFID *ovf_vfid_p)
 
VFIDheap_ovf_find_vfid (THREAD_ENTRY *thread_p, const HFID *hfid, VFID *ovf_vfid, bool create, PGBUF_LATCH_CONDITION latch_cond)
 
void heap_flush (THREAD_ENTRY *thread_p, const OID *oid)
 
int xheap_reclaim_addresses (THREAD_ENTRY *thread_p, const HFID *hfid)
 
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)
 
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_scancache_quick_start (HEAP_SCANCACHE *scan_cache)
 
int heap_scancache_quick_start_modify (HEAP_SCANCACHE *scan_cache)
 
int heap_scancache_end (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
 
int heap_scancache_end_when_scan_will_resume (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
 
void heap_scancache_end_modify (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
 
SCAN_CODE heap_get_class_oid (THREAD_ENTRY *thread_p, const OID *oid, OID *class_oid)
 
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_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_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)
 
SCAN_CODE heap_first (THREAD_ENTRY *thread_p, const HFID *hfid, OID *class_oid, OID *oid, RECDES *recdes, HEAP_SCANCACHE *scan_cache, int ispeeking)
 
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_scanrange_start (THREAD_ENTRY *thread_p, HEAP_SCANRANGE *scan_range, const HFID *hfid, const OID *class_oid, MVCC_SNAPSHOT *mvcc_snapshot)
 
void heap_scanrange_end (THREAD_ENTRY *thread_p, HEAP_SCANRANGE *scan_range)
 
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)
 
SCAN_CODE heap_scanrange_next (THREAD_ENTRY *thread_p, OID *next_oid, RECDES *recdes, HEAP_SCANRANGE *scan_range, int ispeeking)
 
bool heap_does_exist (THREAD_ENTRY *thread_p, OID *class_oid, const OID *oid)
 
bool heap_is_object_not_null (THREAD_ENTRY *thread_p, OID *class_oid, const OID *oid)
 
int heap_get_num_objects (THREAD_ENTRY *thread_p, const HFID *hfid, int *npages, int *nobjs, int *avg_length)
 
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)
 
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)
 
int heap_get_class_tde_algorithm (THREAD_ENTRY *thread_p, const OID *class_oid, TDE_ALGORITHM *tde_algo)
 
int heap_get_class_partitions (THREAD_ENTRY *thread_p, const OID *class_oid, OR_PARTITION **parts, int *parts_count)
 
void heap_clear_partition_info (THREAD_ENTRY *thread_p, OR_PARTITION *parts, int parts_count)
 
int heap_get_class_supers (THREAD_ENTRY *thread_p, const OID *class_oid, OID **super_oids, int *count)
 
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)
 
void heap_attrinfo_end (THREAD_ENTRY *thread_p, HEAP_CACHE_ATTRINFO *attr_info)
 
int heap_attrinfo_clear_dbvalues (HEAP_CACHE_ATTRINFO *attr_info)
 
int heap_attrinfo_read_dbvalues (THREAD_ENTRY *thread_p, const OID *inst_oid, RECDES *recdes, HEAP_SCANCACHE *scan_cache, 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_delete_lob (THREAD_ENTRY *thread_p, RECDES *recdes, HEAP_CACHE_ATTRINFO *attr_info)
 
DB_VALUEheap_attrinfo_access (ATTR_ID attrid, 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)
 
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_VALUEheap_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_start_with_index (THREAD_ENTRY *thread_p, OID *class_oid, RECDES *class_recdes, HEAP_CACHE_ATTRINFO *attr_info, HEAP_IDX_ELEMENTS_INFO *idx_info)
 
int heap_attrinfo_start_with_btid (THREAD_ENTRY *thread_p, OID *class_oid, BTID *btid, HEAP_CACHE_ATTRINFO *attr_info)
 
HEAP_ATTRVALUE * heap_attrvalue_locate (ATTR_ID attrid, HEAP_CACHE_ATTRINFO *attr_info)
 
OR_ATTRIBUTEheap_locate_last_attrepr (ATTR_ID attrid, HEAP_CACHE_ATTRINFO *attr_info)
 
DB_VALUEheap_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)
 
BTIDheap_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_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)
 
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)
 
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)
 
int heap_prefetch (THREAD_ENTRY *thread_p, OID *class_oid, const OID *oid, LC_COPYAREA_DESC *prefetch)
 
DISK_ISVALID heap_check_all_pages (THREAD_ENTRY *thread_p, HFID *hfid)
 
DISK_ISVALID heap_check_heap_file (THREAD_ENTRY *thread_p, HFID *hfid)
 
DISK_ISVALID heap_check_all_heaps (THREAD_ENTRY *thread_p)
 
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)
 
void heap_chnguess_clear (THREAD_ENTRY *thread_p, int tran_index)
 
int xheap_get_class_num_objects_pages (THREAD_ENTRY *thread_p, const HFID *hfid, int approximation, int *nobjs, int *npages)
 
int xheap_has_instance (THREAD_ENTRY *thread_p, const HFID *hfid, OID *class_oid, int has_visible_instance)
 
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_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_set_autoincrement_value (THREAD_ENTRY *thread_p, HEAP_CACHE_ATTRINFO *attr_info, HEAP_SCANCACHE *scan_cache, int *is_set)
 
void heap_dump (THREAD_ENTRY *thread_p, FILE *fp, HFID *hfid, bool dump_records)
 
void heap_attrinfo_dump (THREAD_ENTRY *thread_p, FILE *fp, HEAP_CACHE_ATTRINFO *attr_info, bool dump_schema)
 
int heap_dump_capacity (THREAD_ENTRY *thread_p, FILE *fp, const HFID *hfid)
 
OR_CLASSREPheap_classrepr_get (THREAD_ENTRY *thread_p, const OID *class_oid, RECDES *class_recdes, REPR_ID reprid, int *idx_incache)
 
int heap_classrepr_free (OR_CLASSREP *classrep, int *idx_incache)
 
REPR_ID heap_get_class_repr_id (THREAD_ENTRY *thread_p, OID *class_oid)
 
int heap_classrepr_find_index_id (OR_CLASSREP *classrepr, const BTID *btid)
 
int heap_attrinfo_set_uninitialized_global (THREAD_ENTRY *thread_p, OID *inst_oid, RECDES *recdes, HEAP_CACHE_ATTRINFO *attr_info)
 
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_undoredo_pagehdr (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
void heap_rv_dump_statistics (FILE *fp, int ignore_length, void *data)
 
void heap_rv_dump_chain (FILE *fp, int ignore_length, void *data)
 
int heap_rv_undo_insert (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_redo_insert (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_mvcc_redo_insert (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_undo_delete (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_redo_delete (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_mvcc_redo_delete_home (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_delete_newhome (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_redo_mark_reusable_slot (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_undo_update (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_redo_update (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_undoredo_update (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)
 
void heap_rv_dump_reuse_page (FILE *fp, int ignore_length, void *data)
 
int heap_rv_mark_deleted_on_undo (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_mark_deleted_on_postpone (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
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_cache_class_info (THREAD_ENTRY *thread_p, const OID *class_oid, HFID *hfid, FILE_TYPE ftype, const char *classname_in)
 
int heap_compact_pages (THREAD_ENTRY *thread_p, OID *class_oid)
 
void heap_classrepr_dump_all (THREAD_ENTRY *thread_p, FILE *fp, OID *class_oid)
 
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_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_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)
 
SCAN_CODE heap_capacity_next_scan (THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ptr)
 
int heap_header_capacity_end_scan (THREAD_ENTRY *thread_p, void **ptr)
 
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_page_next (THREAD_ENTRY *thread_p, const OID *class_oid, const HFID *hfid, VPID *next_vpid, DB_VALUE **cache_pageinfo)
 
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)
 
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_set_mvcc_rec_header_on_overflow (PAGE_PTR ovf_page, MVCC_REC_HEADER *mvcc_header)
 
int heap_rv_redo_update_and_update_chain (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
bool heap_is_big_length (int length)
 
int heap_get_class_oid_from_page (THREAD_ENTRY *thread_p, PAGE_PTR page_p, OID *class_oid)
 
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_scancache_quick_start_root_hfid (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
 
int heap_scancache_quick_start_with_class_oid (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, OID *class_oid)
 
int heap_scancache_quick_start_with_class_hfid (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, const HFID *hfid)
 
int heap_scancache_quick_start_modify_with_class_oid (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, OID *class_oid)
 
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_delete_context (HEAP_OPERATION_CONTEXT *context, HFID *hfid_p, OID *oid_p, OID *class_oid_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_insert_logical (THREAD_ENTRY *thread_p, HEAP_OPERATION_CONTEXT *context, PGBUF_WATCHER *home_hint_p)
 
int heap_delete_logical (THREAD_ENTRY *thread_p, HEAP_OPERATION_CONTEXT *context)
 
int heap_update_logical (THREAD_ENTRY *thread_p, HEAP_OPERATION_CONTEXT *context)
 
int heap_initialize_hfid_table (void)
 
void heap_finalize_hfid_table (void)
 
int heap_delete_hfid_from_cache (THREAD_ENTRY *thread_p, OID *class_oid)
 
void heap_page_set_vacuum_status_none (THREAD_ENTRY *thread_p, PAGE_PTR heap_page)
 
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)
 
bool heap_remove_page_on_vacuum (THREAD_ENTRY *thread_p, PAGE_PTR *page_ptr, HFID *hfid)
 
int heap_rv_nop (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_rv_update_chain_after_mvcc_op (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
INT16 heap_rv_remove_flags_from_offset (INT16 offset)
 
void heap_stats_update (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, const HFID *hfid, int prev_freespace)
 
bool heap_should_try_update_stat (const int current_freespace, const int prev_freespace)
 
int heap_rv_mvcc_redo_redistribute (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_vacuum_all_objects (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *upd_scancache, MVCCID threshold_mvccid)
 
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_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)
 
SCAN_CODE heap_get_last_version (THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context)
 
void heap_clean_get_context (THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *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)
 
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_prepare_get_context (THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context, bool is_heap_scan, NON_EXISTENT_HANDLING non_ex_handling_type)
 
SCAN_CODE heap_get_record_data_when_all_ready (THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context)
 
SCAN_CODE heap_get_visible_version_internal (THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context, bool is_heap_scan)
 
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_rv_undo_ovf_update (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int heap_get_best_space_num_stats_entries (void)
 
int heap_get_hfid_from_vfid (THREAD_ENTRY *thread_p, const VFID *vfid, HFID *hfid)
 
int heap_scan_cache_allocate_area (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache_p, int size)
 
bool heap_is_page_header (THREAD_ENTRY *thread_p, PAGE_PTR page)
 
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_nonheader_page_capacity ()
 
int heap_rv_postpone_append_pages_to_heap (THREAD_ENTRY *thread_p, LOG_RCV *recv)
 
void heap_rv_dump_append_pages_to_heap (FILE *fp, int length, void *data)
 
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)
 

Variables

int mvcc_header_size_lookup [8]
 

Macro Definition Documentation

#define HEAP_HFID_HASH_SIZE   1000

Definition at line 194 of file heap_file.h.

Referenced by heap_initialize_hfid_table().

#define HEAP_IS_UPDATE_INPLACE (   update_inplace_style)    ((update_inplace_style) != UPDATE_INPLACE_NONE)
#define HEAP_ISJUNK_OID (   oid)
Value:
((oid)->slotid == HEAP_HEADER_AND_CHAIN_SLOTID \
|| (oid)->slotid < 0 || (oid)->volid < 0 || (oid)->pageid < 0)
#define HEAP_HEADER_AND_CHAIN_SLOTID
Definition: heap_file.h:62

Definition at line 66 of file heap_file.h.

#define HEAP_ISVALID_OID (   thread_p,
  oid 
)
Value:
: disk_is_page_sector_reserved ((thread_p), (oid)->volid, (oid)->pageid))
DISK_ISVALID disk_is_page_sector_reserved(THREAD_ENTRY *thread_p, VOLID volid, PAGEID pageid)
#define HEAP_ISJUNK_OID(oid)
Definition: heap_file.h:66

Definition at line 77 of file heap_file.h.

Referenced by btree_select_visible_object_for_range_scan(), heap_does_exist(), heap_flush(), heap_is_object_not_null(), heap_is_valid_oid(), scan_next_index_scan(), vacuum_heap_page(), and xlocator_does_exist().

#define HEAP_MAX_ALIGN   INT_ALIGNMENT /* maximum alignment for heap record */
#define HEAP_SCANCACHE_SET_NODE (   scan_cache,
  class_oid_p,
  hfid_p 
)
Value:
do \
{ \
COPY_OID (&(scan_cache)->node.class_oid, class_oid_p); \
HFID_COPY (&(scan_cache)->node.hfid, hfid_p); \
} \
while (0)
#define COPY_OID(dest_oid_ptr, src_oid_ptr)
Definition: oid.h:63
while(1)
Definition: cnvlex.c:816
#define HFID_COPY(hfid_ptr1, hfid_ptr2)

Definition at line 83 of file heap_file.h.

Referenced by heap_scancache_add_partition_node().

#define HEAP_SET_RECORD (   recdes,
  record_area_size,
  record_length,
  record_type,
  record_data 
)
Value:
do \
{ \
(recdes)->area_size = (record_area_size); \
(recdes)->length = (record_length); \
(recdes)->type = (record_type); \
(recdes)->data = (char *) (record_data); \
} \
while (0)
while(1)
Definition: cnvlex.c:816

Definition at line 52 of file heap_file.h.

Referenced by heap_delete_home(), heap_delete_relocation(), heap_rv_mvcc_redo_insert(), and heap_rv_mvcc_redo_redistribute().

#define HFID_EQ (   hfid_ptr1,
  hfid_ptr2 
)
Value:
((hfid_ptr1) == (hfid_ptr2) \
|| ((hfid_ptr1)->hpgid == (hfid_ptr2)->hpgid && VFID_EQ (&((hfid_ptr1)->vfid), &((hfid_ptr2)->vfid))))
#define VFID_EQ(vfid_ptr1, vfid_ptr2)
Definition: file_manager.h:75

Definition at line 48 of file heap_file.h.

Referenced by heap_compare_hfid(), heap_delete_logical(), heap_get_file_type(), heap_insert_logical(), heap_scancache_check_with_hfid(), heap_scancache_reset_modify(), heap_scancache_start_internal(), heap_stats_find_best_page(), heap_update_logical(), and xlocator_repl_force().

Typedef Documentation

Definition at line 226 of file heap_file.h.

Definition at line 216 of file heap_file.h.

Definition at line 116 of file heap_file.h.

Definition at line 365 of file heap_file.h.

Definition at line 185 of file heap_file.h.

Definition at line 197 of file heap_file.h.

Definition at line 245 of file heap_file.h.

Definition at line 109 of file heap_file.h.

Definition at line 275 of file heap_file.h.

Definition at line 139 of file heap_file.h.

Definition at line 123 of file heap_file.h.

Definition at line 131 of file heap_file.h.

Definition at line 176 of file heap_file.h.

Definition at line 268 of file heap_file.h.

Enumeration Type Documentation

anonymous enum
Enumerator
END_SCAN 
CONTINUE_SCAN 

Definition at line 325 of file heap_file.h.

Enumerator
HEAP_OPERATION_NONE 
HEAP_OPERATION_INSERT 
HEAP_OPERATION_DELETE 
HEAP_OPERATION_UPDATE 

Definition at line 254 of file heap_file.h.

Enumerator
HEAP_PAGE_VACUUM_NONE 
HEAP_PAGE_VACUUM_ONCE 
HEAP_PAGE_VACUUM_UNKNOWN 

Definition at line 358 of file heap_file.h.

Enumerator
SNAPSHOT_TYPE_NONE 
SNAPSHOT_TYPE_MVCC 
SNAPSHOT_TYPE_DIRTY 

Definition at line 328 of file heap_file.h.

Enumerator
UPDATE_INPLACE_NONE 
UPDATE_INPLACE_CURRENT_MVCCID 
UPDATE_INPLACE_OLD_MVCCID 

Definition at line 262 of file heap_file.h.

Function Documentation

int heap_assign_address ( THREAD_ENTRY thread_p,
const HFID hfid,
OID class_oid,
OID oid,
int  expected_length 
)
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 
)

Definition at line 10540 of file heap_file.c.

References db_fprint_value(), heap_classrepr_dump(), i, NO_ERROR, and pr_type_name().

Referenced by heap_dump().

Here is the caller graph for this function:

void heap_attrinfo_end ( THREAD_ENTRY thread_p,
HEAP_CACHE_ATTRINFO attr_info 
)

Definition at line 9979 of file heap_file.c.

References db_private_free_and_init, heap_attrinfo_clear_dbvalues(), heap_attrinfo_recache(), heap_classrepr_free_and_init, NO_ERROR, NULL, NULL_REPRID, and OID_SET_NULL.

Referenced by btree_sort_get_next(), catcls_get_apply_info_log_record_time(), catcls_get_db_collation(), catcls_get_server_compat_info(), css_make_access_status_exist_user(), heap_attrinfo_start(), heap_attrinfo_start_with_index(), heap_capacity_next_scan(), heap_dump(), heap_dump_capacity(), heap_eval_function_index(), heap_free_func_pred_unpack_info(), heap_get_partition_attributes(), heap_get_referenced_by(), locator_add_or_remove_index_internal(), locator_check_btree_entries(), locator_check_class(), locator_check_foreign_key(), locator_check_primary_key_delete(), locator_check_primary_key_update(), locator_check_unique_btree_entries(), locator_delete_lob_force(), locator_eval_filter_predicate(), locator_get_partition_scancache(), locator_prefetch_index_page_internal(), locator_update_index(), partition_clear_pruning_context(), process_class(), qexec_clear_access_spec_list(), qexec_clear_internal_classes(), qexec_execute_increment(), qexec_execute_insert(), qexec_execute_obj_fetch(), qexec_execute_update(), qexec_free_delete_lob_info_list(), qexec_init_next_partition(), cubload::server_class_installer::register_class_with_attributes(), scan_start_scan(), serial_load_attribute_info_of_db_serial(), serial_update_cur_val_of_serial(), cubload::server_object_loader::stop_attrinfo(), xbtree_load_index(), xbtree_load_online_index(), xlocator_check_fk_validity(), xlocator_remove_class_from_index(), xlocator_upgrade_instances_domain(), xserial_get_current_value_internal(), and xserial_get_next_value_internal().

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_without_oid ( THREAD_ENTRY thread_p,
RECDES recdes,
HEAP_CACHE_ATTRINFO attr_info 
)

Definition at line 10401 of file heap_file.c.

References er_errid(), ER_FAILED, heap_attrinfo_recache(), heap_attrvalue_read(), i, NO_ERROR, NULL, and or_rep_id().

Referenced by locator_prefetch_index_page_internal().

Here is the caller graph for this function:

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

Definition at line 16711 of file heap_file.c.

References ER_FAILED, heap_attrinfo_set_uninitialized(), and NULL.

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 
)

Definition at line 9427 of file heap_file.c.

References assert, heap_hdr_stats::class_oid, db_private_alloc, db_private_realloc, db_value_domain_init(), er_errid(), ER_FAILED, heap_attrinfo_end(), heap_attrinfo_recache_attrepr(), heap_classrepr_get(), i, NO_ERROR, NULL, NULL_CHN, NULL_REPRID, and OID_SET_NULL.

Referenced by btree_sort_get_next(), catcls_get_apply_info_log_record_time(), catcls_get_db_collation(), catcls_get_server_compat_info(), css_make_access_status_exist_user(), heap_attrinfo_start_refoids(), heap_attrinfo_start_with_btid(), heap_capacity_next_scan(), heap_dump(), heap_dump_capacity(), heap_eval_function_index(), heap_get_partition_attributes(), heap_init_func_pred_unpack_info(), locator_check_btree_entries(), locator_check_primary_key_delete(), locator_check_primary_key_update(), locator_delete_lob_force(), locator_eval_filter_predicate(), locator_get_partition_scancache(), partition_attrinfo_get_key(), partition_find_partition_for_record(), process_class(), qexec_create_delete_lob_info(), qexec_execute_increment(), qexec_execute_insert(), qexec_execute_obj_fetch(), qexec_execute_update(), cubload::server_class_installer::register_class_with_attributes(), scan_start_scan(), serial_load_attribute_info_of_db_serial(), serial_update_cur_val_of_serial(), cubload::server_object_loader::start_attrinfo(), xbtree_load_index(), xbtree_load_online_index(), xlocator_check_fk_validity(), xlocator_upgrade_instances_domain(), xserial_get_current_value_internal(), and xserial_get_next_value_internal().

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

Definition at line 11527 of file heap_file.c.

References heap_attrinfo_transform_to_disk_internal(), and LOB_FLAG_INCLUDE_LOB.

Referenced by locator_allocate_copy_area_by_attr_info(), and serial_update_serial_object().

Here is the caller graph for this function:

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 
)

Definition at line 11547 of file heap_file.c.

References heap_attrinfo_transform_to_disk_internal(), and LOB_FLAG_EXCLUDE_LOB.

Referenced by cubload::server_object_loader::finish_line(), and locator_allocate_copy_area_by_attr_info().

Here is the caller graph for this function:

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 
)
HEAP_ATTRVALUE* heap_attrvalue_locate ( ATTR_ID  attrid,
HEAP_CACHE_ATTRINFO attr_info 
)

Definition at line 10590 of file heap_file.c.

References i, and NULL.

Referenced by eval_key_filter(), heap_attrinfo_access(), heap_attrinfo_set(), and qexec_execute_increment().

Here is the caller graph for this function:

void heap_chnguess_clear ( THREAD_ENTRY thread_p,
int  tran_index 
)
int heap_chnguess_get ( THREAD_ENTRY thread_p,
const OID oid,
int  tran_index 
)
int heap_classrepr_decache ( THREAD_ENTRY thread_p,
const OID class_oid 
)
int heap_classrepr_find_index_id ( OR_CLASSREP classrepr,
const BTID btid 
)

Definition at line 12193 of file heap_file.c.

References or_index::btid, BTID_IS_EQUAL, i, or_classrep::indexes, and or_classrep::n_indexes.

Referenced by heap_attrinfo_start_with_btid(), and heap_get_indexinfo_of_btid().

Here is the caller graph for this function:

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

Definition at line 2299 of file heap_file.c.

References heap_classrepr_cache::area, ARG_FILE_LINE, assert, ASSERT_ERROR, heap_hdr_stats::class_oid, heap_classrepr_entry::class_oid, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CT_UNKNOWN_REPRID, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), er_set_with_oserror(), heap_classrepr_entry::fcnt, heap_classrepr_entry::force_decache, free_and_init, heap_classrepr_free_list::free_cnt, heap_classrepr_cache::free_list, heap_classrepr_hash::hash_mutex, heap_classrepr_entry::hash_next, heap_classrepr_hash::hash_next, heap_classrepr_cache::hash_table, heap_classrepr_dump(), heap_classrepr_entry_alloc(), heap_classrepr_entry_free(), heap_classrepr_get_from_record(), heap_classrepr_log_stack, i, or_classrep::id, heap_classrepr_entry::idx, heap_classrepr_entry::last_reprid, heap_classrepr_entry::max_reprid, heap_classrepr_entry::mutex, NO_ERROR, NULL, NULL_REPRID, heap_classrepr_cache::num_entries, OID_AS_ARGS, OID_EQ, OLD_PAGE, or_free_classrep(), db_identifier::pageid, PGBUF_CONDITIONAL_LATCH, pgbuf_fix, PGBUF_LATCH_READ, pgbuf_unfix_and_init, pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, REC_HOME, heap_classrepr_entry::repr, REPR_HASH, rv, db_identifier::slotid, spage_get_record_type(), db_identifier::volid, and VPID_GET_FROM_OID.

Referenced by btree_check_by_class_oid(), btree_check_foreign_key(), btree_get_pkey_btid(), btree_index_next_scan(), btree_index_start_scan(), btree_is_btid_online_index(), btree_load_check_fk(), btree_repair_prev_link_by_class_oid(), catalog_get_cardinality(), heap_attrinfo_recache(), heap_attrinfo_start(), heap_attrinfo_start_refoids(), heap_attrinfo_start_with_btid(), heap_attrinfo_start_with_index(), heap_get_btid_from_index_name(), heap_get_class_repr_id(), heap_get_index_with_name(), heap_get_indexinfo_of_btid(), heap_scancache_start_modify(), heap_set_autoincrement_value(), locator_check_foreign_key(), logtb_create_unique_stats_from_repr(), logtb_tran_load_global_stats_func(), partition_get_partition_oids(), qexec_execute_build_columns(), qexec_execute_build_indexes(), stats_update_partitioned_statistics(), and xfile_apply_tde_to_class_files().

int heap_classrepr_restart_cache ( void  )

Definition at line 1849 of file heap_file.c.

References assert, ER_FAILED, heap_classrepr_finalize_cache(), heap_classrepr_initialize_cache(), log_is_in_crash_recovery(), and NO_ERROR.

Referenced by log_recovery().

Here is the caller graph for this function:

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

Definition at line 11126 of file heap_file.c.

References db_private_free, db_seq_free(), i, and NULL.

Referenced by btree_index_start_scan(), heap_header_capacity_start_scan(), partition_clear_pruning_context(), and partition_load_pruning_context().

Here is the caller graph for this function:

void heap_create_delete_context ( HEAP_OPERATION_CONTEXT context,
HFID hfid_p,
OID oid_p,
OID class_oid_p,
HEAP_SCANCACHE scancache_p 
)
int heap_delete_hfid_from_cache ( THREAD_ENTRY thread_p,
OID class_oid 
)

Definition at line 23262 of file heap_file.c.

References error(), heap_hfid_table_log, heap_hfid_table::hfid_hash, lf_hash_delete(), NO_ERROR, success(), thread_get_tran_entry(), and THREAD_TS_HFID_TABLE.

Referenced by vacuum_rv_notify_dropped_file().

Here is the caller graph for this function:

int heap_delete_logical ( THREAD_ENTRY thread_p,
HEAP_OPERATION_CONTEXT context 
)

Definition at line 22606 of file heap_file.c.

References recdes::area_size, ARG_FILE_LINE, assert, ASSERT_ERROR_AND_SET, heap_scancache::cache_last_fix_page, heap_operation_context::class_oid, COPY, recdes::data, DB_PAGESIZE, ER_ERROR_SEVERITY, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_HEAP_BAD_OBJECT_TYPE, ER_HEAP_UNKNOWN_OBJECT, ER_INTERRUPTED, er_set(), error(), FILE_HEAP, FILE_HEAP_REUSE_SLOTS, heap_operation_context::file_type, FILE_UNKNOWN_TYPE, heap_delete_bigone(), heap_delete_home(), heap_delete_relocation(), heap_get_file_type(), heap_get_record_location(), heap_is_valid_oid(), heap_mark_class_as_modified(), HEAP_OPERATION_DELETE, HEAP_PERF_START, HEAP_PERF_TRACK_PREPARE, heap_scancache_check_with_hfid(), heap_unfix_watchers(), heap_operation_context::hfid, HFID_EQ, HFID_IS_NULL, heap_operation_context::home_page_watcher, heap_operation_context::home_page_watcher_p, heap_operation_context::home_recdes, heap_operation_context::home_recdes_buffer, MAX_ALIGNMENT, mvcc_is_mvcc_disabled_class(), NO_ERROR, NULL, NULL_CHN, heap_operation_context::oid, OID_ISNULL, heap_scancache::page_watcher, db_identifier::pageid, pgbuf_ordered_unfix, pgbuf_replace_watcher, pgbuf_watcher::pgptr, PTR_ALIGN, rc, REC_ASSIGN_ADDRESS, REC_BIGONE, REC_HOME, REC_RELOCATION, REC_UNKNOWN, heap_operation_context::record_type, heap_classrepr_cache::rootclass_hfid, S_SUCCESS, heap_operation_context::scan_cache_p, db_identifier::slotid, spage_get_record(), spage_get_record_type(), heap_operation_context::time_track, heap_operation_context::type, and db_identifier::volid.

Referenced by catcls_delete_instance(), and locator_delete_force_internal().

Here is the caller graph for this function:

int heap_estimate_num_objects ( THREAD_ENTRY thread_p,
const HFID hfid 
)

Definition at line 9060 of file heap_file.c.

References ER_FAILED, and heap_estimate().

Referenced by xlocator_fetch_all(), xlocator_lock_and_fetch_all(), xstats_get_statistics_from_server(), and xstats_update_statistics().

Here is the caller graph for this function:

void heap_finalize_hfid_table ( void  )

Definition at line 23242 of file heap_file.c.

References heap_hfid_table::hfid_hash, heap_hfid_table::hfid_hash_freelist, lf_freelist_destroy(), lf_hash_destroy(), and NULL.

Referenced by heap_manager_finalize().

Here is the caller graph for this function:

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

Definition at line 8097 of file heap_file.c.

References heap_next(), OID_SET_NULL, hfid::vfid, vfid::volid, and db_identifier::volid.

Referenced by boot_get_db_parm(), heap_scanrange_to_following(), tde_get_keyinfo(), and xheap_has_instance().

Here is the caller graph for this function:

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  )

Definition at line 24829 of file heap_file.c.

References heap_stats_bestspace_cache::num_stats_entries.

Referenced by perfmon_get_peek_stats().

Here is the caller graph for this function:

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_name_alloc_if_diff ( THREAD_ENTRY thread_p,
const OID class_oid,
char *  guess_classname,
char **  class_name_out 
)
REPR_ID heap_get_class_repr_id ( THREAD_ENTRY thread_p,
OID class_oid 
)

Definition at line 16476 of file heap_file.c.

References heap_classrepr_free_and_init, heap_classrepr_get(), or_classrep::id, NULL, and NULL_REPRID.

Referenced by boot_compact_db(), locator_insert_force(), and locator_repl_prepare_force().

Here is the caller graph for this function:

int heap_get_class_supers ( THREAD_ENTRY thread_p,
const OID class_oid,
OID **  super_oids,
int *  count 
)
int heap_get_hfid_from_vfid ( THREAD_ENTRY thread_p,
const VFID vfid,
HFID hfid 
)
int heap_get_index_with_name ( THREAD_ENTRY thread_p,
OID class_oid,
const char *  index_name,
BTID btid 
)
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 
)
int heap_header_capacity_end_scan ( THREAD_ENTRY thread_p,
void **  ptr 
)

Definition at line 18181 of file heap_file.c.

References db_private_free, heap_show_scan_ctx::hfids, NO_ERROR, and NULL.

Referenced by showstmt_scan_init().

Here is the caller graph for this function:

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 
)

Definition at line 13030 of file heap_file.c.

References i, and NO_ERROR.

Referenced by locator_check_class().

Here is the caller graph for this function:

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

Definition at line 13054 of file heap_file.c.

References i, and NO_ERROR.

Referenced by locator_check_class().

Here is the caller graph for this function:

BTID* heap_indexinfo_get_btid ( int  btid_index,
HEAP_CACHE_ATTRINFO attrinfo 
)

Definition at line 12991 of file heap_file.c.

References NULL.

Referenced by locator_check_class(), and locator_prefetch_index_page().

Here is the caller graph for this function:

int heap_indexinfo_get_num_attrs ( int  btid_index,
HEAP_CACHE_ATTRINFO attrinfo 
)

Definition at line 13010 of file heap_file.c.

Referenced by locator_check_class().

Here is the caller graph for this function:

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

Definition at line 22426 of file heap_file.c.

References assert, BU_LOCK, heap_scancache::cache_last_fix_page, heap_operation_context::class_oid, DONT_FREE, ER_FAILED, error(), heap_get_insert_location_with_lock(), heap_insert_adjust_recdes_header(), heap_insert_handle_multipage_record(), heap_insert_physical(), heap_log_insert_physical(), heap_mark_class_as_modified(), HEAP_OPERATION_INSERT, HEAP_PERF_START, HEAP_PERF_TRACK_EXECUTE, HEAP_PERF_TRACK_LOGGING, HEAP_PERF_TRACK_PREPARE, heap_scancache_check_with_hfid(), heap_unfix_watchers(), heap_operation_context::hfid, HFID_EQ, HFID_IS_NULL, heap_operation_context::home_page_watcher, heap_operation_context::home_page_watcher_p, heap_operation_context::is_bulk_op, heap_operation_context::is_redistribute_insert_with_delid, IX_LOCK, LK_GRANTED, LK_UNCOND_LOCK, lock_has_lock_on_object(), lock_object(), mvcc_is_mvcc_disabled_class(), NO_ERROR, NULL, OID_IS_ROOTOID, OID_ISNULL, oid_Root_class_oid, or_chn(), heap_scancache::page_watcher, perfmon_inc_stat(), pgbuf_ordered_unfix, pgbuf_replace_watcher, pgbuf_set_dirty(), pgbuf_watcher::pgptr, PSTAT_HEAP_ASSIGN_INSERTS, PSTAT_HEAP_BIG_INSERTS, PSTAT_HEAP_HOME_INSERTS, rc, REC_ASSIGN_ADDRESS, REC_BIGONE, REC_HOME, heap_operation_context::recdes_p, heap_operation_context::res_oid, heap_classrepr_cache::rootclass_hfid, heap_operation_context::scan_cache_p, heap_operation_context::time_track, recdes::type, heap_operation_context::type, heap_operation_context::use_bulk_logging, and hfid::vfid.

Referenced by boot_create_all_volumes(), heap_assign_address(), locator_insert_force(), and tde_initialize().

Here is the caller graph for this function:

bool heap_is_page_header ( THREAD_ENTRY thread_p,
PAGE_PTR  page 
)

Definition at line 24869 of file heap_file.c.

References assert, HEAP_HEADER_AND_CHAIN_SLOTID, NULL, spage_header::num_records, PAGE_HEAP, pgbuf_get_page_ptype(), spage_slot::record_length, and spage_get_slot().

Referenced by pgbuf_has_perm_pages_fixed().

Here is the caller graph for this function:

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 
)

Definition at line 10637 of file heap_file.c.

References i, and NULL.

Referenced by qexec_execute_insert().

Here is the caller graph for this function:

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  )

Definition at line 5111 of file heap_file.c.

References heap_chnguess_finalize(), heap_classrepr_finalize_cache(), heap_finalize_hfid_table(), heap_stats_bestspace_finalize(), and NO_ERROR.

Referenced by boot_server_all_finalize().

Here is the caller graph for this function:

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 
)

Definition at line 18648 of file heap_file.c.

References heap_next_internal().

Referenced by scan_next_heap_scan().

Here is the caller graph for this function:

int heap_nonheader_page_capacity ( )

Definition at line 25032 of file heap_file.c.

References spage_max_record_size().

Referenced by locator_multi_insert_force().

Here is the caller graph for this function:

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 
)

Definition at line 17011 of file heap_file.c.

References db_monetary::amount, ARG_FILE_LINE, assert, char_isspace(), tp_domain::codeset, tp_domain::collation_id, db_get_bigint(), db_get_double(), db_get_float(), db_get_int(), db_get_monetary(), db_get_short(), db_get_string(), db_get_string_length(), db_get_string_size(), DB_IS_NULL, db_make_null(), DB_NOT_PARTITIONED_CLASS, DB_TYPE_BIGINT, DB_TYPE_CHAR, DB_TYPE_DOUBLE, DB_TYPE_ENUMERATION, DB_TYPE_FLOAT, DB_TYPE_INTEGER, DB_TYPE_MONETARY, DB_TYPE_NCHAR, DB_TYPE_NUMERIC, DB_TYPE_SMALLINT, DB_TYPE_VARCHAR, DB_TYPE_VARNCHAR, db_value_domain_default(), db_value_domain_max(), db_value_domain_min(), DB_VALUE_DOMAIN_TYPE, DOMAIN_COMPATIBLE, tp_domain::enumeration, ER_ALTER_CHANGE_CAST_FAILED_SET_DEFAULT, ER_ALTER_CHANGE_CAST_FAILED_SET_MAX, ER_ALTER_CHANGE_CAST_FAILED_SET_MIN, ER_ALTER_CHANGE_TRUNC_OVERFLOW_NOT_ALLOWED, er_clear(), ER_ERROR_SEVERITY, ER_IT_DATA_OVERFLOW, ER_MVCC_NOT_SATISFIED_REEVALUATION, ER_QPROC_SIZE_STRING_TRUNCATED, er_set(), er_stack_pop(), er_stack_push(), ER_UNEXPECTED, ER_WARNING_SEVERITY, error(), heap_scancache_node::hfid, i, INTL_CODESET_RAW_BYTES, LC_FLUSH_UPDATE, locator_attribute_info_force(), NO_ERROR, heap_scancache::node, NULL, numeric_db_value_is_positive(), p, pr_clear_value(), pr_clone_value(), tp_domain::precision, prm_get_bool_value(), PRM_ID_ALLOW_TRUNCATED_STRING, PRM_ID_ALTER_TABLE_CHANGE_TYPE_STRICT, QSTR_IS_ANY_CHAR, QSTR_IS_ANY_CHAR_OR_BIT, QSTR_IS_BIT, REPL_INFO_TYPE_RBR_NORMAL, tp_domain::scale, SINGLE_ROW_UPDATE, TP_DOMAIN_CODESET, tp_domain_resolve_default(), tp_domain_status_er_set(), TP_DOMAIN_TYPE, TP_IS_CHAR_TYPE, tp_value_cast(), and UPDATE_INPLACE_OLD_MVCCID.

Referenced by xlocator_upgrade_instances_domain().

Here is the caller graph for this function:

const OID* heap_ovf_delete ( THREAD_ENTRY thread_p,
const HFID hfid,
const OID ovf_oid,
VFID ovf_vfid_p 
)
MVCCID heap_page_get_max_mvccid ( THREAD_ENTRY thread_p,
PAGE_PTR  heap_page 
)

Definition at line 23798 of file heap_file.c.

References assert, assert_release, recdes::data, HEAP_HEADER_AND_CHAIN_SLOTID, recdes::length, heap_chain::max_mvccid, MVCCID_NULL, NULL, PEEK, S_SUCCESS, and spage_get_record().

Referenced by xheap_reclaim_addresses().

Here is the caller graph for this function:

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

Definition at line 18671 of file heap_file.c.

References heap_next_internal(), and NULL.

Referenced by heap_last(), heap_scanrange_next(), heap_scanrange_to_prior(), and scan_next_heap_scan().

Here is the caller graph for this function:

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 
)

Definition at line 18697 of file heap_file.c.

References heap_next_internal().

Referenced by scan_next_heap_scan().

Here is the caller graph for this function:

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

Definition at line 4643 of file heap_file.c.

References recdes::area_size, assert, ASSERT_ERROR, assert_release, heap_hdr_stats::best, COPY, recdes::data, DONT_FREE, error(), heap_hdr_stats::estimates, file_dealloc(), FILE_HEAP, heap_bestspace::freespace, heap_hdr_stats::full_search_vpid, heap_hdr_stats::head, HEAP_HEADER_AND_CHAIN_SLOTID, HEAP_NUM_BEST_SPACESTATS, heap_stats_del_bestspace_by_vpid(), heap_vpid_next(), heap_vpid_prev(), HFID_IS_NULL, hfid::hpgid, i, heap_hdr_stats::last_vpid, recdes::length, log_append_undoredo_data2(), log_sysop_abort(), log_sysop_commit(), log_sysop_start(), MAX_ALIGNMENT, heap_hdr_stats::next_vpid, heap_chain::next_vpid, NO_ERROR, NULL, heap_hdr_stats::num_high_best, OLD_PAGE, pgbuf_watcher::page_was_unfixed, vpid::pageid, pgbuf_attach_watcher, pgbuf_get_vpid(), pgbuf_has_any_waiters(), pgbuf_has_prevent_dealloc(), PGBUF_INIT_WATCHER, PGBUF_LATCH_WRITE, pgbuf_ordered_fix, PGBUF_ORDERED_HEAP_HDR, PGBUF_ORDERED_HEAP_NORMAL, pgbuf_ordered_unfix, pgbuf_ordered_unfix_and_init, pgbuf_set_dirty(), pgbuf_watcher::pgptr, heap_chain::prev_vpid, PTR_ALIGN, RVHF_CHAIN, RVHF_STATS, S_SUCCESS, heap_hdr_stats::second_best, SP_SUCCESS, spage_get_record(), spage_number_of_records(), spage_update(), vacuum_er_log, vacuum_er_log_error, VACUUM_ER_LOG_HEAP, vacuum_er_log_warning, hfid::vfid, vpid::volid, vfid::volid, heap_bestspace::vpid, VPID_COPY, VPID_EQ, VPID_INITIALIZER, VPID_ISNULL, and VPID_SET_NULL.

Referenced by vacuum_heap_page().

Here is the caller graph for this function:

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 
)

Definition at line 16382 of file heap_file.c.

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

Definition at line 15533 of file heap_file.c.

References heap_dump_hdr(), and NO_ERROR.

int heap_rv_mark_deleted_on_postpone ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)

Definition at line 5877 of file heap_file.c.

References assert_release, file_rv_tracker_mark_heap_deleted(), and NO_ERROR.

int heap_rv_mark_deleted_on_undo ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)

Definition at line 5859 of file heap_file.c.

References assert_release, file_rv_tracker_mark_heap_deleted(), and NO_ERROR.

int heap_rv_nop ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)

Definition at line 23862 of file heap_file.c.

References assert, DONT_FREE, NO_ERROR, NULL, pgbuf_set_dirty(), and log_rcv::pgptr.

int heap_rv_redo_delete ( 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_reuse_oid ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)
int heap_rv_redo_update ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)

Definition at line 16236 of file heap_file.c.

References heap_rv_undoredo_update().

Referenced by heap_rv_redo_update_and_update_chain().

Here is the caller graph for this function:

int heap_rv_redo_update_and_update_chain ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)
INT16 heap_rv_remove_flags_from_offset ( INT16  offset)

Definition at line 23901 of file heap_file.c.

References HEAP_RV_FLAG_VACUUM_STATUS_CHANGE.

Referenced by vacuum_process_log_block().

Here is the caller graph for this function:

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_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,
HEAP_SCANCACHE scan_cache,
int  ispeeking,
int  old_chn 
)

Definition at line 24309 of file heap_file.c.

References heap_clean_get_context(), heap_get_visible_version_internal(), heap_init_get_context(), and S_SUCCESS.

Referenced by heap_next_internal().

Here is the caller graph for this function:

int heap_scancache_end ( THREAD_ENTRY thread_p,
HEAP_SCANCACHE scan_cache 
)

Definition at line 7195 of file heap_file.c.

References END_SCAN, heap_scancache_end_internal(), and NO_ERROR.

Referenced by boot_db_parm_update_heap(), boot_get_db_parm(), btree_scan_for_show_index_header(), btree_sort_get_next(), catalog_check_consistency(), catalog_dump(), catalog_get_dir_oid_from_cache(), catalog_get_rep_dir(), catalog_get_representation(), catcls_compile_catalog_classes(), catcls_get_apply_info_log_record_time(), catcls_get_db_collation(), catcls_get_server_compat_info(), css_make_access_status_exist_user(), heap_class_get_partition_info(), heap_classrepr_dump(), heap_classrepr_dump_all(), heap_classrepr_get_from_record(), heap_dump(), heap_get_class_info_from_record(), heap_get_class_name_alloc_if_diff(), heap_get_class_subclasses(), heap_get_class_supers(), heap_get_class_tde_algorithm(), heap_get_partition_attributes(), heap_is_object_not_null(), heap_last(), heap_scanrange_end(), heap_set_autoincrement_value(), locator_all_reference_lockset(), locator_check_all_entries_of_all_btrees(), locator_check_btree_entries(), locator_check_by_class_oid(), locator_check_class_names(), locator_check_primary_key_delete(), locator_check_primary_key_update(), locator_check_unique_btree_entries(), locator_delete_lob_force(), locator_guess_sub_classes(), locator_initialize(), locator_move_record(), locator_mvcc_reeval_scan_filters(), lock_demote_class_lock(), or_get_hierarchy_helper(), partition_clear_pruning_context(), process_value(), qexec_execute_build_columns(), qexec_execute_build_indexes(), qexec_execute_obj_fetch(), qexec_execute_selupd_list(), redistribute_partition_data(), cubload::server_class_installer::register_class_with_attributes(), scan_end_scan(), serial_load_attribute_info_of_db_serial(), serial_update_cur_val_of_serial(), tde_get_keyinfo(), tde_update_keyinfo(), update_indexes(), xboot_checkdb_table(), xbtree_load_index(), xbtree_load_online_index(), xcatalog_check_rep_dir(), xheap_has_instance(), xlocator_check_fk_validity(), xlocator_does_exist(), xlocator_fetch(), xlocator_fetch_all(), xlocator_fetch_lockhint_classes(), xlocator_fetch_lockset(), xlocator_lock_and_fetch_all(), xlocator_remove_class_from_index(), xserial_get_current_value_internal(), xserial_get_next_value_internal(), and xstats_update_all_statistics().

int heap_scancache_end_when_scan_will_resume ( THREAD_ENTRY thread_p,
HEAP_SCANCACHE scan_cache 
)

Definition at line 7210 of file heap_file.c.

References CONTINUE_SCAN, heap_scancache_end_internal(), and NO_ERROR.

Referenced by xlocator_fetch_all(), and xlocator_lock_and_fetch_all().

Here is the caller graph for this function:

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 
)

Definition at line 19331 of file heap_file.c.

References heap_get_class_info(), heap_scancache_quick_start_internal(), NO_ERROR, NULL, heap_scancache::page_latch, and X_LOCK.

Referenced by serial_update_cur_val_of_serial(), and xserial_get_next_value_internal().

Here is the caller graph for this function:

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 
)
void heap_scanrange_end ( THREAD_ENTRY thread_p,
HEAP_SCANRANGE scan_range 
)

Definition at line 8238 of file heap_file.c.

References heap_scanrange::first_oid, heap_scancache_end(), heap_scanrange::last_oid, OID_SET_NULL, and heap_scanrange::scan_cache.

Referenced by scan_end_scan().

Here is the caller graph for this function:

int heap_scanrange_start ( THREAD_ENTRY thread_p,
HEAP_SCANRANGE scan_range,
const HFID hfid,
const OID class_oid,
MVCC_SNAPSHOT mvcc_snapshot 
)
bool heap_should_try_update_stat ( const int  current_freespace,
const int  prev_freespace 
)

Definition at line 23916 of file heap_file.c.

References HEAP_DROP_FREE_SPACE.

int heap_update_logical ( THREAD_ENTRY thread_p,
HEAP_OPERATION_CONTEXT context 
)

Definition at line 22771 of file heap_file.c.

References recdes::area_size, ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, heap_scancache::cache_last_fix_page, heap_operation_context::class_oid, COPY, recdes::data, DB_PAGESIZE, ER_ERROR_SEVERITY, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_HEAP_BAD_OBJECT_TYPE, ER_HEAP_UNKNOWN_HEAP, ER_HEAP_UNKNOWN_OBJECT, ER_INTERRUPTED, er_log_debug, er_set(), FILE_HEAP, FILE_HEAP_REUSE_SLOTS, heap_operation_context::file_type, FILE_UNKNOWN_TYPE, heap_get_file_type(), heap_get_record_location(), HEAP_IS_UPDATE_INPLACE, heap_is_valid_oid(), heap_mark_class_as_modified(), HEAP_MAYNEED_DECACHE_GUESSED_LASTREPRS, HEAP_OPERATION_UPDATE, HEAP_PERF_START, HEAP_PERF_TRACK_PREPARE, heap_scancache_check_with_hfid(), heap_unfix_watchers(), heap_update_adjust_recdes_header(), heap_update_bigone(), heap_update_home(), HEAP_UPDATE_IS_MVCC_OP, heap_update_relocation(), heap_scancache_node::hfid, heap_operation_context::hfid, HFID_COPY, HFID_EQ, HFID_IS_NULL, heap_operation_context::home_page_watcher, heap_operation_context::home_page_watcher_p, heap_operation_context::home_recdes, heap_operation_context::home_recdes_buffer, heap_operation_context::is_logical_old, MAX_ALIGNMENT, mvcc_is_mvcc_disabled_class(), NO_ERROR, heap_scancache::node, NULL, NULL_FILEID, NULL_PAGEID, heap_operation_context::oid, OID_IS_ROOTOID, OID_ISNULL, or_chn(), heap_scancache::page_watcher, db_identifier::pageid, pgbuf_ordered_unfix, pgbuf_replace_watcher, pgbuf_watcher::pgptr, PTR_ALIGN, rc, REC_ASSIGN_ADDRESS, REC_BIGONE, REC_HOME, REC_RELOCATION, REC_UNKNOWN, heap_operation_context::recdes_p, heap_operation_context::record_type, heap_classrepr_cache::rootclass_hfid, S_SUCCESS, heap_operation_context::scan_cache_p, db_identifier::slotid, spage_get_record(), spage_get_record_type(), heap_operation_context::time_track, heap_operation_context::type, heap_operation_context::update_in_place, and db_identifier::volid.

Referenced by boot_db_parm_update_heap(), catcls_insert_instance(), catcls_update_instance(), disk_update_instance(), locator_insert_force(), locator_update_force(), and tde_update_keyinfo().

Here is the caller graph for this function:

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

Definition at line 16396 of file heap_file.c.

References assert, er_errid(), ER_FAILED, heap_estimate(), heap_get_num_objects(), HFID_IS_NULL, and NO_ERROR.

Referenced by heap_get_class_num_objects_pages(), and shf_get_class_num_objs_and_pages().

Here is the caller graph for this function:

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

Definition at line 16429 of file heap_file.c.

References recdes::data, ER_FAILED, heap_first(), heap_scancache_end(), heap_scancache_start(), logtb_get_mvcc_snapshot(), NO_ERROR, NULL, OID_SET_NULL, S_DOESNT_EXIST, S_END, and S_ERROR.

Referenced by heap_has_instance(), and shf_has_instance().

Here is the caller graph for this function:

int xheap_reclaim_addresses ( THREAD_ENTRY thread_p,
const HFID hfid 
)

Definition at line 6122 of file heap_file.c.

References recdes::area_size, heap_hdr_stats::best, COPY, recdes::data, DONT_FREE, er_errid(), ER_FAILED, heap_hdr_stats::estimates, vfid::fileid, heap_bestspace::freespace, heap_hdr_stats::full_search_vpid, heap_hdr_stats::head, heap_hdr_stats::head_second_best, HEAP_DROP_FREE_SPACE, HEAP_HEADER_AND_CHAIN_SLOTID, HEAP_NUM_BEST_SPACESTATS, heap_page_get_max_mvccid(), heap_scan_pb_lock_and_fetch, heap_stats_add_bestspace(), heap_stats_put_second_best(), heap_vpid_prev(), heap_vpid_remove(), hfid::hpgid, i, heap_hdr_stats::last_vpid, log_append_undoredo_data(), log_skip_logging(), NO_ERROR, NULL, heap_hdr_stats::num_high_best, heap_hdr_stats::num_other_high_best, heap_hdr_stats::num_pages, heap_hdr_stats::num_recs, heap_hdr_stats::num_second_best, heap_hdr_stats::num_substitutions, log_data_addr::offset, OLD_PAGE, PAGE_HEAP, vpid::pageid, pgbuf_check_page_ptype(), PGBUF_INIT_WATCHER, PGBUF_LATCH_WRITE, pgbuf_ordered_fix, PGBUF_ORDERED_HEAP_HDR, PGBUF_ORDERED_HEAP_NORMAL, pgbuf_ordered_set_dirty_and_free(), pgbuf_ordered_unfix, pgbuf_set_dirty(), log_data_addr::pgptr, pgbuf_watcher::pgptr, prm_get_integer_value(), PRM_ID_HF_MAX_BESTSPACE_ENTRIES, heap_hdr_stats::recs_sumlen, RVHF_STATS, S_SUCCESS, heap_hdr_stats::second_best, SP_SUCCESS, spage_collect_statistics(), spage_get_free_space_without_saving(), spage_get_record(), spage_number_of_records(), spage_reclaim(), spage_update(), heap_hdr_stats::tail_second_best, vacuum_er_log, VACUUM_ER_LOG_HEAP, vacuum_is_mvccid_vacuumed(), log_data_addr::vfid, hfid::vfid, vpid::volid, vfid::volid, heap_bestspace::vpid, VPID_ISNULL, VPID_SET_NULL, and X_LOCK.

Referenced by heap_reclaim_addresses(), and shf_heap_reclaim_addresses().

Here is the caller graph for this function:

Variable Documentation