CUBRID Engine  latest
slotted_page.h File Reference
#include "config.h"
#include "error_manager.h"
#include "storage_common.h"
#include "log_manager.h"
#include "vacuum.h"
Include dependency graph for slotted_page.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  spage_header
 
struct  spage_slot
 

Macros

#define SP_ERROR   (-1)
 
#define SP_SUCCESS   (1)
 
#define SP_DOESNT_FIT   (3)
 
#define SAFEGUARD_RVSPACE   true
 
#define DONT_SAFEGUARD_RVSPACE   false
 
#define SPAGE_HEADER_FLAG_NONE   0x0 /* No flags */
 
#define SPAGE_HEADER_FLAG_ALL_VISIBLE   0x1 /* All records are visible */
 

Typedefs

typedef struct spage_header SPAGE_HEADER
 
typedef struct spage_slot SPAGE_SLOT
 

Enumerations

enum  { ANCHORED = 1, ANCHORED_DONT_REUSE_SLOTS = 2, UNANCHORED_ANY_SEQUENCE = 3, UNANCHORED_KEEP_SEQUENCE = 4 }
 

Functions

void spage_boot (THREAD_ENTRY *thread_p)
 
void spage_finalize (THREAD_ENTRY *thread_p)
 
void spage_free_saved_spaces (THREAD_ENTRY *thread_p, void *first_save_entry)
 
int spage_slot_size (void)
 
int spage_header_size (void)
 
