File session.c
FileList > cubrid > src > session > session.c
Go to the source code of this file
#include <assert.h>
#include <sys/time.h>
#include <sys/resource.h>
#include "system.h"
#include "session.h"
#include "boot_sr.h"
#include "jansson.h"
#include "critical_section.h"
#include "error_manager.h"
#include "system_parameter.h"
#include "environment_variable.h"
#include "connection_sr.h"
#include "lock_free.h"
#include "object_primitive.h"
#include "dbtype.h"
#include "string_opfunc.h"
#include "thread_daemon.hpp"
#include "thread_entry_task.hpp"
#include "thread_lockfree_hash_map.hpp"
#include "thread_manager.hpp"
#include "xasl_cache.h"
#include "pl_session.hpp"
#include "memory_wrapper.hpp"
Classes
Public Types
Public Static Attributes
Public Functions
| Type |
Name |
|
REGISTER_DAEMON (session_control)
|
| int |
login_user (THREAD_ENTRY * thread_p, const char * username)
|
| int |
session_begin_insert_values (THREAD_ENTRY * thread_p)
|
| int |
session_check_session (THREAD_ENTRY * thread_p, const SESSION_ID id)
|
| int |
session_clear_query_entry_info (THREAD_ENTRY * thread_p, const QUERY_ID query_id)
|
| int |
session_clear_trace_stats (THREAD_ENTRY * thread_p)
|
| void |
session_control_daemon_execute (cubthread::entry & thread_ref)
|
| int |
session_create_prepared_statement (THREAD_ENTRY * thread_p, char * name, char * alias_print, SHA1Hash * sha1, char * info, int info_len)
|
| int |
session_define_variable (THREAD_ENTRY * thread_p, DB_VALUE * name, DB_VALUE * value, DB_VALUE * result)
|
| int |
session_delete_prepared_statement (THREAD_ENTRY * thread_p, const char * name)
|
| int |
session_drop_session_variables (THREAD_ENTRY * thread_p, DB_VALUE * values, const int count)
|
| int |
session_get_exec_stats_and_clear (THREAD_ENTRY * thread_p, const DB_VALUE * name, DB_VALUE * result)
|
| int |
session_get_last_insert_id (THREAD_ENTRY * thread_p, DB_VALUE * value, bool update_last_insert_id)
|
| int |
session_get_load_session (THREAD_ENTRY * thread_p, REFPTR(load_session, load_session_ref_ptr))
|
| int |
session_get_number_of_holdable_cursors (void)
|
| int |
session_get_pl_session (THREAD_ENTRY * thread_p, REFPTR(PL_SESSION, pl_session_ref_ptr))
|
| int |
session_get_prepared_statement (THREAD_ENTRY * thread_p, const char * name, char ** info, int * info_len, xasl_cache_ent ** xasl_entry)
|
| int |
session_get_private_lru_idx (const void * session_p)
|
| int |
session_get_row_count (THREAD_ENTRY * thread_p, int * row_count)
|
| int |
session_get_session_id (THREAD_ENTRY * thread_p, SESSION_ID * id)
|
| SESSION_PARAM * |
session_get_session_parameter (THREAD_ENTRY * thread_p, PARAM_ID id)
|
| int |
session_get_session_parameters (THREAD_ENTRY * thread_p, SESSION_PARAM ** session_parameters_ptr)
|
| TZ_REGION * |
session_get_session_tz_region (THREAD_ENTRY * thread_p)
|
| int |
session_get_trace_stats (THREAD_ENTRY * thread_p, DB_VALUE * result)
|
| int |
session_get_variable (THREAD_ENTRY * thread_p, const DB_VALUE * name, DB_VALUE * result)
|
| int |
session_get_variable_no_copy (THREAD_ENTRY * thread_p, const DB_VALUE * name, DB_VALUE ** result)
|
| bool |
session_is_pl_session_running (THREAD_ENTRY * thread_p)
|
| bool |
session_is_queryid_idle (THREAD_ENTRY * thread_p, const QUERY_ID query_id, QUERY_ID * max_query_id_uses)
|
| int |
session_load_query_entry_info (THREAD_ENTRY * thread_p, QMGR_QUERY_ENTRY * qentry_p)
|
| void |
session_remove_query_entry_all (THREAD_ENTRY * thread_p)
|
| int |
session_remove_query_entry_info (THREAD_ENTRY * thread_p, const QUERY_ID query_id)
|
| int |
session_reset_cur_insert_id (THREAD_ENTRY * thread_p)
|
| int |
session_set_cur_insert_id (THREAD_ENTRY * thread_p, const DB_VALUE * value, bool force)
|
| int |
session_set_is_keep_session (THREAD_ENTRY * thread_p, bool is_keep_session)
|
| int |
session_set_load_session (THREAD_ENTRY * thread_p, load_session * load_session_p)
|
| int |
session_set_pl_session_parameter (THREAD_ENTRY * thread_p, PARAM_ID id)
|
| int |
session_set_row_count (THREAD_ENTRY * thread_p, const int row_count)
|
| int |
session_set_session_parameters (THREAD_ENTRY * thread_p, SESSION_PARAM * session_parameters)
|
| int |
session_set_session_variables (THREAD_ENTRY * thread_p, DB_VALUE * values, const int count)
|
| int |
session_set_trace_stats (THREAD_ENTRY * thread_p, char * stats, int format)
|
| int |
session_set_tran_auto_commit (THREAD_ENTRY * thread_p, bool auto_commit)
|
| int |
session_set_trigger_state (THREAD_ENTRY * thread_p, bool in_trigger)
|
| int |
session_state_create (THREAD_ENTRY * thread_p, SESSION_ID * id)
|
| int |
session_state_decrease_ref_count (THREAD_ENTRY * thread_p, SESSION_STATE * state_p)
|
| int |
session_state_destroy (THREAD_ENTRY * thread_p, const SESSION_ID id, bool is_keep_session)
|
| int |
session_state_increase_ref_count (THREAD_ENTRY * thread_p, SESSION_STATE * state_p)
|
| void |
session_states_dump (THREAD_ENTRY * thread_p)
|
| void |
session_states_finalize (THREAD_ENTRY * thread_p)
|
| void |
session_states_init (THREAD_ENTRY * thread_p)
|
| void |
session_stop_attached_threads (THREAD_ENTRY * thread_p, void * session_arg)
|
| void |
session_store_query_entry_info (THREAD_ENTRY * thread_p, QMGR_QUERY_ENTRY * qentry_p)
|
Public Static Functions
| Type |
Name |
| DB_VALUE * |
db_value_alloc_and_copy (const DB_VALUE * src)
|
| void |
free_session_variable (SESSION_VARIABLE * var)
|
| SESSION_QUERY_ENTRY * |
qentry_to_sentry (QMGR_QUERY_ENTRY * qentry_p)
|
| void |
sentry_to_qentry (const SESSION_QUERY_ENTRY * sentry_p, QMGR_QUERY_ENTRY * qentry_p)
|
| int |
session_add_variable (SESSION_STATE * state_p, const DB_VALUE * name, DB_VALUE * value)
|
| int |
session_check_timeout (SESSION_STATE * session_p, SESSION_INFO * active_sessions, bool * remove)
|
| void |
session_control_daemon_destroy ()
|
| void |
session_control_daemon_init ()
|
| int |
session_drop_variable (SESSION_STATE * state_p, const DB_VALUE * name)
|
| void |
session_dump_prepared_statement (PREPARED_STATEMENT * stmt_p)
|
| int |
session_dump_session (SESSION_STATE * session)
|
| void |
session_dump_variable (SESSION_VARIABLE * var)
|
| void |
session_free_prepared_statement (PREPARED_STATEMENT * stmt_p)
|
| void |
session_free_sentry_data (THREAD_ENTRY * thread_p, SESSION_QUERY_ENTRY * sentry_p)
|
| SESSION_STATE * |
session_get_session_state (THREAD_ENTRY * thread_p)
|
| int |
session_key_compare (void * k1, void * k2)
|
| int |
session_key_copy (void * src, void * dest)
|
| unsigned int |
session_key_hash (void * key, int hash_table_size)
|
| int |
session_key_increment (void * key, void * existing)
|
| int |
session_preserve_temporary_files (THREAD_ENTRY * thread_p, SESSION_QUERY_ENTRY * q_entry)
|
| int |
session_remove_expired_sessions (THREAD_ENTRY * thread_p)
|
| void |
session_set_conn_entry_data (THREAD_ENTRY * thread_p, SESSION_STATE * session_p)
|
| void * |
session_state_alloc (void)
|
| int |
session_state_free (void * st)
|
| int |
session_state_init (void * st)
|
| int |
session_state_uninit (void * st)
|
| int |
session_state_verify_ref_count (THREAD_ENTRY * thread_p, SESSION_STATE * session_p)
|
| void |
update_session_variable (SESSION_VARIABLE * var, const DB_VALUE * new_value)
|
Macros
Public Types Documentation
typedef ACTIVE_SESSIONS
typedef struct active_sessions ACTIVE_SESSIONS;
typedef PREPARED_STATEMENT
typedef struct prepared_statement PREPARED_STATEMENT;
typedef SESSION_INFO
typedef struct session_info SESSION_INFO;
typedef SESSION_QUERY_ENTRY
typedef struct session_query_entry SESSION_QUERY_ENTRY;
typedef SESSION_STATE
typedef struct session_state SESSION_STATE;
typedef SESSION_VARIABLE
typedef struct session_variable SESSION_VARIABLE;
typedef session_hashmap_iterator
using session_hashmap_iterator = session_hashmap_type::iterator;
typedef session_hashmap_type
using session_hashmap_type = cubthread::lockfree_hashmap<SESSION_ID, session_state>;
Public Static Attributes Documentation
variable session_Control_daemon
cubthread::daemon* session_Control_daemon;
variable session_state_Descriptor
LF_ENTRY_DESCRIPTOR session_state_Descriptor;
variable sessions
ACTIVE_SESSIONS sessions;
Public Functions Documentation
function REGISTER_DAEMON
REGISTER_DAEMON (
session_control
)
function login_user
int login_user (
THREAD_ENTRY * thread_p,
const char * username
)
function session_begin_insert_values
int session_begin_insert_values (
THREAD_ENTRY * thread_p
)
function session_check_session
int session_check_session (
THREAD_ENTRY * thread_p,
const SESSION_ID id
)
function session_clear_query_entry_info
int session_clear_query_entry_info (
THREAD_ENTRY * thread_p,
const QUERY_ID query_id
)
function session_clear_trace_stats
int session_clear_trace_stats (
THREAD_ENTRY * thread_p
)
function session_control_daemon_execute
void session_control_daemon_execute (
cubthread::entry & thread_ref
)
function session_create_prepared_statement
int session_create_prepared_statement (
THREAD_ENTRY * thread_p,
char * name,
char * alias_print,
SHA1Hash * sha1,
char * info,
int info_len
)
function session_define_variable
int session_define_variable (
THREAD_ENTRY * thread_p,
DB_VALUE * name,
DB_VALUE * value,
DB_VALUE * result
)
function session_delete_prepared_statement
int session_delete_prepared_statement (
THREAD_ENTRY * thread_p,
const char * name
)
function session_drop_session_variables
int session_drop_session_variables (
THREAD_ENTRY * thread_p,
DB_VALUE * values,
const int count
)
function session_get_exec_stats_and_clear
int session_get_exec_stats_and_clear (
THREAD_ENTRY * thread_p,
const DB_VALUE * name,
DB_VALUE * result
)
function session_get_last_insert_id
int session_get_last_insert_id (
THREAD_ENTRY * thread_p,
DB_VALUE * value,
bool update_last_insert_id
)
function session_get_load_session
int session_get_load_session (
THREAD_ENTRY * thread_p,
REFPTR ( load_session , load_session_ref_ptr )
)
function session_get_number_of_holdable_cursors
int session_get_number_of_holdable_cursors (
void
)
function session_get_pl_session
int session_get_pl_session (
THREAD_ENTRY * thread_p,
REFPTR ( PL_SESSION , pl_session_ref_ptr )
)
function session_get_prepared_statement
int session_get_prepared_statement (
THREAD_ENTRY * thread_p,
const char * name,
char ** info,
int * info_len,
xasl_cache_ent ** xasl_entry
)
function session_get_private_lru_idx
int session_get_private_lru_idx (
const void * session_p
)
function session_get_row_count
int session_get_row_count (
THREAD_ENTRY * thread_p,
int * row_count
)
function session_get_session_id
int session_get_session_id (
THREAD_ENTRY * thread_p,
SESSION_ID * id
)
function session_get_session_parameter
SESSION_PARAM * session_get_session_parameter (
THREAD_ENTRY * thread_p,
PARAM_ID id
)
function session_get_session_parameters
int session_get_session_parameters (
THREAD_ENTRY * thread_p,
SESSION_PARAM ** session_parameters_ptr
)
function session_get_session_tz_region
TZ_REGION * session_get_session_tz_region (
THREAD_ENTRY * thread_p
)
function session_get_trace_stats
int session_get_trace_stats (
THREAD_ENTRY * thread_p,
DB_VALUE * result
)
function session_get_variable
int session_get_variable (
THREAD_ENTRY * thread_p,
const DB_VALUE * name,
DB_VALUE * result
)
function session_get_variable_no_copy
int session_get_variable_no_copy (
THREAD_ENTRY * thread_p,
const DB_VALUE * name,
DB_VALUE ** result
)
function session_is_pl_session_running
bool session_is_pl_session_running (
THREAD_ENTRY * thread_p
)
function session_is_queryid_idle
bool session_is_queryid_idle (
THREAD_ENTRY * thread_p,
const QUERY_ID query_id,
QUERY_ID * max_query_id_uses
)
function session_load_query_entry_info
int session_load_query_entry_info (
THREAD_ENTRY * thread_p,
QMGR_QUERY_ENTRY * qentry_p
)
function session_remove_query_entry_all
void session_remove_query_entry_all (
THREAD_ENTRY * thread_p
)
function session_remove_query_entry_info
int session_remove_query_entry_info (
THREAD_ENTRY * thread_p,
const QUERY_ID query_id
)
function session_reset_cur_insert_id
int session_reset_cur_insert_id (
THREAD_ENTRY * thread_p
)
function session_set_cur_insert_id
int session_set_cur_insert_id (
THREAD_ENTRY * thread_p,
const DB_VALUE * value,
bool force
)
function session_set_is_keep_session
int session_set_is_keep_session (
THREAD_ENTRY * thread_p,
bool is_keep_session
)
function session_set_load_session
int session_set_load_session (
THREAD_ENTRY * thread_p,
load_session * load_session_p
)
function session_set_pl_session_parameter
int session_set_pl_session_parameter (
THREAD_ENTRY * thread_p,
PARAM_ID id
)
function session_set_row_count
int session_set_row_count (
THREAD_ENTRY * thread_p,
const int row_count
)
function session_set_session_parameters
int session_set_session_parameters (
THREAD_ENTRY * thread_p,
SESSION_PARAM * session_parameters
)
function session_set_session_variables
int session_set_session_variables (
THREAD_ENTRY * thread_p,
DB_VALUE * values,
const int count
)
function session_set_trace_stats
int session_set_trace_stats (
THREAD_ENTRY * thread_p,
char * stats,
int format
)
function session_set_tran_auto_commit
int session_set_tran_auto_commit (
THREAD_ENTRY * thread_p,
bool auto_commit
)
function session_set_trigger_state
int session_set_trigger_state (
THREAD_ENTRY * thread_p,
bool in_trigger
)
function session_state_create
int session_state_create (
THREAD_ENTRY * thread_p,
SESSION_ID * id
)
function session_state_decrease_ref_count
int session_state_decrease_ref_count (
THREAD_ENTRY * thread_p,
SESSION_STATE * state_p
)
function session_state_destroy
int session_state_destroy (
THREAD_ENTRY * thread_p,
const SESSION_ID id,
bool is_keep_session
)
function session_state_increase_ref_count
int session_state_increase_ref_count (
THREAD_ENTRY * thread_p,
SESSION_STATE * state_p
)
function session_states_dump
void session_states_dump (
THREAD_ENTRY * thread_p
)
function session_states_finalize
void session_states_finalize (
THREAD_ENTRY * thread_p
)
function session_states_init
void session_states_init (
THREAD_ENTRY * thread_p
)
function session_stop_attached_threads
void session_stop_attached_threads (
THREAD_ENTRY * thread_p,
void * session_arg
)
function session_store_query_entry_info
void session_store_query_entry_info (
THREAD_ENTRY * thread_p,
QMGR_QUERY_ENTRY * qentry_p
)
Public Static Functions Documentation
function db_value_alloc_and_copy
static DB_VALUE * db_value_alloc_and_copy (
const DB_VALUE * src
)
function free_session_variable
static void free_session_variable (
SESSION_VARIABLE * var
)
function qentry_to_sentry
static SESSION_QUERY_ENTRY * qentry_to_sentry (
QMGR_QUERY_ENTRY * qentry_p
)
function sentry_to_qentry
static void sentry_to_qentry (
const SESSION_QUERY_ENTRY * sentry_p,
QMGR_QUERY_ENTRY * qentry_p
)
function session_add_variable
static int session_add_variable (
SESSION_STATE * state_p,
const DB_VALUE * name,
DB_VALUE * value
)
function session_check_timeout
static int session_check_timeout (
SESSION_STATE * session_p,
SESSION_INFO * active_sessions,
bool * remove
)
function session_control_daemon_destroy
static void session_control_daemon_destroy ()
function session_control_daemon_init
static void session_control_daemon_init ()
function session_drop_variable
static int session_drop_variable (
SESSION_STATE * state_p,
const DB_VALUE * name
)
function session_dump_prepared_statement
static void session_dump_prepared_statement (
PREPARED_STATEMENT * stmt_p
)
function session_dump_session
static int session_dump_session (
SESSION_STATE * session
)
function session_dump_variable
static void session_dump_variable (
SESSION_VARIABLE * var
)
function session_free_prepared_statement
static void session_free_prepared_statement (
PREPARED_STATEMENT * stmt_p
)
function session_free_sentry_data
static void session_free_sentry_data (
THREAD_ENTRY * thread_p,
SESSION_QUERY_ENTRY * sentry_p
)
function session_get_session_state
static SESSION_STATE * session_get_session_state (
THREAD_ENTRY * thread_p
)
function session_key_compare
static int session_key_compare (
void * k1,
void * k2
)
function session_key_copy
static int session_key_copy (
void * src,
void * dest
)
function session_key_hash
static unsigned int session_key_hash (
void * key,
int hash_table_size
)
function session_key_increment
static int session_key_increment (
void * key,
void * existing
)
function session_preserve_temporary_files
static int session_preserve_temporary_files (
THREAD_ENTRY * thread_p,
SESSION_QUERY_ENTRY * q_entry
)
function session_remove_expired_sessions
static int session_remove_expired_sessions (
THREAD_ENTRY * thread_p
)
function session_set_conn_entry_data
static void session_set_conn_entry_data (
THREAD_ENTRY * thread_p,
SESSION_STATE * session_p
)
function session_state_alloc
static void * session_state_alloc (
void
)
function session_state_free
static int session_state_free (
void * st
)
function session_state_init
static int session_state_init (
void * st
)
function session_state_uninit
static int session_state_uninit (
void * st
)
function session_state_verify_ref_count
static int session_state_verify_ref_count (
THREAD_ENTRY * thread_p,
SESSION_STATE * session_p
)
function update_session_variable
static void update_session_variable (
SESSION_VARIABLE * var,
const DB_VALUE * new_value
)
Macro Definition Documentation
define EXPIRED_SESSION_BUFFER_SIZE
#define EXPIRED_SESSION_BUFFER_SIZE `1024`
define MAX_PREPARED_STATEMENTS_COUNT
#define MAX_PREPARED_STATEMENTS_COUNT `20`
define MAX_SESSION_VARIABLES_COUNT
#define MAX_SESSION_VARIABLES_COUNT `20`
define SESSIONS_HASH_SIZE
#define SESSIONS_HASH_SIZE `1000`
The documentation for this class was generated from the following file cubrid/src/session/session.c