CUBRID Engine  latest
semantic_check.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  STATEMENT_SET_FOLD { STATEMENT_SET_FOLD_NOTHING = 0, STATEMENT_SET_FOLD_AS_NULL, STATEMENT_SET_FOLD_AS_ARG1, STATEMENT_SET_FOLD_AS_ARG2 }
 

Functions

int pt_class_assignable (PARSER_CONTEXT *parser, const PT_NODE *d_class, const PT_NODE *s_class)
 
PT_NODEpt_type_cast_vclass_query_spec_column (PARSER_CONTEXT *parser, PT_NODE *attr, PT_NODE *col)
 
PT_NODEpt_check_union_compatibility (PARSER_CONTEXT *parser, PT_NODE *node)
 
PT_NODEpt_check_type_compatibility_of_values_query (PARSER_CONTEXT *parser, PT_NODE *node)
 
PT_NODEpt_check_union_type_compatibility_of_values_query (PARSER_CONTEXT *parser, PT_NODE *node)
 
PT_NODEpt_semantic_quick_check_node (PARSER_CONTEXT *parser, PT_NODE **spec, PT_NODE **node)
 
PT_NODEpt_semantic_check (PARSER_CONTEXT *parser, PT_NODE *statement)
 
PT_NODEpt_invert (PARSER_CONTEXT *parser, PT_NODE *name_expr, PT_NODE *result)
 
PT_NODEpt_insert_entity (PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *prev_entity, PT_NODE *correlation_spec)
 
PT_NODEpt_find_class_of_index (PARSER_CONTEXT *parser, const char *const index_name, const DB_CONSTRAINT_TYPE index_type)
 
int pt_has_text_domain (PARSER_CONTEXT *parser, DB_ATTRIBUTE *attribute)
 
PT_NODEpt_find_order_value_in_list (PARSER_CONTEXT *parser, const PT_NODE *sort_value, const PT_NODE *order_list)
 
bool pt_check_cast_op (PARSER_CONTEXT *parser, PT_NODE *node)
 
bool pt_check_compatible_node_for_orderby (PARSER_CONTEXT *parser, PT_NODE *order, PT_NODE *column)
 
PT_NODEpt_check_odku_assignments (PARSER_CONTEXT *parser, PT_NODE *insert)
 
int pt_attr_check_default_cs_coll (PARSER_CONTEXT *parser, PT_NODE *attr, int default_cs, int default_coll)
 