int spage_get_free_space (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
int spage_get_free_space_without_saving (THREAD_ENTRY *thread_p, PAGE_PTR page_p, bool *need_update)
 
void spage_set_need_update_best_hint (THREAD_ENTRY *thread_p, PAGE_PTR page_p, bool need_update)
 
PGNSLOTS spage_number_of_records (PAGE_PTR pgptr)
 
PGNSLOTS spage_number_of_slots (PAGE_PTR pgptr)
 
void spage_initialize (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, INT16 slots_type, unsigned short alignment, bool safeguard_rvspace)
 
int spage_insert (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, RECDES *recdes, PGSLOTID *slotid)
 
int spage_insert_at (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, RECDES *recdes)
 
int spage_insert_for_recovery (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, RECDES *recdes)
 
PGSLOTID spage_delete (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid)
 
PGSLOTID spage_delete_for_recovery (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid)
 
int spage_update (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, const RECDES *recdes)
 
void spage_update_record_type (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, INT16 type)
 
bool spage_is_updatable (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int recdes_length)
 
bool spage_is_mvcc_updatable (THREAD_ENTRY *thread_p, PAGE_PTR page_p, PGSLOTID slot_id, int delete_record_length, int insert_record_length)
 
bool spage_reclaim (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
int spage_split (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int offset, PGSLOTID *new_slotid)
 
int spage_append (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, const RECDES *recdes)
 
int spage_take_out (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int takeout_offset, int takeout_length)
 
int spage_put (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int offset, const RECDES *recdes)
 
int spage_overwrite (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int overwrite_offset, const RECDES *recdes)
 
int spage_merge (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid1, PGSLOTID slotid2)
 
SCAN_CODE spage_next_record (PAGE_PTR pgptr, PGSLOTID *slotid, RECDES *recdes, int ispeeking)
 
SCAN_CODE spage_next_record_dont_skip_empty (PAGE_PTR pgptr, PGSLOTID *slotid, RECDES *recdes, int ispeeking)
 
SCAN_CODE spage_previous_record (PAGE_PTR pgptr, PGSLOTID *slotid, RECDES *recdes, int ispeeking)
 
SCAN_CODE spage_previous_record_dont_skip_empty (PAGE_PTR pgptr, PGSLOTID *slotid, RECDES *recdes, int ispeeking)
 
SCAN_CODE spage_get_page_header_info (PAGE_PTR page_p, DB_VALUE **page_header_info)
 
SCAN_CODE spage_get_record (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid, RECDES *recdes, int ispeeking)
 
bool spage_is_slot_exist (PAGE_PTR pgptr, PGSLOTID slotid)
 
void spage_dump (THREAD_ENTRY *thread_p, FILE *fp, PAGE_PTR pgptr, int isrecord_printed)
 
SPAGE_SLOTspage_get_slot (PAGE_PTR page_p, PGSLOTID slot_id)
 
bool spage_check_num_slots (THREAD_ENTRY *thread_p, PAGE_PTR page_p)
 
int spage_check (THREAD_ENTRY *thread_p, PAGE_PTR page_p)
 
int spage_get_record_length (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid)
 
int spage_get_record_offset (THREAD_ENTRY *thread_p, PAGE_PTR page_p, PGSLOTID slot_id)
 
int spage_get_space_for_record (THREAD_ENTRY *thread_p, PAGE_PTR page_p, PGSLOTID slot_id)
 
INT16 spage_get_record_type (PAGE_PTR pgptr, PGSLOTID slotid)
 
int spage_max_space_for_new_record (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
void spage_collect_statistics (PAGE_PTR pgptr, int *npages, int *nrecords, int *rec_length)
 
int spage_max_record_size (void)
 
int spage_check_slot_owner (THREAD_ENTRY *thread_p, PAGE_PTR pgptr, PGSLOTID slotid)
 
int spage_compact (THREAD_ENTRY *thread_p, PAGE_PTR pgptr)
 
bool spage_is_valid_anchor_type (const INT16 anchor_type)
 
const char * spage_anchor_flag_string (const INT16 anchor_type)
 
const char * spage_alignment_string (unsigned short alignment)
 
int spage_mark_deleted_slot_as_reusable (THREAD_ENTRY *thread_p, PAGE_PTR page_p, PGSLOTID slot_id)
 
PGSLOTID spage_find_free_slot (PAGE_PTR page_p, SPAGE_SLOT **out_slot_p, PGSLOTID start_id)
 
int spage_header_start_scan (THREAD_ENTRY *thread_p, int show_type, DB_VALUE **arg_values, int arg_cnt, void **ctx)
 
SCAN_CODE spage_header_next_scan (THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ctx)
 
int spage_header_end_scan (THREAD_ENTRY *thread_p, void **ctx)
 
int spage_slots_start_scan (THREAD_ENTRY *thread_p, int show_type, DB_VALUE **arg_values, int arg_cnt, void **ctx)
 
SCAN_CODE spage_slots_next_scan (THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ctx)
 
int spage_slots_end_scan (THREAD_ENTRY *thread_p, void **ctx)
 
void spage_vacuum_slot (THREAD_ENTRY *thread_p, PAGE_PTR page_p, PGSLOTID slotid, bool reusable)
 
bool spage_need_compact (THREAD_ENTRY *thread_p, PAGE_PTR page_p)
 

Macro Definition Documentation

#define DONT_SAFEGUARD_RVSPACE   false
#define SP_SUCCESS   (1)

Definition at line 50 of file slotted_page.h.

Referenced by btree_build_nleafs(), btree_connect_page(), btree_construct_leafs(), btree_init_node_header(), btree_init_overflow_header(), btree_init_root_header(), btree_insert_mvcc_delid_into_page(), btree_key_append_object_as_new_overflow(), btree_key_append_object_to_overflow(), btree_key_append_object_unique(), btree_key_insert_new_key(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_relocate_last_into_ovf(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_insert_mvccid(), btree_key_remove_object_and_keep_visible_first(), btree_leaf_record_replace_first_with_last(), btree_merge_node(), btree_merge_root(), btree_modify_leaf_ovfl_vpid(), btree_modify_overflow_link(), btree_overflow_record_replace_object(), btree_record_remove_object(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_nodehdr_redo_insert(), btree_rv_nodehdr_undoredo_update(), btree_rv_noderec_redo_insert(), btree_rv_noderec_undoredo_update(), btree_rv_pagerec_insert(), btree_rv_record_modify_internal(), btree_save_last_leafrec(), btree_split_node(), btree_split_root(), btree_split_test(), btree_start_overflow_page(), catalog_add_class_info(), catalog_adjust_directory_count(), catalog_drop_old_representations(), catalog_drop_representation_helper(), catalog_drop_representation_item(), catalog_initialize_new_page(), catalog_insert_representation_item(), catalog_put_record_into_page(), catalog_put_representation_item(), catalog_rv_insert_redo(), catalog_rv_new_page_redo(), catalog_rv_update(), catalog_update_class_info(), ehash_distribute_records_into_two_bucket(), ehash_initialize_bucket_new_page(), ehash_insert_to_bucket(), ehash_merge_permanent(), ehash_rv_init_bucket_redo(), ehash_rv_insert_redo(), heap_create_internal(), heap_find_location_and_insert_rec_newhome(), heap_insert_physical(), heap_reinitialize_page(), heap_remove_page_on_vacuum(), heap_rv_mvcc_redo_delete_internal(), heap_rv_mvcc_redo_insert(), heap_rv_mvcc_redo_redistribute(), heap_rv_mvcc_undo_delete(), heap_rv_redo_insert(), heap_rv_redo_newpage(), heap_rv_redo_reuse_page(), heap_rv_redo_reuse_page_reuse_oid(), heap_rv_undoredo_pagehdr(), heap_rv_undoredo_update(), heap_update_bigone(), heap_update_physical(), heap_vpid_init_new(), heap_vpid_remove(), log_rv_record_modify_internal(), serial_update_serial_object(), spage_add_new_slot(), spage_check_mvcc_updatable(), spage_check_record_for_insert(), spage_check_space(), spage_check_updatable(), spage_find_empty_slot(), spage_find_empty_slot_at(), spage_find_slot_for_insert(), spage_insert(), spage_insert_at(), spage_insert_data(), spage_insert_for_recovery(), spage_is_mvcc_updatable(), spage_is_updatable(), spage_mark_deleted_slot_as_reusable(), spage_merge(), spage_overwrite(), spage_put_helper(), spage_split(), spage_take_out(), spage_take_slot_in_use(), spage_update(), spage_update_record_after_compact(), spage_update_record_in_place(), vacuum_heap_record_insid_and_prev_version(), vacuum_rv_check_at_undo(), vacuum_rv_redo_vacuum_heap_page(), and xheap_reclaim_addresses().

#define SPAGE_HEADER_FLAG_ALL_VISIBLE   0x1 /* All records are visible */

Definition at line 58 of file slotted_page.h.

#define SPAGE_HEADER_FLAG_NONE   0x0 /* No flags */

Definition at line 57 of file slotted_page.h.

Referenced by spage_initialize().

Typedef Documentation

typedef struct spage_header SPAGE_HEADER

Definition at line 60 of file slotted_page.h.

typedef struct spage_slot SPAGE_SLOT

Definition at line 84 of file slotted_page.h.

Enumeration Type Documentation

anonymous enum
Enumerator
ANCHORED 
ANCHORED_DONT_REUSE_SLOTS 
UNANCHORED_ANY_SEQUENCE 
UNANCHORED_KEEP_SEQUENCE 

Definition at line 36 of file slotted_page.h.

Function Documentation

const char* spage_alignment_string ( unsigned short  alignment)

Definition at line 4166 of file slotted_page.c.

References CHAR_ALIGNMENT, DOUBLE_ALIGNMENT, INT_ALIGNMENT, and SHORT_ALIGNMENT.

Referenced by sort_spage_get_record(), spage_dump_header_to_string(), and spage_header_next_scan().

Here is the caller graph for this function:

const char* spage_anchor_flag_string ( const INT16  anchor_type)

Definition at line 4139 of file slotted_page.c.

References ANCHORED, ANCHORED_DONT_REUSE_SLOTS, assert, UNANCHORED_ANY_SEQUENCE, and UNANCHORED_KEEP_SEQUENCE.

Referenced by sort_spage_get_record(), spage_dump_header_to_string(), and spage_header_next_scan().

Here is the caller graph for this function:

int spage_append ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PGSLOTID  slotid,
const RECDES recdes 
)

Definition at line 3128 of file slotted_page.c.

References spage_put_helper().

bool spage_check_num_slots ( THREAD_ENTRY thread_p,
PAGE_PTR  page_p 
)
void spage_collect_statistics ( PAGE_PTR  pgptr,
int *  npages,
int *  nrecords,
int *  rec_length 
)
PGSLOTID spage_delete ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PGSLOTID  slotid 
)

Definition at line 2092 of file slotted_page.c.

References spage_header::alignment, spage_header::anchor_type, ANCHORED, ANCHORED_DONT_REUSE_SLOTS, ARG_FILE_LINE, assert, ASSERT_ALIGN, spage_header::cont_free, DB_WASTED_ALIGN, DONT_FREE, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), ER_SP_UNKNOWN_SLOTID, spage_header::is_saving, NO_ERROR, NULL, NULL_SLOTID, spage_header::num_records, spage_header::offset_to_free_area, spage_slot::offset_to_record, pgbuf_get_page_id(), pgbuf_get_volume_label(), pgbuf_set_dirty(), REC_DELETED_WILL_REUSE, REC_MARKDELETED, spage_slot::record_length, spage_slot::record_type, spage_check(), SPAGE_EMPTY_OFFSET, spage_find_slot(), spage_is_record_located_at_end(), spage_is_valid_anchor_type(), spage_reduce_a_slot(), spage_save_space(), spage_shift_slot_down(), SPAGE_VERIFY_HEADER, spage_verify_header(), spage_header::total_free, UNANCHORED_ANY_SEQUENCE, and UNANCHORED_KEEP_SEQUENCE.

Referenced by btree_delete_key_from_leaf(), btree_delete_meta_record(), btree_merge_node(), btree_rv_nodehdr_undo_insert(), btree_rv_pagerec_delete(), btree_rv_record_modify_internal(), btree_split_node(), btree_split_root(), btree_split_test(), catalog_drop_directory(), catalog_drop_representation_helper(), catalog_put_representation_item(), catalog_rv_delete_redo(), ehash_delete(), ehash_distribute_records_into_two_bucket(), ehash_rv_delete(), ehash_rv_delete_redo(), heap_delete_all_page_records(), heap_delete_physical(), heap_rv_redo_delete(), log_rv_record_modify_internal(), spage_delete_for_recovery(), and spage_merge().

void spage_dump ( THREAD_ENTRY thread_p,
FILE *  fp,
PAGE_PTR  pgptr,
int  isrecord_printed 
)
void spage_finalize ( THREAD_ENTRY thread_p)

Definition at line 816 of file slotted_page.c.

References cubthread::lockfree_hashmap< Key, T >::destroy().

Referenced by boot_server_all_finalize().

Here is the caller graph for this function:

int spage_get_free_space ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr 
)
SCAN_CODE spage_get_record ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PGSLOTID  slotid,
RECDES recdes,
int  ispeeking 
)

Definition at line 3847 of file slotted_page.c.

References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, er_set(), ER_SP_UNKNOWN_SLOTID, recdes::length, NULL, pgbuf_get_page_id(), pgbuf_get_volume_label(), S_DOESNT_EXIST, spage_find_slot(), spage_get_record_data(), and SPAGE_VERIFY_HEADER.

Referenced by btree_build_nleafs(), btree_change_root_header_delta(), btree_check_page_key(), btree_check_pages(), btree_compress_node(), btree_delete_key_from_leaf(), btree_delete_meta_record(), btree_delete_overflow_key(), btree_dump_leaf_record(), btree_dump_page(), btree_dump_page_with_subtree(), btree_find_AR_sampling_leaf(), btree_find_boundary_leaf(), btree_find_key_from_leaf(), btree_find_key_from_nleaf(), btree_find_lower_bound_leaf(), btree_find_min_or_max_key(), btree_find_next_index_record_holding_current(), btree_find_oid_from_ovfl(), btree_find_oid_with_page_and_record(), btree_find_split_point(), btree_fix_ovfl_oid_page(), btree_get_next_node_info(), btree_get_node_header(), btree_get_num_visible_oids_from_all_ovf(), btree_get_overflow_header(), btree_get_perf_btree_page_type(), btree_get_root_header(), btree_get_stats_key(), btree_get_subtree_capacity(), btree_get_unique_statistics(), btree_get_value_from_leaf_slot(), btree_is_slot_visible(), btree_key_append_object_to_overflow(), btree_key_delete_remove_object(), btree_key_find_and_insert_delete_mvccid(), btree_key_find_and_lock_unique_of_non_unique(), btree_key_find_and_lock_unique_of_unique(), btree_key_find_first_visible_row_from_all_ovf(), btree_key_find_unique_version_oid(), btree_key_insert_delete_mvccid(), btree_key_insert_new_object(), btree_key_lock_and_append_object_unique(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_process_objects(), btree_key_record_check_no_visible(), btree_key_remove_delete_mvccid(), btree_key_remove_insert_mvccid(), btree_key_remove_object_and_keep_visible_first(), btree_leaf_is_key_between_min_max(), btree_merge_node(), btree_merge_node_and_advance(), btree_merge_root(), btree_modify_overflow_link(), btree_node_common_prefix(), btree_node_header_redo_log(), btree_node_header_undo_log(), btree_node_is_compressed(), btree_node_size_uncompressed(), btree_overflow_remove_object(), btree_range_scan_advance_over_filtered_keys(), btree_range_scan_find_fk_any_object(), btree_range_scan_select_visible_oids(), btree_read_record(), btree_repair_prev_link_by_btid(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_nodehdr_undoredo_update(), btree_rv_record_modify_internal(), btree_rv_util_save_page_records(), btree_search_leaf_page(), btree_search_nonleaf_page(), btree_set_split_point(), btree_split_node(), btree_split_root(), btree_split_test(), btree_verify_leaf_node(), btree_verify_nonleaf_node(), btree_verify_subtree(), catalog_adjust_directory_count(), catalog_check_class_consistency(), catalog_drop_representation_helper(), catalog_file_map_find_optimal_page(), catalog_file_map_overflow_count(), catalog_file_map_page_dump(), catalog_get_class_info(), catalog_get_record_from_page(), catalog_get_rep_dir(), catalog_get_representation_record(), catalog_put_record_into_page(), catalog_update_class_info(), ehash_binary_search_bucket(), ehash_delete(), ehash_distribute_records_into_two_bucket(), ehash_dump_bucket(), ehash_find_first_bit_position(), ehash_insert_to_bucket(), ehash_map(), ehash_merge_permanent(), ehash_rv_delete(), ehash_rv_delete_redo(), ehash_search(), record_descriptor::get(), heap_check_all_pages(), heap_copy_chain(), heap_copy_header_stats(), heap_delete_bigone(), heap_delete_home(), heap_delete_logical(), heap_delete_relocation(), heap_dump(), heap_estimate(), heap_flush(), heap_get_chain_ptr(), heap_get_class_oid_from_page(), heap_get_header_stats_ptr(), heap_get_if_diff_chn(), heap_get_last_page(), heap_get_mvcc_header(), heap_get_num_objects(), heap_get_page_info(), heap_get_record_data_when_all_ready(), heap_get_record_info(), heap_header_next_scan(), heap_ovf_find_vfid(), heap_page_get_max_mvccid(), heap_page_get_vacuum_status(), heap_page_rv_chain_update(), heap_page_set_vacuum_status_none(), heap_page_update_chain_after_mvcc_op(), heap_prepare_get_context(), heap_reinitialize_page(), heap_remove_page_on_vacuum(), heap_reuse(), heap_rv_mvcc_redo_delete_internal(), heap_rv_mvcc_undo_delete(), heap_rv_redo_reuse_page(), heap_rv_redo_reuse_page_reuse_oid(), heap_stats_find_best_page(), heap_stats_update_internal(), heap_update_home(), heap_update_logical(), heap_update_relocation(), heap_update_set_prev_version(), heap_vpid_next(), heap_vpid_prev(), heap_vpid_remove(), log_rv_record_modify_internal(), page_key_boundary::set_value(), vacuum_heap_prepare_record(), vacuum_rv_check_at_undo(), vacuum_rv_redo_vacuum_heap_page(), and xheap_reclaim_addresses().

int spage_get_record_length ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PGSLOTID  slotid 
)
SPAGE_SLOT* spage_get_slot ( PAGE_PTR  page_p,
PGSLOTID  slot_id 
)
int spage_get_space_for_record ( THREAD_ENTRY thread_p,
PAGE_PTR  page_p,
PGSLOTID  slot_id 
)
int spage_header_end_scan ( THREAD_ENTRY thread_p,
void **  ctx 
)

Definition at line 5048 of file slotted_page.c.

References db_private_free_and_init, NO_ERROR, and NULL.

Referenced by showstmt_scan_init().

Here is the caller graph for this function:

int spage_header_size ( void  )

Definition at line 837 of file slotted_page.c.

Referenced by btree_find_AR_sampling_leaf().

Here is the caller graph for this function:

bool spage_is_mvcc_updatable ( THREAD_ENTRY thread_p,
PAGE_PTR  page_p,
PGSLOTID  slot_id,
int  delete_record_length,
int  insert_record_length 
)

Definition at line 2664 of file slotted_page.c.

References SP_SUCCESS, and spage_check_mvcc_updatable().

bool spage_is_slot_exist ( PAGE_PTR  pgptr,
PGSLOTID  slotid 
)

Definition at line 4078 of file slotted_page.c.

References assert, NULL, REC_DELETED_WILL_REUSE, REC_MARKDELETED, spage_slot::record_type, spage_find_slot(), and SPAGE_VERIFY_HEADER.

Referenced by heap_does_exist().

Here is the caller graph for this function:

bool spage_is_updatable ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PGSLOTID  slotid,
int  recdes_length 
)

Definition at line 2643 of file slotted_page.c.

References NULL, SP_SUCCESS, and spage_check_updatable().

Referenced by heap_delete_home(), heap_delete_relocation(), heap_update_home(), heap_update_relocation(), and serial_update_serial_object().

Here is the caller graph for this function:

bool spage_is_valid_anchor_type ( const INT16  anchor_type)

Definition at line 364 of file slotted_page.c.

References ANCHORED, ANCHORED_DONT_REUSE_SLOTS, assert, UNANCHORED_ANY_SEQUENCE, and UNANCHORED_KEEP_SEQUENCE.

Referenced by sort_spage_initialize(), spage_delete(), spage_initialize(), and spage_vacuum_slot().

Here is the caller graph for this function:

int spage_max_record_size ( void  )
bool spage_need_compact ( THREAD_ENTRY thread_p,
PAGE_PTR  page_p 
)
SCAN_CODE spage_next_record_dont_skip_empty ( PAGE_PTR  pgptr,
PGSLOTID slotid,
RECDES recdes,
int  ispeeking 
)

Definition at line 4699 of file slotted_page.c.

References SPAGE_SEARCH_NEXT, and spage_search_record().

Referenced by heap_next_internal().

Here is the caller graph for this function:

PGNSLOTS spage_number_of_slots ( PAGE_PTR  pgptr)

Definition at line 879 of file slotted_page.c.

References assert, NULL, spage_header::num_slots, and SPAGE_VERIFY_HEADER.

Referenced by btree_merge_node_and_advance(), heap_get_insert_location_with_lock(), heap_reuse(), and heap_vacuum_all_objects().

Here is the caller graph for this function:

SCAN_CODE spage_previous_record ( PAGE_PTR  pgptr,
PGSLOTID slotid,
RECDES recdes,
int  ispeeking 
)

Definition at line 3815 of file slotted_page.c.

References SPAGE_SEARCH_PREV, and spage_search_record().

Referenced by heap_next_internal(), heap_prefetch(), and heap_scanrange_to_prior().

Here is the caller graph for this function:

SCAN_CODE spage_previous_record_dont_skip_empty ( PAGE_PTR  pgptr,
PGSLOTID slotid,
RECDES recdes,
int  ispeeking 
)

Definition at line 4716 of file slotted_page.c.

References SPAGE_SEARCH_PREV, and spage_search_record().

Referenced by heap_next_internal().

Here is the caller graph for this function:

int spage_put ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PGSLOTID  slotid,
int  offset,
const RECDES recdes 
)

