32 #include <sys/timeb.h> 52 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 67 int *prepared_srv_h_id);
72 #ifndef LIBCAS_FOR_JSP 74 char *param_mode,
unsigned int query_seq_num,
bool slow_log);
76 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 83 #ifndef LIBCAS_FOR_JSP 109 "DIRECT_SUPER_CLASS",
159 int elapsed_sec = 0, elapsed_msec = 0;
160 struct timeval end_tran_begin, end_tran_end;
161 #ifndef LIBCAS_FOR_JSP 173 if (tran_type != CCI_TRAN_COMMIT && tran_type != CCI_TRAN_ROLLBACK)
182 gettimeofday (&end_tran_begin,
NULL);
192 gettimeofday (&end_tran_end,
NULL);
193 ut_timeval_diff (&end_tran_begin, &end_tran_end, &elapsed_sec, &elapsed_msec);
212 #ifndef LIBCAS_FOR_JSP 220 if (err_code < 0 || errors_in_transaction > 0)
276 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 314 char auto_commit_mode;
337 for (i = 3; i <
argc; i++)
339 int deferred_close_handle;
341 cas_log_write (0,
true,
"close_req_handle srv_h_id %d", deferred_close_handle);
348 auto_commit_mode =
FALSE;
357 #ifndef LIBCAS_FOR_JSP 365 #ifndef LIBCAS_FOR_JSP 390 if (ret_srv_h_id !=
NULL)
393 *ret_srv_h_id = srv_h_id;
404 #ifndef LIBCAS_FOR_JSP 424 int *prepared_srv_h_id)
429 int bind_value_index;
432 int param_mode_size = 0;
433 char forward_only_cursor = 0;
434 char auto_commit_mode = 0;
435 char *param_mode =
NULL;
437 const char *exec_func_name;
441 CACHE_TIME clt_cache_time, *clt_cache_time_ptr;
442 int client_cache_reusable =
FALSE;
443 int elapsed_sec = 0, elapsed_msec = 0;
444 struct timeval exec_begin, exec_end;
445 int app_query_timeout;
446 bool client_supports_query_timeout =
false;
448 int err_number_execute;
452 #ifndef LIBCAS_FOR_JSP 453 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 458 bind_value_index = 9;
465 client_supports_query_timeout =
true;
469 argc_mod_2 = bind_value_index % 2;
471 if ((argc < bind_value_index) || (argc % 2 != argc_mod_2))
478 if (prepared_srv_h_id !=
NULL)
480 srv_h_id = *prepared_srv_h_id;
488 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 489 if (srv_handle ==
NULL)
499 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 500 srv_handle->next_cursor_pos = 1;
507 if (prepared_srv_h_id !=
NULL)
509 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 524 auto_commit_mode =
true;
525 forward_only_cursor =
true;
529 auto_commit_mode =
false;
530 forward_only_cursor =
false;
538 #if defined(CAS_FOR_ORACLE) 540 #elif defined(CAS_FOR_MYSQL) 541 if (srv_handle->stmt_type ==
CUBRID_STMT_SELECT || srv_handle->stmt_type == CUBRID_STMT_CALL_SP)
564 clt_cache_time_ptr = &clt_cache_time;
567 if (client_supports_query_timeout ==
true)
574 app_query_timeout *= 1000;
579 app_query_timeout = 0;
582 #ifndef LIBCAS_FOR_JSP 590 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 600 exec_func_name =
"execute_call";
602 #if !defined(CAS_FOR_MYSQL) 609 else if (flag & CCI_EXEC_QUERY_ALL)
611 exec_func_name =
"execute_all";
616 exec_func_name =
"execute";
620 #ifndef LIBCAS_FOR_JSP 635 forward_only_cursor ?
"forward_only_cursor " :
"");
637 #ifndef LIBCAS_FOR_JSP 645 #ifndef LIBCAS_FOR_JSP 666 gettimeofday (&exec_begin,
NULL);
669 (*ux_exec_func) (srv_handle, flag, max_col_size, max_row, argc - bind_value_index, argv + bind_value_index, net_buf,
670 req_info, clt_cache_time_ptr, &client_cache_reusable);
671 gettimeofday (&exec_end,
NULL);
677 if (fetch_flag && ret_code >= 0 && client_cache_reusable ==
FALSE)
679 #if defined(CAS_FOR_MYSQL) 683 ux_fetch (srv_handle, 1, 50, 0, 0, net_buf, req_info);
684 #if defined(CAS_FOR_MYSQL) 690 (ret_code < 0) ?
"error:" :
"", err_number_execute,
get_tuple_count (srv_handle), elapsed_sec,
691 elapsed_msec, (client_cache_reusable ==
TRUE) ?
" (CC)" :
"",
692 (srv_handle->use_query_cache ==
true) ?
" (QC)" :
"", eid_string);
694 if (strcmp (exec_func_name,
"execute_call") != 0)
700 #ifndef LIBCAS_FOR_JSP 701 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 723 exec_func_name, srv_h_id);
724 if (srv_handle->sql_stmt !=
NULL)
731 "%s %s%d tuple %d time %d.%03d%s%s%s\n", exec_func_name, (ret_code < 0) ?
"error:" :
"",
732 err_number_execute,
get_tuple_count (srv_handle), elapsed_sec, elapsed_msec,
733 (client_cache_reusable ==
TRUE) ?
" (CC)" :
"",
734 (srv_handle->use_query_cache ==
true) ?
" (QC)" :
"", eid_string);
735 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 736 if (plan !=
NULL && plan[0] !=
'\0')
746 #ifndef LIBCAS_FOR_JSP 750 srv_handle->is_pooled =
TRUE;
753 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 754 if (plan !=
NULL && plan[0] !=
'\0')
774 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 778 int prepare_argc_count;
787 goto prepare_and_execute_end;
791 fn_execute_internal (sock_fd, 10, argv + 1 + prepare_argc_count, net_buf, req_info, &srv_h_id);
799 prepare_and_execute_end:
817 if (param_name == CCI_PARAM_ISOLATION_LEVEL)
822 cas_log_write (0,
true,
"get_db_parameter isolation_level %d", isol_level);
827 else if (param_name == CCI_PARAM_LOCK_TIMEOUT)
830 char lock_timeout_string[32];
834 if (lock_timeout == 0)
836 sprintf (lock_timeout_string,
"0 (No wait)");
838 else if (lock_timeout == -1)
840 sprintf (lock_timeout_string,
"-1 (Infinite wait)");
844 sprintf (lock_timeout_string,
"%d ms", lock_timeout);
847 cas_log_write (0,
true,
"get_db_parameter lock_timeout %s", lock_timeout_string);
852 if (lock_timeout > 0)
855 lock_timeout /= 1000;
860 else if (param_name == CCI_PARAM_MAX_STRING_LENGTH)
862 #ifndef LIBCAS_FOR_JSP 873 else if (param_name == CCI_PARAM_NO_BACKSLASH_ESCAPES)
875 int no_backslash_escapes;
877 no_backslash_escapes =
880 cas_log_write (0,
true,
"get_db_parameter no_backslash_escapes %s",
910 if (param_name == CCI_PARAM_ISOLATION_LEVEL)
916 cas_log_write (0,
true,
"set_db_parameter isolation_level %d", isol_level);
923 else if (param_name == CCI_PARAM_LOCK_TIMEOUT)
926 char lock_timeout_string[32];
930 if (lock_timeout == -2)
935 if (lock_timeout < -1)
944 if (lock_timeout == 0)
946 sprintf (lock_timeout_string,
"0 (No wait)");
948 else if (lock_timeout == -1)
950 sprintf (lock_timeout_string,
"-1 (Infinite wait)");
954 sprintf (lock_timeout_string,
"%d ms", lock_timeout);
957 cas_log_write (0,
true,
"set_db_parameter lock_timeout %s", lock_timeout_string);
961 else if (param_name == CCI_PARAM_AUTO_COMMIT)
967 #ifndef LIBCAS_FOR_JSP 973 cas_log_write (0,
true,
"set_db_parameter auto_commit %d", auto_commit);
1022 char auto_commit_mode =
FALSE;
1038 #ifndef LIBCAS_FOR_JSP 1040 if (auto_commit_mode ==
TRUE)
1058 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1077 ux_cursor (srv_h_id, offset, origin, net_buf);
1091 int result_set_index;
1096 if (argc < func_args)
1111 if (srv_handle ==
NULL)
1119 srv_h_id, cursor_pos, fetch_count);
1121 ux_fetch (srv_handle, cursor_pos, fetch_count, fetch_flag, result_set_index, net_buf, req_info);
1126 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1133 int arg1_size, arg2_size;
1158 (arg1 ? arg1 :
"NULL"), (arg2 ? arg2 :
"NULL"), flag);
1171 short slotid, volid;
1185 cas_log_write (0,
true,
"oid_get @%d|%d|%d %s", pageid, slotid, volid, (ret < 0 ?
"ERR" :
""));
1192 if (argc < 3 || argc % 3 != 1)
1211 char auto_commit_mode;
1225 #ifndef LIBCAS_FOR_JSP 1226 if (auto_commit_mode ==
TRUE)
1235 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1241 int class_name_size;
1266 char *res_msg =
NULL;
1276 if (cmd != CCI_OID_IS_INSTANCE)
1284 if (cmd == CCI_OID_DROP)
1294 else if (cmd == CCI_OID_IS_INSTANCE)
1311 if (err_code == -48)
1316 else if (cmd == CCI_OID_LOCK_READ)
1326 else if (cmd == CCI_OID_LOCK_WRITE)
1336 else if (cmd == CCI_OID_CLASS_NAME)
1345 if (res_msg ==
NULL)
1348 res_msg = (
char *)
"";
1369 if (cmd == CCI_OID_CLASS_NAME)
1387 char *attr_name = (
char *)
"";
1388 int attr_name_size = 0, seq_index = 0;
1394 char col_type, ele_type, db_type;
1423 case CCI_COL_SET_DROP:
1424 case CCI_COL_SET_ADD:
1436 case CCI_COL_SEQ_DROP:
1447 case CCI_COL_SEQ_INSERT:
1448 case CCI_COL_SEQ_PUT:
1471 if (attr_name_size < 1)
1485 if (col_type != CCI_U_TYPE_SET && col_type != CCI_U_TYPE_MULTISET && col_type != CCI_U_TYPE_SEQUENCE)
1498 err_code =
db_get (obj, attr_name, &val);
1513 if (value_index > 0)
1515 err_code =
make_bind_value (1, 2, argv + value_index, &ele_val, net_buf, db_type);
1526 ux_col_get (collection, col_type, ele_type, ele_domain, net_buf);
1531 case CCI_COL_SET_DROP:
1534 case CCI_COL_SET_ADD:
1537 case CCI_COL_SEQ_DROP:
1540 case CCI_COL_SEQ_INSERT:
1543 case CCI_COL_SEQ_PUT:
1544 err_code =
ux_col_seq_put (collection, seq_index, ele_val, net_buf);
1552 case CCI_COL_SET_DROP:
1553 case CCI_COL_SET_ADD:
1554 case CCI_COL_SEQ_DROP:
1555 case CCI_COL_SEQ_INSERT:
1556 case CCI_COL_SEQ_PUT:
1558 db_put (obj, attr_name, &val);
1590 if (argc < func_args)
1601 if (srv_handle ==
NULL)
1620 char auto_commit_mode;
1638 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1643 cas_log_write (0,
true,
"execute_batch %d", argc - arg_index);
1644 ux_execute_batch (argc - arg_index, argv + arg_index, net_buf, req_info, auto_commit_mode);
1658 int elapsed_sec = 0, elapsed_msec = 0;
1659 struct timeval exec_begin, exec_end;
1661 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1664 int driver_query_timeout;
1666 char auto_commit_mode;
1677 if (argc < min_argc)
1687 if (srv_handle ==
NULL)
1693 #ifndef LIBCAS_FOR_JSP 1707 driver_query_timeout = 0;
1710 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1718 if (auto_commit_mode ==
TRUE)
1725 (argc - arg_index) / 2);
1731 #ifndef LIBCAS_FOR_JSP 1738 gettimeofday (&exec_begin,
NULL);
1740 ret_code =
ux_execute_array (srv_handle, argc - arg_index, argv + arg_index, net_buf, req_info);
1742 gettimeofday (&exec_end,
NULL);
1743 ut_timeval_diff (&exec_begin, &exec_end, &elapsed_sec, &elapsed_msec);
1748 elapsed_msec,
"", (srv_handle->
use_query_cache ==
true) ?
" (QC)" :
"", eid_string);
1750 #ifndef LIBCAS_FOR_JSP 1770 "execute_array srv_h_id %d %d ", srv_h_id, (argc - 2) / 2);
1778 "execute_array %s%d tuple %d time %d.%03d%s%s%s\n", (ret_code < 0) ?
"error:" :
"",
1782 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1785 if (plan !=
NULL && plan[0] !=
'\0')
1801 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 1878 int srv_h_id, size, stmt_id,
err;
1879 char *sql_stmt =
NULL;
1897 if (sql_stmt !=
NULL)
1950 if (sql_stmt !=
NULL)
1964 char *savepoint_name;
1965 int savepoint_name_size;
1976 if (savepoint_name ==
NULL)
1977 savepoint_name = (
char *)
"";
1986 cas_log_write (0,
true,
"rollback_savepoint %s", savepoint_name);
2074 #if !defined(CAS_FOR_MYSQL) 2100 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 2117 if (srv_handle ==
NULL)
2135 if (schema_type < 1 || schema_type > CCI_SCH_LAST)
2146 if (tran_type < 1 || tran_type > 2)
2154 #ifndef LIBCAS_FOR_JSP 2157 unsigned int query_seq_num,
bool slow_log)
2163 const char *param_mode_str;
2164 void (*write2_func) (
const char *, ...);
2181 net_value = argv[idx++];
2183 param_mode_str =
"";
2184 if (param_mode !=
NULL && param_size >= num_bind)
2186 if (param_mode[num_bind - 1] == CCI_PARAM_MODE_IN)
2187 param_mode_str =
"(IN) ";
2188 else if (param_mode[num_bind - 1] == CCI_PARAM_MODE_OUT)
2189 param_mode_str =
"(OUT) ";
2190 else if (param_mode[num_bind - 1] == CCI_PARAM_MODE_INOUT)
2191 param_mode_str =
"(INOUT) ";
2196 cas_slow_log_write (log_time, query_seq_num,
false,
"bind %d %s: ", num_bind++, param_mode_str);
2200 cas_log_write_nonl (query_seq_num,
false,
"bind %d %s: ", num_bind++, param_mode_str);
2203 if (type > CCI_U_TYPE_FIRST && type <= CCI_U_TYPE_LAST)
2210 write2_func (
"NULL");
2221 void (*write2_func) (
const char *, ...);
2222 void (*fwrite_func) (
char *value,
int size);
2238 type = CCI_U_TYPE_NULL;
2244 case CCI_U_TYPE_CHAR:
2245 case CCI_U_TYPE_STRING:
2246 case CCI_U_TYPE_NCHAR:
2247 case CCI_U_TYPE_VARNCHAR:
2257 num_chars =
intl_char_count ((
const unsigned char *) str_val, val_size, charset, &num_chars) - 1;
2259 write2_func (
"(%d)", num_chars);
2260 fwrite_func (str_val, val_size - 1);
2263 case CCI_U_TYPE_BIT:
2264 case CCI_U_TYPE_VARBIT:
2265 case CCI_U_TYPE_NUMERIC:
2266 case CCI_U_TYPE_ENUM:
2267 case CCI_U_TYPE_JSON:
2272 if (type != CCI_U_TYPE_NUMERIC)
2274 write2_func (
"(%d)", val_size);
2276 fwrite_func (str_val, val_size - 1);
2279 case CCI_U_TYPE_BIGINT:
2283 write2_func (
"%lld", (
long long) bi_val);
2286 case CCI_U_TYPE_UBIGINT:
2290 write2_func (
"%llu", (
unsigned long long) ubi_val);
2293 case CCI_U_TYPE_INT:
2297 write2_func (
"%d", i_val);
2300 case CCI_U_TYPE_UINT:
2302 unsigned int ui_val;
2304 write2_func (
"%u", ui_val);
2307 case CCI_U_TYPE_SHORT:
2311 write2_func (
"%d", s_val);
2314 case CCI_U_TYPE_USHORT:
2316 unsigned short us_val;
2318 write2_func (
"%u", us_val);
2321 case CCI_U_TYPE_MONETARY:
2322 case CCI_U_TYPE_DOUBLE:
2326 write2_func (
"%.15e", d_val);
2329 case CCI_U_TYPE_FLOAT:
2333 write2_func (
"%.6e", f_val);
2336 case CCI_U_TYPE_DATE:
2337 case CCI_U_TYPE_TIME:
2338 case CCI_U_TYPE_TIMESTAMP:
2339 case CCI_U_TYPE_DATETIME:
2341 short yr, mon, day, hh, mm, ss, ms;
2343 if (type == CCI_U_TYPE_DATE)
2344 write2_func (
"%d-%d-%d", yr, mon, day);
2345 else if (type == CCI_U_TYPE_TIME)
2346 write2_func (
"%d:%d:%d", hh, mm, ss);
2347 else if (type == CCI_U_TYPE_TIMESTAMP)
2348 write2_func (
"%d-%d-%d %d:%d:%d", yr, mon, day, hh, mm, ss);
2350 write2_func (
"%d-%d-%d %d:%d:%d.%03d", yr, mon, day, hh, mm, ss, ms);
2353 case CCI_U_TYPE_TIMESTAMPTZ:
2354 case CCI_U_TYPE_DATETIMETZ:
2356 short yr, mon, day, hh, mm, ss, ms;
2359 char tz_str[CCI_TZ_SIZE + 1];
2362 tz_size = MIN (CCI_TZ_SIZE, tz_size);
2363 strncpy (tz_str, tz_str_p, tz_size);
2364 tz_str[tz_size] =
'\0';
2366 if (type == CCI_U_TYPE_TIMESTAMPTZ)
2368 write2_func (
"%d-%d-%d %d:%d:%d %s", yr, mon, day, hh, mm, ss, tz_str);
2372 write2_func (
"%d-%d-%d %d:%d:%d.%03d %s", yr, mon, day, hh, mm, ss, ms, tz_str);
2376 case CCI_U_TYPE_SET:
2377 case CCI_U_TYPE_MULTISET:
2378 case CCI_U_TYPE_SEQUENCE:
2380 int remain_size = data_size;
2383 char *cur_p = (
char *) net_value;
2384 char print_comma = 0;
2391 if (ele_type <= CCI_U_TYPE_FIRST || ele_type > CCI_U_TYPE_LAST)
2396 while (remain_size > 0)
2399 if (ele_size + 4 > remain_size)
2408 remain_size -= ele_size;
2414 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 2415 case CCI_U_TYPE_OBJECT:
2418 short slotid, volid;
2421 write2_func (
"%d|%d|%d", pageid, slotid, volid);
2424 case CCI_U_TYPE_BLOB:
2425 case CCI_U_TYPE_CLOB:
2433 write2_func (
"%s|%lld|%s|%s|%d", (type == CCI_U_TYPE_BLOB) ?
"BLOB" :
"CLOB", db_elo->
size, db_elo->
locator,
2438 write2_func (
"invalid LOB");
2446 write2_func (
"NULL");
2462 static char *pending_alloc =
NULL;
2463 static char buffer[512];
2466 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 2478 if (pending_alloc !=
NULL)
2480 free (pending_alloc);
2481 pending_alloc =
NULL;
2484 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 2491 pending_alloc = buf;
2497 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 2501 int lob_type, err_code;
2502 int elapsed_sec = 0, elapsed_msec = 0;
2503 struct timeval lob_new_begin, lob_new_end;
2507 #if defined(CAS_FOR_DBMS) 2517 if (lob_type != CCI_U_TYPE_BLOB && lob_type != CCI_U_TYPE_CLOB)
2519 #if defined(CAS_FOR_DBMS) 2529 gettimeofday (&lob_new_begin,
NULL);
2533 gettimeofday (&lob_new_end,
NULL);
2534 ut_timeval_diff (&lob_new_begin, &lob_new_end, &elapsed_sec, &elapsed_msec);
2547 char *data_buf =
NULL;
2548 int err_code, data_length = 0;
2549 int elapsed_sec = 0, elapsed_msec = 0;
2550 struct timeval lob_new_begin, lob_new_end;
2555 #if defined(CAS_FOR_DBMS) 2569 cas_log_write (0,
false,
"lob_write lob_type=%d offset=%lld, length=%d", elo_debug->type, offset, data_length);
2570 gettimeofday (&lob_new_begin,
NULL);
2572 err_code =
ux_lob_write (&lob_dbval, offset, data_length, data_buf, net_buf);
2574 gettimeofday (&lob_new_end,
NULL);
2575 ut_timeval_diff (&lob_new_begin, &lob_new_end, &elapsed_sec, &elapsed_msec);
2589 int err_code, data_length = 0;
2590 int elapsed_sec = 0, elapsed_msec = 0;
2591 struct timeval lob_new_begin, lob_new_end;
2596 #if defined(CAS_FOR_DBMS) 2610 cas_log_write (0,
false,
"lob_read lob_type=%d offset=%lld, length=%d", elo_debug->type, offset, data_length);
2611 gettimeofday (&lob_new_begin,
NULL);
2613 err_code =
ux_lob_read (&lob_dbval, offset, data_length, net_buf);
2615 gettimeofday (&lob_new_end,
NULL);
2616 ut_timeval_diff (&lob_new_begin, &lob_new_end, &elapsed_sec, &elapsed_msec);
2628 #if defined(CAS_FOR_DBMS) 2646 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 2650 #ifndef LIBCAS_FOR_JSP 2655 if (query_timeout == 0 || broker_timeout_in_millis == 0)
2659 if (query_timeout == 0 && broker_timeout_in_millis == 0)
2666 (query_timeout + broker_timeout_in_millis), (query_timeout > 0 ?
"app" :
"broker"));
2669 else if (query_timeout > broker_timeout_in_millis)
2673 broker_timeout_in_millis);
2713 char stmt_type = -1;
void sql_log2_end(bool reset_filename_flag)
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_close_req_handle(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
INT64 num_long_transactions
T_QUERY_RESULT * q_result
void net_arg_get_datetime(short *yr, short *mon, short *day, short *hh, short *mm, short *ss, short *ms, void *arg)
enum tran_auto_commit need_auto_commit
T_BROKER_VERSION client_version
int ux_prepare(char *sql_stmt, int flag, char auto_commit_mode, T_NET_BUF *net_buf, T_REQ_INFO *req_info, unsigned int query_seq_num)
int ux_get_class_num_objs(char *class_name, int flag, T_NET_BUF *net_buf)
#define NET_BUF_ERR_SET(NET_BUF)
FN_RETURN fn_execute_batch(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
void net_arg_get_datetimetz(short *yr, short *mon, short *day, short *hh, short *mm, short *ss, short *ms, char **tz, int *tz_size, void *arg)
static const char * get_tran_type_str(int tran_type)
FN_RETURN fn_not_supported(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int net_buf_cp_str(T_NET_BUF *net_buf, const char *buf, int size)
const char * db_get_class_name(DB_OBJECT *class_)
FN_RETURN fn_oid(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int ux_lob_write(DB_VALUE *lob_dbval, INT64 offset, int size, char *data, T_NET_BUF *net_buf)
int ux_set_isolation_level(int new_isol_level, T_NET_BUF *net_buf)
#define DB_MAX_STRING_LENGTH
int ux_col_set_drop(DB_COLLECTION *col, DB_VALUE *ele_val, T_NET_BUF *net_buf)
static const char * tran_type_str[]
#define CAS_PROTO_MAKE_VER(VER)
static const char * type_str_tbl[]
bool logddl_is_ddl_type(int node_type)
int restart_is_needed(void)
FN_RETURN fn_get_row_count(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
#define db_get_collection
int ux_get_attr_type_str(char *class_name, char *attr_name, 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_oid_put(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
char broker_name[BROKER_NAME_LEN]
void cas_log_write_nonl(unsigned int seq_num, bool unit_start, const char *fmt,...)
FN_RETURN fn_cursor(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
char log_msg[SHM_LOG_MSG_SIZE]
FN_RETURN fn_prepare(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
#define ER_QPROC_INVALID_XASLNODE
int db_is_instance(MOP obj)
int db_query_end(DB_QUERY_RESULT *result)
int ux_get_db_version(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_get_db_version(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
bool tran_is_in_libcas(void)
void set_query_timeout(T_SRV_HANDLE *srv_handle, int query_timeout)
int ux_execute_array(T_SRV_HANDLE *srv_handle, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int ux_get_generated_keys(T_SRV_HANDLE *srv_handle, T_NET_BUF *net_buf)
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)
INT64 num_unique_error_queries
int ux_get_row_count(T_NET_BUF *net_buf)
void net_arg_get_cci_object(int *pageid, short *slotid, short *volid, void *arg)
char * cas_log_error_handler_asprint(char *buf, size_t bufsz, bool clear)
#define CAS_MAKE_VER(MAJOR, MINOR, PATCH)
void cas_slow_log_write_value_string(char *value, int size)
#define IS_ERROR_INFO_SET()
FN_RETURN fn_cursor_close(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int ux_oid_put(int argc, void **argv, T_NET_BUF *net_buf)
FN_RETURN fn_get_last_insert_id(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
void logddl_set_sql_text(char *sql_text, int len)
FN_RETURN fn_make_out_rs(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
#define ER_UCI_TOO_FEW_HOST_VARS
void net_arg_get_int(int *value, void *arg)
DB_ELO * db_get_elo(const DB_VALUE *value)
int ux_col_set_add(DB_COLLECTION *col, DB_VALUE *ele_val, T_NET_BUF *net_buf)
int db_lock_read(DB_OBJECT *op)
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)
int ux_get_last_insert_id(T_NET_BUF *net_buf)
char cur_statement_pooling
FN_RETURN fn_deprecated(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int net_buf_cp_int(T_NET_BUF *net_buf, int value, int *begin_offset)
int long_transaction_time
int db_lock_write(DB_OBJECT *op)
FN_RETURN fn_end_session(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
DB_ATTRIBUTE * db_get_attribute(DB_OBJECT *obj, const char *name)
void hm_srv_handle_free(int h_id)
#define DOES_CLIENT_MATCH_THE_PROTOCOL(CLIENT, MATCH)
int ux_lob_read(DB_VALUE *lob_dbval, INT64 offset, int size, T_NET_BUF *net_buf)
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_get_class_num_objs(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)
char * db_get_execution_plan(void)
char get_set_domain(DB_DOMAIN *set_domain, int *precision, short *scale, char *db_type, char *charset)
void cas_log_write_query_string(char *query, int size)
int ux_col_seq_drop(DB_COLLECTION *col, int index, T_NET_BUF *net_buf)
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_collection(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
void cas_log_write2_nonl(const char *fmt,...)
int ux_col_seq_insert(DB_COLLECTION *col, int index, DB_VALUE *ele_val, T_NET_BUF *net_buf)
int ux_execute_all(T_SRV_HANDLE *srv_handle, char flag, int max_col_size, int max_row, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info, CACHE_TIME *clt_cache_time, int *clt_cache_reusable)
#define SRV_HANDLE_QUERY_SEQ_NUM(SRV_HANDLE)
DB_TYPE db_value_type(const DB_VALUE *value)
void net_arg_get_short(short *value, void *arg)
static const char * get_schema_type_str(int schema_type)
int db_put(DB_OBJECT *obj, const char *name, DB_VALUE *value)
void net_arg_get_str(char **value, int *size, void *arg)
int db_col_free(DB_COLLECTION *col)
static enum scanner_mode mode
struct timeval query_start_time
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_execute(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int db_abort_to_savepoint(const char *savepoint_name)
T_SRV_HANDLE * hm_find_srv_handle(int h_id)
time_t transaction_start_time
void cas_log_end(int mode, int run_time_sec, int run_time_msec)
#define CAS_ERROR_INDICATOR
FN_RETURN fn_fetch(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
#define TP_DOMAIN_TYPE(dom)
int db_execute_statement(DB_SESSION *session, int stmt_ndx, DB_QUERY_RESULT **result)
static void bind_value_print(char type, void *net_value, bool slow_log)
int db_drop(DB_OBJECT *obj)
void cas_slow_log_write_query_string(char *query, int size)
DB_SESSION * db_open_buffer(const char *buffer)
void cas_log_write_value_string(char *value, int size)
int db_compile_statement(DB_SESSION *session)
void db_close_session(DB_SESSION *session)
void cas_log_debug(const char *file_name, const int line_no, const char *fmt,...)
void net_arg_get_lob_value(DB_VALUE *db_lob, void *arg)
void net_arg_get_bigint(DB_BIGINT *value, void *arg)
int ux_execute_batch(int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info, char auto_commit_mode)
int db_savepoint_transaction(const char *savepoint_name)
int ux_next_result(T_SRV_HANDLE *srv_handle, char flag, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
#define ER_UNIQUE_VIOLATION_WITHKEY
char ux_db_type_to_cas_type(int db_type)
FN_RETURN fn_lob_read(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
void net_arg_get_size(int *size, void *arg)
bool cas_default_no_backslash_escapes
int get_tuple_count(T_SRV_HANDLE *srv_handle)
#define CAS_SCHEMA_DEFAULT_CHARSET
void db_set_execution_plan(char *plan, int length)
void sql_log2_init(char *br_name, int index, int sql_log_value, bool log_reuse_flag)
int ux_check_connection(void)
static T_SHM_APPL_SERVER * shm_appl
FN_RETURN fn_next_result(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
void net_arg_get_cache_time(void *ct, void *arg)
void ux_cursor_close(T_SRV_HANDLE *srv_handle)
DB_DOMAIN * db_attribute_domain(DB_ATTRIBUTE *attribute)
int ut_check_timeout(struct timeval *start_time, struct timeval *end_time, int timeout_msec, int *res_sec, int *res_msec)
void ux_call_info_cp_param_mode(T_SRV_HANDLE *srv_handle, char *param_mode, int num_param)
int ux_is_database_connected(void)
int ux_cursor(int srv_h_id, int offset, int origin, T_NET_BUF *net_buf)
int jsp_send_destroy_request_all()
struct timeval tran_start_time
#define ER_BTREE_UNIQUE_FAILED
void ux_col_size(DB_COLLECTION *col, T_NET_BUF *net_buf)
FN_RETURN fn_set_db_parameter(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int ux_make_out_rs(int srv_h_id, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
void ux_col_get(DB_COLLECTION *col, char col_type, char ele_type, DB_DOMAIN *ele_domain, T_NET_BUF *net_buf)
void cas_log_reset(char *br_name)
int ux_check_object(DB_OBJECT *obj, T_NET_BUF *net_buf)
char driver_info[SRV_CON_CLIENT_INFO_SIZE]
int errors_in_transaction
void ux_set_lock_timeout(int lock_timeout)
void cas_slow_log_reset(char *br_name)
static char * get_error_log_eids(int err)
static void update_error_query_count(T_APPL_SERVER_INFO *as_info_p, const T_ERROR_INFO *err_info_p)
void tran_set_query_timeout(int)
FN_RETURN fn_prepare_and_execute(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int hm_new_srv_handle(T_SRV_HANDLE **new_handle, unsigned int seq_num)
#define SQL_LOG2_COMPILE_BEGIN(SQL_LOG2_VALUE, SQL_STMT)
void cas_log_query_info_init(int id, char is_only_query_plan)
FN_RETURN fn_check_cas(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int query_seq_num_current_value(void)
void cas_log_write(unsigned int seq_num, bool unit_start, const char *fmt,...)
int ux_get_query_info(int srv_h_id, char info_type, T_NET_BUF *net_buf)
void cas_slow_log_write2(const char *fmt,...)
enum intl_codeset INTL_CODESET
int intl_char_count(const unsigned char *src, int length_in_bytes, INTL_CODESET src_codeset, int *char_count)
int make_bind_value(int num_bind, int argc, void **argv, DB_VALUE **ret_val, T_NET_BUF *net_buf, char desired_type)
void cas_slow_log_write(struct timeval *log_time, unsigned int seq_num, bool unit_start, const char *fmt,...)
void logddl_set_commit_mode(bool mode)
int db_get(DB_OBJECT *object, const char *attpath, DB_VALUE *value)
int ux_execute(T_SRV_HANDLE *srv_handle, char flag, int max_col_size, int max_row, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info, CACHE_TIME *clt_cache_time, int *clt_cache_reusable)
T_APPL_SERVER_INFO * as_info
#define ERROR_INFO_SET(ERR_CODE, ERR_INDICATOR)
FN_RETURN fn_get_db_parameter(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
#define DOES_CLIENT_UNDERSTAND_THE_PROTOCOL(CLIENT, REQUIRE)
#define DBMS_ERROR_INDICATOR
void ux_get_tran_setting(int *lock_wait, int *isol_level)
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)
int ux_get_parameter_info(int srv_h_id, T_NET_BUF *net_buf)
static const char * schema_type_str[]
int ux_end_tran(int tran_type, bool reset_con_status)
#define MAX_DIAG_DATA_VALUE
int ux_fetch(T_SRV_HANDLE *srv_handle, int cursor_pos, int fetch_count, char fetch_flag, int result_set_index, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int db_value_clear(DB_VALUE *value)
void ux_set_cas_change_mode(int mode, T_NET_BUF *net_buf)
void net_arg_get_dbobject(DB_OBJECT **obj, void *arg)
void net_arg_get_double(double *value, void *arg)
void logddl_write_tran_str(const char *fmt,...)
void logddl_free(bool all_free)
FN_RETURN fn_schema_info(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int cas_default_lock_timeout
void net_arg_get_float(float *value, void *arg)
int ux_oid_get(int argc, void **argv, T_NET_BUF *net_buf)
void logddl_set_err_code(int err_code)
int query_seq_num_next_value(void)
static 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)
char * ut_trim(char *str)
char * cas_error_log_get_eid(char *buf, size_t bufsz)
void ut_timeval_diff(struct timeval *start, struct timeval *end, int *res_sec, int *res_msec)
FN_RETURN fn_get_query_info(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int ux_execute_call(T_SRV_HANDLE *srv_handle, char flag, int max_col_size, int max_row, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info, CACHE_TIME *clt_cache_time, int *clt_cache_reusable)
FN_RETURN fn_cursor_update(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int net_buf_cp_byte(T_NET_BUF *net_buf, char ch)
void logddl_set_stmt_type(int stmt_type)
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 logddl_is_exist_ddl_stmt(T_SRV_HANDLE *srv_handle)
int ux_col_seq_put(DB_COLLECTION *col, int index, DB_VALUE *ele_val, T_NET_BUF *net_buf)
FN_RETURN fn_lob_new(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
int ux_cursor_update(T_SRV_HANDLE *srv_handle, int cursor_pos, int argc, void **argv, T_NET_BUF *net_buf)
int ux_schema_info(int schema_type, char *arg1, char *arg2, char flag, T_NET_BUF *net_buf, T_REQ_INFO *req_info, unsigned int query_seq_num)
FN_RETURN fn_get_attr_type_str(SOCKET sock_fd, int argc, void **argv, T_NET_BUF *net_buf, T_REQ_INFO *req_info)
#define net_arg_get_char(value, arg)
DB_DOMAIN * db_domain_set(const DB_DOMAIN *domain)
int ux_lob_new(int lob_type, T_NET_BUF *net_buf)
void reset_optimization_level_as_saved(void)