CUBRID Engine  latest
locator_sr.c File Reference
#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 "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"

Go to the source code of this file.

Classes

struct  locator_classname_action
 
struct  locator_classname_entry
 
struct  locator_return_nxobj
 

Macros

#define LOCATOR_GUESS_HT_SIZE   LOCATOR_GUESS_NUM_NESTED_REFERENCES * 2
 
#define CLASSNAME_CACHE_SIZE   1024
 

Typedefs

typedef struct locator_classname_action LOCATOR_CLASSNAME_ACTION
 
typedef struct locator_classname_entry LOCATOR_CLASSNAME_ENTRY
 
typedef struct locator_return_nxobj LOCATOR_RETURN_NXOBJ
 

Enumerations

enum  LOCATOR_INDEX_ACTION_FLAG { FOR_INSERT_OR_DELETE, FOR_MOVE }
 

Functions

int catcls_insert_catalog_classes (THREAD_ENTRY *thread_p, RECDES *record)
 
int catcls_delete_catalog_classes (THREAD_ENTRY *thread_p, const char *name, OID *class_oid)
 
int catcls_update_catalog_classes (THREAD_ENTRY *thread_p, const char *name, RECDES *record, OID *class_oid_p, UPDATE_INPLACE_STYLE force_in_place)
 
int catcls_remove_entry (THREAD_ENTRY *thread_p, OID *class_oid)
 
static int locator_permoid_class_name (THREAD_ENTRY *thread_p, const char *classname, const OID *class_oid)
 
static int locator_defence_drop_class_name_entry (const void *name, void *ent, void *args)
 
static int locator_force_drop_class_name_entry (const void *name, void *ent, void *args)
 
static int locator_drop_class_name_entry (THREAD_ENTRY *thread_p, const char *classname, LOG_LSA *savep_lsa)
 
static int locator_savepoint_class_name_entry (const char *classname, LOG_LSA *savep_lsa)
 
static int locator_print_class_name (THREAD_ENTRY *thread_p, FILE *outfp, const void *key, void *ent, void *args)
 
static int locator_check_class_on_heap (const void *name, void *ent, void *args)
 
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)
 
static int locator_find_lockset_missing_class_oids (THREAD_ENTRY *thread_p, LC_LOCKSET *lockset)
 
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)
 
static LC_LOCKSETlocator_all_reference_lockset (THREAD_ENTRY *thread_p, OID *oid, int prune_level, LOCK inst_lock, LOCK class_lock, bool quit_on_errors)
 
static bool locator_notify_decache (const OID *class_oid, const OID *oid, void *notify_area)
 
static int locator_guess_sub_classes (THREAD_ENTRY *thread_p, LC_LOCKHINT **lockhint_subclasses)
 
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)
 
static int locator_repl_get_key_value (DB_VALUE *key_value, LC_COPYAREA *force_area, LC_COPYAREA_ONEOBJ *obj)
 
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)
 
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)
 
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)
 
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)
 
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)
 
static int locator_force_for_multi_update (THREAD_ENTRY *thread_p, LC_COPYAREA *force_area)
 
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)
 
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)
 
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)
 
static int locator_check_primary_key_delete (THREAD_ENTRY *thread_p, OR_INDEX *index, DB_VALUE *key)
 
static int locator_check_primary_key_update (THREAD_ENTRY *thread_p, OR_INDEX *index, DB_VALUE *key)
 
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)
 
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)
 
static bool locator_was_index_already_applied (HEAP_CACHE_ATTRINFO *index_attrinfo, BTID *btid, int pos)
 
static LC_FIND_CLASSNAME xlocator_reserve_class_name (THREAD_ENTRY *thread_p, const char *classname, OID *class_oid)
 
static int locator_filter_errid (THREAD_ENTRY *thread_p, int num_ignore_error_count, int *ignore_error_list)
 
static int locator_area_op_to_pruning_type (LC_COPYAREA_OPERATION op)
 
static int locator_prefetch_index_page (THREAD_ENTRY *thread_p, OID *class_oid, RECDES *classrec, RECDES *recdes, int btid_index, HEAP_CACHE_ATTRINFO *attr_info)
 
static int locator_prefetch_index_page_internal (THREAD_ENTRY *thread_p, BTID *btid, OID *class_oid, RECDES *classrec, RECDES *recdes)
 
static void locator_incr_num_transient_classnames (int tran_index)
 
static void locator_decr_num_transient_classnames (int tran_index)
 
static int locator_get_num_transient_classnames (int tran_index)
 
static bool locator_is_exist_class_name_entry (THREAD_ENTRY *thread_p, LOCATOR_CLASSNAME_ENTRY *entry)
 
static DISK_ISVALID locator_repair_btree_by_delete (THREAD_ENTRY *thread_p, OID *class_oid, BTID *btid, OID *inst_oid)
 
static void locator_generate_class_pseudo_oid (THREAD_ENTRY *thread_p, OID *class_oid)
 
static int redistribute_partition_data (THREAD_ENTRY *thread_p, OID *class_oid, int no_oids, OID *oid_list)
 
static SCAN_CODE locator_lock_and_get_object_internal (THREAD_ENTRY *thread_p, HEAP_GET_CONTEXT *context, LOCK lock_mode)
 
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)
 
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)
 
static DB_LOGICAL locator_mvcc_reevaluate_filters (THREAD_ENTRY *thread_p, MVCC_SCAN_REEV_DATA *mvcc_reev_data, const OID *oid, RECDES *recdes)
 
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)
 
int locator_initialize (THREAD_ENTRY *thread_p)
 
void locator_finalize (THREAD_ENTRY *thread_p)
 
LC_FIND_CLASSNAME xlocator_reserve_class_names (THREAD_ENTRY *thread_p, const int num_classes, const char **classnames, OID *class_oids)
 
int xlocator_get_reserved_class_name_oid (THREAD_ENTRY *thread_p, const char *classname, OID *class_oid)
 
LC_FIND_CLASSNAME xlocator_delete_class_name (THREAD_ENTRY *thread_p, const char *classname)
 
LC_FIND_CLASSNAME xlocator_rename_class_name (THREAD_ENTRY *thread_p, const char *oldname, const char *newname, OID *class_oid)
 
LC_FIND_CLASSNAME xlocator_find_class_oid (THREAD_ENTRY *thread_p, const char *classname, OID *class_oid, LOCK lock)
 
int locator_drop_transient_class_name_entries (THREAD_ENTRY *thread_p, LOG_LSA *savep_lsa)
 
int locator_savepoint_transient_class_name_entries (THREAD_ENTRY *thread_p, LOG_LSA *savep_lsa)
 
void locator_dump_class_names (THREAD_ENTRY *thread_p, FILE *out_fp)
 
DISK_ISVALID locator_check_class_names (THREAD_ENTRY *thread_p)
 
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_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_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_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 xlocator_fetch_lockset (THREAD_ENTRY *thread_p, LC_LOCKSET *lockset, LC_COPYAREA **fetch_area)
 
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_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 locator_start_force_scan_cache (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache, const HFID *hfid, const OID *class_oid, int op_type)
 
void locator_end_force_scan_cache (THREAD_ENTRY *thread_p, HEAP_SCANCACHE *scan_cache)
 
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)
 
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 xlocator_repl_force (THREAD_ENTRY *thread_p, LC_COPYAREA *force_area, LC_COPYAREA **reply_area)
 
