File locator_cl.c
FileList > cubrid > src > transaction > locator_cl.c
Go to the source code of this file
#include "config.h"
#include <stdio.h>
#include <assert.h>
#include <signal.h>
#include "authenticate.h"
#include "db.h"
#include "environment_variable.h"
#include "porting.h"
#include "locator_cl.h"
#include "memory_alloc.h"
#include "storage_common.h"
#include "work_space.h"
#include "object_representation.h"
#include "transform_cl.h"
#include "class_object.h"
#include "schema_manager.h"
#include "server_interface.h"
#include "locator.h"
#include "boot_cl.h"
#include "virtual_object.h"
#include "memory_hash.h"
#include "system_parameter.h"
#include "dbi.h"
#include "replication.h"
#include "transaction_cl.h"
#include "network_interface_cl.h"
#include "execute_statement.h"
#include "log_lsa.hpp"
#include "object_primitive.h"
Classes
Public Types
Public Attributes
Public Static Attributes
Public Functions
| Type |
Name |
| MOP |
locator_add_class (MOBJ class_obj, const char * classname)
|
| MOP |
locator_add_instance (MOBJ instance, MOP class_mop)
|
| LC_OIDMAP * |
locator_add_oidset_object (LC_OIDSET * oidset, MOP obj_mop)
|
| MOP |
locator_add_root (OID * root_oid, MOBJ class_root)
|
| int |
locator_all_flush (void)
|
| int |
locator_assign_all_permanent_oids (void)
|
| int |
locator_assign_oidset (LC_OIDSET * oidset, LC_OIDMAP_CALLBACK callback)
|
| OID * |
locator_assign_permanent_oid (MOP mop)
|
| MOBJ |
locator_create_heap_if_needed (MOP class_mop, bool reuse_oid)
|
| int |
locator_decache_all_lock_instances (MOP class_mop)
|
| int |
locator_does_exist_object (MOP mop, DB_FETCH_MODE purpose)
|
| MOBJ |
locator_fetch_class (MOP class_mop, DB_FETCH_MODE purpose)
|
| MOBJ |
locator_fetch_class_of_instance (MOP inst_mop, MOP * class_mop, DB_FETCH_MODE purpose)
|
| MOBJ |
locator_fetch_instance (MOP mop, DB_FETCH_MODE purpose, LC_FETCH_VERSION_TYPE fetch_version_type)
|
| LOCK |
locator_fetch_mode_to_lock (DB_FETCH_MODE purpose, LC_OBJTYPE type, LC_FETCH_VERSION_TYPE fetch_version_type)
|
| MOBJ |
locator_fetch_nested (MOP mop, DB_FETCH_MODE purpose, int prune_level, int quit_on_errors)
|
| MOBJ |
locator_fetch_object (MOP mop, DB_FETCH_MODE purpose, LC_FETCH_VERSION_TYPE fetch_version_type)
|
| MOBJ |
locator_fetch_set (int num_mops, MOP * mop_set, DB_FETCH_MODE inst_purpose, DB_FETCH_MODE class_purpose, int quit_on_errors)
|
| MOP |
locator_find_class (const char * classname)
|
| MOP |
locator_find_class_with_purpose (const char * classname, bool for_update)
|
| LC_FIND_CLASSNAME |
locator_find_query_class (const char * classname, DB_FETCH_MODE purpose, MOP * class_mop)
|
| int |
locator_flush_all_instances (MOP class_mop, bool decache)
|
| int |
locator_flush_and_decache_instance (MOP mop)
|
| int |
locator_flush_class (MOP class_mop)
|
| int |
locator_flush_for_multi_update (MOP class_mop)
|
| int |
locator_flush_instance (MOP mop)
|
| int |
locator_flush_replication_info (REPL_INFO * repl_info)
|
| void |
locator_free_list_mops (LIST_MOPS * mops)
|
| LIST_MOPS * |
locator_get_all_class_mops (DB_FETCH_MODE purpose, int(*)(MOBJ class_obj) fun)
|
| LIST_MOPS * |
locator_get_all_mops (MOP class_mop, DB_FETCH_MODE purpose, LC_FETCH_VERSION_TYPE * force_fetch_version_type)
|
| LIST_MOPS * |
locator_get_all_nested_mops (MOP mop, int prune_level, DB_FETCH_MODE inst_purpose)
|
| int |
locator_get_append_lsa (struct log_lsa * lsa)
|
| int |
locator_get_cache_coherency_number (MOP mop)
|
| int |
locator_get_sig_interrupt ()
|
| MOBJ |
locator_has_heap (MOP class_mop)
|
| int |
locator_is_class (MOP mop, DB_FETCH_MODE hint_purpose)
|
| bool |
locator_is_root (MOP mop)
|
| int |
locator_lob_create_or_remove_dir (HFID * prev_hfid, HFID * new_hfid, int * lob_attrid_arr, int lob_attrid_arr_length)
|
| int |
locator_lob_process_dir (SM_CLASS * class_, HFID * prev_hfid, HFID * new_hfid)
|
| LC_FIND_CLASSNAME |
locator_lockhint_classes (int num_classes, const char ** many_classnames, LOCK * many_locks, int * need_subclasses, LC_PREFETCH_FLAGS * flags, int quit_on_errors, LOCK lock_rr_tran)
|
| MOBJ |
locator_prepare_rename_class (MOP class_mop, const char * old_classname, const char * new_classname)
|
| int |
locator_remove_class (MOP class_mop)
|
| void |
locator_remove_instance (MOP mop)
|
| LC_FIND_CLASSNAME |
locator_reserve_class_name (const char * class_name, OID * class_oid)
|
| void |
locator_set_sig_interrupt (int set)
|
| void |
locator_synch_isolation_incons (void)
|
| MOBJ |
locator_update_class (MOP mop)
|
| MOBJ |
locator_update_instance (MOP mop)
|
| int |
locator_update_tree_classes (MOP * classes_mop_set, int num_classes)
|
Public Static Functions
| Type |
Name |
| int |
locator_add_to_oidset_when_temp_oid (MOP mop, void * data)
|
| int |
locator_cache (LC_COPYAREA * copy_area, MOP hint_class_mop, MOBJ hint_class, void(*)(MOP mop, MOBJ object, void *args) fun, void * args)
|
| int |
locator_cache_have_object (MOP * mop_p, MOBJ * object_p, RECDES * recdes_p, MOP * hint_class_mop_p, MOBJ * hint_class_p, bool * call_fun, LC_COPYAREA_ONEOBJ * obj)
|
| void |
locator_cache_lock (MOP mop, MOBJ ignore_notgiven_object, void * xcache_lock)
|
| void |
locator_cache_lock_lockhint_classes (LC_LOCKHINT * lockhint)
|
| void |
locator_cache_lock_set (MOP mop, MOBJ ignore_notgiven_object, void * xlockset)
|
| int |
locator_cache_not_have_object (MOP * mop_p, MOBJ * object_p, bool * call_fun, LC_COPYAREA_ONEOBJ * obj)
|
| int |
locator_cache_object_class (MOP mop, LC_COPYAREA_ONEOBJ * obj, MOBJ * object_p, RECDES * recdes_p, bool * call_fun)
|
| int |
locator_cache_object_instance (MOP mop, MOP class_mop, MOP * hint_class_mop_p, MOBJ * hint_class_p, LC_COPYAREA_ONEOBJ * obj, MOBJ * object_p, RECDES * recdes_p, bool * call_fun)
|
| bool |
locator_can_skip_fetch_from_server (MOP mop, LOCK * lock, LC_FETCH_VERSION_TYPE fetch_version_type)
|
| int |
locator_check_object_and_get_class (MOP obj_mop, MOP * out_class_mop)
|
| int |
locator_class_to_disk (LOCATOR_MFLUSH_CACHE * mflush, MOBJ object, bool * has_index, int * round_length_p, WS_MAP_STATUS * map_status)
|
| int |
locator_decache_lock (MOP mop, void * ignore)
|
| void |
locator_dump_mflush (FILE * out_fp, LOCATOR_MFLUSH_CACHE * mflush)
|
| LC_FIND_CLASSNAME |
locator_find_class_by_name (const char * classname, LOCK lock, MOP * class_mop)
|
| LC_FIND_CLASSNAME |
locator_find_class_by_oid (MOP * class_mop, const char * classname, OID * class_oid, LOCK lock)
|
| LIST_MOPS * |
locator_fun_get_all_mops (MOP class_mop, DB_FETCH_MODE purpose, int(*)(MOBJ class_obj) fun, LC_FETCH_VERSION_TYPE * force_fetch_version_type)
|
| int |
locator_get_rest_objects_classes (LC_LOCKSET * lockset, MOP class_mop, MOBJ class_obj)
|
| int |
locator_instance_decache (MOP mop, void * ignore)
|
| int |
locator_internal_flush_instance (MOP inst_mop, bool decache)
|
| void |
locator_keep_mops (MOP mop, MOBJ object, void * kmops)
|
| int |
locator_lock (MOP mop, LC_OBJTYPE isclass, LOCK lock, LC_FETCH_VERSION_TYPE fetch_version_type)
|
| int |
locator_lock_and_doesexist (MOP mop, LOCK lock, LC_OBJTYPE isclass)
|
| int |
locator_lock_class_of_instance (MOP inst_mop, MOP * class_mop, LOCK lock)
|
| int |
locator_lock_nested (MOP mop, LOCK lock, int prune_level, int quit_on_errors, int(*)(LC_LOCKSET *req, void *args) fun, void * args)
|
| int |
locator_lock_set (int num_mops, MOP * vector_mop, LOCK reqobj_inst_lock, LOCK reqobj_class_lock, int quit_on_errors)
|
| int |
locator_mem_to_disk (LOCATOR_MFLUSH_CACHE * mflush, MOBJ object, bool * has_index, int * round_length_p, WS_MAP_STATUS * map_status)
|
| int |
locator_mflush (MOP mop, void * mf)
|
| void |
locator_mflush_end (LOCATOR_MFLUSH_CACHE * mflush)
|
| int |
locator_mflush_force (LOCATOR_MFLUSH_CACHE * mflush)
|
| int |
locator_mflush_initialize (LOCATOR_MFLUSH_CACHE * mflush, MOP class_mop, MOBJ clazz, HFID * hfid, bool decache, bool isone_mflush)
|
| int |
locator_mflush_reallocate_copy_area (LOCATOR_MFLUSH_CACHE * mflush, int minsize)
|
| void |
locator_mflush_reset (LOCATOR_MFLUSH_CACHE * mflush)
|
| void |
locator_mflush_set_dirty (MOP mop, MOBJ ignore_object, void * ignore_argument)
|
| int |
locator_save_nested_mops (LC_LOCKSET * lockset, void * save_mops)
|
| int |
locator_set_chn_classes_objects (LC_LOCKSET * lockset)
|
| LOCK |
locator_to_prefetched_lock (LOCK class_lock)
|
Macros
Public Types Documentation
typedef LOCATOR_CACHE_LOCK
typedef struct locator_cache_lock LOCATOR_CACHE_LOCK;
typedef LOCATOR_LIST_KEEP_MOPS
typedef struct locator_list_keep_mops LOCATOR_LIST_KEEP_MOPS;
typedef LOCATOR_LIST_NESTED_MOPS
typedef struct locator_list_nested_mops LOCATOR_LIST_NESTED_MOPS;
typedef LOCATOR_MFLUSH_CACHE
typedef struct locator_mflush_cache LOCATOR_MFLUSH_CACHE;
typedef LOCATOR_MFLUSH_TEMP_OID
typedef struct locator_mflush_temp_oid LOCATOR_MFLUSH_TEMP_OID;
Public Attributes Documentation
variable __gv_locator_repl
CUB_THREAD_LOCAL class locator_repl __gv_locator_repl;
Public Static Attributes Documentation
variable lc_Is_siginterrupt
volatile sig_atomic_t lc_Is_siginterrupt;
Public Functions Documentation
function locator_add_class
MOP locator_add_class (
MOBJ class_obj,
const char * classname
)
function locator_add_instance
MOP locator_add_instance (
MOBJ instance,
MOP class_mop
)
function locator_add_oidset_object
LC_OIDMAP * locator_add_oidset_object (
LC_OIDSET * oidset,
MOP obj_mop
)
function locator_add_root
MOP locator_add_root (
OID * root_oid,
MOBJ class_root
)
function locator_all_flush
int locator_all_flush (
void
)
function locator_assign_all_permanent_oids
int locator_assign_all_permanent_oids (
void
)
function locator_assign_oidset
int locator_assign_oidset (
LC_OIDSET * oidset,
LC_OIDMAP_CALLBACK callback
)
function locator_assign_permanent_oid
OID * locator_assign_permanent_oid (
MOP mop
)
function locator_create_heap_if_needed
MOBJ locator_create_heap_if_needed (
MOP class_mop,
bool reuse_oid
)
function locator_decache_all_lock_instances
int locator_decache_all_lock_instances (
MOP class_mop
)
function locator_does_exist_object
int locator_does_exist_object (
MOP mop,
DB_FETCH_MODE purpose
)
function locator_fetch_class
MOBJ locator_fetch_class (
MOP class_mop,
DB_FETCH_MODE purpose
)
function locator_fetch_class_of_instance
MOBJ locator_fetch_class_of_instance (
MOP inst_mop,
MOP * class_mop,
DB_FETCH_MODE purpose
)
function locator_fetch_instance
MOBJ locator_fetch_instance (
MOP mop,
DB_FETCH_MODE purpose,
LC_FETCH_VERSION_TYPE fetch_version_type
)
function locator_fetch_mode_to_lock
LOCK locator_fetch_mode_to_lock (
DB_FETCH_MODE purpose,
LC_OBJTYPE type,
LC_FETCH_VERSION_TYPE fetch_version_type
)
function locator_fetch_nested
MOBJ locator_fetch_nested (
MOP mop,
DB_FETCH_MODE purpose,
int prune_level,
int quit_on_errors
)
function locator_fetch_object
MOBJ locator_fetch_object (
MOP mop,
DB_FETCH_MODE purpose,
LC_FETCH_VERSION_TYPE fetch_version_type
)
function locator_fetch_set
MOBJ locator_fetch_set (
int num_mops,
MOP * mop_set,
DB_FETCH_MODE inst_purpose,
DB_FETCH_MODE class_purpose,
int quit_on_errors
)
function locator_find_class
MOP locator_find_class (
const char * classname
)
function locator_find_class_with_purpose
MOP locator_find_class_with_purpose (
const char * classname,
bool for_update
)
function locator_find_query_class
LC_FIND_CLASSNAME locator_find_query_class (
const char * classname,
DB_FETCH_MODE purpose,
MOP * class_mop
)
function locator_flush_all_instances
int locator_flush_all_instances (
MOP class_mop,
bool decache
)
function locator_flush_and_decache_instance
int locator_flush_and_decache_instance (
MOP mop
)
function locator_flush_class
int locator_flush_class (
MOP class_mop
)
function locator_flush_for_multi_update
int locator_flush_for_multi_update (
MOP class_mop
)
function locator_flush_instance
int locator_flush_instance (
MOP mop
)
function locator_flush_replication_info
int locator_flush_replication_info (
REPL_INFO * repl_info
)
function locator_free_list_mops
void locator_free_list_mops (
LIST_MOPS * mops
)
function locator_get_all_class_mops
LIST_MOPS * locator_get_all_class_mops (
DB_FETCH_MODE purpose,
int (*)( MOBJ class_obj) fun
)
function locator_get_all_mops
LIST_MOPS * locator_get_all_mops (
MOP class_mop,
DB_FETCH_MODE purpose,
LC_FETCH_VERSION_TYPE * force_fetch_version_type
)
function locator_get_all_nested_mops
LIST_MOPS * locator_get_all_nested_mops (
MOP mop,
int prune_level,
DB_FETCH_MODE inst_purpose
)
function locator_get_append_lsa
int locator_get_append_lsa (
struct log_lsa * lsa
)
function locator_get_cache_coherency_number
int locator_get_cache_coherency_number (
MOP mop
)
function locator_get_sig_interrupt
int locator_get_sig_interrupt ()
function locator_has_heap
MOBJ locator_has_heap (
MOP class_mop
)
function locator_is_class
int locator_is_class (
MOP mop,
DB_FETCH_MODE hint_purpose
)
function locator_is_root
bool locator_is_root (
MOP mop
)
function locator_lob_create_or_remove_dir
int locator_lob_create_or_remove_dir (
HFID * prev_hfid,
HFID * new_hfid,
int * lob_attrid_arr,
int lob_attrid_arr_length
)
function locator_lob_process_dir
int locator_lob_process_dir (
SM_CLASS * class_,
HFID * prev_hfid,
HFID * new_hfid
)
function locator_lockhint_classes
LC_FIND_CLASSNAME locator_lockhint_classes (
int num_classes,
const char ** many_classnames,
LOCK * many_locks,
int * need_subclasses,
LC_PREFETCH_FLAGS * flags,
int quit_on_errors,
LOCK lock_rr_tran
)
function locator_prepare_rename_class
MOBJ locator_prepare_rename_class (
MOP class_mop,
const char * old_classname,
const char * new_classname
)
function locator_remove_class
int locator_remove_class (
MOP class_mop
)
function locator_remove_instance
void locator_remove_instance (
MOP mop
)
function locator_reserve_class_name
LC_FIND_CLASSNAME locator_reserve_class_name (
const char * class_name,
OID * class_oid
)
function locator_set_sig_interrupt
void locator_set_sig_interrupt (
int set
)
function locator_synch_isolation_incons
void locator_synch_isolation_incons (
void
)
function locator_update_class
MOBJ locator_update_class (
MOP mop
)
function locator_update_instance
MOBJ locator_update_instance (
MOP mop
)
function locator_update_tree_classes
int locator_update_tree_classes (
MOP * classes_mop_set,
int num_classes
)
Public Static Functions Documentation
function locator_add_to_oidset_when_temp_oid
static int locator_add_to_oidset_when_temp_oid (
MOP mop,
void * data
)
function locator_cache
static int locator_cache (
LC_COPYAREA * copy_area,
MOP hint_class_mop,
MOBJ hint_class,
void (*)( MOP mop, MOBJ object, void *args) fun,
void * args
)
function locator_cache_have_object
static int locator_cache_have_object (
MOP * mop_p,
MOBJ * object_p,
RECDES * recdes_p,
MOP * hint_class_mop_p,
MOBJ * hint_class_p,
bool * call_fun,
LC_COPYAREA_ONEOBJ * obj
)
function locator_cache_lock
static void locator_cache_lock (
MOP mop,
MOBJ ignore_notgiven_object,
void * xcache_lock
)
function locator_cache_lock_lockhint_classes
static void locator_cache_lock_lockhint_classes (
LC_LOCKHINT * lockhint
)
function locator_cache_lock_set
static void locator_cache_lock_set (
MOP mop,
MOBJ ignore_notgiven_object,
void * xlockset
)
function locator_cache_not_have_object
static int locator_cache_not_have_object (
MOP * mop_p,
MOBJ * object_p,
bool * call_fun,
LC_COPYAREA_ONEOBJ * obj
)
function locator_cache_object_class
static int locator_cache_object_class (
MOP mop,
LC_COPYAREA_ONEOBJ * obj,
MOBJ * object_p,
RECDES * recdes_p,
bool * call_fun
)
function locator_cache_object_instance
static int locator_cache_object_instance (
MOP mop,
MOP class_mop,
MOP * hint_class_mop_p,
MOBJ * hint_class_p,
LC_COPYAREA_ONEOBJ * obj,
MOBJ * object_p,
RECDES * recdes_p,
bool * call_fun
)
function locator_can_skip_fetch_from_server
static bool locator_can_skip_fetch_from_server (
MOP mop,
LOCK * lock,
LC_FETCH_VERSION_TYPE fetch_version_type
)
function locator_check_object_and_get_class
static int locator_check_object_and_get_class (
MOP obj_mop,
MOP * out_class_mop
)
function locator_class_to_disk
static int locator_class_to_disk (
LOCATOR_MFLUSH_CACHE * mflush,
MOBJ object,
bool * has_index,
int * round_length_p,
WS_MAP_STATUS * map_status
)
function locator_decache_lock
static int locator_decache_lock (
MOP mop,
void * ignore
)
function locator_dump_mflush
static void locator_dump_mflush (
FILE * out_fp,
LOCATOR_MFLUSH_CACHE * mflush
)
function locator_find_class_by_name
static LC_FIND_CLASSNAME locator_find_class_by_name (
const char * classname,
LOCK lock,
MOP * class_mop
)
function locator_find_class_by_oid
static LC_FIND_CLASSNAME locator_find_class_by_oid (
MOP * class_mop,
const char * classname,
OID * class_oid,
LOCK lock
)
function locator_fun_get_all_mops
static LIST_MOPS * locator_fun_get_all_mops (
MOP class_mop,
DB_FETCH_MODE purpose,
int (*)( MOBJ class_obj) fun,
LC_FETCH_VERSION_TYPE * force_fetch_version_type
)
function locator_get_rest_objects_classes
static int locator_get_rest_objects_classes (
LC_LOCKSET * lockset,
MOP class_mop,
MOBJ class_obj
)
function locator_instance_decache
static int locator_instance_decache (
MOP mop,
void * ignore
)
function locator_internal_flush_instance
static int locator_internal_flush_instance (
MOP inst_mop,
bool decache
)
function locator_keep_mops
static void locator_keep_mops (
MOP mop,
MOBJ object,
void * kmops
)
function locator_lock
static int locator_lock (
MOP mop,
LC_OBJTYPE isclass,
LOCK lock,
LC_FETCH_VERSION_TYPE fetch_version_type
)
function locator_lock_and_doesexist
static int locator_lock_and_doesexist (
MOP mop,
LOCK lock,
LC_OBJTYPE isclass
)
function locator_lock_class_of_instance
static int locator_lock_class_of_instance (
MOP inst_mop,
MOP * class_mop,
LOCK lock
)
function locator_lock_nested
static int locator_lock_nested (
MOP mop,
LOCK lock,
int prune_level,
int quit_on_errors,
int (*)( LC_LOCKSET * req , void *args) fun,
void * args
)
function locator_lock_set
static int locator_lock_set (
int num_mops,
MOP * vector_mop,
LOCK reqobj_inst_lock,
LOCK reqobj_class_lock,
int quit_on_errors
)
function locator_mem_to_disk
static int locator_mem_to_disk (
LOCATOR_MFLUSH_CACHE * mflush,
MOBJ object,
bool * has_index,
int * round_length_p,
WS_MAP_STATUS * map_status
)
function locator_mflush
static int locator_mflush (
MOP mop,
void * mf
)
function locator_mflush_end
static void locator_mflush_end (
LOCATOR_MFLUSH_CACHE * mflush
)
function locator_mflush_force
static int locator_mflush_force (
LOCATOR_MFLUSH_CACHE * mflush
)
function locator_mflush_initialize
static int locator_mflush_initialize (
LOCATOR_MFLUSH_CACHE * mflush,
MOP class_mop,
MOBJ clazz,
HFID * hfid,
bool decache,
bool isone_mflush
)
function locator_mflush_reallocate_copy_area
static int locator_mflush_reallocate_copy_area (
LOCATOR_MFLUSH_CACHE * mflush,
int minsize
)
function locator_mflush_reset
static void locator_mflush_reset (
LOCATOR_MFLUSH_CACHE * mflush
)
function locator_mflush_set_dirty
static void locator_mflush_set_dirty (
MOP mop,
MOBJ ignore_object,
void * ignore_argument
)
function locator_save_nested_mops
static int locator_save_nested_mops (
LC_LOCKSET * lockset,
void * save_mops
)
function locator_set_chn_classes_objects
static int locator_set_chn_classes_objects (
LC_LOCKSET * lockset
)
function locator_to_prefetched_lock
static LOCK locator_to_prefetched_lock (
LOCK class_lock
)
Macro Definition Documentation
define MAX_FETCH_SIZE
#define MAX_FETCH_SIZE `64`
define WS_SET_FOUND_DELETED
#define WS_SET_FOUND_DELETED (
mop
) `WS_SET_DELETED (mop)`
The documentation for this class was generated from the following file cubrid/src/transaction/locator_cl.c