CUBRID Engine  latest
parser_support.c File Reference
#include "config.h"
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>
#include <ctype.h>
#include "authenticate.h"
#include "chartype.h"
#include "parser.h"
#include "parser_message.h"
#include "mem_block.hpp"
#include "memory_alloc.h"
#include "intl_support.h"
#include "error_manager.h"
#include "work_space.h"
#include "oid.h"
#include "class_object.h"
#include "optimizer.h"
#include "object_primitive.h"
#include "object_representation.h"
#include "parser_support.h"
#include "system_parameter.h"
#include "xasl_generation.h"
#include "schema_manager.h"
#include "object_print.h"
#include "show_meta.h"
#include "db.h"
#include "object_printer.hpp"
#include "string_buffer.hpp"
#include "dbtype.h"
#include "parser_allocator.hpp"

Go to the source code of this file.

Classes

struct  pt_host_vars
 

Macros

#define DEFAULT_VAR   "."
 
#define COMPATIBLE_WITH_INSTNUM(node)   (pt_is_expr_node (node) && PT_EXPR_INFO_IS_FLAGED (node, PT_EXPR_INFO_INSTNUM_C))
 
#define NOT_COMPATIBLE_WITH_INSTNUM(node)
 
#define COMPATIBLE_WITH_GROUPBYNUM(node)
 
#define NOT_COMPATIBLE_WITH_GROUPBYNUM(node)
 
#define DB_ENUM_ELEMENTS_MAX_AGG_SIZE   (DB_PAGESIZE / 2)
 
#define NULL_ATTRID   -1
 

Functions

static void pt_free_packing_buf (int slot)
 
static bool pt_datatypes_match (const PT_NODE *a, const PT_NODE *b)
 
static PT_NODEpt_get_select_from_spec (const PT_NODE *spec)
 
static PT_NODEpt_insert_host_var (PARSER_CONTEXT *parser, PT_NODE *h_var, PT_NODE *list)
 
static PT_NODEpt_collect_host_info (PARSER_CONTEXT *parser, PT_NODE *node, void *h_var, int *continue_walk)
 
static PT_NODEpt_collect_parameters (PARSER_CONTEXT *parser, PT_NODE *node, void *param_list, int *continue_walk)
 
