CUBRID Engine  latest
cas_function.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/time.h>
#include <assert.h>
#include "error_manager.h"
#include "cas_common.h"
#include "cas.h"
#include "cas_function.h"
#include "cas_network.h"
#include "cas_net_buf.h"
#include "cas_log.h"
#include "cas_handle.h"
#include "cas_util.h"
#include "cas_execute.h"
#include "perf_monitor.h"
#include "broker_filename.h"
#include "cas_sql_log2.h"
#include "dbtype.h"
#include "object_primitive.h"
#include "ddl_log.h"

Go to the source code of this file.

Functions

static FN_RETURN fn_prepare_internal (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info, int *ret_srv_h_id)
 
static FN_RETURN fn_execute_internal (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info, int *prepared_srv_h_id)
 
static const char * get_schema_type_str (int schema_type)
 
static const char * get_tran_type_str (int tran_type)
 
static void bind_value_print (char type, void *net_value, bool slow_log)
 
static char * get_error_log_eids (int err)
 
static void bind_value_log (struct timeval *log_time, int start, int argc, void **argv, int param_size, char *param_mode, unsigned int query_seq_num, bool slow_log)
 
void set_query_timeout (T_SRV_HANDLE *srv_handle, int query_timeout)
 
int jsp_send_destroy_request_all ()
 
void tran_set_query_timeout (int)
 
bool tran_is_in_libcas (void)
 
static void update_error_query_count (T_APPL_SERVER_INFO *as_info_p, const T_ERROR_INFO *err_info_p)
 
static char logddl_is_exist_ddl_stmt (T_SRV_HANDLE *srv_handle)
 
