Skip to content

File system_catalog.c

FileList > cubrid > src > storage > system_catalog.c

Go to the source code of this file

  • #include <stdlib.h>
  • #include <string.h>
  • #include <time.h>
  • #include "system_catalog.h"
  • #include "error_manager.h"
  • #include "file_manager.h"
  • #include "log_append.hpp"
  • #include "slotted_page.h"
  • #include "extendible_hash.h"
  • #include "boot_sr.h"
  • #include "btree_load.h"
  • #include "heap_file.h"
  • #include "xserver_interface.h"
  • #include "statistics_sr.h"
  • #include "partition_sr.h"
  • #include "object_primitive.h"
  • #include "object_representation.h"
  • #include "thread_lockfree_hash_map.hpp"
  • #include "thread_manager.hpp"
  • #include "memory_wrapper.hpp"

Classes

Type Name
struct catalog_class_id_list
struct catalog_entry
struct catalog_find_optimal_page_context
struct catalog_key
struct catalog_max_space
struct catalog_page_collector
struct catalog_page_dump_context
struct catalog_page_header
struct catalog_record
struct catalog_repr_item

Public Types

Type Name
typedef struct catalog_class_id_list CATALOG_CLASS_ID_LIST
typedef struct catalog_entry CATALOG_ENTRY
typedef struct catalog_find_optimal_page_context CATALOG_FIND_OPTIMAL_PAGE_CONTEXT
typedef struct catalog_key CATALOG_KEY
typedef struct catalog_max_space CATALOG_MAX_SPACE
typedef struct catalog_page_collector CATALOG_PAGE_COLLECTOR
typedef struct catalog_page_dump_context CATALOG_PAGE_DUMP_CONTEXT
typedef struct catalog_page_header CATALOG_PAGE_HEADER
typedef struct catalog_record CATALOG_RECORD
typedef struct catalog_repr_item CATALOG_REPR_ITEM
typedef cubthread::lockfree_hashmap< catalog_key, catalog_entry > catalog_hashmap_type

Public Attributes

Type Name
CTID catalog_Id

Public Static Attributes

