Skip to content

File locator_sr.c

FileList > cubrid > src > transaction > locator_sr.c

Go to the source code of this file

  • #include "config.h"
  • #include <algorithm>
  • #include <stdlib.h>
  • #include <string.h>
  • #include <fcntl.h>
  • #include <assert.h>
  • #include <cstring>
  • #include "locator_sr.h"
  • #include "boot_sr.h"
  • #include "btree_load.h"
  • #include "critical_section.h"
  • #include "dbtype.h"
  • #include "error_manager.h"
  • #include "deduplicate_key.h"
  • #include "fetch.h"
  • #include "filter_pred_cache.h"
  • #include "heap_file.h"
  • #include "list_file.h"
  • #include "log_lsa.hpp"
  • #include "lock_manager.h"
  • #include "object_primitive.h"
  • #include "object_representation.h"
  • #include "object_representation_sr.h"
  • #include "query_executor.h"
  • #include "query_manager.h"
  • #include "query_reevaluation.hpp"
  • #include "record_descriptor.hpp"
  • #include "slotted_page.h"
  • #include "xasl_cache.h"
  • #include "xasl_predicate.hpp"
  • #include "thread_manager.hpp"
  • #include "transaction_transient.hpp"
  • #include "xserver_interface.h"
  • #include "catalog_class.h"
  • #include "es_posix.h"
  • #include "memory_wrapper.hpp"

Classes

Type Name
struct locator_classname_action
struct locator_classname_entry
struct locator_return_nxobj

Public Types

Type Name
typedef struct locator_classname_action LOCATOR_CLASSNAME_ACTION
typedef struct locator_classname_entry LOCATOR_CLASSNAME_ENTRY
enum LOCATOR_INDEX_ACTION_FLAG
typedef struct locator_return_nxobj LOCATOR_RETURN_NXOBJ

Public Attributes