FN_RETURN fn_end_tran (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_end_session (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_row_count (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_last_insert_id (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_prepare (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_execute (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_prepare_and_execute (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_db_parameter (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_set_db_parameter (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_set_cas_change_mode (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_close_req_handle (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_cursor (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_fetch (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_schema_info (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_oid_get (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_oid_put (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_db_version (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_class_num_objs (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_oid (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_collection (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_next_result (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_execute_batch (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_execute_array (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_cursor_update (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_cursor_close (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_attr_type_str (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_query_info (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_savepoint (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_parameter_info (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_con_close (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_check_cas (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_make_out_rs (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_get_generated_keys (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_lob_new (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_lob_write (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_lob_read (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_deprecated (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 
FN_RETURN fn_not_supported (SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
 

Variables

static const char * tran_type_str [] = { "COMMIT", "ROLLBACK" }
 
static const char * schema_type_str []
 
static const char * type_str_tbl []
 

Function Documentation

static void bind_value_log ( struct timeval *  log_time,
int  start,
int  argc,
void **  argv,
int  param_size,
char *  param_mode,
unsigned int  query_seq_num,
bool  slow_log 
)
static

Definition at line 2156 of file cas_function.c.

References bind_value_print(), cas_log_write2_nonl(), cas_log_write_nonl(), cas_slow_log_write(), cas_slow_log_write2(), net_arg_get_char, NULL, and type_str_tbl.

Referenced by fn_execute_array(), and fn_execute_internal().

Here is the caller graph for this function:

FN_RETURN fn_check_cas ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_con_close ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_cursor ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_cursor_close ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_cursor_update ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_deprecated ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_end_session ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)

Definition at line 278 of file cas_function.c.

References FN_KEEP_CONN, net_buf_cp_int(), NO_ERROR, and NULL.

FN_RETURN fn_execute ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)

Definition at line 415 of file cas_function.c.

References fn_execute_internal(), and NULL.

static FN_RETURN fn_execute_internal ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info,
int *  prepared_srv_h_id 
)
static

Definition at line 423 of file cas_function.c.

References ARG_FILE_LINE, as_info, t_srv_handle::auto_commit_mode, bind_value_log(), CAS_CLIENT_SERVER_SIDE_JDBC, CAS_ER_ARGS, CAS_ER_SRV_HANDLE, CAS_ERROR_INDICATOR, cas_log_debug(), cas_log_write(), cas_log_write_nonl(), cas_log_write_query_string(), CAS_PROTO_MAKE_VER, cas_slow_log_end(), cas_slow_log_write(), cas_slow_log_write_query_string(), t_req_info::client_version, CUBRID_STMT_SELECT, t_appl_server_info::cur_slow_log_mode, t_appl_server_info::cur_sql_log_mode, t_appl_server_info::cur_statement_pooling, db_get_execution_plan(), db_set_execution_plan(), DOES_CLIENT_MATCH_THE_PROTOCOL, DOES_CLIENT_UNDERSTAND_THE_PROTOCOL, DRIVER_INFO_CLIENT_TYPE, err_info, t_error_info::err_number, ERROR_INFO_SET, FALSE, FN_KEEP_CONN, t_srv_handle::forward_only_cursor, get_error_log_eids(), get_tuple_count(), hm_find_srv_handle(), t_srv_handle::is_pooled, jsp_send_destroy_request_all(), t_appl_server_info::log_msg, logddl_is_exist_ddl_stmt(), logddl_set_commit_mode(), logddl_set_err_code(), logddl_set_sql_text(), logddl_set_stmt_type(), t_shm_appl_server::long_query_time, MAX_DIAG_DATA_VALUE, t_shm_appl_server::max_string_length, net_arg_get_cache_time(), net_arg_get_char, net_arg_get_int(), net_arg_get_str(), NET_BUF_ERR_SET, NULL, t_appl_server_info::num_long_queries, t_srv_handle::prepare_flag, PROTOCOL_V1, PROTOCOL_V2, t_srv_handle::q_result, query_start_time, query_timeout, req_info, t_srv_handle::schema_type, set_query_timeout(), shm_appl, SHM_LOG_MSG_SIZE, SLOW_LOG_MODE_ON, SQL_LOG_MODE_NONE, t_srv_handle::sql_stmt, SRV_HANDLE_QUERY_SEQ_NUM, t_query_result::stmt_type, strlen, TRUE, update_error_query_count(), ut_check_timeout(), ut_timeval_diff(), ux_call_info_cp_param_mode(), ux_execute(), ux_execute_all(), ux_execute_call(), and ux_fetch().

Referenced by fn_execute(), and fn_prepare_and_execute().

Here is the caller graph for this function:

FN_RETURN fn_get_attr_type_str ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_get_class_num_objs ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_get_db_version ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_get_generated_keys ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_get_last_insert_id ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)

Definition at line 294 of file cas_function.c.

References FN_KEEP_CONN, and ux_get_last_insert_id().

FN_RETURN fn_get_row_count ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)

Definition at line 287 of file cas_function.c.

References FN_KEEP_CONN, and ux_get_row_count().

FN_RETURN fn_make_out_rs ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)

Definition at line 2076 of file cas_function.c.

References argc, argv, CAS_ER_ARGS, CAS_ERROR_INDICATOR, ERROR_INFO_SET, FN_KEEP_CONN, fn_make_out_rs(), fn_not_supported(), net_arg_get_int(), NET_BUF_ERR_SET, req_info, sock_fd, and ux_make_out_rs().

Referenced by fn_make_out_rs().

Here is the caller graph for this function:

FN_RETURN fn_not_supported ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)

Definition at line 2639 of file cas_function.c.

References CAS_ER_NOT_IMPLEMENTED, CAS_ERROR_INDICATOR, ERROR_INFO_SET, FN_KEEP_CONN, and NET_BUF_ERR_SET.

Referenced by fn_make_out_rs().

Here is the caller graph for this function:

FN_RETURN fn_oid_get ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_oid_put ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_parameter_info ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_prepare ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)

Definition at line 302 of file cas_function.c.

References fn_prepare_internal(), and NULL.

FN_RETURN fn_prepare_and_execute ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
FN_RETURN fn_set_cas_change_mode ( SOCKET  sock_fd,
int  argc,
void **  argv,
T_NET_BUF net_buf,
T_REQ_INFO req_info 
)
static char * get_error_log_eids ( int  err)
static

Definition at line 2460 of file cas_function.c.

References cas_error_log_get_eid(), cas_log_error_handler_asprint(), and NULL.

Referenced by fn_end_tran(), fn_execute_array(), fn_execute_internal(), fn_lob_new(), fn_lob_read(), fn_lob_write(), and fn_prepare_internal().

Here is the caller graph for this function:

static const char * get_schema_type_str ( int  schema_type)
static

Definition at line 2133 of file cas_function.c.

References schema_type_str.

Referenced by fn_schema_info().

Here is the caller graph for this function:

static const char * get_tran_type_str ( int  tran_type)
static

Definition at line 2144 of file cas_function.c.

References tran_type_str.

Referenced by fn_end_tran().

Here is the caller graph for this function:

int jsp_send_destroy_request_all ( )

Definition at line 1963 of file jsp_cl.c.

Referenced by csql_execute_statements(), and fn_execute_internal().

Here is the caller graph for this function:

static char logddl_is_exist_ddl_stmt ( T_SRV_HANDLE srv_handle)
static

Definition at line 2711 of file cas_function.c.

References i, logddl_is_ddl_type(), t_srv_handle::num_q_result, t_srv_handle::q_result, and t_query_result::stmt_type.

Referenced by fn_execute_internal().

Here is the caller graph for this function:

void set_query_timeout ( T_SRV_HANDLE srv_handle,
int  query_timeout 
)
bool tran_is_in_libcas ( void  )

Definition at line 1335 of file transaction_cl.c.

Referenced by set_query_timeout().

Here is the caller graph for this function:

void tran_set_query_timeout ( int  )

Definition at line 1279 of file transaction_cl.c.

Referenced by chksum_start(), and set_query_timeout().

Here is the caller graph for this function:

Variable Documentation

const char* schema_type_str[]
static
Initial value:
= {
"CLASS",
"VCLASS",
"QUERY_SPEC",
"ATTRIBUTE",
"CLASS_ATTRIBUTE",
"METHOD",
"CLASS_METHOD",
"METHOD_FILE",
"SUPERCLASS",
"SUBCLASS",
"CONSTRAINT",
"TRIGGER",
"CLASS_PRIVILEGE",
"ATTR_PRIVILEGE",
"DIRECT_SUPER_CLASS",
"PRIMARY_KEY",
"IMPORTED_KEYS",
"EXPORTED_KEYS",
"CROSS_REFERENCE"
}

Definition at line 94 of file cas_function.c.

Referenced by get_schema_type_str().

const char* tran_type_str[] = { "COMMIT", "ROLLBACK" }
static

Definition at line 90 of file cas_function.c.

Referenced by get_tran_type_str().

const char* type_str_tbl[]
static

Definition at line 116 of file cas_function.c.

Referenced by bind_value_log(), and bind_value_print().