30 #include <sys/resource.h> 42 #if defined(SERVER_MODE) 57 #if !defined(SERVER_MODE) 58 #define pthread_mutex_init(a, b) 59 #define pthread_mutex_destroy(a) 60 #define pthread_mutex_lock(a) 0 61 #define pthread_mutex_trylock(a) 0 62 #define pthread_mutex_unlock(a) 66 #define SESSIONS_HASH_SIZE 1000 67 #define MAX_SESSION_VARIABLES_COUNT 20 68 #define MAX_PREPARED_STATEMENTS_COUNT 20 187 , last_session_id (0)
188 , num_holdable_cursors (0)
223 #if !defined (NDEBUG) && defined (SERVER_MODE) 258 return (
void *) state;
336 #if defined (SESSION_DEBUG) 344 while (vcurent !=
NULL)
346 vnext = vcurent->
next;
354 while (pcurent !=
NULL)
356 pnext = pcurent->
next;
366 qnext = qcurent->
next;
383 #if defined (SESSION_DEBUG) 441 return (
id % hash_table_size);
513 #if defined (SESSION_DEBUG) 534 #if defined (SERVER_MODE) 587 #if defined (SESSION_DEBUG) 593 #if defined (SERVER_MODE) 609 #if defined (SERVER_MODE) 613 const char *env_value =
envvar_get (
"DUMP_SESSION");
614 if (env_value !=
NULL)
619 #if defined (SESSION_DEBUG) 644 #if defined (SERVER_MODE) 645 if (thread_p && thread_p->conn_entry && thread_p->conn_entry->session_p)
647 SESSION_ID old_id = thread_p->conn_entry->session_id;
651 assert (thread_p->conn_entry->session_p->id == old_id);
654 if (session_p ==
NULL)
657 thread_p->conn_entry->session_p =
NULL;
661 assert (session_p == thread_p->conn_entry->session_p);
664 session_state_verify_ref_count (thread_p, session_p);
667 thread_p->conn_entry->session_p =
NULL;
668 session_state_decrease_ref_count (thread_p, session_p);
678 *
id = next_session_id;
682 if (session_p ==
NULL)
696 #if defined (SERVER_MODE) 697 #if !defined (NDEBUG) 698 (void) session_state_verify_ref_count (thread_p, session_p);
701 session_state_increase_ref_count (thread_p, session_p);
713 #if defined (SESSION_DEBUG) 723 for (state = it.iterate (); state !=
NULL; state = it.iterate ())
746 #if defined (SESSION_DEBUG) 752 if (session_p ==
NULL)
758 #if defined (SERVER_MODE) 761 if (thread_p !=
NULL && thread_p->conn_entry !=
NULL && thread_p->conn_entry->session_p !=
NULL 762 && thread_p->conn_entry->session_p == session_p)
764 thread_p->conn_entry->session_p =
NULL;
767 session_state_decrease_ref_count (thread_p, session_p);
815 #if defined (SESSION_DEBUG) 819 #if defined (SERVER_MODE) 820 if (thread_p && thread_p->conn_entry && thread_p->conn_entry->session_p)
822 SESSION_ID old_id = thread_p->conn_entry->session_id;
824 assert (thread_p->conn_entry->session_p->id == old_id);
827 if (session_p ==
NULL)
832 thread_p->conn_entry->session_p =
NULL;
837 assert (session_p == thread_p->conn_entry->session_p);
840 session_state_verify_ref_count (thread_p, session_p);
843 thread_p->conn_entry->session_p =
NULL;
844 session_state_decrease_ref_count (thread_p, session_p);
853 if (session_p ==
NULL)
862 #if defined (SERVER_MODE) 863 #if !defined (NDEBUG) 864 (void) session_state_verify_ref_count (thread_p, session_p);
867 session_state_increase_ref_count (thread_p, session_p);
886 #define EXPIRED_SESSION_BUFFER_SIZE 1024 890 bool is_expired =
false;
893 int n_expired_sids = 0;
895 bool finished =
false;
897 active_sessions.
count = -1;
909 state = it.iterate ();
927 expired_sid_buffer[n_expired_sids++] = state->
id;
943 for (sid_index = 0; sid_index < n_expired_sids; sid_index++)
965 #undef EXPIRED_SESSION_BUFFER_SIZE 979 time_t curr_time = time (
NULL);
985 #if defined (SERVER_MODE) 989 if (active_sessions->
count == -1)
998 for (i = 0; i < active_sessions->
count; i++)
1009 #if defined (SESSION_DEBUG) 1017 #if defined (SESSION_DEBUG) 1070 const char *name_str;
1079 len = MAX (len,
strlen (
"collect_exec_stats"));
1081 if (strncasecmp (name_str,
"collect_exec_stats", len) == 0)
1085 perfmon_start_watch (
NULL);
1089 perfmon_stop_watch (
NULL);
1092 else if (strncasecmp (name_str,
"trace_plan", 10) == 0)
1114 current = current->
next;
1133 var->
name = (
char *) malloc (len + 1);
1140 memcpy (var->
name, name_str, len);
1178 int length = 0, precision = 0, scale = 0;
1180 const char *src_str;
1225 str = (
char *) malloc (length + 1);
1233 if (src_str !=
NULL)
1235 memcpy (str, src_str, length);
1301 const char *name_str;
1334 current = current->
next;
1351 #if !defined(SERVER_MODE) 1356 if (thread_p ==
NULL)
1361 if (thread_p->conn_entry ==
NULL)
1366 *
id = thread_p->conn_entry->session_id;
1387 if (state_p ==
NULL)
1417 bool need_coercion =
false;
1421 need_coercion =
true;
1425 need_coercion =
true;
1429 if (state_p ==
NULL)
1478 if (state_p ==
NULL)
1511 if (state_p ==
NULL)
1539 if (state_p ==
NULL)
1568 if (state_p ==
NULL)
1590 if (state_p ==
NULL)
1618 if (*session_parameters_ptr)
1623 if (state_p ==
NULL)
1647 if (state_p ==
NULL)
1689 stmt_p->
name = name;
1691 stmt_p->
sha1 = *sha1;
1693 stmt_p->
info = info;
1697 if (state_p ==
NULL)
1703 #if defined (SESSION_DEBUG) 1718 while (current !=
NULL)
1737 current = current->
next;
1758 #if defined (SESSION_DEBUG) 1792 const char *alias_print;
1797 if (state_p ==
NULL)
1837 if (alias_print ==
NULL)
1841 #if defined (SESSION_DEBUG) 1872 if (state_p ==
NULL)
1877 #if defined (SESSION_DEBUG) 1946 if (state_p ==
NULL)
1951 for (i = 0; i <
count; i += 2)
1977 if (state_p ==
NULL)
2006 const char *name_str;
2014 if (state_p ==
NULL)
2035 char *var_name =
NULL;
2036 size_t name_len =
strlen (name_str);
2038 var_name = (
char *) malloc (name_len + 1);
2039 if (var_name !=
NULL)
2041 memcpy (var_name, name_str, name_len);
2042 var_name[name_len] = 0;
2046 if (var_name !=
NULL)
2074 const char *name_str;
2077 #if defined (SERVER_MODE) 2088 name_len = (name_str !=
NULL) ?
strlen (name_str) : 0;
2096 if (state_p ==
NULL)
2112 if (strncasecmp (var->
name, name_str, name_len) == 0)
2114 *result = var->
value;
2123 char *var_name =
NULL;
2125 var_name = (
char *) malloc (name_len + 1);
2126 if (var_name !=
NULL)
2128 memcpy (var_name, name_str, name_len);
2129 var_name[name_len] = 0;
2134 if (var_name !=
NULL)
2163 if (state_p ==
NULL)
2168 for (i = 0; i <
count; i++)
2189 const char *name_str;
2196 stat_val = perfmon_get_stats_and_clear (thread_p, name_str);
2213 fprintf (stdout,
"\nSESSION COUNT = %zu\n", session_count);
2215 for (state = it.iterate (); state !=
NULL; state = it.iterate ())
2237 fprintf (stdout,
"SESSION ID = %d\n", session->
id);
2240 fprintf (stdout,
"\tLAST_INSERT_ID = %s\n",
db_get_string (&v));
2243 fprintf (stdout,
"\tROW_COUNT = %d\n", session->
row_count);
2245 fprintf (stdout,
"\tAUTO_COMMIT = %d\n", session->
auto_commit);
2247 fprintf (stdout,
"\tSESSION VARIABLES\n");
2249 while (vcurent !=
NULL)
2251 vnext = vcurent->
next;
2256 fprintf (stdout,
"\tPREPRARE STATEMENTS\n");
2258 while (pcurent !=
NULL)
2260 pnext = pcurent->
next;
2265 fprintf (stdout,
"\n");
2286 fprintf (stdout,
"\t\t%s = ", var->
name);
2312 fprintf (stdout,
"\t\t%s = ", stmt_p->
name);
2318 fprintf (stdout,
"sha1 = %08x | %08x | %08x | %08x | %08x\n",
SHA1_AS_ARGS (&stmt_p->
sha1));
2334 if (sqentry_p ==
NULL)
2369 if (qentry_p ==
NULL)
2391 while (tfile_vfid_p)
2401 temp = tfile_vfid_p;
2402 tfile_vfid_p = tfile_vfid_p->
next;
2448 if (state_p ==
NULL)
2455 while (current !=
NULL)
2457 if (current->query_id == qentry_p->
query_id)
2464 current = current->next;
2469 if (sqentry_p ==
NULL)
2499 if (sentry_p ==
NULL)
2531 if (state_p ==
NULL)
2537 while (sentry_p !=
NULL)
2544 sentry_p = sentry_p->
next;
2562 if (state_p ==
NULL)
2568 while (sentry_p !=
NULL)
2570 if (sentry_p->
query_id == query_id)
2587 sentry_p = sentry_p->
next;
2607 if (state_p ==
NULL)
2613 while (sentry_p !=
NULL)
2615 if (sentry_p->
query_id == query_id)
2633 sentry_p = sentry_p->
next;
2652 *max_query_id_uses = 0;
2655 if (state_p ==
NULL)
2660 for (sentry_p = state_p->
queries; sentry_p !=
NULL; sentry_p = sentry_p->
next)
2662 if (*max_query_id_uses < sentry_p->query_id)
2664 *max_query_id_uses = sentry_p->
query_id;
2667 if (sentry_p->
query_id == query_id)
2687 #if defined(SERVER_MODE) 2688 if (thread_p ==
NULL)
2691 if (thread_p ==
NULL)
2697 if (thread_p->conn_entry !=
NULL)
2700 thread_p->conn_entry->session_p = session_p;
2701 thread_p->conn_entry->session_id = session_p->
id;
2720 if (session_p ==
NULL)
2728 for (i = 0; i <
count; i++)
2747 #if defined(SERVER_MODE) 2750 if (thread_p ==
NULL)
2754 if (thread_p !=
NULL && thread_p->conn_entry !=
NULL && thread_p->conn_entry->session_p !=
NULL)
2756 return thread_p->conn_entry->session_p;
2779 if (state_p ==
NULL)
2801 char *trace_str =
NULL;
2804 json_t *plan, *xasl, *stats;
2808 if (state_p ==
NULL)
2826 fprintf (fp,
"\nQuery Plan:\n%s", state_p->
plan_string);
2831 fprintf (fp,
"\nTrace Statistics:\n%s", state_p->
trace_stats);
2839 stats = json_object ();
2846 json_object_set_new (stats,
"Query Plan", plan);
2855 json_object_set_new (stats,
"Trace Statistics", xasl);
2859 trace_str = json_dumps (stats, JSON_INDENT (2) | JSON_PRESERVE_ORDER);
2861 json_object_clear (stats);
2862 json_decref (stats);
2865 if (trace_str !=
NULL)
2893 if (state_p ==
NULL)
2923 if (state_p ==
NULL)
2955 if (session_p ==
NULL)
2964 #if !defined (NDEBUG) && defined (SERVER_MODE) 2973 int ref_count = 0, r;
2976 if (session_p ==
NULL)
3016 #if defined (SERVER_MODE) 3020 if (state_p ==
NULL)
3045 if (state_p ==
NULL)
3051 ATOMIC_INC_32 (&state_p->
ref_count, -1);
3102 if (state_p ==
NULL)
3118 if (state_p ==
NULL)
3134 if (state_p ==
NULL)
3152 #if defined (SERVER_MODE) static int session_drop_variable(SESSION_STATE *state_p, const DB_VALUE *name)
int login_user(THREAD_ENTRY *thread_p, const char *username)
QFILE_LIST_CACHE_ENTRY * list_ent
cubthread::entry * thread_get_thread_entry_info(void)
int db_value_coerce(const DB_VALUE *src, DB_VALUE *dest, const DB_DOMAIN *desired_domain)
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)
static int session_key_compare(void *k1, void *k2)
void session_states_finalize(THREAD_ENTRY *thread_p)
char buf[DB_SMALL_CHAR_BUF_SIZE]
size_t get_element_count() const
#define END_SHARED_ACCESS_ACTIVE_CONN_ANCHOR(r)
#define ER_SES_VARIABLE_NOT_FOUND
int session_get_exec_stats_and_clear(THREAD_ENTRY *thread_p, const DB_VALUE *name, DB_VALUE *result)
#define BO_IS_SERVER_RESTARTED()
static SESSION_QUERY_ENTRY * qentry_to_sentry(QMGR_QUERY_ENTRY *qentry_p)
int session_get_last_insert_id(THREAD_ENTRY *thread_p, DB_VALUE *value, bool update_last_insert_id)
static LF_ENTRY_DESCRIPTOR session_state_Descriptor
#define MAX_PREPARED_STATEMENTS_COUNT
int session_state_create(THREAD_ENTRY *thread_p, SESSION_ID *id)
SESSION_QUERY_ENTRY * queries
int session_get_variable(THREAD_ENTRY *thread_p, const DB_VALUE *name, DB_VALUE *result)
int session_clear_trace_stats(THREAD_ENTRY *thread_p)
static SESSION_STATE * session_get_session_state(THREAD_ENTRY *thread_p)
int db_make_bigint(DB_VALUE *value, const DB_BIGINT num)
int db_get_int(const DB_VALUE *value)
static int session_state_uninit(void *st)
SESSION_QUERY_ENTRY * next
int db_make_varchar(DB_VALUE *value, const int max_char_length, DB_CONST_C_CHAR str, const int char_str_byte_size, const int codeset, const int collation_id)
int db_get_string_collation(const DB_VALUE *value)
LF_TRAN_SYSTEM sessions_Ts
int session_check_session(THREAD_ENTRY *thread_p, const SESSION_ID id)
SESSION_PARAM * session_get_session_parameter(THREAD_ENTRY *thread_p, PARAM_ID id)
static void session_free_sentry_data(THREAD_ENTRY *thread_p, SESSION_QUERY_ENTRY *sentry_p)
static unsigned int session_key_hash(void *key, int hash_table_size)
int session_remove_query_entry_info(THREAD_ENTRY *thread_p, const QUERY_ID query_id)
SESSION_VARIABLE * session_variables
bool thread_need_clear_trace(cubthread::entry *thread_p)
#define assert_release(e)
int session_set_session_parameters(THREAD_ENTRY *thread_p, SESSION_PARAM *session_parameters)
static void free_session_variable(SESSION_VARIABLE *var)
int session_clear_query_entry_info(THREAD_ENTRY *thread_p, const QUERY_ID query_id)
static int session_add_variable(SESSION_STATE *state_p, const DB_VALUE *name, DB_VALUE *value)
static int session_remove_expired_sessions(THREAD_ENTRY *thread_p)
int session_load_query_entry_info(THREAD_ENTRY *thread_p, QMGR_QUERY_ENTRY *qentry_p)
LOG_TDES * LOG_FIND_TDES(int tran_index)
static int session_check_timeout(SESSION_STATE *session_p, SESSION_INFO *active_sessions, bool *remove)
bool erase(cubthread::entry *thread_p, Key &key)
#define DB_VALUE_PRECISION(value)
int session_reset_cur_insert_id(THREAD_ENTRY *thread_p)
static void * session_state_alloc(void)
#define er_log_debug(...)
SESSION_ID last_session_id
int session_drop_session_variables(THREAD_ENTRY *thread_p, DB_VALUE *values, const int count)
void wait_for_completion()
static int session_state_init(void *st)
#define DB_VALUE_SCALE(value)
SESSION_PARAM * session_parameters
#define VFID_ISNULL(vfid_ptr)
struct active_sessions ACTIVE_SESSIONS
void set_user(const char *db_user)
#define SHA1_AS_ARGS(sha1)
bool session_is_queryid_idle(THREAD_ENTRY *thread_p, const QUERY_ID query_id, QUERY_ID *max_query_id_uses)
TZ_REGION * session_get_session_tz_region(THREAD_ENTRY *thread_p)
int db_make_string(DB_VALUE *value, DB_CONST_C_CHAR str)
void port_close_memstream(FILE *fp, char **ptr, size_t *sizeloc)
int session_set_load_session(THREAD_ENTRY *thread_p, load_session *load_session_p)
static DB_VALUE * db_value_alloc_and_copy(const DB_VALUE *src)
manager * get_manager(void)
static cubthread::daemon * session_Control_daemon
PREPARED_STATEMENT * next
int css_get_session_ids_for_active_connections(SESSION_ID **session_ids, int *count)
TP_DOMAIN * tp_domain_resolve_default(DB_TYPE type)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
static void session_dump_prepared_statement(PREPARED_STATEMENT *stmt_p)
#define SESSIONS_HASH_SIZE
int session_get_load_session(THREAD_ENTRY *thread_p, REFPTR(load_session, load_session_ref_ptr))
#define DB_MAX_NUMERIC_PRECISION
session_hashmap_type states_hashmap
void end_tran(cubthread::entry *thread_p)
int session_get_prepared_statement(THREAD_ENTRY *thread_p, const char *name, char **info, int *info_len, xasl_cache_ent **xasl_entry)
int prm_get_integer_value(PARAM_ID prm_id)
T * find(cubthread::entry *thread_p, Key &key)
static void sentry_to_qentry(const SESSION_QUERY_ENTRY *sentry_p, QMGR_QUERY_ENTRY *qentry_p)
QMGR_QUERY_STATUS query_status
bool erase_locked(cubthread::entry *thread_p, Key &key, T *&t)
#define ER_OUT_OF_VIRTUAL_MEMORY
#define START_SHARED_ACCESS_ACTIVE_CONN_ANCHOR(r)
#define pthread_mutex_unlock(a)
int intl_identifier_casecmp(const char *str1, const char *str2)
#define DB_VALUE_DOMAIN_TYPE(value)
void session_states_dump(THREAD_ENTRY *thread_p)
void session_states_init(THREAD_ENTRY *thread_p)
#define TP_IS_NUMERIC_TYPE(typeid)
int session_get_session_parameters(THREAD_ENTRY *thread_p, SESSION_PARAM **session_parameters_ptr)
void thread_set_clear_trace(cubthread::entry *thread_p, bool clear)
#define MAX_SESSION_VARIABLES_COUNT
#define ER_SES_TOO_MANY_VARIABLES
xasl_cache_ent * xasl_ent
static void session_control_daemon_destroy()
TP_DOMAIN_STATUS tp_value_cast(const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain, bool implicit_coercion)
int session_get_trace_stats(THREAD_ENTRY *thread_p, DB_VALUE *result)
bool insert(cubthread::entry *thread_p, Key &key, T *&t)
void file_temp_preserve(THREAD_ENTRY *thread_p, const VFID *vfid)
int session_set_trace_stats(THREAD_ENTRY *thread_p, char *stats, int format)
int pgbuf_assign_private_lru(THREAD_ENTRY *thread_p, bool is_vacuum, const int id)
int session_get_private_lru_idx(const void *session_p)
void init(lf_tran_system &transys, int entry_idx, int hash_size, int freelist_block_size, int freelist_block_count, lf_entry_descriptor &edesc)
#define pthread_mutex_init(a, b)
int session_get_variable_no_copy(THREAD_ENTRY *thread_p, const DB_VALUE *name, DB_VALUE **result)
PREPARED_STATEMENT * statements
need_clear_type need_clear
int pr_clear_value(DB_VALUE *value)
QMGR_TEMP_FILE * temp_file
int session_define_variable(THREAD_ENTRY *thread_p, DB_VALUE *name, DB_VALUE *value, DB_VALUE *result)
DB_DOMAIN * db_type_to_db_domain(const DB_TYPE type)
static void session_dump_variable(SESSION_VARIABLE *var)
CSS_CONN_ENTRY * css_Active_conn_anchor
static ACTIVE_SESSIONS sessions
#define pthread_mutex_destroy(a)
QMGR_TEMP_FILE * temp_vfid
void sysprm_free_session_parameters(SESSION_PARAM **session_parameters_ptr)
const char * envvar_get(const char *name)
static void error(const char *msg)
int session_set_tran_auto_commit(THREAD_ENTRY *thread_p, bool auto_commit)
void qfile_free_list_id(QFILE_LIST_ID *list_id_p)
#define LOG_FIND_THREAD_TRAN_INDEX(thrd)
int session_set_row_count(THREAD_ENTRY *thread_p, const int row_count)
bool is_last_insert_id_generated
int session_get_number_of_holdable_cursors(void)
void destroy_daemon(daemon *&daemon_arg)
int pr_clone_value(const DB_VALUE *src, DB_VALUE *dest)
int db_make_varbit(DB_VALUE *value, const int max_bit_length, DB_CONST_C_BIT bit_str, const int bit_str_bit_size)
#define free_and_init(ptr)
int session_create_prepared_statement(THREAD_ENTRY *thread_p, char *name, char *alias_print, SHA1Hash *sha1, char *info, int info_len)
int db_value_precision(const DB_VALUE *value)
static int session_dump_session(SESSION_STATE *session)
static void session_free_prepared_statement(PREPARED_STATEMENT *stmt_p)
int session_get_session_id(THREAD_ENTRY *thread_p, SESSION_ID *id)
bool prm_get_bool_value(PARAM_ID prm_id)
int session_set_trigger_state(THREAD_ENTRY *thread_p, bool in_trigger)
#define QSTR_IS_ANY_CHAR_OR_BIT(s)
int db_get_string_size(const DB_VALUE *value)
int db_make_varnchar(DB_VALUE *value, const int max_nchar_length, DB_CONST_C_NCHAR str, const int nchar_str_byte_size, const int codeset, const int collation_id)
#define TP_FLOATING_PRECISION_VALUE
#define DB_VALUE_TYPE(value)
int qmgr_free_temp_file_list(THREAD_ENTRY *thread_p, QMGR_TEMP_FILE *tfile_vfid_p, QUERY_ID query_id, bool is_error)
int session_set_cur_insert_id(THREAD_ENTRY *thread_p, const DB_VALUE *value, bool force)
void session_store_query_entry_info(THREAD_ENTRY *thread_p, QMGR_QUERY_ENTRY *qentry_p)
int db_make_null(DB_VALUE *value)
void qfile_close_list(THREAD_ENTRY *thread_p, QFILE_LIST_ID *list_id_p)
#define DB_IS_NULL(value)
static int session_key_increment(void *key, void *existing)
int session_get_row_count(THREAD_ENTRY *thread_p, int *row_count)
static void update_session_variable(SESSION_VARIABLE *var, const DB_VALUE *new_value)
char * strdup(const char *str)
static void session_set_conn_entry_data(THREAD_ENTRY *thread_p, SESSION_STATE *session_p)
static int session_key_copy(void *src, void *dest)
int session_begin_insert_values(THREAD_ENTRY *thread_p)
int db_value_clear(DB_VALUE *value)
int session_delete_prepared_statement(THREAD_ENTRY *thread_p, const char *name)
#define EXPIRED_SESSION_BUFFER_SIZE
session_hashmap_type::iterator session_hashmap_iterator
int db_make_char(DB_VALUE *value, const int char_length, DB_CONST_C_CHAR str, const int char_str_byte_size, const int codeset, const int collation_id)
static void session_control_daemon_init()
static int session_preserve_temporary_files(THREAD_ENTRY *thread_p, SESSION_QUERY_ENTRY *q_entry)
int sysprm_get_session_parameters_count(void)
daemon * create_daemon(const looper &looper_arg, entry_task *exec_p, const char *daemon_name="", entry_manager *context_manager=NULL)
#define ER_IT_PREPARED_NAME_NOT_FOUND
void logtb_set_current_user_active(THREAD_ENTRY *thread_p, bool is_user_active)
load_session * load_session_p
#define ER_SES_SESSION_EXPIRED
#define XASL_ID_SET_NULL(X)
callable_task< entry > entry_callable_task
TZ_REGION session_tz_region
int db_make_bit(DB_VALUE *value, const int bit_length, DB_CONST_C_BIT bit_str, const int bit_str_bit_size)
int pgbuf_release_private_lru(THREAD_ENTRY *thread_p, const int private_idx)
#define LF_EM_USING_MUTEX
int db_get_string_codeset(const DB_VALUE *value)
static int session_state_free(void *st)
DB_CONST_C_CHAR db_get_string(const DB_VALUE *value)
struct db_char::@54 medium
int db_make_nchar(DB_VALUE *value, const int nchar_length, DB_CONST_C_NCHAR str, const int nchar_str_byte_size, const int codeset, const int collation_id)
#define ER_SES_TOO_MANY_STATEMENTS
int db_value_domain_init(DB_VALUE *value, const DB_TYPE type, const int precision, const int scale)
FILE * port_open_memstream(char **ptr, size_t *sizeloc)
int session_set_session_variables(THREAD_ENTRY *thread_p, DB_VALUE *values, const int count)
int session_state_destroy(THREAD_ENTRY *thread_p, const SESSION_ID id)
void session_stop_attached_threads(void *session_arg)