35 #if defined (SERVER_MODE) 36 #error Does not belong to server module 45 #define mq_free_virtual_query_cache_and_init(virtual_query_cache) \ 48 mq_free_virtual_query_cache ((virtual_query_cache)); \ 49 (virtual_query_cache) = NULL; \ 76 const bool no_escapes_strings);
78 #if defined(ENABLE_UNUSED_FUNCTION) 127 const char *new_tail,
const int length);
131 const char *new_tail);
139 #if defined(ENABLE_UNUSED_FUNCTION) 156 const char *context);
170 int *more_type_info_needed);
181 #if defined(ENABLE_UNUSED_FUNCTION) 198 const char *name1,
const char *name2);
235 PT_NODE * set_data,
bool for_collation);
266 const int num_args,
DB_VALUE * result);
290 #if defined(ENABLE_UNUSED_FUNCTION) 291 extern int pt_identifier_or_keyword (
const char *text);
295 #if defined(ENABLE_UNUSED_FUNCTION) 307 PT_NODE * named_expression,
bool loc_check,
int type,
bool dont_replace);
365 #if defined (ENABLE_UNUSED_FUNCTION) 366 extern void pt_void_internal_error (
PARSER_CONTEXT *
parser,
const char *file,
int line,
const char *what);
379 const int include_oid,
bool want_spec_entity_name,
380 bool fixup_columns_type);
392 extern int pt_str_compare (
const char *
p,
const char *q, CASE_SENSITIVENESS case_flag);
441 const char *table_alias,
const DB_AUTH auth_bypass);
461 #if defined (ENABLE_UNUSED_FUNCTION) 462 extern PT_NODE *pt_assignments_part (
const PT_NODE * update_statement);
468 #if defined (ENABLE_UNUSED_FUNCTION) 477 #if defined (ENABLE_UNUSED_FUNCTION) 478 extern void *pt_object_part (
const PT_NODE * name_node);
479 extern int pt_operator_part (
const PT_NODE * expr);
480 extern const char *pt_qualifier_part (
const PT_NODE * tbl);
488 #if defined (ENABLE_UNUSED_FUNCTION) 491 extern void pt_set_node_etc (
PT_NODE * node,
const void *etc);
507 #define pt_has_error(parser) ( (parser) && ((parser)->error_msgs || (parser)->flag.has_internal_error)) 509 #if defined (ENABLE_UNUSED_FUNCTION) 529 #if defined (ENABLE_UNUSED_FUNCTION) 565 const int array_size,
int *num_args);
572 int like_where_syntax,
PT_NODE * where_cond);
574 PT_NODE * like_or_where_expr,
int is_show_full);
589 bool use_parens_outside);
603 PT_NODE ** const_names,
PT_NODE ** const_values,
int *no_vals,
int *no_consts,
614 int *charset,
int *coll_id);
617 PT_COLL_INFER * arg3_coll_infer,
const int args_w_coll,
bool op_has_3_args,
620 const INTL_CODESET codeset,
bool force_mode,
bool use_collate_modifier,
656 #if defined __cplusplus PT_NODE * pt_bind_values_to_hostvars(PARSER_CONTEXT *parser, PT_NODE *node)
PT_NODE * pt_flat_spec_pre(PARSER_CONTEXT *parser, PT_NODE *p, void *scope, int *continue_walk)
int pt_push(PARSER_CONTEXT *parser, PT_NODE *q)
PT_NODE * pt_name(PARSER_CONTEXT *parser_ptr, const char *name)
PT_NODE * pt_coerce_node_collation(PARSER_CONTEXT *parser, PT_NODE *node, const int coll_id, const INTL_CODESET codeset, bool force_mode, bool use_collate_modifier, PT_TYPE_ENUM wrap_type_for_maybe, PT_TYPE_ENUM wrap_type_collection)
PT_NODE * pt_find_aggregate_names(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
int pt_get_varchar_length(const PARSER_VARCHAR *string)
PT_NODE * meth_translate(PARSER_CONTEXT *parser, PT_NODE *volatile node)
DB_VALUE * pt_set_value_to_db(PARSER_CONTEXT *parser, PT_NODE **values, DB_VALUE *db_value, PT_NODE **el_types)
PT_NODE * pt_find_spec_in_statement(PARSER_CONTEXT *parser, const PT_NODE *stmt, const PT_NODE *name)
void pt_record_warning(PARSER_CONTEXT *parser, int stmt_no, int line_no, int col_no, const char *msg)
int pt_associate_label_with_value_check_reference(const char *label, DB_VALUE *val)
void mq_free_virtual_query_cache(PARSER_CONTEXT *parser)
void parser_init_func_vectors(void)
void parser_free_subtrees(PARSER_CONTEXT *parser, PT_NODE *tree)
int pt_host_var_index(const PT_NODE *hv)
bool pt_recompile_for_limit_optimizations(PARSER_CONTEXT *parser, PT_NODE *statement, int xasl_flag)
bool pt_eval_path_expr(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *val)
bool pt_is_aggregate_function(PARSER_CONTEXT *parser, const PT_NODE *node)
bool pt_is_function_index_expr(PARSER_CONTEXT *parser, PT_NODE *expr, bool report_error)
PT_NODE * pt_check_orderbynum_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
bool pt_is_keyword(const char *s)
int pt_name_occurs_in_from_list(PARSER_CONTEXT *parser, const char *name, PT_NODE *from_list)
PT_NODE * pt_make_query_show_index(PARSER_CONTEXT *parser, PT_NODE *original_cls_id)
void parser_free_node(const PARSER_CONTEXT *parser, PT_NODE *node)
bool pt_is_pseudo_const(PT_NODE *expr)
void pt_mark_spec_list_for_delete(PARSER_CONTEXT *parser, PT_NODE *statement)
PT_NODE * pt_resolve_using_index(PARSER_CONTEXT *parser, PT_NODE *index, PT_NODE *from)
PT_NODE * pt_expression_0(PARSER_CONTEXT *parser_ptr, PT_OP_TYPE op)
PT_NODE * parser_keyword_func(const char *name, PT_NODE *args)
int pt_instnum_compatibility(PT_NODE *expr)
int pt_check_enum_data_type(PARSER_CONTEXT *parser, PT_NODE *dt)
void pt_data_type_init_value(const PT_NODE *node, DB_VALUE *value_out)
DB_OBJECT * pt_find_users_class(PARSER_CONTEXT *parser, PT_NODE *name)
bool pt_is_analytic_function(PARSER_CONTEXT *parser, const PT_NODE *node)
PT_NODE * parser_reinit_node(PT_NODE *node)
DB_VALUE * pt_find_value_of_label(const char *label)
PT_NODE * pt_node_next(const PT_NODE *node)
DB_QUERY_RESULT * pt_make_cache_hit_result_descriptor(void)
int pt_comp_to_between_op(PT_OP_TYPE left, PT_OP_TYPE right, PT_COMP_TO_BETWEEN_OP_CODE_TYPE code, PT_OP_TYPE *between)
void pt_frob_warning(PARSER_CONTEXT *parser, const PT_NODE *statement, const char *fmt,...)
void pt_register_orphan_db_value(PARSER_CONTEXT *parser, const DB_VALUE *orphan)
PT_NODE * parser_append_node_or(PT_NODE *node, PT_NODE *list)
void pt_report_to_ersys_with_statement(PARSER_CONTEXT *parser, const PT_ERROR_TYPE error_type, PT_NODE *statement)
PT_NODE * pt_dump(PT_NODE *node)
PT_OP_TYPE pt_op_type_from_default_expr(DB_DEFAULT_EXPR_TYPE expr_type)
int pt_length_of_select_list(PT_NODE *list, int hidden_col)
PT_NODE ** parser_parse_string_with_escapes(PARSER_CONTEXT *parser, const char *buffer, const bool no_escapes_strings)
PT_NODE * pt_pointer_stack_pop(PARSER_CONTEXT *parser, PT_NODE *stack, PT_NODE **node)
PT_NODE * pt_get_warnings(const PARSER_CONTEXT *parser)
void pt_record_error(PARSER_CONTEXT *parser, int stmt_no, int line_no, int col_no, const char *msg, const char *context)
const unsigned char * pt_get_varchar_bytes(const PARSER_VARCHAR *string)
int pt_get_select_query_columns(PARSER_CONTEXT *parser, PT_NODE *create_select, DB_QUERY_TYPE **query_columns)
char * parser_print_tree(PARSER_CONTEXT *parser, const PT_NODE *node)
int pt_node_list_to_array(PARSER_CONTEXT *parser, PT_NODE *arg_list, PT_NODE *arg_array[], const int array_size, int *num_args)
bool pt_is_op_hv_late_bind(PT_OP_TYPE op)
const char * pt_node_to_db_domain_name(PT_NODE *node)
int pt_is_comp_op(PT_OP_TYPE op)
void pt_no_double_updates(PARSER_CONTEXT *parser, PT_NODE *stmt)
DB_OBJECT * pt_resolve_serial(PARSER_CONTEXT *parser, PT_NODE *serial_name_node)
PT_NODE * pt_from_list_part(const PT_NODE *node)
PT_NODE * pt_get_select_list(PARSER_CONTEXT *parser, PT_NODE *query)
PT_NODE * pt_make_prim_data_type_fortonum(PARSER_CONTEXT *parser, int prec, int scale)
PT_NODE * pt_has_using_index_clause(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
void pt_reset_error(PARSER_CONTEXT *parser)
enum pt_type_enum PT_TYPE_ENUM
void qo_do_auto_parameterize(PARSER_CONTEXT *parser, PT_NODE *where)
char * pt_short_print(PARSER_CONTEXT *parser, const PT_NODE *p)
PT_NODE * pt_point(PARSER_CONTEXT *parser, const PT_NODE *tree)
void pt_move_node(REFPTR(PT_NODE, destp), REFPTR(PT_NODE, srcp))
void pt_check_level_expr(PARSER_CONTEXT *parser, PT_NODE *expr, bool *has_greater, bool *has_lesser)
PT_NODE * pt_expression_1(PARSER_CONTEXT *parser_ptr, PT_OP_TYPE op, PT_NODE *arg1)
int pt_is_ddl_statement(const PT_NODE *node)
PARSER_VARCHAR * pt_append_varchar(const PARSER_CONTEXT *parser, PARSER_VARCHAR *old_bytes, const PARSER_VARCHAR *new_tail)
PT_NODE ** pt_init_one_statement_parser(PARSER_CONTEXT *parser, FILE *file)
PT_NODE * pt_entity(PARSER_CONTEXT *parser, const PT_NODE *entity_name, const PT_NODE *range_var, const PT_NODE *flat_list)
DB_ATTRIBUTE * db_get_attribute_force(DB_OBJECT *obj, const char *name)
PARSER_VARCHAR * pt_print_bytes_l(PARSER_CONTEXT *parser, const PT_NODE *node)
int mq_is_real_class_of_vclass(PARSER_CONTEXT *parser, const PT_NODE *s_class, const PT_NODE *d_class)
PT_NODE * pt_check_subquery_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE ** parser_parse_string(PARSER_CONTEXT *parser, const char *buffer)
PT_NODE * pt_get_end_path_node(PT_NODE *node)
PT_NODE * pt_expression_2(PARSER_CONTEXT *parser_ptr, PT_OP_TYPE op, PT_NODE *arg1, PT_NODE *arg2)
PT_NODE * pt_right_part(const PT_NODE *expr)
int pt_get_assignment_lists(PARSER_CONTEXT *parser, PT_NODE **select_names, PT_NODE **select_values, PT_NODE **const_names, PT_NODE **const_values, int *no_vals, int *no_consts, PT_NODE *assign, PT_NODE ***old_links)
PT_NODE * pt_has_non_groupby_column_node(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PARSER_VARCHAR * pt_print_bytes(PARSER_CONTEXT *parser, const PT_NODE *node)
bool pt_false_search_condition(PARSER_CONTEXT *parser, const PT_NODE *statement)
PARSER_VARCHAR * pt_append_name(const PARSER_CONTEXT *parser, PARSER_VARCHAR *string, const char *name)
const char * pt_data_type_to_db_domain_name(const PT_NODE *dt)
PT_NODE * pt_expr_to_sort_spec(PARSER_CONTEXT *parser, PT_NODE *expr)
void pt_fixup_column_type(PT_NODE *col)
int pt_get_correlation_level(PT_NODE *node)
PT_NODE * pt_bind_type_from_dbval(PARSER_CONTEXT *, PT_NODE *, DB_VALUE *)
PT_NODE * pt_append_query_select_list(PARSER_CONTEXT *parser, PT_NODE *query, PT_NODE *attrs)
PT_NODE ** parser_parse_file(PARSER_CONTEXT *parser, FILE *file)
const char * pt_string_part(const PT_NODE *tbl)
PT_NODE * pt_expression(PARSER_CONTEXT *parser_ptr, PT_OP_TYPE op, PT_NODE *arg1, PT_NODE *arg2, PT_NODE *arg3)
const char * pt_type_enum_to_db_domain_name(const PT_TYPE_ENUM t)
void pt_init_assignments_helper(PARSER_CONTEXT *parser, PT_ASSIGNMENTS_HELPER *helper, PT_NODE *assignment)
PT_NODE * pt_count_output_markers(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
int pt_evaluate_function(PARSER_CONTEXT *parser, PT_NODE *func, DB_VALUE *dbval_res)
PT_NODE * pt_top(PARSER_CONTEXT *parser)
int pt_split_delete_stmt(PARSER_CONTEXT *parser, PT_NODE *delete_stmt)
PT_NODE * pt_is_inst_or_orderby_num_node(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
PT_NODE * pt_find_node_type_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * pt_make_query_show_grants_curr_usr(PARSER_CONTEXT *parser)
PT_NODE * pt_get_output_host_vars(const PT_HOST_VARS *hv)
DB_AUTH pt_auth_to_db_auth(const PT_NODE *auth)
const char * pt_show_priv(PT_PRIV_TYPE t)
int pt_null_where(PARSER_CONTEXT *parser, PT_NODE *node)
PT_NODE * pt_make_query_show_columns(PARSER_CONTEXT *parser, PT_NODE *original_cls_id, int like_where_syntax, PT_NODE *like_or_where_expr, int is_show_full)
PT_NODE * pt_point_l(PARSER_CONTEXT *parser, const PT_NODE *tree)
void pt_to_regu_resolve_domain(int *p_precision, int *p_scale, const PT_NODE *node)
DB_QUERY_RESULT * pt_new_query_result_descriptor(PARSER_CONTEXT *parser, PT_NODE *query)
const char * pt_get_name(PT_NODE *nam)
int pt_get_expression_count(PT_NODE *node)
PT_NODE * pt_get_errors(PARSER_CONTEXT *parser)
void pt_free_query_etc_area(PARSER_CONTEXT *parser, PT_NODE *query)
PT_NODE * parser_new_node(PARSER_CONTEXT *parser, PT_NODE_TYPE node)
PT_NODE * pt_has_name_oid(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * pt_dbval_to_value(PARSER_CONTEXT *parser, const DB_VALUE *val)
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)
PT_NODE * pt_wrap_with_cast_op(PARSER_CONTEXT *parser, PT_NODE *arg, PT_TYPE_ENUM new_type, int p, int s, PT_NODE *desired_dt)
bool pt_false_where(PARSER_CONTEXT *parser, PT_NODE *statement)
int pt_coerce_value_for_default_value(PARSER_CONTEXT *parser, PT_NODE *src, PT_NODE *dest, PT_TYPE_ENUM desired_type, PT_NODE *elem_type_list, DB_DEFAULT_EXPR_TYPE default_expr_type)
bool pt_is_operator_logical(PT_OP_TYPE op)
PT_NODE * pt_spec_to_oid_attr(PARSER_CONTEXT *parser, PT_NODE *spec, VIEW_HANDLING how)
PT_NODE * pt_wrap_collection_with_cast_op(PARSER_CONTEXT *parser, PT_NODE *arg, PT_TYPE_ENUM set_type, PT_NODE *set_data, bool for_collation)
void pt_set_host_variables(PARSER_CONTEXT *parser, int count, DB_VALUE *values)
int pt_get_expression_number(PT_NODE *node)
const char * pt_get_proxy_spec_name(const char *qspec)
int pt_length_of_list(const PT_NODE *list)
char * pt_short_print_l(PARSER_CONTEXT *parser, const PT_NODE *p)
void pt_evaluate_tree(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *db_values, int values_count)
void pt_report_to_ersys(const PARSER_CONTEXT *parser, const PT_ERROR_TYPE error_type)
const char * mq_generate_name(PARSER_CONTEXT *parser, const char *root, int *version)
char * parser_print_tree_with_quotes(PARSER_CONTEXT *parser, const PT_NODE *node)
PT_NODE * pt_get_next_error(PT_NODE *errors, int *stmt_no, int *line_no, int *col_no, const char **msg)
PARSER_VARCHAR * pt_print_bytes_spec_list(PARSER_CONTEXT *parser, const PT_NODE *node)
int pt_wrap_select_list_with_cast_op(PARSER_CONTEXT *parser, PT_NODE *query, PT_TYPE_ENUM new_type, int p, int s, PT_NODE *data_type, bool force_wrap)
int pt_statement_have_methods(PARSER_CONTEXT *parser, PT_NODE *statement)
bool pt_list_has_logical_nodes(PT_NODE *list)
PT_NODE * mq_regenerate_if_ambiguous(PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *statement, PT_NODE *from)
bool pt_is_symmetric_op(PT_OP_TYPE op)
void * pt_node_etc(const PT_NODE *col)
void pt_free_statement_xasl_id(PT_NODE *statement)
PT_NODE * pt_resolve_cte_specs(PARSER_CONTEXT *parser, PT_NODE *stmt, void *arg, int *continue_walk)
PT_NODE * parser_append_node(PT_NODE *node, PT_NODE *list)
int pt_check_grammar_charset_collation(PARSER_CONTEXT *parser, PT_NODE *charset_node, PT_NODE *coll_node, int *charset, int *coll_id)
PT_OP_TYPE pt_converse_op(PT_OP_TYPE op)
PT_NODE * pt_do_cnf(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE ** parser_main(PARSER_CONTEXT *p)
PT_NODE * parser_copy_tree_list(PARSER_CONTEXT *parser, PT_NODE *tree)
PT_NODE * pt_lambda_with_arg(PARSER_CONTEXT *parser_ptr, PT_NODE *expression, PT_NODE *name, PT_NODE *named_expression, bool loc_check, int type, bool dont_replace)
void pt_get_default_expression_from_data_default_node(PARSER_CONTEXT *parser, PT_NODE *data_default_node, DB_DEFAULT_EXPR *default_expr)
PT_NODE * parser_make_expression(PARSER_CONTEXT *parser, PT_OP_TYPE OP, PT_NODE *arg1, PT_NODE *arg2, PT_NODE *arg3)
int pt_get_one_tuple_from_list_id(PARSER_CONTEXT *parser, PT_NODE *tree, struct db_value *vals, int cnt)
PT_NODE * pt_and(PARSER_CONTEXT *parser_ptr, const PT_NODE *expression1, const PT_NODE *expression2)
PT_NODE * pt_gather_constraints(PARSER_CONTEXT *parser, PT_NODE *tree)
bool pt_has_inst_or_orderby_num(PARSER_CONTEXT *parser, PT_NODE *node)
PT_NODE * pt_make_query_describe_w_identifier(PARSER_CONTEXT *parser, PT_NODE *original_cls_id, PT_NODE *att_id)
PT_NODE * parser_get_tree_list_diff(PARSER_CONTEXT *parser, PT_NODE *list1, PT_NODE *list2)
DB_DOMAIN * pt_node_to_db_domain(PARSER_CONTEXT *parser, PT_NODE *node, const char *class_name)
PT_NODE * pt_make_query_show_exec_stats_all(PARSER_CONTEXT *parser)
PT_NODE * pt_find_spec(PARSER_CONTEXT *parser, const PT_NODE *from, const PT_NODE *name)
PT_NODE * pt_check_groupbynum_post(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
char * pt_chop_trailing_dots(PARSER_CONTEXT *parser, const char *msg)
PT_NODE * pt_domain_to_data_type(PARSER_CONTEXT *parser, DB_DOMAIN *domain)
PT_NODE * pt_dup_key_update_stmt(PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *assignment)
bool pt_sort_spec_cover_groupby(PARSER_CONTEXT *parser, PT_NODE *sort_list, PT_NODE *group_list, PT_NODE *tree)
PT_NODE * pt_where_type(PARSER_CONTEXT *parser, PT_NODE *where)
int pt_get_query_limit_value(PARSER_CONTEXT *parser, PT_NODE *query, DB_VALUE *limit_val)
PT_NODE * pt_rewrite_to_auto_param(PARSER_CONTEXT *parser, PT_NODE *value)
PT_TYPE_ENUM pt_db_to_type_enum(const DB_TYPE t)
PARSER_VARCHAR * pt_print_db_value(PARSER_CONTEXT *parser, const struct db_value *val)
PT_NODE * pt_continue_walk(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
PARSER_VARCHAR * pt_append_nulstring(const PARSER_CONTEXT *parser, PARSER_VARCHAR *old_bytes, const char *new_tail)
PT_NODE * pt_check_subquery_post(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * pt_find_op_type_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
int pt_groupbynum_compatibility(PT_NODE *expr)
int pt_is_reference_to_reusable_oid(DB_VALUE *val)
PT_NODE * pt_resolve_names(PARSER_CONTEXT *parser, PT_NODE *statement, SEMANTIC_CHK_INFO *sc_info)
PT_NODE * pt_class_part(const PT_NODE *statement)
PT_NODE * pt_attrs_part(const PT_NODE *insert_statement)
void parser_free_tree(PARSER_CONTEXT *parser, PT_NODE *tree)
PT_NODE * pt_check_orderbynum_post(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
void insert_rewrite_names_in_value_clauses(PARSER_CONTEXT *parser, PT_NODE *insert_statement)
PT_NODE * pt_is_inst_or_orderby_num_node_post(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
void pt_set_update_object(PARSER_CONTEXT *parser, PT_NODE *node)
PT_NODE * pt_insert_value(PARSER_CONTEXT *parser, PT_NODE *node)
bool pt_has_analytic(PARSER_CONTEXT *parser, PT_NODE *node)
PT_NODE * pt_make_string_value(PARSER_CONTEXT *parser, const char *value_string)
void dbcs_start_input(void)
PT_NODE * pt_resolve_star(PARSER_CONTEXT *parser, PT_NODE *from, PT_NODE *attr)
PT_NODE * pt_sort_spec_list_to_name_node_list(PARSER_CONTEXT *parser, PT_NODE *sort_spec_list)
int pt_exec_trigger_stmt(PARSER_CONTEXT *parser, PT_NODE *trigger_stmt, DB_OBJECT *object1, DB_OBJECT *object2, DB_VALUE *result)
int pt_count_assignments(PARSER_CONTEXT *parser, PT_NODE *assignments)
PT_NODE * pt_expr_disallow_op_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * pt_semantic_type(PARSER_CONTEXT *parser, PT_NODE *tree, SEMANTIC_CHK_INFO *sc_info)
PT_NODE * pt_make_query_show_exec_stats(PARSER_CONTEXT *parser)
PT_NODE ** parser_parse_string_use_sys_charset(PARSER_CONTEXT *parser, const char *buffer)
void parser_free_parser(PARSER_CONTEXT *parser)
PT_NODE * pt_make_query_show_create_view(PARSER_CONTEXT *parser, PT_NODE *view_identifier)
void pt_put_type_enum(PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *data_type)
PT_NODE * pt_remove_from_list(PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *list)
PT_NODE * pt_get_parameters(PARSER_CONTEXT *parser, PT_NODE *statement)
PT_NODE * parser_create_node(const PARSER_CONTEXT *parser)
void pt_restore_assignment_links(PT_NODE *assigns, PT_NODE **links, int count)
void pt_frob_error(PARSER_CONTEXT *parser, const PT_NODE *statement, const char *fmt,...)
PT_NODE * pt_make_query_show_grants(PARSER_CONTEXT *parser, const char *original_user_name)
void parser_clear_node(PARSER_CONTEXT *parser, PT_NODE *node)
int pt_check_unique_names(PARSER_CONTEXT *parser, const PT_NODE *p)
DB_VALUE * pt_value_to_db(PARSER_CONTEXT *parser, PT_NODE *value)
bool pt_is_join_expr(PT_NODE *expr, UINTPTR *spec_id)
PT_NODE * pt_check_groupbynum_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * pt_make_query_show_create_table(PARSER_CONTEXT *parser, PT_NODE *table_name)
int pt_resolved(const PT_NODE *expr)
PT_NODE * pt_set_is_view_spec(PARSER_CONTEXT *parser, PT_NODE *node, void *dummy, int *continue_walk)
PT_NODE * pt_add_column_oid(PARSER_CONTEXT *parser, PT_NODE *stmt)
int pt_prepare_count_optim_classes(PARSER_CONTEXT *parser, PT_NODE *stmt)
PT_NODE * parser_walk_leaves(PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE_WALK_FUNCTION pre_function, void *pre_argument, PT_NODE_WALK_FUNCTION post_function, void *post_argument)
CUBRID_STMT_TYPE pt_node_to_cmd_type(PT_NODE *node)
bool pt_check_ordby_num_for_multi_range_opt(PARSER_CONTEXT *parser, PT_NODE *query, bool *mro_candidate, bool *cannot_eval)
PT_NODE * pt_limit_to_numbering_expr(PARSER_CONTEXT *parser, PT_NODE *limit, PT_OP_TYPE num_op, bool is_gby_num)
PT_NODE * parser_init_node(PT_NODE *node, PT_NODE_TYPE node_type)
int pt_str_compare(const char *p, const char *q, CASE_SENSITIVENESS case_flag)
PT_NODE * parser_copy_tree(PARSER_CONTEXT *parser, const PT_NODE *tree)
int pt_is_server_insert_with_generated_keys(PARSER_CONTEXT *parser, PT_NODE *statement)
PT_NODE * pt_get_subquery_list(PT_NODE *node)
PT_HOST_VARS * pt_host_info(PARSER_CONTEXT *parser, PT_NODE *stmt)
void pt_end_query(PARSER_CONTEXT *parser, QUERY_ID query_id_self)
int pt_find_var(PT_NODE *p, PT_NODE **result)
int pt_check_order_by(PARSER_CONTEXT *parser, PT_NODE *query)
int pt_check_path_eq(PARSER_CONTEXT *parser, const PT_NODE *p, const PT_NODE *q)
PT_NODE * pt_class_pre_fetch(PARSER_CONTEXT *parser, PT_NODE *statement)
void pt_evaluate_tree_having_serial(PARSER_CONTEXT *parser, PT_NODE *tree, DB_VALUE *db_value, int vals_cnt)
void pt_null_etc(PT_NODE *node)
PT_NODE * pt_is_pseudocolumn_node(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
int pt_find_attribute(PARSER_CONTEXT *parser, const PT_NODE *name, const PT_NODE *attributes)
bool pt_has_aggregate(PARSER_CONTEXT *parser, PT_NODE *node)
PT_NODE * pt_make_query_show_table(PARSER_CONTEXT *parser, bool is_full_syntax, int like_where_syntax, PT_NODE *like_or_where_expr)
DB_VALUE * pt_db_value_initialize(PARSER_CONTEXT *parser, PT_NODE *value, DB_VALUE *db_value, int *more_type_info_needed)
int pt_is_between_range_op(PT_OP_TYPE op)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
PT_NODE * pt_from_entity_part(const PT_NODE *node)
bool pt_get_collation_info(const PT_NODE *node, PT_COLL_INFER *coll_infer)
void pt_copy_statement_flags(PT_NODE *source, PT_NODE *destination)
PT_NODE * pt_make_query_showstmt(PARSER_CONTEXT *parser, unsigned int type, PT_NODE *args, int like_where_syntax, PT_NODE *where_cond)
PARSER_VARCHAR * pt_append_bytes(const PARSER_CONTEXT *parser, PARSER_VARCHAR *old_bytes, const char *new_tail, const int length)
DB_DOMAIN * pt_type_enum_to_db_domain(const PT_TYPE_ENUM t)
PT_NODE * pt_has_non_idx_sarg_coll_pre(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
int pt_get_dup_key_oid_var_index(PARSER_CONTEXT *parser, PT_NODE *update_statement)
PT_NODE * pt_make_tuple_value_reference(PARSER_CONTEXT *parser, PT_NODE *name, PT_NODE *select_list, CURSOR_ID *cursor_p)
PT_NODE * pt_where_type_keep_true(PARSER_CONTEXT *parser, PT_NODE *where)
PT_NODE * pt_check_instnum_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
void pt_preset_hostvar(PARSER_CONTEXT *parser, PT_NODE *hv_node)
PT_NODE * pt_make_integer_value(PARSER_CONTEXT *parser, const int value_int)
const char * pt_show_misc_type(PT_MISC_TYPE p)
int pt_quick_resolve_names(PARSER_CONTEXT *parser, PT_NODE **spec, PT_NODE **node, SEMANTIC_CHK_INFO *sc_info)
PT_NODE * pt_get_first_arg_ignore_prior(PT_NODE *node)
KEYWORD_RECORD * pt_get_keyword_rec(int *rec_count)
PARSER_VARCHAR * pt_print_and_list(PARSER_CONTEXT *parser, const PT_NODE *node)
void pt_resolve_object(PARSER_CONTEXT *parser, PT_NODE *node)
int pt_between_to_comp_op(PT_OP_TYPE between, PT_OP_TYPE *left, PT_OP_TYPE *right)
void pt_free_label_table(void)
PT_NODE * pt_add_class_to_entity_list(PARSER_CONTEXT *r, struct db_object *db, PT_NODE *entity, const PT_NODE *parent, UINTPTR id, PT_MISC_TYPE meta_class)
PT_NODE * pt_is_analytic_node_post(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
const char * pt_show_type_enum(PT_TYPE_ENUM t)
int pt_is_function_index_expression(PT_NODE *node)
bool pt_is_same_enum_data_type(PT_NODE *dt1, PT_NODE *dt2)
DB_TYPE pt_node_to_db_type(PT_NODE *node)
PT_OP_TYPE pt_op_type_from_default_expr_type(DB_DEFAULT_EXPR_TYPE expr_type)
PT_NODE * pt_table_option(PARSER_CONTEXT *parser, const PT_TABLE_OPTION_TYPE option, PT_NODE *val)
void * parser_alloc(const PARSER_CONTEXT *parser, const int length)
PT_NODE * pt_find_entity(PARSER_CONTEXT *parser, const PT_NODE *scope, UINTPTR id)
PT_NODE * pt_union(PARSER_CONTEXT *parser_ptr, PT_NODE *expression1, PT_NODE *expression2)
int pt_statement_line_number(const PT_NODE *stmt)
bool pt_is_const_expr_node(PT_NODE *node)
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)
int pt_evaluate_function_w_args(PARSER_CONTEXT *parser, FUNC_TYPE fcode, DB_VALUE *args[], const int num_args, DB_VALUE *result)
char * parser_print_function_index_expr(PARSER_CONTEXT *parser, const PT_NODE *expr)
int dbcs_get_next(PARSER_CONTEXT *parser)
bool pt_name_equal(PARSER_CONTEXT *parser, const PT_NODE *name1, const PT_NODE *name2)
const char * pt_partition_name(PARSER_CONTEXT *parser, const char *class_name, const char *partition)
PT_NODE * pt_add_row_classoid_name(PARSER_CONTEXT *parser, PT_NODE *statement, int server_op)
DB_ATTRIBUTE * db_get_attributes_force(DB_OBJECT *obj)
void pt_no_attr_and_meta_attr_updates(PARSER_CONTEXT *parser, PT_NODE *stmt)
const char * pt_get_spec_name(PARSER_CONTEXT *parser, const PT_NODE *selqry)
PT_NODE * pt_convert_to_logical_expr(PARSER_CONTEXT *parser, PT_NODE *node, bool use_parens_inside, bool use_parens_outside)
PT_NODE * pt_add_row_oid_name(PARSER_CONTEXT *parser, PT_NODE *stmt)
char * pt_print_alias(PARSER_CONTEXT *parser, const PT_NODE *node)
char * parser_print_tree_list(PARSER_CONTEXT *parser, const PT_NODE *p)
PT_NODE * pt_sort_in_desc_order(PT_NODE *vlist)
int pt_check_same_datatype(const PARSER_CONTEXT *parser, const PT_NODE *p, const PT_NODE *q)
int pt_resolve_default_value(PARSER_CONTEXT *parser, PT_NODE *name)
const char * pt_get_select_from_name(PARSER_CONTEXT *parser, const PT_NODE *spec)
PT_NODE * pt_find_aggregate_functions_pre(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
PT_NODE * pt_cnf(PARSER_CONTEXT *parser, PT_NODE *node)
PT_NODE * pt_make_prim_data_type(PARSER_CONTEXT *parser, PT_TYPE_ENUM e)
void pt_no_double_insert_assignments(PARSER_CONTEXT *parser, PT_NODE *stmt)
DB_VALUE * pt_seq_value_to_db(PARSER_CONTEXT *parser, PT_NODE *values, DB_VALUE *db_value, PT_NODE **el_types)
PT_NODE * pt_get_input_host_vars(const PT_HOST_VARS *hv)
DB_OBJECT * pt_check_user_owns_class(PARSER_CONTEXT *parser, PT_NODE *cls_ref)
PT_NODE * pt_compile(PARSER_CONTEXT *parser, PT_NODE *volatile statement)
void pt_register_orphan(PARSER_CONTEXT *parser, const PT_NODE *orphan)
void parser_free_node_resources(PT_NODE *node)
PT_NODE * pt_tuple_value(PARSER_CONTEXT *parser, PT_NODE *name, CURSOR_ID *cursor_p, int index)
PT_NODE * pt_add_row_oid(PARSER_CONTEXT *parser, PT_NODE *stmt)
enum intl_codeset INTL_CODESET
PT_NODE * pt_get_cursor(const PT_HOST_VARS *hv)
PT_NODE * pt_values_part(const PT_NODE *insert_statement)
UINTPTR pt_find_id(PARSER_CONTEXT *parser, PT_NODE *node, UINTPTR id)
DB_TYPE pt_type_enum_to_db(const PT_TYPE_ENUM dt)
int pt_is_attr(PT_NODE *node)
bool pt_sort_spec_cover(PT_NODE *cur_list, PT_NODE *new_list)
PT_NODE * pt_find_name(PARSER_CONTEXT *parser, const PT_NODE *name, const PT_NODE *list)
PT_TYPE_ENUM pt_common_type(PT_TYPE_ENUM arg1_type, PT_TYPE_ENUM arg2_type)
int pt_check_set_count_set(PARSER_CONTEXT *parser, PT_NODE *arg1, PT_NODE *arg2)
DB_DOMAIN * pt_node_data_type_to_db_domain(PARSER_CONTEXT *parser, PT_NODE *dt, PT_TYPE_ENUM type)
int pt_common_collation(PT_COLL_INFER *arg1_coll_infer, PT_COLL_INFER *arg2_coll_infer, PT_COLL_INFER *arg3_coll_infer, const int args_w_coll, bool op_has_3_args, int *common_coll, INTL_CODESET *common_cs)
MISC_OPERAND pt_misc_to_qp_misc_operand(PT_MISC_TYPE misc_specifier)
PT_NODE * pt_pop(PARSER_CONTEXT *parser)
PT_NODE * pt_make_query_show_trace(PARSER_CONTEXT *parser)
void pt_set_expected_domain(PT_NODE *node, TP_DOMAIN *domain)
PT_NODE * pt_get_subquery_of_insert_select(const PT_NODE *insert_statement)
void * pt_internal_error(PARSER_CONTEXT *parser, const char *file, int line, const char *what)
bool pt_is_expr_wrapped_function(PARSER_CONTEXT *parser, const PT_NODE *node)
void pt_free_host_info(PT_HOST_VARS *hv)
PT_OP_TYPE pt_negate_op(PT_OP_TYPE op)
PT_NODE * pt_point_ref(PARSER_CONTEXT *parser, const PT_NODE *node)
DB_VALUE * pt_host_var_db_value(PARSER_CONTEXT *parser, PT_NODE *hv)
PT_NODE * pt_find_aggregate_functions_post(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
char * pt_append_string(const PARSER_CONTEXT *parser, const char *old_string, const char *new_tail)
DB_DOMAIN * pt_string_to_db_domain(const char *s, const char *class_name)
void pt_select_list_to_one_col(PARSER_CONTEXT *parser, PT_NODE *node, bool do_one)
const char * pt_show_node_type(PT_NODE *p)
PT_NODE * pt_expression_3(PARSER_CONTEXT *parser_ptr, PT_OP_TYPE op, PT_NODE *arg1, PT_NODE *arg2, PT_NODE *arg3)
PT_NODE * pt_lambda(PARSER_CONTEXT *parser_ptr, PT_NODE *expression, PT_NODE *name, PT_NODE *named_expression)
void pt_set_fill_default_in_path_expression(PT_NODE *node)
int pt_coerce_value(PARSER_CONTEXT *parser, PT_NODE *src, PT_NODE *dest, PT_TYPE_ENUM desired_type, PT_NODE *elem_type_list)
PT_NODE * pt_eval_value_path(PARSER_CONTEXT *parser, PT_NODE *path)
PARSER_VARCHAR * pt_print_node_value(PARSER_CONTEXT *parser, const PT_NODE *val)
PT_NODE * pt_add_table_name_to_from_list(PARSER_CONTEXT *parser, PT_NODE *select, const char *table_name, const char *table_alias, const DB_AUTH auth_bypass)
enum pt_node_type PT_NODE_TYPE
PT_NODE * pt_function_index_skip_expr(PT_NODE *node)
void pt_mark_spec_list_for_update(PARSER_CONTEXT *parser, PT_NODE *statement)
bool pt_is_reserved_word(const char *s)
enum view_handling VIEW_HANDLING
PT_NODE * pt_compile_trigger_stmt(PARSER_CONTEXT *parser, const char *trigger_stmt, DB_OBJECT *class_op, const char *name1, const char *name2)
DB_QUERY_TYPE * pt_get_titles(PARSER_CONTEXT *parser, PT_NODE *query)
void pt_add_type_to_set(PARSER_CONTEXT *parser, const PT_NODE *val, PT_NODE **set)
char * pt_print_query_spec_no_list(PARSER_CONTEXT *parser, const PT_NODE *node)
int pt_check_if_query(PARSER_CONTEXT *parser, PT_NODE *stmt)
const char * pt_show_partition_type(PT_PARTITION_TYPE t)
int pt_type_generic_func(PARSER_CONTEXT *parser, PT_NODE *node)
int pt_evaluate_db_value_expr(PARSER_CONTEXT *parser, PT_NODE *expr, PT_OP_TYPE op, DB_VALUE *arg1, DB_VALUE *arg2, DB_VALUE *arg3, DB_VALUE *result, TP_DOMAIN *domain, PT_NODE *o1, PT_NODE *o2, PT_NODE *o3, PT_MISC_TYPE qualifier)
DB_DOMAIN * pt_data_type_to_db_domain(PARSER_CONTEXT *parser, PT_NODE *dt, const char *class_name)
PT_NODE * pt_left_part(const PT_NODE *expr)
int pt_is_method_call(PT_NODE *node)
PT_NODE * pt_sm_attribute_default_value_to_node(PARSER_CONTEXT *parser, const SM_ATTRIBUTE *default_value)
PARSER_CONTEXT * parser_create_parser(void)
PT_NODE *(* PT_NODE_WALK_FUNCTION)(PARSER_CONTEXT *p, PT_NODE *tree, void *arg, int *continue_walk)
void pt_split_join_preds(PARSER_CONTEXT *parser, PT_NODE *predicates, PT_NODE **join_part, PT_NODE **after_cb_filter)
PARSER_CONTEXT * mq_virtual_queries(DB_OBJECT *class_obj)
void parser_free_lcks_classes(PARSER_CONTEXT *parser)
PT_NODE * pt_count_input_markers(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
void pt_free_orphans(PARSER_CONTEXT *parser)
PT_NODE * pt_pointer_stack_push(PARSER_CONTEXT *parser, PT_NODE *stack, PT_NODE *node)
PT_NODE * pt_make_query_show_collation(PARSER_CONTEXT *parser, int like_where_syntax, PT_NODE *like_or_where_expr)
PT_NODE * pt_check_instnum_post(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * pt_bind_param_node(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PARSER_VARCHAR * pt_print_bytes_alias(PARSER_CONTEXT *parser, const PT_NODE *node)
const char * pt_show_binopcode(PT_OP_TYPE n)
int pt_check_class_eq(PARSER_CONTEXT *parser, PT_NODE *p, PT_NODE *q)
PT_COMP_TO_BETWEEN_OP_CODE_TYPE
PT_NODE * pt_get_next_assignment(PT_ASSIGNMENTS_HELPER *helper)
int pt_validate_query_spec(PARSER_CONTEXT *parser, PT_NODE *s, struct db_object *c)
PT_NODE * pt_is_analytic_node(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
PT_NODE * pt_rewrite_set_eq_set(PARSER_CONTEXT *parser, PT_NODE *exp)
PT_NODE * pt_get_node_from_list(PT_NODE *list, int index)
size_t json_table_column_count
PT_NODE * pt_node_list(PARSER_CONTEXT *parser_ptr, PT_MISC_TYPE list_type, PT_NODE *list)