int xlocator_force (THREAD_ENTRY *thread_p, LC_COPYAREA *force_area, int num_ignore_error, int *ignore_error_list)
 
LC_COPYAREAlocator_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)
 
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)
 
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 xlocator_remove_class_from_index (THREAD_ENTRY *thread_p, OID *class_oid, BTID *btid, HFID *hfid)
 
bool xlocator_notify_isolation_incons (THREAD_ENTRY *thread_p, LC_COPYAREA **synch_area)
 
static DISK_ISVALID locator_repair_btree_by_insert (THREAD_ENTRY *thread_p, OID *class_oid, BTID *btid, DB_VALUE *key, OID *inst_oid)
 
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_class (THREAD_ENTRY *thread_p, OID *class_oid, RECDES *peek, HFID *class_hfid, BTID *index_btid, 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_all_entries_of_all_btrees (THREAD_ENTRY *thread_p, bool repair)
 
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_fetch_lockhint_classes (THREAD_ENTRY *thread_p, LC_LOCKHINT *lockhint, LC_COPYAREA **fetch_area)
 
int xlocator_assign_oid_batch (THREAD_ENTRY *thread_p, LC_OIDSET *oidset)
 
int xrepl_set_info (THREAD_ENTRY *thread_p, REPL_INFO *repl_info)
 
LOG_LSAxrepl_log_get_append_lsa (void)
 
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)
 
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)
 
int xlocator_upgrade_instances_domain (THREAD_ENTRY *thread_p, OID *class_oid, int att_id)
 
PRUNING_SCAN_CACHElocator_get_partition_scancache (PRUNING_CONTEXT *pcontext, const OID *class_oid, const HFID *hfid, int op_type, bool has_function_indexes)
 
int xchksum_insert_repl_log_and_demote_table_lock (THREAD_ENTRY *thread_p, REPL_INFO *repl_info, const OID *class_oidp)
 
int locator_rv_redo_rename (THREAD_ENTRY *thread_p, LOG_RCV *rcv)
 
int xlocator_redistribute_partition_data (THREAD_ENTRY *thread_p, OID *class_oid, int no_oids, OID *oid_list)
 
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)
 
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)
 
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_OPERATION_TYPE locator_decide_operation_type (LOCK lock_mode, LC_FETCH_VERSION_TYPE fetch_version_type)
 
LOCK locator_get_lock_mode_from_op_type (SCAN_OPERATION_TYPE op_type)
 
int xlocator_demote_class_lock (THREAD_ENTRY *thread_p, const OID *class_oid, LOCK lock, LOCK *ex_lock)
 
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)
 
bool has_errors_filtered_for_insert (std::vector< int > error_filter_array)
 

Variables

bool catcls_Enable
 
static const int LOCATOR_GUESS_NUM_NESTED_REFERENCES = 100
 
bool locator_Dont_check_foreign_key = false
 
static MHT_TABLElocator_Mht_classnames = NULL
 
static const HFID NULL_HFID = { {-1, -1}, -1 }
 
static const INT32 locator_Pseudo_pageid_first = -2
 
static const INT32 locator_Pseudo_pageid_last = -0x7FFF
 
static INT32 locator_Pseudo_pageid_crt = -2
 

Macro Definition Documentation

#define CLASSNAME_CACHE_SIZE   1024

Definition at line 74 of file locator_sr.c.

Referenced by locator_initialize().

#define LOCATOR_GUESS_HT_SIZE   LOCATOR_GUESS_NUM_NESTED_REFERENCES * 2

Definition at line 72 of file locator_sr.c.

Referenced by locator_all_reference_lockset().

Typedef Documentation

Definition at line 90 of file locator_sr.c.

Definition at line 99 of file locator_sr.c.

Definition at line 107 of file locator_sr.c.

Enumeration Type Documentation

Enumerator
FOR_INSERT_OR_DELETE 
FOR_MOVE 

Definition at line 77 of file locator_sr.c.

Function Documentation

int catcls_remove_entry ( THREAD_ENTRY thread_p,
OID class_oid 
)

Definition at line 385 of file catalog_class.c.

References assert, catcls_free_entry_kv(), csect_check_own, CSECT_CT_OID_TABLE, mht_rem(), NO_ERROR, and NULL.

Referenced by catcls_delete_catalog_classes(), and locator_force_drop_class_name_entry().

Here is the caller graph for this function:

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

Definition at line 13852 of file locator_sr.c.

References ER_BTREE_UNIQUE_FAILED.

Referenced by cubload::server_object_loader::flush_records().

Here is the caller graph for this function:

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 
)
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 
)
static

Definition at line 7575 of file locator_sr.c.

References FOR_MOVE, and locator_add_or_remove_index_internal().

Referenced by locator_delete_force_internal().

Here is the caller graph for this function:

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 
)
static

Definition at line 7610 of file locator_sr.c.

References assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, assert_release, or_index::atts, or_index::btid, or_index::btname, BTREE_CONSTRAINT_PRIMARY_KEY, BTREE_CONSTRAINT_UNIQUE, BTREE_FOREIGN_KEY, btree_insert(), btree_keyoid_checkscan_check(), btree_keyoid_checkscan_end(), btree_keyoid_checkscan_start(), btree_multicol_key_is_null(), btree_mvcc_delete(), btree_online_index_dispatcher(), BTREE_OP_ONLINE_INDEX_TRAN_DELETE, BTREE_OP_ONLINE_INDEX_TRAN_INSERT, btree_physical_delete(), BTREE_PRIMARY_KEY, BTREE_REVERSE_UNIQUE, btree_set_mvcc_header_ids_for_update(), BTREE_UNIQUE, heap_scancache_node::classname, DB_IS_NULL, db_make_null(), DB_TYPE_MIDXKEY, DBVAL_BUFSIZE, DISK_INVALID, DISK_VALID, er_errid(), ER_FAILED, ER_INTERRUPTED, error(), or_index::filter_predicate, or_index::fk, FOR_MOVE, free_and_init, multi_index_unique_stats::get_stats_of(), heap_idx_elements_info::has_single_col, heap_attrinfo_end(), heap_attrinfo_read_dbvalues(), heap_attrinfo_start_with_index(), heap_attrvalue_get_key(), heap_get_class_name(), i, or_index::index_status, LK_GRANTED, LK_UNCOND_LOCK, locator_check_primary_key_delete(), locator_check_primary_key_update(), locator_Dont_check_foreign_key, locator_eval_filter_predicate(), locator_was_index_already_applied(), lock_object(), LOG_CHECK_LOG_APPLIER, log_does_allow_replication(), LOG_REPLICATION_DATA, LOG_REPLICATION_STATEMENT, logtb_get_current_mvccid(), heap_scancache::m_index_stats, MAX_ALIGNMENT, MULTI_ROW_DELETE, MULTI_ROW_INSERT, MULTI_ROW_UPDATE, mvcc_is_mvcc_disabled_class(), or_index::n_atts, tp_domain::next, NO_ERROR, heap_scancache::node, NULL, heap_idx_elements_info::num_btids, OID_ISNULL, OR_ONLINE_INDEX_BUILDING_IN_PROGRESS, pr_clear_value(), or_predicate::pred_stream, PTR_ALIGN, REPL_INFO_TYPE_RBR_NORMAL, RVREPL_DATA_DELETE, RVREPL_DATA_INSERT, tp_domain_cache(), tp_domain_construct(), tp_domain_copy(), tp_domain_free(), or_index::type, V_TRUE, V_UNKNOWN, and X_LOCK.