static PT_NODEpt_must_be_filtering (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static bool pt_is_filtering_predicate (PARSER_CONTEXT *parser, PT_NODE *predicate)
 
static PT_NODEpt_is_filtering_skip_and_or (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEpt_create_param_for_value (PARSER_CONTEXT *parser, PT_NODE *value, int host_var_index)
 
static PT_NODEpt_make_dotted_identifier (PARSER_CONTEXT *parser, const char *identifier_str)
 
static PT_NODEpt_make_dotted_identifier_internal (PARSER_CONTEXT *parser, const char *identifier_str, int depth)
 
static int pt_add_name_col_to_sel_list (PARSER_CONTEXT *parser, PT_NODE *select, const char *identifier_str, const char *col_alias)
 
static void pt_add_string_col_to_sel_list (PARSER_CONTEXT *parser, PT_NODE *select, const char *identifier_str, const char *col_alias)
 
static PT_NODEpt_make_pred_name_int_val (PARSER_CONTEXT *parser, PT_OP_TYPE op_type, const char *col_name, const int int_value)
 
static PT_NODEpt_make_pred_name_string_val (PARSER_CONTEXT *parser, PT_OP_TYPE op_type, const char *identifier_str, const char *str_value)
 
static PT_NODEpt_make_pred_with_identifiers (PARSER_CONTEXT *parser, PT_OP_TYPE op_type, const char *lhs_identifier, const char *rhs_identifier)
 
static PT_NODEpt_make_if_with_expressions (PARSER_CONTEXT *parser, PT_NODE *pred, PT_NODE *expr1, PT_NODE *expr2, const char *alias)
 
static PT_NODEpt_make_if_with_strings (PARSER_CONTEXT *parser, PT_NODE *pred, const char *string1, const char *string2, const char *alias)
 
static PT_NODEpt_make_like_col_expr (PARSER_CONTEXT *parser, PT_NODE *rhs_expr, const char *col_name)
 
static PT_NODEpt_make_outer_select_for_show_stmt (PARSER_CONTEXT *parser, PT_NODE *inner_select, const char *select_alias)
 
static PT_NODEpt_make_field_type_expr_node (PARSER_CONTEXT *parser)
 
static PT_NODEpt_make_select_count_star (PARSER_CONTEXT *parser)
 
static PT_NODEpt_make_field_extra_expr_node (PARSER_CONTEXT *parser)
 
static PT_NODEpt_make_field_key_type_expr_node (PARSER_CONTEXT *parser)
 
static PT_NODEpt_make_sort_spec_with_identifier (PARSER_CONTEXT *parser, const char *identifier, PT_MISC_TYPE sort_mode)
 
static PT_NODEpt_make_sort_spec_with_number (PARSER_CONTEXT *parser, const int number_pos, PT_MISC_TYPE sort_mode)
 
static PT_NODEpt_make_collection_type_subquery_node (PARSER_CONTEXT *parser, const char *table_name)
 
static PT_NODEpt_make_dummy_query_check_table (PARSER_CONTEXT *parser, const char *table_name)
 
static PT_NODEpt_make_query_user_groups (PARSER_CONTEXT *parser, const char *user_name)
 
static void pt_help_show_create_table (PARSER_CONTEXT *parser, PT_NODE *table_name, string_buffer &strbuf)
 
static int pt_get_query_limit_from_orderby_for (PARSER_CONTEXT *parser, PT_NODE *orderby_for, DB_VALUE *upper_limit, bool *has_limit)
 
static int pt_get_query_limit_from_limit (PARSER_CONTEXT *parser, PT_NODE *limit, DB_VALUE *limit_val)
 
static PT_NODEpt_create_delete_stmt (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *target_class)
 
static PT_NODEpt_is_spec_referenced (PARSER_CONTEXT *parser, PT_NODE *node, void *void_arg, int *continue_walk)
 
static PT_NODEpt_rewrite_derived_for_upd_del (PARSER_CONTEXT *parser, PT_NODE *spec, PT_SPEC_FLAG what_for, bool add_as_attr)
 
static PT_NODEpt_process_spec_for_delete (PARSER_CONTEXT *parser, PT_NODE *spec)
 
static PT_NODEpt_process_spec_for_update (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *name)
 
static bool check_arg_valid (PARSER_CONTEXT *parser, const SHOWSTMT_NAMED_ARG *arg_meta, int arg_num, PT_NODE *val)
 
static PT_NODEpt_resolve_showstmt_args_unnamed (PARSER_CONTEXT *parser, const SHOWSTMT_NAMED_ARG *arg_infos, int arg_info_count, PT_NODE *args)
 
static PT_NODEpt_resolve_showstmt_args_named (PARSER_CONTEXT *parser, const SHOWSTMT_NAMED_ARG *arg_infos, int arg_info_count, PT_NODE *args)
 
PT_NODEpt_make_integer_value (PARSER_CONTEXT *parser, const int value_int)
 
PT_NODEpt_make_string_value (PARSER_CONTEXT *parser, const char *value_string)
 
PT_NODEpt_and (PARSER_CONTEXT *parser, const PT_NODE *arg1, const PT_NODE *arg2)
 
PT_NODEpt_union (PARSER_CONTEXT *parser, PT_NODE *arg1, PT_NODE *arg2)
 
PT_NODEpt_name (PARSER_CONTEXT *parser, const char *name)
 
PT_NODEpt_table_option (PARSER_CONTEXT *parser, const PT_TABLE_OPTION_TYPE option, PT_NODE *val)
 
PT_NODEpt_expression (PARSER_CONTEXT *parser, PT_OP_TYPE op, PT_NODE *arg1, PT_NODE *arg2, PT_NODE *arg3)
 
PT_NODEpt_expression_0 (PARSER_CONTEXT *parser, PT_OP_TYPE op)
 
PT_NODEpt_expression_1 (PARSER_CONTEXT *parser, PT_OP_TYPE op, PT_NODE *arg1)
 
PT_NODEpt_expression_2 (PARSER_CONTEXT *parser, PT_OP_TYPE op, PT_NODE *arg1, PT_NODE *arg2)
 
PT_NODEpt_expression_3 (PARSER_CONTEXT *parser, PT_OP_TYPE op, PT_NODE *arg1, PT_NODE *arg2, PT_NODE *arg3)
 
PT_NODEpt_node_list (PARSER_CONTEXT *parser, PT_MISC_TYPE list_type, PT_NODE *list)
 
PT_NODEpt_entity (PARSER_CONTEXT *parser, const PT_NODE *entity_name, const PT_NODE *range_var, const PT_NODE *flat_list)
 
PT_NODEpt_tuple_value (PARSER_CONTEXT *parser, PT_NODE *name, CURSOR_ID *cursor_p, int index)
 
PT_NODEpt_insert_value (PARSER_CONTEXT *parser, PT_NODE *node)
 
bool pt_name_equal (PARSER_CONTEXT *parser, const PT_NODE *name1, const PT_NODE *name2)
 
PT_NODEpt_find_name (PARSER_CONTEXT *parser, const PT_NODE *name, const PT_NODE *list)
 
bool pt_is_aggregate_function (PARSER_CONTEXT *parser, const PT_NODE *node)
 
bool pt_is_analytic_function (PARSER_CONTEXT *parser, const PT_NODE *node)
 
bool pt_is_expr_wrapped_function (PARSER_CONTEXT *parser, const PT_NODE *node)
 
PT_NODEpt_find_spec_in_statement (PARSER_CONTEXT *parser, const PT_NODE *stmt, const PT_NODE *name)
 
PT_NODEpt_find_spec (PARSER_CONTEXT *parser, const PT_NODE *from, const PT_NODE *name)
 
PT_NODEpt_find_aggregate_names (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
PT_NODEpt_find_aggregate_functions_pre (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
PT_NODEpt_find_aggregate_functions_post (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
PT_NODEpt_is_analytic_node_post (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
PT_NODEpt_is_analytic_node (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
PT_NODEpt_has_non_idx_sarg_coll_pre (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
PT_NODEpt_is_inst_or_orderby_num_node_post (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
PT_NODEpt_is_inst_or_orderby_num_node (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
int pt_is_ddl_statement (const PT_NODE *node)
 
int pt_is_method_call (PT_NODE *node)
 
int pt_is_attr (PT_NODE *node)
 
int pt_is_function_index_expression (PT_NODE *node)
 
PT_NODEpt_is_pseudocolumn_node (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
int pt_instnum_compatibility (PT_NODE *expr)
 
int pt_groupbynum_compatibility (PT_NODE *expr)
 
PT_NODEpt_check_instnum_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_check_instnum_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_check_groupbynum_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_check_groupbynum_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_check_orderbynum_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_check_orderbynum_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_check_subquery_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_check_subquery_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_expr_disallow_op_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
void pt_check_level_expr (PARSER_CONTEXT *parser, PT_NODE *expr, bool *has_greater, bool *has_lesser)
 
PT_NODEpt_from_list_part (const PT_NODE *node)
 
PT_NODEpt_from_entity_part (const PT_NODE *node)
 
PT_NODEpt_left_part (const PT_NODE *node)
 
PT_NODEpt_right_part (const PT_NODE *node)
 
PT_NODEpt_get_end_path_node (PT_NODE *node)
 
PT_NODEpt_get_first_arg_ignore_prior (PT_NODE *node)
 
PT_NODEpt_class_part (const PT_NODE *node)
 
PT_NODEpt_attrs_part (const PT_NODE *node)
 
PT_NODEpt_values_part (const PT_NODE *node)
 
PT_NODEpt_get_subquery_of_insert_select (const PT_NODE *node)
 
const char * pt_string_part (const PT_NODE *node)
 
static bool pt_is_filtering_expression (PARSER_CONTEXT *parser, PT_NODE *expression)
 
void pt_split_join_preds (PARSER_CONTEXT *parser, PT_NODE *predicates, PT_NODE **join_part, PT_NODE **after_cb_filter)
 
PT_NODEpt_node_next (const PT_NODE *node)
 
void * pt_node_etc (const PT_NODE *node)
 
void pt_null_etc (PT_NODE *node)
 
void pt_record_warning (PARSER_CONTEXT *parser, int stmt_no, int line_no, int col_no, const char *msg)
 
PT_NODEpt_get_warnings (const PARSER_CONTEXT *parser)
 
void pt_reset_error (PARSER_CONTEXT *parser)
 
int pt_statement_line_number (const PT_NODE *stmt)
 
const char * pt_get_select_from_name (PARSER_CONTEXT *parser, const PT_NODE *spec)
 
const char * pt_get_spec_name (PARSER_CONTEXT *parser, const PT_NODE *selqry)
 
bool pt_has_aggregate (PARSER_CONTEXT *parser, PT_NODE *node)
 
bool pt_has_analytic (PARSER_CONTEXT *parser, PT_NODE *node)
 
bool pt_has_inst_or_orderby_num (PARSER_CONTEXT *parser, PT_NODE *node)
 
PT_HOST_VARSpt_host_info (PARSER_CONTEXT *parser, PT_NODE *stmt)
 
void pt_free_host_info (PT_HOST_VARS *hv)
 
PT_NODEpt_get_parameters (PARSER_CONTEXT *parser, PT_NODE *stmt)
 
PT_NODEpt_get_cursor (const PT_HOST_VARS *hv)
 
const char * pt_get_name (PT_NODE *nam)
 
int pt_host_var_index (const PT_NODE *hv)
 
PT_NODEpt_get_input_host_vars (const PT_HOST_VARS *hv)
 
PT_NODEpt_get_output_host_vars (const PT_HOST_VARS *hv)
 
void pt_set_update_object (PARSER_CONTEXT *parser, PT_NODE *node)
 
char * pt_chop_trailing_dots (PARSER_CONTEXT *parser, const char *msg)
 
const char * pt_get_proxy_spec_name (const char *qspec)
 
void pt_register_orphan (PARSER_CONTEXT *parser, const PT_NODE *orphan)
 
void pt_register_orphan_db_value (PARSER_CONTEXT *parser, const DB_VALUE *orphan)
 
void pt_free_orphans (PARSER_CONTEXT *parser)
 
bool pt_sort_spec_cover (PT_NODE *cur_list, PT_NODE *new_list)
 
void pt_enter_packing_buf (void)
 
char * pt_alloc_packing_buf (int size)
 
void pt_exit_packing_buf (void)
 
void pt_final_packing_buf (void)
 
void regu_set_error_with_zero_args (int err_type)
 
PT_NODEpt_limit_to_numbering_expr (PARSER_CONTEXT *parser, PT_NODE *limit, PT_OP_TYPE num_op, bool is_gby_num)
 
PT_NODEpt_rewrite_to_auto_param (PARSER_CONTEXT *parser, PT_NODE *value)
 
void pt_copy_statement_flags (PT_NODE *source, PT_NODE *destination)
 
int pt_get_dup_key_oid_var_index (PARSER_CONTEXT *parser, PT_NODE *update_statement)
 
PT_NODEpt_dup_key_update_stmt (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *assignment)
 
void pt_fixup_column_type (PT_NODE *col)
 
int pt_get_select_query_columns (PARSER_CONTEXT *parser, PT_NODE *create_select, DB_QUERY_TYPE **query_columns)
 
int pt_node_list_to_array (PARSER_CONTEXT *parser, PT_NODE *arg_list, PT_NODE *arg_array[], const int array_size, int *num_args)
 
PT_NODEpt_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)
 
static int pt_make_outer_select_for_show_columns (PARSER_CONTEXT *parser, PT_NODE *inner_select, const char *select_alias, const char **query_names, const char **query_aliases, int names_length, int is_show_full, PT_NODE **outer_node)
 
static PT_NODEpt_make_collation_expr_node (PARSER_CONTEXT *parser)
 
PT_NODEpt_make_query_show_table (PARSER_CONTEXT *parser, bool is_full_syntax, int like_where_syntax, PT_NODE *like_or_where_expr)
 
PT_NODEpt_make_query_showstmt (PARSER_CONTEXT *parser, unsigned int type, PT_NODE *args, int like_where_syntax, PT_NODE *like_or_where_expr)
 
PT_NODEpt_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_NODEpt_make_query_show_create_table (PARSER_CONTEXT *parser, PT_NODE *table_name)
 
PT_NODEpt_make_query_show_create_view (PARSER_CONTEXT *parser, PT_NODE *view_identifier)
 
PT_NODEpt_make_query_show_exec_stats (PARSER_CONTEXT *parser)
 
PT_NODEpt_make_query_show_exec_stats_all (PARSER_CONTEXT *parser)
 
PT_NODEpt_make_query_show_grants_curr_usr (PARSER_CONTEXT *parser)
 
PT_NODEpt_make_query_show_grants (PARSER_CONTEXT *parser, const char *original_user_name)
 
int pt_split_delete_stmt (PARSER_CONTEXT *parser, PT_NODE *delete_stmt)
 
PT_NODEpt_make_query_describe_w_identifier (PARSER_CONTEXT *parser, PT_NODE *original_cls_id, PT_NODE *att_id)
 
PT_NODEpt_make_query_show_index (PARSER_CONTEXT *parser, PT_NODE *original_cls_id)
 
PT_NODEpt_convert_to_logical_expr (PARSER_CONTEXT *parser, PT_NODE *node, bool use_parens_inside, bool use_parens_outside)
 
bool pt_is_operator_logical (PT_OP_TYPE op)
 
bool pt_list_has_logical_nodes (PT_NODE *list)
 
bool pt_sort_spec_cover_groupby (PARSER_CONTEXT *parser, PT_NODE *sort_list, PT_NODE *group_list, PT_NODE *tree)
 
void pt_mark_spec_list_for_delete (PARSER_CONTEXT *parser, PT_NODE *statement)
 
void pt_mark_spec_list_for_update (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int pt_check_grammar_charset_collation (PARSER_CONTEXT *parser, PT_NODE *charset_node, PT_NODE *coll_node, int *charset, int *coll_id)
 
PT_NODEpt_make_tuple_value_reference (PARSER_CONTEXT *parser, PT_NODE *name, PT_NODE *select_list, CURSOR_ID *cursor_p)
 
PT_NODEpt_make_query_show_collation (PARSER_CONTEXT *parser, int like_where_syntax, PT_NODE *like_or_where_expr)
 
int pt_get_query_limit_value (PARSER_CONTEXT *parser, PT_NODE *query, DB_VALUE *limit_val)
 
bool pt_check_ordby_num_for_multi_range_opt (PARSER_CONTEXT *parser, PT_NODE *query, bool *mro_candidate, bool *cannot_eval)
 
PT_NODEpt_find_node_type_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_find_op_type_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
const char * pt_partition_name (PARSER_CONTEXT *parser, const char *class_name, const char *partition)
 
void pt_free_statement_xasl_id (PT_NODE *statement)
 
int pt_check_enum_data_type (PARSER_CONTEXT *parser, PT_NODE *dt)
 
bool pt_recompile_for_limit_optimizations (PARSER_CONTEXT *parser, PT_NODE *statement, int xasl_flag)
 
PT_NODEpt_make_query_show_trace (PARSER_CONTEXT *parser)
 
PT_NODEpt_has_non_groupby_column_node (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
void pt_get_default_expression_from_data_default_node (PARSER_CONTEXT *parser, PT_NODE *data_default_node, DB_DEFAULT_EXPR *default_expr)
 
PT_NODEpt_has_name_oid (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 

Variables

int qp_Packing_er_code = NO_ERROR
 
static const int PACKING_MMGR_CHUNK_SIZE = 1024
 
static const int PACKING_MMGR_BLOCK_SIZE = 10
 
static int packing_heap_num_slot = 0
 
static HL_HEAPID * packing_heap = NULL
 
static int packing_level = 0
 

Macro Definition Documentation

#define COMPATIBLE_WITH_GROUPBYNUM (   node)
Value:
((pt_is_function (node) && node->info.function.function_type == PT_GROUPBY_NUM) \
#define pt_is_expr_node(n)
Definition: parse_tree.h:261
#define PT_EXPR_INFO_GROUPBYNUM_C
Definition: parse_tree.h:2211
#define pt_is_function(n)
Definition: parse_tree.h:262
#define PT_EXPR_INFO_IS_FLAGED(e, f)
Definition: parse_tree.h:2238

Definition at line 85 of file parser_support.c.

Referenced by pt_groupbynum_compatibility().

#define COMPATIBLE_WITH_INSTNUM (   node)    (pt_is_expr_node (node) && PT_EXPR_INFO_IS_FLAGED (node, PT_EXPR_INFO_INSTNUM_C))

Definition at line 78 of file parser_support.c.

Referenced by pt_instnum_compatibility().

#define DB_ENUM_ELEMENTS_MAX_AGG_SIZE   (DB_PAGESIZE / 2)

Definition at line 96 of file parser_support.c.

Referenced by pt_check_enum_data_type().

#define DEFAULT_VAR   "."

Definition at line 68 of file parser_support.c.

#define NOT_COMPATIBLE_WITH_GROUPBYNUM (   node)
Value:
(pt_is_dot_node (node) || pt_is_attr (node) || pt_is_query (node) \
#define pt_is_expr_node(n)
Definition: parse_tree.h:261
#define pt_is_query(n)
Definition: parse_tree.h:258
#define pt_is_dot_node(n)
Definition: parse_tree.h:260
int pt_is_attr(PT_NODE *node)
#define PT_EXPR_INFO_GROUPBYNUM_NC
Definition: parse_tree.h:2212
#define PT_EXPR_INFO_IS_FLAGED(e, f)
Definition: parse_tree.h:2238

Definition at line 89 of file parser_support.c.

Referenced by pt_groupbynum_compatibility().

#define NOT_COMPATIBLE_WITH_INSTNUM (   node)
Value:
#define pt_is_expr_node(n)
Definition: parse_tree.h:261
#define PT_EXPR_INFO_INSTNUM_NC
Definition: parse_tree.h:2210
#define pt_is_dot_node(n)
Definition: parse_tree.h:260
#define pt_is_correlated_subquery(n)
Definition: parse_tree.h:259
int pt_is_attr(PT_NODE *node)
#define PT_EXPR_INFO_IS_FLAGED(e, f)
Definition: parse_tree.h:2238

Definition at line 81 of file parser_support.c.

Referenced by pt_instnum_compatibility().

Function Documentation

static void pt_add_string_col_to_sel_list ( PARSER_CONTEXT parser,
PT_NODE select,
const char *  identifier_str,
const char *  col_alias 
)
static
PT_NODE* pt_and ( PARSER_CONTEXT parser,
const PT_NODE arg1,
const PT_NODE arg2 
)

Definition at line 223 of file parser_support.c.

References pt_expr_info::arg1, pt_expr_info::arg2, pt_statement_info::expr, parser_node::info, pt_expr_info::op, parser_new_node(), PT_AND, and PT_EXPR.

Referenced by pt_transform_cnf_post().

Here is the caller graph for this function:

PT_NODE* pt_attrs_part ( const PT_NODE node)

Definition at line 2231 of file parser_support.c.

References pt_insert_info::attr_list, parser_node::info, pt_statement_info::insert, parser_node::node_type, NULL, and PT_INSERT.

Referenced by uci_static().

Here is the caller graph for this function:

PT_NODE* pt_check_groupbynum_post ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
PT_NODE* pt_check_groupbynum_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 1584 of file parser_support.c.

References parser_node::node_type, PT_SELECT, and PT_STOP_WALK.

Referenced by pt_semantic_check_local(), and pt_split_having_grbynum().

Here is the caller graph for this function:

PT_NODE* pt_check_instnum_post ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
PT_NODE* pt_check_instnum_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 1539 of file parser_support.c.

References parser_node::node_type, PT_SELECT, and PT_STOP_WALK.

Referenced by pt_split_access_if_instnum(), pt_split_if_instnum(), and qo_analyze_term().

Here is the caller graph for this function:

bool pt_check_ordby_num_for_multi_range_opt ( PARSER_CONTEXT parser,
PT_NODE query,
bool mro_candidate,
bool cannot_eval 
)
PT_NODE* pt_check_orderbynum_post ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 1648 of file parser_support.c.

References pt_statement_info::expr, parser_node::info, parser_node::node_type, pt_expr_info::op, PT_CONTINUE_WALK, PT_EXPR, PT_ORDERBY_NUM, and PT_SELECT.

Referenced by pt_check_order_by(), and qo_reduce_order_by().

Here is the caller graph for this function:

PT_NODE* pt_check_orderbynum_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 1629 of file parser_support.c.

References parser_node::node_type, PT_SELECT, and PT_STOP_WALK.

Referenced by pt_check_order_by(), and qo_reduce_order_by().

Here is the caller graph for this function:

PT_NODE* pt_check_subquery_post ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
PT_NODE* pt_check_subquery_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 1674 of file parser_support.c.

References parser_node::node_type, PT_SELECT, and PT_STOP_WALK.

char* pt_chop_trailing_dots ( PARSER_CONTEXT parser,
const char *  msg 
)

Definition at line 3334 of file parser_support.c.

References assert, char_isspace(), NULL, pt_append_string(), and strlen.

Referenced by do_insert_template().

Here is the caller graph for this function:

static PT_NODE * pt_collect_parameters ( PARSER_CONTEXT parser,
PT_NODE node,
void *  param_list,
int *  continue_walk 
)
static
PT_NODE* pt_convert_to_logical_expr ( PARSER_CONTEXT parser,
PT_NODE node,
bool  use_parens_inside,
bool  use_parens_outside 
)
void pt_copy_statement_flags ( PT_NODE source,
PT_NODE destination 
)

Definition at line 4042 of file parser_support.c.

References parser_node::cannot_prepare, parser_node::flag, parser_node::recompile, parser_node::si_datetime, and parser_node::si_tran_id.

Referenced by execute_create_select_query().

Here is the caller graph for this function:

static PT_NODE * pt_create_delete_stmt ( PARSER_CONTEXT parser,
PT_NODE spec,
PT_NODE target_class 
)
static
static bool pt_datatypes_match ( const PT_NODE a,
const PT_NODE b 
)
static

Definition at line 485 of file parser_support.c.

References pt_statement_info::data_type, parser_node::info, PT_TYPE_OBJECT, parser_node::type_enum, and pt_data_type_info::virt_object.

Referenced by pt_name_equal().

Here is the caller graph for this function:

PT_NODE* pt_entity ( PARSER_CONTEXT parser,
const PT_NODE entity_name,
const PT_NODE range_var,
const PT_NODE flat_list 
)
PT_NODE* pt_expr_disallow_op_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
PT_NODE* pt_expression ( PARSER_CONTEXT parser,
PT_OP_TYPE  op,
PT_NODE arg1,
PT_NODE arg2,
PT_NODE arg3 
)
PT_NODE* pt_expression_0 ( PARSER_CONTEXT parser,
PT_OP_TYPE  op 
)

Definition at line 364 of file parser_support.c.

References NULL, and pt_expression().

Referenced by pt_find_attr_in_class_list(), and pt_resolve_default_value().

Here is the caller graph for this function:

PT_NODE* pt_expression_1 ( PARSER_CONTEXT parser,
PT_OP_TYPE  op,
PT_NODE arg1 
)

Definition at line 370 of file parser_support.c.

References NULL, and pt_expression().

Referenced by pt_dup_key_update_stmt(), and qo_rewrite_like_for_index_scan().

Here is the caller graph for this function:

PT_NODE* pt_expression_2 ( PARSER_CONTEXT parser,
PT_OP_TYPE  op,
PT_NODE arg1,
PT_NODE arg2 
)
PT_NODE* pt_expression_3 ( PARSER_CONTEXT parser,
PT_OP_TYPE  op,
PT_NODE arg1,
PT_NODE arg2,
PT_NODE arg3 
)

Definition at line 382 of file parser_support.c.

References pt_expression().

void pt_final_packing_buf ( void  )

Definition at line 3649 of file parser_support.c.

References free_and_init, i, packing_heap, packing_heap_num_slot, packing_level, and pt_free_packing_buf().

Referenced by parser_final().

Here is the caller graph for this function:

PT_NODE* pt_find_name ( PARSER_CONTEXT parser,
const PT_NODE name,
const PT_NODE list 
)

Definition at line 601 of file parser_support.c.

References parser_node::next, NULL, and pt_name_equal().

Referenced by pt_append_assignment_references(), pt_collect_parameters(), pt_expand_analytic_node(), and pt_to_aggregate_node().

Here is the caller graph for this function:

PT_NODE* pt_find_node_type_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 9210 of file parser_support.c.

References parser_node::node_type, NULL, and PT_STOP_WALK.

Referenced by insert_local().

Here is the caller graph for this function:

PT_NODE* pt_find_op_type_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 9240 of file parser_support.c.

References pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_EXPR, and PT_STOP_WALK.

Referenced by pt_semantic_check_local().

Here is the caller graph for this function:

void pt_free_host_info ( PT_HOST_VARS hv)

Definition at line 3133 of file parser_support.c.

References free_and_init.

Referenced by db_get_input_markers(), and db_get_output_markers().

Here is the caller graph for this function:

void pt_free_orphans ( PARSER_CONTEXT parser)

Definition at line 3475 of file parser_support.c.

References parser_node::next, NULL, parser_context::orphans, and parser_free_tree().

Referenced by db_close_session_local(), do_execute_statement(), and do_statement().

Here is the caller graph for this function:

static void pt_free_packing_buf ( int  slot)
static

Definition at line 3626 of file parser_support.c.

References db_destroy_ostk_heap(), and packing_heap.

Referenced by pt_exit_packing_buf(), and pt_final_packing_buf().

Here is the caller graph for this function:

PT_NODE* pt_from_entity_part ( const PT_NODE node)

Definition at line 2026 of file parser_support.c.

References pt_spec_info::entity_name, parser_node::info, parser_node::node_type, NULL, PT_SPEC, and pt_statement_info::spec.

Referenced by uci_static().

Here is the caller graph for this function:

PT_NODE* pt_get_cursor ( const PT_HOST_VARS hv)

Definition at line 3193 of file parser_support.c.

References pt_host_vars::cursor, and NULL.

PT_NODE* pt_get_input_host_vars ( const PT_HOST_VARS hv)

Definition at line 3252 of file parser_support.c.

References pt_host_vars::inputs, and NULL.

Referenced by db_get_input_markers().

Here is the caller graph for this function:

PT_NODE* pt_get_output_host_vars ( const PT_HOST_VARS hv)

Definition at line 3271 of file parser_support.c.

References NULL, pt_host_vars::out_descr, and pt_host_vars::outputs.

Referenced by db_get_output_markers().

Here is the caller graph for this function:

PT_NODE* pt_get_parameters ( PARSER_CONTEXT parser,
PT_NODE stmt 
)

Definition at line 3177 of file parser_support.c.

References NULL, parser_walk_tree(), and pt_collect_parameters().

Referenced by db_get_parameters().

Here is the caller graph for this function:

const char* pt_get_proxy_spec_name ( const char *  qspec)

Definition at line 3364 of file parser_support.c.

References free_and_init, NULL, parser_create_parser(), parser_free_parser(), parser_parse_string(), pt_get_spec_name(), pt_has_error, and strlen.

Referenced by pt_vclass_compatible().

Here is the caller graph for this function:

const char* pt_get_select_from_name ( PARSER_CONTEXT parser,
const PT_NODE spec 
)

Definition at line 2754 of file parser_support.c.

References parser_node::info, pt_statement_info::name, NULL, pt_name_info::original, pt_append_string(), pt_get_select_from_spec(), and pt_name_info::resolved.

Referenced by pt_get_spec_name().

Here is the caller graph for this function:

static PT_NODE * pt_get_select_from_spec ( const PT_NODE spec)
static
const char* pt_get_spec_name ( PARSER_CONTEXT parser,
const PT_NODE selqry 
)
PT_NODE* pt_get_warnings ( const PARSER_CONTEXT parser)

Definition at line 2622 of file parser_support.c.

References NULL, and parser_context::warnings.

Referenced by db_get_warnings().

Here is the caller graph for this function:

bool pt_has_inst_or_orderby_num ( PARSER_CONTEXT parser,
PT_NODE node 
)

Definition at line 2975 of file parser_support.c.

References parser_walk_tree(), pt_is_inst_or_orderby_num_node(), and pt_is_inst_or_orderby_num_node_post().

Referenced by pt_to_analytic_final_node().

Here is the caller graph for this function:

PT_NODE* pt_has_name_oid ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 9663 of file parser_support.c.

References parser_node::node_type, PT_DATA_TYPE, PT_IS_OID_NAME, PT_NAME, PT_STOP_WALK, PT_TYPE_OBJECT, and parser_node::type_enum.

Referenced by db_can_execute_statement_with_autocommit().

Here is the caller graph for this function:

PT_NODE* pt_has_non_groupby_column_node ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
PT_NODE* pt_has_non_idx_sarg_coll_pre ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)
PT_HOST_VARS* pt_host_info ( PARSER_CONTEXT parser,
PT_NODE stmt 
)

Definition at line 3113 of file parser_support.c.

References NULL, parser_walk_tree(), and pt_collect_host_info().

Referenced by db_get_input_markers(), and db_get_output_markers().

Here is the caller graph for this function:

int pt_host_var_index ( const PT_NODE hv)

Definition at line 3233 of file parser_support.c.

References pt_statement_info::host_var, pt_host_var_info::index, parser_node::info, parser_node::node_type, and PT_HOST_VAR.

Referenced by db_marker_index().

Here is the caller graph for this function:

static PT_NODE * pt_insert_host_var ( PARSER_CONTEXT parser,
PT_NODE h_var,
PT_NODE list 
)
static

Definition at line 2994 of file parser_support.c.

References pt_statement_info::host_var, pt_host_var_info::index, parser_node::info, parser_node::next, NULL, parser_copy_tree(), and PT_INTERNAL_ERROR.

Referenced by pt_collect_host_info().

Here is the caller graph for this function:

PT_NODE* pt_insert_value ( PARSER_CONTEXT parser,
PT_NODE node 
)

Definition at line 466 of file parser_support.c.

References parser_node::info, pt_statement_info::insert_value, NULL, pt_insert_value_info::original_node, parser_new_node(), and PT_INSERT_VALUE.

Referenced by do_evaluate_insert_values().

Here is the caller graph for this function:

bool pt_is_analytic_function ( PARSER_CONTEXT parser,
const PT_NODE node 
)
PT_NODE* pt_is_analytic_node ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)
PT_NODE* pt_is_analytic_node_post ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)

Definition at line 1061 of file parser_support.c.

References PT_CONTINUE_WALK, and PT_STOP_WALK.

Referenced by pt_has_analytic().

Here is the caller graph for this function:

static bool pt_is_filtering_expression ( PARSER_CONTEXT parser,
PT_NODE expression 
)
static

Definition at line 2469 of file parser_support.c.

References assert, parser_node::next, NULL, parser_node::or_next, parser_walk_tree(), and pt_is_filtering_skip_and_or().

Referenced by pt_split_join_preds().

Here is the caller graph for this function:

static bool pt_is_filtering_predicate ( PARSER_CONTEXT parser,
PT_NODE predicate 
)
static
static PT_NODE * pt_is_filtering_skip_and_or ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static

Definition at line 2434 of file parser_support.c.

References PT_AND, PT_CONTINUE_WALK, PT_IS_EXPR_NODE_WITH_OPERATOR, pt_is_filtering_predicate(), PT_OR, and PT_STOP_WALK.

Referenced by pt_is_filtering_expression().

Here is the caller graph for this function:

int pt_is_function_index_expression ( PT_NODE node)

Definition at line 1294 of file parser_support.c.

References parser_node::node_type, NULL, PT_EXPR, PT_EXPR_INFO_FUNCTION_INDEX, and PT_EXPR_INFO_IS_FLAGED.

Referenced by qo_analyze_term(), qo_convert_to_range(), qo_reduce_equality_terms(), and qo_rewrite_subqueries().

Here is the caller graph for this function:

PT_NODE* pt_is_inst_or_orderby_num_node ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)

Definition at line 1179 of file parser_support.c.

References parser_node::node_type, PT_IS_INSTNUM, PT_IS_ORDERBYNUM, PT_IS_QUERY_NODE_TYPE, PT_LIST_WALK, and PT_STOP_WALK.

Referenced by pt_has_inst_or_orderby_num().

Here is the caller graph for this function:

PT_NODE* pt_is_inst_or_orderby_num_node_post ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)

Definition at line 1154 of file parser_support.c.

References PT_CONTINUE_WALK, and PT_STOP_WALK.

Referenced by pt_has_inst_or_orderby_num().

Here is the caller graph for this function:

int pt_is_method_call ( PT_NODE node)

Definition at line 1251 of file parser_support.c.

References parser_node::node_type, NULL, pt_get_end_path_node(), and PT_METHOD_CALL.

Referenced by pt_check_and_replace_hostvar(), and pt_fillin_type_size().

Here is the caller graph for this function:

PT_NODE* pt_is_pseudocolumn_node ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)
PT_NODE* pt_left_part ( const PT_NODE node)

Definition at line 2042 of file parser_support.c.

References pt_dot_info::arg1, pt_expr_info::arg1, pt_statement_info::dot, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, PT_DOT_, and PT_EXPR.

Referenced by gen_outer().

Here is the caller graph for this function:

bool pt_list_has_logical_nodes ( PT_NODE list)

Definition at line 7875 of file parser_support.c.

References parser_node::next, PT_TYPE_LOGICAL, and parser_node::type_enum.

Referenced by pt_eval_expr_type(), pt_eval_function_type_new(), and pt_eval_function_type_old().

Here is the caller graph for this function:

static PT_NODE * pt_make_dotted_identifier_internal ( PARSER_CONTEXT parser,
const char *  identifier_str,
int  depth 
)
static
static PT_NODE * pt_make_dummy_query_check_table ( PARSER_CONTEXT parser,
const char *  table_name 
)
static
static PT_NODE * pt_make_if_with_expressions ( PARSER_CONTEXT parser,
PT_NODE pred,
PT_NODE expr1,
PT_NODE expr2,
const char *  alias 
)
static
static PT_NODE * pt_make_if_with_strings ( PARSER_CONTEXT parser,
PT_NODE pred,
const char *  string1,
const char *  string2,
const char *  alias 
)
static
static PT_NODE * pt_make_like_col_expr ( PARSER_CONTEXT parser,
PT_NODE rhs_expr,
const char *  col_name 
)
static
static PT_NODE * pt_make_pred_name_int_val ( PARSER_CONTEXT parser,
PT_OP_TYPE  op_type,
const char *  col_name,
const int  int_value 
)
static
static PT_NODE * pt_make_pred_name_string_val ( PARSER_CONTEXT parser,
PT_OP_TYPE  op_type,
const char *  identifier_str,
const char *  str_value 
)
static
static PT_NODE * pt_make_pred_with_identifiers ( PARSER_CONTEXT parser,
PT_OP_TYPE  op_type,
const char *  lhs_identifier,
const char *  rhs_identifier 
)
static
PT_NODE* pt_make_query_show_grants_curr_usr ( PARSER_CONTEXT parser)

Definition at line 7053 of file parser_support.c.

References au_user_name(), db_string_free(), NULL, and pt_make_query_show_grants().

static PT_NODE * pt_make_sort_spec_with_identifier ( PARSER_CONTEXT parser,
const char *  identifier,
PT_MISC_TYPE  sort_mode 
)
static
PT_NODE* pt_make_tuple_value_reference ( PARSER_CONTEXT parser,
PT_NODE name,
PT_NODE select_list,
CURSOR_ID cursor_p 
)

Definition at line 8515 of file parser_support.c.

References assert_release, parser_node::next, NULL, parser_copy_tree(), pt_check_path_eq(), PT_INTERNAL_ERROR, and pt_tuple_value().

Referenced by pt_append_odku_references().

Here is the caller graph for this function:

PT_NODE* pt_name ( PARSER_CONTEXT parser,
const char *  name 
)

Definition at line 302 of file parser_support.c.

References parser_node::info, pt_statement_info::name, NULL, pt_name_info::original, parser_new_node(), pt_append_string(), and PT_NAME.

Referenced by char_array_to_name_list(), create_select_to_insert_into(), do_recreate_filter_index_constr(), do_recreate_func_index_constr(), mq_make_derived_spec(), mq_new_spec(), mq_rewrite_agg_names(), mq_rewrite_aggregate_as_derived(), mq_rewrite_order_dependent_nodes(), mq_rewrite_order_dependent_query(), mq_rewrite_query_as_derived(), pt_add_table_name_to_from_list(), pt_check_union_type_compatibility_of_values_query(), pt_copy_data_type_entity(), pt_derive_attribute(), pt_expand_external_path(), pt_filter_pseudo_specs(), pt_find_class_of_index(), pt_fix_first_term_expr_for_iss(), pt_fold_const_expr(), pt_function_name_is_spec_attr(), pt_get_all_attributes_and_types(), pt_get_all_json_table_attributes_and_types(), pt_get_all_showstmt_attributes_and_types(), pt_get_attr_list_of_derived_table(), pt_get_attributes(), pt_get_object_data_type(), pt_get_resolution(), pt_make_dotted_identifier_internal(), pt_make_field_key_type_expr_node(), pt_make_field_type_expr_node(), pt_make_flat_name_list(), pt_make_outer_select_for_show_columns(), pt_make_outer_select_for_show_stmt(), pt_make_query_user_groups(), pt_make_subclass_list(), pt_replace_names_index_expr(), pt_resolve_correlation(), pt_resolve_star(), pt_resolve_star_reserved_names(), pt_rewrite_derived_for_upd_del(), pt_select_list_to_one_col(), pt_semantic_check_local(), pt_spec_to_oid_attr(), pt_to_delete_xasl(), pt_to_false_subquery(), qo_convert_attref_to_dotexpr(), qo_make_new_derived_tblspec(), and replace_names_alter_chg_attr().

void* pt_node_etc ( const PT_NODE node)

Definition at line 2572 of file parser_support.c.

References parser_node::etc, and NULL.

Referenced by db_execute_and_keep_statement_local(), and pt_count_ctes_post().

Here is the caller graph for this function:

PT_NODE* pt_node_list ( PARSER_CONTEXT parser,
PT_MISC_TYPE  list_type,
PT_NODE list 
)

Definition at line 395 of file parser_support.c.

References parser_node::info, pt_node_list_info::list, pt_node_list_info::list_type, pt_statement_info::node_list, parser_new_node(), and PT_NODE_LIST.

Referenced by create_select_to_insert_into().

Here is the caller graph for this function:

int pt_node_list_to_array ( PARSER_CONTEXT parser,
PT_NODE arg_list,
PT_NODE arg_array[],
const int  array_size,
int *  num_args 
)

Definition at line 4412 of file parser_support.c.

References assert, ER_GENERIC_ERROR, error(), parser_node::next, NO_ERROR, and NULL.

Referenced by pt_eval_function_type_old().

Here is the caller graph for this function:

PT_NODE* pt_node_next ( const PT_NODE node)

Definition at line 2540 of file parser_support.c.

References parser_node::etc, parser_node::next, and NULL.

Referenced by db_marker_next(), db_parameter_next(), and pmeta_get_info_internal().

Here is the caller graph for this function:

void pt_null_etc ( PT_NODE node)

Definition at line 2587 of file parser_support.c.

References parser_node::etc, and NULL.

Referenced by db_execute_and_keep_statement_local(), do_execute_do(), do_select_internal(), and pt_count_ctes_post().

Here is the caller graph for this function:

const char* pt_partition_name ( PARSER_CONTEXT parser,
const char *  class_name,
const char *  partition 
)
bool pt_recompile_for_limit_optimizations ( PARSER_CONTEXT parser,
PT_NODE statement,
int  xasl_flag 
)
void pt_record_warning ( PARSER_CONTEXT parser,
int  stmt_no,
int  line_no,
int  col_no,
const char *  msg 
)
static PT_NODE * pt_resolve_showstmt_args_unnamed ( PARSER_CONTEXT parser,
const SHOWSTMT_NAMED_ARG arg_infos,
int  arg_info_count,
PT_NODE args 
)
static
PT_NODE* pt_right_part ( const PT_NODE node)

Definition at line 2065 of file parser_support.c.

References pt_dot_info::arg2, pt_expr_info::arg2, pt_statement_info::dot, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, PT_DOT_, and PT_EXPR.

Referenced by gen_outer().

Here is the caller graph for this function:

void pt_split_join_preds ( PARSER_CONTEXT parser,
PT_NODE predicates,
PT_NODE **  join_part,
PT_NODE **  after_cb_filter 
)
int pt_statement_line_number ( const PT_NODE stmt)

Definition at line 2717 of file parser_support.c.

References parser_node::line_number.

Referenced by db_get_start_line().

Here is the caller graph for this function:

const char* pt_string_part ( const PT_NODE node)

Definition at line 2297 of file parser_support.c.

References pt_name_info::db_object, parser_node::info, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, PT_NAME, and pt_name_info::resolved.

Referenced by db_parameter_name().

Here is the caller graph for this function:

PT_NODE* pt_table_option ( PARSER_CONTEXT parser,
const PT_TABLE_OPTION_TYPE  option,
PT_NODE val 
)

Definition at line 323 of file parser_support.c.

References parser_node::info, pt_table_option_info::option, parser_new_node(), PT_TABLE_OPTION, pt_statement_info::table_option, and pt_table_option_info::val.

Referenced by pt_check_create_entity().

Here is the caller graph for this function:

PT_NODE* pt_tuple_value ( PARSER_CONTEXT parser,
PT_NODE name,
CURSOR_ID cursor_p,
int  index 
)
PT_NODE* pt_values_part ( const PT_NODE node)
void regu_set_error_with_zero_args ( int  err_type)

Definition at line 3680 of file parser_support.c.

References ARG_FILE_LINE, ER_ERROR_SEVERITY, ER_REGU_SYSTEM, er_set(), qp_Packing_er_code, and regu_set_global_error().

Referenced by pt_agg_orderby_to_sort_list(), pt_to_sort_list(), regu_alloc(), and regu_array_alloc().

Here is the caller graph for this function:

Variable Documentation

HL_HEAPID* packing_heap = NULL
static
int packing_heap_num_slot = 0
static

Definition at line 103 of file parser_support.c.

Referenced by pt_alloc_packing_buf(), and pt_final_packing_buf().

int packing_level = 0
static
const int PACKING_MMGR_BLOCK_SIZE = 10
static

Definition at line 101 of file parser_support.c.

Referenced by pt_alloc_packing_buf().

const int PACKING_MMGR_CHUNK_SIZE = 1024
static

Definition at line 100 of file parser_support.c.

Referenced by pt_alloc_packing_buf().

int qp_Packing_er_code = NO_ERROR

Definition at line 98 of file parser_support.c.

Referenced by pt_alloc_packing_buf(), and regu_set_error_with_zero_args().