Type Name
catalog_hashmap_type catalog_Hashmap
PGLENGTH catalog_Max_record_size
CATALOG_MAX_SPACE catalog_Max_space
pthread_mutex_t catalog_Max_space_lock = [**PTHREAD\_MUTEX\_INITIALIZER**](broker__monitor_8c.md#function-timeout)
LF_ENTRY_DESCRIPTOR catalog_entry_Descriptor = /* multi line expression */
bool catalog_is_header_initialized = [**false**](broker__monitor_8c.md#function-timeout)

Public Functions

Type Name
int catalog_add_class_info (THREAD_ENTRY * thread_p, OID * class_id_p, CLS_INFO * class_info_p, CATALOG_ACCESS_INFO * catalog_access_info_p)
int catalog_add_representation (THREAD_ENTRY * thread_p, OID * class_id_p, REPR_ID repr_id, DISK_REPR * disk_repr_p, OID * rep_dir_p, CATALOG_ACCESS_INFO * catalog_access_info_p)
DISK_ISVALID catalog_check_consistency (THREAD_ENTRY * thread_p)
CTID * catalog_create (THREAD_ENTRY * thread_p, CTID * catalog_id_p)
int catalog_delete (THREAD_ENTRY * thread_p, OID * class_oid_p)
int catalog_drop_old_representations (THREAD_ENTRY * thread_p, OID * class_id_p)
void catalog_dump (THREAD_ENTRY * thread_p, FILE * fp, int dump_flag)
int catalog_end_access_with_dir_oid (THREAD_ENTRY * thread_p, CATALOG_ACCESS_INFO * catalog_access_info, int error)
void catalog_finalize (void)
void catalog_free_class_info (CLS_INFO * class_info_p)
void catalog_free_representation (DISK_REPR * repr_p)
int catalog_get_cardinality (THREAD_ENTRY * thread_p, OID * class_oid, DISK_REPR * rep, BTID * btid, const int key_pos, int * cardinality)
int catalog_get_cardinality_by_name (THREAD_ENTRY * thread_p, const char * class_name, const char * index_name, const int key_pos, int * cardinality)
CLS_INFO * catalog_get_class_info (THREAD_ENTRY * thread_p, OID * class_id_p, CATALOG_ACCESS_INFO * catalog_access_info_p)
int catalog_get_dir_oid_from_cache (THREAD_ENTRY * thread_p, const OID * class_id_p, OID * dir_oid_p)
int catalog_get_last_representation_id (THREAD_ENTRY * thread_p, OID * class_oid_p, REPR_ID * repr_id_p)
DISK_REPR * catalog_get_representation (THREAD_ENTRY * thread_p, OID * class_id_p, REPR_ID repr_id, CATALOG_ACCESS_INFO * catalog_access_info_p)
int catalog_get_representation_directory (THREAD_ENTRY * thread_p, OID * class_id_p, REPR_ID ** repr_id_set_p, int * repr_count_p)
void catalog_initialize (CTID * catalog_id_p)
int catalog_insert (THREAD_ENTRY * thread_p, RECDES * record_p, OID * class_oid_p, OID * rep_dir_p)
int catalog_reclaim_space (THREAD_ENTRY * thread_p)
int catalog_rv_delete_redo (THREAD_ENTRY * thread_p, LOG_RCV * recv_p)
int catalog_rv_delete_undo (THREAD_ENTRY * thread_p, LOG_RCV * recv_p)
int catalog_rv_insert_redo (THREAD_ENTRY * thread_p, LOG_RCV * recv_p)
int catalog_rv_insert_undo (THREAD_ENTRY * thread_p, LOG_RCV * recv_p)
int catalog_rv_new_page_redo (THREAD_ENTRY * thread_p, LOG_RCV * recv_p)
int catalog_rv_ovf_page_logical_insert_undo (THREAD_ENTRY * thread_p, LOG_RCV * recv_p)
int catalog_rv_update (THREAD_ENTRY * thread_p, LOG_RCV * recv_p)
int catalog_start_access_with_dir_oid (THREAD_ENTRY * thread_p, CATALOG_ACCESS_INFO * catalog_access_info, LOCK lock_mode)
int catalog_update (THREAD_ENTRY * thread_p, RECDES * record_p, OID * class_oid_p)
CLS_INFO * catalog_update_class_info (THREAD_ENTRY * thread_p, OID * class_id_p, CLS_INFO * class_info_p, CATALOG_ACCESS_INFO * catalog_access_info_p, bool skip_logging)
int xcatalog_check_rep_dir (THREAD_ENTRY * thread_p, OID * class_id_p, OID * rep_dir_p)

Public Static Functions

Type Name
int catalog_adjust_directory_count (THREAD_ENTRY * thread_p, PAGE_PTR page_p, RECDES * record_p, int delta)
int catalog_assign_attribute (THREAD_ENTRY * thread_p, DISK_ATTR * disk_attr_p, CATALOG_RECORD * catalog_record_p)
DISK_ISVALID catalog_check_class_consistency (THREAD_ENTRY * thread_p, OID * class_oid)
void catalog_clear_hash_table (THREAD_ENTRY * thread_p)
void catalog_copy_btree_statistic (BTREE_STATS * new_btree_stats_p, int new_btree_stats_count, BTREE_STATS * pre_btree_stats_p, int pre_btree_stats_count)
void catalog_copy_disk_attributes (DISK_ATTR * new_attrs_p, int new_attr_count, DISK_ATTR * pre_attrs_p, int pre_attr_count)
void catalog_delete_key (THREAD_ENTRY * thread_p, OID * class_id_p, REPR_ID repr_id)
int catalog_drop (THREAD_ENTRY * thread_p, OID * class_id, REPR_ID repr_id)
int catalog_drop_all (THREAD_ENTRY * thread_p, OID * class_id)
int catalog_drop_all_representation_and_class (THREAD_ENTRY * thread_p, OID * class_id)
int catalog_drop_directory (THREAD_ENTRY * thread_p, PAGE_PTR page_p, RECDES * record_p, OID * oid_p, OID * class_id_p)
int catalog_drop_disk_representation_from_page (THREAD_ENTRY * thread_p, VPID * page_id, PGSLOTID slot_id)
int catalog_drop_representation_class_from_page (THREAD_ENTRY * thread_p, VPID * dir_pgid, PAGE_PTR * dir_pgptr, VPID * page_id, PGSLOTID slot_id)
int catalog_drop_representation_helper (THREAD_ENTRY * thread_p, PAGE_PTR page_p, VPID * page_id_p, PGSLOTID slot_id)
int catalog_drop_representation_item (THREAD_ENTRY * thread_p, OID * class_id, CATALOG_REPR_ITEM * repr_item)
void catalog_dump_disk_attribute (DISK_ATTR * atr)
void catalog_dump_representation (DISK_REPR * dr)
void * catalog_entry_alloc (void)
int catalog_entry_free (void * ent)
int catalog_entry_init (void * ent)
int catalog_entry_uninit (void * ent)
int catalog_fetch_attribute_value (THREAD_ENTRY * thread_p, void * value, int length, CATALOG_RECORD * ct_recordp)
int catalog_fetch_btree_statistics (THREAD_ENTRY * thread_p, BTREE_STATS * bt_statsp, CATALOG_RECORD * ct_recordp)
int catalog_fetch_disk_attribute (THREAD_ENTRY * thread_p, DISK_ATTR * disk_attrp, CATALOG_RECORD * ct_recordp)
int catalog_fetch_disk_representation (THREAD_ENTRY * thread_p, DISK_REPR * disk_reprp, CATALOG_RECORD * ct_recordp)
int catalog_file_map_find_optimal_page (THREAD_ENTRY * thread_p, PAGE_PTR * page, bool * stop, void * args)
int catalog_file_map_is_empty (THREAD_ENTRY * thread_p, PAGE_PTR * page, bool * stop, void * args)
int catalog_file_map_overflow_count (THREAD_ENTRY * thread_p, PAGE_PTR * page, bool * stop, void * args)
int catalog_file_map_page_dump (THREAD_ENTRY * thread_p, PAGE_PTR * page, bool * stop, void * args)
PAGE_PTR catalog_find_optimal_page (THREAD_ENTRY * thread_p, int size, VPID * page_id)
char * catalog_find_representation_item_position (INT16 repr_id, int repr_cnt, char * repr_p, int * out_position_p)
int catalog_fixup_missing_class_info (THREAD_ENTRY * thread_p, OID * class_oid)
int catalog_fixup_missing_disk_representation (THREAD_ENTRY * thread_p, OID * class_oid, REPR_ID reprid)
void catalog_free_key_list (CATALOG_CLASS_ID_LIST * clsid_list)
void catalog_get_btree_statistics (BTREE_STATS * stat_p, char * rec_p)
void catalog_get_class_info_from_record (CLS_INFO * class_info_p, char * rec_p)
void catalog_get_disk_attribute (DISK_ATTR * attr_p, char * rec_p)
void catalog_get_disk_representation (DISK_REPR * disk_repr_p, char * rec_p)
int catalog_get_key_list (THREAD_ENTRY * thread_p, void * key, void * val, void * args)
PAGE_PTR catalog_get_new_page (THREAD_ENTRY * thread_p, VPID * page_id, bool is_overflow_page)
int catalog_get_record_from_page (THREAD_ENTRY * thread_p, CATALOG_RECORD * ct_recordp)
int catalog_get_rep_dir (THREAD_ENTRY * thread_p, OID * class_oid_p, OID * rep_dir_p, bool lookup_hash)
void catalog_get_repr_item_from_record (CATALOG_REPR_ITEM * item_p, char * rec_p)
int catalog_get_representation_item (THREAD_ENTRY * thread_p, OID * class_id, CATALOG_REPR_ITEM * repr_item)
PAGE_PTR catalog_get_representation_record (THREAD_ENTRY * thread_p, OID * rep_dir_p, RECDES * record_p, PGBUF_LATCH_MODE latch, int is_peek, int * out_repr_count_p)
PAGE_PTR catalog_get_representation_record_after_search (THREAD_ENTRY * thread_p, OID * class_id_p, RECDES * record_p, PGBUF_LATCH_MODE latch, int is_peek, OID * rep_dir_p, int * out_repr_count_p, bool lookup_hash)
void catalog_initialize_max_space (CATALOG_MAX_SPACE * header_p)
int catalog_initialize_new_page (THREAD_ENTRY * thread_p, PAGE_PTR page, void * args)
int catalog_insert_representation_item (THREAD_ENTRY * thread_p, RECDES * record_p, OID * rep_dir_p)
int catalog_key_compare (void * key1, void * key2)
int catalog_key_copy (void * src, void * dest)
unsigned int catalog_key_hash (void * key, int htsize)
void catalog_put_btree_statistics (char * rec_p, BTREE_STATS * stat_p)
void catalog_put_class_info_to_record (char * rec_p, CLS_INFO * class_info_p)
void catalog_put_disk_attribute (char * rec_p, DISK_ATTR * attr_p)
void catalog_put_disk_representation (char * rec_p, DISK_REPR * disk_repr_p)
void catalog_put_page_header (char * rec_p, CATALOG_PAGE_HEADER * header_p)
int catalog_put_record_into_page (THREAD_ENTRY * thread_p, CATALOG_RECORD * ct_recordp, int next, PGSLOTID * remembered_slotid)
void catalog_put_repr_item_to_record (char * rec_p, CATALOG_REPR_ITEM * item_p)
int catalog_put_representation_item (THREAD_ENTRY * thread_p, OID * class_id, CATALOG_REPR_ITEM * repr_item, OID * rep_dir_p)
int catalog_read_unread_portion (THREAD_ENTRY * thread_p, CATALOG_RECORD * catalog_record_p, int format_size)
int catalog_store_attribute_value (THREAD_ENTRY * thread_p, void * value, int length, CATALOG_RECORD * ct_recordp, PGSLOTID * remembered_slotid)
int catalog_store_btree_statistics (THREAD_ENTRY * thread_p, BTREE_STATS * bt_statsp, CATALOG_RECORD * ct_recordp, PGSLOTID * remembered_slotid)
int catalog_store_disk_attribute (THREAD_ENTRY * thread_p, DISK_ATTR * disk_attrp, CATALOG_RECORD * ct_recordp, PGSLOTID * remembered_slotid)
int catalog_store_disk_representation (THREAD_ENTRY * thread_p, DISK_REPR * disk_reprp, CATALOG_RECORD * ct_recordp, PGSLOTID * remembered_slotid)
int catalog_sum_disk_attribute_size (DISK_ATTR * attrs_p, int count)
void catalog_update_max_space (VPID * page_id, PGLENGTH space)
int catalog_write_unwritten_portion (THREAD_ENTRY * thread_p, CATALOG_RECORD * catalog_record_p, PGSLOTID * remembered_slot_id_p, int format_size)

Macros

Type Name
define CATALOG_BT_STATS_BTID_OFF 0
define CATALOG_BT_STATS_FUNC_INDEX_OFF 28
define CATALOG_BT_STATS_HEIGHT_OFF 20
define CATALOG_BT_STATS_KEYS_OFF 24
define CATALOG_BT_STATS_LEAFS_OFF [**OR\_BTID\_ALIGNED\_SIZE**](object__representation__constants_8h.md#define-or_btid_aligned_size)
define CATALOG_BT_STATS_PAGES_OFF 16
define CATALOG_BT_STATS_PKEYS_OFF 32
define CATALOG_BT_STATS_RESERVED_OFF ([**CATALOG\_BT\_STATS\_PKEYS\_OFF**](system__catalog_8c.md#define-catalog_bt_stats_pkeys_off) + ([**OR\_INT\_SIZE**](object__representation__constants_8h.md#define-or_int_size) \* [**BTREE\_STATS\_PKEYS\_NUM**](statistics_8h.md#define-btree_stats_pkeys_num))) /\* 64 \*/
define CATALOG_BT_STATS_SIZE ([**CATALOG\_BT\_STATS\_RESERVED\_OFF**](system__catalog_8c.md#define-catalog_bt_stats_reserved_off) + ([**OR\_INT\_SIZE**](object__representation__constants_8h.md#define-or_int_size) \* [**BTREE\_STATS\_RESERVED\_NUM**](statistics_8h.md#define-btree_stats_reserved_num))) /\* 64 + (4 \* [**R\_NUM**](broker__monitor_8c.md#function-timeout)) = 80 \*/
define CATALOG_CLS_INFO_HFID_OFF 0
define CATALOG_CLS_INFO_REP_DIR_OFF 24
define CATALOG_CLS_INFO_RESERVED 24
define CATALOG_CLS_INFO_SIZE 56
define CATALOG_CLS_INFO_TIME_STAMP_OFF 20
define CATALOG_CLS_INFO_TOT_OBJS_OFF 16
define CATALOG_CLS_INFO_TOT_PAGES_OFF 12
define CATALOG_DISK_ATTR_CLASSOID_OFF 20
define CATALOG_DISK_ATTR_ID_OFF 0
define CATALOG_DISK_ATTR_LOCATION_OFF 4
define CATALOG_DISK_ATTR_NDV_OFF 80
define CATALOG_DISK_ATTR_N_BTSTATS_OFF 28
define CATALOG_DISK_ATTR_POSITION_OFF 16
define CATALOG_DISK_ATTR_SIZE 88
define CATALOG_DISK_ATTR_TYPE_OFF 8
define CATALOG_DISK_ATTR_VAL_LENGTH_OFF 12
define CATALOG_DISK_REPR_FIXED_LENGTH_OFF 8
define CATALOG_DISK_REPR_ID_OFF 0
define CATALOG_DISK_REPR_N_FIXED_OFF 4
define CATALOG_DISK_REPR_N_VARIABLE_OFF 12
define CATALOG_DISK_REPR_RESERVED_1_OFF 16 /\* reserved [**for**](dynamic__load_8c.md#function-for) [**future**](broker__monitor_8c.md#function-timeout) use \*/
define CATALOG_DISK_REPR_SIZE 56
define CATALOG_GET_BT_STATS_BTID (var, ptr) [**OR\_GET\_BTID**](object__representation_8h.md#define-or_get_btid)((ptr) + [**CATALOG\_BT\_STATS\_BTID\_OFF**](system__catalog_8c.md#define-catalog_bt_stats_btid_off), ([**var**](broker__monitor_8c.md#function-timeout)))
define CATALOG_GET_PGHEADER_DIR_COUNT (ptr) ([**int**](broker__monitor_8c.md#function-timeout)) [**OR\_GET\_INT**](object__representation_8h.md#define-or_get_int) ((ptr) + [**CATALOG\_PGHEADER\_DIR\_CNT\_OFF**](system__catalog_8c.md#define-catalog_pgheader_dir_cnt_off))
define CATALOG_GET_PGHEADER_OVFL_PGID_PAGEID (ptr) ([**PAGEID**](storage__common_8h.md#typedef-pageid)) [**OR\_GET\_INT**](object__representation_8h.md#define-or_get_int) ((ptr) + [**CATALOG\_PGHEADER\_OVFL\_PGID\_PAGEID\_OFF**](system__catalog_8c.md#define-catalog_pgheader_ovfl_pgid_pageid_off))
define CATALOG_GET_PGHEADER_OVFL_PGID_VOLID (ptr) ([**VOLID**](storage__common_8h.md#typedef-volid)) [**OR\_GET\_SHORT**](object__representation_8h.md#define-or_get_short) ((ptr) + [**CATALOG\_PGHEADER\_OVFL\_PGID\_VOLID\_OFF**](system__catalog_8c.md#define-catalog_pgheader_ovfl_pgid_volid_off))
define CATALOG_GET_PGHEADER_PG_OVFL (ptr) ([**bool**](broker__monitor_8c.md#function-timeout)) [**OR\_GET\_INT**](object__representation_8h.md#define-or_get_int) ((ptr) + [**CATALOG\_PGHEADER\_PG\_OVFL\_OFF**](system__catalog_8c.md#define-catalog_pgheader_pg_ovfl_off))
define CATALOG_GET_REPR_ITEM_COUNT (ptr) ([**PGSLOTID**](storage__common_8h.md#typedef-pgslotid)) [**OR\_GET\_BYTE**](object__representation_8h.md#define-or_get_byte) ((ptr) + [**CATALOG\_REPR\_ITEM\_COUNT\_OFF**](system__catalog_8c.md#define-catalog_repr_item_count_off))
define CATALOG_GET_REPR_ITEM_PAGEID_PAGEID (ptr) ([**PAGEID**](storage__common_8h.md#typedef-pageid)) [**OR\_GET\_INT**](object__representation_8h.md#define-or_get_int) ((ptr) + [**CATALOG\_REPR\_ITEM\_PAGEID\_PAGEID\_OFF**](system__catalog_8c.md#define-catalog_repr_item_pageid_pageid_off))
define CATALOG_GET_REPR_ITEM_PAGEID_VOLID (ptr) ([**VOLID**](storage__common_8h.md#typedef-volid)) [**OR\_GET\_SHORT**](object__representation_8h.md#define-or_get_short) ((ptr) + [**CATALOG\_REPR\_ITEM\_PAGEID\_VOLID\_OFF**](system__catalog_8c.md#define-catalog_repr_item_pageid_volid_off))
define CATALOG_GET_REPR_ITEM_REPRID (ptr) ([**REPR\_ID**](storage__common_8h.md#typedef-repr_id)) [**OR\_GET\_SHORT**](object__representation_8h.md#define-or_get_short) ((ptr) + [**CATALOG\_REPR\_ITEM\_REPRID\_OFF**](system__catalog_8c.md#define-catalog_repr_item_reprid_off))
define CATALOG_GET_REPR_ITEM_SLOTID (ptr) ([**PGSLOTID**](storage__common_8h.md#typedef-pgslotid)) [**OR\_GET\_SHORT**](object__representation_8h.md#define-or_get_short) ((ptr) + [**CATALOG\_REPR\_ITEM\_SLOTID\_OFF**](system__catalog_8c.md#define-catalog_repr_item_slotid_off))
define CATALOG_HASH_SIZE 1000
define CATALOG_HEADER_SLOT 0
define CATALOG_KEY_VALUE_ARRAY_SIZE 1000
define CATALOG_MAX_SLOT_ID_SIZE 12
define CATALOG_PAGE_HEADER_SIZE 16
define CATALOG_PGHEADER_DIR_CNT_OFF 8
define CATALOG_PGHEADER_OVFL_PGID_PAGEID_OFF 0
define CATALOG_PGHEADER_OVFL_PGID_VOLID_OFF 4
define CATALOG_PGHEADER_PG_OVFL_OFF 12
define CATALOG_PUT_PGHEADER_DIR_COUNT (ptr, val) [**OR\_PUT\_INT**](object__representation_8h.md#define-or_put_int) ((ptr) + [**CATALOG\_PGHEADER\_DIR\_CNT\_OFF**](system__catalog_8c.md#define-catalog_pgheader_dir_cnt_off), (val))
define CATALOG_PUT_PGHEADER_OVFL_PGID_PAGEID (ptr, val) [**OR\_PUT\_INT**](object__representation_8h.md#define-or_put_int) ((ptr) + [**CATALOG\_PGHEADER\_OVFL\_PGID\_PAGEID\_OFF**](system__catalog_8c.md#define-catalog_pgheader_ovfl_pgid_pageid_off), (val))
define CATALOG_PUT_PGHEADER_OVFL_PGID_VOLID (ptr, val) [**OR\_PUT\_SHORT**](object__representation_8h.md#define-or_put_short) ((ptr) + [**CATALOG\_PGHEADER\_OVFL\_PGID\_VOLID\_OFF**](system__catalog_8c.md#define-catalog_pgheader_ovfl_pgid_volid_off), (val))
define CATALOG_PUT_PGHEADER_PG_OVFL (ptr, val) [**OR\_PUT\_INT**](object__representation_8h.md#define-or_put_int) ((ptr) + [**CATALOG\_PGHEADER\_PG\_OVFL\_OFF**](system__catalog_8c.md#define-catalog_pgheader_pg_ovfl_off), ([**int**](broker__monitor_8c.md#function-timeout)) (val))
define CATALOG_REPR_ITEM_COUNT_OFF 12
define CATALOG_REPR_ITEM_INITIALIZER { { [**NULL\_PAGEID**](storage__common_8h.md#define-null_pageid), [**NULL\_VOLID**](storage__common_8h.md#define-null_volid) }, [**NULL\_REPRID**](storage__common_8h.md#define-null_reprid), [**NULL\_SLOTID**](storage__common_8h.md#define-null_slotid) }
define CATALOG_REPR_ITEM_PAGEID_PAGEID_OFF 0
define CATALOG_REPR_ITEM_PAGEID_VOLID_OFF 4
define CATALOG_REPR_ITEM_REPRID_OFF 8
define CATALOG_REPR_ITEM_SIZE 16
define CATALOG_REPR_ITEM_SLOTID_OFF 10

Public Types Documentation

typedef CATALOG_CLASS_ID_LIST

typedef struct catalog_class_id_list CATALOG_CLASS_ID_LIST;

typedef CATALOG_ENTRY

typedef struct catalog_entry CATALOG_ENTRY;

typedef CATALOG_FIND_OPTIMAL_PAGE_CONTEXT

typedef struct catalog_find_optimal_page_context CATALOG_FIND_OPTIMAL_PAGE_CONTEXT;

typedef CATALOG_KEY

typedef struct catalog_key CATALOG_KEY;

typedef CATALOG_MAX_SPACE

typedef struct catalog_max_space CATALOG_MAX_SPACE;

typedef CATALOG_PAGE_COLLECTOR

typedef struct catalog_page_collector CATALOG_PAGE_COLLECTOR;

typedef CATALOG_PAGE_DUMP_CONTEXT

typedef struct catalog_page_dump_context CATALOG_PAGE_DUMP_CONTEXT;

typedef CATALOG_PAGE_HEADER

typedef struct catalog_page_header CATALOG_PAGE_HEADER;

typedef CATALOG_RECORD

typedef struct catalog_record CATALOG_RECORD;

typedef CATALOG_REPR_ITEM

typedef struct catalog_repr_item CATALOG_REPR_ITEM;

typedef catalog_hashmap_type

using catalog_hashmap_type =  cubthread::lockfree_hashmap<catalog_key, catalog_entry>;

Public Attributes Documentation

variable catalog_Id

CTID catalog_Id;

Public Static Attributes Documentation

variable catalog_Hashmap

catalog_hashmap_type catalog_Hashmap;

variable catalog_Max_record_size

PGLENGTH catalog_Max_record_size;

variable catalog_Max_space

CATALOG_MAX_SPACE catalog_Max_space;

variable catalog_Max_space_lock

pthread_mutex_t catalog_Max_space_lock;

variable catalog_entry_Descriptor

LF_ENTRY_DESCRIPTOR catalog_entry_Descriptor;

variable catalog_is_header_initialized

bool catalog_is_header_initialized;

Public Functions Documentation

function catalog_add_class_info

int catalog_add_class_info (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    CLS_INFO * class_info_p,
    CATALOG_ACCESS_INFO * catalog_access_info_p
) 

function catalog_add_representation

int catalog_add_representation (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    REPR_ID repr_id,
    DISK_REPR * disk_repr_p,
    OID * rep_dir_p,
    CATALOG_ACCESS_INFO * catalog_access_info_p
) 

function catalog_check_consistency

DISK_ISVALID catalog_check_consistency (
    THREAD_ENTRY * thread_p
) 

function catalog_create

CTID * catalog_create (
    THREAD_ENTRY * thread_p,
    CTID * catalog_id_p
) 

function catalog_delete

int catalog_delete (
    THREAD_ENTRY * thread_p,
    OID * class_oid_p
) 

function catalog_drop_old_representations

int catalog_drop_old_representations (
    THREAD_ENTRY * thread_p,
    OID * class_id_p
) 

function catalog_dump

void catalog_dump (
    THREAD_ENTRY * thread_p,
    FILE * fp,
    int dump_flag
) 

function catalog_end_access_with_dir_oid

int catalog_end_access_with_dir_oid (
    THREAD_ENTRY * thread_p,
    CATALOG_ACCESS_INFO * catalog_access_info,
    int error
) 

function catalog_finalize

void catalog_finalize (
    void
) 

function catalog_free_class_info

void catalog_free_class_info (
    CLS_INFO * class_info_p
) 

function catalog_free_representation

void catalog_free_representation (
    DISK_REPR * repr_p
) 

function catalog_get_cardinality

int catalog_get_cardinality (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    DISK_REPR * rep,
    BTID * btid,
    const  int key_pos,
    int * cardinality
) 

function catalog_get_cardinality_by_name

int catalog_get_cardinality_by_name (
    THREAD_ENTRY * thread_p,
    const  char * class_name,
    const  char * index_name,
    const  int key_pos,
    int * cardinality
) 

function catalog_get_class_info

CLS_INFO * catalog_get_class_info (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    CATALOG_ACCESS_INFO * catalog_access_info_p
) 

function catalog_get_dir_oid_from_cache

int catalog_get_dir_oid_from_cache (
    THREAD_ENTRY * thread_p,
    const  OID * class_id_p,
    OID * dir_oid_p
) 

function catalog_get_last_representation_id

int catalog_get_last_representation_id (
    THREAD_ENTRY * thread_p,
    OID * class_oid_p,
    REPR_ID * repr_id_p
) 

function catalog_get_representation

DISK_REPR * catalog_get_representation (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    REPR_ID repr_id,
    CATALOG_ACCESS_INFO * catalog_access_info_p
) 

function catalog_get_representation_directory

int catalog_get_representation_directory (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    REPR_ID ** repr_id_set_p,
    int * repr_count_p
) 

function catalog_initialize

void catalog_initialize (
    CTID * catalog_id_p
) 

function catalog_insert

int catalog_insert (
    THREAD_ENTRY * thread_p,
    RECDES * record_p,
    OID * class_oid_p,
    OID * rep_dir_p
) 

function catalog_reclaim_space

int catalog_reclaim_space (
    THREAD_ENTRY * thread_p
) 

function catalog_rv_delete_redo

int catalog_rv_delete_redo (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv_p
) 

function catalog_rv_delete_undo

int catalog_rv_delete_undo (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv_p
) 

function catalog_rv_insert_redo

int catalog_rv_insert_redo (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv_p
) 

function catalog_rv_insert_undo

int catalog_rv_insert_undo (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv_p
) 

function catalog_rv_new_page_redo

int catalog_rv_new_page_redo (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv_p
) 

function catalog_rv_ovf_page_logical_insert_undo

int catalog_rv_ovf_page_logical_insert_undo (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv_p
) 

function catalog_rv_update

int catalog_rv_update (
    THREAD_ENTRY * thread_p,
    LOG_RCV * recv_p
) 

function catalog_start_access_with_dir_oid

int catalog_start_access_with_dir_oid (
    THREAD_ENTRY * thread_p,
    CATALOG_ACCESS_INFO * catalog_access_info,
    LOCK lock_mode
) 

function catalog_update

int catalog_update (
    THREAD_ENTRY * thread_p,
    RECDES * record_p,
    OID * class_oid_p
) 

function catalog_update_class_info

CLS_INFO * catalog_update_class_info (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    CLS_INFO * class_info_p,
    CATALOG_ACCESS_INFO * catalog_access_info_p,
    bool skip_logging
) 

function xcatalog_check_rep_dir

int xcatalog_check_rep_dir (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    OID * rep_dir_p
) 

Public Static Functions Documentation

function catalog_adjust_directory_count

static int catalog_adjust_directory_count (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_p,
    RECDES * record_p,
    int delta
) 

function catalog_assign_attribute

static int catalog_assign_attribute (
    THREAD_ENTRY * thread_p,
    DISK_ATTR * disk_attr_p,
    CATALOG_RECORD * catalog_record_p
) 

function catalog_check_class_consistency

static DISK_ISVALID catalog_check_class_consistency (
    THREAD_ENTRY * thread_p,
    OID * class_oid
) 

function catalog_clear_hash_table

static void catalog_clear_hash_table (
    THREAD_ENTRY * thread_p
) 

function catalog_copy_btree_statistic

static void catalog_copy_btree_statistic (
    BTREE_STATS * new_btree_stats_p,
    int new_btree_stats_count,
    BTREE_STATS * pre_btree_stats_p,
    int pre_btree_stats_count
) 

function catalog_copy_disk_attributes

static void catalog_copy_disk_attributes (
    DISK_ATTR * new_attrs_p,
    int new_attr_count,
    DISK_ATTR * pre_attrs_p,
    int pre_attr_count
) 

function catalog_delete_key

static void catalog_delete_key (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    REPR_ID repr_id
) 

function catalog_drop

static int catalog_drop (
    THREAD_ENTRY * thread_p,
    OID * class_id,
    REPR_ID repr_id
) 

function catalog_drop_all

static int catalog_drop_all (
    THREAD_ENTRY * thread_p,
    OID * class_id
) 

function catalog_drop_all_representation_and_class

static int catalog_drop_all_representation_and_class (
    THREAD_ENTRY * thread_p,
    OID * class_id
) 

function catalog_drop_directory

static int catalog_drop_directory (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_p,
    RECDES * record_p,
    OID * oid_p,
    OID * class_id_p
) 

function catalog_drop_disk_representation_from_page

static int catalog_drop_disk_representation_from_page (
    THREAD_ENTRY * thread_p,
    VPID * page_id,
    PGSLOTID slot_id
) 

function catalog_drop_representation_class_from_page

static int catalog_drop_representation_class_from_page (
    THREAD_ENTRY * thread_p,
    VPID * dir_pgid,
    PAGE_PTR * dir_pgptr,
    VPID * page_id,
    PGSLOTID slot_id
) 

function catalog_drop_representation_helper

static int catalog_drop_representation_helper (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page_p,
    VPID * page_id_p,
    PGSLOTID slot_id
) 

function catalog_drop_representation_item

static int catalog_drop_representation_item (
    THREAD_ENTRY * thread_p,
    OID * class_id,
    CATALOG_REPR_ITEM * repr_item
) 

function catalog_dump_disk_attribute

static void catalog_dump_disk_attribute (
    DISK_ATTR * atr
) 

function catalog_dump_representation

static void catalog_dump_representation (
    DISK_REPR * dr
) 

function catalog_entry_alloc

static void * catalog_entry_alloc (
    void
) 

function catalog_entry_free

static int catalog_entry_free (
    void * ent
) 

function catalog_entry_init

static int catalog_entry_init (
    void * ent
) 

function catalog_entry_uninit

static int catalog_entry_uninit (
    void * ent
) 

function catalog_fetch_attribute_value

static int catalog_fetch_attribute_value (
    THREAD_ENTRY * thread_p,
    void * value,
    int length,
    CATALOG_RECORD * ct_recordp
) 

function catalog_fetch_btree_statistics

static int catalog_fetch_btree_statistics (
    THREAD_ENTRY * thread_p,
    BTREE_STATS * bt_statsp,
    CATALOG_RECORD * ct_recordp
) 

function catalog_fetch_disk_attribute

static int catalog_fetch_disk_attribute (
    THREAD_ENTRY * thread_p,
    DISK_ATTR * disk_attrp,
    CATALOG_RECORD * ct_recordp
) 

function catalog_fetch_disk_representation

static int catalog_fetch_disk_representation (
    THREAD_ENTRY * thread_p,
    DISK_REPR * disk_reprp,
    CATALOG_RECORD * ct_recordp
) 

function catalog_file_map_find_optimal_page

static int catalog_file_map_find_optimal_page (
    THREAD_ENTRY * thread_p,
    PAGE_PTR * page,
    bool * stop,
    void * args
) 

function catalog_file_map_is_empty

static int catalog_file_map_is_empty (
    THREAD_ENTRY * thread_p,
    PAGE_PTR * page,
    bool * stop,
    void * args
) 

function catalog_file_map_overflow_count

static int catalog_file_map_overflow_count (
    THREAD_ENTRY * thread_p,
    PAGE_PTR * page,
    bool * stop,
    void * args
) 

function catalog_file_map_page_dump

static int catalog_file_map_page_dump (
    THREAD_ENTRY * thread_p,
    PAGE_PTR * page,
    bool * stop,
    void * args
) 

function catalog_find_optimal_page

static PAGE_PTR catalog_find_optimal_page (
    THREAD_ENTRY * thread_p,
    int size,
    VPID * page_id
) 

function catalog_find_representation_item_position

static char * catalog_find_representation_item_position (
    INT16 repr_id,
    int repr_cnt,
    char * repr_p,
    int * out_position_p
) 

function catalog_fixup_missing_class_info

static int catalog_fixup_missing_class_info (
    THREAD_ENTRY * thread_p,
    OID * class_oid
) 

function catalog_fixup_missing_disk_representation

static int catalog_fixup_missing_disk_representation (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    REPR_ID reprid
) 

function catalog_free_key_list

static void catalog_free_key_list (
    CATALOG_CLASS_ID_LIST * clsid_list
) 

function catalog_get_btree_statistics

static void catalog_get_btree_statistics (
    BTREE_STATS * stat_p,
    char * rec_p
) 

function catalog_get_class_info_from_record

static void catalog_get_class_info_from_record (
    CLS_INFO * class_info_p,
    char * rec_p
) 

function catalog_get_disk_attribute

static void catalog_get_disk_attribute (
    DISK_ATTR * attr_p,
    char * rec_p
) 

function catalog_get_disk_representation

static void catalog_get_disk_representation (
    DISK_REPR * disk_repr_p,
    char * rec_p
) 

function catalog_get_key_list

static int catalog_get_key_list (
    THREAD_ENTRY * thread_p,
    void * key,
    void * val,
    void * args
) 

function catalog_get_new_page

static PAGE_PTR catalog_get_new_page (
    THREAD_ENTRY * thread_p,
    VPID * page_id,
    bool is_overflow_page
) 

function catalog_get_record_from_page

static int catalog_get_record_from_page (
    THREAD_ENTRY * thread_p,
    CATALOG_RECORD * ct_recordp
) 

function catalog_get_rep_dir

static int catalog_get_rep_dir (
    THREAD_ENTRY * thread_p,
    OID * class_oid_p,
    OID * rep_dir_p,
    bool lookup_hash
) 

function catalog_get_repr_item_from_record

static void catalog_get_repr_item_from_record (
    CATALOG_REPR_ITEM * item_p,
    char * rec_p
) 

function catalog_get_representation_item

static int catalog_get_representation_item (
    THREAD_ENTRY * thread_p,
    OID * class_id,
    CATALOG_REPR_ITEM * repr_item
) 

function catalog_get_representation_record

static PAGE_PTR catalog_get_representation_record (
    THREAD_ENTRY * thread_p,
    OID * rep_dir_p,
    RECDES * record_p,
    PGBUF_LATCH_MODE latch,
    int is_peek,
    int * out_repr_count_p
) 

static PAGE_PTR catalog_get_representation_record_after_search (
    THREAD_ENTRY * thread_p,
    OID * class_id_p,
    RECDES * record_p,
    PGBUF_LATCH_MODE latch,
    int is_peek,
    OID * rep_dir_p,
    int * out_repr_count_p,
    bool lookup_hash
) 

function catalog_initialize_max_space

static void catalog_initialize_max_space (
    CATALOG_MAX_SPACE * header_p
) 

function catalog_initialize_new_page

static int catalog_initialize_new_page (
    THREAD_ENTRY * thread_p,
    PAGE_PTR page,
    void * args
) 

function catalog_insert_representation_item

static int catalog_insert_representation_item (
    THREAD_ENTRY * thread_p,
    RECDES * record_p,
    OID * rep_dir_p
) 

function catalog_key_compare

static int catalog_key_compare (
    void * key1,
    void * key2
) 

function catalog_key_copy

static int catalog_key_copy (
    void * src,
    void * dest
) 

function catalog_key_hash

static unsigned  int catalog_key_hash (
    void * key,
    int htsize
) 

function catalog_put_btree_statistics

static void catalog_put_btree_statistics (
    char * rec_p,
    BTREE_STATS * stat_p
) 

function catalog_put_class_info_to_record

static void catalog_put_class_info_to_record (
    char * rec_p,
    CLS_INFO * class_info_p
) 

function catalog_put_disk_attribute

static void catalog_put_disk_attribute (
    char * rec_p,
    DISK_ATTR * attr_p
) 

function catalog_put_disk_representation

static void catalog_put_disk_representation (
    char * rec_p,
    DISK_REPR * disk_repr_p
) 

function catalog_put_page_header

static void catalog_put_page_header (
    char * rec_p,
    CATALOG_PAGE_HEADER * header_p
) 

function catalog_put_record_into_page

static int catalog_put_record_into_page (
    THREAD_ENTRY * thread_p,
    CATALOG_RECORD * ct_recordp,
    int next,
    PGSLOTID * remembered_slotid
) 

function catalog_put_repr_item_to_record

static void catalog_put_repr_item_to_record (
    char * rec_p,
    CATALOG_REPR_ITEM * item_p
) 

function catalog_put_representation_item

static int catalog_put_representation_item (
    THREAD_ENTRY * thread_p,
    OID * class_id,
    CATALOG_REPR_ITEM * repr_item,
    OID * rep_dir_p
) 

function catalog_read_unread_portion

static int catalog_read_unread_portion (
    THREAD_ENTRY * thread_p,
    CATALOG_RECORD * catalog_record_p,
    int format_size
) 

function catalog_store_attribute_value

static int catalog_store_attribute_value (
    THREAD_ENTRY * thread_p,
    void * value,
    int length,
    CATALOG_RECORD * ct_recordp,
    PGSLOTID * remembered_slotid
) 

function catalog_store_btree_statistics

static int catalog_store_btree_statistics (
    THREAD_ENTRY * thread_p,
    BTREE_STATS * bt_statsp,
    CATALOG_RECORD * ct_recordp,
    PGSLOTID * remembered_slotid
) 

function catalog_store_disk_attribute

static int catalog_store_disk_attribute (
    THREAD_ENTRY * thread_p,
    DISK_ATTR * disk_attrp,
    CATALOG_RECORD * ct_recordp,
    PGSLOTID * remembered_slotid
) 

function catalog_store_disk_representation

static int catalog_store_disk_representation (
    THREAD_ENTRY * thread_p,
    DISK_REPR * disk_reprp,
    CATALOG_RECORD * ct_recordp,
    PGSLOTID * remembered_slotid
) 

function catalog_sum_disk_attribute_size

static int catalog_sum_disk_attribute_size (
    DISK_ATTR * attrs_p,
    int count
) 

function catalog_update_max_space

static void catalog_update_max_space (
    VPID * page_id,
    PGLENGTH space
) 

function catalog_write_unwritten_portion

static int catalog_write_unwritten_portion (
    THREAD_ENTRY * thread_p,
    CATALOG_RECORD * catalog_record_p,
    PGSLOTID * remembered_slot_id_p,
    int format_size
) 

Macro Definition Documentation

define CATALOG_BT_STATS_BTID_OFF

#define CATALOG_BT_STATS_BTID_OFF `0`

define CATALOG_BT_STATS_FUNC_INDEX_OFF

#define CATALOG_BT_STATS_FUNC_INDEX_OFF `28`

define CATALOG_BT_STATS_HEIGHT_OFF

#define CATALOG_BT_STATS_HEIGHT_OFF `20`

define CATALOG_BT_STATS_KEYS_OFF

#define CATALOG_BT_STATS_KEYS_OFF `24`

define CATALOG_BT_STATS_LEAFS_OFF

#define CATALOG_BT_STATS_LEAFS_OFF `OR_BTID_ALIGNED_SIZE`

define CATALOG_BT_STATS_PAGES_OFF

#define CATALOG_BT_STATS_PAGES_OFF `16`

define CATALOG_BT_STATS_PKEYS_OFF

#define CATALOG_BT_STATS_PKEYS_OFF `32`

define CATALOG_BT_STATS_RESERVED_OFF

#define CATALOG_BT_STATS_RESERVED_OFF `( CATALOG_BT_STATS_PKEYS_OFF + ( OR_INT_SIZE * BTREE_STATS_PKEYS_NUM ))  /* 64 */`

define CATALOG_BT_STATS_SIZE

#define CATALOG_BT_STATS_SIZE `( CATALOG_BT_STATS_RESERVED_OFF + ( OR_INT_SIZE * BTREE_STATS_RESERVED_NUM ))    /* 64 + (4 * R_NUM ) = 80 */`

define CATALOG_CLS_INFO_HFID_OFF

#define CATALOG_CLS_INFO_HFID_OFF `0`

define CATALOG_CLS_INFO_REP_DIR_OFF

#define CATALOG_CLS_INFO_REP_DIR_OFF `24`

define CATALOG_CLS_INFO_RESERVED

#define CATALOG_CLS_INFO_RESERVED `24`

define CATALOG_CLS_INFO_SIZE

#define CATALOG_CLS_INFO_SIZE `56`

define CATALOG_CLS_INFO_TIME_STAMP_OFF

#define CATALOG_CLS_INFO_TIME_STAMP_OFF `20`

define CATALOG_CLS_INFO_TOT_OBJS_OFF

#define CATALOG_CLS_INFO_TOT_OBJS_OFF `16`

define CATALOG_CLS_INFO_TOT_PAGES_OFF

#define CATALOG_CLS_INFO_TOT_PAGES_OFF `12`

define CATALOG_DISK_ATTR_CLASSOID_OFF

#define CATALOG_DISK_ATTR_CLASSOID_OFF `20`

define CATALOG_DISK_ATTR_ID_OFF

#define CATALOG_DISK_ATTR_ID_OFF `0`

define CATALOG_DISK_ATTR_LOCATION_OFF

#define CATALOG_DISK_ATTR_LOCATION_OFF `4`

define CATALOG_DISK_ATTR_NDV_OFF

#define CATALOG_DISK_ATTR_NDV_OFF `80`

define CATALOG_DISK_ATTR_N_BTSTATS_OFF

#define CATALOG_DISK_ATTR_N_BTSTATS_OFF `28`

define CATALOG_DISK_ATTR_POSITION_OFF

#define CATALOG_DISK_ATTR_POSITION_OFF `16`

define CATALOG_DISK_ATTR_SIZE

#define CATALOG_DISK_ATTR_SIZE `88`

define CATALOG_DISK_ATTR_TYPE_OFF

#define CATALOG_DISK_ATTR_TYPE_OFF `8`

define CATALOG_DISK_ATTR_VAL_LENGTH_OFF

#define CATALOG_DISK_ATTR_VAL_LENGTH_OFF `12`

define CATALOG_DISK_REPR_FIXED_LENGTH_OFF

#define CATALOG_DISK_REPR_FIXED_LENGTH_OFF `8`

define CATALOG_DISK_REPR_ID_OFF

#define CATALOG_DISK_REPR_ID_OFF `0`

define CATALOG_DISK_REPR_N_FIXED_OFF

#define CATALOG_DISK_REPR_N_FIXED_OFF `4`

define CATALOG_DISK_REPR_N_VARIABLE_OFF

#define CATALOG_DISK_REPR_N_VARIABLE_OFF `12`

define CATALOG_DISK_REPR_RESERVED_1_OFF

#define CATALOG_DISK_REPR_RESERVED_1_OFF `16    /* reserved for  future use */`

define CATALOG_DISK_REPR_SIZE

#define CATALOG_DISK_REPR_SIZE `56`

define CATALOG_GET_BT_STATS_BTID

#define CATALOG_GET_BT_STATS_BTID (
    var,
    ptr
) `OR_GET_BTID ((ptr) + CATALOG_BT_STATS_BTID_OFF , ( var ))`

define CATALOG_GET_PGHEADER_DIR_COUNT

#define CATALOG_GET_PGHEADER_DIR_COUNT (
    ptr
) `( int ) OR_GET_INT ((ptr) + CATALOG_PGHEADER_DIR_CNT_OFF )`

define CATALOG_GET_PGHEADER_OVFL_PGID_PAGEID

#define CATALOG_GET_PGHEADER_OVFL_PGID_PAGEID (
    ptr
) `( PAGEID ) OR_GET_INT ((ptr) + CATALOG_PGHEADER_OVFL_PGID_PAGEID_OFF )`

define CATALOG_GET_PGHEADER_OVFL_PGID_VOLID

#define CATALOG_GET_PGHEADER_OVFL_PGID_VOLID (
    ptr
) `( VOLID ) OR_GET_SHORT ((ptr) + CATALOG_PGHEADER_OVFL_PGID_VOLID_OFF )`

define CATALOG_GET_PGHEADER_PG_OVFL

#define CATALOG_GET_PGHEADER_PG_OVFL (
    ptr
) `( bool ) OR_GET_INT ((ptr) + CATALOG_PGHEADER_PG_OVFL_OFF )`

define CATALOG_GET_REPR_ITEM_COUNT

#define CATALOG_GET_REPR_ITEM_COUNT (
    ptr
) `( PGSLOTID ) OR_GET_BYTE ((ptr) + CATALOG_REPR_ITEM_COUNT_OFF )`

define CATALOG_GET_REPR_ITEM_PAGEID_PAGEID

#define CATALOG_GET_REPR_ITEM_PAGEID_PAGEID (
    ptr
) `( PAGEID ) OR_GET_INT ((ptr) + CATALOG_REPR_ITEM_PAGEID_PAGEID_OFF )`

define CATALOG_GET_REPR_ITEM_PAGEID_VOLID

#define CATALOG_GET_REPR_ITEM_PAGEID_VOLID (
    ptr
) `( VOLID ) OR_GET_SHORT ((ptr) + CATALOG_REPR_ITEM_PAGEID_VOLID_OFF )`

define CATALOG_GET_REPR_ITEM_REPRID

#define CATALOG_GET_REPR_ITEM_REPRID (
    ptr
) `( REPR_ID ) OR_GET_SHORT ((ptr) + CATALOG_REPR_ITEM_REPRID_OFF )`

define CATALOG_GET_REPR_ITEM_SLOTID

#define CATALOG_GET_REPR_ITEM_SLOTID (
    ptr
) `( PGSLOTID ) OR_GET_SHORT ((ptr) + CATALOG_REPR_ITEM_SLOTID_OFF )`

define CATALOG_HASH_SIZE

#define CATALOG_HASH_SIZE `1000`

define CATALOG_HEADER_SLOT

#define CATALOG_HEADER_SLOT `0`

define CATALOG_KEY_VALUE_ARRAY_SIZE

#define CATALOG_KEY_VALUE_ARRAY_SIZE `1000`

define CATALOG_MAX_SLOT_ID_SIZE

#define CATALOG_MAX_SLOT_ID_SIZE `12`

define CATALOG_PAGE_HEADER_SIZE

#define CATALOG_PAGE_HEADER_SIZE `16`

define CATALOG_PGHEADER_DIR_CNT_OFF

#define CATALOG_PGHEADER_DIR_CNT_OFF `8`

define CATALOG_PGHEADER_OVFL_PGID_PAGEID_OFF

#define CATALOG_PGHEADER_OVFL_PGID_PAGEID_OFF `0`

define CATALOG_PGHEADER_OVFL_PGID_VOLID_OFF

#define CATALOG_PGHEADER_OVFL_PGID_VOLID_OFF `4`

define CATALOG_PGHEADER_PG_OVFL_OFF

#define CATALOG_PGHEADER_PG_OVFL_OFF `12`

define CATALOG_PUT_PGHEADER_DIR_COUNT

#define CATALOG_PUT_PGHEADER_DIR_COUNT (
    ptr,
    val
) `OR_PUT_INT ((ptr) + CATALOG_PGHEADER_DIR_CNT_OFF , (val))`

define CATALOG_PUT_PGHEADER_OVFL_PGID_PAGEID

#define CATALOG_PUT_PGHEADER_OVFL_PGID_PAGEID (
    ptr,
    val
) `OR_PUT_INT ((ptr) + CATALOG_PGHEADER_OVFL_PGID_PAGEID_OFF , (val))`

define CATALOG_PUT_PGHEADER_OVFL_PGID_VOLID

#define CATALOG_PUT_PGHEADER_OVFL_PGID_VOLID (
    ptr,
    val
) `OR_PUT_SHORT ((ptr) + CATALOG_PGHEADER_OVFL_PGID_VOLID_OFF , (val))`

define CATALOG_PUT_PGHEADER_PG_OVFL

#define CATALOG_PUT_PGHEADER_PG_OVFL (
    ptr,
    val
) `OR_PUT_INT ((ptr) + CATALOG_PGHEADER_PG_OVFL_OFF , ( int ) (val))`

define CATALOG_REPR_ITEM_COUNT_OFF

#define CATALOG_REPR_ITEM_COUNT_OFF `12`

define CATALOG_REPR_ITEM_INITIALIZER

#define CATALOG_REPR_ITEM_INITIALIZER `{ { NULL_PAGEID , NULL_VOLID }, NULL_REPRID , NULL_SLOTID }`

define CATALOG_REPR_ITEM_PAGEID_PAGEID_OFF

#define CATALOG_REPR_ITEM_PAGEID_PAGEID_OFF `0`

define CATALOG_REPR_ITEM_PAGEID_VOLID_OFF

#define CATALOG_REPR_ITEM_PAGEID_VOLID_OFF `4`

define CATALOG_REPR_ITEM_REPRID_OFF

#define CATALOG_REPR_ITEM_REPRID_OFF `8`

define CATALOG_REPR_ITEM_SIZE

#define CATALOG_REPR_ITEM_SIZE `16`

define CATALOG_REPR_ITEM_SLOTID_OFF

#define CATALOG_REPR_ITEM_SLOTID_OFF `10`


The documentation for this class was generated from the following file cubrid/src/storage/system_catalog.c