225 node =
mq_oid (parser, spec);
388 next = statement->
next;
396 statement->
next = next;
444 if (statement ==
NULL)
663 int *cnt = (
int *) arg;
698 char **
const realloc_ptr_classes = (
char **) realloc (lcks->
classes, new_size * sizeof (
char *));
699 if (realloc_ptr_classes ==
NULL)
702 new_size *
sizeof (
char *));
705 lcks->
classes = realloc_ptr_classes;
708 int *
const realloc_ptr_only_all = (
int *) realloc (lcks->
only_all, new_size * sizeof (
int));
709 if (realloc_ptr_only_all ==
NULL)
714 lcks->
only_all = realloc_ptr_only_all;
717 LOCK *
const realloc_ptr_locks = (
LOCK *) realloc (lcks->
locks, new_size * sizeof (
LOCK));
718 if (realloc_ptr_locks ==
NULL)
723 lcks->
locks = realloc_ptr_locks;
728 if (realloc_ptr_flags ==
NULL)
734 lcks->
flags = realloc_ptr_flags;
865 const char *entity_name =
NULL;
866 const char *partition_name =
NULL;
875 if (partition_name ==
NULL)
910 int i, no_lock_idx = -1;
920 if (lcks->
flags[i] & LC_PREF_FLAG_LOCK)
922 if (lcks->
locks[i] == chk_lock)
939 if (no_lock_idx >= 0)
941 lcks->
locks[no_lock_idx] = chk_lock;
958 const char *scope_str =
"SCOPE___ ";
959 const char *from_on_str =
" FROM ON ";
960 const char *eval_prefix =
"EVALUATE ( ";
961 const char *eval_suffix =
" ) ";
962 const char single_quote_char =
'\'';
963 const char semicolon =
';';
973 p = strstr (msg, eval_prefix);
976 p = (
char *) memmove (p, p +
strlen (eval_prefix),
strlen (p) -
strlen (eval_prefix) + 1);
979 p = strstr (msg, eval_suffix);
982 p = (
char *) memmove (p, p +
strlen (eval_suffix),
strlen (p) -
strlen (eval_suffix) + 1);
986 p = strstr (msg, scope_str);
989 p = (
char *) memmove (p, p +
strlen (scope_str),
strlen (p) -
strlen (scope_str) + 1);
992 p = strstr (msg, from_on_str);
995 for (i = 0; p[
i] != single_quote_char && i <
strlen (p); i++)
998 if (i > 0 && p[i - 1] == semicolon)
1000 p = (
char *) memmove (p, p + i, strlen (p) - i + 1);
1021 char *stmt_str =
NULL;
1022 const char *class_name;
1023 PT_NODE **statement_p, *statement;
1036 if (is_update_object)
1038 if (class_op ==
NULL)
1057 if (class_op && name1 !=
NULL)
1089 if (statement_p ==
NULL || *statement_p ==
NULL)
1091 statement = *statement_p;
1095 if (is_update_object)
1097 PT_NODE *upd, *entity, *entity_name;
1128 with_evaluate = strstr (trigger_stmt,
"EVALUATE ( ") !=
NULL ?
true :
false;
1132 err_node = err_node->
next;
1381 int unhide1, unhide2;
1382 int server_info_bits;
1386 server_info_bits = 0;
1400 if (server_info_bits)
1410 (void) memset (&exec_info, 0,
sizeof (exec_info));
1464 if (tmp_trigger ==
NULL)
1471 if (tmp_trigger ==
NULL)
1483 error =
do_scope (parser, tmp_trigger);
1550 if (!name || !from_list)
1555 for (spec = from_list; spec !=
NULL; spec = spec->
next)
PT_NODE * pt_name(PARSER_CONTEXT *parser_ptr, const char *name)
#define ER_LK_UNILATERALLY_ABORTED
PT_NODE * pt_compile(PARSER_CONTEXT *parser, PT_NODE *volatile statement)
void parser_free_lcks_classes(PARSER_CONTEXT *parser)
QFILE_TUPLE_VALUE_POSITION pos_descr
PT_NODE * pt_get_errors(PARSER_CONTEXT *parser)
int do_scope(PARSER_CONTEXT *parser, PT_NODE *statement)
PT_NODE ** parser_parse_string_use_sys_charset(PARSER_CONTEXT *parser, const char *buffer)
const char * db_get_class_name(DB_OBJECT *class_)
static int pt_add_lock_class(PARSER_CONTEXT *parser, PT_CLASS_LOCKS *lcks, PT_NODE *spec, LC_PREFETCH_FLAGS flags)
PT_NODE * pt_class_pre_fetch(PARSER_CONTEXT *parser, PT_NODE *statement)
int pt_exec_trigger_stmt(PARSER_CONTEXT *parser, PT_NODE *trigger_stmt, DB_OBJECT *object1, DB_OBJECT *object2, DB_VALUE *result)
PT_NODE * pt_get_select_list(PARSER_CONTEXT *parser, PT_NODE *query)
int tran_lock_rep_read(LOCK lock_rr_tran)
int locator_get_cache_coherency_number(MOP mop)
union pt_query_info::@124 q
void sm_downcase_name(const char *name, char *buf, int maxlen)
enum lc_prefetch_flags LC_PREFETCH_FLAGS
#define PT_SET_JMP_ENV(parser)
int pt_split_delete_stmt(PARSER_CONTEXT *parser, PT_NODE *delete_stmt)
PT_NODE * pt_add_row_oid_name(PARSER_CONTEXT *parser, PT_NODE *statement)
PT_NODE * pt_eval_value_path(PARSER_CONTEXT *parser, PT_NODE *path)
static PT_NODE * pt_add_oid_to_select_list(PARSER_CONTEXT *parser, PT_NODE *statement, VIEW_HANDLING how)
static PT_NODE * pt_count_entities(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
LOCK locator_fetch_mode_to_lock(DB_FETCH_MODE purpose, LC_OBJTYPE type, LC_FETCH_VERSION_TYPE fetch_version_type)
int qp_get_server_info(PARSER_CONTEXT *parser, int server_info_bits)
static DB_OBJECT * is_class(OID *obj_oid, OID *class_oid)
PT_NODE * pt_semantic_check(PARSER_CONTEXT *parser, PT_NODE *node)
union pt_alter_info::@111 alter_clause
PT_FUNCTION_INFO function
#define MSGCAT_RUNTIME_OUT_OF_MEMORY
#define TM_TRAN_REP_READ_LOCK()
struct pt_alter_info::@111::@113 attr_mthd
#define PT_IS_QUERY_NODE_TYPE(x)
PT_TYPE_ENUM virt_type_enum
#define MSGCAT_SET_PARSER_RUNTIME
static PT_NODE * pt_find_lck_class_from_partition(PARSER_CONTEXT *parser, PT_NODE *node, PT_CLASS_LOCKS *locks)
PT_NODE * flat_entity_list
int intl_identifier_casecmp(const char *str1, const char *str2)
int db_value_free(DB_VALUE *value)
DB_VALUE local_transaction_id
int pt_name_occurs_in_from_list(PARSER_CONTEXT *parser, const char *name, PT_NODE *from_list)
int locator_flush_class(MOP class_mop)
const char * db_error_string(int level)
PT_NODE * parser_copy_tree(PARSER_CONTEXT *parser, const PT_NODE *tree)
#define PT_IS_VALUE_QUERY(n)
PT_DATA_TYPE_INFO data_type
static void cleanup(int signo)
PT_NODE * pt_spec_to_oid_attr(PARSER_CONTEXT *parser, PT_NODE *spec, VIEW_HANDLING how)
PT_ATTR_DEF_INFO attr_def
PT_NODE * pt_add_row_classoid_name(PARSER_CONTEXT *parser, PT_NODE *statement, int server_op)
static PT_NODE * pt_set_trigger_obj_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
const char * er_msg(void)
DB_OBJECT * db_get_class(MOP obj)
#define PT_SPEC_IS_DERIVED(spec_)
char * pt_append_string(const PARSER_CONTEXT *parser, const char *old_string, const char *new_tail)
PT_CREATE_ENTITY_INFO create_entity
#define PT_ERRORc(parser, node, msg)
PT_ZZ_ERROR_MSG_INFO error_msg
PT_NODE * pt_add_row_oid(PARSER_CONTEXT *parser, PT_NODE *statement)
PT_NODE * parser_new_node(PARSER_CONTEXT *parser, PT_NODE_TYPE node_type)
static void error(const char *msg)
PT_NODE * pt_compile_trigger_stmt(PARSER_CONTEXT *parser, const char *trigger_stmt, DB_OBJECT *class_op, const char *name1, const char *name2)
PT_SORT_SPEC_INFO sort_spec
const char * pt_partition_name(PARSER_CONTEXT *parser, const char *class_name, const char *partition)
void parser_free_tree(PARSER_CONTEXT *parser, PT_NODE *tree)
LC_FIND_CLASSNAME locator_lockhint_classes(int num_classes, const char **many_classnames, LOCK *many_locks, int *need_subclasses, LC_PREFETCH_FLAGS *flags, int quit_on_errors, LOCK lock_rr_tran)
PT_NODE * pt_resolve_cte_specs(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
#define free_and_init(ptr)
int intl_mbs_ncasecmp(const char *mbs1, const char *mbs2, size_t n)
static PT_NODE * pt_find_lck_classes(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_TYPE_ENUM virt_type_enum
#define ER_TM_SERVER_DOWN_UNILATERALLY_ABORTED
int db_make_null(DB_VALUE *value)
void ws_unhide_new_old_trigger_obj(MOP op)
int ws_hide_new_old_trigger_obj(MOP op)
LC_PREFETCH_FLAGS * flags
static PT_NODE * pt_set_trigger_obj_post(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
#define PT_INTERNAL_ERROR(parser, what)
#define pt_has_error(parser)
static void remove_appended_trigger_info(char *msg, int with_evaluate)
#define PT_CLEAR_JMP_ENV(parser)
enum view_handling VIEW_HANDLING
PT_TRIGGER_ACTION_INFO trigger_action
struct parser_node::@132 flag
PT_NODE * object_parameter
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)
PT_NODE * parser_copy_tree_list(PARSER_CONTEXT *parser, PT_NODE *tree)
static int pt_in_lck_array(PT_CLASS_LOCKS *lcks, const char *str, LC_PREFETCH_FLAGS flags)
#define PT_ERRORmf(parser, node, setNo, msgNo, arg1)
#define TM_TRAN_ISOLATION()
static PT_NODE * pt_set_class_chn(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)