File name_resolution.c
FileList > cubrid > src > parser > name_resolution.c
Go to the source code of this file
#include "config.h"
#include <assert.h>
#include <unordered_map>
#include "authenticate.h"
#include "porting.h"
#include "error_manager.h"
#include "parser.h"
#include "parser_message.h"
#include "semantic_check.h"
#include "dbtype.h"
#include "object_domain.h"
#include "object_primitive.h"
#include "memory_alloc.h"
#include "intl_support.h"
#include "memory_hash.h"
#include "system_parameter.h"
#include "object_print.h"
#include "jsp_cl.h"
#include "execute_schema.h"
#include "schema_manager.h"
#include "schema_system_catalog_constants.h"
#include "execute_statement.h"
#include "show_meta.h"
#include "network_interface_cl.h"
#include "locator_cl.h"
#include "db_json.hpp"
#include <cas_cci.h>
Classes
Public Types
Public Attributes
Public Static Attributes
Public Functions
| Type |
Name |
| PT_NODE * |
pt_add_class_to_entity_list (PARSER_CONTEXT * parser, DB_OBJECT * class_, PT_NODE * entity, const PT_NODE * parent, UINTPTR id, PT_MISC_TYPE meta_class)
|
| PT_NODE * |
pt_bind_param_node (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_bind_values_to_hostvars (PARSER_CONTEXT * parser, PT_NODE * node)
|
| int |
pt_check_dblink_column_alias (PARSER_CONTEXT * parser, PT_NODE * dblink)
|
| PT_NODE * |
pt_check_dblink_query (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_check_same_datatype (const PARSER_CONTEXT * parser, const PT_NODE * p, const PT_NODE * q)
|
| int |
pt_check_unique_names (PARSER_CONTEXT * parser, const PT_NODE * p)
|
| PT_NODE * |
pt_domain_to_data_type (PARSER_CONTEXT * parser, DB_DOMAIN * domain)
|
| PT_NODE * |
pt_eval_value_path (PARSER_CONTEXT * parser, PT_NODE * path)
|
| PT_NODE * |
pt_find_entity (PARSER_CONTEXT * parser, const PT_NODE * scope, UINTPTR id)
|
| PT_NODE * |
pt_flat_spec_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
pt_free_dblink_remote_cols (PARSER_CONTEXT * parser)
|
| PT_NODE * |
pt_insert_entity (PARSER_CONTEXT * parser, PT_NODE * path, PT_NODE * prev_entity, PT_NODE * correlation_entity)
|
| PT_OP_TYPE |
pt_op_type_from_default_expr_type (DB_DEFAULT_EXPR_TYPE expr_type)
|
| int |
pt_quick_resolve_names (PARSER_CONTEXT * parser, PT_NODE ** spec_p, PT_NODE ** node_p, SEMANTIC_CHK_INFO * sc_info)
|
| PT_NODE * |
pt_resolve_cte_specs (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_resolve_default_value (PARSER_CONTEXT * parser, PT_NODE * name)
|
| PT_NODE * |
pt_resolve_names (PARSER_CONTEXT * parser, PT_NODE * statement, SEMANTIC_CHK_INFO * sc_info)
|
| void |
pt_resolve_object (PARSER_CONTEXT * parser, PT_NODE * node)
|
| DB_OBJECT * |
pt_resolve_serial (PARSER_CONTEXT * parser, PT_NODE * node)
|
| int |
pt_resolve_server_names (PARSER_CONTEXT * parser, PT_NODE * spec)
|
| PT_NODE * |
pt_resolve_star (PARSER_CONTEXT * parser, PT_NODE * from, PT_NODE * attr)
|
| PT_NODE * |
pt_resolve_using_index (PARSER_CONTEXT * parser, PT_NODE * index, PT_NODE * from, bool * is_ignore)
|
| int |
pt_resolved (const PT_NODE * expr)
|
| void |
pt_set_fill_default_in_path_expression (PT_NODE * node)
|
| PT_NODE * |
pt_set_is_view_spec (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_str_compare (const char * p, const char * q, CASE_SENSITIVENESS case_flag)
|
| int |
pt_user_specified_name_compare (const char * p, const char * q)
|
Public Static Functions
| Type |
Name |
| void |
check_for_already_exists (PARSER_CONTEXT * parser, S_LINK_COLUMNS * plkcol, const char * resolved, const char * original)
|
| void |
fill_in_insert_default_function_arguments (PARSER_CONTEXT * parser, PT_NODE *const node)
|
| void |
free_natural_join_attrs (NATURAL_JOIN_ATTR_INFO * attrs)
|
| int |
generate_natural_join_attrs_from_db_attrs (DB_ATTRIBUTE * db_attrs, NATURAL_JOIN_ATTR_INFO ** attrs_p)
|
| int |
generate_natural_join_attrs_from_subquery (PT_NODE * subquery_attrs_list, NATURAL_JOIN_ATTR_INFO ** attrs_p)
|
| NATURAL_JOIN_ATTR_INFO * |
get_natural_join_attrs_from_pt_spec (PARSER_CONTEXT * parser, PT_NODE * node)
|
| bool |
is_pt_name_in_group_having (PT_NODE * node)
|
| bool |
natural_join_equal_attr (NATURAL_JOIN_ATTR_INFO * lhs, NATURAL_JOIN_ATTR_INFO * rhs)
|
| PT_NODE * |
pt_bind_cte_self_references_types (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_bind_name_or_path_in_scope (PARSER_CONTEXT * parser, PT_BIND_NAMES_ARG * bind_arg, PT_NODE * in_node)
|
| PT_NODE * |
pt_bind_name_to_spec (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_bind_names (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
pt_bind_names_in_cte (PARSER_CONTEXT * parser, PT_NODE * node, PT_BIND_NAMES_ARG * bind_arg)
|
| void |
pt_bind_names_in_with_clause (PARSER_CONTEXT * parser, PT_NODE * node, PT_BIND_NAMES_ARG * bind_arg)
|
| void |
pt_bind_names_merge_insert (PARSER_CONTEXT * parser, PT_NODE * node, PT_BIND_NAMES_ARG * bind_arg, SCOPES * scopestack, PT_EXTRA_SPECS_FRAME * specs_frame)
|
| void |
pt_bind_names_merge_update (PARSER_CONTEXT * parser, PT_NODE * node, PT_BIND_NAMES_ARG * bind_arg, SCOPES * scopestack, PT_EXTRA_SPECS_FRAME * specs_frame)
|
| PT_NODE * |
pt_bind_names_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_bind_parameter (PARSER_CONTEXT * parser, PT_NODE * parameter)
|
| PT_NODE * |
pt_bind_parameter_path (PARSER_CONTEXT * parser, PT_NODE * path)
|
| PT_NODE * |
pt_bind_reserved_name (PARSER_CONTEXT * parser, PT_NODE * in_node, PT_NODE * spec)
|
| void |
pt_bind_scope (PARSER_CONTEXT * parser, PT_BIND_NAMES_ARG * bind_arg)
|
| void |
pt_bind_spec_attrs (PARSER_CONTEXT * parser, PT_NODE * spec)
|
| void |
pt_bind_type_of_host_var (PARSER_CONTEXT * parser, PT_NODE * hv)
|
| PT_NODE * |
pt_bind_value_to_hostvar_local (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PARSER_VARCHAR * |
pt_build_select_list_for_dblink (PARSER_CONTEXT * parser, PT_NODE * col_list)
|
| PT_NODE * |
pt_check_Oracle_outerjoin (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
pt_check_column_list (PARSER_CONTEXT * parser, const char * tbl_alias_nm, PT_DBLINK_INFO * dblink_table, S_REMOTE_TBL_COLS * rmt_cols)
|
| int |
pt_check_unique_exposed (PARSER_CONTEXT * parser, const PT_NODE * p)
|
| PT_NODE * |
pt_clear_Oracle_outerjoin_spec_id (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_common_attribute (PARSER_CONTEXT * parser, PT_NODE * p, PT_NODE * q)
|
| PT_NODE * |
pt_copy_data_type_entity (PARSER_CONTEXT * parser, PT_NODE * data_type)
|
| PT_NODE * |
pt_count_ctes_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_count_with_clauses (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_create_pt_expr_and_node (PARSER_CONTEXT * parser, PT_NODE * arg1, PT_NODE * arg2)
|
| PT_NODE * |
pt_create_pt_expr_equal_node (PARSER_CONTEXT * parser, PT_NODE * arg1, PT_NODE * arg2)
|
| PT_NODE * |
pt_create_pt_name (PARSER_CONTEXT * parser, PT_NODE * spec, NATURAL_JOIN_ATTR_INFO * attr)
|
| T_CCI_U_TYPE |
pt_dblink_get_basic_utype (T_CCI_U_EXT_TYPE u_ext_type)
|
| bool |
pt_dblink_table_fill_attr_def (PARSER_CONTEXT * parser, PT_NODE * attr_def_node, const S_REMOTE_COL_ATTR * attr)
|
| PT_NODE * |
pt_dblink_table_gather_attribs (PARSER_CONTEXT * parser, PT_NODE * dblink_column, void * args, int * continue_walk)
|
| int |
pt_dblink_table_get_column_defs (PARSER_CONTEXT * parser, PT_NODE * dblink, S_REMOTE_TBL_COLS * rmt_tbl_cols)
|
| PT_NODE * |
pt_expand_external_path (PARSER_CONTEXT * parser, PT_NODE * in_node, PT_NODE ** p_entity)
|
| int |
pt_find_attr_in_class_list (PARSER_CONTEXT * parser, PT_NODE * flat, PT_NODE * attr)
|
| int |
pt_find_class_attribute (PARSER_CONTEXT * parser, PT_NODE * cls, PT_NODE * attr)
|
| PT_NODE * |
pt_find_entity_in_scopes (PARSER_CONTEXT * parser, SCOPES * scopes, UINTPTR spec_id)
|
| FUNC_CODE |
pt_find_function_type (const char * name)
|
| int |
pt_find_name_in_spec (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * name)
|
| PT_NODE * |
pt_find_outer_entity_in_scopes (PARSER_CONTEXT * parser, SCOPES * scopes, UINTPTR spec_id, short * scope_location)
|
| PT_NODE * |
pt_find_path_entity (PARSER_CONTEXT * parser, PT_NODE * scope, PT_NODE * match)
|
| int |
pt_function_name_is_spec_attr (PARSER_CONTEXT * parser, PT_NODE * name, PT_BIND_NAMES_ARG * bind_arg, int * is_spec_attr)
|
| void |
pt_gather_dblink_colums (PARSER_CONTEXT * parser, PT_NODE * query_stmt)
|
| PT_NODE * |
pt_get_all_attributes_and_types (PARSER_CONTEXT * parser, PT_NODE * cls, PT_NODE * from)
|
| PT_NODE * |
pt_get_all_dblink_table_attributes_and_types (PARSER_CONTEXT * parser, PT_NODE * dblink_cols, const char * dblink_table_alias)
|
| PT_NODE * |
pt_get_all_json_table_attributes_and_types (PARSER_CONTEXT * parser, PT_NODE * json_table_node, const char * json_table_alias)
|
| PT_NODE * |
pt_get_all_showstmt_attributes_and_types (PARSER_CONTEXT * parser, PT_NODE * derived_table)
|
| void |
pt_get_attr_data_type (PARSER_CONTEXT * parser, DB_ATTRIBUTE * att, PT_NODE * attr)
|
| PT_NODE * |
pt_get_attr_list_of_derived_table (PARSER_CONTEXT * parser, PT_MISC_TYPE derived_table_type, PT_NODE * derived_table, PT_NODE * derived_name)
|
| void |
pt_get_cols_for_dblink (PARSER_CONTEXT * parser, S_LINK_COLUMNS * plkcol, PT_QUERY_INFO * query, PT_NODE * on_cond)
|
| PT_NODE * |
pt_get_column_name_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_get_resolution (PARSER_CONTEXT * parser, PT_BIND_NAMES_ARG * bind_arg, PT_NODE * scope, PT_NODE * in_node, PT_NODE ** p_entity, int col_name)
|
| const char * |
pt_get_unique_exposed_name (PARSER_CONTEXT * parser, PT_NODE * first_spec)
|
| PT_NODE * |
pt_insert_conjunct (PARSER_CONTEXT * parser, PT_NODE * path_dot, PT_NODE * prev_entity)
|
| PT_NODE * |
pt_is_correlation_name (PARSER_CONTEXT * parser, PT_NODE * scope, PT_NODE * nam)
|
| PT_NODE * |
pt_is_on_list (PARSER_CONTEXT * parser, const PT_NODE * p, const PT_NODE * list)
|
| PT_NODE * |
pt_json_table_gather_attribs (PARSER_CONTEXT * parser, PT_NODE * json_table_node, void * args, int * continue_walk)
|
| PT_NODE * |
pt_lookup_entity (PARSER_CONTEXT * parser, PT_NODE * path_entities, PT_NODE * expr)
|
| PT_NODE * |
pt_make_flat_list_from_data_types (PARSER_CONTEXT * parser, PT_NODE * res_list, PT_NODE * entity)
|
| PT_NODE * |
pt_make_flat_name_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * spec_parent, bool for_update)
|
| PT_NODE * |
pt_make_method_call (PARSER_CONTEXT * parser, PT_NODE * node, PT_BIND_NAMES_ARG * bind_arg)
|
| PT_NODE * |
pt_make_subclass_list (PARSER_CONTEXT * parser, DB_OBJECT * db, int line_num, int col_num, UINTPTR id, PT_MISC_TYPE meta_class, MHT_TABLE * names_mht)
|
| void |
pt_mark_function_index_expression (PARSER_CONTEXT * parser, PT_NODE * expr, PT_BIND_NAMES_ARG * bind_arg)
|
| PT_NODE * |
pt_mark_group_having_pt_name (PARSER_CONTEXT * parser, PT_NODE * node, void * chk_parent, int * continue_walk)
|
| PT_NODE * |
pt_mark_location (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_mark_pt_name (PARSER_CONTEXT * parser, PT_NODE * node, void * chk_parent, int * continue_walk)
|
| PT_NODE * |
pt_mk_attr_def_node (PARSER_CONTEXT * parser, PT_NODE * name_node, S_REMOTE_TBL_COLS * rmt_cols)
|
| int |
pt_must_have_exposed_name (PARSER_CONTEXT * parser, PT_NODE * p)
|
| PT_NODE * |
pt_name_list_diff (PARSER_CONTEXT * parser, PT_NODE * list, PT_NODE * deletions)
|
| PT_NODE * |
pt_name_list_union (PARSER_CONTEXT * parser, PT_NODE * list, PT_NODE * additions)
|
| PT_NODE * |
pt_object_to_data_type (PARSER_CONTEXT * parser, PT_NODE * class_list)
|
| PT_NODE * |
pt_parameterize_for_static_sql (PARSER_CONTEXT * parser, PT_NODE * node)
|
| const char * |
pt_print_pl_host_expr (PARSER_CONTEXT * parser, PT_NODE * node)
|
| int |
pt_remake_dblink_select_list (PARSER_CONTEXT * parser, PT_SPEC_INFO * class_spec, S_REMOTE_TBL_COLS * rmt_cols)
|
| PT_NODE * |
pt_resolve_correlation (PARSER_CONTEXT * parser, PT_NODE * in_node, PT_NODE * scope, PT_NODE * exposed_spec, int col_name, PT_NODE ** p_entity)
|
| int |
pt_resolve_dblink_check_owner_name (PARSER_CONTEXT * parser, PT_NODE * node, char ** server_owner_name)
|
| int |
pt_resolve_dblink_server_name (PARSER_CONTEXT * parser, PT_NODE * node, char ** server_owner_name)
|
| PT_NODE * |
pt_resolve_group_having_alias (PARSER_CONTEXT * parser, PT_NODE * node, void * chk_parent, int * continue_walk)
|
| void |
pt_resolve_group_having_alias_internal (PARSER_CONTEXT * parser, PT_NODE ** node_p, PT_NODE * select_list)
|
| void |
pt_resolve_group_having_alias_pt_expr (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * select_list)
|
| void |
pt_resolve_group_having_alias_pt_name (PARSER_CONTEXT * parser, PT_NODE ** node_p, PT_NODE * select_list)
|
| void |
pt_resolve_group_having_alias_pt_sort_spec (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * select_list)
|
| int |
pt_resolve_hint (PARSER_CONTEXT * parser, PT_NODE * node)
|
| int |
pt_resolve_hint_args (PARSER_CONTEXT * parser, PT_NODE ** arg_list, PT_NODE * spec_list, bool discard_no_match)
|
| PT_NODE * |
pt_resolve_method (PARSER_CONTEXT * parser, PT_NODE * node, PT_BIND_NAMES_ARG * bind_arg)
|
| bool |
pt_resolve_method_type (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_resolve_natural_join (PARSER_CONTEXT * parser, PT_NODE * node, void * chk_parent, int * continue_walk)
|
| void |
pt_resolve_natural_join_internal (PARSER_CONTEXT * parser, PT_NODE * join_lhs, PT_NODE * join_rhs)
|
| PT_NODE * |
pt_resolve_partition_spec (PARSER_CONTEXT * parser, PT_NODE * partition_spec, PT_NODE * spec_parent, bool fo_update)
|
| PT_NODE * |
pt_resolve_spec_to_cte (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_resolve_spec_to_cte_and_count (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_resolve_star_reserved_names (PARSER_CONTEXT * parser, PT_NODE * from)
|
| PT_NODE * |
pt_resolve_stored_procedure (PARSER_CONTEXT * parser, PT_NODE * node, PT_BIND_NAMES_ARG * bind_arg)
|
| PT_NODE * |
pt_resolve_vclass_args (PARSER_CONTEXT * parser, PT_NODE * statement)
|
| void |
pt_set_attr_list_types (PARSER_CONTEXT * parser, PT_NODE * as_attr_list, PT_MISC_TYPE derived_table_type, PT_NODE * derived_table, PT_NODE * parent_spec)
|
| PT_NODE * |
pt_set_reserved_name_key_type (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_spec_in_domain (PT_NODE * cls, PT_NODE * lst)
|
| PT_NODE * |
pt_undef_names_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_undef_names_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_unwhacked_spec (PARSER_CONTEXT * parser, PT_NODE * scope, PT_NODE * spec)
|
| void |
pt_write_semantic_warning (PARSER_CONTEXT * parser, PT_NODE * name, int line_no, int msg_no)
|
Macros
Public Types Documentation
typedef NATURAL_JOIN_ATTR_INFO
typedef struct natural_join_attr_info NATURAL_JOIN_ATTR_INFO;
typedef PT_BIND_NAMES_ARG
typedef struct pt_bind_names_arg PT_BIND_NAMES_ARG;
typedef PT_BIND_NAMES_DATA_TYPE
typedef struct pt_bind_names_data_type PT_BIND_NAMES_DATA_TYPE;
typedef struct extra_specs_frame PT_EXTRA_SPECS_FRAME;
typedef SCOPES
typedef struct scopes SCOPES;
typedef S_LINK_COLUMNS
typedef struct link_columns S_LINK_COLUMNS;
typedef S_REMOTE_TBL_COLS
typedef struct remote_tbl_cols S_REMOTE_TBL_COLS;
enum name__resolution_8c_1ac34c4c978f4130a92a5068f9e21ea9fc
enum name__resolution_8c_1ac34c4c978f4130a92a5068f9e21ea9fc {
REQUIRE_ALL_MATCH = false,
DISCARD_NO_MATCH = true
};
Public Attributes Documentation
variable json_table_column_count
size_t json_table_column_count;
variable parser_function_code
int parser_function_code;
variable pt_type
PT_TYPE_ENUM pt_type[CCI_U_TYPE_LAST+1];
Public Static Attributes Documentation
variable CPTR_PT_NAME_IN_GROUP_HAVING
const char* CPTR_PT_NAME_IN_GROUP_HAVING;
Public Functions Documentation
function pt_add_class_to_entity_list
PT_NODE * pt_add_class_to_entity_list (
PARSER_CONTEXT * parser,
DB_OBJECT * class_,
PT_NODE * entity,
const PT_NODE * parent,
UINTPTR id,
PT_MISC_TYPE meta_class
)
function pt_bind_param_node
PT_NODE * pt_bind_param_node (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_bind_values_to_hostvars
PT_NODE * pt_bind_values_to_hostvars (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_dblink_column_alias
int pt_check_dblink_column_alias (
PARSER_CONTEXT * parser,
PT_NODE * dblink
)
function pt_check_dblink_query
PT_NODE * pt_check_dblink_query (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_same_datatype
int pt_check_same_datatype (
const PARSER_CONTEXT * parser,
const PT_NODE * p,
const PT_NODE * q
)
function pt_check_unique_names
int pt_check_unique_names (
PARSER_CONTEXT * parser,
const PT_NODE * p
)
function pt_domain_to_data_type
PT_NODE * pt_domain_to_data_type (
PARSER_CONTEXT * parser,
DB_DOMAIN * domain
)
function pt_eval_value_path
PT_NODE * pt_eval_value_path (
PARSER_CONTEXT * parser,
PT_NODE * path
)
function pt_find_entity
PT_NODE * pt_find_entity (
PARSER_CONTEXT * parser,
const PT_NODE * scope,
UINTPTR id
)
function pt_flat_spec_pre
PT_NODE * pt_flat_spec_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_free_dblink_remote_cols
void pt_free_dblink_remote_cols (
PARSER_CONTEXT * parser
)
function pt_insert_entity
PT_NODE * pt_insert_entity (
PARSER_CONTEXT * parser,
PT_NODE * path,
PT_NODE * prev_entity,
PT_NODE * correlation_entity
)
function pt_op_type_from_default_expr_type
PT_OP_TYPE pt_op_type_from_default_expr_type (
DB_DEFAULT_EXPR_TYPE expr_type
)
function pt_quick_resolve_names
int pt_quick_resolve_names (
PARSER_CONTEXT * parser,
PT_NODE ** spec_p,
PT_NODE ** node_p,
SEMANTIC_CHK_INFO * sc_info
)
function pt_resolve_cte_specs
PT_NODE * pt_resolve_cte_specs (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_resolve_default_value
int pt_resolve_default_value (
PARSER_CONTEXT * parser,
PT_NODE * name
)
function pt_resolve_names
PT_NODE * pt_resolve_names (
PARSER_CONTEXT * parser,
PT_NODE * statement,
SEMANTIC_CHK_INFO * sc_info
)
function pt_resolve_object
void pt_resolve_object (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_resolve_serial
DB_OBJECT * pt_resolve_serial (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_resolve_server_names
int pt_resolve_server_names (
PARSER_CONTEXT * parser,
PT_NODE * spec
)
function pt_resolve_star
PT_NODE * pt_resolve_star (
PARSER_CONTEXT * parser,
PT_NODE * from,
PT_NODE * attr
)
function pt_resolve_using_index
PT_NODE * pt_resolve_using_index (
PARSER_CONTEXT * parser,
PT_NODE * index,
PT_NODE * from,
bool * is_ignore
)
function pt_resolved
int pt_resolved (
const PT_NODE * expr
)
function pt_set_fill_default_in_path_expression
void pt_set_fill_default_in_path_expression (
PT_NODE * node
)
function pt_set_is_view_spec
PT_NODE * pt_set_is_view_spec (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_str_compare
int pt_str_compare (
const char * p,
const char * q,
CASE_SENSITIVENESS case_flag
)
function pt_user_specified_name_compare
int pt_user_specified_name_compare (
const char * p,
const char * q
)
Public Static Functions Documentation
function check_for_already_exists
static void check_for_already_exists (
PARSER_CONTEXT * parser,
S_LINK_COLUMNS * plkcol,
const char * resolved,
const char * original
)
function fill_in_insert_default_function_arguments
static void fill_in_insert_default_function_arguments (
PARSER_CONTEXT * parser,
PT_NODE * const node
)
function free_natural_join_attrs
static void free_natural_join_attrs (
NATURAL_JOIN_ATTR_INFO * attrs
)
function generate_natural_join_attrs_from_db_attrs
static int generate_natural_join_attrs_from_db_attrs (
DB_ATTRIBUTE * db_attrs,
NATURAL_JOIN_ATTR_INFO ** attrs_p
)
function generate_natural_join_attrs_from_subquery
static int generate_natural_join_attrs_from_subquery (
PT_NODE * subquery_attrs_list,
NATURAL_JOIN_ATTR_INFO ** attrs_p
)
function get_natural_join_attrs_from_pt_spec
static NATURAL_JOIN_ATTR_INFO * get_natural_join_attrs_from_pt_spec (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function is_pt_name_in_group_having
static bool is_pt_name_in_group_having (
PT_NODE * node
)
function natural_join_equal_attr
static bool natural_join_equal_attr (
NATURAL_JOIN_ATTR_INFO * lhs,
NATURAL_JOIN_ATTR_INFO * rhs
)
function pt_bind_cte_self_references_types
static PT_NODE * pt_bind_cte_self_references_types (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_bind_name_or_path_in_scope
static PT_NODE * pt_bind_name_or_path_in_scope (
PARSER_CONTEXT * parser,
PT_BIND_NAMES_ARG * bind_arg,
PT_NODE * in_node
)
function pt_bind_name_to_spec
static PT_NODE * pt_bind_name_to_spec (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_bind_names
static PT_NODE * pt_bind_names (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_bind_names_in_cte
static void pt_bind_names_in_cte (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_BIND_NAMES_ARG * bind_arg
)
function pt_bind_names_in_with_clause
static void pt_bind_names_in_with_clause (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_BIND_NAMES_ARG * bind_arg
)
function pt_bind_names_merge_insert
static void pt_bind_names_merge_insert (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_BIND_NAMES_ARG * bind_arg,
SCOPES * scopestack,
PT_EXTRA_SPECS_FRAME * specs_frame
)
function pt_bind_names_merge_update
static void pt_bind_names_merge_update (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_BIND_NAMES_ARG * bind_arg,
SCOPES * scopestack,
PT_EXTRA_SPECS_FRAME * specs_frame
)
function pt_bind_names_post
static PT_NODE * pt_bind_names_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_bind_parameter
static PT_NODE * pt_bind_parameter (
PARSER_CONTEXT * parser,
PT_NODE * parameter
)
function pt_bind_parameter_path
static PT_NODE * pt_bind_parameter_path (
PARSER_CONTEXT * parser,
PT_NODE * path
)
function pt_bind_reserved_name
static PT_NODE * pt_bind_reserved_name (
PARSER_CONTEXT * parser,
PT_NODE * in_node,
PT_NODE * spec
)
function pt_bind_scope
static void pt_bind_scope (
PARSER_CONTEXT * parser,
PT_BIND_NAMES_ARG * bind_arg
)
function pt_bind_spec_attrs
static void pt_bind_spec_attrs (
PARSER_CONTEXT * parser,
PT_NODE * spec
)
function pt_bind_type_of_host_var
static void pt_bind_type_of_host_var (
PARSER_CONTEXT * parser,
PT_NODE * hv
)
function pt_bind_value_to_hostvar_local
static PT_NODE * pt_bind_value_to_hostvar_local (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_build_select_list_for_dblink
static PARSER_VARCHAR * pt_build_select_list_for_dblink (
PARSER_CONTEXT * parser,
PT_NODE * col_list
)
function pt_check_Oracle_outerjoin
static PT_NODE * pt_check_Oracle_outerjoin (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_column_list
static void pt_check_column_list (
PARSER_CONTEXT * parser,
const char * tbl_alias_nm,
PT_DBLINK_INFO * dblink_table,
S_REMOTE_TBL_COLS * rmt_cols
)
function pt_check_unique_exposed
static int pt_check_unique_exposed (
PARSER_CONTEXT * parser,
const PT_NODE * p
)
function pt_clear_Oracle_outerjoin_spec_id
static PT_NODE * pt_clear_Oracle_outerjoin_spec_id (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_common_attribute
static PT_NODE * pt_common_attribute (
PARSER_CONTEXT * parser,
PT_NODE * p,
PT_NODE * q
)
function pt_copy_data_type_entity
static PT_NODE * pt_copy_data_type_entity (
PARSER_CONTEXT * parser,
PT_NODE * data_type
)
function pt_count_ctes_post
static PT_NODE * pt_count_ctes_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_count_with_clauses
static PT_NODE * pt_count_with_clauses (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_create_pt_expr_and_node
static PT_NODE * pt_create_pt_expr_and_node (
PARSER_CONTEXT * parser,
PT_NODE * arg1,
PT_NODE * arg2
)
function pt_create_pt_expr_equal_node
static PT_NODE * pt_create_pt_expr_equal_node (
PARSER_CONTEXT * parser,
PT_NODE * arg1,
PT_NODE * arg2
)
function pt_create_pt_name
static PT_NODE * pt_create_pt_name (
PARSER_CONTEXT * parser,
PT_NODE * spec,
NATURAL_JOIN_ATTR_INFO * attr
)
function pt_dblink_get_basic_utype
static T_CCI_U_TYPE pt_dblink_get_basic_utype (
T_CCI_U_EXT_TYPE u_ext_type
)
function pt_dblink_table_fill_attr_def
static bool pt_dblink_table_fill_attr_def (
PARSER_CONTEXT * parser,
PT_NODE * attr_def_node,
const S_REMOTE_COL_ATTR * attr
)
function pt_dblink_table_gather_attribs
static PT_NODE * pt_dblink_table_gather_attribs (
PARSER_CONTEXT * parser,
PT_NODE * dblink_column,
void * args,
int * continue_walk
)
function pt_dblink_table_get_column_defs
static int pt_dblink_table_get_column_defs (
PARSER_CONTEXT * parser,
PT_NODE * dblink,
S_REMOTE_TBL_COLS * rmt_tbl_cols
)
function pt_expand_external_path
static PT_NODE * pt_expand_external_path (
PARSER_CONTEXT * parser,
PT_NODE * in_node,
PT_NODE ** p_entity
)
function pt_find_attr_in_class_list
static int pt_find_attr_in_class_list (
PARSER_CONTEXT * parser,
PT_NODE * flat,
PT_NODE * attr
)
function pt_find_class_attribute
static int pt_find_class_attribute (
PARSER_CONTEXT * parser,
PT_NODE * cls,
PT_NODE * attr
)
function pt_find_entity_in_scopes
static PT_NODE * pt_find_entity_in_scopes (
PARSER_CONTEXT * parser,
SCOPES * scopes,
UINTPTR spec_id
)
function pt_find_function_type
static FUNC_CODE pt_find_function_type (
const char * name
)
function pt_find_name_in_spec
static int pt_find_name_in_spec (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * name
)
function pt_find_outer_entity_in_scopes
static PT_NODE * pt_find_outer_entity_in_scopes (
PARSER_CONTEXT * parser,
SCOPES * scopes,
UINTPTR spec_id,
short * scope_location
)
function pt_find_path_entity
static PT_NODE * pt_find_path_entity (
PARSER_CONTEXT * parser,
PT_NODE * scope,
PT_NODE * match
)
function pt_function_name_is_spec_attr
static int pt_function_name_is_spec_attr (
PARSER_CONTEXT * parser,
PT_NODE * name,
PT_BIND_NAMES_ARG * bind_arg,
int * is_spec_attr
)
function pt_gather_dblink_colums
static void pt_gather_dblink_colums (
PARSER_CONTEXT * parser,
PT_NODE * query_stmt
)
function pt_get_all_attributes_and_types
static PT_NODE * pt_get_all_attributes_and_types (
PARSER_CONTEXT * parser,
PT_NODE * cls,
PT_NODE * from
)
function pt_get_all_dblink_table_attributes_and_types
static PT_NODE * pt_get_all_dblink_table_attributes_and_types (
PARSER_CONTEXT * parser,
PT_NODE * dblink_cols,
const char * dblink_table_alias
)
function pt_get_all_json_table_attributes_and_types
static PT_NODE * pt_get_all_json_table_attributes_and_types (
PARSER_CONTEXT * parser,
PT_NODE * json_table_node,
const char * json_table_alias
)
function pt_get_all_showstmt_attributes_and_types
static PT_NODE * pt_get_all_showstmt_attributes_and_types (
PARSER_CONTEXT * parser,
PT_NODE * derived_table
)
function pt_get_attr_data_type
static void pt_get_attr_data_type (
PARSER_CONTEXT * parser,
DB_ATTRIBUTE * att,
PT_NODE * attr
)
function pt_get_attr_list_of_derived_table
static PT_NODE * pt_get_attr_list_of_derived_table (
PARSER_CONTEXT * parser,
PT_MISC_TYPE derived_table_type,
PT_NODE * derived_table,
PT_NODE * derived_name
)
function pt_get_cols_for_dblink
static void pt_get_cols_for_dblink (
PARSER_CONTEXT * parser,
S_LINK_COLUMNS * plkcol,
PT_QUERY_INFO * query,
PT_NODE * on_cond
)
function pt_get_column_name_pre
static PT_NODE * pt_get_column_name_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_get_resolution
static PT_NODE * pt_get_resolution (
PARSER_CONTEXT * parser,
PT_BIND_NAMES_ARG * bind_arg,
PT_NODE * scope,
PT_NODE * in_node,
PT_NODE ** p_entity,
int col_name
)
function pt_get_unique_exposed_name
static const char * pt_get_unique_exposed_name (
PARSER_CONTEXT * parser,
PT_NODE * first_spec
)
function pt_insert_conjunct
static PT_NODE * pt_insert_conjunct (
PARSER_CONTEXT * parser,
PT_NODE * path_dot,
PT_NODE * prev_entity
)
function pt_is_correlation_name
static PT_NODE * pt_is_correlation_name (
PARSER_CONTEXT * parser,
PT_NODE * scope,
PT_NODE * nam
)
function pt_is_on_list
static PT_NODE * pt_is_on_list (
PARSER_CONTEXT * parser,
const PT_NODE * p,
const PT_NODE * list
)
function pt_json_table_gather_attribs
static PT_NODE * pt_json_table_gather_attribs (
PARSER_CONTEXT * parser,
PT_NODE * json_table_node,
void * args,
int * continue_walk
)
function pt_lookup_entity
static PT_NODE * pt_lookup_entity (
PARSER_CONTEXT * parser,
PT_NODE * path_entities,
PT_NODE * expr
)
function pt_make_flat_list_from_data_types
static PT_NODE * pt_make_flat_list_from_data_types (
PARSER_CONTEXT * parser,
PT_NODE * res_list,
PT_NODE * entity
)
function pt_make_flat_name_list
static PT_NODE * pt_make_flat_name_list (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * spec_parent,
bool for_update
)
function pt_make_method_call
static PT_NODE * pt_make_method_call (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_BIND_NAMES_ARG * bind_arg
)
function pt_make_subclass_list
static PT_NODE * pt_make_subclass_list (
PARSER_CONTEXT * parser,
DB_OBJECT * db,
int line_num,
int col_num,
UINTPTR id,
PT_MISC_TYPE meta_class,
MHT_TABLE * names_mht
)
function pt_mark_function_index_expression
static void pt_mark_function_index_expression (
PARSER_CONTEXT * parser,
PT_NODE * expr,
PT_BIND_NAMES_ARG * bind_arg
)
function pt_mark_group_having_pt_name
static PT_NODE * pt_mark_group_having_pt_name (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * chk_parent,
int * continue_walk
)
function pt_mark_location
static PT_NODE * pt_mark_location (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_mark_pt_name
static PT_NODE * pt_mark_pt_name (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * chk_parent,
int * continue_walk
)
function pt_mk_attr_def_node
static PT_NODE * pt_mk_attr_def_node (
PARSER_CONTEXT * parser,
PT_NODE * name_node,
S_REMOTE_TBL_COLS * rmt_cols
)
function pt_must_have_exposed_name
static int pt_must_have_exposed_name (
PARSER_CONTEXT * parser,
PT_NODE * p
)
function pt_name_list_diff
static PT_NODE * pt_name_list_diff (
PARSER_CONTEXT * parser,
PT_NODE * list,
PT_NODE * deletions
)
function pt_name_list_union
static PT_NODE * pt_name_list_union (
PARSER_CONTEXT * parser,
PT_NODE * list,
PT_NODE * additions
)
function pt_object_to_data_type
static PT_NODE * pt_object_to_data_type (
PARSER_CONTEXT * parser,
PT_NODE * class_list
)
function pt_parameterize_for_static_sql
static PT_NODE * pt_parameterize_for_static_sql (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_print_pl_host_expr
static const char * pt_print_pl_host_expr (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_remake_dblink_select_list
static int pt_remake_dblink_select_list (
PARSER_CONTEXT * parser,
PT_SPEC_INFO * class_spec,
S_REMOTE_TBL_COLS * rmt_cols
)
function pt_resolve_correlation
static PT_NODE * pt_resolve_correlation (
PARSER_CONTEXT * parser,
PT_NODE * in_node,
PT_NODE * scope,
PT_NODE * exposed_spec,
int col_name,
PT_NODE ** p_entity
)
function pt_resolve_dblink_check_owner_name
static int pt_resolve_dblink_check_owner_name (
PARSER_CONTEXT * parser,
PT_NODE * node,
char ** server_owner_name
)
function pt_resolve_dblink_server_name
static int pt_resolve_dblink_server_name (
PARSER_CONTEXT * parser,
PT_NODE * node,
char ** server_owner_name
)
function pt_resolve_group_having_alias
static PT_NODE * pt_resolve_group_having_alias (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * chk_parent,
int * continue_walk
)
function pt_resolve_group_having_alias_internal
static void pt_resolve_group_having_alias_internal (
PARSER_CONTEXT * parser,
PT_NODE ** node_p,
PT_NODE * select_list
)
function pt_resolve_group_having_alias_pt_expr
static void pt_resolve_group_having_alias_pt_expr (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * select_list
)
function pt_resolve_group_having_alias_pt_name
static void pt_resolve_group_having_alias_pt_name (
PARSER_CONTEXT * parser,
PT_NODE ** node_p,
PT_NODE * select_list
)
function pt_resolve_group_having_alias_pt_sort_spec
static void pt_resolve_group_having_alias_pt_sort_spec (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * select_list
)
function pt_resolve_hint
static int pt_resolve_hint (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_resolve_hint_args
static int pt_resolve_hint_args (
PARSER_CONTEXT * parser,
PT_NODE ** arg_list,
PT_NODE * spec_list,
bool discard_no_match
)
function pt_resolve_method
static PT_NODE * pt_resolve_method (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_BIND_NAMES_ARG * bind_arg
)
function pt_resolve_method_type
static bool pt_resolve_method_type (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_resolve_natural_join
static PT_NODE * pt_resolve_natural_join (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * chk_parent,
int * continue_walk
)
function pt_resolve_natural_join_internal
static void pt_resolve_natural_join_internal (
PARSER_CONTEXT * parser,
PT_NODE * join_lhs,
PT_NODE * join_rhs
)
function pt_resolve_partition_spec
static PT_NODE * pt_resolve_partition_spec (
PARSER_CONTEXT * parser,
PT_NODE * partition_spec,
PT_NODE * spec_parent,
bool fo_update
)
function pt_resolve_spec_to_cte
static PT_NODE * pt_resolve_spec_to_cte (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_resolve_spec_to_cte_and_count
static PT_NODE * pt_resolve_spec_to_cte_and_count (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_resolve_star_reserved_names
static PT_NODE * pt_resolve_star_reserved_names (
PARSER_CONTEXT * parser,
PT_NODE * from
)
function pt_resolve_stored_procedure
static PT_NODE * pt_resolve_stored_procedure (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_BIND_NAMES_ARG * bind_arg
)
function pt_resolve_vclass_args
static PT_NODE * pt_resolve_vclass_args (
PARSER_CONTEXT * parser,
PT_NODE * statement
)
function pt_set_attr_list_types
static void pt_set_attr_list_types (
PARSER_CONTEXT * parser,
PT_NODE * as_attr_list,
PT_MISC_TYPE derived_table_type,
PT_NODE * derived_table,
PT_NODE * parent_spec
)
function pt_set_reserved_name_key_type
static PT_NODE * pt_set_reserved_name_key_type (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_spec_in_domain
static int pt_spec_in_domain (
PT_NODE * cls,
PT_NODE * lst
)
function pt_undef_names_post
static PT_NODE * pt_undef_names_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_undef_names_pre
static PT_NODE * pt_undef_names_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_unwhacked_spec
static PT_NODE * pt_unwhacked_spec (
PARSER_CONTEXT * parser,
PT_NODE * scope,
PT_NODE * spec
)
function pt_write_semantic_warning
static void pt_write_semantic_warning (
PARSER_CONTEXT * parser,
PT_NODE * name,
int line_no,
int msg_no
)
Macro Definition Documentation
define DBLINK_ATTR_CLASS_NAME
#define DBLINK_ATTR_CLASS_NAME `(11)`
define DBLINK_ATTR_NAME
#define DBLINK_ATTR_NAME `(1)`
define DBLINK_ATTR_PRECISION
#define DBLINK_ATTR_PRECISION `(4)`
define DBLINK_ATTR_SCALE
#define DBLINK_ATTR_SCALE `(3)`
define DBLINK_ATTR_TYPE
#define DBLINK_ATTR_TYPE `(2)`
define MAX_LEN_CONNECTION_URL
#define MAX_LEN_CONNECTION_URL `512`
define PT_NAMES_HASH_SIZE
#define PT_NAMES_HASH_SIZE `50`
define SQL_MAX_TEXT_LEN
#define SQL_MAX_TEXT_LEN `DB_MAX_IDENTIFIER_LENGTH * 2 + 16`
The documentation for this class was generated from the following file cubrid/src/parser/name_resolution.c