Definition at line 3143 of file slotted_page.c.

References spage_put_helper().

void spage_set_need_update_best_hint ( THREAD_ENTRY thread_p,
PAGE_PTR  page_p,
bool  need_update 
)

Definition at line 962 of file slotted_page.c.

References assert, spage_header::need_update_best_hint, NULL, and SPAGE_VERIFY_HEADER.

Referenced by heap_stats_update().

Here is the caller graph for this function:

int spage_slots_end_scan ( THREAD_ENTRY thread_p,
void **  ctx 
)

Definition at line 5223 of file slotted_page.c.

References db_private_free, NO_ERROR, NULL, and spage_slots_context::pgptr.

Referenced by showstmt_scan_init().

Here is the caller graph for this function:

int spage_update ( THREAD_ENTRY thread_p,
PAGE_PTR  pgptr,
PGSLOTID  slotid,
const RECDES recdes 
)

Definition at line 2562 of file slotted_page.c.

References ARG_FILE_LINE, assert, DONT_FREE, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), spage_header::is_saving, recdes::length, NO_ERROR, NULL, pgbuf_get_latch_mode(), PGBUF_LATCH_WRITE, pgbuf_set_dirty(), spage_slot::record_length, SP_ERROR, SP_SUCCESS, spage_check(), spage_check_updatable(), spage_save_space(), spage_update_record_after_compact(), spage_update_record_in_place(), SPAGE_VERIFY_HEADER, and spage_header::total_free.

Referenced by btree_build_nleafs(), btree_compress_node(), btree_insert_mvcc_delid_into_page(), btree_key_append_object_as_new_overflow(), btree_key_append_object_non_unique(), btree_key_append_object_to_overflow(), btree_key_append_object_unique(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_relocate_last_into_ovf(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_insert_mvccid(), btree_key_remove_object_and_keep_visible_first(), btree_leaf_record_replace_first_with_last(), btree_modify_leaf_ovfl_vpid(), btree_modify_overflow_link(), btree_overflow_record_replace_object(), btree_record_remove_object(), btree_replace_first_oid_with_ovfl_oid(), btree_rv_nodehdr_undoredo_update(), btree_rv_noderec_undoredo_update(), btree_rv_record_modify_internal(), catalog_adjust_directory_count(), catalog_drop_old_representations(), catalog_drop_representation_helper(), catalog_drop_representation_item(), catalog_put_record_into_page(), catalog_put_representation_item(), catalog_rv_update(), catalog_update_class_info(), ehash_merge_permanent(), heap_remove_page_on_vacuum(), heap_rv_mvcc_redo_delete_internal(), heap_rv_mvcc_undo_delete(), heap_rv_undoredo_pagehdr(), heap_update_bigone(), heap_update_physical(), heap_vpid_remove(), log_rv_record_modify_internal(), serial_update_serial_object(), vacuum_heap_record_insid_and_prev_version(), vacuum_rv_check_at_undo(), vacuum_rv_redo_vacuum_heap_page(), and xheap_reclaim_addresses().