Referenced by locator_add_or_remove_index(), and locator_add_or_remove_index_for_moving().

Here is the caller graph for this function:

static int locator_area_op_to_pruning_type ( LC_COPYAREA_OPERATION  op)
static
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 
)

Definition at line 7311 of file locator_sr.c.

References recdes::area_size, ARG_FILE_LINE, assert, ASSERT_ERROR, COPY, COPY_OID, recdes::data, er_clear(), er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_HEAP_NODATA_NEWADDRESS, ER_HEAP_UNKNOWN_OBJECT, ER_LC_BADFORCE_OPERATION, er_set(), heap_attrinfo_check_unique_index(), heap_clean_get_context(), heap_get_last_version(), heap_init_get_context(), HEAP_IS_UPDATE_INPLACE, HFID_COPY, LC_FLAG_HAS_INDEX, LC_FLAG_HAS_UNIQUE_INDEX, LC_FLUSH_DELETE, LC_FLUSH_INSERT, LC_FLUSH_INSERT_PRUNE, LC_FLUSH_INSERT_PRUNE_VERIFY, LC_FLUSH_UPDATE, LC_FLUSH_UPDATE_PRUNE, LC_FLUSH_UPDATE_PRUNE_VERIFY, LC_IS_FLUSH_INSERT, LC_IS_FLUSH_UPDATE, LOB_FLAG_INCLUDE_LOB, locator_allocate_copy_area_by_attr_info(), locator_delete_force(), locator_free_copy_area(), locator_insert_force(), locator_lock_and_get_object(), locator_update_force(), lock_get_object_lock(), LOG_ERROR_IF_DELETED, heap_scancache::mvcc_snapshot, NO_ERROR, NULL, NULL_CHN, oid_Root_class_oid, db_identifier::pageid, S_DOESNT_EXIST, S_DOESNT_FIT, S_ERROR, S_SNAPSHOT_NOT_SATISFIED, S_SUCCESS, db_identifier::slotid, UPDATE_INPLACE_NONE, db_identifier::volid, and X_LOCK.

Referenced by heap_object_upgrade_domain(), locator_check_primary_key_delete(), locator_check_primary_key_update(), process_object(), qexec_execute_delete(), qexec_execute_duplicate_key_update(), qexec_execute_increment(), qexec_execute_insert(), qexec_execute_update(), and qexec_remove_duplicates_for_replace().

Here is the caller graph for this function:

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 
)

Definition at line 9276 of file locator_sr.c.

References ARG_FILE_LINE, assert, or_index::btid, BTID_IS_EQUAL, BTREE_END_OF_SCAN, BTREE_INIT_SCAN, btree_keyoid_checkscan_check(), btree_keyoid_checkscan_end(), btree_keyoid_checkscan_start(), btree_multicol_key_is_null(), btree_prepare_bts(), btree_range_scan(), btree_range_scan_select_visible_oids(), btree_iscan_oid_list::capacity, indx_scan_id::check_not_vacuumed, COPY, indx_scan_id::copy_buf, indx_scan_id::copy_buf_len, db_make_null(), db_private_alloc, db_private_free, db_private_free_and_init, db_value_is_null(), DBVAL_BUFSIZE, DISK_ERROR, DISK_INVALID, DISK_VALID, er_clear(), er_errid(), ER_ERROR_SEVERITY, ER_FATAL_ERROR_SEVERITY, ER_INDEX_FOUND_NOT_VACUUMED, ER_INTERRUPTED, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE1, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE2, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE3, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), vfid::fileid, or_index::filter_predicate, free_and_init, heap_attrinfo_end(), heap_attrinfo_read_dbvalues(), heap_attrinfo_start(), heap_attrvalue_get_key(), heap_does_exist(), heap_get_class_name(), heap_next(), heap_scancache_end(), heap_scancache_start(), i, or_classrep::indexes, indx_scan_id::indx_cov, indx_scan_id::indx_info, INF_INF, ISCAN_OID_BUFFER_CAPACITY, ISCAN_OID_BUFFER_SIZE, key_val_range::key1, key_val_range::key2, locator_eval_filter_predicate(), locator_repair_btree_by_delete(), locator_repair_btree_by_insert(), LOG_FIND_THREAD_TRAN_INDEX, logtb_get_mvcc_snapshot(), MAX_ALIGNMENT, btree_iscan_oid_list::max_oid_cnt, indx_scan_id::multi_range_opt, or_classrep::n_indexes, btree_scan::n_oids_read_last_iteration, btree_iscan_oid_list::next_list, NO_ERROR, indx_scan_id::not_vacuumed_res, NULL, NULL_PAGEID, NULL_SLOTID, key_val_range::num_index_term, btree_iscan_oid_list::oid_cnt, OID_ISNULL, indx_scan_id::oid_list, btree_iscan_oid_list::oidp, OR_OID_SIZE, db_identifier::pageid, pr_clear_value(), pr_valstring(), PTR_ALIGN, key_val_range::range, RECDES_INITIALIZER, btid::root_pageid, S_END, S_SUCCESS, indx_scan_id::scan_cache, scan_init_index_scan(), scan_init_iss(), db_identifier::slotid, V_TRUE, hfid::vfid, btid::vfid, vfid::volid, and db_identifier::volid.

Referenced by locator_check_class().

Here is the caller graph for this function:

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

Definition at line 4190 of file locator_sr.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR, BTREE_END_OF_SCAN, btree_find_foreign_key(), BTREE_INIT_SCAN, btree_prepare_bts(), btree_range_scan(), btree_range_scan_select_visible_oids(), btree_scan_clear_key(), btree_iscan_oid_list::capacity, COPY, recdes::data, db_make_null(), DB_NOT_PARTITIONED_CLASS, db_private_alloc, db_private_free_and_init, DB_TYPE_BLOB, DB_TYPE_CLOB, or_foreign_key::del_action, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_FK_CANT_DELETE_INSTANCE, ER_FK_RESTRICT, ER_HEAP_UNKNOWN_OBJECT, er_log_debug, ER_MVCC_NOT_SATISFIED_REEVALUATION, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), or_index::fk, or_foreign_key::fkname, GE_LE, heap_attrinfo_clear_dbvalues(), heap_attrinfo_end(), heap_attrinfo_set(), heap_attrinfo_start(), heap_get_class_info(), heap_get_indexinfo_of_btid(), heap_scancache_end(), heap_scancache_end_modify(), heap_scancache_start(), heap_scancache_start_modify(), i, ISCAN_OID_BUFFER_CAPACITY, key_val_range::key1, key_val_range::key2, LC_FLUSH_UPDATE, locator_attribute_info_force(), locator_delete_force(), locator_delete_lob_force(), locator_lock_and_get_object(), lock_unlock_object_donot_move_to_non2pl(), LOG_CHECK_LOG_APPLIER, LOG_ERROR_IF_DELETED, logtb_get_mvcc_snapshot(), btree_iscan_oid_list::max_oid_cnt, or_index::n_atts, btree_scan::n_oids_read_last_iteration, or_foreign_key::next, btree_iscan_oid_list::next_list, NO_ERROR, NULL, NULL_CHN, key_val_range::num_index_term, btree_iscan_oid_list::oid_cnt, OID_ISNULL, btree_iscan_oid_list::oidp, OR_OID_SIZE, db_identifier::pageid, pr_clear_value(), pr_clone_value(), key_val_range::range, REPL_INFO_TYPE_RBR_NORMAL, S_DOESNT_EXIST, S_LOCK, S_SUCCESS, indx_scan_id::scan_cache, scan_init_index_scan(), or_foreign_key::self_btid, or_foreign_key::self_oid, SINGLE_ROW_DELETE, SINGLE_ROW_UPDATE, db_identifier::slotid, SM_FOREIGN_KEY_CASCADE, SM_FOREIGN_KEY_NO_ACTION, SM_FOREIGN_KEY_RESTRICT, SM_FOREIGN_KEY_SET_NULL, UPDATE_INPLACE_NONE, db_identifier::volid, and X_LOCK.

