CUBRID Engine
latest
|
#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 |
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 |
#define COMPATIBLE_WITH_GROUPBYNUM | ( | node | ) |
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 | ) |
#define NOT_COMPATIBLE_WITH_INSTNUM | ( | node | ) |
#define NULL_ATTRID -1 |
Definition at line 163 of file parser_support.c.
Referenced by heap_attrinfo_start_with_btid(), heap_get_partition_attributes(), logtb_get_system_tdes(), partition_get_attribute_id(), and partition_set_cache_info_for_expr().
|
static |
Definition at line 6042 of file parser_support.c.
References assert, AVT_IDENTIFIER, AVT_INTEGER, AVT_STRING, MSGCAT_SEMANTIC_UNEXPECTED_NTH_ARGUMENT, MSGCAT_SET_PARSER_SEMANTIC, showstmt_named_arg::optional, PT_ERRORmf2, PT_IS_NAME_NODE, PT_IS_NULL_NODE, PT_IS_VALUE_NODE, PT_TYPE_CHAR, PT_TYPE_INTEGER, showstmt_named_arg::type, and parser_node::type_enum.
Referenced by pt_resolve_showstmt_args_named(), and pt_resolve_showstmt_args_unnamed().
|
static |
Definition at line 4550 of file parser_support.c.
References parser_node::alias_print, assert, ER_FAILED, parser_node::info, pt_select_info::list, NO_ERROR, NULL, parser_append_node(), pt_append_string(), pt_make_dotted_identifier(), pt_query_info::q, pt_statement_info::query, and pt_query_info::select.
Referenced by pt_make_collection_type_subquery_node(), pt_make_field_key_type_expr_node(), pt_make_outer_select_for_show_columns(), pt_make_query_show_collation(), and pt_make_query_show_table().
|
static |
Definition at line 4581 of file parser_support.c.
References parser_node::alias_print, assert, parser_node::info, pt_select_info::list, NULL, parser_append_node(), pt_append_string(), pt_make_string_value(), pt_query_info::q, pt_statement_info::query, and pt_query_info::select.
Referenced by pt_make_query_show_create_table().
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 | ||
) |
Definition at line 4614 of file parser_support.c.
References pt_spec_info::auth_bypass_mask, pt_select_info::from, parser_node::info, pt_spec_info::meta_class, NULL, pt_spec_info::only_all, parser_append_node(), PT_CLASS, pt_entity(), pt_name(), PT_ONLY, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_statement_info::spec.
Referenced by mq_add_dummy_from_pre(), pt_make_collection_type_subquery_node(), pt_make_dummy_query_check_table(), pt_make_field_extra_expr_node(), pt_make_field_key_type_expr_node(), pt_make_outer_select_for_show_columns(), pt_make_outer_select_for_show_stmt(), pt_make_query_show_collation(), pt_make_query_show_columns(), pt_make_query_show_create_table(), pt_make_query_show_create_view(), pt_make_query_show_grants(), pt_make_query_show_index(), pt_make_query_show_table(), pt_make_query_showstmt(), and pt_make_query_user_groups().
char* pt_alloc_packing_buf | ( | int | size | ) |
Definition at line 3555 of file parser_support.c.
References ARG_FILE_LINE, db_create_ostk_heap(), db_ostk_alloc(), ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), i, NULL, packing_heap, packing_heap_num_slot, packing_level, PACKING_MMGR_BLOCK_SIZE, PACKING_MMGR_CHUNK_SIZE, and qp_Packing_er_code.
Referenced by make_mergelist_proc(), pt_make_json_table_spec_node(), pt_make_json_table_spec_node_internal(), pt_plan_query(), pt_symbol_info_alloc(), pt_table_info_alloc(), pt_to_outlist(), regu_alloc(), and regu_array_alloc().
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().
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().
int pt_check_enum_data_type | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | dt | ||
) |
Definition at line 9330 of file parser_support.c.
References parser_varchar::bytes, tp_domain::collation_id, cubregex::count(), pt_statement_info::data_type, pt_value_info::data_value, DB_ENUM_ELEMENTS_MAX, DB_ENUM_ELEMENTS_MAX_AGG_SIZE, DB_TYPE_CHAR, DB_TYPE_NCHAR, pt_value_info::db_value, pt_value_info::db_value_is_initialized, pt_data_type_info::enumeration, ER_FAILED, err, pr_type::id, parser_node::info, intl_char_count(), intl_pad_char(), parser_varchar::length, MSGCAT_SEMANTIC_ENUM_AGG_STRINGS_SIZE_TOO_LARGE, MSGCAT_SEMANTIC_ENUM_TYPE_DUPLICATE_VALUES, MSGCAT_SEMANTIC_ENUM_TYPE_TOO_MANY_VALUES, MSGCAT_SET_PARSER_SEMANTIC, db_value::need_clear, parser_node::next, NO_ERROR, parser_node::node_type, NULL, or_packed_domain_size(), pr_clear_value(), prm_get_bool_value(), PRM_ID_IGNORE_TRAILING_SPACE, pt_append_bytes(), PT_DATA_TYPE, pt_data_type_to_db_domain(), PT_ERRORm, PT_ERRORmf2, PT_INTERNAL_ERROR, pt_node_to_db_type(), PT_TYPE_ENUMERATION, pt_value_to_db(), QSTR_COMPARE, qstr_trim_trailing(), pt_data_value::str, tp_domain_free(), tp_domain::type, parser_node::type_enum, pt_data_type_info::units, and pt_statement_info::value.
Referenced by pt_check_attribute_domain(), and validate_attribute_domain().
int pt_check_grammar_charset_collation | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | charset_node, | ||
PT_NODE * | coll_node, | ||
int * | charset, | ||
int * | coll_id | ||
) |
Definition at line 8415 of file parser_support.c.
References assert, parser_varchar::bytes, lang_collation::codeset, lang_collation::coll, coll_data::coll_id, pt_value_info::data_value, ER_GENERIC_ERROR, if(), parser_node::info, INTL_CODESET_BINARY, INTL_CODESET_ISO88591, INTL_CODESET_KSC5601_EUC, INTL_CODESET_NONE, INTL_CODESET_UTF8, lang_charset_cubrid_name_to_id(), LANG_COLL_BINARY, LANG_COLL_EUCKR_BINARY, LANG_COLL_ISO_BINARY, LANG_COLL_UTF8_BINARY, lang_get_collation_by_name(), LANG_SYS_CODESET, LANG_SYS_COLLATION, MSGCAT_SEMANTIC_INCOMPATIBLE_CS_COLL, MSGCAT_SEMANTIC_INVALID_CHARSET, MSGCAT_SEMANTIC_UNKNOWN_COLL, MSGCAT_SET_PARSER_SEMANTIC, NO_ERROR, parser_node::node_type, NULL, PT_ERRORm, PT_ERRORmf, PT_VALUE, pt_data_value::str, and pt_statement_info::value.
Referenced by do_create_entity(), do_set_names(), and pt_check_create_entity().
PT_NODE* pt_check_groupbynum_post | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1603 of file parser_support.c.
References pt_statement_info::function, pt_function_info::function_type, parser_node::info, parser_node::node_type, PT_CONTINUE_WALK, PT_FUNCTION, PT_GROUPBY_NUM, and PT_SELECT.
Referenced by pt_semantic_check_local(), and pt_split_having_grbynum().
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().
PT_NODE* pt_check_instnum_post | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1558 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_INST_NUM, PT_ROWNUM, and PT_SELECT.
Referenced by pt_split_access_if_instnum(), pt_split_if_instnum(), and qo_analyze_term().
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().
void pt_check_level_expr | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | expr, | ||
bool * | has_greater, | ||
bool * | has_lesser | ||
) |
Definition at line 1767 of file parser_support.c.
References pt_expr_info::arg1, pt_union_info::arg1, pt_expr_info::arg2, pt_union_info::arg2, pt_statement_info::expr, parser_node::info, pt_select_info::list, parser_node::node_type, NULL, pt_expr_info::op, PT_AND, PT_BETWEEN, PT_DIFFERENCE, PT_EQ, PT_EQ_SOME, PT_GE, PT_GT, PT_INTERSECTION, PT_IS_EXPR_NODE, PT_IS_IN, PT_LE, PT_LEVEL, PT_LT, PT_NOT, PT_OR, PT_RANGE, PT_SELECT, PT_UNION, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_query_info::union_.
Referenced by pt_semantic_check_local().
bool pt_check_ordby_num_for_multi_range_opt | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query, | ||
bool * | mro_candidate, | ||
bool * | cannot_eval | ||
) |
Definition at line 8940 of file parser_support.c.
References assert_release, db_get_bigint(), DB_IS_NULL, db_make_null(), parser_context::flag, NO_ERROR, NULL, prm_get_integer_value(), PRM_ID_MULTI_RANGE_OPT_LIMIT, pt_get_query_limit_value(), PT_IS_QUERY, and parser_context::set_host_var.
Referenced by qo_check_iscan_for_multi_range_opt().
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().
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().
PT_NODE* pt_check_subquery_post | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1693 of file parser_support.c.
References parser_node::info, pt_query_info::is_subquery, parser_node::node_type, PT_CONTINUE_WALK, PT_IS_SUBQUERY, PT_SELECT, and pt_statement_info::query.
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().
Definition at line 2155 of file parser_support.c.
References pt_update_info::assignment, pt_statement_info::delete_, pt_spec_info::flat_entity_list, pt_select_info::from, parser_node::info, pt_statement_info::insert, parser_node::node_type, NULL, PT_DELETE, PT_INSERT, PT_SELECT, PT_SPEC, PT_UPDATE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_delete_info::spec, pt_insert_info::spec, pt_update_info::spec, pt_statement_info::spec, and pt_statement_info::update.
Referenced by uci_static().
|
static |
Definition at line 3054 of file parser_support.c.
References pt_host_vars::cursor, pt_delete_info::cursor_name, pt_update_info::cursor_name, pt_statement_info::delete_, pt_statement_info::host_var, parser_node::info, pt_host_vars::inputs, parser_node::node_type, pt_host_vars::out_descr, pt_host_vars::outputs, parser_copy_tree(), PT_DELETE, PT_HOST_IN, PT_HOST_OUT, PT_HOST_OUT_DESCR, PT_HOST_VAR, pt_insert_host_var(), PT_UPDATE, pt_statement_info::update, and pt_host_var_info::var_type.
Referenced by pt_host_info().
|
static |
Definition at line 3151 of file parser_support.c.
References parser_node::info, pt_name_info::meta_class, pt_statement_info::name, parser_node::node_type, parser_append_node(), parser_copy_tree(), pt_find_name(), PT_NAME, and PT_PARAMETER.
Referenced by pt_get_parameters().
PT_NODE* pt_convert_to_logical_expr | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
bool | use_parens_inside, | ||
bool | use_parens_outside | ||
) |
Definition at line 7755 of file parser_support.c.
References pt_value_info::data_value, pt_data_value::i, parser_node::info, NULL, parser_make_expression(), parser_new_node(), PT_NE, PT_TYPE_INTEGER, PT_TYPE_LOGICAL, PT_VALUE, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_to_upd_del_query().
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().
|
static |
Definition at line 7381 of file parser_support.c.
References assert, pt_statement_info::delete_, parser_node::info, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, parser_node::node_type, NULL, parser_new_node(), PT_DELETE, PT_ERRORm, PT_SPEC, pt_delete_info::spec, and pt_delete_info::target_classes.
Referenced by pt_split_delete_stmt().
|
static |
Definition at line 3920 of file parser_support.c.
References assert, parser_node::data_type, parser_node::expected_domain, parser_node::expr_before_const_folding, pt_statement_info::host_var, parser_context::host_var_count, pt_value_info::host_var_index, pt_host_var_info::index, parser_node::info, NULL, parser_copy_tree(), parser_new_node(), pt_append_string(), PT_HOST_IN, PT_HOST_VAR, PT_INTERNAL_ERROR, PT_IS_VALUE_NODE, pt_host_var_info::str, parser_node::type_enum, pt_statement_info::value, and pt_host_var_info::var_type.
Referenced by pt_rewrite_to_auto_param().
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().
PT_NODE* pt_dup_key_update_stmt | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | spec, | ||
PT_NODE * | assignment | ||
) |
Definition at line 4115 of file parser_support.c.
References pt_update_info::assignment, parser_node::do_not_fold, pt_spec_info::entity_name, parser_node::flag, parser_node::force_auto_parameterize, parser_node::info, parser_node::node_type, NULL, parser_copy_tree(), parser_free_tree(), parser_new_node(), PT_EQ, pt_expression_1(), pt_expression_2(), PT_NAME, PT_NAME_INFO_GENERATED_OID, PT_NAME_INFO_SET_FLAG, PT_OID_OF_DUPLICATE_KEY, PT_SPEC, PT_UPDATE, pt_update_info::search_cond, pt_update_info::spec, pt_statement_info::spec, and pt_statement_info::update.
void pt_enter_packing_buf | ( | void | ) |
Definition at line 3545 of file parser_support.c.
References packing_level.
Referenced by build_xasl_for_server_delete(), compile_partition_expression(), create_or_drop_index_helper(), do_execute_do(), do_insert_at_server(), do_prepare_delete(), do_prepare_insert_internal(), do_prepare_merge(), do_prepare_select(), do_prepare_update(), do_recreate_filter_index_constr(), do_recreate_func_index_constr(), do_select_internal(), and update_at_server().
PT_NODE* pt_entity | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | entity_name, | ||
const PT_NODE * | range_var, | ||
const PT_NODE * | flat_list | ||
) |
Definition at line 419 of file parser_support.c.
References pt_spec_info::entity_name, pt_spec_info::flat_entity_list, parser_node::info, parser_new_node(), PT_SPEC, pt_spec_info::range_var, and pt_statement_info::spec.
Referenced by compile_partition_expression(), do_create_entity(), mq_translate_tree(), and pt_add_table_name_to_from_list().
void pt_exit_packing_buf | ( | void | ) |
Definition at line 3639 of file parser_support.c.
References packing_level, and pt_free_packing_buf().
Referenced by build_xasl_for_server_delete(), compile_partition_expression(), create_or_drop_index_helper(), do_alter_index_rebuild(), do_execute_do(), do_insert_at_server(), do_prepare_delete(), do_prepare_insert_internal(), do_prepare_merge(), do_prepare_select(), do_prepare_update(), do_recreate_filter_index_constr(), do_recreate_func_index_constr(), do_select_internal(), and update_at_server().
PT_NODE* pt_expr_disallow_op_pre | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1725 of file parser_support.c.
References assert, pt_statement_info::expr, i, parser_node::info, MSGCAT_SEMANTIC_NOT_ALLOWED_HERE, MSGCAT_SET_PARSER_SEMANTIC, NULL, pt_expr_info::op, PT_ERRORmf, PT_IS_EXPR_NODE, pt_show_binopcode(), and PT_STOP_WALK.
Referenced by pt_semantic_check_local().
PT_NODE* pt_expression | ( | PARSER_CONTEXT * | parser, |
PT_OP_TYPE | op, | ||
PT_NODE * | arg1, | ||
PT_NODE * | arg2, | ||
PT_NODE * | arg3 | ||
) |
Definition at line 347 of file parser_support.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_expr_info::arg3, pt_statement_info::expr, parser_node::info, pt_expr_info::op, parser_new_node(), and PT_EXPR.
Referenced by pt_expression_0(), pt_expression_1(), pt_expression_2(), and pt_expression_3().
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().
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().
PT_NODE* pt_expression_2 | ( | PARSER_CONTEXT * | parser, |
PT_OP_TYPE | op, | ||
PT_NODE * | arg1, | ||
PT_NODE * | arg2 | ||
) |
Definition at line 376 of file parser_support.c.
References NULL, and pt_expression().
Referenced by pt_dup_key_update_stmt(), pt_fix_first_term_expr_for_iss(), pt_fix_first_term_func_index_for_iss(), qo_allocate_like_bound_for_index_scan(), qo_rewrite_like_for_index_scan(), and qo_rewrite_one_like_term().
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().
PT_NODE* pt_find_aggregate_functions_post | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | tree, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1023 of file parser_support.c.
References parser_node::info, parser_node::next, pt_pointer_info::node, parser_node::node_type, NULL, pt_statement_info::pointer, PT_CONTINUE_WALK, pt_pointer_stack_pop(), PT_SELECT, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_agg_find_info::select_stack, pt_agg_find_info::stop_on_subquery, and pt_select_info::where.
Referenced by pt_find_aggregate_functions_pre(), pt_has_aggregate(), and qo_optimize_queries().
PT_NODE* pt_find_aggregate_functions_pre | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | tree, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 878 of file parser_support.c.
References pt_function_info::all_or_distinct, pt_function_info::arg_list, pt_agg_find_info::base_count, pt_query_info::correlation_level, pt_spec_info::derived_table, pt_spec_info::derived_table_type, pt_agg_find_info::disable_loose_scan, pt_select_info::from, pt_statement_info::function, pt_function_info::function_type, parser_node::info, pt_agg_name_info::max_level, pt_agg_name_info::name_count, parser_node::next, pt_pointer_info::node, parser_node::node_type, NULL, pt_agg_find_info::out_of_context_count, parser_walk_tree(), pt_statement_info::pointer, PT_ALL, pt_continue_walk(), PT_COUNT_STAR, pt_find_aggregate_functions_post(), pt_find_aggregate_names(), PT_GROUPBY_NUM, pt_is_aggregate_function(), PT_IS_SET_EXPR, PT_LEAF_WALK, PT_MAX, PT_MIN, pt_pointer_stack_push(), PT_SELECT, PT_SELECT_INFO_HAS_AGG, PT_SELECT_INFO_SET_FLAG, PT_STOP_WALK, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_agg_find_info::select_stack, pt_agg_name_info::select_stack, pt_statement_info::spec, pt_agg_find_info::stop_on_subquery, and pt_select_info::where.
Referenced by pt_has_aggregate(), and qo_optimize_queries().
PT_NODE* pt_find_aggregate_names | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | tree, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 797 of file parser_support.c.
References pt_dot_info::arg2, pt_statement_info::dot, pt_select_info::from, pt_select_info::group_by, parser_node::info, pt_agg_name_info::max_level, pt_agg_name_info::name_count, pt_pointer_info::node, parser_node::node_type, NULL, pt_statement_info::pointer, PT_DOT_, pt_find_spec(), PT_INTERNAL_ERROR, PT_LIST_WALK, PT_NAME, PT_SELECT, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_agg_name_info::select_stack.
Referenced by mq_rewrite_agg_names(), and pt_find_aggregate_functions_pre().
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().
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().
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().
Definition at line 769 of file parser_support.c.
References pt_spec_info::id, parser_node::info, pt_statement_info::name, parser_node::next, pt_spec_info::path_entities, pt_statement_info::spec, and pt_name_info::spec_id.
Referenced by mq_substitute_subquery_in_statement(), pt_check_single_valued_node(), pt_find_aggregate_names(), pt_find_spec_in_statement(), pt_process_spec_for_update(), pt_resolve_names(), and pt_to_delete_xasl().
PT_NODE* pt_find_spec_in_statement | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | stmt, | ||
const PT_NODE * | name | ||
) |
Definition at line 720 of file parser_support.c.
References pt_delete_info::class_specs, pt_update_info::class_specs, pt_statement_info::delete_, parser_node::info, pt_merge_info::into, pt_statement_info::merge, parser_node::node_type, NULL, PT_DELETE, pt_find_spec(), PT_MERGE, PT_SPEC, PT_UPDATE, pt_delete_info::spec, pt_update_info::spec, pt_statement_info::update, and pt_merge_info::using_clause.
Referenced by pt_mark_spec_list_for_delete(), pt_mark_spec_list_for_update(), pt_semantic_check_local(), and update_check_for_constraints().
void pt_fixup_column_type | ( | PT_NODE * | col | ) |
Definition at line 4215 of file parser_support.c.
References pt_statement_info::data_type, parser_node::data_type, pt_value_info::data_value, parser_node::info, parser_varchar::length, parser_node::node_type, NULL, pt_data_type_info::precision, PT_TYPE_BIT, PT_TYPE_CHAR, PT_TYPE_NCHAR, PT_TYPE_VARBIT, PT_TYPE_VARCHAR, PT_TYPE_VARNCHAR, PT_VALUE, pt_data_value::str, pt_value_info::string_type, TP_FLOATING_PRECISION_VALUE, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_check_vclass_query_spec(), and pt_fixup_select_columns_type().
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().
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().
|
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().
void pt_free_statement_xasl_id | ( | PT_NODE * | statement | ) |
Definition at line 9292 of file parser_support.c.
References pt_delete_info::del_stmt_list, pt_statement_info::delete_, free_and_init, parser_node::info, parser_node::next, parser_node::node_type, NULL, PT_DELETE, and parser_node::xasl_id.
Referenced by db_close_session_local(), db_drop_all_statements(), db_drop_statement(), db_execute_and_keep_statement_local(), db_execute_statement_local(), do_prepare_delete(), and execute_create_select_query().
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().
Definition at line 1931 of file parser_support.c.
References pt_statement_info::delete_, pt_select_info::from, pt_select_info::group_by, pt_select_info::having, parser_node::info, parser_node::node_type, NULL, pt_query_info::order_by, PT_DELETE, PT_SELECT, PT_UPDATE, pt_query_info::q, pt_statement_info::query, pt_delete_info::search_cond, pt_update_info::search_cond, pt_query_info::select, pt_statement_info::update, and pt_select_info::where.
Referenced by pt_get_select_from_spec(), and pt_get_spec_name().
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.
void pt_get_default_expression_from_data_default_node | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | data_default_node, | ||
DB_DEFAULT_EXPR * | default_expr | ||
) |
Definition at line 9622 of file parser_support.c.
References pt_expr_info::arg2, assert, classobj_initialize_default_expr(), pt_statement_info::data_default, db_get_string(), db_default_expr::default_expr_format, db_default_expr::default_expr_op, db_default_expr::default_expr_type, pt_data_default_info::default_expr_type, pt_data_default_info::default_value, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_DATA_DEFAULT, PT_EXPR, PT_IS_CHAR_STRING_TYPE, PT_TO_CHAR, PT_VALUE, pt_value_to_db(), T_TO_CHAR, and parser_node::type_enum.
Referenced by do_add_attribute(), do_alter_one_clause_with_template(), do_change_att_schema_only(), and do_update_new_cols_with_default_expression().
int pt_get_dup_key_oid_var_index | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | update_statement | ||
) |
Definition at line 4064 of file parser_support.c.
References pt_expr_info::arg2, parser_context::auto_param_count, pt_statement_info::expr, pt_statement_info::host_var, parser_context::host_var_count, pt_host_var_info::index, parser_node::info, parser_node::node_type, NULL, PT_EXPR, PT_HOST_IN, PT_HOST_VAR, PT_UPDATE, pt_update_info::search_cond, pt_statement_info::update, and pt_host_var_info::var_type.
Definition at line 2088 of file parser_support.c.
References pt_dot_info::arg2, pt_statement_info::dot, parser_node::info, parser_node::node_type, NULL, and PT_DOT_.
Referenced by pt_check_create_view(), pt_get_attr_name(), pt_is_attr(), pt_is_method_call(), pt_lambda_node(), pt_sort_spec_cover_groupby(), qo_collect_name_spec(), qo_is_partition_attr(), qo_plan_compute_iscan_sort_list(), qo_reduce_equality_terms(), qo_reduce_order_by(), and qo_validate_index_for_orderby().
Definition at line 2105 of file parser_support.c.
References pt_expr_info::arg1, assert, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_EXPR, PT_IS_EXPR_NODE, PT_IS_EXPR_NODE_WITH_OPERATOR, and PT_PRIOR.
Referenced by qo_apply_range_intersection(), qo_convert_to_range(), qo_convert_to_range_helper(), qo_do_auto_parameterize(), qo_fold_is_and_not_null(), qo_rewrite_like_terms(), and qo_search_comp_pair_term().
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().
Definition at line 3212 of file parser_support.c.
References assert, parser_node::info, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, and PT_NAME.
Referenced by pt_check_cyclic_reference_in_view_spec(), pt_find_omitted_default_expr(), qo_validate_index_attr_notnull(), qo_validate_index_term_notnull(), and uci_static().
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().
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().
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().
|
static |
Definition at line 8806 of file parser_support.c.
References assert, cleanup(), db_get_bigint(), DB_IS_NULL, db_make_bigint(), db_make_null(), DB_TYPE_BIGINT, DOMAIN_COMPATIBLE, ER_FAILED, error(), parser_context::flag, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pr_clear_value(), pt_evaluate_tree_having_serial(), PT_EXPR, pt_has_error, PT_HOST_VAR, PT_VALUE, parser_context::set_host_var, tp_domain_resolve_default(), and tp_value_coerce().
Referenced by pt_get_query_limit_value().
|
static |
Definition at line 9021 of file parser_support.c.
References pt_expr_info::arg1, pt_expr_info::arg2, assert, assert_release, db_get_bigint(), DB_IS_NULL, db_make_bigint(), db_make_null(), DB_TYPE_BIGINT, DOMAIN_COMPATIBLE, ER_FAILED, error(), pt_statement_info::expr, parser_node::info, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_expr_info::op, parser_node::or_next, pr_clear_value(), pr_clone_value(), PT_BETWEEN, PT_BETWEEN_AND, PT_BETWEEN_EQ_NA, PT_BETWEEN_GE_INF, PT_BETWEEN_GE_LE, PT_BETWEEN_GE_LT, PT_BETWEEN_GT_INF, PT_BETWEEN_GT_LE, PT_BETWEEN_GT_LT, pt_evaluate_tree_having_serial(), PT_EXPR, PT_GE, PT_GT, PT_IS_CAST_CONST_INPUT_HOSTVAR, PT_IS_CONST, PT_IS_EXPR_NODE, PT_LE, PT_LT, PT_ORDERBY_NUM, tp_domain_resolve_default(), and tp_value_coerce().
Referenced by pt_get_query_limit_value().
int pt_get_query_limit_value | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query, | ||
DB_VALUE * | limit_val | ||
) |
Definition at line 8897 of file parser_support.c.
References assert_release, db_make_null(), ER_FAILED, error(), parser_node::info, pt_query_info::limit, NO_ERROR, NULL, pt_query_info::orderby_for, pt_get_query_limit_from_limit(), pt_get_query_limit_from_orderby_for(), PT_IS_QUERY, and pt_statement_info::query.
Referenced by pt_check_ordby_num_for_multi_range_opt(), pt_recompile_for_limit_optimizations(), and qo_discover_sort_limit_nodes().
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().
Definition at line 2733 of file parser_support.c.
References pt_spec_info::entity_name, parser_node::info, parser_node::node_type, NULL, pt_from_list_part(), pt_length_of_list(), PT_NAME, PT_SPEC, and pt_statement_info::spec.
Referenced by pt_get_select_from_name().
int pt_get_select_query_columns | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | create_select, | ||
DB_QUERY_TYPE ** | query_columns | ||
) |
Definition at line 4312 of file parser_support.c.
References assert, CUBRID_STMT_SELECT, db_free_query_format(), DB_NO_OIDS, er_errid(), ER_FAILED, ER_UNEXPECTED, error(), ERROR1, NO_ERROR, NULL, parser_copy_tree(), parser_free_tree(), pt_compile(), pt_fillin_type_size(), pt_get_titles(), pt_has_error, pt_node_to_cmd_type(), pt_report_to_ersys_with_statement(), and PT_SEMANTIC.
Referenced by do_create_entity(), and pt_check_partitions().
const char* pt_get_spec_name | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | selqry | ||
) |
Definition at line 2785 of file parser_support.c.
References parser_node::info, pt_spec_info::meta_class, parser_node::node_type, NULL, pt_append_string(), pt_from_list_part(), pt_get_select_from_name(), PT_META_CLASS, PT_SPEC, and pt_statement_info::spec.
Referenced by pt_get_proxy_spec_name().
Definition at line 2264 of file parser_support.c.
References assert, parser_node::info, pt_statement_info::insert, pt_node_list_info::list, pt_node_list_info::list_type, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, PT_INSERT, PT_IS_QUERY, PT_IS_SUBQUERY, PT_NODE_LIST, and pt_insert_info::value_clauses.
Referenced by mq_translate_insert(), and qo_optimize_queries().
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().
int pt_groupbynum_compatibility | ( | PT_NODE * | expr | ) |
Definition at line 1453 of file parser_support.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_expr_info::arg3, COMPATIBLE_WITH_GROUPBYNUM, pt_statement_info::expr, parser_node::info, parser_node::node_type, NOT_COMPATIBLE_WITH_GROUPBYNUM, pt_expr_info::op, PT_AND, PT_ASSIGN, PT_EXISTS, PT_EXPR, PT_EXPR_INFO_CLEAR_FLAG, PT_EXPR_INFO_GROUPBYNUM_C, PT_EXPR_INFO_GROUPBYNUM_NC, PT_EXPR_INFO_IS_FLAGED, PT_EXPR_INFO_SET_FLAG, PT_IS_NOT_NULL, and PT_IS_NULL.
bool pt_has_aggregate | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node | ||
) |
Definition at line 2814 of file parser_support.c.
References pt_merge_info::assignment, pt_agg_find_info::base_count, pt_agg_find_info::disable_loose_scan, pt_select_info::group_by, pt_select_info::having, parser_node::info, pt_merge_info::insert, pt_statement_info::merge, parser_node::next, parser_node::node_type, NULL, pt_agg_find_info::out_of_context_count, parser_walk_tree(), pt_find_aggregate_functions_post(), pt_find_aggregate_functions_pre(), PT_MERGE, PT_SELECT, PT_SELECT_INFO_DISABLE_LOOSE_SCAN, PT_SELECT_INFO_HAS_AGG, PT_SELECT_INFO_IS_FLAGED, PT_SELECT_INFO_IS_MERGE_QUERY, PT_SELECT_INFO_IS_UPD_DEL_QUERY, PT_SELECT_INFO_SET_FLAG, pt_query_info::q, pt_statement_info::query, pt_merge_info::search_cond, pt_query_info::select, pt_agg_find_info::select_stack, pt_agg_find_info::stop_on_subquery, pt_merge_info::update, and pt_merge_info::value_clauses.
Referenced by mq_check_rewrite_select(), mq_is_pushable_subquery(), mq_substitute_subquery_in_statement(), mq_translate_local(), mq_translate_select(), mq_updatable_local(), pt_check_copypush_subquery(), pt_check_for_update_clause(), pt_copypush_terms(), pt_is_single_tuple(), pt_reset_error(), pt_semantic_check_local(), pt_to_buildlist_proc(), qo_check_iscan_for_multi_range_opt(), qo_discover_sort_limit_nodes(), and qo_rewrite_subqueries().
bool pt_has_analytic | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node | ||
) |
Definition at line 2918 of file parser_support.c.
References pt_union_info::arg1, pt_union_info::arg2, parser_node::info, pt_select_info::list, parser_node::node_type, parser_walk_tree(), PT_DIFFERENCE, PT_INTERSECTION, pt_is_analytic_node(), pt_is_analytic_node_post(), PT_SELECT, PT_SELECT_INFO_HAS_ANALYTIC, PT_SELECT_INFO_IS_FLAGED, PT_SELECT_INFO_SET_FLAG, PT_UNION, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_query_info::union_.
Referenced by mq_copypush_sargable_terms_helper(), mq_translate_select(), mq_updatable_local(), pt_check_analytic_function(), pt_semantic_check_local(), pt_to_analytic_final_node(), pt_to_buildlist_proc(), pt_to_upd_del_query(), qo_discover_sort_limit_nodes(), qo_rewrite_subqueries(), and qo_top_plan_new().
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().
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().
PT_NODE* pt_has_non_groupby_column_node | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 9568 of file parser_support.c.
References assert, pt_sort_spec_info::expr, pt_non_groupby_col_info::groupby, pt_non_groupby_col_info::has_non_groupby_col, parser_node::info, parser_node::next, NULL, PT_IS_NAME_NODE, PT_IS_SORT_SPEC_NODE, pt_name_equal(), PT_STOP_WALK, and pt_statement_info::sort_spec.
Referenced by qo_optimize_queries().
PT_NODE* pt_has_non_idx_sarg_coll_pre | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | tree, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1122 of file parser_support.c.
References coll_opt::allow_index_opt, assert, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, parser_node::info, lang_get_collation(), NULL, lang_collation::options, PT_HAS_COLLATION, PT_STOP_WALK, and parser_node::type_enum.
Referenced by qo_analyze_term().
|
static |
Definition at line 6622 of file parser_support.c.
References assert, db_get_class_name(), db_is_class(), object_printer::describe_class(), ER_AU_SELECT_FAILURE, er_errid(), er_msg(), error(), parser_node::info, is_class(), string_buffer::len(), MSGCAT_RUNTIME_IS_NOT_AUTHORIZED_ON, MSGCAT_SEMANTIC_IS_NOT_A, MSGCAT_SET_PARSER_RUNTIME, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, NO_ERROR, NULL, pt_name_info::original, PT_CLASS, PT_ERRORc, PT_ERRORmf2, pt_show_misc_type(), and sm_find_class().
Referenced by pt_make_query_show_create_table().
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().
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().
|
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().
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().
int pt_instnum_compatibility | ( | PT_NODE * | expr | ) |
Definition at line 1340 of file parser_support.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_expr_info::arg3, COMPATIBLE_WITH_INSTNUM, pt_statement_info::expr, parser_node::info, parser_node::node_type, NOT_COMPATIBLE_WITH_INSTNUM, NULL, pt_expr_info::op, PT_AND, PT_ASSIGN, PT_CASE, PT_DECODE, PT_EXISTS, PT_EXPR, PT_EXPR_INFO_CLEAR_FLAG, PT_EXPR_INFO_INSTNUM_C, PT_EXPR_INFO_INSTNUM_NC, PT_EXPR_INFO_IS_FLAGED, PT_EXPR_INFO_SET_FLAG, PT_IF, PT_IFNULL, pt_is_instnum, PT_IS_NOT_NULL, and PT_IS_NULL.
Referenced by pt_bind_names_post().
bool pt_is_aggregate_function | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | node | ||
) |
Definition at line 623 of file parser_support.c.
References pt_function_info::analytic, pt_statement_info::function, pt_function_info::function_type, parser_node::info, pt_function_info::is_analytic, parser_node::node_type, PT_AGG_BIT_AND, PT_AGG_BIT_OR, PT_AGG_BIT_XOR, PT_AVG, PT_COUNT, PT_COUNT_STAR, PT_CUME_DIST, PT_FUNCTION, PT_GROUP_CONCAT, PT_GROUPBY_NUM, PT_JSON_ARRAYAGG, PT_JSON_OBJECTAGG, PT_MAX, PT_MEDIAN, PT_MIN, PT_PERCENT_RANK, PT_PERCENTILE_CONT, PT_PERCENTILE_DISC, PT_STDDEV, PT_STDDEV_POP, PT_STDDEV_SAMP, PT_SUM, PT_VAR_POP, PT_VAR_SAMP, and PT_VARIANCE.
Referenced by mq_class_meth_corr_subq_pre(), mq_rewrite_agg_names(), pt_check_single_valued_node(), pt_check_where(), pt_eval_function_type_old(), pt_find_aggregate_analytic_in_where(), pt_find_aggregate_analytic_pre(), pt_find_aggregate_function(), pt_find_aggregate_functions_pre(), pt_function_to_regu(), pt_is_hash_agg_eligible(), and pt_to_aggregate_node().
bool pt_is_analytic_function | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | node | ||
) |
Definition at line 655 of file parser_support.c.
References pt_function_info::analytic, pt_statement_info::function, parser_node::info, pt_function_info::is_analytic, parser_node::node_type, NULL, and PT_FUNCTION.
Referenced by pt_find_aggregate_analytic_in_where(), and pt_find_aggregate_analytic_pre().
PT_NODE* pt_is_analytic_node | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | tree, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1086 of file parser_support.c.
References pt_function_info::analytic, pt_statement_info::function, parser_node::info, pt_function_info::is_analytic, parser_node::node_type, PT_CONTINUE_WALK, PT_FUNCTION, PT_IS_QUERY_NODE_TYPE, PT_LIST_WALK, and PT_STOP_WALK.
Referenced by pt_has_analytic().
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().
int pt_is_attr | ( | PT_NODE * | node | ) |
Definition at line 1268 of file parser_support.c.
References parser_node::info, pt_name_info::meta_class, pt_statement_info::name, parser_node::node_type, NULL, pt_get_end_path_node(), PT_NAME, PT_NORMAL, PT_OID_ATTR, PT_SHARED, and PT_VID_ATTR.
Referenced by pt_bind_names(), pt_fillin_type_size(), pt_replace_referenced_attributes(), qo_apply_range_intersection(), qo_converse_sarg_terms(), qo_convert_to_range(), qo_convert_to_range_helper(), qo_do_auto_parameterize(), qo_fold_is_and_not_null(), qo_is_cast_attr(), qo_is_equi_join_term(), qo_reduce_comp_pair_terms(), qo_reduce_equality_terms(), qo_rewrite_like_terms(), qo_rewrite_subqueries(), and qo_search_comp_pair_term().
Definition at line 1207 of file parser_support.c.
References parser_node::node_type, PT_ALTER, PT_ALTER_INDEX, PT_ALTER_SERIAL, PT_ALTER_STORED_PROCEDURE, PT_ALTER_TRIGGER, PT_ALTER_USER, PT_CREATE_ENTITY, PT_CREATE_INDEX, PT_CREATE_SERIAL, PT_CREATE_STORED_PROCEDURE, PT_CREATE_TRIGGER, PT_CREATE_USER, PT_DROP, PT_DROP_INDEX, PT_DROP_SERIAL, PT_DROP_STORED_PROCEDURE, PT_DROP_TRIGGER, PT_DROP_USER, PT_GRANT, PT_REMOVE_TRIGGER, PT_RENAME, PT_RENAME_TRIGGER, PT_REVOKE, and PT_UPDATE_STATS.
Referenced by do_execute_statement(), do_replicate_statement(), do_statement(), and is_stmt_based_repl_type().
bool pt_is_expr_wrapped_function | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | node | ||
) |
Definition at line 675 of file parser_support.c.
References F_ELT, F_INSERT_SUBSTRING, F_JSON_ARRAY, F_JSON_ARRAY_APPEND, F_JSON_ARRAY_INSERT, F_JSON_CONTAINS, F_JSON_CONTAINS_PATH, F_JSON_DEPTH, F_JSON_EXTRACT, F_JSON_GET_ALL_PATHS, F_JSON_INSERT, F_JSON_KEYS, F_JSON_LENGTH, F_JSON_MERGE, F_JSON_MERGE_PATCH, F_JSON_OBJECT, F_JSON_PRETTY, F_JSON_QUOTE, F_JSON_REMOVE, F_JSON_REPLACE, F_JSON_SEARCH, F_JSON_SET, F_JSON_TYPE, F_JSON_UNQUOTE, F_JSON_VALID, F_REGEXP_COUNT, F_REGEXP_INSTR, F_REGEXP_LIKE, F_REGEXP_REPLACE, F_REGEXP_SUBSTR, pt_statement_info::function, pt_function_info::function_type, parser_node::info, parser_node::node_type, and PT_FUNCTION.
Referenced by pt_evaluate_function(), and pt_fold_const_function().
|
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().
|
static |
Definition at line 2406 of file parser_support.c.
References must_be_filtering_info::first_spec_id, must_be_filtering_info::has_second_spec_id, must_be_filtering_info::must_be_filtering, NULL, parser_walk_tree(), and pt_must_be_filtering().
Referenced by pt_is_filtering_skip_and_or().
|
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().
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().
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().
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().
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().
bool pt_is_operator_logical | ( | PT_OP_TYPE | op | ) |
Definition at line 7798 of file parser_support.c.
References PT_AND, PT_BETWEEN, PT_BETWEEN_EQ_NA, PT_BETWEEN_GE_INF, PT_BETWEEN_GE_LE, PT_BETWEEN_GE_LT, PT_BETWEEN_GT_INF, PT_BETWEEN_GT_LE, PT_BETWEEN_GT_LT, PT_BETWEEN_INF_LE, PT_BETWEEN_INF_LT, PT_EQ, PT_EQ_ALL, PT_EQ_SOME, PT_EXISTS, PT_GE, PT_GE_ALL, PT_GE_SOME, PT_GT, PT_GT_ALL, PT_GT_SOME, PT_IS, PT_IS_IN, PT_IS_NOT, PT_IS_NOT_IN, PT_IS_NOT_NULL, PT_IS_NULL, PT_LE, PT_LE_ALL, PT_LE_SOME, PT_LIKE, PT_LIKE_ESCAPE, PT_LT, PT_LT_ALL, PT_LT_SOME, PT_NE, PT_NE_ALL, PT_NE_SOME, PT_NOT, PT_NOT_BETWEEN, PT_NOT_LIKE, PT_NOT_RLIKE, PT_NOT_RLIKE_BINARY, PT_NULLSAFE_EQ, PT_OR, PT_RANGE, PT_RLIKE, PT_RLIKE_BINARY, PT_SETEQ, PT_SETNEQ, PT_SUBSET, PT_SUBSETEQ, PT_SUPERSET, PT_SUPERSETEQ, and PT_XOR.
Referenced by does_op_specially_treat_null_arg(), and pt_common_type_op().
PT_NODE* pt_is_pseudocolumn_node | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | tree, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1317 of file parser_support.c.
References pt_statement_info::expr, parser_node::info, parser_node::node_type, pt_expr_info::op, PT_CONNECT_BY_ISCYCLE, PT_CONNECT_BY_ISLEAF, PT_EXPR, PT_LEVEL, and PT_STOP_WALK.
Referenced by qo_optimize_queries().
|
static |
Definition at line 7329 of file parser_support.c.
References pt_spec_info::derived_table, parser_node::info, pt_name_info::meta_class, pt_statement_info::name, parser_node::node_type, NULL, pt_spec_info::on_cond, parser_walk_tree(), pt_spec_info::path_conjuncts, pt_spec_info::path_entities, PT_CONTINUE_WALK, pt_continue_walk(), PT_DATA_TYPE, PT_INDEX_NAME, PT_LIST_WALK, PT_METHOD, PT_NAME, PT_SPEC, PT_STOP_WALK, pt_statement_info::spec, and pt_name_info::spec_id.
Referenced by pt_split_delete_stmt().
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().
PT_NODE* pt_limit_to_numbering_expr | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | limit, | ||
PT_OP_TYPE | num_op, | ||
bool | is_gby_num | ||
) |
Definition at line 3724 of file parser_support.c.
References pt_function_info::all_or_distinct, pt_expr_info::arg1, pt_expr_info::arg2, pt_function_info::arg_list, pt_statement_info::data_type, parser_node::data_type, db_make_null(), pt_data_type_info::dec_precision, pt_statement_info::expr, pt_statement_info::function, pt_function_info::function_type, parser_node::info, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, parser_copy_tree(), parser_free_tree(), parser_new_node(), pt_data_type_info::precision, PT_ALL, PT_AND, PT_DATA_TYPE, pt_dbval_to_value(), pt_evaluate_tree(), PT_EXPR, PT_EXPR_INFO_GROUPBYNUM_LIMIT, PT_EXPR_INFO_SET_FLAG, PT_FUNCTION, PT_GROUPBY_NUM, PT_GT, PT_INTERNAL_ERROR, PT_LE, PT_PLUS, PT_TYPE_INTEGER, PT_TYPE_LOGICAL, PT_TYPE_NUMERIC, PT_VALUE, and parser_node::type_enum.
Referenced by pt_eval_type_pre(), and qo_optimize_queries().
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().
|
static |
Definition at line 5304 of file parser_support.c.
References parser_node::alias_print, NULL, parser_make_expression(), parser_new_node(), pt_append_string(), PT_EQ, PT_IF, pt_make_dotted_identifier(), pt_make_pred_name_int_val(), PT_OR, PT_TYPE_NULL, PT_VALUE, and parser_node::type_enum.
|
static |
Definition at line 5779 of file parser_support.c.
References parser_node::alias_print, pt_function_info::all_or_distinct, pt_function_info::arg_list, assert, DB_AUTH_SELECT, pt_statement_info::function, pt_function_info::function_type, pt_select_info::group_by, parser_node::info, pt_query_info::is_subquery, pt_select_info::list, NULL, pt_function_info::order_by, parser_append_node(), parser_make_expression(), parser_new_node(), pt_add_name_col_to_sel_list(), pt_add_table_name_to_from_list(), PT_ALL, PT_AND, pt_append_string(), PT_ASC, PT_EQ, PT_FUNCTION, PT_GROUP_CONCAT, PT_IS_IN, PT_IS_SUBQUERY, pt_make_dotted_identifier(), pt_make_pred_name_string_val(), pt_make_pred_with_identifiers(), pt_make_sort_spec_with_identifier(), pt_make_sort_spec_with_number(), pt_make_string_value(), PT_SELECT, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_select_info::where.
|
static |
Definition at line 4449 of file parser_support.c.
References pt_make_dotted_identifier_internal().
Referenced by pt_add_name_col_to_sel_list(), pt_make_collation_expr_node(), pt_make_collection_type_subquery_node(), pt_make_field_type_expr_node(), pt_make_like_col_expr(), pt_make_pred_name_int_val(), pt_make_pred_name_string_val(), pt_make_pred_with_identifiers(), pt_make_query_show_create_view(), pt_make_query_show_grants(), pt_make_query_user_groups(), and pt_make_sort_spec_with_identifier().
|
static |
Definition at line 4470 of file parser_support.c.
References pt_dot_info::arg1, pt_dot_info::arg2, assert, CAST_BUFLEN, pt_statement_info::dot, parser_node::info, pt_name_info::meta_class, pt_statement_info::name, NULL, parser_new_node(), PT_DOT_, pt_name(), PT_NORMAL, SM_MAX_IDENTIFIER_LENGTH, and strlen.
Referenced by pt_make_dotted_identifier().
|
static |
Definition at line 5881 of file parser_support.c.
References assert, DB_AUTH_NONE, parser_node::info, pt_query_info::limit, NULL, pt_add_table_name_to_from_list(), pt_make_integer_value(), pt_make_select_count_star(), and pt_statement_info::query.
Referenced by pt_make_query_show_create_view().
|
static |
Definition at line 5367 of file parser_support.c.
References DB_AUTH_NONE, parser_node::info, NULL, parser_append_node(), parser_make_expression(), pt_add_table_name_to_from_list(), PT_AND, PT_EQ, PT_GE, pt_make_if_with_strings(), pt_make_integer_value(), pt_make_pred_with_identifiers(), pt_make_select_count_star(), pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_select_info::where.
|
static |
Definition at line 5431 of file parser_support.c.
References assert, DB_AUTH_NONE, DB_AUTH_SELECT, pt_spec_info::derived_table, pt_spec_info::derived_table_type, parser_node::info, pt_spec_info::join_type, pt_spec_info::meta_class, NULL, parser_append_node(), parser_make_expression(), parser_new_node(), pt_add_name_col_to_sel_list(), pt_add_table_name_to_from_list(), PT_AND, PT_EQ, PT_GT, PT_IS_IN, PT_IS_SUBQUERY, PT_JOIN_NONE, pt_make_if_with_expressions(), pt_make_if_with_strings(), pt_make_integer_value(), pt_make_pred_name_int_val(), pt_make_pred_with_identifiers(), pt_make_select_count_star(), pt_make_string_value(), PT_MISC_NONE, pt_name(), PT_SELECT, pt_query_info::q, pt_statement_info::query, pt_spec_info::range_var, pt_query_info::select, pt_statement_info::spec, and pt_select_info::where.
|
static |
Definition at line 5033 of file parser_support.c.
References parser_node::alias_print, pt_function_info::all_or_distinct, pt_function_info::arg_list, pt_spec_info::as_attr_list, assert, pt_spec_info::derived_table, pt_spec_info::derived_table_type, pt_statement_info::expr, pt_select_info::from, pt_statement_info::function, pt_function_info::function_type, parser_node::info, pt_select_info::list, NULL, pt_function_info::order_by, pt_expr_info::paren_type, parser_append_node(), parser_keyword_func(), parser_make_expression(), parser_new_node(), PT_ALL, PT_AND, pt_append_string(), PT_EQ, PT_FUNCTION, PT_GROUP_CONCAT, PT_GT, PT_IF, PT_IS_SET_EXPR, pt_make_dotted_identifier(), pt_make_pred_name_int_val(), pt_make_string_value(), pt_name(), PT_OR, PT_SELECT, PT_SPEC, pt_query_info::q, pt_statement_info::query, pt_spec_info::range_var, pt_query_info::select, and pt_statement_info::spec.
|
static |
Definition at line 4753 of file parser_support.c.
References parser_node::alias_print, NULL, parser_make_expression(), pt_append_string(), and PT_IF.
Referenced by pt_make_field_key_type_expr_node(), pt_make_if_with_strings(), pt_make_query_show_collation(), and pt_make_query_show_create_view().
|
static |
Definition at line 4780 of file parser_support.c.
References NULL, pt_make_if_with_expressions(), and pt_make_string_value().
Referenced by pt_make_field_extra_expr_node(), pt_make_field_key_type_expr_node(), pt_make_query_show_collation(), pt_make_query_show_grants(), and pt_make_query_show_table().
PT_NODE* pt_make_integer_value | ( | PARSER_CONTEXT * | parser, |
const int | value_int | ||
) |
Definition at line 172 of file parser_support.c.
References pt_value_info::data_value, pt_data_value::i, parser_node::info, parser_new_node(), PT_TYPE_INTEGER, PT_VALUE, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_check_auto_increment_table_option(), pt_check_show_index(), pt_check_table_in_show_heap(), pt_make_dummy_query_check_table(), pt_make_field_extra_expr_node(), pt_make_field_key_type_expr_node(), pt_make_pred_name_int_val(), pt_make_sort_spec_with_number(), pt_to_merge_update_query(), and qo_get_limit_from_eval_term().
|
static |
Definition at line 4805 of file parser_support.c.
References NULL, parser_make_expression(), PT_LIKE, and pt_make_dotted_identifier().
Referenced by pt_make_query_show_collation(), pt_make_query_show_columns(), pt_make_query_show_table(), and pt_make_query_showstmt().
|
static |
Definition at line 4894 of file parser_support.c.
References assert, DB_AUTH_NONE, pt_spec_info::derived_table, pt_spec_info::derived_table_type, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, error(), i, parser_node::info, pt_query_info::is_subquery, pt_spec_info::join_type, pt_spec_info::meta_class, NO_ERROR, parser_node::node_type, NULL, parser_free_tree(), parser_new_node(), pt_add_name_col_to_sel_list(), pt_add_table_name_to_from_list(), PT_IS_SUBQUERY, PT_JOIN_NONE, PT_MISC_NONE, pt_name(), PT_SELECT, PT_SELECT_FULL_INFO_COLS_SCHEMA, PT_SELECT_INFO_COLS_SCHEMA, PT_SELECT_INFO_SET_FLAG, pt_statement_info::query, pt_spec_info::range_var, and pt_statement_info::spec.
Referenced by pt_make_query_show_columns().
|
static |
Definition at line 4827 of file parser_support.c.
References assert, DB_AUTH_NONE, pt_spec_info::derived_table, pt_spec_info::derived_table_type, parser_node::info, pt_query_info::is_subquery, pt_spec_info::join_type, pt_select_info::list, pt_spec_info::meta_class, parser_node::node_type, NULL, parser_append_node(), parser_new_node(), pt_add_table_name_to_from_list(), PT_IS_SUBQUERY, PT_JOIN_NONE, PT_MISC_NONE, pt_name(), PT_SELECT, PT_SELECT_INFO_READ_ONLY, PT_SELECT_INFO_SET_FLAG, PT_TYPE_STAR, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_spec_info::range_var, pt_query_info::select, pt_statement_info::spec, and parser_node::type_enum.
Referenced by pt_make_query_show_collation(), and pt_make_query_show_table().
|
static |
Definition at line 4665 of file parser_support.c.
References NULL, parser_make_expression(), pt_make_dotted_identifier(), and pt_make_integer_value().
Referenced by pt_make_collation_expr_node(), pt_make_field_key_type_expr_node(), pt_make_field_type_expr_node(), pt_make_query_show_collation(), and pt_make_query_show_grants().
|
static |
Definition at line 4693 of file parser_support.c.
References NULL, parser_make_expression(), pt_make_dotted_identifier(), and pt_make_string_value().
Referenced by pt_make_collection_type_subquery_node(), pt_make_query_describe_w_identifier(), pt_make_query_show_create_view(), pt_make_query_show_grants(), pt_make_query_show_table(), and pt_make_query_user_groups().
|
static |
Definition at line 4723 of file parser_support.c.
References NULL, parser_make_expression(), and pt_make_dotted_identifier().
Referenced by pt_make_collection_type_subquery_node(), pt_make_field_extra_expr_node(), pt_make_field_key_type_expr_node(), and pt_make_query_show_grants().
PT_NODE* pt_make_query_describe_w_identifier | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | original_cls_id, | ||
PT_NODE * | att_id | ||
) |
Definition at line 7582 of file parser_support.c.
References assert, DB_MAX_IDENTIFIER_LENGTH, parser_node::info, intl_identifier_lower(), pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, PT_EQ, pt_make_pred_name_string_val(), pt_make_query_show_columns(), and PT_NAME.
PT_NODE* pt_make_query_show_collation | ( | PARSER_CONTEXT * | parser, |
int | like_where_syntax, | ||
PT_NODE * | like_or_where_expr | ||
) |
Definition at line 8592 of file parser_support.c.
References assert, DB_AUTH_SELECT, parser_node::info, pt_select_info::list, NULL, pt_query_info::order_by, parser_append_node(), parser_new_node(), pt_add_name_col_to_sel_list(), pt_add_table_name_to_from_list(), PT_ASC, PT_EQ, pt_make_if_with_expressions(), pt_make_if_with_strings(), pt_make_like_col_expr(), pt_make_outer_select_for_show_stmt(), pt_make_pred_name_int_val(), pt_make_sort_spec_with_number(), pt_make_string_value(), PT_SELECT, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_select_info::where.
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 | ||
) |
Definition at line 6463 of file parser_support.c.
References parser_node::alias_print, assert, DB_AUTH_NONE, DB_DEFAULT_PRECISION, db_make_int(), DB_MAX_IDENTIFIER_LENGTH, DB_TYPE_VARCHAR, db_value_domain_default(), error(), i, parser_node::info, intl_identifier_lower(), LANG_SYS_CODESET, LANG_SYS_COLLATION, pt_select_info::list, pt_statement_info::name, NO_ERROR, parser_node::node_type, NULL, pt_query_info::order_by, pt_name_info::original, parser_append_node(), parser_free_tree(), parser_new_node(), pt_add_table_name_to_from_list(), pt_append_string(), PT_ASC, pt_dbval_to_value(), PT_DESC, pt_make_like_col_expr(), pt_make_outer_select_for_show_columns(), pt_make_sort_spec_with_identifier(), PT_NAME, PT_SELECT, PT_SELECT_FULL_INFO_COLS_SCHEMA, PT_SELECT_INFO_COLS_SCHEMA, PT_SELECT_INFO_SET_FLAG, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_select_info::where.
Referenced by pt_make_query_describe_w_identifier().
PT_NODE* pt_make_query_show_create_table | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | table_name | ||
) |
Definition at line 6686 of file parser_support.c.
References assert, DB_AUTH_SELECT, string_buffer::get_buffer(), parser_node::info, string_buffer::len(), pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, parser_new_node(), pt_add_string_col_to_sel_list(), pt_add_table_name_to_from_list(), pt_help_show_create_table(), PT_NAME, PT_SELECT, PT_SELECT_INFO_READ_ONLY, and PT_SELECT_INFO_SET_FLAG.
PT_NODE* pt_make_query_show_create_view | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | view_identifier | ||
) |
Definition at line 6752 of file parser_support.c.
References assert, DB_AUTH_SELECT, DB_MAX_IDENTIFIER_LENGTH, parser_node::info, intl_identifier_lower(), pt_select_info::list, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, parser_append_node(), parser_make_expression(), parser_new_node(), pt_add_table_name_to_from_list(), PT_CONCAT, PT_EQ, PT_IS_NULL, pt_make_dotted_identifier(), pt_make_dummy_query_check_table(), pt_make_if_with_expressions(), pt_make_pred_name_string_val(), PT_NAME, PT_OR, PT_SELECT, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_select_info::where.
PT_NODE* pt_make_query_show_exec_stats | ( | PARSER_CONTEXT * | parser | ) |
Definition at line 6828 of file parser_support.c.
References assert, parser_context::dont_collect_exec_stats, parser_context::flag, NULL, parser_parse_string(), parser_parse_string_use_sys_charset(), and pt_pop().
PT_NODE* pt_make_query_show_exec_stats_all | ( | PARSER_CONTEXT * | parser | ) |
Definition at line 6857 of file parser_support.c.
References assert, parser_context::dont_collect_exec_stats, parser_context::flag, NULL, parser_parse_string(), parser_parse_string_use_sys_charset(), and pt_pop().
PT_NODE* pt_make_query_show_grants | ( | PARSER_CONTEXT * | parser, |
const char * | original_user_name | ||
) |
Definition at line 7112 of file parser_support.c.
References parser_node::alias_print, pt_function_info::all_or_distinct, pt_function_info::arg_list, assert, pt_value_info::data_value, DB_AUTH_SELECT, pt_statement_info::function, pt_function_info::function_type, pt_select_info::group_by, parser_node::info, intl_identifier_upper(), pt_select_info::list, NULL, pt_function_info::order_by, pt_query_info::order_by, parser_append_node(), parser_keyword_func(), parser_make_expression(), parser_new_node(), pt_add_table_name_to_from_list(), PT_ALL, PT_AND, pt_append_string(), PT_ASC, PT_EQ, PT_FUNCTION, PT_GROUP_CONCAT, pt_make_dotted_identifier(), pt_make_if_with_strings(), pt_make_pred_name_int_val(), pt_make_pred_name_string_val(), pt_make_pred_with_identifiers(), pt_make_query_user_groups(), pt_make_sort_spec_with_identifier(), pt_make_sort_spec_with_number(), pt_make_string_value(), PT_OR, PT_SELECT, PT_SELECT_INFO_READ_ONLY, PT_SELECT_INFO_SET_FLAG, PT_SUBSETEQ, PT_TYPE_SET, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_data_value::set, SM_MAX_IDENTIFIER_LENGTH, strlen, parser_node::type_enum, pt_statement_info::value, and pt_select_info::where.
Referenced by pt_make_query_show_grants_curr_usr().
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().
PT_NODE* pt_make_query_show_index | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | original_cls_id | ||
) |
Definition at line 7636 of file parser_support.c.
References parser_node::alias_print, assert, DB_AUTH_NONE, DB_DEFAULT_PRECISION, db_make_int(), db_make_null(), db_make_varchar(), DB_MAX_IDENTIFIER_LENGTH, DB_TYPE_VARCHAR, db_value_domain_default(), error(), i, parser_node::info, intl_identifier_lower(), LANG_SYS_CODESET, LANG_SYS_COLLATION, pt_select_info::list, pt_statement_info::name, parser_node::node_type, NULL, pt_query_info::order_by, pt_name_info::original, parser_append_node(), parser_free_tree(), parser_new_node(), pt_add_table_name_to_from_list(), pt_append_string(), PT_ASC, pt_dbval_to_value(), pt_make_sort_spec_with_number(), PT_NAME, PT_SELECT, PT_SELECT_INFO_IDX_SCHEMA, PT_SELECT_INFO_READ_ONLY, PT_SELECT_INFO_SET_FLAG, pt_query_info::q, pt_statement_info::query, and pt_query_info::select.
PT_NODE* pt_make_query_show_table | ( | PARSER_CONTEXT * | parser, |
bool | is_full_syntax, | ||
int | like_where_syntax, | ||
PT_NODE * | like_or_where_expr | ||
) |
Definition at line 5930 of file parser_support.c.
References assert, DB_AUTH_SELECT, db_get_database_name(), db_name, db_string_free(), parser_node::info, pt_select_info::list, NULL, pt_query_info::order_by, parser_append_node(), parser_new_node(), pt_add_name_col_to_sel_list(), pt_add_table_name_to_from_list(), PT_ASC, PT_EQ, pt_make_if_with_strings(), pt_make_like_col_expr(), pt_make_outer_select_for_show_stmt(), pt_make_pred_name_string_val(), pt_make_sort_spec_with_number(), PT_SELECT, pt_query_info::q, pt_statement_info::query, pt_query_info::select, SM_MAX_IDENTIFIER_LENGTH, strlen, and pt_select_info::where.
PT_NODE* pt_make_query_show_trace | ( | PARSER_CONTEXT * | parser | ) |
Definition at line 9528 of file parser_support.c.
References parser_node::alias_print, parser_context::dont_collect_exec_stats, parser_context::flag, parser_node::info, pt_select_info::list, NULL, parser_append_node(), parser_make_expression(), parser_new_node(), pt_append_string(), PT_SELECT, PT_SELECT_INFO_READ_ONLY, PT_SELECT_INFO_SET_FLAG, PT_TRACE_STATS, pt_query_info::q, pt_statement_info::query, parser_context::query_trace, and pt_query_info::select.
PT_NODE* pt_make_query_showstmt | ( | PARSER_CONTEXT * | parser, |
unsigned int | type, | ||
PT_NODE * | args, | ||
int | like_where_syntax, | ||
PT_NODE * | like_or_where_expr | ||
) |
Definition at line 6299 of file parser_support.c.
References showstmt_metadata::alias_print, ARG_FILE_LINE, showstmt_metadata::arg_size, showstmt_metadata::args, assert, au_is_dba_group_member(), Au_user, showstmt_metadata::cols, DB_AUTH_NONE, pt_spec_info::derived_table, pt_spec_info::derived_table_type, ER_AU_DBA_ONLY, ER_ERROR_SEVERITY, er_set(), error(), i, parser_node::info, pt_spec_info::join_type, pt_select_info::list, pt_spec_info::meta_class, showstmt_column::name, showstmt_named_arg::name, NULL, showstmt_metadata::num_cols, showstmt_metadata::num_orderby, showstmt_metadata::only_for_dba, pt_query_info::order_by, showstmt_metadata::orderby, parser_append_node(), parser_free_tree(), parser_new_node(), pt_add_table_name_to_from_list(), PT_ASC, PT_DESC, PT_IS_SHOWSTMT, PT_JOIN_NONE, pt_make_like_col_expr(), pt_make_sort_spec_with_number(), PT_MISC_NONE, pt_resolve_showstmt_args_named(), pt_resolve_showstmt_args_unnamed(), PT_SELECT, PT_SELECT_INFO_READ_ONLY, PT_SELECT_INFO_SET_FLAG, PT_SHOWSTMT, PT_TYPE_STAR, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_showstmt_info::show_args, pt_showstmt_info::show_type, pt_statement_info::showstmt, showstmt_get_metadata(), pt_statement_info::spec, parser_node::type_enum, and pt_select_info::where.
|
static |
Definition at line 6957 of file parser_support.c.
References pt_function_info::all_or_distinct, pt_function_info::arg_list, pt_spec_info::as_attr_list, assert, pt_value_info::data_value, DB_AUTH_SELECT, pt_spec_info::derived_table, pt_spec_info::derived_table_type, pt_statement_info::function, pt_function_info::function_type, parser_node::info, pt_spec_info::join_type, pt_select_info::list, pt_spec_info::meta_class, pt_name_info::meta_class, pt_statement_info::name, NULL, parser_append_node(), parser_new_node(), pt_add_table_name_to_from_list(), PT_ALL, PT_EQ, PT_FUNCTION, PT_IS_SET_EXPR, PT_JOIN_NONE, pt_make_dotted_identifier(), pt_make_pred_name_string_val(), PT_MISC_NONE, pt_name(), PT_NORMAL, PT_SELECT, PT_SUM, PT_TYPE_SET, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_spec_info::range_var, pt_query_info::select, pt_data_value::set, pt_statement_info::spec, parser_node::type_enum, pt_statement_info::value, and pt_select_info::where.
Referenced by pt_make_query_show_grants().
|
static |
Definition at line 4973 of file parser_support.c.
References pt_function_info::arg_list, pt_statement_info::function, pt_function_info::function_type, parser_node::info, pt_select_info::list, NULL, parser_append_node(), parser_new_node(), PT_COUNT_STAR, PT_FUNCTION, PT_SELECT, pt_query_info::q, pt_statement_info::query, and pt_query_info::select.
Referenced by pt_make_dummy_query_check_table(), pt_make_field_extra_expr_node(), and pt_make_field_key_type_expr_node().
|
static |
Definition at line 5697 of file parser_support.c.
References pt_sort_spec_info::asc_or_desc, assert, pt_sort_spec_info::expr, parser_node::info, NULL, parser_new_node(), PT_ASC, PT_DESC, pt_make_dotted_identifier(), PT_SORT_SPEC, and pt_statement_info::sort_spec.
Referenced by pt_make_collection_type_subquery_node(), pt_make_query_show_columns(), and pt_make_query_show_grants().
|
static |
Definition at line 5732 of file parser_support.c.
References pt_sort_spec_info::asc_or_desc, assert, pt_sort_spec_info::expr, parser_node::info, NULL, parser_new_node(), PT_ASC, PT_DESC, pt_make_integer_value(), PT_SORT_SPEC, and pt_statement_info::sort_spec.
Referenced by pt_make_collection_type_subquery_node(), pt_make_query_show_collation(), pt_make_query_show_grants(), pt_make_query_show_index(), pt_make_query_show_table(), and pt_make_query_showstmt().
PT_NODE* pt_make_string_value | ( | PARSER_CONTEXT * | parser, |
const char * | value_string | ||
) |
Definition at line 193 of file parser_support.c.
References pt_value_info::data_value, parser_node::info, NULL, parser_new_node(), pt_append_bytes(), PT_NODE_PRINT_VALUE_TO_TEXT, PT_TYPE_CHAR, PT_TYPE_NULL, PT_VALUE, pt_data_value::str, pt_value_info::string_type, strlen, parser_node::type_enum, and pt_statement_info::value.
Referenced by do_get_prepared_statement_info(), pt_add_string_col_to_sel_list(), pt_check_default_vclass_query_spec(), pt_check_union_type_compatibility_of_values_query(), pt_domain_to_data_type(), pt_find_attr_in_class_list(), pt_make_collection_type_subquery_node(), pt_make_field_key_type_expr_node(), pt_make_field_type_expr_node(), pt_make_if_with_strings(), pt_make_pred_name_string_val(), pt_make_query_show_collation(), pt_make_query_show_grants(), pt_resolve_default_value(), pt_resolve_showstmt_args_named(), pt_resolve_showstmt_args_unnamed(), pt_to_pred_expr_local_with_arg(), and qo_allocate_like_bound_for_index_scan().
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().
void pt_mark_spec_list_for_delete | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement | ||
) |
Definition at line 8279 of file parser_support.c.
References pt_statement_info::delete_, parser_node::info, pt_merge_info::into, pt_statement_info::merge, parser_node::next, parser_node::node_type, NULL, PT_DELETE, pt_find_spec_in_statement(), PT_INTERNAL_ERROR, PT_MERGE, pt_process_spec_for_delete(), and pt_delete_info::target_classes.
Referenced by mq_rewrite_upd_del_top_level_specs(), mq_translate_delete(), and mq_translate_merge().
void pt_mark_spec_list_for_update | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement | ||
) |
Definition at line 8326 of file parser_support.c.
References pt_expr_info::arg1, pt_dot_info::arg2, pt_update_info::assignment, pt_merge_info::assignment, pt_statement_info::dot, pt_statement_info::expr, parser_node::info, pt_merge_info::into, pt_statement_info::merge, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, PT_DOT_, PT_EXPR, pt_find_spec_in_statement(), PT_INTERNAL_ERROR, PT_MERGE, PT_NAME, pt_process_spec_for_update(), PT_UPDATE, pt_update_info::spec, pt_merge_info::update, and pt_statement_info::update.
Referenced by mq_rewrite_upd_del_top_level_specs(), mq_translate_merge(), and mq_translate_update().
|
static |
Definition at line 2351 of file parser_support.c.
References pt_name_info::correlation_level, pt_statement_info::expr, must_be_filtering_info::first_spec_id, must_be_filtering_info::has_second_spec_id, parser_node::info, must_be_filtering_info::must_be_filtering, pt_statement_info::name, pt_expr_info::op, PT_CONTINUE_WALK, PT_IS_EXPR_NODE, PT_IS_NAME_NODE, PT_IS_NUMBERING_AFTER_EXECUTION, PT_IS_QUERY, PT_IS_SERIAL, PT_REQUIRES_HIERARCHICAL_QUERY, PT_STOP_WALK, and pt_name_info::spec_id.
Referenced by pt_is_filtering_predicate().
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().
Definition at line 524 of file parser_support.c.
References CAST_POINTER_TO_NODE, parser_node::data_type, parser_node::info, intl_identifier_casecmp(), pt_name_info::meta_class, pt_statement_info::name, parser_node::node_type, pt_name_info::original, pt_datatypes_match(), PT_NAME, PT_NORMAL, PT_SHARED, and pt_name_info::spec_id.
Referenced by do_replace_names_for_insert_values_pre(), lookup_seg(), mq_lambda_node(), mq_lookup_symbol(), mq_rewrite_agg_names(), mq_rewrite_order_dependent_nodes(), mq_substitute_path_pre(), mq_update_order_by(), pt_find_attribute(), pt_find_name(), pt_find_only_name_id(), pt_get_resolution(), pt_has_non_groupby_column_node(), pt_lambda_check_reduce_eq(), pt_lambda_node(), pt_no_double_insert_assignments(), pt_process_spec_for_update(), pt_replace_referenced_attributes(), pt_resolve_cte_specs(), pt_resolve_spec_to_cte(), pt_set_orderby_for_sort_limit_plan(), pt_sort_spec_cover_groupby(), pt_substitute_assigned_name_node(), pt_to_merge_update_xasl(), pt_to_odku_info(), pt_to_pos_descr(), pt_to_pos_descr_groupby(), pt_to_update_xasl(), qo_check_plan_index_for_multi_range_opt(), qo_collect_name_spec(), qo_converse_sarg_terms(), qo_reduce_equality_terms(), and qo_reduce_order_by().
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().
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().
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().
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().
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().
const char* pt_partition_name | ( | PARSER_CONTEXT * | parser, |
const char * | class_name, | ||
const char * | partition | ||
) |
Definition at line 9266 of file parser_support.c.
References MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, NULL, PARTITIONED_SUB_CLASS_TAG, pt_append_string(), PT_ERRORm, and strlen.
Referenced by pt_find_lck_class_from_partition(), and pt_resolve_partition_spec().
|
static |
Definition at line 8077 of file parser_support.c.
References assert, pt_spec_info::derived_table, pt_spec_info::flag, pt_select_info::from, parser_node::info, parser_node::node_type, NULL, PT_INTERNAL_ERROR, pt_rewrite_derived_for_upd_del(), PT_SELECT, PT_SPEC, PT_SPEC_FLAG_CONTAINS_OID, PT_SPEC_FLAG_DELETE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_statement_info::spec.
Referenced by pt_mark_spec_list_for_delete().
|
static |
Definition at line 8129 of file parser_support.c.
References pt_union_info::arg1, pt_union_info::arg2, pt_spec_info::as_attr_list, assert, pt_spec_info::derived_table, pt_spec_info::flag, pt_select_info::from, i, parser_node::info, pt_select_info::list, MSGCAT_SEMANTIC_ONLY_ONE_UPDATE_SPEC_ALLOWED, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, parser_node::node_type, NULL, PT_ERRORm, pt_find_spec(), PT_INTERNAL_ERROR, PT_NAME, pt_name_equal(), pt_rewrite_derived_for_upd_del(), PT_SELECT, PT_SPEC, PT_SPEC_FLAG_CONTAINS_OID, PT_SPEC_FLAG_FROM_VCLASS, PT_SPEC_FLAG_UPDATE, PT_UNION, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_statement_info::spec, and pt_query_info::union_.
Referenced by pt_mark_spec_list_for_update().
bool pt_recompile_for_limit_optimizations | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement, | ||
int | xasl_flag | ||
) |
Definition at line 9458 of file parser_support.c.
References db_get_bigint(), DB_IS_NULL, MRO_CANDIDATE, MRO_IS_USED, NO_ERROR, prm_get_integer_value(), PRM_ID_MULTI_RANGE_OPT_LIMIT, PRM_ID_SORT_LIMIT_MAX_COUNT, pt_get_query_limit_value(), SORT_LIMIT_CANDIDATE, and SORT_LIMIT_USED.
Referenced by db_check_limit_need_recompile(), and do_prepare_select().
void pt_record_warning | ( | PARSER_CONTEXT * | parser, |
int | stmt_no, | ||
int | line_no, | ||
int | col_no, | ||
const char * | msg | ||
) |
Definition at line 2606 of file parser_support.c.
References parser_node::column_number, PT_ZZ_ERROR_MSG_INFO::error_message, pt_statement_info::error_msg, parser_node::info, parser_node::line_number, NULL, parser_append_node(), parser_new_node(), pt_append_string(), PT_ZZ_ERROR_MSG, PT_ZZ_ERROR_MSG_INFO::statement_number, and parser_context::warnings.
Referenced by pt_frob_warning().
void pt_register_orphan | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | orphan | ||
) |
Definition at line 3427 of file parser_support.c.
References pt_expr_info::arg1, assert_release, pt_statement_info::expr, parser_node::info, parser_node::node_type, pt_expr_info::op, parser_context::orphans, parser_append_node(), parser_new_node(), PT_EXPR, PT_LAST_NODE_NUMBER, and PT_NOT.
Referenced by pt_check_with_info(), and pt_semantic_check_local().
void pt_register_orphan_db_value | ( | PARSER_CONTEXT * | parser, |
const DB_VALUE * | orphan | ||
) |
Definition at line 3456 of file parser_support.c.
References pt_value_info::db_value, pt_value_info::db_value_is_in_workspace, parser_node::info, parser_context::orphans, parser_append_node(), parser_new_node(), PT_VALUE, and pt_statement_info::value.
Referenced by pt_add_pseudocolumns_placeholders(), pt_make_regu_constant(), pt_to_aggregate_node(), and setof_mop_to_setof_vobj().
void pt_reset_error | ( | PARSER_CONTEXT * | parser | ) |
Definition at line 2637 of file parser_support.c.
References pt_query_info::all_distinct, pt_union_info::arg1, pt_union_info::arg2, pt_spec_info::derived_table, parser_context::error_msgs, pt_select_info::from, pt_select_info::group_by, parser_node::info, parser_node::next, parser_node::node_type, NULL, parser_context::oid_included, parser, parser_free_tree(), PT_DIFFERENCE, PT_DISTINCT, pt_has_aggregate(), pt_has_error, PT_INTERSECTION, PT_NO_OID_INCLUDED, PT_SELECT, PT_UNION, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_statement_info::spec, and pt_query_info::union_.
Referenced by check_default_on_update_clause(), db_compile_statement_local(), db_execute_and_keep_statement_local(), db_push_values(), do_alter_one_clause_with_template(), do_cast_host_variables_to_expected_domain(), do_prepare_select(), do_select_internal(), eval_action(), get_att_default_from_def(), func_type::Node::get_signature(), and qo_rewrite_like_for_index_scan().
|
static |
Definition at line 6201 of file parser_support.c.
References assert, AVT_IDENTIFIER, check_arg_valid(), error(), i, parser_node::info, MSGCAT_SEMANTIC_MISSING_ARGUMENT, MSGCAT_SEMANTIC_UNKNOWN_ARGUMENT, MSGCAT_SET_PARSER_SEMANTIC, showstmt_named_arg::name, pt_named_arg_info::name, pt_statement_info::name, pt_statement_info::named_arg, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, parser_append_node(), PT_ERRORmf, pt_make_string_value(), PT_NAMED_ARG, and pt_named_arg_info::value.
Referenced by pt_make_query_showstmt().
|
static |
Definition at line 6121 of file parser_support.c.
References AVT_IDENTIFIER, check_arg_valid(), error(), i, MSGCAT_SEMANTIC_TOO_FEW_ARGUMENT, MSGCAT_SEMANTIC_TOO_MANY_ARGUMENT, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, NULL, PT_ERRORm, PT_ERRORmf, and pt_make_string_value().
Referenced by pt_make_query_showstmt().
|
static |
Definition at line 7962 of file parser_support.c.
References pt_spec_info::as_attr_list, assert, pt_statement_info::data_type, parser_node::data_type, pt_spec_info::derived_table, pt_spec_info::flag, pt_spec_info::flat_entity_list, pt_select_info::from, pt_spec_info::id, parser_node::info, pt_select_info::list, MSGCAT_SEMANTIC_ONLY_ONE_UPDATE_SPEC_ALLOWED, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, parser_append_node(), parser_copy_tree(), parser_copy_tree_list(), pt_add_row_oid_name(), pt_append_string(), PT_ERRORm, PT_INTERNAL_ERROR, pt_name(), PT_NAME, PT_OID_ATTR, PT_SPEC_FLAG_CONTAINS_OID, PT_SPEC_FLAG_DELETE, PT_TYPE_NONE, pt_query_info::q, pt_statement_info::query, pt_spec_info::range_var, pt_query_info::select, pt_statement_info::spec, and pt_data_type_info::virt_object.
Referenced by pt_process_spec_for_delete(), and pt_process_spec_for_update().
PT_NODE* pt_rewrite_to_auto_param | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | value | ||
) |
Definition at line 3958 of file parser_support.c.
References assert, parser_context::auto_param_count, db_make_null(), pt_statement_info::host_var, parser_context::host_var_count, pt_value_info::host_var_index, parser_context::host_variables, pt_host_var_info::index, parser_node::info, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, NULL, parser_free_tree(), pr_clone_value(), pt_create_param_for_value(), PT_ERRORm, pt_is_const_not_hostvar, PT_IS_VALUE_NODE, PT_NODE_MOVE_NUMBER_OUTERLINK, pt_value_to_db(), and pt_statement_info::value.
Referenced by do_prepare_insert_internal(), mq_auto_param_merge_clauses(), qo_do_auto_parameterize(), qo_do_auto_parameterize_keylimit_clause(), qo_do_auto_parameterize_limit_clause(), and qo_optimize_queries().
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().
void pt_set_update_object | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node | ||
) |
Definition at line 3313 of file parser_support.c.
References pt_statement_info::host_var, parser_node::info, NULL, pt_update_info::object_parameter, parser_free_tree(), parser_new_node(), pt_append_string(), PT_HOST_VAR, pt_update_info::spec, pt_host_var_info::str, and pt_statement_info::update.
Definition at line 3499 of file parser_support.c.
References pt_sort_spec_info::asc_or_desc, parser_node::info, parser_node::next, NULL, pt_sort_spec_info::nulls_first_or_last, pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, and pt_statement_info::sort_spec.
Referenced by qo_check_orderby_skip_descending(), qo_plan_is_orderby_skip_candidate(), qo_reduce_order_by(), and qo_top_plan_new().
bool pt_sort_spec_cover_groupby | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | sort_list, | ||
PT_NODE * | group_list, | ||
PT_NODE * | tree | ||
) |
Definition at line 7894 of file parser_support.c.
References pt_sort_spec_info::asc_or_desc, CAST_POINTER_TO_NODE, pt_sort_spec_info::expr, i, parser_node::info, pt_select_info::list, parser_node::next, parser_node::node_type, NULL, pt_sort_spec_info::nulls_first_or_last, qfile_tuple_value_position::pos_no, pt_get_end_path_node(), PT_NAME, pt_name_equal(), PT_NAME_INFO_CONSTANT, PT_NAME_INFO_IS_FLAGED, pt_to_pos_descr(), pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_statement_info::sort_spec.
Referenced by qo_check_groupby_skip_descending(), and qo_top_plan_new().
int pt_split_delete_stmt | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | delete_stmt | ||
) |
Definition at line 7415 of file parser_support.c.
References ARG_FILE_LINE, pt_delete_info::del_stmt_list, pt_statement_info::delete_, pt_spec_info::derived_table, ER_ERROR_SEVERITY, ER_FAILED, ER_GENERIC_ERROR, er_set(), pt_spec_info::flag, parser_node::flag, pt_delete_info::hint, pt_spec_info::id, parser_node::info, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_delete_info::ordered_hint, parser_copy_tree(), parser_free_tree(), parser_walk_tree(), pt_continue_walk(), pt_create_delete_stmt(), PT_DELETE, pt_has_error, PT_HINT_LK_TIMEOUT, PT_HINT_ORDERED, PT_HINT_USE_IDX, PT_HINT_USE_MERGE, PT_HINT_USE_NL, PT_INTERNAL_ERROR, pt_is_spec_referenced(), PT_SPEC_FLAG_DELETE, parser_node::recompile, pt_delete_info::spec, pt_statement_info::spec, pt_delete_info::target_classes, pt_delete_info::use_idx_hint, pt_delete_info::use_merge_hint, pt_delete_info::use_nl_hint, and pt_delete_info::waitsecs_hint.
Referenced by do_prepare_delete(), and pt_compile_trigger_stmt().
void pt_split_join_preds | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | predicates, | ||
PT_NODE ** | join_part, | ||
PT_NODE ** | after_cb_filter | ||
) |
Definition at line 2492 of file parser_support.c.
References assert, parser_node::next, NULL, parser_node::or_next, parser_append_node(), PT_AND, PT_IS_EXPR_NODE, PT_IS_EXPR_NODE_WITH_OPERATOR, pt_is_filtering_expression(), PT_IS_VALUE_NODE, and PT_OR.
Referenced by qo_optimize_queries().
Definition at line 2717 of file parser_support.c.
References parser_node::line_number.
Referenced by db_get_start_line().
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().
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().
PT_NODE* pt_tuple_value | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | name, | ||
CURSOR_ID * | cursor_p, | ||
int | index | ||
) |
Definition at line 444 of file parser_support.c.
References pt_tuple_value_info::cursor_p, pt_tuple_value_info::index, parser_node::info, pt_tuple_value_info::name, parser_new_node(), PT_TUPLE_VALUE, and pt_statement_info::tuple_value.
Referenced by pt_make_tuple_value_reference().
PT_NODE* pt_union | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | arg1, | ||
PT_NODE * | arg2 | ||
) |
Definition at line 246 of file parser_support.c.
References pt_union_info::arg1, pt_union_info::arg2, pt_query_info::correlation_level, pt_query_info::id, parser_node::info, pt_query_info::is_subquery, parser_new_node(), PT_IS_UNION_SUBQUERY, PT_UNION, pt_query_info::q, pt_statement_info::query, and pt_query_info::union_.
Referenced by mq_translate_subqueries(), and mq_union_bump_correlation().
Definition at line 2247 of file parser_support.c.
References parser_node::info, pt_statement_info::insert, pt_node_list_info::list_type, pt_statement_info::node_list, parser_node::node_type, NULL, PT_INSERT, PT_IS_SUBQUERY, and pt_insert_info::value_clauses.
Referenced by uci_static().
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().
|
static |
Definition at line 104 of file parser_support.c.
Referenced by pt_alloc_packing_buf(), pt_final_packing_buf(), and pt_free_packing_buf().
|
static |
Definition at line 103 of file parser_support.c.
Referenced by pt_alloc_packing_buf(), and pt_final_packing_buf().
|
static |
Definition at line 105 of file parser_support.c.
Referenced by pt_alloc_packing_buf(), pt_enter_packing_buf(), pt_exit_packing_buf(), and pt_final_packing_buf().
|
static |
Definition at line 101 of file parser_support.c.
Referenced by pt_alloc_packing_buf().
|
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().