27 #define __STDC_FORMAT_MACROS 69 #if defined (SERVER_MODE) 81 #define RMUTEX_NAME_TDES_TOPOP "TDES_TOPOP" 83 #define NUM_ASSIGNED_TRAN_INDICES log_Gl.trantable.num_assigned_indices 84 #define NUM_TOTAL_TRAN_INDICES log_Gl.trantable.num_total_indices 86 #if !defined(SERVER_MODE) 87 #define pthread_mutex_init(a, b) 88 #define pthread_mutex_destroy(a) 89 #define pthread_mutex_lock(a) 0 90 #define pthread_mutex_trylock(a) 0 91 #define pthread_mutex_unlock(a) 132 bool load_at_creation);
254 #if defined(SERVER_MODE) 276 if (num_new_indices <= 0)
281 #if defined(SERVER_MODE) 313 #if defined(ENABLE_UNUSED_FUNCTION) 314 error_code = wfg_alloc_nodes (thread_p, total_indices);
410 num_expected_tran_indices = MAX (num_expected_tran_indices,
MAX_NTRANS);
442 #if defined(SERVER_MODE) 594 #if defined(SERVER_MODE) 602 #if defined(ENABLE_UNUSED_FUNCTION) 603 wfg_free_nodes (thread_p);
711 #if defined(ENABLE_UNUSED_FUNCTION) 756 return (db_user !=
NULL && !strcasecmp (db_user,
"DBA"));
798 #if defined(SERVER_MODE) 799 if (thread_p ==
NULL)
841 #if defined(SERVER_MODE) 845 if (client_credential ==
NULL)
851 #if defined(SERVER_MODE) 852 if (thread_p ==
NULL)
857 conn = thread_p->conn_entry;
924 int visited_loop_start_pos;
929 #if defined(SERVER_MODE) 930 if (thread_p ==
NULL)
941 #if defined(SERVER_MODE) 971 visited_loop_start_pos++;
990 logtb_set_tdes (thread_p, tdes, client_credential, wait_msecs, isolation);
1001 tdes->
state = state;
1006 *current_state = state;
1203 #if defined(SERVER_MODE) 1204 if (thread_p ==
NULL)
1215 #if defined(CUBRID_DEBUG) 1247 if (log_tran_index == tran_index)
1316 "Tran_index = %2d, Trid = %d,\n State = %s,\n Isolation = %s,\n" 1317 " Wait_msecs = %d, isloose_end = %d,\n Head_lsa = %lld|%d, Tail_lsa = %lld|%d," 1318 " Postpone_lsa = %lld|%d,\n SaveLSA = %lld|%d, UndoNextLSA = %lld|%d,\n" 1319 " Client_User: (Type = %d, User = %s, Program = %s, Login = %s, Host = %s, Pid = %d)\n",
1353 fprintf (out_fp,
" Active top system operations for tran:\n");
1354 for (i = topops_p->
last; i >= 0; i--)
1356 fprintf (out_fp,
" Head = %lld|%d, Posp_Head = %lld|%d\n",
1379 fprintf (out_fp,
" COORDINATOR SITE(or NESTED PARTICIPANT SITE)");
1383 fprintf (out_fp,
" PARTICIPANT SITE");
1386 fprintf (out_fp,
" of global tranid = %d\n", global_tran_id);
1390 fprintf (out_fp,
" Num_participants = %d, Partids = ", coord->
num_particps);
1403 fprintf (out_fp,
"\n");
1407 fprintf (out_fp,
" Acknowledgement vector =");
1420 fprintf (out_fp,
"\n");
1438 fprintf (out_fp,
"\n ** DUMPING TABLE OF ACTIVE TRANSACTIONS **\n");
1447 fprintf (out_fp,
"Tran_index = %2d... Free transaction index\n", i);
1457 fprintf (out_fp,
"\n");
1473 curr_mvcc_info->
sub_ids.clear ();
1488 HL_HEAPID save_heap_id;
1514 #if defined (HAVE_ATOMIC_BUILTINS) 1725 #if defined (HAVE_ATOMIC_BUILTINS) 1726 int trid, next_trid;
1734 next_trid = trid + 1;
1800 if (tdes ==
NULL || tdes->
trid != trid)
1821 #if defined (ENABLE_UNUSED_FUNCTION) 1841 logtb_find_tran_index_host_pid (
THREAD_ENTRY * thread_p,
const char *host_name,
int process_id)
1897 #if defined (ENABLE_UNUSED_FUNCTION) 1904 logtb_count_clients_with_type (
THREAD_ENTRY * thread_p,
int client_type)
2120 const char **client_host_name,
int *client_pid)
2145 #if defined (SERVER_MODE) 2149 logtb_find_client_tran_name_host_pid (
int &tran_index,
const char **client_prog_name,
const char **client_user_name,
2150 const char **client_host_name,
int *client_pid)
2155 #endif // SERVER_MODE 2177 *client_info = tdes->
client;
2202 int num_clients = 0, num_clients_packed = 0;
2207 int num_total_indices;
2208 #if defined(SERVER_MODE) 2209 INT64 current_msec = 0;
2220 #if defined(SERVER_MODE) 2221 if (include_query_exec_info)
2225 if (query_exec_info ==
NULL)
2238 for (i = 0; i < num_total_indices; i++)
2253 #if defined(SERVER_MODE) 2254 if (include_query_exec_info)
2298 if (query_exec_info[i].query_stmt ==
NULL)
2326 buffer = (
char *) malloc (size);
2338 for (i = 0; i < num_total_indices; i++)
2355 #if defined(SERVER_MODE) 2356 if (include_query_exec_info)
2360 ptr =
or_pack_string (ptr, query_exec_info[i].wait_for_tran_index_string);
2367 num_clients_packed++;
2368 assert (num_clients_packed <= num_clients);
2369 assert (ptr <= buffer + size);
2372 assert (num_clients_packed == num_clients);
2374 assert (ptr <= buffer + size);
2382 #if defined(SERVER_MODE) 2383 if (query_exec_info !=
NULL)
2385 for (i = 0; i < num_total_indices; i++)
2387 if (query_exec_info[i].wait_for_tran_index_string)
2389 free_and_init (query_exec_info[i].wait_for_tran_index_string);
2391 if (query_exec_info[i].query_stmt)
2395 if (query_exec_info[i].sql_id)
2515 return old_wait_msecs;
2565 *interrupt = tdes->
interrupt ?
true :
false;
2712 #if defined (SERVER_MODE) 2714 #endif // SERVER_MODE 2725 #if defined (HAVE_ATOMIC_BUILTINS) 2782 #if !defined(SERVER_MODE) 2797 *continue_checking =
true;
2801 *continue_checking =
false;
2804 else if (interrupt ==
true && clear ==
true)
2808 #if !defined (HAVE_ATOMIC_BUILTINS) 2817 *continue_checking =
true;
2821 *continue_checking =
false;
2824 #if !defined (HAVE_ATOMIC_BUILTINS) 2832 #if defined(SERVER_MODE) 2835 gettimeofday (&tv,
NULL);
2836 now = (tv.tv_sec * 1000LL) + (tv.tv_usec / 1000LL);
2841 "logtb_is_interrupted_tdes: timeout %lld milliseconds delayed (expected=%lld, now=%lld)",
2986 bool active =
false;
2997 if (tdes !=
NULL && tdes->
trid == trid)
3042 assert (tdes ==
NULL || tdes->is_active_worker_transaction ());
3079 if (tdes !=
NULL && tdes->
trid == trid)
3180 if (cos_chunk !=
NULL)
3182 for (; cos_chunk !=
NULL; cos_chunk = next_cos_chunk)
3199 if (stats_chunk !=
NULL)
3201 for (; stats_chunk !=
NULL; stats_chunk = next_stats_chunk)
3255 return ((
BTID *) key)->vfid.fileid % ht_size;
3333 unique_stats->
deleted =
false;
3351 return unique_stats;
3437 if (entry ==
NULL && create)
3471 if (unique_stats ==
NULL && create)
3477 return unique_stats;
3499 if (unique_stats ==
NULL)
3544 RECDES undo_rec, redo_rec;
3583 for (
const auto &it : multi_stats.
get_map ())
3644 bool old_check_interrupt;
3685 int classrepr_cacheindex = -1;
3686 bool clear_pcontext =
false;
3696 if (classrepr ==
NULL)
3704 clear_pcontext =
true;
3716 for (idx = 0; idx < context.
count; idx++)
3723 if (new_entry ==
NULL)
3748 if (clear_pcontext ==
true)
3752 if (classrepr !=
NULL)
3835 if (snapshot ==
NULL)
3885 #if defined (SA_MODE) 3901 return curr_mvcc_info->
id;
3921 if (curr_mvcc_info->
id == mvccid)
3925 else if (curr_mvcc_info->
sub_ids.size () > 0)
3927 for (
size_t i = 0;
i < curr_mvcc_info->
sub_ids.size ();
i++)
3929 if (curr_mvcc_info->
sub_ids[
i] == mvccid)
3951 if (!tdes->is_active_worker_transaction ())
3987 UINT64 tran_complete_time;
3988 bool is_perf_tracking =
false;
3993 if (is_perf_tracking)
3999 mvccid = curr_mvcc_info->
id;
4009 #if defined(SA_MODE) 4024 serial_get_index_btid (&serial_index_btid);
4029 if (serial_unique_stats !=
NULL)
4053 p_mvcc_snapshot = &(curr_mvcc_info->
snapshot);
4054 if (p_mvcc_snapshot->
valid)
4059 curr_mvcc_info->
reset ();
4063 if (is_perf_tracking)
4067 tran_complete_time = tv_diff.tv_sec * 1000000LL + tv_diff.tv_usec;
4068 if (tran_complete_time > 0)
4091 #if !defined(NDEBUG) 4095 "\n*** Transaction = %d (index = %d) is prepared to commit as gobal tran = %d\n" 4096 " The coordinator site (maybe the client user = %s) needs to attach\n" 4097 " to this transaction and either commit or abort it. ***\n", tdes->
trid, tdes->
tran_index,
4107 #if !defined(NDEBUG) 4111 "\n*** Transaction = %d (index = %d) needs to complete informing participants\n" 4112 " about its fate = %s and collect participant acknowledgements.\n" 4113 " This transaction has been disassociated from the client user = %s.\n" 4114 " The transaction will be completely finished by the system ***\n", tdes->
trid,
4180 auto max_undo_lsa_func = [&] (
log_tdes & tdes)
4197 max_undo_lsa_func (*tdes);
4241 if (min_lsa !=
NULL)
4275 for (idx = n_classes - 1; idx >= 0; idx--)
4299 if (class_cos ==
NULL)
4368 int error_code =
NO_ERROR, idx, classrepr_cacheindex = -1;
4373 if (classrepr ==
NULL)
4378 for (idx = classrepr->
n_indexes - 1; idx >= 0; idx--)
4383 if (unique_stats ==
NULL)
4404 if (classrepr !=
NULL)
4412 #if defined(ENABLE_UNUSED_FUNCTION) 4558 curr_mvcc_info->
sub_ids.push_back (mvcc_subid);
4578 mvcc_sub_id = curr_mvcc_info->
sub_ids.back ();
4581 curr_mvcc_info->
sub_ids.pop_back ();
4607 if (unique_stat ==
NULL)
4614 return (
void *) unique_stat;
4626 if (unique_stat !=
NULL)
4648 if (unique_stat ==
NULL)
4781 int num_oids, num_nulls, num_keys;
4785 #if !defined(NDEBUG) 4801 if (load_at_creation)
4815 if (load_at_creation)
4898 "Update stats for index (%d, %d|%d) to nulls=%d, oids=%d, keys=%d. LSA=%lld|%d.\n",
4926 int key_delta,
bool log)
4931 int num_oids, num_nulls, num_keys;
4933 if (oid_delta == 0 && key_delta == 0 && null_delta == 0)
4950 RECDES undo_rec, redo_rec;
4961 datap = (
char *) undo_rec.
data;
4977 datap = (
char *) redo_rec.
data;
5001 "Update stats for index (%d, %d|%d) by nulls=%d, " 5002 "oids=%d, keys=%d to nulls=%d, oids=%d, keys=%d. LSA=%lld|%d.\n", btid->
root_pageid,
5003 btid->
vfid.
volid, btid->
vfid.
fileid, null_delta, oid_delta, key_delta, num_nulls, num_oids,
5032 #if !defined(NDEBUG) 5115 bool existed =
false;
5133 #if !defined (NDEBUG) && !defined (WINDOWS) 5141 *local_clients_pids =
NULL;
5162 *local_clients_pids = table;
5191 const int num_cols = 46;
5391 if (ptr_val ==
NULL)
5397 snprintf (buf,
sizeof (buf),
"0x%08" PRIx64, (UINT64) ptr_val);
5438 if (ptr_val ==
NULL)
5444 snprintf (buf,
sizeof (buf),
"0x%08" PRIx64, (UINT64) ptr_val);
5489 if (ptr_val ==
NULL)
5495 snprintf (buf,
sizeof (buf),
"0x%08" PRIx64, (UINT64) ptr_val);
5520 tval = i64val / 1000;
5521 msecs = i64val % 1000;
5535 tval = i64val / 1000;
5536 msecs = i64val % 1000;
5550 tval = i64val / 1000;
5551 msecs = i64val % 1000;
5565 snprintf (buf,
sizeof (buf),
"sha1 = %08x | %08x | %08x | %08x | %08x, time_stored = %d sec %d usec",
5584 assert (idx == num_cols);
5619 return "ABORT_DUE_DEADLOCK";
5621 return "ABORT_DUE_ROLLBACK_ON_ESCALATION";
5664 #if defined (SERVER_MODE) 5666 #endif // SERVER_MODE 5679 const char *tran_client_name;
5680 const char *current_client_name;
5682 assert (has_authorization);
5684 *has_authorization =
false;
5688 *has_authorization =
true;
5695 if (tran_client_name ==
NULL || current_client_name ==
NULL)
5700 if (strcasecmp (tran_client_name, current_client_name) == 0)
5702 *has_authorization =
true;
5720 const char *slam_progname_p;
5721 const char *slam_user_p;
5722 const char *slam_host_p;
5724 bool signaled =
false;
5726 bool killed =
false;
5729 if (kill_tran_index ==
NULL_TRAN_INDEX || kill_user_p ==
NULL || kill_host_p ==
NULL || strcmp (kill_user_p,
"") == 0
5730 || strcmp (kill_host_p,
"") == 0)
5755 if (signaled ==
false)
5758 kill_user_p, kill_host_p, kill_pid);
5768 if (kill_pid == slam_pid && strcmp (kill_user_p, slam_user_p) == 0 && strcmp (kill_host_p, slam_host_p) == 0)
5775 if (signaled ==
false)
5778 kill_host_p, kill_pid, kill_tran_index, slam_user_p, slam_host_p, slam_pid);
5790 if (error_code ==
NO_ERROR && !killed)
5810 bool interrupt, has_authorization;
5822 if (!is_dba_group_member)
5830 if (has_authorization ==
false)
5842 #if defined (SERVER_MODE) 5844 #endif // SERVER_MODE 5855 if (interrupt ==
false)
5861 if (i == LOGTB_RETRY_SLAM_MAX_TIMES)
5866 if (is_trx_exists ==
false)
5892 if (thread_ref.tran_index != tran_index)
5897 if (except_me && thread_ref.is_on_current_thread ())
5903 found_ptr = &thread_ref;
5918 return found_thread;
5932 return found_thread;
5935 #if defined (SERVER_MODE) 5946 if (thread_p ==
NULL)
5954 #endif // SERVER_MODE 5966 return thread_p->tran_index;
5975 if (thread_p ==
NULL)
5979 thread_p->tran_index = tran_index;
5990 #if defined (SERVER_MODE) 5991 bool old_val =
true;
5995 if (thread_p ==
NULL)
6002 old_val = thread_p->check_interrupt;
6003 thread_p->check_interrupt = flag;
6007 #else // not SERVER_MODE = SA_MODE 6009 #endif // not SERVER_MODE = SA_MODE 6019 #if defined (SERVER_MODE) 6020 bool ret_val =
true;
6024 if (thread_p ==
NULL)
6029 ret_val = thread_p->check_interrupt;
6033 #else // not SERVER_MODE = SA_MODE 6035 #endif // not SERVER_MODE = SA_MODE 6041 if (thread_p ==
NULL)
6048 return thread_p->get_system_tdes ()->get_tdes ();
6060 log_tdes::is_active_worker_transaction ()
const 6066 log_tdes::is_system_transaction ()
const 6072 log_tdes::is_system_main_transaction ()
const 6078 log_tdes::is_system_worker_transaction ()
const 6084 log_tdes::is_allowed_sysop ()
const 6086 return is_active_worker_transaction () || is_system_worker_transaction ();
6090 log_tdes::is_under_sysop ()
const 6096 log_tdes::is_allowed_undo ()
const 6098 return is_active_worker_transaction () || is_under_sysop ();
6102 log_tdes::lock_topop ()
6112 log_tdes::unlock_topop ()
6122 log_tdes::on_sysop_start ()
6124 assert (is_allowed_sysop ());
6126 if (is_system_worker_transaction () &&
topops.
last < 0)
6146 log_tdes::on_sysop_end ()
6148 assert (is_allowed_sysop ());
6149 if (is_system_worker_transaction() &&
topops.
last < 0)
6161 log_tdes::lock_global_oldest_visible_mvccid ()
6171 log_tdes::unlock_global_oldest_visible_mvccid ()
MVCCID logtb_find_current_mvccid(THREAD_ENTRY *thread_p)
#define rmutex_finalize(a)
void logtb_define_trantable(THREAD_ENTRY *thread_p, int num_expected_tran_indices, int num_expected_locks)
const char * logtb_find_current_client_hostname(THREAD_ENTRY *thread_p)
int logtb_get_global_unique_stats(THREAD_ENTRY *thread_p, BTID *btid, int *num_oids, int *num_nulls, int *num_keys)
int num_coord_loose_end_indices
MVCCID recent_snapshot_lowest_active_mvccid
int logtb_assign_tran_index(THREAD_ENTRY *thread_p, TRANID trid, TRAN_STATE state, const BOOT_CLIENT_CREDENTIAL *client_credential, TRAN_STATE *current_state, int wait_msecs, TRAN_ISOLATION isolation)
void xlogtb_set_suppress_repl_on_transaction(THREAD_ENTRY *thread_p, int set)
#define OR_BTID_ALIGNED_SIZE
LOG_TRAN_CLASS_COS buffer[1]
void logtb_release_tran_index(THREAD_ENTRY *thread_p, int tran_index)
int db_make_datetime(DB_VALUE *value, const DB_DATETIME *datetime)
MVCCID highest_completed_mvccid
cubthread::entry * thread_get_thread_entry_info(void)
int xcache_find_sha1(THREAD_ENTRY *thread_p, const SHA1Hash *sha1, const XASL_CACHE_SEARCH_MODE search_mode, XASL_CACHE_ENTRY **xcache_entry, xasl_cache_rt_check_result *rt_check)
int mht_map_no_key(THREAD_ENTRY *thread_p, const MHT_TABLE *ht, int(*map_func)(THREAD_ENTRY *thread_p, void *data, void *args), void *func_args)
bool logtb_is_active(THREAD_ENTRY *thread_p, TRANID trid)
static int logtb_allocate_tran_index(THREAD_ENTRY *thread_p, TRANID trid, TRAN_STATE state, const BOOT_CLIENT_CREDENTIAL *client_credential, TRAN_STATE *current_state, int wait_msecs, TRAN_ISOLATION isolation)
struct lob_rb_root lob_locator_root
#define pthread_mutex_destroy(a)
int mht_clear(MHT_TABLE *ht, int(*rem_func)(const void *key, void *data, void *args), void *func_args)
static unsigned int logtb_tran_btid_hash_func(const void *key, const unsigned int ht_size)
int logtb_count_clients(THREAD_ENTRY *thread_p)
void log_append_undoredo_data2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, int undo_length, int redo_length, const void *undo_data, const void *redo_data)
MHT_TABLE * unique_stats_hash
int logtb_find_log_records_count(int tran_index)
int logtb_get_number_assigned_tran_indices(void)
void log_find_unilaterally_largest_undo_lsa(THREAD_ENTRY *thread_p, LOG_LSA &max_undo_lsa)
#define BO_IS_SERVER_RESTARTED()
#define LOG_ESTIMATE_NACTIVE_TRANS
int logtb_invalidate_snapshot_data(THREAD_ENTRY *thread_p)
void logtb_set_current_user_name(THREAD_ENTRY *thread_p, const char *user_name)
LOG_UNIQUE_STATS global_stats
static void logtb_find_thread_entry_mapfunc(THREAD_ENTRY &thread_ref, bool &stop_mapper, int tran_index, bool except_me, REFPTR(THREAD_ENTRY, found_ptr))
#define RMUTEX_NAME_TDES_TOPOP
#define LOG_ISTRAN_COMMITTED(tdes)
#define ER_CSS_KILL_BAD_INTERFACE
void qmgr_clear_trans_wakeup(THREAD_ENTRY *thread_p, int tran_index, bool is_tran_died, bool is_abort)
static void logtb_tran_free_update_stats(LOG_TRAN_UPDATE_STATS *log_upd_stats)
#define ER_KILL_TR_NOT_ALLOWED
TRAN_ISOLATION logtb_find_current_isolation(THREAD_ENTRY *thread_p)
void css_shutdown_conn_by_tran_index(int tran_index)
unsigned int of_local_next
void lf_hash_destroy(LF_HASH_TABLE *table)
void logpb_fatal_error(THREAD_ENTRY *thread_p, bool logexit, const char *file_name, const int lineno, const char *fmt,...)
bool LSA_EQ(const log_lsa *plsa1, const log_lsa *plsa2)
void unlock_global_oldest_visible()
#define rmutex_unlock(a, b)
void get_two_new_mvccid(MVCCID &first, MVCCID &second)
void showstmt_free_array_context(THREAD_ENTRY *thread_p, SHOWSTMT_ARRAY_CONTEXT *ctx)
THREAD_ENTRY * logtb_find_thread_by_tran_index(int tran_index)
const char * boot_client_type_to_string(BOOT_CLIENT_TYPE type)
static void logtb_set_number_of_total_tran_indices(int num_total_trans)
LOG_TRAN_UPDATE_STATS log_upd_stats
LF_ENTRY_INITIALIZE_FUNC f_init
LOG_TRAN_CLASS_COS_CHUNK * next_chunk
void LSA_COPY(log_lsa *plsa1, const log_lsa *plsa2)
const char * tran_abort_reason_to_string(TRAN_ABORT_REASON val)
enum db_client_type BOOT_CLIENT_TYPE
void xlogtb_dump_trantable(THREAD_ENTRY *thread_p, FILE *out_fp)
#define LOG_ISTRAN_2PC_IN_SECOND_PHASE(tdes)
bool is_global_oldest_visible_locked() const
LOG_2PC_COORDINATOR * coord
int partition_load_pruning_context(THREAD_ENTRY *thread_p, const OID *class_oid, int pruning_type, PRUNING_CONTEXT *pinfo)
LOG_TRAN_BTID_UNIQUE_STATS_CHUNK * stats_first_chunk
void logtb_free_tran_index_with_undo_lsa(THREAD_ENTRY *thread_p, const LOG_LSA *undo_lsa)
LOG_LSA sysop_start_postpone_lsa
void logtb_tran_reset_count_optim_state(THREAD_ENTRY *thread_p)
LOG_TRAN_CLASS_COS * logtb_tran_find_class_cos(THREAD_ENTRY *thread_p, const OID *class_oid, bool create)
static const int LOG_TOPOPS_STACK_INCREMENT
unsigned int btree_hash_btid(void *btid, int hash_size)
void * lf_hash_iterate(LF_HASH_TABLE_ITERATOR *it)
const int LOG_SYSTEM_TRAN_INDEX
TRAN_ABORT_REASON tran_abort_reason
static int logtb_global_unique_stat_key_copy(void *src, void *dest)
static const float LOG_EXPAND_TRANTABLE_RATIO
void logtb_slam_transaction(THREAD_ENTRY *thread_p, int tran_index)
int btree_reflect_global_unique_statistics(THREAD_ENTRY *thread_p, GLOBAL_UNIQUE_STATS *unique_stat_info, bool only_active_tran)
LF_ENTRY_UNINITIALIZE_FUNC f_uninit
#define ER_TM_TOO_MANY_CLIENTS
int disable_modifications
int logtb_get_current_tran_index(void)
bool has_deadlock_priority
bool logtb_has_deadlock_priority(int tran_index)
#define TRAN_DEFAULT_ISOLATION_LEVEL()
#define TR_TABLE_CS_ENTER_READ_MODE(thread_p)
static BOOT_CLIENT_CREDENTIAL log_Client_credential
int xlogtb_kill_tran_index(THREAD_ENTRY *thread_p, int kill_tran_index, char *kill_user_p, char *kill_host_p, int kill_pid)
static int logtb_create_unique_stats_from_repr(THREAD_ENTRY *thread_p, OID *class_oid)
int lf_hash_find(LF_TRAN_ENTRY *tran, LF_HASH_TABLE *table, void *key, void **entry)
LOG_TRAN_BTID_UNIQUE_STATS_CHUNK * stats_current_chunk
char * or_pack_string(char *ptr, const char *string)
const void * mht_put(MHT_TABLE *ht, const void *key, void *data)
static void logtb_set_tdes(THREAD_ENTRY *thread_p, LOG_TDES *tdes, const BOOT_CLIENT_CREDENTIAL *client_credential, int wait_msecs, TRAN_ISOLATION isolation)
const char * log_state_short_string(TRAN_STATE state)
struct log_tran_btid_unique_stats LOG_TRAN_BTID_UNIQUE_STATS
bool logtb_is_system_worker_tranid(TRANID trid)
int file_manager_init(void)
void lf_hash_create_iterator(LF_HASH_TABLE_ITERATOR *iterator, LF_TRAN_ENTRY *tran_entry, LF_HASH_TABLE *table)
#define ASSERT_ERROR_AND_SET(error_code)
TRANID logtb_find_current_tranid(THREAD_ENTRY *thread_p)
LF_ENTRY_FREE_FUNC f_free
int logtb_reflect_global_unique_stats_to_btree(THREAD_ENTRY *thread_p)
bool xlogtb_does_active_user_exist(THREAD_ENTRY *thread_p, const char *user_name)
INT64 log_get_clock_msec(void)
const char * get_host_name() const
void LOG_CS_ENTER(THREAD_ENTRY *thread_p)
#define VACUUM_IS_THREAD_VACUUM
void log_append_undo_data2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, int length, const void *data)
LOG_LSA analysis_last_aborted_sysop_lsa
int logtb_update_global_unique_stats_by_delta(THREAD_ENTRY *thread_p, BTID *btid, int oid_delta, int null_delta, int key_delta, bool log)
const int LOG_2PC_NULL_GTRID
int qmgr_allocate_tran_entries(THREAD_ENTRY *thread_p, int num_new_entries)
cubthread::manager * thread_get_manager(void)
void build_mvcc_info(log_tdes &tdes)
bool logtb_is_interrupted(THREAD_ENTRY *thread_p, bool clear, bool *continue_checking)
GLOBAL_UNIQUE_STATS_TABLE unique_stats_table
log_postpone_cache m_log_postpone_cache
struct timeval TSCTIMEVAL
#define pthread_mutex_init(a, b)
void logtb_find_smallest_lsa(THREAD_ENTRY *thread_p, LOG_LSA *lsa)
LOG_TDES * LOG_FIND_TDES(int tran_index)
struct log_tran_btid_unique_stats_chunk LOG_TRAN_BTID_UNIQUE_STATS_CHUNK
void tsc_elapsed_time_usec(TSCTIMEVAL *tv, TSC_TICKS end_tick, TSC_TICKS start_tick)
static int logtb_tran_update_delta_hash_func(THREAD_ENTRY *thread_p, void *data, void *args)
TRAN_STATE logtb_find_state(int tran_index)
enum lc_prefetch_flags LC_PREFETCH_FLAGS
#define lf_tran_end_with_mb(entry)
#define LSA_AS_ARGS(lsa_ptr)
int logtb_is_tran_modification_disabled(THREAD_ENTRY *thread_p)
bool block_global_oldest_active_until_commit
void logtb_finalize_global_unique_stats_table(THREAD_ENTRY *thread_p)
int logtb_find_client_name_host_pid(int tran_index, const char **client_prog_name, const char **client_user_name, const char **client_host_name, int *client_pid)
#define BTID_IS_EQUAL(b1, b2)
static void logtb_dump_top_operations(FILE *out_fp, LOG_TOPOPS_STACK *topops_p)
static void logtb_decrement_number_of_assigned_tran_indices()
static void logtb_dump_tdes(FILE *out_fp, LOG_TDES *tdes)
const block_allocator PRIVATE_BLOCK_ALLOCATOR
const char * log_state_string(TRAN_STATE state)
#define PTR_ALIGN(addr, boundary)
SHOWSTMT_ARRAY_CONTEXT * showstmt_alloc_array_context(THREAD_ENTRY *thread_p, int num_total, int num_cols)
void * block_particps_ids
bool LSA_LT(const log_lsa *plsa1, const log_lsa *plsa2)
#define er_log_debug(...)
void logtb_clear_tdes(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
HL_HEAPID db_change_private_heap(THREAD_ENTRY *thread_p, HL_HEAPID heap_id)
stat_type get_key_count() const
static const int LOG_MAX_NUM_CONTIGUOUS_TDES
tx_transient_class_registry m_modified_classes
int logtb_set_num_loose_end_trans(THREAD_ENTRY *thread_p)
int logtb_define_trantable_log_latch(THREAD_ENTRY *thread_p, int num_expected_tran_indices)
void * logtb_realloc_topops_stack(LOG_TDES *tdes, int num_elms)
void complete_mvcc(int tran_index, MVCCID mvccid, bool committed)
void logtb_set_current_user_active(THREAD_ENTRY *thread_p, bool is_user_active)
void _er_log_debug(const char *file_name, const int line_no, const char *fmt,...)
thread_resume_suspend_status
LF_ENTRY_DESCRIPTOR unique_stats_descriptor
int xlogtb_reset_wait_msecs(THREAD_ENTRY *thread_p, int wait_msecs)
#define COPY_OID(dest_oid_ptr, src_oid_ptr)
static LOG_TRAN_CLASS_COS * logtb_tran_create_class_cos(THREAD_ENTRY *thread_p, const OID *class_oid)
void pgbuf_finalize(void)
void btree_rv_mvcc_save_increments(const BTID *btid, int key_delta, int oid_delta, int null_delta, RECDES *recdes)
static void logtb_set_loose_end_tdes(LOG_TDES *tdes)
void set_user(const char *db_user)
int logtb_tran_update_all_global_unique_stats(THREAD_ENTRY *thread_p)
LOG_LSA tail_topresult_lsa
#define SHA1_AS_ARGS(sha1)
#define TR_TABLE_CS_ENTER(thread_p)
#define NUM_ASSIGNED_TRAN_INDICES
#define GLOBAL_UNIQUE_STATS_HASH_SIZE
void log_2pc_free_coord_info(log_tdes *tdes)
unsigned int of_del_tran_id
const char * logtb_find_client_hostname(int tran_index)
char boot_Host_name[CUB_MAXHOSTNAMELEN]
int db_make_string(DB_VALUE *value, DB_CONST_C_CHAR str)
void logtb_get_new_subtransaction_mvccid(THREAD_ENTRY *thread_p, MVCC_INFO *curr_mvcc_info)
void mht_destroy(MHT_TABLE *ht)
bool logtb_get_check_interrupt(THREAD_ENTRY *thread_p)
COUNT_OPTIM_STATE count_state
void partition_clear_pruning_context(PRUNING_CONTEXT *pinfo)
char * or_pack_float(char *ptr, float number)
int lf_hash_init(LF_HASH_TABLE *table, LF_FREELIST *freelist, unsigned int hash_size, LF_ENTRY_DESCRIPTOR *edesc)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
void logtb_find_smallest_and_largest_active_pages(THREAD_ENTRY *thread_p, LOG_PAGEID *smallest, LOG_PAGEID *largest)
#define pthread_mutex_unlock(a)
int pgbuf_initialize(void)
db_client_type client_type
void logtb_disable_update(THREAD_ENTRY *thread_p)
char * log_2pc_sprintf_particp(void *particp_id)
int logtb_get_client_ids(int tran_index, CLIENTIDS *client_info)
void logtb_set_user_name(int tran_index, const char *user_name)
const char * get_program_name() const
#define XASL_ID_COPY(X1, X2)
#define BOOT_NORMAL_CLIENT_TYPE(client_type)
static int logtb_tran_btid_hash_cmp_func(const void *key1, const void *key2)
LF_ENTRY_KEY_COPY_FUNC f_key_copy
int logtb_descriptors_start_scan(THREAD_ENTRY *thread_p, int type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
int or_packed_string_length(const char *string, int *strlen)
void thread_sleep_for(Duration d)
#define BOOT_IS_ALLOWED_CLIENT_TYPE_IN_MT_MODE(host1, host2, client_type)
static const char * UNKNOWN_ID
LOG_TRAN_BTID_UNIQUE_STATS * logtb_tran_find_btid_stats(THREAD_ENTRY *thread_p, const BTID *btid, bool create)
void logtb_enable_update(THREAD_ENTRY *thread_p)
void set_inactive_mvccid(MVCCID mvccid)
void logtb_finalize_tdes(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
#define LOG_ISTRAN_ACTIVE(tdes)
const char * logtb_find_current_client_name(THREAD_ENTRY *thread_p)
LF_ENTRY_KEY_COMPARE_FUNC f_key_cmp
void xlogtb_set_interrupt(THREAD_ENTRY *thread_p, int set)
LC_FIND_CLASSNAME xlocator_find_class_oid(THREAD_ENTRY *thread_p, const char *classname, OID *class_oid, LOCK lock)
int logtb_get_new_tran_id(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
#define ER_OUT_OF_VIRTUAL_MEMORY
void LOG_CS_EXIT(THREAD_ENTRY *thread_p)
static GLOBAL_UNIQUE_STATS * logtb_get_global_unique_stats_entry(THREAD_ENTRY *thread_p, BTID *btid, bool load_at_creation)
bool logtb_am_i_dba_client(THREAD_ENTRY *thread_p)
int btree_get_unique_statistics(THREAD_ENTRY *thread_p, BTID *btid, int *oid_cnt, int *null_cnt, int *key_cnt)
#define NUM_TOTAL_TRAN_INDICES
int btree_compare_btids(void *mem_btid1, void *mem_btid2)
int logtb_tran_update_unique_stats(THREAD_ENTRY *thread_p, const BTID *btid, int n_keys, int n_oids, int n_nulls, bool write_to_log)
lf_tran_entry * thread_get_tran_entry(cubthread::entry *thread_p, int entry_idx)
void lsa_to_string(char *buf, int buf_size, const log_lsa *lsa)
const char * get_client_info() const
bool logtb_set_suppress_repl_on_transaction(THREAD_ENTRY *thread_p, int tran_index, int set)
void set_system_internal()
void xcache_unfix(THREAD_ENTRY *thread_p, XASL_CACHE_ENTRY *xcache_entry)
int logtb_tran_update_btid_unique_stats(THREAD_ENTRY *thread_p, const BTID *btid, int n_keys, int n_oids, int n_nulls)
bool tran_get_check_interrupt(void)
LOG_TRAN_BTID_UNIQUE_STATS_CHUNK * next_chunk
#define TRAN_LOCK_INFINITE_WAIT
multi_index_unique_stats m_multiupd_stats
void logtb_undefine_trantable(THREAD_ENTRY *thread_p)
#define CACHE_TIME_AS_ARGS(ct)
int db_Disable_modifications
int lock_initialize(void)
int logtb_tran_prepare_count_optim_classes(THREAD_ENTRY *thread_p, const char **classes, LC_PREFETCH_FLAGS *flags, int n_classes)
bool logtb_has_updated(THREAD_ENTRY *thread_p)
volatile sig_atomic_t num_interrupts
mvcc_active_tran m_active_mvccs
int xlogtb_get_mvcc_snapshot(THREAD_ENTRY *thread_p)
void logtb_initialize_tdes(LOG_TDES *tdes, int tran_index)
int num_prepared_loose_end_indices
#define heap_classrepr_free_and_init(class_repr, idxp)
MVCC_SNAPSHOT * logtb_get_mvcc_snapshot(THREAD_ENTRY *thread_p)
unsigned has_partition_info
LOG_TDES * logtb_rv_find_allocate_tran_index(THREAD_ENTRY *thread_p, TRANID trid, const LOG_LSA *log_lsa)
MVCCID logtb_get_current_mvccid(THREAD_ENTRY *thread_p)
static void cleanup(int signo)
static log_tdes * rv_get_or_alloc_tdes(TRANID trid)
int logtb_find_wait_msecs(int tran_index)
void * mht_get(MHT_TABLE *ht, const void *key)
LF_TRAN_SYSTEM global_unique_stats_Ts
int logtb_collect_local_clients(int **local_clients_pids)
int lf_hash_find_or_insert(LF_TRAN_ENTRY *tran, LF_HASH_TABLE *table, void *key, void **entry, int *inserted)
stat_type get_null_count() const
static int logtb_initialize_system_tdes(THREAD_ENTRY *thread_p)
int num_log_records_written
#define rmutex_lock(a, b)
void tsc_getticks(TSC_TICKS *tck)
bool logtb_is_current_active(THREAD_ENTRY *thread_p)
STATIC_INLINE bool perfmon_is_perf_tracking(void) __attribute__((ALWAYS_INLINE))
int logtb_find_client_type(int tran_index)
void pgbuf_force_to_check_for_interrupts(void)
int logtb_find_interrupt(int tran_index, bool *interrupt)
bool LSA_ISNULL(const log_lsa *lsa_ptr)
static bool logtb_is_interrupted_tdes(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool clear, bool *continue_checking)
#define BTID_SET_NULL(btid)
bool logtb_set_check_interrupt(THREAD_ENTRY *thread_p, bool flag)
LF_ENTRY_DUPLICATE_KEY_HANDLER f_duplicate
#define db_private_free_and_init(thrd, ptr)
#define OR_PUT_BTID(ptr, btid)
static int logtb_global_unique_stat_free(void *unique_stat)
const char * logtb_find_client_name(int tran_index)
int lf_freelist_init(LF_FREELIST *freelist, int initial_blocks, int block_size, LF_ENTRY_DESCRIPTOR *edesc, LF_TRAN_SYSTEM *tran_system)
MHT_TABLE * mht_create(const char *name, int est_size, unsigned int(*hash_func)(const void *key, unsigned int ht_size), int(*cmp_func)(const void *key1, const void *key2))
#define COS_CLASSES_CHUNK_SIZE
void partition_init_pruning_context(PRUNING_CONTEXT *pinfo)
static int logtb_expand_trantable(THREAD_ENTRY *thread_p, int num_new_indices)
static void logtb_free_tran_mvcc_info(LOG_TDES *tdes)
void logtb_free_tran_index(THREAD_ENTRY *thread_p, int tran_index)
LOG_UNIQUE_STATS tran_stats
DB_VALUE * showstmt_alloc_tuple_in_context(THREAD_ENTRY *thread_p, SHOWSTMT_ARRAY_CONTEXT *ctx)
LOG_LSA analysis_last_aborted_sysop_start_lsa
LF_HASH_TABLE unique_stats_hash
stat_type get_row_count() const
bool logtb_istran_finished(THREAD_ENTRY *thread_p, TRANID trid)
unsigned int oid_hash(const void *key_oid, unsigned int htsize)
static void logtb_assign_subtransaction_mvccid(THREAD_ENTRY *thread_p, MVCC_INFO *curr_mvcc_info, MVCCID mvcc_subid)
OR_PARTITION * partitions
need_clear_type need_clear
#define LOG_SET_CURRENT_TRAN_INDEX(thrd, index)
OR_CLASSREP * heap_classrepr_get(THREAD_ENTRY *thread_p, const OID *class_oid, RECDES *class_recdes, REPR_ID reprid, int *idx_incache)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
#define ER_LOG_UNKNOWN_TRANINDEX
static void logtb_increment_number_of_assigned_tran_indices()
void logtb_set_to_system_tran_index(THREAD_ENTRY *thread_p)
#define LOG_ISTRAN_2PC_INFORMING_PARTICIPANTS(tdes)
TRAN_ISOLATION logtb_find_isolation(int tran_index)
struct log_repl * repl_records
void heap_chnguess_clear(THREAD_ENTRY *thread_p, int tran_index)
int oid_compare_equals(const void *key_oid1, const void *key_oid2)
#define LOG_ISTRAN_2PC_PREPARE(tdes)
int logtb_find_current_client_type(THREAD_ENTRY *thread_p)
void map_entries(Func &&func, Args &&...args)
DB_VALUE_ARRAY bind_history[MAX_NUM_EXEC_QUERY_HISTORY]
static int logtb_load_global_statistics_to_tran(THREAD_ENTRY *thread_p)
bool LOG_CS_OWN_WRITE_MODE(THREAD_ENTRY *thread_p)
static void error(const char *msg)
LF_ENTRY_HASH_FUNC f_hash
LOG_TRAN_BTID_UNIQUE_STATS buffer[1]
static LOG_ADDR_TDESAREA * logtb_allocate_tdes_area(int num_indices)
char * or_pack_int(char *ptr, int number)
STATIC_INLINE void perfmon_inc_stat(THREAD_ENTRY *thread_p, PERF_STAT_ID psid) __attribute__((ALWAYS_INLINE))
const char * log_isolation_string(TRAN_ISOLATION isolation)
void logtb_set_current_tran_index(THREAD_ENTRY *thread_p, int tran_index)
LOG_TDES * LOG_FIND_CURRENT_TDES(THREAD_ENTRY *thread_p=NULL)
int logtb_delete_global_unique_stats(THREAD_ENTRY *thread_p, BTID *btid)
#define LOG_FIND_THREAD_TRAN_INDEX(thrd)
static int logtb_global_unique_stat_init(void *unique_stat)
LF_ENTRY_ALLOC_FUNC f_alloc
#define ER_MVCC_LOG_INVALID_ISOLATION_LEVEL
LOG_TDES * logtb_get_system_tdes(THREAD_ENTRY *thread_p)
bool logtb_is_current_mvccid(THREAD_ENTRY *thread_p, MVCCID mvccid)
int lock_get_lock_holder_tran_index(THREAD_ENTRY *thread_p, char **out_buf, int waiter_index, LK_RES *res)
#define BOOT_WRITE_ON_STANDY_CLIENT_TYPE(client_type)
bool logtb_check_class_for_rr_isolation_err(const OID *class_oid)
const char * get_login_name() const
MHT_TABLE * classes_cos_hash
const char * get_db_user() const
int logtb_get_number_of_total_tran_indices(void)
void lock_global_oldest_visible()
static void logtb_tran_clear_update_stats(LOG_TRAN_UPDATE_STATS *log_upd_stats)
#define free_and_init(ptr)
#define LOG_ISRESTARTED()
#define DB_ALIGN(offset, align)
#define BTID_COPY(btid_ptr1, btid_ptr2)
int logtb_initialize_global_unique_stats_table(THREAD_ENTRY *thread_p)
int xlogtb_reset_isolation(THREAD_ENTRY *thread_p, TRAN_ISOLATION isolation)
void LSA_SET_NULL(log_lsa *lsa_ptr)
char * or_pack_string_with_length(char *ptr, const char *string, int length)
bool pgbuf_is_page_fixed_by_thread(THREAD_ENTRY *thread_p, const VPID *vpid_p)
LOG_UNIQUE_STATS unique_stats
LF_FREELIST unique_stats_freelist
int db_make_string_copy(DB_VALUE *value, DB_CONST_C_CHAR str)
bool LSA_GT(const log_lsa *plsa1, const log_lsa *plsa2)
int logtb_count_not_allowed_clients_in_maintenance_mode(THREAD_ENTRY *thread_p)
bool logpb_is_pool_initialized(void)
void lf_freelist_destroy(LF_FREELIST *freelist)
bool prm_get_bool_value(PARAM_ID prm_id)
#define OR_PUT_INT(ptr, val)
static LOG_TRAN_BTID_UNIQUE_STATS * logtb_tran_create_btid_unique_stats(THREAD_ENTRY *thread_p, const BTID *btid)
int logtb_rv_update_global_unique_stats_by_abs(THREAD_ENTRY *thread_p, BTID *btid, int num_oids, int num_nulls, int num_keys)
static int logtb_tran_reset_cos_func(THREAD_ENTRY *thread_p, void *data, void *args)
LOG_TRAN_CLASS_COS_CHUNK * cos_first_chunk
volatile sig_atomic_t interrupt
int file_get_tran_num_temp_files(THREAD_ENTRY *thread_p)
void reset_transaction_lowest_active(int tran_index)
void logtb_complete_sub_mvcc(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
const size_t LOG_USERNAME_MAX
const container_type & get_map() const
int db_make_null(DB_VALUE *value)
static void logtb_initialize_trantable(TRANTABLE *trantable_p)
bool oid_check_cached_class_oid(const int cache_id, const OID *oid)
#define XASL_ID_IS_NULL(X)
bool logtb_is_interrupted_tran(THREAD_ENTRY *thread_p, bool clear, bool *continue_checking, int tran_index)
void to_string(string_buffer &strbuf) const
int num_transient_classnames
#define ER_CSS_CONN_SHUTDOWN
void alloc_transaction_lowest_active()
#define IS_VALID_ISOLATION_LEVEL(isolation_level)
static void logtb_set_number_of_assigned_tran_indices(int num_trans)
LOG_TOPOPS_ADDRESSES * stack
STATIC_INLINE void perfmon_add_stat(THREAD_ENTRY *thread_p, PERF_STAT_ID psid, UINT64 amount) __attribute__((ALWAYS_INLINE))
char * strdup(const char *str)
int lf_hash_delete(LF_TRAN_ENTRY *tran, LF_HASH_TABLE *table, void *key, int *success)
#define BTID_IS_NULL(btid)
int db_value_clear(DB_VALUE *value)
int db_make_int(DB_VALUE *value, const int num)
bool logtb_set_tran_index_interrupt(THREAD_ENTRY *thread_p, int tran_index, bool set)
void logtb_complete_mvcc(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool committed)
int qmgr_get_sql_id(THREAD_ENTRY *thread_p, char **sql_id_buf, char *query, size_t sql_len)
void thread_wakeup(cubthread::entry *thread_p, thread_resume_suspend_status resume_reason)
#define VOLATILE_ACCESS(v, t)
#define ER_CSS_KILL_UNKNOWN_TRANSACTION
int logtb_find_tran_index(THREAD_ENTRY *thread_p, TRANID trid)
LOG_TRAN_CLASS_COS_CHUNK * cos_current_chunk
#define MVCCID_FORWARD(id)
void logpb_finalize_pool(THREAD_ENTRY *thread_p)
#define rmutex_initialize(a, b)
void file_manager_final(void)
#define CUB_MAXHOSTNAMELEN
void set_ids(db_client_type type, const char *client_info, const char *db_user, const char *program_name, const char *login_name, const char *host_name, int process_id)
LOG_LSA * logtb_find_current_tran_lsa(THREAD_ENTRY *thread_p)
int xlogtb_kill_or_interrupt_tran(THREAD_ENTRY *thread_p, int tran_index, bool is_dba_group_member, bool interrupt_only)
static int logtb_tran_load_global_stats_func(THREAD_ENTRY *thread_p, void *data, void *args)
LOG_LSA tran_start_postpone_lsa
std::vector< MVCCID > sub_ids
#define TR_TABLE_CS_EXIT(thread_p)
void logtb_rv_assign_mvccid_for_undo_recovery(THREAD_ENTRY *thread_p, MVCCID mvccid)
#define XASL_ID_SET_NULL(X)
struct log_tran_class_cos LOG_TRAN_CLASS_COS
static const unsigned int LOGTB_RETRY_SLAM_MAX_TIMES
static int logtb_check_kill_tran_auth(THREAD_ENTRY *thread_p, int tran_id, bool *has_authorization)
static void * logtb_global_unique_stat_alloc(void)
THREAD_ENTRY * logtb_find_thread_by_tran_index_except_me(int tran_index)
void db_localdatetime_msec(time_t *epoch_time, int millisecond, DB_DATETIME *datetime)
bool btree_is_unique_type(BTREE_TYPE type)
#define MVCCID_IS_VALID(id)
#define LF_EM_USING_MUTEX
LOG_LSA atomic_sysop_start_lsa
static void map_all_tdes(const map_func &func)
enum tran_abort_reason TRAN_ABORT_REASON
void complete_sub_mvcc(MVCCID mvccid)
bool tran_set_check_interrupt(bool flag)
#define ER_CSS_KILL_DOES_NOTMATCH
static void logtb_dump_tdes_distribute_transaction(FILE *out_fp, int global_tran_id, LOG_2PC_COORDINATOR *coord)
const TRANID LOG_SYSTEM_TRANID
struct log_tran_class_cos_chunk LOG_TRAN_CLASS_COS_CHUNK
int xlogtb_get_pack_tran_table(THREAD_ENTRY *thread_p, char **buffer_p, int *size_p, int include_query_exec_info)
TRANID logtb_find_tranid(int tran_index)
#define MAX_NUM_EXEC_QUERY_HISTORY
void clear(cub_regex_object *®ex, char *&pattern)
#define TRAN_UNIQUE_STATS_CHUNK_SIZE
#define OR_PACK_XASL_ID(PTR, X)