30 #include <sys/timeb.h> 61 #define MAX_SERVER_TIME_CACHE 60 386 fp = fopen (name,
"r");
411 tb->millitm = (
unsigned short) millisec;
424 struct tm *c_time_struct;
427 struct timeb curr_server_timeb;
428 struct timeb curr_client_timeb;
453 curr_server_timeb.time--;
454 curr_server_timeb.millitm += 1000;
457 curr_server_timeb.time += diff_time;
458 curr_server_timeb.millitm += diff_mtime;
460 if (curr_server_timeb.millitm >= 1000)
462 curr_server_timeb.time++;
463 curr_server_timeb.millitm -= 1000;
466 c_time_struct = localtime (&curr_server_timeb.time);
467 if (c_time_struct ==
NULL)
474 c_time_struct->tm_year + 1900, c_time_struct->tm_hour, c_time_struct->tm_min,
475 c_time_struct->tm_sec, curr_server_timeb.millitm);
491 struct tm c_time_struct;
495 time_val = dt->
time / 1000;
519 static long seed = 0;
522 if (!session || !session->
parser)
551 void *
p = malloc (size);
557 (void) memset (p, 0, size);
613 srand48 (seed = (
long) time (
NULL));
617 statement_result =
pt_compile (parser, statement);
624 statement = statement_result;
647 for (q = qtype; q; q = q->
next)
665 statement = statement_result;
893 *use_plan_cache =
true;
897 *use_plan_cache =
false;
905 *use_query_cache =
true;
909 *use_query_cache =
false;
930 if (!session || !session->
parser)
957 const char *e_msg =
NULL;
989 if (!session || !session->
parser)
1017 const char *e_msg =
NULL;
1132 || !(statement = session->
statements[stmt - 1]))
1159 || !(statement = session->
statements[stmt - 1]))
1301 bool result =
false;
1320 bool result =
false;
1348 if (!session || !session->
parser)
1361 if (stmt_ndx < 0 || stmt_ndx >= session->
dimension || !statement)
1451 || !(statement = session->
statements[stmt - 1]))
1480 || !(statement = session->
statements[stmt - 1]))
1533 parser = session->
parser;
1606 int server_info_bits;
1617 if (!session || !session->
parser)
1666 parser = session->
parser;
1691 server_info_bits = 0;
1712 if (server_info_bits)
1735 bool do_recompile =
false;
1740 do_recompile =
true;
1745 do_recompile =
true;
1855 if (statement != session->
statements[stmt_ndx])
1884 if (result && !(err < 0))
1976 int row_count =
err;
2038 if (statement != session->
statements[stmt_ndx])
2076 PT_NODE *current_value = values_list;
2083 if (parser ==
NULL || values_array ==
NULL || values_array->
size != 0 || values_array->
vals !=
NULL)
2091 if (values_list ==
NULL)
2095 while (current_value !=
NULL)
2098 current_value = current_value->
next;
2109 for (i = 0; i < values.
size; ++
i)
2113 for (current_value = values_list, i = 0; current_value !=
NULL; current_value = current_value->
next, ++
i)
2193 prepare_info->
into_list = (
char **) malloc (length *
sizeof (
char *));
2212 if (into_name ==
NULL)
2220 prepare_info->
into_list[length] = into_name;
2238 for (i = 0; i < length; i++)
2257 for (i = 0; i < length; i++)
2259 name =
pt_name (parser, names[i]);
2278 int prepared_statement_ndx = 0;
2283 char *stmt_info =
NULL;
2289 if (prepared_session ==
NULL)
2300 if (prepared_statement_ndx < 0)
2302 err = prepared_statement_ndx;
2314 assert (prepared_statement_ndx == 1);
2318 prepared_stmt = prepared_session->
statements[0];
2336 prepare_info.
statement = (
char *) statement_literal;
2380 if (stmt_info !=
NULL)
2385 if (prepared_session)
2393 for (i = 0; i < prepare_info.
into_count; i++)
2412 const char *name =
NULL;
2413 char *stmt_info =
NULL;
2514 if (stmt_info !=
NULL)
2524 for (i = 0; i < prepare_info.
into_count; i++)
2554 for (i = 0; i < hv_count; i++)
2562 hv_dom = expected_domains[
i];
2607 values_array.
size = 0;
2628 values_array.
size = 0;
2651 bool do_recompile =
false;
2654 int save_host_var_count, save_auto_param_count;
2670 if (session ==
NULL)
2679 do_recompile =
true;
2700 do_recompile =
true;
2712 if (session !=
NULL)
2716 return do_recompile;
2737 if (new_session ==
NULL)
2748 session->
next = new_session;
2753 session->
next = new_session;
2880 assert (stmt_id < session->dimension);
2883 if (stmt_id < session->dimension)
2886 if (statement !=
NULL)
2944 if (session ==
NULL)
2952 statement = session->
statements[stmt_ndx - 1];
2953 if (statement !=
NULL)
3017 if (*session ==
NULL)
3043 if (*stmt_no < 0 || error < 0)
3097 int include_oid,
int execute,
bool is_new_statement)
3106 *(
char **) result =
NULL;
3109 if (is_new_statement)
3118 if (session ==
NULL)
3137 if (is_new_statement)
3151 if (is_new_statement)
3201 if (statement !=
NULL)
3223 for (stmt = 0; stmt < session->
dimension; stmt++)
3226 if (statement !=
NULL)
3254 prepared = session->
next;
3263 parser = session->
parser;
3264 for (i = 0; i < session->
dimension; i++)
3274 if (statement !=
NULL)
3353 for (i = 0; i < lmops->
num; i++)
3448 if (vclass_name ==
NULL)
3499 static char predicate[300];
3500 const char *att_name, *cond;
3533 cond =
" = '09:30' ";
3538 cond =
" = '10/15/1986 5:45 am' ";
3542 cond =
" = '10/15/1986 5:45 am +00:00' ";
3547 cond =
" = '10/15/1986 5:45:15.135 am' ";
3551 cond =
" = '10/15/1986 5:45:15.135 am +00:00' ";
3555 cond =
" = '10/15/1986' ";
3562 snprintf (predicate,
sizeof (predicate) - 1,
"%s%s", att_name, cond);
3577 const char *s, *separator =
" where ";
3578 char buffer[
BUF_SIZE], *pred, *bufp, *newbuf;
3622 strcpy (buffer,
"select count(*) from ");
3625 len = (int)
strlen (buffer);
3639 newbuf = (
char *) malloc (limit *
sizeof (
char));
3647 strcpy (newbuf, bufp);
3655 strcat (bufp, separator);
3656 strcat (bufp, pred);
3657 separator =
" and ";
3705 #if !defined (SERVER_MODE) 3793 const char *result =
NULL;
3830 if (!session || !session->
parser)
3843 if (stmt_ndx < 0 || stmt_ndx >= session->
dimension || !statement)
4035 bool has_user_trigger;
4049 if (stmt_ndx < 0 || stmt_ndx >= session->
dimension || statement ==
NULL)
4087 for (
int i = 0;
i < dimension;
i++)
4104 if (has_user_trigger)
4129 bool has_name_oid =
false;
4132 bool can_execute_statement_with_commit;
4139 can_execute_statement_with_commit =
false;
4155 can_execute_statement_with_commit =
true;
4165 can_execute_statement_with_commit =
true;
4173 can_execute_statement_with_commit =
true;
4184 can_execute_statement_with_commit =
true;
4192 can_execute_statement_with_commit =
true;
4210 can_execute_statement_with_commit =
true;
4215 can_execute_statement_with_commit =
true;
4218 else if (arg2 !=
NULL)
4222 can_execute_statement_with_commit =
true;
4232 return can_execute_statement_with_commit;
PT_NODE * pt_name(PARSER_CONTEXT *parser_ptr, const char *name)
unsigned is_system_generated_stmt
#define ER_QPROC_XASLNODE_RECOMPILE_REQUESTED
#define pt_is_output_hostvar(n)
PT_NODE * pt_compile(PARSER_CONTEXT *parser, PT_NODE *volatile statement)
unsigned execute_with_commit_allowed
int db_unpack_prepare_info(DB_PREPARE_INFO *info, char *buffer)
static PT_NODE * char_array_to_name_list(PARSER_CONTEXT *parser, char **names, int length)
int db_open_buffer_and_compile_first_statement(const char *CSQL_query, DB_QUERY_ERROR *query_error, int include_oid, DB_SESSION **session, int *stmt_no)
int db_make_datetime(DB_VALUE *value, const DB_DATETIME *datetime)
unsigned execute_with_commit_allowed
#define WS_IS_DELETED(mop)
PT_NODE * pt_get_errors(PARSER_CONTEXT *parser)
int do_statement(PARSER_CONTEXT *parser, PT_NODE *statement)
static DB_SESSION * db_open_local(void)
int pt_host_var_index(const PT_NODE *hv)
bool pt_recompile_for_limit_optimizations(PARSER_CONTEXT *parser, PT_NODE *statement, int xasl_flag)
PT_NODE ** parser_parse_string_use_sys_charset(PARSER_CONTEXT *parser, const char *buffer)
TP_DOMAIN * expected_domain
const char * db_get_class_name(DB_OBJECT *class_)
PARSER_CONTEXT * db_get_parser(DB_SESSION *session)
void * parser_alloc(const PARSER_CONTEXT *parser, const int length)
DB_NODE * db_get_statement(DB_SESSION *session, int id)
#define pt_is_input_hostvar(n)
int do_prepare_statement(PARSER_CONTEXT *parser, PT_NODE *statement)
DB_ATTRIBUTE * db_get_attributes(DB_OBJECT *obj)
#define ER_SM_NOT_A_VIRTUAL_CLASS
PT_NODE * pt_node_next(const PT_NODE *node)
PT_NODE * pt_class_pre_fetch(PARSER_CONTEXT *parser, PT_NODE *statement)
DB_QUERY_RESULT * pt_make_cache_hit_result_descriptor(void)
static bool is_allowed_as_prepared_statement(PT_NODE *node)
DB_DOMAIN * pt_type_enum_to_db_domain(const PT_TYPE_ENUM t)
PT_NODE ** parser_parse_file(PARSER_CONTEXT *parser, FILE *file)
void pt_report_to_ersys_with_statement(PARSER_CONTEXT *parser, const PT_ERROR_TYPE error_type, PT_NODE *statement)
int db_is_vclass(DB_OBJECT *op)
PT_NODE * pt_get_warnings(const PARSER_CONTEXT *parser)
void db_close_session_local(DB_SESSION *session)
DB_QUERY_RESULT * db_get_db_value_query_result(DB_VALUE *val)
static void db_set_base_server_time(DB_VALUE *db_val)
unsigned is_xasl_pinned_reference
static void update_execution_values(PARSER_CONTEXT *parser, int result, CUBRID_STMT_TYPE statement_type)
PT_NODE * pt_get_select_list(PARSER_CONTEXT *parser, PT_NODE *query)
static bool is_allowed_as_prepared_statement_with_hv(PT_NODE *node)
#define ER_QPROC_INVALID_XASLNODE
DB_OBJLIST * ml_ext_alloc_link(void)
int tr_has_user_trigger(bool *has_user_trigger)
static int values_list_to_values_array(PARSER_CONTEXT *parser, PT_NODE *values_list, DB_VALUE_ARRAY *values_array)
void pt_reset_error(PARSER_CONTEXT *parser)
int db_query_end(DB_QUERY_RESULT *result)
int db_make_object(DB_VALUE *value, DB_C_OBJECT *obj)
const char * pt_show_node_type(PT_NODE *node)
PT_NODE * pt_get_next_error(PT_NODE *errors, int *stmt_no, int *line_no, int *col_no, const char **msg)
int db_is_any_class(MOP obj)
#define ER_IT_EMPTY_STATEMENT
PARSER_CONTEXT * parser_create_parser(void)
PT_TYPE_ENUM pt_db_to_type_enum(const DB_TYPE t)
SM_CLASS_TYPE sm_get_class_type(SM_CLASS *class_)
struct pt_query_info::@123 flag
int locator_get_cache_coherency_number(MOP mop)
int db_get_start_line(DB_SESSION *session, int stmt)
union pt_query_info::@124 q
static DB_SESSION * initialize_session(DB_SESSION *session)
PT_NODE * pt_bind_values_to_hostvars(PARSER_CONTEXT *parser, PT_NODE *node)
DB_DOMAIN * pt_node_to_db_domain(PARSER_CONTEXT *parser, PT_NODE *node, const char *class_name)
void pt_set_host_variables(PARSER_CONTEXT *parser, int count, DB_VALUE *values)
int db_set_system_generated_statement(DB_SESSION *session)
int tm_Tran_invalidate_snapshot
const char * pt_string_part(const PT_NODE *tbl)
PT_NODE * pt_count_output_markers(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
void locator_free_list_mops(LIST_MOPS *mops)
void db_rewind_statement(DB_SESSION *session)
PT_NODE * pt_get_output_host_vars(const PT_HOST_VARS *hv)
#define ER_IT_INVALID_SESSION
DB_VALUE * host_variables
static int do_recompile_and_execute_prepared_statement(DB_SESSION *session, PT_NODE *statement, DB_QUERY_RESULT **result)
static void db_calculate_current_server_time(PARSER_CONTEXT *parser)
const char * db_attribute_name(DB_ATTRIBUTE *attribute)
void ws_increment_mvcc_snapshot_version(void)
int db_attribute_is_shared(DB_ATTRIBUTE *attribute)
DB_CLASS_MODIFICATION_STATUS db_has_modified_class(DB_SESSION *session, int stmt_id)
#define ER_UCI_TOO_FEW_HOST_VARS
DB_QUERY_RESULT * pt_new_query_result_descriptor(PARSER_CONTEXT *parser, PT_NODE *query)
void pt_free_query_etc_area(PARSER_CONTEXT *parser, PT_NODE *query)
struct parser_context::@134 flag
PT_NODE * pt_has_name_oid(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
static int get_dimension_of(PT_NODE **array)
DB_QUERY_TYPE * pt_fillin_type_size(PARSER_CONTEXT *parser, PT_NODE *query, DB_QUERY_TYPE *list, const int include_oid, bool want_spec_entity_name, bool fixup_columns_type)
int pt_associate_label_with_value_check_reference(const char *label, DB_VALUE *val)
DB_PARAMETER * db_get_parameters(DB_SESSION *session, int statement_id)
int db_set_client_cache_time(DB_SESSION *session, int stmt_ndx, CACHE_TIME *cache_time)
int db_compile_statement_local(DB_SESSION *session)
DB_SESSION_ERROR * db_get_next_error(DB_SESSION_ERROR *errors, int *line, int *col)
#define MSGCAT_SEMANTIC_CANT_COERCE_TO
SERVER_INSERT_ALLOWED server_allowed
int parse_one_statement(int state)
void parser_free_parser(PARSER_CONTEXT *parser)
static int is_vclass_object(MOBJ class_)
int qp_get_server_info(PARSER_CONTEXT *parser, int server_info_bits)
void pt_report_to_ersys(const PARSER_CONTEXT *parser, const PT_ERROR_TYPE error_type)
#define MAX_SERVER_TIME_CACHE
TP_DOMAIN_STATUS tp_value_cast_preserve_domain(const DB_VALUE *src, DB_VALUE *dest, const TP_DOMAIN *desired_domain, bool implicit_coercion, bool preserve_domain)
char ** db_get_lock_classes(DB_SESSION *session)
bool is_subsession_for_prepared
PT_NODE ** pt_init_one_statement_parser(PARSER_CONTEXT *parser, FILE *file)
void * pt_node_etc(const PT_NODE *col)
DB_MARKER * db_marker_next(DB_MARKER *marker)
unsigned int DB_TIMESTAMP
const char * db_parameter_name(DB_PARAMETER *param)
#define PT_MERGE_INFO_SERVER_OP
void pt_free_statement_xasl_id(PT_NODE *statement)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
#define PT_ERRORmf2(parser, node, setNo, msgNo, arg1, arg2)
#define XASL_ID_COPY(X1, X2)
int db_parse_one_statement(DB_SESSION *session)
#define PT_IS_QUERY_NODE_TYPE(x)
DB_QUERY_TYPE * query_type
DB_VALUE * db_get_hostvars(DB_SESSION *session)
DB_DOMAIN * db_marker_domain(DB_MARKER *marker)
int prm_get_integer_value(PARAM_ID prm_id)
static int db_execute_and_keep_statement_local(DB_SESSION *session, int stmt_ndx, DB_QUERY_RESULT **result)
TP_DOMAIN ** host_var_expected_domains
#define ER_OUT_OF_VIRTUAL_MEMORY
PARSER_CONTEXT * parent_parser
DB_TYPE db_value_type(const DB_VALUE *value)
PT_NODE * flat_entity_list
DB_VALUE_ARRAY host_variables
int db_execute_and_keep_statement(DB_SESSION *session, int stmt_ndx, DB_QUERY_RESULT **result)
DB_MARKER * db_get_input_markers(DB_SESSION *session, int stmt)
PT_NODE * pt_make_string_value(PARSER_CONTEXT *parser, const char *value_string)
#define DB_VALUE_DOMAIN_TYPE(value)
int db_value_free(DB_VALUE *value)
DB_PARAMETER * db_parameter_next(DB_PARAMETER *param)
DB_VALUE local_transaction_id
void db_drop_statement(DB_SESSION *session, int stmt)
void db_session_set_holdable(DB_SESSION *session, bool holdable)
bool db_get_jdbccachehint(DB_SESSION *session, int stmt_ndx, int *life_time)
#define CHECK_1ARG_NULL(obj)
PT_NODE * pt_semantic_type(PARSER_CONTEXT *parser, PT_NODE *tree, SEMANTIC_CHK_INFO *sc_info)
void db_init_prepare_info(DB_PREPARE_INFO *info)
DB_ATTRIBUTE * db_attribute_next(DB_ATTRIBUTE *attribute)
const char * db_query_spec_string(DB_QUERY_SPEC *query_spec)
void db_session_set_return_generated_keys(DB_SESSION *session, bool return_generated_keys)
int db_get_parser_line_col(DB_SESSION *session, int *line, int *col)
PT_NODE * pt_get_parameters(PARSER_CONTEXT *parser, PT_NODE *statement)
#define TP_DOMAIN_TYPE(dom)
void db_set_read_fetch_instance_version(LC_FETCH_VERSION_TYPE read_Fetch_Instance_Version)
DB_VALUE * db_value_create(void)
DB_SESSION_WARNING * db_get_next_warning(DB_SESSION_WARNING *warnings, int *line, int *col)
static int do_process_deallocate_prepare(DB_SESSION *session, PT_NODE *statement)
struct db_query_type * next
void db_update_row_count_cache(const int row_count)
static void cleanup(int signo)
int db_execute_statement(DB_SESSION *session, int stmt_ndx, DB_QUERY_RESULT **result)
void db_session_set_xasl_cache_pinned(DB_SESSION *session, bool is_pinned, bool recompile)
bool db_is_input_marker(DB_MARKER *marker)
LC_FETCH_VERSION_TYPE tm_Tran_read_fetch_instance_version
CUBRID_STMT_TYPE pt_node_to_cmd_type(PT_NODE *node)
int db_tm_encode(struct tm *c_time_struct, DB_DATE *date, DB_TIME *timeval)
DB_SESSION * db_open_buffer(const char *buffer)
void db_include_oid(DB_SESSION *session, int include_oid)
int db_compile_statement(DB_SESSION *session)
void db_drop_all_statements(DB_SESSION *session)
void db_close_session(DB_SESSION *session)
int csession_create_prepared_statement(const char *name, const char *alias_print, char *stmt_info, int info_length)
static void db_calculate_current_time(struct timeb *tb)
DB_SESSION * db_open_buffer_local(const char *buffer)
void db_free_query(DB_SESSION *session)
DB_SESSION_WARNING * db_get_warnings(DB_SESSION *session)
int pt_is_server_insert_with_generated_keys(PARSER_CONTEXT *parser, PT_NODE *statement)
unsigned recompile_xasl_pinned
PT_HOST_VARS * pt_host_info(PARSER_CONTEXT *parser, PT_NODE *stmt)
void pt_end_query(PARSER_CONTEXT *parser, QUERY_ID query_id_self)
PT_CREATE_ENTITY_INFO create_entity
int db_value_clear_array(DB_VALUE_ARRAY *value_array)
PT_NODE ** parser_parse_string_with_escapes(PARSER_CONTEXT *parser, const char *buffer, const bool strings_have_no_escapes)
enum db_class_modification_status DB_CLASS_MODIFICATION_STATUS
void pt_null_etc(PT_NODE *node)
PT_NODE * pt_add_row_oid(PARSER_CONTEXT *parser, PT_NODE *statement)
int csession_delete_prepared_statement(const char *name)
DB_QUERY_TYPE * db_alloc_query_format(int cnt)
static int set_prepare_info_into_list(DB_PREPARE_INFO *prepare_info, PT_NODE *statement)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
int pr_clear_value(DB_VALUE *value)
void db_free_query_format(DB_QUERY_TYPE *q)
bool db_is_output_marker(DB_MARKER *marker)
DB_TYPE pt_node_to_db_type(PT_NODE *node)
static char * get_reasonable_predicate(DB_ATTRIBUTE *att)
TP_DOMAIN ** host_var_expected_domains
static DB_CLASS_MODIFICATION_STATUS pt_has_modified_class(PARSER_CONTEXT *parser, PT_NODE *statement)
DB_QUERY_TYPE * db_cp_query_type(DB_QUERY_TYPE *query_type, int copy_only_user)
PT_NODE * parser_append_node(PT_NODE *node, PT_NODE *list)
static int do_get_prepared_statement_info(DB_SESSION *session, int stmt_idx)
void util_get_second_and_ms_since_epoch(time_t *secs, int *msec)
#define TP_IS_CHAR_TYPE(typeid)
int db_session_is_last_statement(DB_SESSION *session)
LIST_MOPS * locator_get_all_class_mops(DB_FETCH_MODE purpose, int(*fun)(MOBJ class_obj))
static void error(const char *msg)
int db_get_statement_type(DB_SESSION *session, int stmt)
int do_execute_statement(PARSER_CONTEXT *parser, PT_NODE *statement)
DB_OBJLIST * db_get_all_vclasses(void)
unsigned is_system_generated_stmt
DB_OBJLIST * db_get_all_vclasses_on_ldb(void)
int pt_statement_line_number(const PT_NODE *stmt)
DB_QUERY_TYPE ** type_list
#define CHECK_CONNECT_NULL()
#define ER_IT_INCORRECT_HOSTVAR_COUNT
int pr_clone_value(const DB_VALUE *src, DB_VALUE *dest)
void parser_free_tree(PARSER_CONTEXT *parser, PT_NODE *tree)
int db_pack_prepare_info(const DB_PREPARE_INFO *info, char **buffer)
int db_number_of_output_markers(DB_SESSION *session, int stmt)
static PT_NODE * pt_has_modified_class_helper(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
bool db_get_cacheinfo(DB_SESSION *session, int stmt_ndx, bool *use_plan_cache, bool *use_query_cache)
unsigned clt_cache_reusable
PT_NODE * pt_resolve_names(PARSER_CONTEXT *parser, PT_NODE *statement, SEMANTIC_CHK_INFO *sc_info)
#define MSGCAT_SET_PARSER_SEMANTIC
#define free_and_init(ptr)
int db_datetime_encode(DB_DATETIME *datetime, int month, int day, int year, int hour, int minute, int second, int millisecond)
static struct timeb base_client_timeb
PT_NODE * pt_get_input_host_vars(const PT_HOST_VARS *hv)
int db_value_precision(const DB_VALUE *value)
#define ER_OBJ_INVALID_ARGUMENTS
int db_push_values(DB_SESSION *session, int count, DB_VALUE *in_values)
int db_validate(DB_OBJECT *vc)
int db_check_single_query(DB_SESSION *session)
#define ER_HEAP_UNKNOWN_OBJECT
static bool db_check_limit_need_recompile(PARSER_CONTEXT *parser, PT_NODE *statement, int xasl_flag)
static bool db_can_execute_statement_with_autocommit(PARSER_CONTEXT *parser, PT_NODE *statement)
void ml_ext_free(DB_OBJLIST *list)
int db_get_variable(DB_VALUE *name, DB_VALUE *value)
DB_QUERY_TYPE * db_get_query_type_list(DB_SESSION *session, int stmt_ndx)
static void copy_execution_values(EXECUTION_STATE_VALUES *source, EXECUTION_STATE_VALUES *destination)
unsigned execute_with_commit_allowed
DB_TYPE db_attribute_type(DB_ATTRIBUTE *attribute)
int db_marker_index(DB_MARKER *marker)
int pt_length_of_select_list(PT_NODE *list, int hidden_col)
int db_make_null(DB_VALUE *value)
void pt_free_host_info(PT_HOST_VARS *hv)
int db_compile_and_execute_local(const char *CSQL_query, void *result, DB_QUERY_ERROR *query_error)
#define DB_IS_NULL(value)
#define XASL_ID_IS_NULL(X)
DB_QUERY_SPEC * db_get_query_specs(DB_OBJECT *obj)
DB_MARKER * db_get_output_markers(DB_SESSION *session, int stmt)
#define ER_IT_MULTIPLE_STATEMENT
DB_DATETIME * db_get_datetime(const DB_VALUE *value)
int db_validate_query_spec(DB_OBJECT *vclass, const char *query_spec)
static struct timeb base_server_timeb
int db_execute_statement_local(DB_SESSION *session, int stmt_ndx, DB_QUERY_RESULT **result)
unsigned return_generated_keys
DB_SESSION * db_open_file_name(const char *name)
#define PT_INTERNAL_ERROR(parser, what)
static int do_cast_host_variables_to_expected_domain(DB_SESSION *session)
DB_QUERY_TYPE * db_get_query_type_ptr(DB_QUERY_RESULT *result)
int db_value_clear(DB_VALUE *value)
int db_make_timestamp(DB_VALUE *value, const DB_C_TIMESTAMP timeval)
#define pt_has_error(parser)
#define ER_DO_UNKNOWN_HOSTVAR_TYPE
DB_QUERY_TYPE * pt_get_titles(PARSER_CONTEXT *parser, PT_NODE *query)
static int do_set_user_host_variables(DB_SESSION *session, PT_NODE *using_list)
int db_get_line_of_statement(DB_SESSION *session, int stmt_id)
#define ER_CANNOT_PREPARE_WITH_HOST_VAR
int db_set_statement_auto_commit(DB_SESSION *session, bool auto_commit)
void db_invalidate_mvcc_snapshot_before_statement(void)
int pt_length_of_list(const PT_NODE *list)
CUBRID_STMT_TYPE stmt_type
struct parser_node::@132 flag
#define ER_IT_IS_DISALLOWED_AS_PREPARED
DB_VALUE * pt_value_to_db(PARSER_CONTEXT *parser, PT_NODE *value)
int db_number_of_input_markers(DB_SESSION *session, int stmt)
int csession_get_prepared_statement(const char *name, XASL_ID *xasl_id, char **stmt_info, xasl_node_header *xasl_header_p)
#define XASL_ID_SET_NULL(X)
void pt_free_orphans(PARSER_CONTEXT *parser)
int db_query_produce_updatable_result(DB_SESSION *session, int stmt_ndx)
DB_SESSION_ERROR * db_get_errors(DB_SESSION *session)
PT_NODE * parser_walk_tree(PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE_WALK_FUNCTION pre_function, void *pre_argument, PT_NODE_WALK_FUNCTION post_function, void *post_argument)
#define CHECK_CONNECT_MINUSONE()
#define PT_IS_NAME_NODE(n)
static DB_OBJLIST * db_get_all_chosen_classes(int(*p)(MOBJ o))
CUBRID_STMT_TYPE stmt_type
PT_NODE * parser_copy_tree_list(PARSER_CONTEXT *parser, PT_NODE *tree)
#define ER_OBJ_NOT_A_CLASS
int au_fetch_class_force(MOP op, SM_CLASS **class_, AU_FETCHMODE fetchmode)
DB_SESSION * db_open_file(FILE *file)
void tp_domain_free(TP_DOMAIN *dom)
int db_statement_count(DB_SESSION *session)
int db_compile_and_execute_queries_internal(const char *CSQL_query, void *result, DB_QUERY_ERROR *query_error, int include_oid, int execute, bool is_new_statement)
static int do_process_prepare_statement(DB_SESSION *session, PT_NODE *statement)
int db_query_tuple_count(DB_QUERY_RESULT *result)
#define TM_TRAN_ISOLATION()
#define CHECK_CONNECT_ERROR()
int pt_validate_query_spec(PARSER_CONTEXT *parser, PT_NODE *s, struct db_object *c)
DB_SESSION * db_make_session_for_one_statement_execution(FILE *file)
int db_value_domain_init(DB_VALUE *value, const DB_TYPE type, const int precision, const int scale)
int db_get_line_col_of_1st_error(DB_SESSION *session, DB_QUERY_ERROR *linecol)
union db_query_result::@47 res
int db_bind_parameter_name(const char *name, DB_VALUE *value)
DB_QUERY_SPEC * db_query_spec_next(DB_QUERY_SPEC *query_spec)
EXECUTION_STATE_VALUES execution_values