Referenced by locator_add_or_remove_index_internal().

Here is the caller graph for this function:

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

Definition at line 4536 of file locator_sr.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR, BTREE_END_OF_SCAN, btree_find_foreign_key(), BTREE_INIT_SCAN, btree_prepare_bts(), btree_range_scan(), btree_range_scan_select_visible_oids(), btree_scan_clear_key(), btree_iscan_oid_list::capacity, COPY, recdes::data, db_make_null(), DB_NOT_PARTITIONED_CLASS, db_private_alloc, db_private_free_and_init, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_FK_RESTRICT, ER_HEAP_UNKNOWN_OBJECT, er_log_debug, ER_MVCC_NOT_SATISFIED_REEVALUATION, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), or_index::fk, or_foreign_key::fkname, GE_LE, heap_attrinfo_clear_dbvalues(), heap_attrinfo_end(), heap_attrinfo_set(), heap_attrinfo_start(), heap_get_class_info(), heap_get_indexinfo_of_btid(), heap_scancache_end(), heap_scancache_end_modify(), heap_scancache_start(), heap_scancache_start_modify(), i, ISCAN_OID_BUFFER_CAPACITY, key_val_range::key1, key_val_range::key2, LC_FLUSH_UPDATE, locator_attribute_info_force(), locator_lock_and_get_object(), lock_unlock_object_donot_move_to_non2pl(), LOG_CHECK_LOG_APPLIER, LOG_ERROR_IF_DELETED, logtb_get_mvcc_snapshot(), btree_iscan_oid_list::max_oid_cnt, or_index::n_atts, btree_scan::n_oids_read_last_iteration, or_foreign_key::next, btree_iscan_oid_list::next_list, NO_ERROR, NULL, NULL_CHN, key_val_range::num_index_term, btree_iscan_oid_list::oid_cnt, OID_ISNULL, btree_iscan_oid_list::oidp, OR_OID_SIZE, db_identifier::pageid, pr_clear_value(), pr_clone_value(), key_val_range::range, REPL_INFO_TYPE_RBR_NORMAL, S_DOESNT_EXIST, S_LOCK, S_SUCCESS, indx_scan_id::scan_cache, scan_init_index_scan(), or_foreign_key::self_btid, or_foreign_key::self_oid, SINGLE_ROW_UPDATE, db_identifier::slotid, SM_FOREIGN_KEY_CASCADE, SM_FOREIGN_KEY_NO_ACTION, SM_FOREIGN_KEY_RESTRICT, SM_FOREIGN_KEY_SET_NULL, or_foreign_key::upd_action, UPDATE_INPLACE_NONE, db_identifier::volid, and X_LOCK.

Referenced by locator_add_or_remove_index_internal(), and locator_update_index().

Here is the caller graph for this function:

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 
)
static

Definition at line 9701 of file locator_sr.c.

References ARG_FILE_LINE, assert, BTREE_END_OF_SCAN, BTREE_INIT_SCAN, btree_keyoid_checkscan_check(), btree_keyoid_checkscan_end(), btree_keyoid_checkscan_start(), btree_multicol_key_is_null(), btree_prepare_bts(), btree_range_scan(), btree_range_scan_select_visible_oids(), btree_iscan_oid_list::capacity, indx_scan_id::check_not_vacuumed, indx_scan_id::copy_buf, indx_scan_id::copy_buf_len, COPY_OID, db_make_null(), db_private_alloc, db_private_free, db_private_free_and_init, db_value_is_null(), DBVAL_BUFSIZE, DISK_ERROR, DISK_INVALID, DISK_VALID, er_clear(), er_errid(), ER_ERROR_SEVERITY, ER_FATAL_ERROR_SEVERITY, ER_INDEX_FOUND_NOT_VACUUMED, ER_INTERRUPTED, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE1, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE2, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE4, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE5, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE6, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE7, ER_LC_INCONSISTENT_BTREE_ENTRY_TYPE8, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), vfid::fileid, or_index::filter_predicate, free_and_init, heap_attrinfo_end(), heap_attrinfo_read_dbvalues(), heap_attrinfo_start_with_btid(), heap_attrvalue_get_key(), heap_does_exist(), heap_get_class_name(), heap_get_class_oid(), heap_next(), heap_scancache_end(), heap_scancache_start(), i, INF_INF, ISCAN_OID_BUFFER_CAPACITY, ISCAN_OID_BUFFER_SIZE, key_val_range::key1, key_val_range::key2, locator_eval_filter_predicate(), locator_repair_btree_by_delete(), locator_repair_btree_by_insert(), LOG_FIND_THREAD_TRAN_INDEX, logtb_get_global_unique_stats(), logtb_get_mvcc_snapshot(), MAX_ALIGNMENT, btree_iscan_oid_list::max_oid_cnt, btree_scan::n_oids_read_last_iteration, btree_iscan_oid_list::next_list, NO_ERROR, indx_scan_id::not_vacuumed_res, NULL, NULL_PAGEID, NULL_SLOTID, key_val_range::num_index_term, btree_iscan_oid_list::oid_cnt, OID_EQ, OID_ISNULL, indx_scan_id::oid_list, btree_iscan_oid_list::oidp, or_class_hfid(), or_get_unique_hierarchy(), OR_OID_SIZE, db_identifier::pageid, PEEK, pr_clear_value(), pr_valstring(), PTR_ALIGN, key_val_range::range, RECDES_INITIALIZER, btid::root_pageid, S_END, S_SUCCESS, indx_scan_id::scan_cache, scan_init_index_scan(), db_identifier::slotid, V_TRUE, btid::vfid, vfid::volid, and db_identifier::volid.

Referenced by locator_check_class().

Here is the caller graph for this function:

SCAN_OPERATION_TYPE locator_decide_operation_type ( LOCK  lock_mode,
LC_FETCH_VERSION_TYPE  fetch_version_type 
)

Definition at line 13649 of file locator_sr.c.

References assert, LC_FETCH_CURRENT_VERSION, LC_FETCH_MVCC_VERSION, NULL_LOCK, S_DELETE, S_LOCK, S_SELECT, and S_SELECT_WITH_LOCK.

Referenced by xlocator_does_exist(), and xlocator_fetch().

Here is the caller graph for this function:

static void locator_decr_num_transient_classnames ( int  tran_index)
static

Definition at line 12474 of file locator_sr.c.

References assert, LOG_FIND_TDES(), NULL, and log_tdes::num_transient_classnames.

Referenced by locator_drop_class_name_entry(), and xlocator_reserve_class_name().

Here is the caller graph for this function:

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 
)

Definition at line 5993 of file locator_sr.c.

References FOR_INSERT_OR_DELETE, locator_delete_force_internal(), and NULL.

Referenced by locator_attribute_info_force(), locator_check_primary_key_delete(), xlocator_force(), and xlocator_repl_force().

Here is the caller graph for this function:

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 
)
static

Definition at line 6021 of file locator_sr.c.

References FOR_MOVE, and locator_delete_force_internal().

Referenced by locator_move_record().

Here is the caller graph for this function:

int locator_delete_lob_force ( THREAD_ENTRY thread_p,
OID class_oid,
OID oid,
RECDES recdes 
)
void locator_dump_class_names ( THREAD_ENTRY thread_p,
FILE *  out_fp 
)

Definition at line 1786 of file locator_sr.c.

References assert, csect_enter_as_reader, csect_exit, CSECT_LOCATOR_SR_CLASSNAME_TABLE, INF_WAIT, locator_print_class_name(), mht_dump(), and NO_ERROR.

Referenced by diagdb().

Here is the caller graph for this function:

void locator_end_force_scan_cache ( THREAD_ENTRY thread_p,
HEAP_SCANCACHE scan_cache 
)
static int locator_filter_errid ( THREAD_ENTRY thread_p,
int  num_ignore_error_count,
int *  ignore_error_list 
)
static

Definition at line 12229 of file locator_sr.c.

References assert, er_clear(), er_errid(), i, and NO_ERROR.

Referenced by xlocator_force().

Here is the caller graph for this function:

void locator_finalize ( THREAD_ENTRY thread_p)
static void locator_generate_class_pseudo_oid ( THREAD_ENTRY thread_p,
OID class_oid 
)
static
LOCK locator_get_lock_mode_from_op_type ( SCAN_OPERATION_TYPE  op_type)

Definition at line 13688 of file locator_sr.c.

References assert, NA_LOCK, S_DELETE, S_LOCK, S_SELECT, S_SELECT_WITH_LOCK, S_UPDATE, and X_LOCK.

Referenced by qexec_execute_obj_fetch().

Here is the caller graph for this function:

static int locator_get_num_transient_classnames ( int  tran_index)
static

Definition at line 12497 of file locator_sr.c.

References assert, LOG_FIND_TDES(), NULL, and log_tdes::num_transient_classnames.

Referenced by locator_drop_transient_class_name_entries(), and locator_savepoint_transient_class_name_entries().

Here is the caller graph for this function:

static void locator_incr_num_transient_classnames ( int  tran_index)
static

Definition at line 12451 of file locator_sr.c.

References assert, LOG_FIND_TDES(), NULL, and log_tdes::num_transient_classnames.

Referenced by xlocator_delete_class_name(), and xlocator_reserve_class_name().

Here is the caller graph for this function:

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 
)

Definition at line 4854 of file locator_sr.c.

References ARG_FILE_LINE, assert, assert_release, catalog_insert(), catcls_Enable, catcls_insert_catalog_classes(), COPY_OID, recdes::data, DB_NOT_PARTITIONED_CLASS, er_errid(), ER_FAILED, er_log_debug, pruning_scan_cache::func_index_pred, heap_create_insert_context(), heap_create_update_context(), heap_get_class_repr_id(), heap_insert_logical(), heap_update_logical(), HFID_COPY, heap_operation_context::is_bulk_op, heap_operation_context::is_logical_old, IX_LOCK, LK_GRANTED, LK_UNCOND_LOCK, locator_add_or_remove_index(), locator_check_foreign_key(), locator_Dont_check_foreign_key, locator_free_copy_area(), locator_get_partition_scancache(), locator_permoid_class_name(), lock_subclass(), NO_ERROR, NULL, NULL_PAGEID, NULL_SLOTID, NULL_VOLID, OID_EQ, OID_IS_ROOTOID, OID_ISNULL, or_class_name(), or_class_rep_dir(), OR_FIXED_ATTRIBUTES_OFFSET, OR_PUT_OID, or_replace_rep_id(), ORC_CLASS_VAR_ATT_COUNT, ORC_REP_DIR_OFFSET, db_identifier::pageid, partition_prune_insert(), qexec_clear_list_cache_by_class(), QFILE_IS_LIST_CACHE_DISABLED, qmgr_add_modified_class(), REC_HOME, heap_operation_context::recdes_p, heap_operation_context::res_oid, pruning_scan_cache::scan_cache, db_identifier::slotid, strlen, recdes::type, heap_operation_context::update_in_place, UPDATE_INPLACE_CURRENT_MVCCID, UPDATE_INPLACE_OLD_MVCCID, heap_operation_context::use_bulk_logging, and db_identifier::volid.

Referenced by cubload::server_object_loader::flush_records(), locator_attribute_info_force(), locator_move_record(), locator_multi_insert_force(), redistribute_partition_data(), xlocator_force(), and xlocator_repl_force().

Here is the caller graph for this function:

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 
)
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 
)
static
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 
)
static
static int locator_prefetch_index_page ( THREAD_ENTRY thread_p,
OID class_oid,
RECDES classrec,
RECDES recdes,
int  btid_index,
HEAP_CACHE_ATTRINFO attr_info 
)
static
static DISK_ISVALID locator_repair_btree_by_delete ( THREAD_ENTRY thread_p,
OID class_oid,
BTID btid,
OID inst_oid 
)
static
static DISK_ISVALID locator_repair_btree_by_insert ( THREAD_ENTRY thread_p,
OID class_oid,
BTID btid,
DB_VALUE key,
OID inst_oid 
)
static
static int locator_repl_get_key_value ( DB_VALUE key_value,
LC_COPYAREA force_area,
LC_COPYAREA_ONEOBJ obj 
)
static

Definition at line 6760 of file locator_sr.c.

References lc_copy_area::mem, lc_copyarea_oneobj::offset, and or_unpack_mem_value().

Referenced by xlocator_repl_force().

Here is the caller graph for this function:

int locator_rv_redo_rename ( THREAD_ENTRY thread_p,
LOG_RCV rcv 
)

Definition at line 12615 of file locator_sr.c.

References NO_ERROR.

int locator_start_force_scan_cache ( THREAD_ENTRY thread_p,
HEAP_SCANCACHE scan_cache,
const HFID hfid,
const OID class_oid,
int  op_type 
)
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 
)
static