PT_NODEpt_check_cyclic_reference_in_view_spec (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
void pt_try_remove_order_by (PARSER_CONTEXT *parser, PT_NODE *query)
 
STATEMENT_SET_FOLD pt_check_union_is_foldable (PARSER_CONTEXT *parser, PT_NODE *union_node)
 
PT_NODEpt_fold_union (PARSER_CONTEXT *parser, PT_NODE *union_node, STATEMENT_SET_FOLD fold_as)
 

Enumeration Type Documentation

Enumerator
STATEMENT_SET_FOLD_NOTHING 
STATEMENT_SET_FOLD_AS_NULL 
STATEMENT_SET_FOLD_AS_ARG1 
STATEMENT_SET_FOLD_AS_ARG2 

Definition at line 29 of file semantic_check.h.

Function Documentation

bool pt_check_cast_op ( PARSER_CONTEXT parser,
PT_NODE node 
)

Definition at line 937 of file semantic_check.c.

References pt_expr_info::arg1, assert, pt_expr_info::cast_type, lang_collation::codeset, pt_statement_info::data_type, parser_node::data_type, pt_statement_info::expr, parser_node::info, lang_get_codeset_name(), lang_get_collation(), MSGCAT_SEMANTIC_CANT_COERCE_TO, MSGCAT_SEMANTIC_COERCE_UNSUPPORTED, MSGCAT_SEMANTIC_COLLATE_NOT_ALLOWED, MSGCAT_SEMANTIC_CS_MATCH_COLLATE, MSGCAT_SET_PARSER_SEMANTIC, parser_node::node_type, NULL, pt_expr_info::op, PT_CAST, PT_CAST_INVALID, PT_CAST_UNSUPPORTED, PT_CAST_VALID, PT_ERRORm, PT_ERRORmf2, PT_EXPR, PT_EXPR_INFO_CAST_COLL_MODIFIER, PT_EXPR_INFO_CAST_SHOULD_FOLD, PT_EXPR_INFO_IS_FLAGED, PT_GET_COLLATION_MODIFIER, PT_HAS_COLLATION, pt_has_error, PT_INTERNAL_ERROR, PT_IS_NATIONAL_CHAR_STRING_TYPE, PT_IS_SIMPLE_CHAR_STRING_TYPE, pt_short_print(), pt_show_type_enum(), PT_TYPE_BIGINT, PT_TYPE_BIT, PT_TYPE_BLOB, PT_TYPE_CHAR, PT_TYPE_CLOB, PT_TYPE_DATE, PT_TYPE_DATETIME, PT_TYPE_DATETIMELTZ, PT_TYPE_DATETIMETZ, PT_TYPE_DOUBLE, PT_TYPE_ENUMERATION, PT_TYPE_FLOAT, PT_TYPE_INTEGER, PT_TYPE_MONETARY, PT_TYPE_MULTISET, PT_TYPE_NCHAR, PT_TYPE_NONE, PT_TYPE_NUMERIC, PT_TYPE_OBJECT, PT_TYPE_SEQUENCE, PT_TYPE_SET, PT_TYPE_SMALLINT, PT_TYPE_TIME, PT_TYPE_TIMESTAMP, PT_TYPE_TIMESTAMPLTZ, PT_TYPE_TIMESTAMPTZ, PT_TYPE_VARBIT, PT_TYPE_VARCHAR, PT_TYPE_VARNCHAR, parser_node::type_enum, and pt_data_type_info::units.

Referenced by pt_eval_expr_type(), and pt_semantic_check_local().

Here is the caller graph for this function:

PT_NODE* pt_check_union_type_compatibility_of_values_query ( PARSER_CONTEXT parser,
PT_NODE node 
)

Definition at line 2800 of file semantic_check.c.

References pt_expr_info::arg1, pt_union_info::arg1, pt_expr_info::arg2, pt_union_info::arg2, assert, pt_update_info::assignment, pt_statement_info::attr_def, pt_insert_info::attr_list, au_get_user_name(), Au_user, pt_attr_def_info::constrain_not_null, pt_statement_info::cte, parser_context::custom_print, pt_attr_def_info::data_default, pt_statement_info::data_type, parser_node::data_type, db_attribute_default(), db_attribute_name(), db_attribute_next(), db_find_class(), db_get_attribute(), db_get_attributes_force(), db_get_string(), db_make_set(), db_set_create_basic(), db_value_create(), pt_statement_info::delete_, pt_data_type_info::entity, pt_spec_info::entity_name, parser_node::etc, EXCLUDE_HIDDEN_COLUMNS, pt_statement_info::expr, free_and_init, i, parser_node::info, pt_statement_info::insert, pt_delete_info::internal_stmts, pt_insert_info::internal_stmts, pt_update_info::internal_stmts, pt_insert_info::into_var, pt_name_info::meta_class, MSGCAT_SEMANTIC_ARITY_MISMATCH, MSGCAT_SEMANTIC_CANT_COERCE_TO, MSGCAT_SEMANTIC_CLASS_DOES_NOT_EXIST, MSGCAT_SEMANTIC_CLASS_EXISTS, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, NO_ERROR, parser_node::node_type, pt_cte_info::non_recursive_part, NULL, pt_name_info::original, parser_free_subtrees(), parser_free_tree(), parser_new_node(), parser_print_tree(), parser_reinit_node(), pt_data_type_info::precision, pt_append_statements_on_add_attribute(), pt_append_string(), pt_associate_label_with_value(), pt_combine_compatible_info(), PT_CTE, PT_DIFFERENCE, PT_ERRORm, PT_ERRORmf, PT_ERRORmf2, PT_EXPR, pt_get_compatible_info(), pt_get_select_list(), pt_get_values_query_compatible_info(), PT_INTERSECTION, PT_IS_ASSIGN_NODE, PT_IS_DEFAULT_VALUE, PT_IS_DOT_NODE, PT_IS_IN, PT_IS_NAME_NODE, PT_IS_SUBQUERY, PT_IS_VALUE_QUERY, pt_length_of_select_list(), pt_make_string_value(), pt_name(), PT_NAME, PT_NAME_INFO_EXTERNAL, PT_NAME_INFO_IS_FLAGED, PT_NAME_INFO_SET_FLAG, PT_NORMAL, PT_PARAMETER, pt_to_compatible_cast(), PT_TYPE_NULL, PT_TYPE_OBJECT, PT_UNION, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_spec_info::range_var, pt_cte_info::recursive_part, pt_name_info::resolved, pt_update_info::search_cond, pt_delete_info::spec, pt_insert_info::spec, pt_update_info::spec, pt_statement_info::spec, pt_name_info::spec_id, TEXT_CONSTRAINT_PREFIX, parser_node::type_enum, pt_query_info::union_, pt_data_type_info::units, and pt_statement_info::update.

Referenced by pt_eval_type().

Here is the caller graph for this function:

PT_NODE* pt_find_class_of_index ( PARSER_CONTEXT parser,
const char *const  index_name,
const DB_CONSTRAINT_TYPE  index_type 
)
PT_NODE* pt_find_order_value_in_list ( PARSER_CONTEXT parser,
const PT_NODE sort_value,
const PT_NODE order_list 
)
int pt_has_text_domain ( PARSER_CONTEXT parser,
DB_ATTRIBUTE attribute 
)
PT_NODE* pt_insert_entity ( PARSER_CONTEXT parser,
PT_NODE node,
PT_NODE prev_entity,
PT_NODE correlation_spec 
)
PT_NODE* pt_semantic_check ( PARSER_CONTEXT parser,
PT_NODE statement 
)
PT_NODE* pt_semantic_quick_check_node ( PARSER_CONTEXT parser,
PT_NODE **  spec,
PT_NODE **  node 
)

Definition at line 11157 of file semantic_check.c.

References error(), NO_ERROR, NULL, pt_has_error, pt_quick_resolve_names(), and pt_semantic_type().

Referenced by compile_partition_expression().

Here is the caller graph for this function: