CUBRID Engine
latest
|
#include "config.h"
#include "error_manager.h"
#include "storage_common.h"
#include "log_manager.h"
#include "vacuum.h"
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 } |
#define DONT_SAFEGUARD_RVSPACE false |
Definition at line 54 of file slotted_page.h.
Referenced by btree_initialize_new_page(), btree_rv_newpage_redo_init(), ehash_initialize_bucket_new_page(), and ehash_rv_init_bucket_redo().
#define SAFEGUARD_RVSPACE true |
Definition at line 53 of file slotted_page.h.
Referenced by catalog_initialize_new_page(), catalog_rv_new_page_redo(), heap_create_internal(), heap_reinitialize_page(), heap_rv_redo_newpage(), and heap_vpid_init_new().
#define SP_DOESNT_FIT (3) |
Definition at line 51 of file slotted_page.h.
Referenced by catalog_put_representation_item(), ehash_insert_to_bucket(), spage_check_mvcc_updatable(), spage_check_record_for_insert(), spage_check_space(), spage_check_updatable(), spage_find_empty_slot(), spage_put_helper(), and spage_split().
#define SP_ERROR (-1) |
Definition at line 49 of file slotted_page.h.
Referenced by btree_rv_nodehdr_redo_insert(), btree_rv_nodehdr_undoredo_update(), btree_rv_noderec_redo_insert(), btree_rv_noderec_undoredo_update(), btree_rv_pagerec_insert(), catalog_rv_insert_redo(), ehash_initialize_bucket_new_page(), ehash_rv_init_bucket_redo(), heap_find_location_and_insert_rec_newhome(), heap_get_insert_location_with_lock(), heap_rv_redo_insert(), heap_rv_redo_reuse_page(), heap_rv_redo_reuse_page_reuse_oid(), heap_rv_undoredo_pagehdr(), heap_update_physical(), heap_vpid_remove(), spage_check_mvcc_updatable(), spage_check_space(), spage_check_updatable(), spage_find_empty_slot(), spage_find_empty_slot_at(), spage_find_free_slot(), spage_insert_at(), spage_insert_data(), spage_insert_for_recovery(), 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(), and spage_update_record_in_place().
#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 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.
anonymous enum |
Enumerator | |
---|---|
ANCHORED | |
ANCHORED_DONT_REUSE_SLOTS | |
UNANCHORED_ANY_SEQUENCE | |
UNANCHORED_KEEP_SEQUENCE |
Definition at line 36 of file slotted_page.h.
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().
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().
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().
void spage_boot | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 798 of file slotted_page.c.
References assert, db_page_size(), DOUBLE_ALIGNMENT, cubthread::lockfree_hashmap< Key, T >::init(), INT_ALIGNMENT, spage_saving_Ts, spage_User_page_size, and THREAD_TS_SPAGE_SAVING.
Referenced by boot_create_all_volumes(), boot_restart_server(), and xboot_emergency_patch().
int spage_check | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p | ||
) |
Definition at line 4402 of file slotted_page.c.
References spage_header::alignment, ARG_FILE_LINE, assert, spage_header::cont_free, DB_ALIGN, ER_ERROR_SEVERITY, er_set(), ER_SP_INVALID_HEADER, i, spage_header::is_saving, NO_ERROR, NULL, spage_header::num_records, spage_header::num_slots, spage_header::offset_to_free_area, spage_slot::offset_to_record, pgbuf_get_page_id(), pgbuf_get_volume_label(), spage_slot::record_length, SPAGE_DB_PAGESIZE, SPAGE_EMPTY_OFFSET, spage_find_slot(), spage_get_saved_spaces(), SPAGE_VERIFY_HEADER, and spage_header::total_free.
Referenced by btree_check_pages(), heap_check_all_pages_by_heapchain(), spage_delete(), spage_delete_for_recovery(), spage_dump(), spage_find_slot_for_insert(), spage_insert_at(), spage_insert_data(), spage_insert_for_recovery(), spage_merge(), spage_overwrite(), spage_put_helper(), spage_reclaim(), spage_split(), spage_take_out(), spage_update(), and spage_vacuum_slot().
bool spage_check_num_slots | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p | ||
) |
Definition at line 4368 of file slotted_page.c.
References assert, i, NULL, spage_header::num_records, spage_header::num_slots, spage_slot::offset_to_record, SPAGE_EMPTY_OFFSET, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by btree_merge_node_and_advance(), and btree_split_node_and_advance().
int spage_check_slot_owner | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid | ||
) |
Definition at line 4527 of file slotted_page.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, er_set(), ER_SP_UNKNOWN_SLOTID, logtb_find_current_tranid(), NULL, spage_slot::offset_to_record, pgbuf_get_page_id(), pgbuf_get_volume_label(), spage_find_slot(), SPAGE_VERIFY_HEADER, STATIC_INLINE, and spage_save_entry::tranid.
Referenced by heap_prepare_get_context().
void spage_collect_statistics | ( | PAGE_PTR | pgptr, |
int * | npages, | ||
int * | nrecords, | ||
int * | rec_length | ||
) |
Definition at line 1032 of file slotted_page.c.
References assert, i, NULL, spage_header::num_slots, spage_slot::offset_to_record, REC_BIGONE, REC_HOME, REC_NEWHOME, spage_slot::record_length, spage_slot::record_type, SPAGE_DB_PAGESIZE, SPAGE_EMPTY_OFFSET, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by heap_stats_sync_bestspace(), and xheap_reclaim_addresses().
int spage_compact | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 1179 of file slotted_page.c.
References spage_header::alignment, ARG_FILE_LINE, assert, ASSERT_ALIGN, assert_release, spage_header::cont_free, DB_ALIGN, ER_ERROR_SEVERITY, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), ER_SP_WRONG_NUM_SLOTS, fileio_get_volume_label(), free_and_init, i, logpb_fatal_error_exit_immediately_wo_flush(), NO_ERROR, NULL, spage_header::num_records, spage_header::num_slots, spage_header::offset_to_free_area, spage_slot::offset_to_record, vpid::pageid, PEEK, pgbuf_get_page_ptype(), pgbuf_get_vpid(), REC_4BIT_USED_TYPE_MAX, spage_slot::record_length, spage_slot::record_type, spage_compare_slot_offset(), SPAGE_DB_PAGESIZE, SPAGE_EMPTY_OFFSET, spage_find_slot(), spage_is_slotted_page_type(), spage_verify_header(), spage_header::total_free, and vpid::volid.
Referenced by heap_compact_pages(), spage_has_enough_contiguous_space(), spage_merge(), spage_put_helper(), spage_split(), spage_update_record_after_compact(), vacuum_heap_page_log_and_reset(), vacuum_rv_redo_vacuum_heap_page(), and vacuum_rv_redo_vacuum_heap_record().
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().
PGSLOTID spage_delete_for_recovery | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid | ||
) |
Definition at line 2185 of file slotted_page.c.
References spage_header::anchor_type, ANCHORED_DONT_REUSE_SLOTS, assert, DONT_FREE, NULL, NULL_SLOTID, spage_slot::offset_to_record, pgbuf_set_dirty(), REC_DELETED_WILL_REUSE, REC_MARKDELETED, spage_slot::record_type, spage_check(), spage_delete(), SPAGE_EMPTY_OFFSET, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by btree_rv_noderec_undo_insert(), catalog_rv_insert_undo(), heap_rv_undo_insert(), and spage_split().
void spage_dump | ( | THREAD_ENTRY * | thread_p, |
FILE * | fp, | ||
PAGE_PTR | pgptr, | ||
int | isrecord_printed | ||
) |
Definition at line 4327 of file slotted_page.c.
References spage_header::alignment, assert, i, NULL, spage_header::num_slots, pgbuf_get_page_id(), pgbuf_get_volume_label(), pgbuf_get_vpid_ptr(), spage_check(), spage_dump_header(), spage_dump_record(), spage_dump_saved_spaces_by_other_trans(), spage_dump_slots(), and spage_find_slot().
Referenced by catalog_file_map_page_dump(), and heap_dump().
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().
PGSLOTID spage_find_free_slot | ( | PAGE_PTR | page_p, |
SPAGE_SLOT ** | out_slot_p, | ||
PGSLOTID | start_id | ||
) |
Definition at line 1299 of file slotted_page.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), NULL, spage_header::num_records, spage_header::num_slots, REC_DELETED_WILL_REUSE, spage_slot::record_type, SP_ERROR, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by heap_get_insert_location_with_lock(), spage_check_mvcc_updatable(), and spage_find_empty_slot().
void spage_free_saved_spaces | ( | THREAD_ENTRY * | thread_p, |
void * | first_save_entry | ||
) |
Definition at line 382 of file slotted_page.c.
References assert, assert_release, cubthread::lockfree_hashmap< Key, T >::end_tran(), cubthread::lockfree_hashmap< Key, T >::erase_locked(), spage_save_head::first, free_and_init, spage_save_entry::head, logtb_find_current_tranid(), spage_save_head::mutex, spage_save_entry::next, NULL, spage_save_entry::prev, pthread_mutex_lock, pthread_mutex_unlock, rv, spage_save_entry::saved, cubthread::lockfree_hashmap< Key, T >::start_tran(), success(), spage_save_head::total_saved, spage_save_entry::tran_next_save, spage_save_entry::tranid, and spage_save_head::vpid.
Referenced by log_abort_local(), and log_commit_local().
int spage_get_free_space | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 898 of file slotted_page.c.
References assert, NULL, spage_get_total_saved_spaces(), SPAGE_VERIFY_HEADER, and spage_header::total_free.
Referenced by btree_get_subtree_capacity(), btree_merge_node_and_advance(), btree_node_mergeable(), btree_node_size_uncompressed(), ehash_hash(), and heap_get_capacity().
int spage_get_free_space_without_saving | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p, | ||
bool * | need_update | ||
) |
Definition at line 925 of file slotted_page.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), spage_header::need_update_best_hint, NULL, SPAGE_VERIFY_HEADER, and spage_header::total_free.
Referenced by btree_key_insert_does_leaf_need_split(), btree_key_online_index_IB_insert_list(), btree_split_node_and_advance(), heap_delete_physical(), heap_reuse(), heap_stats_update(), vacuum_heap_page(), and xheap_reclaim_addresses().
Definition at line 4730 of file slotted_page.c.
References spage_header::alignment, spage_header::anchor_type, spage_header::cont_free, db_make_int(), HEAP_PAGE_INFO_ALIGNMENT, HEAP_PAGE_INFO_ANCHOR_TYPE, HEAP_PAGE_INFO_CONT_FREE, HEAP_PAGE_INFO_IS_SAVING, HEAP_PAGE_INFO_NUM_RECORDS, HEAP_PAGE_INFO_NUM_SLOTS, HEAP_PAGE_INFO_OFFSET_TO_FREE_AREA, HEAP_PAGE_INFO_TOTAL_FREE, HEAP_PAGE_INFO_UPDATE_BEST, spage_header::is_saving, spage_header::need_update_best_hint, NULL, spage_header::num_records, spage_header::num_slots, spage_header::offset_to_free_area, S_SUCCESS, SPAGE_VERIFY_HEADER, and spage_header::total_free.
Referenced by heap_get_page_info().
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 | ||
) |
Definition at line 3937 of file slotted_page.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, er_set(), ER_SP_UNKNOWN_SLOTID, NULL, pgbuf_get_page_id(), pgbuf_get_volume_label(), spage_slot::record_length, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by ehash_hash(), and heap_get_capacity().
int spage_get_record_offset | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p, | ||
PGSLOTID | slot_id | ||
) |
Definition at line 4764 of file slotted_page.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, er_set(), ER_SP_UNKNOWN_SLOTID, NULL, spage_slot::offset_to_record, pgbuf_get_page_id(), pgbuf_get_volume_label(), spage_find_slot(), and SPAGE_VERIFY_HEADER.
Definition at line 3997 of file slotted_page.c.
References assert, NULL, REC_DELETED_WILL_REUSE, REC_MARKDELETED, REC_UNKNOWN, spage_slot::record_type, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by heap_chkreloc_next(), heap_classrepr_get(), heap_delete_logical(), heap_does_exist(), heap_fix_forward_page(), heap_flush(), heap_get_capacity(), heap_get_record_location(), heap_next_internal(), heap_prefetch(), heap_scanrange_to_following(), heap_scanrange_to_prior(), heap_update_logical(), and heap_update_physical().
SPAGE_SLOT* spage_get_slot | ( | PAGE_PTR | page_p, |
PGSLOTID | slot_id | ||
) |
Definition at line 4795 of file slotted_page.c.
References assert, NULL, spage_header::num_slots, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by btree_is_fence_key(), heap_get_record_info(), heap_is_page_header(), heap_prepare_get_context(), and vacuum_heap_prepare_record().
int spage_get_space_for_record | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p, | ||
PGSLOTID | slot_id | ||
) |
Definition at line 3966 of file slotted_page.c.
References spage_header::alignment, ARG_FILE_LINE, assert, DB_WASTED_ALIGN, ER_ERROR_SEVERITY, er_set(), ER_SP_UNKNOWN_SLOTID, NULL, pgbuf_get_page_id(), pgbuf_get_volume_label(), spage_slot::record_length, spage_find_slot(), spage_slot_size(), and SPAGE_VERIFY_HEADER.
Referenced by btree_find_split_point().
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().
SCAN_CODE spage_header_next_scan | ( | THREAD_ENTRY * | thread_p, |
int | cursor, | ||
DB_VALUE ** | out_values, | ||
int | out_cnt, | ||
void * | ctx | ||
) |
Definition at line 4988 of file slotted_page.c.
References spage_header::alignment, spage_header::anchor_type, assert, spage_header::cont_free, db_make_int(), db_make_string(), spage_header::flags, spage_header_context::header, spage_header::is_saving, spage_header::need_update_best_hint, spage_header::num_records, spage_header::num_slots, spage_header::offset_to_free_area, vpid::pageid, S_END, S_SUCCESS, spage_alignment_string(), spage_anchor_flag_string(), spage_header::total_free, vpid::volid, and spage_header_context::vpid.
Referenced by showstmt_scan_init().
int spage_header_size | ( | void | ) |
Definition at line 837 of file slotted_page.c.
Referenced by btree_find_AR_sampling_leaf().
int spage_header_start_scan | ( | THREAD_ENTRY * | thread_p, |
int | show_type, | ||
DB_VALUE ** | arg_values, | ||
int | arg_cnt, | ||
void ** | ctx | ||
) |
Definition at line 4909 of file slotted_page.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, db_get_int(), db_private_alloc, db_private_free_and_init, DB_TYPE_INTEGER, DB_VALUE_TYPE, ER_DIAG_NOT_SPAGE, ER_DIAG_PAGE_NOT_FOUND, er_errid(), ER_ERROR_SEVERITY, er_set(), error(), spage_header_context::header, NO_ERROR, NULL, vpid::pageid, pgbuf_fix_if_not_deallocated, pgbuf_get_page_ptype(), PGBUF_LATCH_READ, PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, spage_is_slotted_page_type(), vpid::volid, and spage_header_context::vpid.
Referenced by showstmt_scan_init().
void spage_initialize | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
INT16 | slots_type, | ||
unsigned short | alignment, | ||
bool | safeguard_rvspace | ||
) |
Definition at line 1099 of file slotted_page.c.
References spage_header::alignment, spage_header::anchor_type, assert, CHAR_ALIGNMENT, spage_header::cont_free, DB_ALIGN, DONT_FREE, DOUBLE_ALIGNMENT, spage_header::flags, FLOAT_ALIGNMENT, INT_ALIGNMENT, spage_header::is_saving, LONG_ALIGNMENT, spage_header::need_update_best_hint, NULL, spage_header::num_records, spage_header::num_slots, spage_header::offset_to_free_area, pgbuf_set_dirty(), spage_header::reserved1, spage_header::reserved_bits, SHORT_ALIGNMENT, SPAGE_DB_PAGESIZE, SPAGE_HEADER_FLAG_NONE, spage_is_valid_anchor_type(), and spage_header::total_free.
Referenced by btree_initialize_new_page(), btree_rv_newpage_redo_init(), catalog_initialize_new_page(), catalog_rv_new_page_redo(), ehash_initialize_bucket_new_page(), ehash_rv_init_bucket_redo(), heap_create_internal(), heap_reinitialize_page(), heap_rv_redo_newpage(), heap_vpid_init_new(), and spage_reclaim().
int spage_insert | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
RECDES * | recdes, | ||
PGSLOTID * | slotid | ||
) |
Definition at line 1777 of file slotted_page.c.
References assert, NULL, SP_SUCCESS, spage_find_slot_for_insert(), spage_insert_data(), and STATIC_INLINE.
Referenced by btree_connect_page(), btree_construct_leafs(), btree_merge_node(), btree_save_last_leafrec(), catalog_add_class_info(), catalog_initialize_new_page(), catalog_insert_representation_item(), catalog_put_record_into_page(), catalog_rv_new_page_redo(), ehash_distribute_records_into_two_bucket(), ehash_initialize_bucket_new_page(), ehash_rv_init_bucket_redo(), heap_create_internal(), heap_find_location_and_insert_rec_newhome(), heap_reinitialize_page(), heap_rv_redo_newpage(), and heap_vpid_init_new().
int spage_insert_at | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid, | ||
RECDES * | recdes | ||
) |
Definition at line 1910 of file slotted_page.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, er_set(), ER_SP_UNKNOWN_SLOTID, recdes::length, NULL, spage_header::num_slots, pgbuf_get_page_id(), pgbuf_get_volume_label(), SP_ERROR, SP_SUCCESS, spage_check(), spage_check_record_for_insert(), spage_find_empty_slot_at(), spage_insert_data(), SPAGE_VERIFY_HEADER, and recdes::type.
Referenced by btree_init_node_header(), btree_init_overflow_header(), btree_init_root_header(), btree_key_insert_new_key(), btree_merge_root(), btree_rv_nodehdr_redo_insert(), btree_rv_noderec_redo_insert(), btree_rv_pagerec_insert(), btree_rv_record_modify_internal(), btree_split_node(), btree_split_root(), btree_split_test(), btree_start_overflow_page(), ehash_insert_to_bucket(), ehash_merge_permanent(), heap_insert_physical(), log_rv_record_modify_internal(), and spage_insert_for_recovery().
int spage_insert_for_recovery | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid, | ||
RECDES * | recdes | ||
) |
Definition at line 1970 of file slotted_page.c.
References spage_header::anchor_type, ANCHORED, ANCHORED_DONT_REUSE_SLOTS, ARG_FILE_LINE, assert, assert_release, recdes::data, DONT_FREE, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), recdes::length, NULL, spage_slot::offset_to_record, pgbuf_set_dirty(), REC_ASSIGN_ADDRESS, REC_DELETED_WILL_REUSE, spage_slot::record_type, SP_ERROR, SP_SUCCESS, spage_check(), spage_check_record_for_insert(), SPAGE_EMPTY_OFFSET, spage_find_empty_slot_at(), spage_find_slot(), spage_insert_at(), SPAGE_OVERFLOW, SPAGE_VERIFY_HEADER, and recdes::type.
Referenced by catalog_rv_insert_redo(), ehash_rv_insert_redo(), heap_rv_mvcc_redo_insert(), heap_rv_mvcc_redo_redistribute(), and heap_rv_redo_insert().
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().
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().
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().
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().
int spage_mark_deleted_slot_as_reusable | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p, | ||
PGSLOTID | slot_id | ||
) |
Definition at line 4025 of file slotted_page.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, er_set(), ER_SP_BAD_INSERTION_SLOT, ER_SP_UNKNOWN_SLOTID, NULL, spage_header::num_slots, spage_slot::offset_to_record, pgbuf_get_page_id(), pgbuf_get_volume_label(), REC_DELETED_WILL_REUSE, REC_MARKDELETED, spage_slot::record_type, SP_ERROR, SP_SUCCESS, SPAGE_EMPTY_OFFSET, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by heap_rv_redo_mark_reusable_slot().
int spage_max_record_size | ( | void | ) |
Definition at line 848 of file slotted_page.c.
References SPAGE_DB_PAGESIZE.
Referenced by catalog_initialize(), heap_manager_initialize(), heap_nonheader_page_capacity(), spage_check_mvcc_updatable(), spage_check_record_for_insert(), spage_check_updatable(), and spage_put_helper().
int spage_max_space_for_new_record | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 984 of file slotted_page.c.
References spage_header::alignment, spage_header::anchor_type, ANCHORED_DONT_REUSE_SLOTS, assert, DB_ALIGN_BELOW, NULL, spage_header::num_records, spage_header::num_slots, spage_get_total_saved_spaces(), SPAGE_VERIFY_HEADER, and spage_header::total_free.
Referenced by btree_connect_page(), btree_construct_leafs(), btree_find_AR_sampling_leaf(), btree_find_free_overflow_oids_page(), btree_key_insert_does_leaf_need_split(), btree_save_last_leafrec(), catalog_add_class_info(), catalog_add_representation(), catalog_create(), catalog_drop_all_representation_and_class(), catalog_drop_old_representations(), catalog_drop_representation_helper(), catalog_drop_representation_item(), catalog_file_map_find_optimal_page(), catalog_find_optimal_page(), catalog_insert_representation_item(), catalog_put_record_into_page(), catalog_put_representation_item(), ehash_check_merge_possible(), ehash_delete(), ehash_insert_to_bucket(), ehash_merge(), heap_create_internal(), heap_get_insert_location_with_lock(), heap_stats_find_page_in_bestspace(), and heap_stats_sync_bestspace().
int spage_merge | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid1, | ||
PGSLOTID | slotid2 | ||
) |
Definition at line 3483 of file slotted_page.c.
References spage_header::alignment, ARG_FILE_LINE, assert, ASSERT_ALIGN, assert_release, spage_header::cont_free, DB_WASTED_ALIGN, DONT_FREE, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), ER_SP_UNKNOWN_SLOTID, free_and_init, spage_header::is_saving, NO_ERROR, NULL, 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(), spage_slot::record_length, SP_ERROR, SP_SUCCESS, spage_add_contiguous_free_space(), spage_check(), spage_compact(), spage_delete(), SPAGE_EMPTY_OFFSET, spage_find_slot(), spage_is_record_located_at_end(), SPAGE_OVERFLOW, spage_reduce_contiguous_free_space(), spage_save_space(), SPAGE_VERIFY_HEADER, spage_verify_header(), and spage_header::total_free.
bool spage_need_compact | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p | ||
) |
Definition at line 5249 of file slotted_page.c.
References assert, spage_header::cont_free, NULL, SPAGE_DB_PAGESIZE, SPAGE_VERIFY_HEADER, and spage_header::total_free.
Referenced by vacuum_heap_page_log_and_reset(), vacuum_rv_redo_vacuum_heap_page(), and vacuum_rv_redo_vacuum_heap_record().
Definition at line 3781 of file slotted_page.c.
References SPAGE_SEARCH_NEXT, and spage_search_record().
Referenced by ehash_check_merge_possible(), ehash_dump_bucket(), ehash_locate_slot(), ehash_map(), ehash_split_bucket(), heap_chkreloc_next(), heap_delete_all_page_records(), heap_get_capacity(), heap_next_internal(), heap_prefetch(), heap_scanrange_to_following(), and redistribute_partition_data().
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().
Definition at line 860 of file slotted_page.c.
References assert, NULL, spage_header::num_records, and SPAGE_VERIFY_HEADER.
Referenced by btree_construct_leafs(), btree_node_number_of_keys(), btree_save_last_leafrec(), catalog_create(), ehash_check_merge_possible(), ehash_delete(), ehash_dump_bucket(), ehash_hash(), ehash_locate_slot(), ehash_map(), ehash_merge(), ehash_split_bucket(), heap_get_capacity(), heap_remove_page_on_vacuum(), vacuum_heap_page(), and xheap_reclaim_addresses().
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().
int spage_overwrite | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid, | ||
int | overwrite_offset, | ||
const RECDES * | recdes | ||
) |
Definition at line 3418 of file slotted_page.c.
References ARG_FILE_LINE, assert, assert_release, recdes::data, DONT_FREE, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), ER_SP_OVERWRITE_WRONG_OFFSET, ER_SP_UNKNOWN_SLOTID, recdes::length, NULL, spage_slot::offset_to_record, pgbuf_get_page_id(), pgbuf_get_volume_label(), pgbuf_set_dirty(), spage_slot::record_length, SP_ERROR, SP_SUCCESS, spage_check(), spage_find_slot(), SPAGE_OVERFLOW, and SPAGE_VERIFY_HEADER.
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().
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().
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().
bool spage_reclaim | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 2723 of file slotted_page.c.
References spage_header::alignment, spage_header::anchor_type, ANCHORED_DONT_REUSE_SLOTS, assert, DONT_FREE, spage_header::is_saving, NULL, spage_header::num_slots, spage_slot::offset_to_record, pgbuf_set_dirty(), REC_DELETED_WILL_REUSE, REC_MARKDELETED, spage_slot::record_type, spage_check(), SPAGE_EMPTY_OFFSET, spage_find_slot(), spage_initialize(), spage_reduce_a_slot(), and SPAGE_VERIFY_HEADER.
Referenced by xheap_reclaim_addresses().
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().
int spage_slot_size | ( | void | ) |
Definition at line 827 of file slotted_page.c.
Referenced by btree_find_AR_sampling_leaf(), btree_find_split_point(), btree_get_max_new_data_size(), ehash_hash(), heap_get_capacity(), heap_manager_initialize(), locator_multi_insert_force(), and spage_get_space_for_record().
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().
SCAN_CODE spage_slots_next_scan | ( | THREAD_ENTRY * | thread_p, |
int | cursor, | ||
DB_VALUE ** | out_values, | ||
int | out_cnt, | ||
void * | ctx | ||
) |
Definition at line 5166 of file slotted_page.c.
References spage_header::alignment, assert, db_make_int(), db_make_string(), DB_WASTED_ALIGN, if(), spage_header::num_slots, spage_slot::offset_to_record, vpid::pageid, spage_slots_context::pgptr, spage_slot::record_length, spage_slot::record_type, S_END, S_SUCCESS, spage_slots_context::slot, spage_record_type_string(), vpid::volid, and spage_slots_context::vpid.
Referenced by showstmt_scan_init().
int spage_slots_start_scan | ( | THREAD_ENTRY * | thread_p, |
int | show_type, | ||
DB_VALUE ** | arg_values, | ||
int | arg_cnt, | ||
void ** | ctx | ||
) |
Definition at line 5069 of file slotted_page.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, db_get_int(), db_private_alloc, db_private_free, db_private_free_and_init, DB_TYPE_INTEGER, DB_VALUE_TYPE, ER_DIAG_NOT_SPAGE, ER_DIAG_PAGE_NOT_FOUND, er_errid(), ER_ERROR_SEVERITY, er_set(), error(), NO_ERROR, NULL, vpid::pageid, pgbuf_fix_if_not_deallocated, pgbuf_get_page_ptype(), PGBUF_LATCH_READ, PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, spage_slots_context::pgptr, spage_slots_context::slot, SPAGE_DB_PAGESIZE, spage_find_slot(), spage_is_slotted_page_type(), vpid::volid, and spage_slots_context::vpid.
Referenced by showstmt_scan_init().
int spage_split | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid, | ||
int | offset, | ||
PGSLOTID * | new_slotid | ||
) |
Definition at line 2794 of file slotted_page.c.
References spage_header::alignment, ARG_FILE_LINE, assert, ASSERT_ALIGN, assert_release, spage_header::cont_free, DB_WASTED_ALIGN, DONT_FREE, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), ER_SP_SPLIT_WRONG_OFFSET, ER_SP_UNKNOWN_SLOTID, free_and_init, 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(), spage_slot::record_length, spage_slot::record_type, SP_DOESNT_FIT, SP_ERROR, SP_SUCCESS, spage_check(), spage_compact(), spage_delete_for_recovery(), SPAGE_EMPTY_OFFSET, spage_find_empty_slot(), spage_find_slot(), spage_has_enough_total_space(), SPAGE_OVERFLOW, spage_reduce_contiguous_free_space(), spage_save_space(), SPAGE_VERIFY_HEADER, spage_verify_header(), and spage_header::total_free.
int spage_take_out | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid, | ||
int | takeout_offset, | ||
int | takeout_length | ||
) |
Definition at line 2991 of file slotted_page.c.
References spage_header::alignment, ARG_FILE_LINE, assert, ASSERT_ALIGN, assert_release, spage_header::cont_free, DB_WASTED_ALIGN, DONT_FREE, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), ER_SP_TAKEOUT_WRONG_OFFSET, ER_SP_UNKNOWN_SLOTID, spage_header::is_saving, NO_ERROR, NULL, spage_header::offset_to_free_area, spage_slot::offset_to_record, pgbuf_get_page_id(), pgbuf_get_volume_label(), pgbuf_set_dirty(), spage_slot::record_length, SP_ERROR, SP_SUCCESS, spage_check(), spage_find_slot(), spage_is_record_located_at_end(), SPAGE_OVERFLOW, spage_save_space(), SPAGE_VERIFY_HEADER, spage_verify_header(), and spage_header::total_free.
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().
void spage_update_record_type | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
PGSLOTID | slotid, | ||
INT16 | type | ||
) |
Definition at line 2685 of file slotted_page.c.
References ARG_FILE_LINE, assert, DONT_FREE, ER_ERROR_SEVERITY, er_set(), ER_SP_UNKNOWN_SLOTID, NULL, pgbuf_get_latch_mode(), pgbuf_get_page_id(), pgbuf_get_volume_label(), PGBUF_LATCH_WRITE, pgbuf_set_dirty(), REC_4BIT_USED_TYPE_MAX, REC_UNKNOWN, spage_slot::record_type, spage_find_slot(), and SPAGE_VERIFY_HEADER.
Referenced by heap_update_bigone(), and heap_update_physical().
void spage_vacuum_slot | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | page_p, | ||
PGSLOTID | slotid, | ||
bool | reusable | ||
) |
Definition at line 4832 of file slotted_page.c.
References spage_header::alignment, spage_header::anchor_type, assert, DB_WASTED_ALIGN, NULL, spage_header::num_records, spage_slot::offset_to_record, pgbuf_get_vpid_ptr(), REC_DELETED_WILL_REUSE, REC_MARKDELETED, spage_slot::record_length, spage_slot::record_type, spage_check(), SPAGE_EMPTY_OFFSET, spage_find_slot(), spage_is_valid_anchor_type(), SPAGE_VERIFY_HEADER, spage_header::total_free, VACUUM_ER_LOG_ERROR, and vacuum_er_log_error.
Referenced by vacuum_heap_record(), vacuum_rv_redo_vacuum_heap_page(), and vacuum_rv_redo_vacuum_heap_record().