Definition at line 5308 of file locator_sr.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, catalog_insert(), catalog_update(), catcls_Enable, catcls_insert_catalog_classes(), catcls_update_catalog_classes(), COPY, COPY_OID, recdes::data, DB_NOT_PARTITIONED_CLASS, er_clear(), er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_HEAP_NODATA_NEWADDRESS, ER_HEAP_UNKNOWN_OBJECT, ER_INTERRUPTED, er_log_debug, ER_MVCC_NOT_SATISFIED_REEVALUATION, er_set(), ER_TDE_CIPHER_IS_NOT_LOADED, error(), cubquery::mvcc_reev_data::filter_result, fpcache_remove_by_class(), free_and_init, heap_create_update_context(), heap_get_class_info(), heap_get_class_name_alloc_if_diff(), heap_get_class_oid(), heap_get_class_record(), heap_get_visible_version(), HEAP_IS_UPDATE_INPLACE, heap_update_logical(), HFID_COPY, repl_info::info, tde_cipher::is_loaded, heap_operation_context::is_logical_old, IX_LOCK, LC_FLAG_HAS_UNIQUE_INDEX, LK_GRANTED, LK_UNCOND_LOCK, locator_add_or_remove_index(), locator_check_foreign_key(), locator_Dont_check_foreign_key, locator_free_copy_area(), locator_get_partition_scancache(), locator_lock_and_get_object_with_evaluation(), locator_move_record(), locator_update_index(), lock_has_lock_on_object(), lock_object(), lock_subclass(), log_add_to_modified_class_list(), LOG_CHECK_LOG_APPLIER, log_does_allow_replication(), LOG_ERROR_IF_DELETED, LOG_FIND_CURRENT_TDES(), logtb_find_current_mvccid(), logtb_get_mvcc_snapshot(), MVCC_CLEAR_FLAG_BITS, MVCC_GET_DELID, MVCC_GET_INSID, MVCC_GET_PREV_VERSION_LSA, mvcc_rec_header::mvcc_ins_id, MVCC_IS_FLAG_SET, MVCC_IS_HEADER_DELID_VALID, mvcc_is_mvcc_disabled_class(), MVCC_SET_DELID, MVCC_SET_FLAG_BITS, MVCC_SET_INSID, MVCC_SET_PREVIOUS_VERSION_LSA, heap_scancache::mvcc_snapshot, repl_info::need_replication, cubquery::mvcc_update_reev_data::new_recdes, NO_ERROR, NULL, NULL_CHN, NULL_PAGEID, NULL_SLOTID, NULL_VOLID, OID_EQ, OID_IS_ROOTOID, OID_ISNULL, or_class_name(), or_class_rep_dir(), or_class_tde_algorithm(), OR_FIXED_ATTRIBUTES_OFFSET, OR_MVCC_FLAG_VALID_DELID, OR_MVCC_FLAG_VALID_INSID, OR_MVCC_FLAG_VALID_PREV_VERSION, or_mvcc_get_header(), or_mvcc_set_header(), OR_PUT_OID, ORC_CLASS_VAR_ATT_COUNT, ORC_REP_DIR_OFFSET, db_identifier::pageid, partition_prune_update(), PEEK, qexec_clear_list_cache_by_class(), QFILE_IS_LIST_CACHE_DISABLED, qmgr_add_modified_class(), RECDES_INITIALIZER, REEV_DATA_UPDDEL, repl_info::repl_info_type, S_DOESNT_EXIST, S_SNAPSHOT_NOT_SATISFIED, S_SUCCESS, pruning_scan_cache::scan_cache, SINGLE_ROW_INSERT, SINGLE_ROW_MODIFY, db_identifier::slotid, strlen, TDE_ALGORITHM_NONE, tde_Cipher, cubquery::mvcc_reev_data::type, UPDATE_INPLACE_CURRENT_MVCCID, UPDATE_INPLACE_OLD_MVCCID, cubquery::mvcc_reev_data::upddel_reev_data, V_FALSE, db_identifier::volid, X_LOCK, and xcache_remove_by_oid().

Referenced by locator_attribute_info_force(), locator_force_for_multi_update(), xlocator_force(), and xlocator_repl_force().

Here is the caller graph for this function:

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 
)

Definition at line 8147 of file locator_sr.c.

References assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, assert_release, or_index::atts, or_index::btid, or_index::btname, btree_compare_key(), BTREE_CONSTRAINT_PRIMARY_KEY, BTREE_CONSTRAINT_UNIQUE, BTREE_FOREIGN_KEY, btree_insert(), btree_keyoid_checkscan_check(), btree_keyoid_checkscan_end(), btree_keyoid_checkscan_start(), btree_multicol_key_is_null(), btree_mvcc_delete(), btree_online_index_dispatcher(), BTREE_OP_ONLINE_INDEX_TRAN_DELETE, BTREE_OP_ONLINE_INDEX_TRAN_INSERT, btree_physical_delete(), BTREE_PRIMARY_KEY, BTREE_REVERSE_UNIQUE, btree_set_mvcc_header_ids_for_update(), BTREE_UNIQUE, btree_update(), db_value::data, DB_EQ, DB_IS_NULL, db_make_null(), DB_TYPE_MIDXKEY, DB_UNK, DB_VALUE_DOMAIN_TYPE, db_value_is_null(), DBVAL_BUFSIZE, DISK_INVALID, DISK_VALID, db_midxkey::domain, er_errid(), ER_FAILED, ER_INTERRUPTED, error(), or_index::filter_predicate, or_index::fk, free_and_init, multi_index_unique_stats::get_stats_of(), heap_attrinfo_end(), heap_attrinfo_read_dbvalues(), heap_attrinfo_start_with_index(), heap_attrvalue_get_key(), heap_get_class_name(), i, pr_type::id, or_attribute::id, or_index::index_status, LK_GRANTED, LK_UNCOND_LOCK, locator_check_primary_key_update(), locator_Dont_check_foreign_key, locator_eval_filter_predicate(), locator_was_index_already_applied(), lock_object(), LOG_CHECK_LOG_APPLIER, log_does_allow_replication(), LOG_FIND_TDES(), LOG_FIND_THREAD_TRAN_INDEX, LOG_REPLICATION_DATA, logtb_get_current_mvccid(), LSA_COPY(), LSA_ISNULL(), LSA_SET_NULL(), heap_scancache::m_index_stats, MAX_ALIGNMENT, db_data::midxkey, MULTI_ROW_DELETE, MULTI_ROW_INSERT, MULTI_ROW_UPDATE, mvcc_is_mvcc_disabled_class(), MVCCID_NULL, or_index::n_atts, repl_info::need_replication, NO_ERROR, NULL, heap_idx_elements_info::num_btids, locator_classname_action::oid, OID_ISNULL, OR_ONLINE_INDEX_BUILDING_IN_PROGRESS, pr_clear_value(), pr_clone_value(), pr_free_ext_value(), pr_make_ext_value(), pr_type_from_id(), PTR_ALIGN, repl_info::repl_info_type, log_tdes::repl_insert_lsa, RVREPL_DATA_UPDATE, TP_ARE_COMPARABLE_KEY_TYPES, TP_DOMAIN_TYPE, or_index::type, V_TRUE, and X_LOCK.

Referenced by catcls_update_instance(), locator_update_force(), and update_indexes().

Here is the caller graph for this function:

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

Definition at line 7508 of file locator_sr.c.

References or_index::btid, BTID_IS_EQUAL, and i.

Referenced by locator_add_or_remove_index_internal(), and locator_update_index().

Here is the caller graph for this function:

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

Definition at line 2044 of file locator_sr.c.

References assert, ER_FAILED, heap_assign_address(), locator_permoid_class_name(), NO_ERROR, and NULL.

Referenced by locator_assign_oid(), slocator_assign_oid(), and xlocator_assign_oid_batch().

Here is the caller graph for this function:

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

Definition at line 13706 of file locator_sr.c.

References lock_demote_class_lock().

Referenced by slocator_demote_class_lock().

Here is the caller graph for this function:

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 
)

Definition at line 2375 of file locator_sr.c.

References locator_return_nxobj::area_offset, locator_return_nxobj::area_scancache, ARG_FILE_LINE, assert, locator_return_nxobj::comm_area, DB_ALIGN, DB_PAGESIZE, er_errid(), ER_FAILED, ER_HEAP_UNKNOWN_OBJECT, er_set(), ER_WARNING_SEVERITY, error(), heap_get_class_oid(), heap_prefetch(), heap_scancache_end(), heap_scancache_start(), LC_FETCH_CURRENT_VERSION, LC_FETCH_CURRENT_VERSION_NO_CHECK, LC_FETCH_DIRTY_VERSION, LC_FETCH_IS_MVCC_VERSION_NEEDED, LC_FETCH_MVCC_VERSION, LC_MANYOBJS_PTR_IN_COPYAREA, LC_NEXT_ONEOBJ_PTR_IN_COPYAREA, LC_RECDES_IN_COPYAREA, LC_START_ONEOBJ_PTR_IN_COPYAREA, recdes::length, lc_copy_area::length, locator_allocate_copy_area_by_length(), locator_decide_operation_type(), locator_free_copy_area(), locator_lock_and_return_object(), locator_notify_decache(), lock_get_object_lock(), lock_notify_isolation_incons(), lock_unlock_object(), lock_unlock_object_donot_move_to_non2pl(), logtb_get_mvcc_snapshot(), MAX_ALIGNMENT, locator_return_nxobj::mobjs, lc_copyarea_desc::mobjs, mvcc_is_mvcc_disabled_class(), mvcc_satisfies_dirty(), NO_ERROR, NULL, NULL_LOCK, lc_copyarea_manyobjs::num_objs, locator_return_nxobj::obj, lc_copyarea_desc::obj, lc_copyarea_desc::offset, locator_classname_action::oid, OID_EQ, OID_IS_ROOTOID, OID_ISNULL, oid_Root_class_oid, OID_SET_NULL, db_identifier::pageid, locator_return_nxobj::ptr_scancache, locator_return_nxobj::recdes, lc_copyarea_desc::recdes, S_DOESNT_EXIST, S_DOESNT_FIT, S_ERROR, S_LOCK, S_SELECT, S_SELECT_WITH_LOCK, S_SNAPSHOT_NOT_SATISFIED, S_SUCCESS, SIX_LOCK, db_identifier::slotid, mvcc_snapshot::snapshot_fnc, db_identifier::volid, and X_LOCK.

Referenced by locator_fetch(), slocator_fetch(), xlocator_does_exist(), and xlocator_get_class().

Here is the caller graph for this function:

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 
)

Definition at line 2773 of file locator_sr.c.

References recdes::area_size, assert, lc_copyarea_oneobj::class_oid, COPY, COPY_OID, recdes::data, DB_ALIGN, DB_INT32_MAX, DB_PAGESIZE, er_errid(), ER_FAILED, error(), lc_copyarea_oneobj::flag, heap_estimate_num_objects(), heap_next(), heap_scancache_end(), heap_scancache_end_when_scan_will_resume(), heap_scancache_start(), lc_copyarea_oneobj::hfid, LC_FETCH, LC_FETCH_CURRENT_VERSION, LC_FETCH_DIRTY_VERSION, LC_FETCH_MVCC_VERSION, LC_MANYOBJS_PTR_IN_COPYAREA, LC_NEXT_ONEOBJ_PTR_IN_COPYAREA, LC_PRIOR_ONEOBJ_PTR_IN_COPYAREA, LC_RECDES_IN_COPYAREA, LC_START_ONEOBJ_PTR_IN_COPYAREA, recdes::length, lc_copyarea_oneobj::length, LK_GRANTED, LK_UNCOND_LOCK, locator_allocate_copy_area_by_length(), locator_free_copy_area(), locator_notify_decache(), lock_notify_isolation_incons(), lock_object(), lock_unlock_object(), logtb_get_mvcc_snapshot(), MAX_ALIGNMENT, lc_copyarea_desc::mobjs, mvcc_satisfies_dirty(), NO_ERROR, NULL, NULL_HFID, NULL_LOCK, NULL_PAGEID, NULL_SLOTID, lc_copyarea_manyobjs::num_objs, lc_copyarea_desc::obj, lc_copyarea_oneobj::offset, lc_copyarea_desc::offset, locator_classname_action::oid, lc_copyarea_oneobj::oid, OID_ISNULL, oid_Root_class_oid, OID_SET_NULL, lc_copyarea_oneobj::operation, db_identifier::pageid, lc_copyarea_desc::recdes, S_DOESNT_FIT, S_END, S_ERROR, S_SUCCESS, db_identifier::slotid, mvcc_snapshot::snapshot_fnc, hfid::vfid, vfid::volid, and db_identifier::volid.

Referenced by locator_fetch_all(), and slocator_fetch_all().

Here is the caller graph for this function:

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 
)

Definition at line 3813 of file locator_sr.c.

References ER_FAILED, i, IS_LOCK, IX_LOCK, locator_all_reference_lockset(), NULL, NULL_CHN, OID_EQ, S_LOCK, and xlocator_fetch_lockset().

Referenced by locator_fetch_all_reference_lockset(), and slocator_fetch_all_reference_lockset().

Here is the caller graph for this function:

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 
)

Definition at line 3047 of file locator_sr.c.

References locator_return_nxobj::area_offset, locator_return_nxobj::area_scancache, lc_lockset_classof::chn, lc_lock_set::classes, locator_return_nxobj::comm_area, DB_ALIGN, DB_PAGESIZE, er_errid(), ER_FAILED, error(), heap_scancache_end(), heap_scancache_start(), i, LC_MANYOBJS_PTR_IN_COPYAREA, LC_RECDES_IN_COPYAREA, LC_START_ONEOBJ_PTR_IN_COPYAREA, recdes::length, lc_copy_area::length, locator_allocate_copy_area_by_length(), locator_find_lockset_missing_class_oids(), locator_free_copy_area(), locator_lock_and_return_object(), locator_notify_decache(), lock_notify_isolation_incons(), lock_unlock_objects_lock_set(), logtb_get_mvcc_snapshot(), MAX_ALIGNMENT, locator_return_nxobj::mobjs, lc_copyarea_desc::mobjs, heap_scancache::mvcc_snapshot, NO_ERROR, NULL, lc_lock_set::num_classes_of_reqobjs, lc_lock_set::num_classes_of_reqobjs_processed, lc_copyarea_manyobjs::num_objs, lc_lock_set::num_reqobjs, lc_lock_set::num_reqobjs_processed, locator_return_nxobj::obj, lc_copyarea_desc::obj, lc_lock_set::objects, lc_copyarea_desc::offset, locator_classname_action::oid, OID_EQ, OID_IS_ROOTOID, OID_ISNULL, OID_ISTEMP, oid_Root_class_oid, OID_SET_NULL, locator_return_nxobj::ptr_scancache, lc_lock_set::quit_on_errors, locator_return_nxobj::recdes, lc_copyarea_desc::recdes, lc_lock_set::reqobj_class_lock, lc_lock_set::reqobj_inst_lock, S_DOESNT_EXIST, S_DOESNT_FIT, S_ERROR, S_SELECT, and S_SUCCESS.

Referenced by locator_fetch_lockset(), slocator_fetch_lockset(), and xlocator_fetch_all_reference_lockset().

Here is the caller graph for this function:

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

Definition at line 6983 of file locator_sr.c.

References ARG_FILE_LINE, assert, assert_release, lc_copyarea_oneobj::class_oid, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_LC_BADFORCE_OPERATION, ER_MVCC_NOT_SATISFIED_REEVALUATION, er_set(), error(), lc_copyarea_oneobj::hfid, i, IS_MULTI_UPDATE, LC_FLUSH_DELETE, LC_FLUSH_INSERT, LC_FLUSH_INSERT_PRUNE, LC_FLUSH_INSERT_PRUNE_VERIFY, LC_FLUSH_UPDATE, LC_FLUSH_UPDATE_PRUNE, LC_FLUSH_UPDATE_PRUNE_VERIFY, LC_IS_FLUSH_UPDATE, LC_MANYOBJS_PTR_IN_COPYAREA, LC_NEXT_ONEOBJ_PTR_IN_COPYAREA, LC_ONEOBJ_GET_INDEX_FLAG, LC_PRIOR_ONEOBJ_PTR_IN_COPYAREA, LC_RECDES_IN_COPYAREA, LC_RECDES_TO_GET_ONEOBJ, LC_START_ONEOBJ_PTR_IN_COPYAREA, locator_area_op_to_pruning_type(), locator_delete_force(), locator_end_force_scan_cache(), locator_filter_errid(), locator_force_for_multi_update(), locator_insert_force(), locator_manyobj_flag_is_set(), locator_start_force_scan_cache(), locator_update_force(), LOG_CHECK_LOG_APPLIER, LOG_RESULT_TOPOP_ABORT, LOG_RESULT_TOPOP_ATTACH_TO_OUTER, NO_ERROR, NULL, lc_copyarea_manyobjs::num_objs, lc_copyarea_oneobj::oid, OID_EQ, oid_Root_class_oid, OID_SET_NULL, lc_copyarea_oneobj::operation, db_identifier::pageid, perfmon_inc_stat(), PSTAT_QM_NUM_DELETES, PSTAT_QM_NUM_INSERTS, PSTAT_QM_NUM_UPDATES, REPL_INFO_TYPE_RBR_NORMAL, SINGLE_ROW_DELETE, SINGLE_ROW_INSERT, SINGLE_ROW_UPDATE, db_identifier::slotid, UPDATE_INPLACE_NONE, db_identifier::volid, xtran_server_end_topop(), and xtran_server_start_topop().

Referenced by locator_force(), and slocator_force().

Here is the caller graph for this function:

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_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 
)
int xlocator_redistribute_partition_data ( THREAD_ENTRY thread_p,
OID class_oid,
int  no_oids,
OID oid_list 
)

Definition at line 12854 of file locator_sr.c.

References redistribute_partition_data().

Referenced by locator_redistribute_partition_data(), and slocator_redistribute_partition_data().

Here is the caller graph for this function:

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

Definition at line 6781 of file locator_sr.c.

References ARG_FILE_LINE, assert, assert_release, lc_copyarea_oneobj::class_oid, DB_IS_NULL, db_value_put_null(), er_clear(), er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_LC_BADFORCE_OPERATION, ER_LC_PARTIALLY_FAILED_TO_FLUSH, er_msg(), er_set(), heap_get_class_info(), lc_copyarea_oneobj::hfid, HFID_COPY, HFID_EQ, HFID_INITIALIZER, HFID_SET_NULL, i, LC_FLUSH_DELETE, LC_FLUSH_INSERT, LC_FLUSH_INSERT_PRUNE, LC_FLUSH_INSERT_PRUNE_VERIFY, LC_FLUSH_UPDATE, LC_FLUSH_UPDATE_PRUNE, LC_FLUSH_UPDATE_PRUNE_VERIFY, LC_MANYOBJS_PTR_IN_COPYAREA, LC_NEXT_ONEOBJ_PTR_IN_COPYAREA, LC_ONEOBJ_GET_INDEX_FLAG, LC_PRIOR_ONEOBJ_PTR_IN_COPYAREA, LC_RECDES_IN_COPYAREA, LC_REPL_RECDES_FOR_ONEOBJ, LC_START_ONEOBJ_PTR_IN_COPYAREA, locator_area_op_to_pruning_type(), locator_delete_force(), locator_end_force_scan_cache(), locator_insert_force(), locator_repl_add_error_to_copyarea(), locator_repl_get_key_value(), locator_repl_prepare_force(), locator_start_force_scan_cache(), locator_update_force(), LOG_RESULT_TOPOP_ABORT, LOG_RESULT_TOPOP_ATTACH_TO_OUTER, NO_ERROR, NULL, lc_copyarea_manyobjs::num_objs, lc_copyarea_oneobj::oid, lc_copyarea_oneobj::operation, db_identifier::pageid, perfmon_inc_stat(), pr_clear_value(), PSTAT_QM_NUM_DELETES, PSTAT_QM_NUM_INSERTS, PSTAT_QM_NUM_UPDATES, RECDES_INITIALIZER, REPL_INFO_TYPE_RBR_NORMAL, SINGLE_ROW_DELETE, SINGLE_ROW_INSERT, SINGLE_ROW_UPDATE, db_identifier::slotid, UPDATE_INPLACE_NONE, db_identifier::volid, xtran_server_end_topop(), and xtran_server_start_topop().

Referenced by slocator_repl_force().

Here is the caller graph for this function:

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

Definition at line 409 of file locator_sr.c.

References assert, i, LC_CLASSNAME_RESERVED, NULL, strlen, and xlocator_reserve_class_name().

Referenced by locator_reserve_class_names(), and slocator_reserve_classnames().

Here is the caller graph for this function:

LOG_LSA* xrepl_log_get_append_lsa ( void  )

Definition at line 11669 of file locator_sr.c.

References log_get_append_lsa().

Referenced by repl_log_get_append_lsa(), and srepl_log_get_append_lsa().

Here is the caller graph for this function:

Variable Documentation

bool locator_Dont_check_foreign_key = false
const int LOCATOR_GUESS_NUM_NESTED_REFERENCES = 100
static

Definition at line 71 of file locator_sr.c.

Referenced by locator_all_reference_lockset().

MHT_TABLE* locator_Mht_classnames = NULL
static

Definition at line 122 of file locator_sr.c.

INT32 locator_Pseudo_pageid_crt = -2
static

Definition at line 129 of file locator_sr.c.

Referenced by locator_generate_class_pseudo_oid().

const INT32 locator_Pseudo_pageid_first = -2
static

Definition at line 127 of file locator_sr.c.

Referenced by locator_generate_class_pseudo_oid().

const INT32 locator_Pseudo_pageid_last = -0x7FFF
static

Definition at line 128 of file locator_sr.c.

Referenced by locator_generate_class_pseudo_oid().

const HFID NULL_HFID = { {-1, -1}, -1 }
static