Type Name
bool locator_Dont_check_foreign_key = [**false**](broker__monitor_8c.md#function-timeout)

Public Static Attributes

Type Name
const int LOCATOR_GUESS_NUM_NESTED_REFERENCES = 100
const HFID NULL_HFID = { {-1, -1}, -1 }
MHT_TABLE * locator_Mht_classnames = [**NULL**](freelistheap_8h.md#define-null)
INT32 locator_Pseudo_pageid_crt = -2
const INT32 locator_Pseudo_pageid_first = -2
const INT32 locator_Pseudo_pageid_last = -0x7FFF

Public Functions

Type Name
bool has_errors_filtered_for_insert (std::vector< int > error_filter_array)
int locator_add_or_remove_index (THREAD_ENTRY * thread_p, RECDES * recdes, OID * inst_oid, OID * class_oid, int is_insert, int op_type, HEAP_SCANCACHE * scan_cache, bool datayn, bool need_replication, HFID * hfid, FUNC_PRED_UNPACK_INFO * func_preds, bool has_BU_lock, bool skip_checking_fk)
LC_COPYAREA * locator_allocate_copy_area_by_attr_info (THREAD_ENTRY * thread_p, HEAP_CACHE_ATTRINFO * attr_info, RECDES * old_recdes, RECDES * new_recdes, const int copyarea_length_hint, int lob_create_flag)
int locator_attribute_info_force (THREAD_ENTRY * thread_p, const HFID * hfid, OID * oid, HEAP_CACHE_ATTRINFO * attr_info, ATTR_ID * att_id, int n_att_id, LC_COPYAREA_OPERATION operation, int op_type, HEAP_SCANCACHE * scan_cache, int * force_count, bool not_check_fk, REPL_INFO_TYPE repl_info, int pruning_type, PRUNING_CONTEXT * pcontext, FUNC_PRED_UNPACK_INFO * func_preds, MVCC_REEV_DATA * mvcc_reev_data, UPDATE_INPLACE_STYLE force_update_inplace, RECDES * rec_descriptor, bool need_locking)
DISK_ISVALID locator_check_all_entries_of_all_btrees (THREAD_ENTRY * thread_p, bool repair)
DISK_ISVALID locator_check_btree_entries (THREAD_ENTRY * thread_p, BTID * btid, HFID * hfid, OID * class_oid, int n_attr_ids, ATTR_ID * attr_ids, int * atts_prefix_length, const char * btname, bool repair)
DISK_ISVALID locator_check_by_class_oid (THREAD_ENTRY * thread_p, OID * cls_oid, HFID * hfid, BTID * index_btid, bool repair)
DISK_ISVALID locator_check_class (THREAD_ENTRY * thread_p, OID * class_oid, RECDES * peek, HFID * class_hfid, BTID * index_btid, bool repair)
DISK_ISVALID locator_check_class_names (THREAD_ENTRY * thread_p)
SCAN_OPERATION_TYPE locator_decide_operation_type (LOCK lock_mode, LC_FETCH_VERSION_TYPE fetch_version_type)
int locator_delete_force (THREAD_ENTRY * thread_p, HFID * hfid, OID * oid, int has_index, int op_type, HEAP_SCANCACHE * scan_cache, int * force_count, MVCC_REEV_DATA * mvcc_reev_data, bool need_locking)
int locator_delete_lob_force (THREAD_ENTRY * thread_p, OID * class_oid, OID * oid, RECDES * recdes)
int locator_drop_transient_class_name_entries (THREAD_ENTRY * thread_p, LOG_LSA * savep_lsa)
void locator_dump_class_names (THREAD_ENTRY * thread_p, FILE * out_fp)
void locator_end_force_scan_cache (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache)
void locator_finalize (THREAD_ENTRY * thread_p)
LOCK locator_get_lock_mode_from_op_type (SCAN_OPERATION_TYPE op_type)
SCAN_CODE locator_get_object (THREAD_ENTRY * thread_p, const OID * oid, OID * class_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, SCAN_OPERATION_TYPE op_type, LOCK lock_mode, int ispeeking, int chn)
PRUNING_SCAN_CACHE * locator_get_partition_scancache (PRUNING_CONTEXT * pcontext, const OID * class_oid, const HFID * hfid, int op_type, bool has_function_indexes)
int locator_initialize (THREAD_ENTRY * thread_p)
int locator_insert_force (THREAD_ENTRY * thread_p, HFID * hfid, OID * class_oid, OID * oid, RECDES * recdes, int has_index, int op_type, HEAP_SCANCACHE * scan_cache, int * force_count, int pruning_type, PRUNING_CONTEXT * pcontext, FUNC_PRED_UNPACK_INFO * func_preds, UPDATE_INPLACE_STYLE force_in_place, PGBUF_WATCHER * home_hint_p, bool has_BU_lock, bool dont_check_fk, bool use_bulk_logging)
SCAN_CODE locator_lock_and_get_object (THREAD_ENTRY * thread_p, const OID * oid, OID * class_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, LOCK lock, int ispeeking, int old_chn, NON_EXISTENT_HANDLING non_ex_handling_type)
SCAN_CODE locator_lock_and_get_object_with_evaluation (THREAD_ENTRY * thread_p, OID * oid, OID * class_oid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int ispeeking, int old_chn, MVCC_REEV_DATA * mvcc_reev_data, NON_EXISTENT_HANDLING non_ex_handling_type)
int locator_multi_insert_force (THREAD_ENTRY * thread_p, HFID * hfid, OID * class_oid, const std::vector< record_descriptor > & recdes, int has_index, int op_type, HEAP_SCANCACHE * scan_cache, int * force_count, int pruning_type, PRUNING_CONTEXT * pcontext, FUNC_PRED_UNPACK_INFO * func_preds, UPDATE_INPLACE_STYLE force_in_place, bool dont_check_fk)
int locator_rv_redo_rename (THREAD_ENTRY * thread_p, LOG_RCV * rcv)
int locator_savepoint_transient_class_name_entries (THREAD_ENTRY * thread_p, LOG_LSA * savep_lsa)
int locator_start_force_scan_cache (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache, const HFID * hfid, const OID * class_oid, int op_type)
int locator_update_index (THREAD_ENTRY * thread_p, RECDES * new_recdes, RECDES * old_recdes, ATTR_ID * att_id, int n_att_id, OID * oid, OID * class_oid, int op_type, HEAP_SCANCACHE * scan_cache, REPL_INFO * repl_info)
int xchksum_insert_repl_log_and_demote_table_lock (THREAD_ENTRY * thread_p, REPL_INFO * repl_info, const OID * class_oidp)
int xlob_create_dir (THREAD_ENTRY * thread_p, HFID * hfid, int * attrid_arr, int attrid_arr_length)
int xlob_remove_dir (THREAD_ENTRY * thread_p, HFID * hfid, int attrid)
int xlocator_assign_oid (THREAD_ENTRY * thread_p, const HFID * hfid, OID * perm_oid, int expected_length, OID * class_oid, const char * classname)
int xlocator_assign_oid_batch (THREAD_ENTRY * thread_p, LC_OIDSET * oidset)
int xlocator_check_fk_validity (THREAD_ENTRY * thread_p, OID * cls_oid, HFID * hfid, TP_DOMAIN * key_type, int n_attrs, int * attr_ids, OID * pk_cls_oid, BTID * pk_btid, char * fk_name)
LC_FIND_CLASSNAME xlocator_delete_class_name (THREAD_ENTRY * thread_p, const char * classname)
int xlocator_demote_class_lock (THREAD_ENTRY * thread_p, const OID * class_oid, LOCK lock, LOCK * ex_lock)
int xlocator_does_exist (THREAD_ENTRY * thread_p, OID * oid, int chn, LOCK lock, LC_FETCH_VERSION_TYPE fetch_version_type, OID * class_oid, int class_chn, int need_fetching, int prefetching, LC_COPYAREA ** fetch_area)
int xlocator_fetch (THREAD_ENTRY * thread_p, OID * oid, int chn, LOCK lock, LC_FETCH_VERSION_TYPE fetch_version_type, LC_FETCH_VERSION_TYPE initial_fetch_version_type, OID * class_oid, int class_chn, int prefetching, LC_COPYAREA ** fetch_area)
int xlocator_fetch_all (THREAD_ENTRY * thread_p, const HFID * hfid, LOCK * lock, LC_FETCH_VERSION_TYPE fetch_version_type, OID * class_oid, int * nobjects, int * nfetched, OID * last_oid, LC_COPYAREA ** fetch_area, int request_pages)
int xlocator_fetch_all_reference_lockset (THREAD_ENTRY * thread_p, OID * oid, int chn, OID * class_oid, int class_chn, LOCK lock, int quit_on_errors, int prune_level, LC_LOCKSET ** lockset, LC_COPYAREA ** fetch_area)
int xlocator_fetch_lockhint_classes (THREAD_ENTRY * thread_p, LC_LOCKHINT * lockhint, LC_COPYAREA ** fetch_area)
int xlocator_fetch_lockset (THREAD_ENTRY * thread_p, LC_LOCKSET * lockset, LC_COPYAREA ** fetch_area)
LC_FIND_CLASSNAME xlocator_find_class_oid (THREAD_ENTRY * thread_p, const char * classname, OID * class_oid, LOCK lock)
LC_FIND_CLASSNAME xlocator_find_lockhint_class_oids (THREAD_ENTRY * thread_p, int num_classes, const char ** many_classnames, LOCK * many_locks, int * many_need_subclasses, LC_PREFETCH_FLAGS * many_flags, OID * guessed_class_oids, int * guessed_class_chns, bool quit_on_errors, LC_LOCKHINT ** hlock, LC_COPYAREA ** fetch_area)
int xlocator_force (THREAD_ENTRY * thread_p, LC_COPYAREA * force_area, int num_ignore_error, int * ignore_error_list)
int xlocator_get_class (THREAD_ENTRY * thread_p, OID * class_oid, int class_chn, const OID * oid, LOCK lock, int prefetching, LC_COPYAREA ** fetch_area)
int xlocator_get_reserved_class_name_oid (THREAD_ENTRY * thread_p, const char * classname, OID * class_oid)
int xlocator_lock_and_fetch_all (THREAD_ENTRY * thread_p, const HFID * hfid, LOCK * instance_lock, int * instance_lock_timeout, OID * class_oid, LOCK * class_lock, int * nobjects, int * nfetched, int * nfailed_instance_locks, OID * last_oid, LC_COPYAREA ** fetch_area, MVCC_SNAPSHOT * mvcc_snapshot)
bool xlocator_notify_isolation_incons (THREAD_ENTRY * thread_p, LC_COPYAREA ** synch_area)
int xlocator_redistribute_partition_data (THREAD_ENTRY * thread_p, OID * class_oid, int no_oids, OID * oid_list)
int xlocator_remove_class_from_index (THREAD_ENTRY * thread_p, OID * class_oid, BTID * btid, HFID * hfid)
LC_FIND_CLASSNAME xlocator_rename_class_name (THREAD_ENTRY * thread_p, const char * oldname, const char * newname, OID * class_oid)
int xlocator_repl_force (THREAD_ENTRY * thread_p, LC_COPYAREA * force_area, LC_COPYAREA ** reply_area)
LC_FIND_CLASSNAME xlocator_reserve_class_names (THREAD_ENTRY * thread_p, const int num_classes, const char ** classnames, OID * class_oids)
int xlocator_upgrade_instances_domain (THREAD_ENTRY * thread_p, OID * class_oid, int att_id)
LOG_LSA * xrepl_log_get_append_lsa (void)
int xrepl_set_info (THREAD_ENTRY * thread_p, REPL_INFO * repl_info)
void xsynonym_remove_xasl_by_oid (THREAD_ENTRY * thread_p, OID * oidp)

Public Static Functions

Type Name
int locator_add_or_remove_index_for_moving (THREAD_ENTRY * thread_p, RECDES * recdes, OID * inst_oid, OID * class_oid, int is_insert, int op_type, HEAP_SCANCACHE * scan_cache, bool datayn, bool need_replication, HFID * hfid, FUNC_PRED_UNPACK_INFO * func_preds, bool has_BU_lock)
int locator_add_or_remove_index_internal (THREAD_ENTRY * thread_p, RECDES * recdes, OID * inst_oid, OID * class_oid, int is_insert, int op_type, HEAP_SCANCACHE * scan_cache, bool datayn, bool replyn, HFID * hfid, FUNC_PRED_UNPACK_INFO * func_preds, LOCATOR_INDEX_ACTION_FLAG idx_action_flag, bool has_BU_lock, bool skip_checking_fk)
LC_LOCKSET * locator_all_reference_lockset (THREAD_ENTRY * thread_p, OID * oid, int prune_level, LOCK inst_lock, LOCK class_lock, bool quit_on_errors)
int locator_area_op_to_pruning_type (LC_COPYAREA_OPERATION op)
int locator_check_class_on_heap (const void * name, void * ent, void * args)
int locator_check_foreign_key (THREAD_ENTRY * thread_p, HFID * hfid, OID * class_oid, OID * inst_oid, RECDES * recdes, RECDES * new_recdes, bool * is_cached, LC_COPYAREA ** copyarea)
int locator_check_primary_key_delete (THREAD_ENTRY * thread_p, OR_INDEX * index, DB_VALUE * key)
int locator_check_primary_key_update (THREAD_ENTRY * thread_p, OR_INDEX * index, DB_VALUE * key)
DISK_ISVALID locator_check_unique_btree_entries (THREAD_ENTRY * thread_p, BTID * btid, OID * cls_oid, RECDES * classrec, ATTR_ID * attr_ids, const char * btname, bool repair)
void locator_decr_num_transient_classnames (int tran_index)
void locator_decrease_catalog_count (THREAD_ENTRY * thread_p, OID * cls_oid)
int locator_defence_drop_class_name_entry (const void * name, void * ent, void * args)
int locator_delete_force_for_moving (THREAD_ENTRY * thread_p, HFID * hfid, OID * oid, int has_index, int op_type, HEAP_SCANCACHE * scan_cache, int * force_count, MVCC_REEV_DATA * mvcc_reev_data, OID * new_obj_oid, OID * partition_oid, bool need_locking)
int locator_delete_force_internal (THREAD_ENTRY * thread_p, HFID * hfid, OID * oid, int has_index, int op_type, HEAP_SCANCACHE * scan_cache, int * force_count, MVCC_REEV_DATA * mvcc_reev_data, LOCATOR_INDEX_ACTION_FLAG idx_action_flag, OID * new_obj_oid, OID * partition_oid, bool need_locking)
int locator_drop_class_name_entry (THREAD_ENTRY * thread_p, const char * classname, LOG_LSA * savep_lsa)
int locator_eval_filter_predicate (THREAD_ENTRY * thread_p, BTID * btid, OR_PREDICATE * or_pred, OID * class_oid, OID ** inst_oids, int num_insts, RECDES ** recs, DB_LOGICAL * results)
int locator_filter_errid (THREAD_ENTRY * thread_p, int num_ignore_error_count, int * ignore_error_list)
int locator_find_lockset_missing_class_oids (THREAD_ENTRY * thread_p, LC_LOCKSET * lockset)
int locator_force_drop_class_name_entry (const void * name, void * ent, void * args)
int locator_force_for_multi_update (THREAD_ENTRY * thread_p, LC_COPYAREA * force_area)
void locator_generate_class_pseudo_oid (THREAD_ENTRY * thread_p, OID * class_oid)
int locator_get_num_transient_classnames (int tran_index)
int locator_guess_sub_classes (THREAD_ENTRY * thread_p, LC_LOCKHINT ** lockhint_subclasses)
void locator_incr_num_transient_classnames (int tran_index)
void locator_increase_catalog_count (THREAD_ENTRY * thread_p, OID * cls_oid)
bool locator_is_exist_class_name_entry (THREAD_ENTRY * thread_p, LOCATOR_CLASSNAME_ENTRY * entry)
int locator_lob_make_dir_path (char * buf, const HFID * hfid, int attrid)
SCAN_CODE locator_lock_and_get_object_internal (THREAD_ENTRY * thread_p, HEAP_GET_CONTEXT * context, LOCK lock_mode)
SCAN_CODE locator_lock_and_return_object (THREAD_ENTRY * thread_p, LOCATOR_RETURN_NXOBJ * assign, OID * class_oid, OID * oid, int chn, LOCK lock_mode, SCAN_OPERATION_TYPE op_type)
TP_DOMAIN * locator_make_midxkey_domain (OR_INDEX * index)
int locator_move_record (THREAD_ENTRY * thread_p, HFID * old_hfid, OID * old_class_oid, OID * obj_oid, OID * new_class_oid, HFID * new_class_hfid, RECDES * recdes, HEAP_SCANCACHE * scan_cache, int op_type, int has_index, int * force_count, PRUNING_CONTEXT * context, MVCC_REEV_DATA * mvcc_reev_data, bool need_locking)
DB_LOGICAL locator_mvcc_reev_cond_and_assignment (THREAD_ENTRY * thread_p, HEAP_SCANCACHE * scan_cache, MVCC_REEV_DATA * mvcc_reev_data_p, MVCC_REC_HEADER * mvcc_header_p, const OID * curr_row_version_oid_p, RECDES * recdes)
DB_LOGICAL locator_mvcc_reev_cond_assigns (THREAD_ENTRY * thread_p, OID * class_oid, const OID * oid, HEAP_SCANCACHE * scan_cache, RECDES * recdes, MVCC_UPDDEL_REEV_DATA * mvcc_reev_data)
DB_LOGICAL locator_mvcc_reeval_scan_filters (THREAD_ENTRY * thread_p, const OID * oid, HEAP_SCANCACHE * scan_cache, RECDES * recdes, UPDDEL_MVCC_COND_REEVAL * mvcc_cond_reeval, bool is_upddel)
DB_LOGICAL locator_mvcc_reevaluate_filters (THREAD_ENTRY * thread_p, MVCC_SCAN_REEV_DATA * mvcc_reev_data, const OID * oid, RECDES * recdes)
bool locator_notify_decache (const OID * class_oid, const OID * oid, void * notify_area)
int locator_permoid_class_name (THREAD_ENTRY * thread_p, const char * classname, const OID * class_oid)
int locator_print_class_name (THREAD_ENTRY * thread_p, FILE * outfp, const void * key, void * ent, void * args)
DISK_ISVALID locator_repair_btree_by_delete (THREAD_ENTRY * thread_p, OID * class_oid, BTID * btid, OID * inst_oid)
DISK_ISVALID locator_repair_btree_by_insert (THREAD_ENTRY * thread_p, OID * class_oid, BTID * btid, DB_VALUE * key, OID * inst_oid)
void locator_repl_add_error_to_copyarea (LC_COPYAREA ** copy_area, RECDES * recdes, LC_COPYAREA_ONEOBJ * obj, DB_VALUE * key_value, int err_code, const char * err_msg)
int locator_repl_get_key_value (DB_VALUE * key_value, LC_COPYAREA * force_area, LC_COPYAREA_ONEOBJ * obj)
int locator_repl_prepare_force (THREAD_ENTRY * thread_p, LC_COPYAREA_ONEOBJ * obj, RECDES * old_recdes, RECDES * recdes, DB_VALUE * key_value, HEAP_SCANCACHE * force_scancache)
SCAN_CODE locator_return_object_assign (THREAD_ENTRY * thread_p, LOCATOR_RETURN_NXOBJ * assign, OID * class_oid, OID * oid, int chn, int guess_chn, SCAN_CODE scan, int tran_index)
int locator_savepoint_class_name_entry (const char * classname, LOG_LSA * savep_lsa)
int locator_update_force (THREAD_ENTRY * thread_p, HFID * hfid, OID * class_oid, OID * oid, RECDES * ikdrecdes, RECDES * recdes, int has_index, ATTR_ID * att_id, int n_att_id, int op_type, HEAP_SCANCACHE * scan_cache, int * force_count, bool not_check_fk, REPL_INFO_TYPE repl_info_type, int pruning_type, PRUNING_CONTEXT * pcontext, MVCC_REEV_DATA * mvcc_reev_data, UPDATE_INPLACE_STYLE force_in_place, bool need_locking)
bool locator_was_index_already_applied (HEAP_CACHE_ATTRINFO * index_attrinfo, BTID * btid, int pos)
int redistribute_partition_data (THREAD_ENTRY * thread_p, OID * class_oid, int no_oids, OID * oid_list)
LC_FIND_CLASSNAME xlocator_reserve_class_name (THREAD_ENTRY * thread_p, const char * classname, OID * class_oid)

Macros

Type Name
define CLASSNAME_CACHE_SIZE 1024
define LOCATOR_GUESS_HT_SIZE [**LOCATOR\_GUESS\_NUM\_NESTED\_REFERENCES**](locator__sr_8c.md#variable-locator_guess_num_nested_references) \* 2

Public Types Documentation

typedef LOCATOR_CLASSNAME_ACTION

typedef struct locator_classname_action LOCATOR_CLASSNAME_ACTION;

typedef LOCATOR_CLASSNAME_ENTRY

typedef struct locator_classname_entry LOCATOR_CLASSNAME_ENTRY;

enum LOCATOR_INDEX_ACTION_FLAG

enum LOCATOR_INDEX_ACTION_FLAG {
    FOR_INSERT_OR_DELETE,
    FOR_MOVE
};

typedef LOCATOR_RETURN_NXOBJ

typedef struct locator_return_nxobj LOCATOR_RETURN_NXOBJ;

Public Attributes Documentation

variable locator_Dont_check_foreign_key

bool locator_Dont_check_foreign_key;

Public Static Attributes Documentation

variable LOCATOR_GUESS_NUM_NESTED_REFERENCES

const int LOCATOR_GUESS_NUM_NESTED_REFERENCES;

variable NULL_HFID

const HFID NULL_HFID;

variable locator_Mht_classnames

MHT_TABLE* locator_Mht_classnames;

variable locator_Pseudo_pageid_crt

INT32 locator_Pseudo_pageid_crt;

variable locator_Pseudo_pageid_first

const INT32 locator_Pseudo_pageid_first;

variable locator_Pseudo_pageid_last

const INT32 locator_Pseudo_pageid_last;

Public Functions Documentation

function has_errors_filtered_for_insert

bool has_errors_filtered_for_insert (
    std::vector< int > error_filter_array
) 

function locator_add_or_remove_index

int locator_add_or_remove_index (
    THREAD_ENTRY * thread_p,
    RECDES * recdes,
    OID * inst_oid,
    OID * class_oid,
    int is_insert,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    bool datayn,
    bool need_replication,
    HFID * hfid,
    FUNC_PRED_UNPACK_INFO * func_preds,
    bool has_BU_lock,
    bool skip_checking_fk
) 

function locator_allocate_copy_area_by_attr_info

LC_COPYAREA * locator_allocate_copy_area_by_attr_info (
    THREAD_ENTRY * thread_p,
    HEAP_CACHE_ATTRINFO * attr_info,
    RECDES * old_recdes,
    RECDES * new_recdes,
    const  int copyarea_length_hint,
    int lob_create_flag
) 

function locator_attribute_info_force

int locator_attribute_info_force (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * oid,
    HEAP_CACHE_ATTRINFO * attr_info,
    ATTR_ID * att_id,
    int n_att_id,
    LC_COPYAREA_OPERATION operation,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    int * force_count,
    bool not_check_fk,
    REPL_INFO_TYPE repl_info,
    int pruning_type,
    PRUNING_CONTEXT * pcontext,
    FUNC_PRED_UNPACK_INFO * func_preds,
    MVCC_REEV_DATA * mvcc_reev_data,
    UPDATE_INPLACE_STYLE force_update_inplace,
    RECDES * rec_descriptor,
    bool need_locking
) 

function locator_check_all_entries_of_all_btrees

DISK_ISVALID locator_check_all_entries_of_all_btrees (
    THREAD_ENTRY * thread_p,
    bool repair
) 

function locator_check_btree_entries

DISK_ISVALID locator_check_btree_entries (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    HFID * hfid,
    OID * class_oid,
    int n_attr_ids,
    ATTR_ID * attr_ids,
    int * atts_prefix_length,
    const  char * btname,
    bool repair
) 

function locator_check_by_class_oid

DISK_ISVALID locator_check_by_class_oid (
    THREAD_ENTRY * thread_p,
    OID * cls_oid,
    HFID * hfid,
    BTID * index_btid,
    bool repair
) 

function locator_check_class

DISK_ISVALID locator_check_class (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    RECDES * peek,
    HFID * class_hfid,
    BTID * index_btid,
    bool repair
) 

function locator_check_class_names

DISK_ISVALID locator_check_class_names (
    THREAD_ENTRY * thread_p
) 

function locator_decide_operation_type

SCAN_OPERATION_TYPE locator_decide_operation_type (
    LOCK lock_mode,
    LC_FETCH_VERSION_TYPE fetch_version_type
) 

function locator_delete_force

int locator_delete_force (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID * oid,
    int has_index,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    int * force_count,
    MVCC_REEV_DATA * mvcc_reev_data,
    bool need_locking
) 

function locator_delete_lob_force

int locator_delete_lob_force (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    OID * oid,
    RECDES * recdes
) 

function locator_drop_transient_class_name_entries

int locator_drop_transient_class_name_entries (
    THREAD_ENTRY * thread_p,
    LOG_LSA * savep_lsa
) 

function locator_dump_class_names

void locator_dump_class_names (
    THREAD_ENTRY * thread_p,
    FILE * out_fp
) 

function locator_end_force_scan_cache

void locator_end_force_scan_cache (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache
) 

function locator_finalize

void locator_finalize (
    THREAD_ENTRY * thread_p
) 

function locator_get_lock_mode_from_op_type

LOCK locator_get_lock_mode_from_op_type (
    SCAN_OPERATION_TYPE op_type
) 

function locator_get_object

SCAN_CODE locator_get_object (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    OID * class_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    SCAN_OPERATION_TYPE op_type,
    LOCK lock_mode,
    int ispeeking,
    int chn
) 

function locator_get_partition_scancache

PRUNING_SCAN_CACHE * locator_get_partition_scancache (
    PRUNING_CONTEXT * pcontext,
    const  OID * class_oid,
    const  HFID * hfid,
    int op_type,
    bool has_function_indexes
) 

function locator_initialize

int locator_initialize (
    THREAD_ENTRY * thread_p
) 

function locator_insert_force

int locator_insert_force (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID * class_oid,
    OID * oid,
    RECDES * recdes,
    int has_index,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    int * force_count,
    int pruning_type,
    PRUNING_CONTEXT * pcontext,
    FUNC_PRED_UNPACK_INFO * func_preds,
    UPDATE_INPLACE_STYLE force_in_place,
    PGBUF_WATCHER * home_hint_p,
    bool has_BU_lock,
    bool dont_check_fk,
    bool use_bulk_logging
) 

function locator_lock_and_get_object

SCAN_CODE locator_lock_and_get_object (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    OID * class_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    LOCK lock,
    int ispeeking,
    int old_chn,
    NON_EXISTENT_HANDLING non_ex_handling_type
) 

function locator_lock_and_get_object_with_evaluation

SCAN_CODE locator_lock_and_get_object_with_evaluation (
    THREAD_ENTRY * thread_p,
    OID * oid,
    OID * class_oid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int ispeeking,
    int old_chn,
    MVCC_REEV_DATA * mvcc_reev_data,
    NON_EXISTENT_HANDLING non_ex_handling_type
) 

function locator_multi_insert_force

int locator_multi_insert_force (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID * class_oid,
    const std::vector< record_descriptor > & recdes,
    int has_index,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    int * force_count,
    int pruning_type,
    PRUNING_CONTEXT * pcontext,
    FUNC_PRED_UNPACK_INFO * func_preds,
    UPDATE_INPLACE_STYLE force_in_place,
    bool dont_check_fk
) 

function locator_rv_redo_rename

int locator_rv_redo_rename (
    THREAD_ENTRY * thread_p,
    LOG_RCV * rcv
) 

function locator_savepoint_transient_class_name_entries

int locator_savepoint_transient_class_name_entries (
    THREAD_ENTRY * thread_p,
    LOG_LSA * savep_lsa
) 

function locator_start_force_scan_cache

int locator_start_force_scan_cache (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache,
    const  HFID * hfid,
    const  OID * class_oid,
    int op_type
) 

function locator_update_index

int locator_update_index (
    THREAD_ENTRY * thread_p,
    RECDES * new_recdes,
    RECDES * old_recdes,
    ATTR_ID * att_id,
    int n_att_id,
    OID * oid,
    OID * class_oid,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    REPL_INFO * repl_info
) 

function xchksum_insert_repl_log_and_demote_table_lock

int xchksum_insert_repl_log_and_demote_table_lock (
    THREAD_ENTRY * thread_p,
    REPL_INFO * repl_info,
    const  OID * class_oidp
) 

function xlob_create_dir

int xlob_create_dir (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    int * attrid_arr,
    int attrid_arr_length
) 

function xlob_remove_dir

int xlob_remove_dir (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    int attrid
) 

function xlocator_assign_oid

int xlocator_assign_oid (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    OID * perm_oid,
    int expected_length,
    OID * class_oid,
    const  char * classname
) 

function xlocator_assign_oid_batch

int xlocator_assign_oid_batch (
    THREAD_ENTRY * thread_p,
    LC_OIDSET * oidset
) 

function xlocator_check_fk_validity

int xlocator_check_fk_validity (
    THREAD_ENTRY * thread_p,
    OID * cls_oid,
    HFID * hfid,
    TP_DOMAIN * key_type,
    int n_attrs,
    int * attr_ids,
    OID * pk_cls_oid,
    BTID * pk_btid,
    char * fk_name
) 

function xlocator_delete_class_name

LC_FIND_CLASSNAME xlocator_delete_class_name (
    THREAD_ENTRY * thread_p,
    const  char * classname
) 

function xlocator_demote_class_lock

int xlocator_demote_class_lock (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    LOCK lock,
    LOCK * ex_lock
) 

function xlocator_does_exist

int xlocator_does_exist (
    THREAD_ENTRY * thread_p,
    OID * oid,
    int chn,
    LOCK lock,
    LC_FETCH_VERSION_TYPE fetch_version_type,
    OID * class_oid,
    int class_chn,
    int need_fetching,
    int prefetching,
    LC_COPYAREA ** fetch_area
) 

function xlocator_fetch

int xlocator_fetch (
    THREAD_ENTRY * thread_p,
    OID * oid,
    int chn,
    LOCK lock,
    LC_FETCH_VERSION_TYPE fetch_version_type,
    LC_FETCH_VERSION_TYPE initial_fetch_version_type,
    OID * class_oid,
    int class_chn,
    int prefetching,
    LC_COPYAREA ** fetch_area
) 

function xlocator_fetch_all

int xlocator_fetch_all (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    LOCK * lock,
    LC_FETCH_VERSION_TYPE fetch_version_type,
    OID * class_oid,
    int * nobjects,
    int * nfetched,
    OID * last_oid,
    LC_COPYAREA ** fetch_area,
    int request_pages
) 

function xlocator_fetch_all_reference_lockset

int xlocator_fetch_all_reference_lockset (
    THREAD_ENTRY * thread_p,
    OID * oid,
    int chn,
    OID * class_oid,
    int class_chn,
    LOCK lock,
    int quit_on_errors,
    int prune_level,
    LC_LOCKSET ** lockset,
    LC_COPYAREA ** fetch_area
) 

function xlocator_fetch_lockhint_classes

int xlocator_fetch_lockhint_classes (
    THREAD_ENTRY * thread_p,
    LC_LOCKHINT * lockhint,
    LC_COPYAREA ** fetch_area
) 

function xlocator_fetch_lockset

int xlocator_fetch_lockset (
    THREAD_ENTRY * thread_p,
    LC_LOCKSET * lockset,
    LC_COPYAREA ** fetch_area
) 

function xlocator_find_class_oid

LC_FIND_CLASSNAME xlocator_find_class_oid (
    THREAD_ENTRY * thread_p,
    const  char * classname,
    OID * class_oid,
    LOCK lock
) 

function xlocator_find_lockhint_class_oids

LC_FIND_CLASSNAME xlocator_find_lockhint_class_oids (
    THREAD_ENTRY * thread_p,
    int num_classes,
    const  char ** many_classnames,
    LOCK * many_locks,
    int * many_need_subclasses,
    LC_PREFETCH_FLAGS * many_flags,
    OID * guessed_class_oids,
    int * guessed_class_chns,
    bool quit_on_errors,
    LC_LOCKHINT ** hlock,
    LC_COPYAREA ** fetch_area
) 

function xlocator_force

int xlocator_force (
    THREAD_ENTRY * thread_p,
    LC_COPYAREA * force_area,
    int num_ignore_error,
    int * ignore_error_list
) 

function xlocator_get_class

int xlocator_get_class (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    int class_chn,
    const  OID * oid,
    LOCK lock,
    int prefetching,
    LC_COPYAREA ** fetch_area
) 

function xlocator_get_reserved_class_name_oid

int xlocator_get_reserved_class_name_oid (
    THREAD_ENTRY * thread_p,
    const  char * classname,
    OID * class_oid
) 

function xlocator_lock_and_fetch_all

int xlocator_lock_and_fetch_all (
    THREAD_ENTRY * thread_p,
    const  HFID * hfid,
    LOCK * instance_lock,
    int * instance_lock_timeout,
    OID * class_oid,
    LOCK * class_lock,
    int * nobjects,
    int * nfetched,
    int * nfailed_instance_locks,
    OID * last_oid,
    LC_COPYAREA ** fetch_area,
    MVCC_SNAPSHOT * mvcc_snapshot
) 

function xlocator_notify_isolation_incons

bool xlocator_notify_isolation_incons (
    THREAD_ENTRY * thread_p,
    LC_COPYAREA ** synch_area
) 

function xlocator_redistribute_partition_data

int xlocator_redistribute_partition_data (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    int no_oids,
    OID * oid_list
) 

function xlocator_remove_class_from_index

int xlocator_remove_class_from_index (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    BTID * btid,
    HFID * hfid
) 

function xlocator_rename_class_name

LC_FIND_CLASSNAME xlocator_rename_class_name (
    THREAD_ENTRY * thread_p,
    const  char * oldname,
    const  char * newname,
    OID * class_oid
) 

function xlocator_repl_force

int xlocator_repl_force (
    THREAD_ENTRY * thread_p,
    LC_COPYAREA * force_area,
    LC_COPYAREA ** reply_area
) 

function xlocator_reserve_class_names

LC_FIND_CLASSNAME xlocator_reserve_class_names (
    THREAD_ENTRY * thread_p,
    const  int num_classes,
    const  char ** classnames,
    OID * class_oids
) 

function xlocator_upgrade_instances_domain

int xlocator_upgrade_instances_domain (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    int att_id
) 

function xrepl_log_get_append_lsa

LOG_LSA * xrepl_log_get_append_lsa (
    void
) 

function xrepl_set_info

int xrepl_set_info (
    THREAD_ENTRY * thread_p,
    REPL_INFO * repl_info
) 

function xsynonym_remove_xasl_by_oid

void xsynonym_remove_xasl_by_oid (
    THREAD_ENTRY * thread_p,
    OID * oidp
) 

Public Static Functions Documentation

function locator_add_or_remove_index_for_moving

static int locator_add_or_remove_index_for_moving (
    THREAD_ENTRY * thread_p,
    RECDES * recdes,
    OID * inst_oid,
    OID * class_oid,
    int is_insert,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    bool datayn,
    bool need_replication,
    HFID * hfid,
    FUNC_PRED_UNPACK_INFO * func_preds,
    bool has_BU_lock
) 

function locator_add_or_remove_index_internal

static int locator_add_or_remove_index_internal (
    THREAD_ENTRY * thread_p,
    RECDES * recdes,
    OID * inst_oid,
    OID * class_oid,
    int is_insert,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    bool datayn,
    bool replyn,
    HFID * hfid,
    FUNC_PRED_UNPACK_INFO * func_preds,
    LOCATOR_INDEX_ACTION_FLAG idx_action_flag,
    bool has_BU_lock,
    bool skip_checking_fk
) 

function locator_all_reference_lockset

static LC_LOCKSET * locator_all_reference_lockset (
    THREAD_ENTRY * thread_p,
    OID * oid,
    int prune_level,
    LOCK inst_lock,
    LOCK class_lock,
    bool quit_on_errors
) 

function locator_area_op_to_pruning_type

static int locator_area_op_to_pruning_type (
    LC_COPYAREA_OPERATION op
) 

function locator_check_class_on_heap

static int locator_check_class_on_heap (
    const  void * name,
    void * ent,
    void * args
) 

function locator_check_foreign_key

static int locator_check_foreign_key (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID * class_oid,
    OID * inst_oid,
    RECDES * recdes,
    RECDES * new_recdes,
    bool * is_cached,
    LC_COPYAREA ** copyarea
) 

function locator_check_primary_key_delete

static int locator_check_primary_key_delete (
    THREAD_ENTRY * thread_p,
    OR_INDEX * index,
    DB_VALUE * key
) 

function locator_check_primary_key_update

static int locator_check_primary_key_update (
    THREAD_ENTRY * thread_p,
    OR_INDEX * index,
    DB_VALUE * key
) 

function locator_check_unique_btree_entries

static DISK_ISVALID locator_check_unique_btree_entries (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OID * cls_oid,
    RECDES * classrec,
    ATTR_ID * attr_ids,
    const  char * btname,
    bool repair
) 

function locator_decr_num_transient_classnames

static void locator_decr_num_transient_classnames (
    int tran_index
) 

function locator_decrease_catalog_count

static void locator_decrease_catalog_count (
    THREAD_ENTRY * thread_p,
    OID * cls_oid
) 

function locator_defence_drop_class_name_entry

static int locator_defence_drop_class_name_entry (
    const  void * name,
    void * ent,
    void * args
) 

function locator_delete_force_for_moving

static int locator_delete_force_for_moving (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID * oid,
    int has_index,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    int * force_count,
    MVCC_REEV_DATA * mvcc_reev_data,
    OID * new_obj_oid,
    OID * partition_oid,
    bool need_locking
) 

function locator_delete_force_internal

static int locator_delete_force_internal (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID * oid,
    int has_index,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    int * force_count,
    MVCC_REEV_DATA * mvcc_reev_data,
    LOCATOR_INDEX_ACTION_FLAG idx_action_flag,
    OID * new_obj_oid,
    OID * partition_oid,
    bool need_locking
) 

function locator_drop_class_name_entry

static int locator_drop_class_name_entry (
    THREAD_ENTRY * thread_p,
    const  char * classname,
    LOG_LSA * savep_lsa
) 

function locator_eval_filter_predicate

static int locator_eval_filter_predicate (
    THREAD_ENTRY * thread_p,
    BTID * btid,
    OR_PREDICATE * or_pred,
    OID * class_oid,
    OID ** inst_oids,
    int num_insts,
    RECDES ** recs,
    DB_LOGICAL * results
) 

function locator_filter_errid

static int locator_filter_errid (
    THREAD_ENTRY * thread_p,
    int num_ignore_error_count,
    int * ignore_error_list
) 

function locator_find_lockset_missing_class_oids

static int locator_find_lockset_missing_class_oids (
    THREAD_ENTRY * thread_p,
    LC_LOCKSET * lockset
) 

function locator_force_drop_class_name_entry

static int locator_force_drop_class_name_entry (
    const  void * name,
    void * ent,
    void * args
) 

function locator_force_for_multi_update

static int locator_force_for_multi_update (
    THREAD_ENTRY * thread_p,
    LC_COPYAREA * force_area
) 

function locator_generate_class_pseudo_oid

static void locator_generate_class_pseudo_oid (
    THREAD_ENTRY * thread_p,
    OID * class_oid
) 

function locator_get_num_transient_classnames

static int locator_get_num_transient_classnames (
    int tran_index
) 

function locator_guess_sub_classes

static int locator_guess_sub_classes (
    THREAD_ENTRY * thread_p,
    LC_LOCKHINT ** lockhint_subclasses
) 

function locator_incr_num_transient_classnames

static void locator_incr_num_transient_classnames (
    int tran_index
) 

function locator_increase_catalog_count

static void locator_increase_catalog_count (
    THREAD_ENTRY * thread_p,
    OID * cls_oid
) 

function locator_is_exist_class_name_entry

static bool locator_is_exist_class_name_entry (
    THREAD_ENTRY * thread_p,
    LOCATOR_CLASSNAME_ENTRY * entry
) 

function locator_lob_make_dir_path

static int locator_lob_make_dir_path (
    char * buf,
    const  HFID * hfid,
    int attrid
) 

function locator_lock_and_get_object_internal

static SCAN_CODE locator_lock_and_get_object_internal (
    THREAD_ENTRY * thread_p,
    HEAP_GET_CONTEXT * context,
    LOCK lock_mode
) 

function locator_lock_and_return_object

static SCAN_CODE locator_lock_and_return_object (
    THREAD_ENTRY * thread_p,
    LOCATOR_RETURN_NXOBJ * assign,
    OID * class_oid,
    OID * oid,
    int chn,
    LOCK lock_mode,
    SCAN_OPERATION_TYPE op_type
) 

function locator_make_midxkey_domain

static TP_DOMAIN * locator_make_midxkey_domain (
    OR_INDEX * index
) 

function locator_move_record

static int locator_move_record (
    THREAD_ENTRY * thread_p,
    HFID * old_hfid,
    OID * old_class_oid,
    OID * obj_oid,
    OID * new_class_oid,
    HFID * new_class_hfid,
    RECDES * recdes,
    HEAP_SCANCACHE * scan_cache,
    int op_type,
    int has_index,
    int * force_count,
    PRUNING_CONTEXT * context,
    MVCC_REEV_DATA * mvcc_reev_data,
    bool need_locking
) 

function locator_mvcc_reev_cond_and_assignment

static DB_LOGICAL locator_mvcc_reev_cond_and_assignment (
    THREAD_ENTRY * thread_p,
    HEAP_SCANCACHE * scan_cache,
    MVCC_REEV_DATA * mvcc_reev_data_p,
    MVCC_REC_HEADER * mvcc_header_p,
    const  OID * curr_row_version_oid_p,
    RECDES * recdes
) 

function locator_mvcc_reev_cond_assigns

static DB_LOGICAL locator_mvcc_reev_cond_assigns (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    const  OID * oid,
    HEAP_SCANCACHE * scan_cache,
    RECDES * recdes,
    MVCC_UPDDEL_REEV_DATA * mvcc_reev_data
) 

function locator_mvcc_reeval_scan_filters

static DB_LOGICAL locator_mvcc_reeval_scan_filters (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    HEAP_SCANCACHE * scan_cache,
    RECDES * recdes,
    UPDDEL_MVCC_COND_REEVAL * mvcc_cond_reeval,
    bool is_upddel
) 

function locator_mvcc_reevaluate_filters

static DB_LOGICAL locator_mvcc_reevaluate_filters (
    THREAD_ENTRY * thread_p,
    MVCC_SCAN_REEV_DATA * mvcc_reev_data,
    const  OID * oid,
    RECDES * recdes
) 

function locator_notify_decache

static bool locator_notify_decache (
    const  OID * class_oid,
    const  OID * oid,
    void * notify_area
) 

function locator_permoid_class_name

static int locator_permoid_class_name (
    THREAD_ENTRY * thread_p,
    const  char * classname,
    const  OID * class_oid
) 

function locator_print_class_name

static int locator_print_class_name (
    THREAD_ENTRY * thread_p,
    FILE * outfp,
    const  void * key,
    void * ent,
    void * args
) 

function locator_repair_btree_by_delete

static DISK_ISVALID locator_repair_btree_by_delete (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    BTID * btid,
    OID * inst_oid
) 

function locator_repair_btree_by_insert

static DISK_ISVALID locator_repair_btree_by_insert (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    BTID * btid,
    DB_VALUE * key,
    OID * inst_oid
) 

function locator_repl_add_error_to_copyarea

static void locator_repl_add_error_to_copyarea (
    LC_COPYAREA ** copy_area,
    RECDES * recdes,
    LC_COPYAREA_ONEOBJ * obj,
    DB_VALUE * key_value,
    int err_code,
    const  char * err_msg
) 

function locator_repl_get_key_value

static int locator_repl_get_key_value (
    DB_VALUE * key_value,
    LC_COPYAREA * force_area,
    LC_COPYAREA_ONEOBJ * obj
) 

function locator_repl_prepare_force

static int locator_repl_prepare_force (
    THREAD_ENTRY * thread_p,
    LC_COPYAREA_ONEOBJ * obj,
    RECDES * old_recdes,
    RECDES * recdes,
    DB_VALUE * key_value,
    HEAP_SCANCACHE * force_scancache
) 

function locator_return_object_assign

static SCAN_CODE locator_return_object_assign (
    THREAD_ENTRY * thread_p,
    LOCATOR_RETURN_NXOBJ * assign,
    OID * class_oid,
    OID * oid,
    int chn,
    int guess_chn,
    SCAN_CODE scan,
    int tran_index
) 

function locator_savepoint_class_name_entry

static int locator_savepoint_class_name_entry (
    const  char * classname,
    LOG_LSA * savep_lsa
) 

function locator_update_force

static int locator_update_force (
    THREAD_ENTRY * thread_p,
    HFID * hfid,
    OID * class_oid,
    OID * oid,
    RECDES * ikdrecdes,
    RECDES * recdes,
    int has_index,
    ATTR_ID * att_id,
    int n_att_id,
    int op_type,
    HEAP_SCANCACHE * scan_cache,
    int * force_count,
    bool not_check_fk,
    REPL_INFO_TYPE repl_info_type,
    int pruning_type,
    PRUNING_CONTEXT * pcontext,
    MVCC_REEV_DATA * mvcc_reev_data,
    UPDATE_INPLACE_STYLE force_in_place,
    bool need_locking
) 

function locator_was_index_already_applied

static bool locator_was_index_already_applied (
    HEAP_CACHE_ATTRINFO * index_attrinfo,
    BTID * btid,
    int pos
) 

function redistribute_partition_data

static int redistribute_partition_data (
    THREAD_ENTRY * thread_p,
    OID * class_oid,
    int no_oids,
    OID * oid_list
) 

function xlocator_reserve_class_name

static LC_FIND_CLASSNAME xlocator_reserve_class_name (
    THREAD_ENTRY * thread_p,
    const  char * classname,
    OID * class_oid
) 

Macro Definition Documentation

define CLASSNAME_CACHE_SIZE

#define CLASSNAME_CACHE_SIZE `1024`

define LOCATOR_GUESS_HT_SIZE

#define LOCATOR_GUESS_HT_SIZE `LOCATOR_GUESS_NUM_NESTED_REFERENCES * 2`


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