File slotted_page.h
FileList > cubrid > src > storage > slotted_page.h
Go to the source code of this file
#include "config.h"
#include "error_manager.h"
#include "storage_common.h"
#include "log_manager.h"
#include "vacuum.h"
Classes
Public Types
Public Functions
| Type |
Name |
| const char * |
spage_alignment_string (unsigned short alignment)
|
| const char * |
spage_anchor_flag_string (const INT16 anchor_type)
|
| int |
spage_append (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid, const RECDES * recdes)
|
| void |
spage_boot (THREAD_ENTRY * thread_p)
|
| int |
spage_check (THREAD_ENTRY * thread_p, PAGE_PTR page_p)
|
| bool |
spage_check_num_slots (THREAD_ENTRY * thread_p, PAGE_PTR page_p)
|
| int |
spage_check_slot_owner (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid)
|
| void |
spage_collect_statistics (PAGE_PTR pgptr, int * npages, int * nrecords, int * rec_length)
|
| int |
spage_compact (THREAD_ENTRY * thread_p, PAGE_PTR pgptr)
|
| 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)
|
| void |
spage_dump (THREAD_ENTRY * thread_p, FILE * fp, PAGE_PTR pgptr, int isrecord_printed)
|
| void |
spage_finalize (THREAD_ENTRY * thread_p)
|
| PGSLOTID |
spage_find_free_slot (PAGE_PTR page_p, SPAGE_SLOT ** out_slot_p, PGSLOTID start_id)
|
| void |
spage_free_saved_spaces (THREAD_ENTRY * thread_p, void * first_save_entry)
|
| 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)
|
| 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)
|
| 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)
|
| INT16 |
spage_get_record_type (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)
|
| SCAN_CODE |
spage_header_next_scan (THREAD_ENTRY * thread_p, int cursor, DB_VALUE ** out_values, int out_cnt, void * ctx)
|
| int |
spage_header_start_scan (THREAD_ENTRY * thread_p, int show_type, DB_VALUE ** arg_values, int arg_cnt, void ** ctx)
|
| 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)
|
| 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_is_slot_exist (PAGE_PTR pgptr, PGSLOTID slotid)
|
| bool |
spage_is_updatable (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int recdes_length)
|
| bool |
spage_is_valid_anchor_type (const INT16 anchor_type)
|
| int |
spage_mark_deleted_slot_as_reusable (THREAD_ENTRY * thread_p, PAGE_PTR page_p, PGSLOTID slot_id)
|
| int |
spage_max_record_size (void)
|
| int |
spage_max_space_for_new_record (THREAD_ENTRY * thread_p, PAGE_PTR pgptr)
|
| int |
spage_merge (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid1, PGSLOTID slotid2)
|
| bool |
spage_need_compact (THREAD_ENTRY * thread_p, PAGE_PTR page_p)
|
| 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)
|
| PGNSLOTS |
spage_number_of_records (PAGE_PTR pgptr)
|
| PGNSLOTS |
spage_number_of_slots (PAGE_PTR pgptr)
|
| int |
spage_overwrite (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int overwrite_offset, const RECDES * recdes)
|
| 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)
|
| int |
spage_put (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int offset, const RECDES * recdes)
|
| bool |
spage_reclaim (THREAD_ENTRY * thread_p, PAGE_PTR pgptr)
|
| void |
spage_set_need_update_best_hint (THREAD_ENTRY * thread_p, PAGE_PTR page_p, bool need_update)
|
| int |
spage_slots_end_scan (THREAD_ENTRY * thread_p, 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_start_scan (THREAD_ENTRY * thread_p, int show_type, DB_VALUE ** arg_values, int arg_cnt, void ** ctx)
|
| int |
spage_split (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int offset, PGSLOTID * new_slotid)
|
| int |
spage_take_out (THREAD_ENTRY * thread_p, PAGE_PTR pgptr, PGSLOTID slotid, int takeout_offset, int takeout_length)
|
| 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)
|
| void |
spage_vacuum_slot (THREAD_ENTRY * thread_p, PAGE_PTR page_p, PGSLOTID slotid, bool reusable)
|
Macros
| Type |
Name |
| define |
DONT_SAFEGUARD_RVSPACE [**false**](broker__monitor_8c.md#function-timeout)
|
| define |
SAFEGUARD_RVSPACE [**true**](broker__monitor_8c.md#function-timeout)
|
| define |
SPAGE_HEADER_FLAG_ALL_VISIBLE 0x1 /\* [**All**](broker__monitor_8c.md#function-timeout) [**records**](broker__monitor_8c.md#function-timeout) [**are**](broker__monitor_8c.md#function-timeout) [**visible**](broker__monitor_8c.md#function-timeout) \*/ /\* unused \*/
|
| define |
SPAGE_HEADER_FLAG_NONE 0x0 /\* [**No**](broker__monitor_8c.md#function-timeout) flags \*/
|
| define |
SPAGE_HEADER_SIZE ([**sizeof**](broker__monitor_8c.md#function-timeout)([**SPAGE\_HEADER**](slotted__page_8h.md#typedef-spage_header)))
|
| define |
SPAGE_SLOT_SIZE ([**sizeof**](broker__monitor_8c.md#function-timeout)([**SPAGE\_SLOT**](slotted__page_8h.md#typedef-spage_slot)))
|
| define |
SP_DOESNT_FIT (3)
|
| define |
SP_ERROR (-1)
|
| define |
SP_SUCCESS (1)
|
Public Types Documentation
typedef struct spage_header SPAGE_HEADER;
typedef SPAGE_SLOT
typedef struct spage_slot SPAGE_SLOT;
enum slotted__page_8h_1a12acb3634428eafc5724df6d836f4e64
enum slotted__page_8h_1a12acb3634428eafc5724df6d836f4e64 {
ANCHORED = 1,
ANCHORED_DONT_REUSE_SLOTS = 2,
UNANCHORED_ANY_SEQUENCE = 3,
UNANCHORED_KEEP_SEQUENCE = 4
};
Public Functions Documentation
function spage_alignment_string
const char * spage_alignment_string (
unsigned short alignment
)
function spage_anchor_flag_string
const char * spage_anchor_flag_string (
const INT16 anchor_type
)
function spage_append
int spage_append (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
const RECDES * recdes
)
function spage_boot
void spage_boot (
THREAD_ENTRY * thread_p
)
function spage_check
int spage_check (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p
)
function spage_check_num_slots
bool spage_check_num_slots (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p
)
function spage_check_slot_owner
int spage_check_slot_owner (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid
)
function spage_collect_statistics
void spage_collect_statistics (
PAGE_PTR pgptr,
int * npages,
int * nrecords,
int * rec_length
)
function spage_compact
int spage_compact (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr
)
function spage_delete
PGSLOTID spage_delete (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid
)
function spage_delete_for_recovery
PGSLOTID spage_delete_for_recovery (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid
)
function spage_dump
void spage_dump (
THREAD_ENTRY * thread_p,
FILE * fp,
PAGE_PTR pgptr,
int isrecord_printed
)
function spage_finalize
void spage_finalize (
THREAD_ENTRY * thread_p
)
function spage_find_free_slot
PGSLOTID spage_find_free_slot (
PAGE_PTR page_p,
SPAGE_SLOT ** out_slot_p,
PGSLOTID start_id
)
function spage_free_saved_spaces
void spage_free_saved_spaces (
THREAD_ENTRY * thread_p,
void * first_save_entry
)
function spage_get_free_space
int spage_get_free_space (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr
)
function spage_get_free_space_without_saving
int spage_get_free_space_without_saving (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p,
bool * need_update
)
SCAN_CODE spage_get_page_header_info (
PAGE_PTR page_p,
DB_VALUE ** page_header_info
)
function spage_get_record
SCAN_CODE spage_get_record (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
RECDES * recdes,
int ispeeking
)
function spage_get_record_length
int spage_get_record_length (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid
)
function spage_get_record_offset
int spage_get_record_offset (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p,
PGSLOTID slot_id
)
function spage_get_record_type
INT16 spage_get_record_type (
PAGE_PTR pgptr,
PGSLOTID slotid
)
function spage_get_slot
SPAGE_SLOT * spage_get_slot (
PAGE_PTR page_p,
PGSLOTID slot_id
)
function spage_get_space_for_record
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
)
SCAN_CODE spage_header_next_scan (
THREAD_ENTRY * thread_p,
int cursor,
DB_VALUE ** out_values,
int out_cnt,
void * ctx
)
int spage_header_start_scan (
THREAD_ENTRY * thread_p,
int show_type,
DB_VALUE ** arg_values,
int arg_cnt,
void ** ctx
)
function spage_initialize
void spage_initialize (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
INT16 slots_type,
unsigned short alignment,
bool safeguard_rvspace
)
function spage_insert
int spage_insert (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
RECDES * recdes,
PGSLOTID * slotid
)
function spage_insert_at
int spage_insert_at (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
RECDES * recdes
)
function spage_insert_for_recovery
int spage_insert_for_recovery (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
RECDES * recdes
)
function spage_is_mvcc_updatable
bool spage_is_mvcc_updatable (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p,
PGSLOTID slot_id,
int delete_record_length,
int insert_record_length
)
function spage_is_slot_exist
bool spage_is_slot_exist (
PAGE_PTR pgptr,
PGSLOTID slotid
)
function spage_is_updatable
bool spage_is_updatable (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
int recdes_length
)
function spage_is_valid_anchor_type
bool spage_is_valid_anchor_type (
const INT16 anchor_type
)
function spage_mark_deleted_slot_as_reusable
int spage_mark_deleted_slot_as_reusable (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p,
PGSLOTID slot_id
)
function spage_max_record_size
int spage_max_record_size (
void
)
function spage_max_space_for_new_record
int spage_max_space_for_new_record (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr
)
function spage_merge
int spage_merge (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid1,
PGSLOTID slotid2
)
function spage_need_compact
bool spage_need_compact (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p
)
function spage_next_record
SCAN_CODE spage_next_record (
PAGE_PTR pgptr,
PGSLOTID * slotid,
RECDES * recdes,
int ispeeking
)
function spage_next_record_dont_skip_empty
SCAN_CODE spage_next_record_dont_skip_empty (
PAGE_PTR pgptr,
PGSLOTID * slotid,
RECDES * recdes,
int ispeeking
)
function spage_number_of_records
PGNSLOTS spage_number_of_records (
PAGE_PTR pgptr
)
function spage_number_of_slots
PGNSLOTS spage_number_of_slots (
PAGE_PTR pgptr
)
function spage_overwrite
int spage_overwrite (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
int overwrite_offset,
const RECDES * recdes
)
function spage_previous_record
SCAN_CODE spage_previous_record (
PAGE_PTR pgptr,
PGSLOTID * slotid,
RECDES * recdes,
int ispeeking
)
function spage_previous_record_dont_skip_empty
SCAN_CODE spage_previous_record_dont_skip_empty (
PAGE_PTR pgptr,
PGSLOTID * slotid,
RECDES * recdes,
int ispeeking
)
function spage_put
int spage_put (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
int offset,
const RECDES * recdes
)
function spage_reclaim
bool spage_reclaim (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr
)
function spage_set_need_update_best_hint
void spage_set_need_update_best_hint (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p,
bool need_update
)
function spage_slots_end_scan
int spage_slots_end_scan (
THREAD_ENTRY * thread_p,
void ** ctx
)
function spage_slots_next_scan
SCAN_CODE spage_slots_next_scan (
THREAD_ENTRY * thread_p,
int cursor,
DB_VALUE ** out_values,
int out_cnt,
void * ctx
)
function spage_slots_start_scan
int spage_slots_start_scan (
THREAD_ENTRY * thread_p,
int show_type,
DB_VALUE ** arg_values,
int arg_cnt,
void ** ctx
)
function spage_split
int spage_split (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
int offset,
PGSLOTID * new_slotid
)
function spage_take_out
int spage_take_out (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
int takeout_offset,
int takeout_length
)
function spage_update
int spage_update (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
const RECDES * recdes
)
function spage_update_record_type
void spage_update_record_type (
THREAD_ENTRY * thread_p,
PAGE_PTR pgptr,
PGSLOTID slotid,
INT16 type
)
function spage_vacuum_slot
void spage_vacuum_slot (
THREAD_ENTRY * thread_p,
PAGE_PTR page_p,
PGSLOTID slotid,
bool reusable
)
Macro Definition Documentation
define DONT_SAFEGUARD_RVSPACE
#define DONT_SAFEGUARD_RVSPACE `false`
define SAFEGUARD_RVSPACE
#define SAFEGUARD_RVSPACE `true`
#define SPAGE_HEADER_FLAG_ALL_VISIBLE `0x1 /* All records are visible */ /* unused */`
#define SPAGE_HEADER_FLAG_NONE `0x0 /* No flags */`
#define SPAGE_HEADER_SIZE `( sizeof ( SPAGE_HEADER ))`
define SPAGE_SLOT_SIZE
#define SPAGE_SLOT_SIZE `( sizeof ( SPAGE_SLOT ))`
define SP_DOESNT_FIT
#define SP_DOESNT_FIT `(3)`
define SP_ERROR
define SP_SUCCESS
The documentation for this class was generated from the following file cubrid/src/storage/slotted_page.h