CUBRID Engine
latest
|
#include "config.h"
#include <assert.h>
#include "authenticate.h"
#include "error_manager.h"
#include "parser.h"
#include "parser_message.h"
#include "semantic_check.h"
#include "memory_alloc.h"
#include "jsp_cl.h"
#include "execute_schema.h"
#include "set_object.h"
#include "schema_manager.h"
#include "release_string.h"
#include "dbi.h"
#include "xasl_generation.h"
#include "view_transform.h"
#include "show_meta.h"
#include "partition.h"
#include "db_json.hpp"
#include "object_primitive.h"
#include "dbtype.h"
Go to the source code of this file.
Classes | |
struct | seman_compatible_info |
struct | PT_VALUE_LINKS |
struct | db_value_plist |
struct | PT_CHAIN_INFO |
Macros | |
#define | PT_CHAIN_LENGTH 10 |
Typedefs | |
typedef struct seman_compatible_info | SEMAN_COMPATIBLE_INFO |
typedef struct PT_VALUE_LINKS | PT_VALUE_LINKS |
typedef struct db_value_plist | DB_VALUE_PLIST |
Enumerations | |
enum | PT_CAST_VAL { PT_CAST_VALID, PT_CAST_INVALID, PT_CAST_UNSUPPORTED } |
enum | PT_UNION_COMPATIBLE { PT_UNION_COMP = 1, PT_UNION_INCOMP = 0, PT_UNION_INCOMP_CANNOT_FIX = -1, PT_UNION_ERROR = -2 } |
enum | RANGE_MIN_MAX_ENUM { RANGE_MIN = 0, RANGE_MAX = 1 } |
#define PT_CHAIN_LENGTH 10 |
Definition at line 49 of file semantic_check.c.
Referenced by pt_expand_isnull_preds_helper().
typedef struct db_value_plist DB_VALUE_PLIST |
typedef struct PT_VALUE_LINKS PT_VALUE_LINKS |
typedef struct seman_compatible_info SEMAN_COMPATIBLE_INFO |
enum PT_CAST_VAL |
Enumerator | |
---|---|
PT_CAST_VALID | |
PT_CAST_INVALID | |
PT_CAST_UNSUPPORTED |
Definition at line 51 of file semantic_check.c.
enum PT_UNION_COMPATIBLE |
Enumerator | |
---|---|
PT_UNION_COMP | |
PT_UNION_INCOMP | |
PT_UNION_INCOMP_CANNOT_FIX | |
PT_UNION_ERROR |
Definition at line 54 of file semantic_check.c.
enum RANGE_MIN_MAX_ENUM |
Enumerator | |
---|---|
RANGE_MIN | |
RANGE_MAX |
Definition at line 70 of file semantic_check.c.
|
static |
Definition at line 5139 of file semantic_check.c.
References pt_statement_info::attr_def, pt_attr_def_info::attr_name, parser_node::info, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, PT_ATTR_DEF, and PT_NAME.
Referenced by get_attribute_with_name(), pt_check_vclass_query_spec(), and pt_check_vclass_union_spec().
|
static |
Definition at line 6169 of file semantic_check.c.
References db_make_null(), db_value_copy(), db_value_plist::next, NULL, and db_value_plist::val.
Referenced by pt_check_alter_partition().
|
static |
Definition at line 6218 of file semantic_check.c.
References DB_EQ, DB_IS_NULL, db_make_null(), db_value_compare(), db_value_plist::next, NULL, and db_value_plist::val.
Referenced by pt_check_alter_partition().
|
static |
Definition at line 6256 of file semantic_check.c.
References DB_EQ, DB_IS_NULL, db_make_null(), db_value_compare(), free_and_init, db_value_plist::next, NULL, pr_free_ext_value(), and db_value_plist::val.
Referenced by pt_check_alter_partition().
|
static |
Definition at line 5166 of file semantic_check.c.
References pt_statement_info::attr_def, pt_attr_def_info::attr_name, pt_attr_def_info::attr_type, parser_node::info, pt_name_info::meta_class, pt_statement_info::name, parser_node::node_type, PT_ATTR_DEF, PT_NAME, and PT_SHARED.
Referenced by pt_check_vclass_query_spec().
Definition at line 6099 of file semantic_check.c.
References DB_EQ, DB_GT, DB_IS_NULL, DB_LT, db_make_null(), db_value_compare(), db_value_copy(), NULL, pr_free_ext_value(), and RANGE_MIN.
Referenced by pt_check_alter_partition().
|
static |
Referenced by pt_check_attribute_domain(), and pt_check_union_type_compatibility_of_values_query().
|
static |
Definition at line 15756 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, pt_coll_infer::codeset, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, parser_node::data_type, i, parser_node::info, pt_select_info::list, MSGCAT_SEMANTIC_UNION_INCOMPATIBLE, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, parser_node::node_type, NULL, parser_copy_tree(), parser_copy_tree_list(), parser_free_tree(), pt_common_collation(), PT_DIFFERENCE, PT_ERRORmf2, pt_get_compatible_info_from_node(), pt_get_select_list(), PT_HAS_COLLATION, PT_INTERSECTION, pt_make_cast_with_compatible_info(), PT_SELECT, pt_short_print(), PT_UNION, PT_UNION_COMP, PT_UNION_INCOMP, PT_UNION_INCOMP_CANNOT_FIX, pt_query_info::q, pt_statement_info::query, seman_compatible_info::ref_att, pt_query_info::select, seman_compatible_info::type_enum, parser_node::type_enum, and pt_query_info::union_.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 11317 of file semantic_check.c.
References assert, parser_node::data_type, ER_FAILED, parser_node::info, MSGCAT_SEMANTIC_INCOMP_TYPE_ON_ATTR, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, NO_ERROR, parser_node::node_type, NULL, pt_name_info::original, pt_class_assignable(), PT_ERRORmf, PT_NAME, PT_TYPE_NONE, PT_TYPE_OBJECT, and parser_node::type_enum.
Referenced by pt_assignment_compatible(), and pt_check_assignments().
|
static |
Definition at line 11351 of file semantic_check.c.
References assert, assert_release, tp_domain::codeset, pt_coll_infer::codeset, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, pt_data_type_info::collation_flag, tp_domain::collation_id, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, DB_TYPE_UNKNOWN, pt_data_type_info::dec_precision, parser_node::expected_domain, seman_compatible_info::force_cast, pt_statement_info::host_var, parser_context::host_var_count, parser_context::host_var_expected_domains, pr_type::id, pt_host_var_info::index, parser_node::info, pt_data_type_info::json_schema, lang_charset(), LANG_SYS_COLLATION, parser_node::next, NO_ERROR, parser_node::node_type, NULL, parser_copy_tree_list(), parser_free_tree(), seman_compatible_info::prec, pt_data_type_info::precision, pt_assignment_class_compatible(), pt_data_type_to_db_domain(), pt_get_collation_info(), PT_HAS_COLLATION, PT_HOST_VAR, PT_IS_CHAR_STRING_TYPE, PT_IS_COLLECTION_TYPE, pt_is_compatible_without_cast(), PT_IS_STRING_TYPE, PT_NAME, pt_preset_hostvar(), pt_set_expected_domain(), pt_type_enum_to_db(), PT_TYPE_ENUMERATION, PT_TYPE_JSON, PT_TYPE_MAYBE, PT_TYPE_NONE, PT_TYPE_NULL, PT_TYPE_NUMERIC, PT_TYPE_OBJECT, pt_wrap_with_cast_op(), seman_compatible_info::scale, tp_domain_cache(), TP_DOMAIN_COLL_NORMAL, tp_domain_copy(), tp_domain_resolve(), tp_domain_resolve_default(), TP_DOMAIN_TYPE, TP_TYPE_HAS_COLLATION, tp_domain::type, seman_compatible_info::type_enum, parser_node::type_enum, and pt_data_type_info::units.
Referenced by pt_coerce_insert_values().
int pt_attr_check_default_cs_coll | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | attr, | ||
int | default_cs, | ||
int | default_coll | ||
) |
Definition at line 4071 of file semantic_check.c.
References assert, lang_collation::codeset, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, pt_value_info::data_value, DB_DEFAULT_PRECISION, db_get_string_size(), pt_value_info::db_value, pt_value_info::db_value_is_initialized, pt_data_type_info::enumeration, err, pt_data_type_info::has_coll_spec, pt_data_type_info::has_cs_spec, parser_node::info, INTL_CODESET_RAW_BYTES, LANG_GET_BINARY_COLLATION, lang_get_collation(), LANG_SYS_CODESET, parser_varchar::length, parser_node::next, NO_ERROR, parser_node::node_type, NULL, parser_copy_tree(), parser_free_tree(), parser_new_node(), pt_data_type_info::precision, pt_coerce_value(), PT_DATA_TYPE, PT_HAS_COLLATION, PT_TYPE_ENUMERATION, PT_VALUE, pt_data_value::str, parser_node::type_enum, pt_data_type_info::units, and pt_statement_info::value.
Referenced by do_add_attribute(), pt_check_alter(), and pt_check_create_entity().
|
static |
Definition at line 7056 of file semantic_check.c.
References pt_statement_info::data_type, parser_node::data_type, db_find_class(), db_is_subclass(), pt_name_info::db_object, pt_data_type_info::entity, parser_node::info, intl_identifier_casecmp(), pt_statement_info::name, parser_node::next, parser_node::node_type, pt_name_info::original, PT_DATA_TYPE, PT_NAME, PT_TYPE_OBJECT, and parser_node::type_enum.
Referenced by pt_check_vclass_query_spec().
|
static |
Definition at line 4697 of file semantic_check.c.
References pt_statement_info::alter, pt_alter_info::alter_clause, ARG_FILE_LINE, assert, pt_statement_info::attr_def, pt_alter_info::attr_mthd, sm_attribute::auto_increment, pt_attr_def_info::auto_increment, pt_alter_info::ch_attr_def, pt_alter_info::code, pt_attr_def_info::data_default, db_attribute_class(), db_attribute_domain(), db_domain_class(), db_get_attribute_force(), db_get_attributes(), db_get_class_attribute(), db_get_class_method(), db_get_class_name(), db_get_method(), db_get_subclasses(), db_get_superclasses(), db_is_class(), db_is_subclass(), db_is_superclass(), db_is_vclass(), DB_MAX_IDENTIFIER_LENGTH, pt_name_info::db_object, DB_PARTITION_CLASS, do_is_partitioned_subclass(), pt_alter_info::entity_name, pt_alter_info::entity_type, er_msg(), ER_REGU_NOT_IMPLEMENTED, er_set(), ER_WARNING_SEVERITY, sm_attribute::header, ID_SHARED_ATTRIBUTE, parser_node::info, pt_alter_info::internal_stmts, pt_name_info::meta_class, MSGCAT_SEMANTIC_ALREADY_PARTITIONED_CLASS, MSGCAT_SEMANTIC_ALREADY_SUBCLASS, MSGCAT_SEMANTIC_ALREADY_SUPERCLASS, MSGCAT_SEMANTIC_ALTER_CHANGE_ONLY_TABLE, MSGCAT_SEMANTIC_ALTER_VIEW_IN_HIERARCHY, MSGCAT_SEMANTIC_CANT_PARTITION_MNG_TRIGGERS, MSGCAT_SEMANTIC_CLASS_DOES_NOT_EXIST, MSGCAT_SEMANTIC_HAVE_NO_QUERY_SPEC, MSGCAT_SEMANTIC_HEIR_CANT_CHANGE_IT, MSGCAT_SEMANTIC_INVALID_AUTO_INCREMENT_ON_DEFAULT_SHARED, MSGCAT_SEMANTIC_INVALID_PARTITION_REQUEST, MSGCAT_SEMANTIC_IS_NOT_A, MSGCAT_SEMANTIC_IS_NOT_PARTITIONED_CLASS, MSGCAT_SEMANTIC_NONCLASS_PARENT, MSGCAT_SEMANTIC_NONVCLASS_PARENT, MSGCAT_SEMANTIC_NOT_CLASS_ATTR_MTHD, MSGCAT_SEMANTIC_NOT_METHOD_OR_ATTR, MSGCAT_SEMANTIC_NOT_SUPERCLASS_OF, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_PARTITION_KEY_COLUMN, MSGCAT_SEMANTIC_SUPERCLASS_CYCLE, MSGCAT_SEMANTIC_VCLASS_ATT_CANT_BE_AUTOINC, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, sm_component::name_space, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_name_info::original, pt_alter_info::partition, PT_ADD_ATTR_MTHD, PT_ADD_HASHPARTITION, PT_ADD_INDEX_CLAUSE, PT_ADD_PARTITION, PT_ADD_QUERY, PT_ADD_SUPCLASS, PT_ALTER_DEFAULT, PT_ANALYZE_PARTITION, pt_append_string(), PT_APPLY_PARTITION, pt_attr_check_default_cs_coll(), PT_ATTR_DEF, PT_ATTRIBUTE, PT_CHANGE_ATTR, pt_check_alter_partition(), pt_check_attribute_domain(), pt_check_create_view(), pt_check_data_default(), pt_check_mutable_attributes(), pt_check_partitions(), pt_check_user_owns_class(), PT_CLASS, PT_COALESCE_PARTITION, PT_DROP_ATTR_MTHD, PT_DROP_PARTITION, PT_DROP_QUERY, PT_DROP_SUPCLASS, PT_ERROR, PT_ERRORm, PT_ERRORmf, PT_ERRORmf2, pt_find_class(), pt_get_class_type(), PT_HAS_COLLATION, PT_META_ATTR, PT_MISC_DUMMY, PT_MODIFY_ATTR_MTHD, PT_MODIFY_DEFAULT, PT_MODIFY_QUERY, PT_NAME, PT_PROMOTE_PARTITION, PT_REMOVE_PARTITION, PT_RENAME_ATTR_MTHD, PT_REORG_PARTITION, PT_RESET_QUERY, pt_resolve_default_external(), pt_show_misc_type(), pt_validate_query_spec(), PT_VCLASS, pt_alter_info::query, rel_major_release_string(), pt_alter_info::rename, sm_class_has_triggers(), sm_get_class_collation(), sm_is_reuse_oid_class(), sm_partitioned_class_type(), pt_alter_info::sup_class_list, pt_alter_info::super, TR_EVENT_ALL, and parser_node::type_enum.
Referenced by pt_check_with_info().
|
static |
Definition at line 6314 of file semantic_check.c.
References pt_statement_info::alter, pt_alter_info::alter_clause, assert, au_fetch_class(), AU_FETCH_READ, AU_SELECT, pt_alter_info::code, db_value::data, parser_node::data_type, DB_GT, DB_IS_NULL, DB_LT, db_make_null(), pt_name_info::db_object, DB_PARTITION_LIST, DB_PARTITION_RANGE, db_value_compare(), db_value_list_add(), db_value_list_find(), db_value_list_finddel(), pt_alter_info::entity_name, er_errid(), er_msg(), error(), sm_partition::expr, parser_node::flag, free_and_init, parser_context::host_var_count, i, db_data::i, if(), parser_node::info, intl_identifier_casecmp(), pt_select_info::list, MAX_PARTITIONS, MSGCAT_SEMANTIC_CANNOT_DROP_ALL_PARTITIONS, MSGCAT_SEMANTIC_CONSTANT_TYPE_MISMATCH, MSGCAT_SEMANTIC_DATA_LOSS_IS_NOT_ALLOWED, MSGCAT_SEMANTIC_DUPLICATE_PARTITION_DEF, MSGCAT_SEMANTIC_HOSTVAR_IN_DDL, MSGCAT_SEMANTIC_INVALID_PARTITION_INFO, MSGCAT_SEMANTIC_INVALID_PARTITION_REQUEST, MSGCAT_SEMANTIC_INVALID_PARTITION_SIZE, MSGCAT_SEMANTIC_IS_NOT_END_OF_PARTITION, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_PARTITION_DOES_NOT_EXIST, MSGCAT_SEMANTIC_PARTITION_RANGE_INVALID, MSGCAT_SEMANTIC_PARTITION_TYPE_MISMATCH, MSGCAT_SEMANTIC_SELECT_AUTH_FAILURE, MSGCAT_SET_PARSER_SEMANTIC, pt_parts_info::name, pt_statement_info::name, db_value_plist::next, db_objlist::next, parser_node::next, NO_ERROR, parser_node::node_type, NULL, db_objlist::op, pt_name_info::original, p, parser_copy_tree(), parser_create_parser(), parser_free_parser(), parser_free_tree(), parser_parse_string(), parser_walk_tree(), sm_class::partition, pt_alter_info::partition, parser_node::partition_pruned, partition_range_min_max(), sm_partition::partition_type, pt_statement_info::parts, sm_partition::pname, pr_clear_value(), pr_free_ext_value(), PT_ADD_HASHPARTITION, PT_ADD_PARTITION, PT_ANALYZE_PARTITION, pt_check_and_replace_hostvar(), pt_check_range_partition_strict_increasing(), PT_COALESCE_PARTITION, pt_coerce_partition_value_with_data_type(), pt_compile(), pt_dbval_to_value(), pt_domain_to_data_type(), PT_DROP_PARTITION, PT_ERRORc, PT_ERRORm, PT_ERRORmf, pt_has_error, PT_PARTITION_HASH, PT_PARTITION_RANGE, PT_PROMOTE_PARTITION, PT_REORG_PARTITION, PT_SELECT, pt_type_enum_to_db(), PT_TYPE_NULL, PT_VALUE, pt_value_to_db(), pt_query_info::q, pt_statement_info::query, RANGE_MAX, RANGE_MIN, pt_query_info::select, set_get_element_nocopy(), set_size(), tp_domain_resolve_default(), pt_parts_info::type, parser_node::type_enum, sm_class::users, db_value_plist::val, sm_partition::values, and pt_parts_info::values.
Referenced by pt_check_alter().
|
static |
Definition at line 14630 of file semantic_check.c.
References pt_function_info::analytic, pt_function_info::arg_list, pt_sort_spec_info::asc_or_desc, pt_value_info::data_value, qfile_tuple_value_position::dom, pt_sort_spec_info::expr, parser_node::flag, pt_statement_info::function, pt_function_info::function_type, pt_data_value::i, parser_node::info, pt_function_info::is_analytic, parser_node::is_hidden_column, pt_select_info::list, MSGCAT_SEMANTIC_FUNCTION_NO_ARGS, MSGCAT_SEMANTIC_MEDIAN_FUNC_NOT_ALLOW_ORDER_BY, MSGCAT_SEMANTIC_NESTED_ANALYTIC_FUNCTIONS, MSGCAT_SEMANTIC_NOT_ALLOWED_HERE, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_SORT_DIR_CONFLICT, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, parser_node::node_type, NULL, pt_sort_spec_info::nulls_first_or_last, pt_function_info::order_by, parser_copy_tree(), parser_free_tree(), parser_new_node(), pt_function_info::partition_by, pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, PT_ASC, pt_compare_sort_spec_expr(), PT_COUNT_STAR, PT_CUME_DIST, PT_DENSE_RANK, PT_ERRORm, PT_ERRORmf, pt_find_matching_sort_spec(), PT_FUNCTION, pt_has_analytic(), PT_IS_CONST, PT_MEDIAN, PT_NULLS_DEFAULT, PT_PERCENT_RANK, PT_RANK, pt_remove_from_list(), pt_remove_unusable_sort_specs(), pt_resolve_sort_spec_expr(), PT_ROW_NUMBER, PT_SELECT, pt_short_print(), PT_SORT_SPEC, pt_to_null_ordering(), PT_TYPE_INTEGER, PT_TYPE_MAYBE, PT_TYPE_NONE, PT_VALUE, pt_value_to_db(), pt_xasl_node_to_domain(), pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_statement_info::sort_spec, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 10649 of file semantic_check.c.
References pt_dot_info::arg1, pt_dot_info::arg2, DB_TYPE_OBJECT, DB_TYPE_VOBJ, db_value_type(), pt_statement_info::dot, parser_context::flag, pt_statement_info::host_var, parser_context::host_var_count, pt_value_info::host_var_index, pt_host_var_info::index, parser_node::info, pt_value_info::is_collate_allowed, parser_free_tree(), pr_is_set_type(), pt_value_info::print_charset, pt_value_info::print_collation, pt_dbval_to_value(), PT_HAS_COLLATION, pt_is_dot_node, pt_is_input_hostvar, pt_is_input_parameter, pt_is_method_call(), PT_LIST_WALK, PT_NODE_MOVE_NUMBER_OUTERLINK, pt_node_to_db_type(), pt_value_to_db(), parser_context::set_host_var, TP_IS_SET_TYPE, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_check_alter_partition(), pt_check_partitions(), and pt_check_with_info().
|
static |
Definition at line 11572 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, assert, EXCLUDE_HIDDEN_COLUMNS, pt_statement_info::expr, parser_node::info, MSGCAT_SEMANTIC_ILLEGAL_LHS, MSGCAT_SEMANTIC_ILLEGAL_RHS, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, db_value_plist::next, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, parser_append_node(), parser_free_tree(), parser_new_node(), PT_ASSIGN, pt_assignment_class_compatible(), PT_ERRORm, PT_EXPR, pt_get_assignments(), pt_get_select_list(), PT_INTERNAL_ERROR, PT_IS_N_COLUMN_UPDATE_EXPR, pt_is_query, pt_length_of_list(), pt_length_of_select_list(), PT_NAME, PT_TYPE_NA, PT_TYPE_NULL, PT_VALUE, and parser_node::type_enum.
Referenced by pt_check_odku_assignments(), and pt_semantic_check_local().
|
static |
Definition at line 4477 of file semantic_check.c.
References pt_statement_info::alter, ARG_FILE_LINE, pt_statement_info::attr_def, pt_attr_def_info::attr_name, pt_attr_def_info::attr_type, pt_attr_def_info::auto_increment, pt_attr_def_info::constrain_not_null, pt_statement_info::create_entity, pt_attr_def_info::data_default, pt_statement_info::data_type, parser_node::data_type, db_find_class(), db_is_vclass(), pt_name_info::db_object, pt_data_type_info::dec_precision, pt_data_type_info::entity, pt_alter_info::entity_name, er_msg(), ER_REGU_NOT_IMPLEMENTED, er_set(), ER_WARNING_SEVERITY, parser_node::info, pt_alter_info::internal_stmts, pt_create_entity_info::internal_stmts, intl_identifier_casecmp(), MSGCAT_SEMANTIC_CAN_NOT_BE_VCLASS, MSGCAT_SEMANTIC_INVALID_AUTO_INCREMENT_DOMAIN, MSGCAT_SEMANTIC_IS_NOT_DEFINED, MSGCAT_SEMANTIC_NON_REFERABLE_VIOLATION, MSGCAT_SEMANTIC_WANT_NO_VOBJ_IN_SETS, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, PT_ALTER, pt_append_statements_on_add_attribute(), PT_ATTR_DEF, pt_check_enum_data_type(), pt_check_user_owns_class(), PT_CLASS, PT_CREATE_ENTITY, PT_DATA_TYPE, PT_ERROR, PT_ERRORm, PT_ERRORmf, pt_is_set_type, PT_NAME, PT_NAME_INFO_EXTERNAL, PT_NAME_INFO_IS_FLAGED, PT_NORMAL, PT_TYPE_BIGINT, PT_TYPE_ENUMERATION, PT_TYPE_INTEGER, PT_TYPE_NUMERIC, PT_TYPE_OBJECT, PT_TYPE_SMALLINT, PT_VCLASS, rel_major_release_string(), sm_is_reuse_oid_class(), and parser_node::type_enum.
Referenced by pt_check_alter(), and pt_check_create_entity().
|
static |
Definition at line 13929 of file semantic_check.c.
References pt_statement_info::attr_def, pt_create_entity_info::attr_def_list, pt_attr_def_info::auto_increment, pt_statement_info::auto_increment, pt_statement_info::create_entity, ER_AUTO_INCREMENT_SINGLE_COL_AMBIGUITY, ER_FAILED, pt_auto_increment_info::increment_val, parser_node::info, MSGCAT_SET_ERROR, parser_node::next, NO_ERROR, NULL, pt_table_option_info::option, parser_copy_tree(), parser_free_tree(), PT_ERRORm, PT_INTERNAL_ERROR, pt_make_integer_value(), PT_TABLE_OPTION_AUTO_INCREMENT, pt_auto_increment_info::start_val, pt_statement_info::table_option, pt_create_entity_info::table_option_list, and pt_table_option_info::val.
Referenced by pt_check_create_entity().
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().
int pt_check_class_eq | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | p, | ||
PT_NODE * | q | ||
) |
Definition at line 13129 of file semantic_check.c.
References CASE_INSENSITIVE, parser_node::info, MSGCAT_SEMANTIC_SORT_SPEC_NAN_PATH, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, PT_ERRORmf, PT_NAME, pt_short_print(), pt_str_compare(), pt_name_info::resolved, and pt_name_info::spec_id.
Referenced by qo_search_comp_pair_term().
bool pt_check_compatible_node_for_orderby | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | order, | ||
PT_NODE * | column | ||
) |
Definition at line 871 of file semantic_check.c.
References pt_expr_info::arg1, assert, pt_expr_info::cast_type, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_CAST, pt_check_path_eq(), PT_DOT_, PT_EXPR, PT_IS_DATE_TIME_TYPE, PT_IS_NUMERIC_TYPE, PT_IS_STRING_TYPE, PT_NAME, PT_TYPE_TIME, and parser_node::type_enum.
Referenced by pt_check_order_by(), and pt_to_pos_descr().
|
static |
Definition at line 13764 of file semantic_check.c.
References pt_statement_info::constraint, pt_statement_info::create_entity, pt_create_entity_info::entity_type, error(), parser_node::info, MSGCAT_SEMANTIC_UNIMPLEMENTED_CONSTRAINT, MSGCAT_SEMANTIC_WANT_NO_CONSTRAINTS, MSGCAT_SET_PARSER_SEMANTIC, NULL, parser_print_tree(), PT_CLASS, PT_CONSTRAIN_CHECK, PT_CONSTRAIN_FOREIGN_KEY, PT_CONSTRAIN_NOT_NULL, PT_CONSTRAIN_NULL, PT_CONSTRAIN_PRIMARY_KEY, PT_CONSTRAIN_UNIQUE, PT_CONSTRAIN_UNKNOWN, PT_ERRORm, PT_WARNINGmf, pt_constraint_info::type, and warning().
Referenced by pt_check_constraints().
|
static |
Definition at line 13809 of file semantic_check.c.
References pt_create_entity_info::constraint_list, pt_statement_info::create_entity, parser_node::info, parser_node::next, and pt_check_constraint().
Referenced by pt_check_create_entity().
|
static |
Definition at line 8187 of file semantic_check.c.
References parser_node::alias_print, ARG_FILE_LINE, pt_create_entity_info::as_query_list, assert, pt_statement_info::attr_def, pt_create_entity_info::attr_def_list, pt_attr_def_info::auto_increment, CASE_INSENSITIVE, pt_statement_info::create_entity, pt_create_entity_info::create_like, pt_create_entity_info::create_select, pt_attr_def_info::data_default, db_get_attributes(), db_is_class(), db_is_vclass(), DB_NOT_PARTITIONED_CLASS, pt_name_info::db_object, DB_PARTITION_CLASS, pt_create_entity_info::entity_name, pt_create_entity_info::entity_type, er_clear(), er_errid(), er_get_severity(), ER_LC_UNKNOWN_CLASSNAME, er_msg(), ER_REGU_NOT_IMPLEMENTED, er_set(), ER_WARNING_SEVERITY, error(), pt_create_entity_info::if_not_exists, parser_node::info, LANG_SYS_CODESET, LANG_SYS_COLLATION, MSGCAT_RUNTIME_NOT_ALLOWED_ACCESS_TO_PARTITION, MSGCAT_SEMANTIC_CLASS_DOES_NOT_EXIST, MSGCAT_SEMANTIC_CLASS_EXISTS, MSGCAT_SEMANTIC_CLASS_NO_QUERY_SPEC, MSGCAT_SEMANTIC_DUPLICATE_TABLE_OPTION, MSGCAT_SEMANTIC_IS_NOT_A, MSGCAT_SEMANTIC_MISSING_ATTR_NAME, MSGCAT_SEMANTIC_NONEXISTENT_SUPCLASS, MSGCAT_SEMANTIC_NOT_IN_SUBCLASS_LIST, MSGCAT_SEMANTIC_VARIABLE_NOT_ALLOWED, MSGCAT_SEMANTIC_VCLASS_ATT_CANT_BE_AUTOINC, MSGCAT_SEMANTIC_WANT_SUBCLASS_CLAUSE, MSGCAT_SET_PARSER_RUNTIME, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_resolution_info::of_sup_class_name, pt_table_option_info::option, pt_create_entity_info::or_replace, pt_name_info::original, parser_print_tree(), pt_create_entity_info::partition_info, prm_get_bool_value(), PRM_ID_TB_DEFAULT_REUSE_OID, pt_attr_check_default_cs_coll(), PT_ATTR_DEF, pt_check_attribute_domain(), pt_check_auto_increment_table_option(), pt_check_constraints(), pt_check_create_view(), pt_check_data_default(), pt_check_grammar_charset_collation(), pt_check_partitions(), pt_check_unique_attr(), pt_check_user_exists(), pt_check_user_owns_class(), pt_check_with_clause(), PT_CLASS, PT_DOT_, PT_ERROR, PT_ERRORm, PT_ERRORmf, PT_ERRORmf2, pt_find_class(), pt_get_select_list(), PT_HAS_COLLATION, pt_has_error, pt_has_parameters(), PT_NAME, pt_semantic_check(), pt_short_print(), pt_short_print_l(), pt_show_misc_type(), pt_str_compare(), pt_table_option(), PT_TABLE_OPTION, PT_TABLE_OPTION_AUTO_INCREMENT, PT_TABLE_OPTION_CHARSET, PT_TABLE_OPTION_COLLATION, PT_TABLE_OPTION_COMMENT, PT_TABLE_OPTION_DONT_REUSE_OID, PT_TABLE_OPTION_ENCRYPT, PT_TABLE_OPTION_REUSE_OID, PT_TYPE_NUMERIC, PT_VALUE, PT_VCLASS, pt_statement_info::query, rel_major_release_string(), pt_statement_info::resolution, pt_create_entity_info::resolution_list, sm_partitioned_class_type(), pt_create_entity_info::supclass_list, pt_statement_info::table_option, pt_create_entity_info::table_option_list, parser_node::type_enum, pt_table_option_info::val, and pt_query_info::with.
Referenced by pt_check_with_info().
|
static |
Definition at line 8608 of file semantic_check.c.
References coll_opt::allow_prefix_index, assert, assert_release, pt_data_type_info::collation_id, pt_index_info::column_names, pt_statement_info::data_type, parser_node::data_type, pt_value_info::data_value, db_find_class(), db_is_class(), DB_NOT_PARTITIONED_CLASS, pt_name_info::db_object, DB_PARTITION_CLASS, pt_spec_info::entity_name, er_msg(), pt_sort_spec_info::expr, pt_index_info::function_expr, pt_data_value::i, pt_statement_info::index, pt_index_info::indexed_class, parser_node::info, lang_get_collation(), pt_name_info::meta_class, MSGCAT_SEMANTIC_INVALID_CREATE_INDEX, MSGCAT_SEMANTIC_INVALID_INDEX_COLUMN, MSGCAT_SEMANTIC_INVALID_PARTITION_REQUEST, MSGCAT_SEMANTIC_INVALID_PREFIX_LENGTH, MSGCAT_SEMANTIC_IS_NOT_A_CLASS, MSGCAT_SEMANTIC_NO_INDEX_ON_VCLASS, MSGCAT_SEMANTIC_PREFIX_LENGTH_COLLATION, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, NO_ERROR, parser_node::node_type, NULL, lang_collation::options, pt_name_info::original, pt_index_info::prefix_length, pt_check_filter_index_expr(), pt_check_function_index_expr(), pt_check_unique_attr(), pt_check_user_owns_class(), PT_ERROR, PT_ERRORm, PT_ERRORmf, PT_EXPR, PT_HAS_COLLATION, pt_has_error, PT_NAME, PT_NORMAL, pt_short_print(), PT_SORT_SPEC, PT_TYPE_INTEGER, sm_partitioned_class_type(), pt_statement_info::sort_spec, pt_statement_info::spec, pt_value_info::text, parser_node::type_enum, pt_statement_info::value, and pt_index_info::where.
Referenced by pt_check_with_info().
|
static |
Definition at line 8146 of file semantic_check.c.
References pt_statement_info::create_user, DB_MAX_USER_LENGTH, parser_node::info, intl_identifier_upper_string_size(), MSGCAT_SEMANTIC_USER_NAME_TOO_LONG, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, PT_CREATE_USER, PT_ERRORm, PT_NAME, and pt_create_user_info::user_name.
Referenced by pt_check_with_info().
|
static |
Definition at line 7919 of file semantic_check.c.
References parser_node::alias_print, pt_statement_info::alter, pt_alter_info::alter_clause, pt_create_entity_info::as_query_list, assert, pt_create_entity_info::attr_def_list, pt_alter_info::code, pt_statement_info::create_entity, parser_node::do_not_replace_orderby, pt_alter_info::entity_name, pt_create_entity_info::entity_name, pt_alter_info::entity_type, pt_create_entity_info::entity_type, ER_GENERIC_ERROR, parser_node::flag, parser_node::info, MSGCAT_SEMANTIC_HOSTVAR_NOT_ALLOWED_ON_QUERY_SPEC, MSGCAT_SEMANTIC_MISSING_ATTR_NAME, MSGCAT_SEMANTIC_NULL_NOT_ALLOWED_ON_QUERY_SPEC, MSGCAT_SEMANTIC_VARIABLE_NOT_ALLOWED, MSGCAT_SET_ERROR, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, parser_append_node(), parser_walk_tree(), PT_ALTER, pt_check_default_vclass_query_spec(), pt_check_vclass_query_spec(), PT_CREATE_ENTITY, pt_derive_attribute(), PT_ERRORm, PT_ERRORmf, pt_get_end_path_node(), pt_get_select_list(), pt_has_error, pt_has_parameters(), PT_HOST_VAR, PT_NAME, pt_number_of_attributes(), PT_RESET_QUERY, pt_semantic_check(), pt_set_is_view_spec(), pt_short_print(), pt_type_cast_vclass_query_spec(), PT_TYPE_NULL, PT_VALUE, PT_VCLASS, pt_alter_info::query, and parser_node::type_enum.
Referenced by pt_check_alter(), and pt_check_create_entity().
|
static |
Definition at line 14225 of file semantic_check.c.
References pt_function_info::analytic, pt_function_info::arg_list, assert, db_find_class(), db_get_attribute(), pt_value_info::db_value, db_value_coerce(), sm_attribute::domain, ER_FAILED, error(), pt_sort_spec_info::expr, pt_statement_info::function, pt_function_info::function_type, i, parser_node::info, pt_function_info::is_analytic, MSGCAT_SEMANTIC_CANT_COERCE_TO, MSGCAT_SEMANTIC_INVALID_CONSTANT_PARAMETER, MSGCAT_SEMANTIC_INVALID_FUNCTION_ORDERBY, MSGCAT_SEMANTIC_INVALID_INTERNAL_FUNCTION, MSGCAT_SEMANTIC_UNMACHTED_ARG_ORDER, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_function_info::order_by, pt_name_info::original, pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, PT_CUME_DIST, PT_ERRORmf, PT_ERRORmf2, pt_is_const_expr_node(), PT_IS_LOB_TYPE, pt_length_of_list(), PT_NAME, PT_PERCENT_RANK, pt_short_print(), pt_show_type_enum(), PT_SORT_SPEC, PT_VALUE, pt_name_info::resolved, pt_statement_info::sort_spec, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_semantic_check_local().
PT_NODE* pt_check_cyclic_reference_in_view_spec | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 7291 of file semantic_check.c.
References CASE_INSENSITIVE, db_get_query_specs(), db_is_vclass(), pt_name_info::db_object, db_query_spec_next(), db_query_spec_string(), pt_spec_info::entity_name, PT_ZZ_ERROR_MSG_INFO::error_message, pt_statement_info::error_msg, parser_context::error_msgs, parser_node::info, MSGCAT_SEMANTIC_CYCLIC_REFERENCE_VIEW_SPEC, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, parser_create_parser(), parser_free_parser(), parser_parse_string_use_sys_charset(), parser_walk_tree(), pt_check_cyclic_reference_in_view_spec(), PT_ERROR, PT_ERRORmf, pt_get_name(), pt_has_error, PT_NAME, PT_SPEC, PT_STOP_WALK, pt_str_compare(), and pt_statement_info::spec.
Referenced by pt_check_cyclic_reference_in_view_spec(), and pt_check_vclass_query_spec().
|
static |
Definition at line 3944 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_statement_info::data_default, default_value, pt_data_default_info::default_value, pt_statement_info::expr, fcode_get_lowercase_name(), pt_statement_info::function, pt_function_info::function_type, parser_node::info, MSGCAT_SEMANTIC_DEFAULT_EXPR_NOT_ALLOWED, MSGCAT_SEMANTIC_DEFAULT_NESTED_EXPR_NOT_ALLOWED, MSGCAT_SEMANTIC_SUBQUERY_NOT_ALLOWED_IN_DEFAULT_CLAUSE, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, parser_walk_tree(), PT_DATA_DEFAULT, PT_ERRORm, PT_ERRORmf, pt_find_aggregate_function(), pt_find_default_expression(), pt_find_query(), pt_has_error, PT_IS_EXPR_NODE, pt_semantic_type(), pt_show_binopcode(), and PT_TO_CHAR.
Referenced by pt_check_alter(), and pt_check_create_entity().
|
static |
Definition at line 7733 of file semantic_check.c.
References pt_statement_info::attr_def, pt_attr_def_info::data_default, pt_statement_info::data_default, pt_value_info::data_value, DB_DEFAULT_NONE, db_get_attribute_force(), DB_IS_NULL, pt_name_info::db_object, sm_default_value::default_expr, 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, default_value, sm_attribute::default_value, pt_data_default_info::default_value, pt_spec_info::entity_name, error(), pt_data_value::i, if(), parser_node::info, lang_set_flag_from_lang(), MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, NULL, pt_attr_def_info::on_update, sm_attribute::on_update_default_expr, parser_free_tree(), parser_make_expression(), parser_new_node(), prm_get_string_value(), PRM_ID_INTL_DATE_LANG, PT_DATA_DEFAULT, pt_dbval_to_value(), PT_DEFAULT, PT_ERRORm, PT_EXPR, pt_get_select_list(), PT_IS_NAME_NODE, pt_make_string_value(), PT_NAME, pt_op_type_from_default_expr_type(), PT_TO_CHAR, PT_TYPE_INTEGER, PT_VALUE, pt_data_default_info::shared, pt_statement_info::spec, pt_name_info::spec_id, T_TO_CHAR, parser_node::type_enum, sm_default_value::value, and pt_statement_info::value.
Referenced by pt_check_create_view().
|
static |
Definition at line 13859 of file semantic_check.c.
References pt_expr_info::arg1, ARG_FILE_LINE, assert, db_attribute_is_auto_increment(), db_attribute_is_non_null(), db_attribute_is_primary_key(), db_get_attribute_by_name(), DB_IS_NULL, pt_value_info::db_value, pt_name_info::default_value, ER_ERROR_SEVERITY, ER_FAILED, er_msg(), ER_OBJ_ATTRIBUTE_CANT_BE_NULL, er_set(), pt_statement_info::expr, parser_node::info, pt_name_info::meta_class, MSGCAT_SEMANTIC_DEFAULT_JUST_COLUMN_NAME, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, NO_ERROR, parser_node::node_type, NULL, pt_expr_info::op, pt_name_info::original, PT_DEFAULTF, PT_ERRORc, PT_ERRORm, PT_EXPR, PT_INTERNAL_ERROR, PT_NAME, PT_NAME_DEFAULTF_ACCEPTS, PT_NAME_INFO_FILL_DEFAULT, PT_NAME_INFO_IS_FLAGED, PT_OID_ATTR, PT_VALUE, pt_name_info::resolved, and pt_statement_info::value.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 8768 of file semantic_check.c.
References db_attribute_domain(), db_attribute_next(), db_attribute_type(), db_domain_class(), db_find_class(), db_find_class_with_purpose(), db_get_attributes_force(), db_get_class_name(), db_is_class(), db_is_subclass(), db_is_vclass(), pt_name_info::db_object, DB_TYPE_OBJECT, pt_statement_info::drop, pt_spec_info::entity_name, pt_drop_info::entity_type, pt_flat_spec_info::for_update, free_node(), pt_drop_info::if_exists, parser_node::info, pt_drop_info::internal_stmts, pt_drop_info::is_cascade_constraints, MSGCAT_SEMANTIC_IS_NOT_A, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_VIEW_CASCADE_CONSTRAINTS_NOT_ALLOWED, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, db_value_plist::next, parser_node::next, parser_node::node_type, NULL, pt_spec_info::only_all, pt_name_info::original, parser_free_node(), parser_walk_tree(), PT_ALL, pt_append_string(), pt_check_user_owns_class(), PT_CLASS, pt_continue_walk(), PT_ERRORm, PT_ERRORmf, PT_ERRORmf2, pt_flat_spec_pre(), PT_MISC_DUMMY, PT_NAME, pt_show_misc_type(), PT_SPEC, PT_VCLASS, pt_statement_info::spec, pt_drop_info::spec_list, and pt_flat_spec_info::spec_parent.
Referenced by pt_check_with_info().
|
static |
Definition at line 14977 of file semantic_check.c.
References assert, pt_statement_info::attr_def, pt_attr_def_info::attr_name, sm_class::attributes, pt_filter_index_info::atts, pt_filter_index_info::atts_count, au_fetch_class(), AU_FETCH_READ, AU_SELECT, db_attribute_is_non_null(), pt_filter_index_info::depth, pt_sort_spec_info::expr, free_and_init, pt_filter_index_info::has_keys_in_expression, pt_filter_index_info::has_not, sm_attribute::header, i, parser_node::info, pt_filter_index_info::is_constant_expression, pt_filter_index_info::is_null_atts, pt_filter_index_info::is_valid_expr, MSGCAT_SEMANTIC_INVALID_FILTER_INDEX, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, sm_component::name, sm_component::next, parser_node::next, NO_ERROR, parser_node::node_type, NULL, parser_walk_tree(), PT_ATTR_DEF, pt_check_filter_index_expr_post(), pt_check_filter_index_expr_pre(), PT_ERRORm, PT_ERRORmf, PT_NAME, pt_short_print(), PT_SORT_SPEC, SM_COMPARE_NAMES, and pt_statement_info::sort_spec.
Referenced by pt_check_create_index(), and pt_check_with_info().
|
static |
Definition at line 15093 of file semantic_check.c.
References assert, pt_filter_index_info::depth, pt_statement_info::expr, pt_filter_index_info::has_not, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_EXPR, PT_FUNCTION, and PT_NOT.
Referenced by pt_check_filter_index_expr().
|
static |
Definition at line 15134 of file semantic_check.c.
References pt_expr_info::arg1, assert, pt_statement_info::attr_def, pt_attr_def_info::attr_name, pt_filter_index_info::atts, pt_filter_index_info::atts_count, CASE_INSENSITIVE, db_get_int(), DB_TYPE_INTEGER, pt_value_info::db_value, pt_value_info::db_value_is_initialized, DB_VALUE_TYPE, pt_filter_index_info::depth, pt_sort_spec_info::expr, pt_statement_info::expr, 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_MULTISET, F_SEQUENCE, F_SET, fcode_get_lowercase_name(), pt_statement_info::function, pt_function_info::function_type, pt_filter_index_info::has_keys_in_expression, pt_filter_index_info::has_not, i, parser_node::info, pt_filter_index_info::is_constant_expression, pt_filter_index_info::is_null_atts, pt_filter_index_info::is_valid_expr, pt_name_info::meta_class, MSGCAT_SEMANTIC_FUNCTION_CANNOT_BE_USED_FOR_FILTER_INDEX, MSGCAT_SEMANTIC_NO_LTZ_IN_FUNCTION_FILTER_INDEX, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, pt_name_info::original, PT_ABS, PT_ACOS, PT_ADD_MONTHS, PT_ADDDATE, PT_ADDTIME, PT_AND, PT_ASCII, PT_ASIN, PT_ATAN, PT_ATAN2, PT_ATTR_DEF, 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_BETWEEN_INF_LE, PT_BETWEEN_INF_LT, PT_BIN, PT_BIT_AND, PT_BIT_COUNT, PT_BIT_LENGTH, PT_BIT_NOT, PT_BIT_OR, PT_BIT_XOR, PT_BITSHIFT_LEFT, PT_BITSHIFT_RIGHT, PT_BLOB_LENGTH, PT_BLOB_TO_BIT, PT_CAST, PT_CEIL, PT_CHAR_LENGTH, PT_CHR, PT_CLOB_LENGTH, PT_CLOB_TO_CHAR, PT_CONCAT, PT_CONCAT_WS, PT_CONTINUE_WALK, PT_CONV, PT_CONV_TZ, PT_COS, PT_COT, PT_DATA_TYPE, PT_DATE_ADD, PT_DATE_FORMAT, PT_DATE_SUB, PT_DATEDIFF, PT_DATEF, PT_DAYF, PT_DAYOFMONTH, PT_DAYOFWEEK, PT_DAYOFYEAR, PT_DECODE, PT_DEFAULTF, PT_DEGREES, PT_DIV, PT_DIVIDE, PT_EQ, PT_EQ_ALL, PT_EQ_SOME, PT_ERRORm, PT_ERRORmf, PT_EXP, PT_EXPR, PT_EXTRACT, PT_FIELD, PT_FINDINSET, PT_FLOOR, PT_FORMAT, PT_FROM_TZ, PT_FROM_UNIXTIME, PT_FROMDAYS, PT_FUNCTION, PT_FUNCTION_HOLDER, PT_GE, PT_GE_ALL, PT_GE_SOME, PT_GREATEST, PT_GT, PT_GT_ALL, PT_GT_SOME, PT_HEX, PT_HOURF, PT_INET_ATON, PT_INET_NTOA, PT_INSTR, PT_IS, PT_IS_IN, PT_IS_LTZ_TYPE, PT_IS_NOT, PT_IS_NOT_IN, PT_IS_NOT_NULL, PT_IS_NULL, PT_LAST_DAY, PT_LE, PT_LE_ALL, PT_LE_SOME, PT_LEAST, PT_LEFT, PT_LIKE, PT_LIKE_ESCAPE, PT_LIKE_LOWER_BOUND, PT_LIKE_UPPER_BOUND, PT_LN, PT_LOCATE, PT_LOG, PT_LOG10, PT_LOG2, PT_LOWER, PT_LPAD, PT_LT, PT_LT_ALL, PT_LT_SOME, PT_LTRIM, PT_MAKEDATE, PT_MAKETIME, PT_META_ATTR, PT_MID, PT_MINUS, PT_MINUTEF, PT_MOD, PT_MODULUS, PT_MONTHF, PT_MONTHS_BETWEEN, PT_NAME, PT_NE, PT_NE_ALL, PT_NE_SOME, PT_NEW_TIME, PT_NORMAL, PT_NOT, PT_NOT_BETWEEN, PT_NOT_LIKE, PT_NOT_RLIKE, PT_NOT_RLIKE_BINARY, PT_NULLSAFE_EQ, PT_OCTET_LENGTH, PT_PI, PT_PLUS, PT_POSITION, PT_POWER, PT_QUARTERF, PT_RADIANS, PT_RANGE, PT_REPEAT, PT_REPLACE, PT_REVERSE, PT_RIGHT, PT_RLIKE, PT_RLIKE_BINARY, PT_ROUND, PT_RPAD, PT_RTRIM, PT_SECONDF, PT_SECTOTIME, pt_show_binopcode(), PT_SIGN, PT_SIN, PT_SORT_SPEC, PT_SPACE, PT_SQRT, PT_STOP_WALK, pt_str_compare(), PT_STR_TO_DATE, PT_STRCAT, PT_STRCMP, PT_SUBDATE, PT_SUBSTRING, PT_SUBSTRING_INDEX, PT_TAN, PT_TIME_FORMAT, PT_TIMEDIFF, PT_TIMEF, PT_TIMES, PT_TIMESTAMP, PT_TIMETOSEC, PT_TO_CHAR, PT_TO_DATE, PT_TO_DATETIME, PT_TO_DATETIME_TZ, PT_TO_NUMBER, PT_TO_TIME, PT_TO_TIMESTAMP, PT_TO_TIMESTAMP_TZ, PT_TODAYS, PT_TRANSLATE, PT_TRIM, PT_TRUNC, PT_TZ_OFFSET, PT_UNARY_MINUS, PT_UPPER, PT_USER, PT_VALUE, PT_WEEKDAY, PT_WEEKF, PT_XOR, PT_YEARF, pt_statement_info::sort_spec, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_check_filter_index_expr().
|
static |
Definition at line 14878 of file semantic_check.c.
References CASE_INSENSITIVE, pt_index_info::column_names, pt_sort_spec_info::expr, pt_index_info::func_no_args, pt_index_info::func_pos, pt_index_info::function_expr, i, pt_statement_info::index, parser_node::info, MSGCAT_SEMANTIC_INVALID_FUNCTION_INDEX, 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_walk_tree(), pt_check_function_index_expr_pre(), PT_ERRORm, pt_expr_to_sort_spec(), pt_has_error, pt_is_function_index_expr(), PT_NAME, pt_remove_from_list(), pt_str_compare(), and pt_statement_info::sort_spec.
Referenced by pt_check_create_index(), and pt_check_with_info().
|
static |
Definition at line 14950 of file semantic_check.c.
References assert, MSGCAT_SEMANTIC_NO_LTZ_IN_FUNCTION_FILTER_INDEX, MSGCAT_SET_PARSER_SEMANTIC, parser_node::node_type, NULL, PT_ERRORm, PT_IS_LTZ_TYPE, PT_NAME, PT_STOP_WALK, and parser_node::type_enum.
Referenced by pt_check_function_index_expr().
|
static |
Definition at line 8978 of file semantic_check.c.
References db_find_user(), pt_flat_spec_info::for_update, pt_statement_info::grant, parser_node::info, MSGCAT_SEMANTIC_USER_IS_NOT_IN_DB, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, parser_walk_tree(), pt_continue_walk(), PT_ERRORmf, pt_flat_spec_pre(), PT_GRANT, PT_NAME, pt_statement_info::revoke, pt_flat_spec_info::spec_parent, pt_grant_info::user_list, and pt_revoke_info::user_list.
Referenced by pt_check_with_info().
|
static |
Definition at line 14036 of file semantic_check.c.
References pt_function_info::arg_list, assert, CASE_INSENSITIVE, pt_value_info::data_value, qfile_tuple_value_position::dom, error(), pt_sort_spec_info::expr, pt_statement_info::function, pt_function_info::function_type, i, pt_data_value::i, parser_node::info, MSGCAT_SEMANTIC_GROUP_CONCAT_ORDERBY_SAME_EXPR, MSGCAT_SEMANTIC_INVALID_INTERNAL_FUNCTION, MSGCAT_SEMANTIC_NO_ORDERBY_ALLOWED, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_SORT_SPEC_RANGE_ERR, MSGCAT_SEMANTIC_SORT_SPEC_WANT_NUM, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_function_info::order_by, parser_free_tree(), parser_new_node(), parser_print_tree(), pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, pt_check_path_eq(), PT_DOT_, PT_ERRORm, PT_ERRORmf, PT_GROUP_CONCAT, PT_IS_LOB_TYPE, pt_length_of_list(), PT_NAME, pt_short_print(), pt_str_compare(), PT_TYPE_INTEGER, PT_TYPE_MAYBE, PT_TYPE_NONE, PT_VALUE, pt_value_to_db(), pt_xasl_node_to_domain(), pt_statement_info::sort_spec, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 9360 of file semantic_check.c.
References assert, EXCLUDE_HIDDEN_COLUMNS, parser_node::info, pt_query_info::into_list, pt_query_info::is_subquery, MSGCAT_SEMANTIC_COL_CNT_NE_INTO_CNT, MSGCAT_SEMANTIC_SELECT_INTO_IN_SUBQUERY, MSGCAT_SET_PARSER_SEMANTIC, NULL, PT_ERRORm, PT_ERRORmf2, pt_get_select_list(), pt_length_of_list(), pt_length_of_select_list(), and pt_statement_info::query.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 13620 of file semantic_check.c.
References pt_isolation_lvl_info::async_ws, pt_statement_info::attr_def, pt_attr_def_info::attr_name, db_get_tran_settings(), parser_node::info, pt_isolation_lvl_info::instances, intl_identifier_casecmp(), pt_statement_info::isolation_lvl, pt_isolation_lvl_info::level, MSGCAT_SEMANTIC_NO_ISOLATION_LVL_MSG, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, p, PT_ERRORm, PT_ISOLATION_LVL, PT_NO_ISOLATION_LEVEL, PT_READ_COMMITTED, PT_REPEATABLE_READ, PT_SERIALIZABLE, pt_isolation_lvl_info::schema, TRAN_READ_COMMITTED, TRAN_REPEATABLE_READ, TRAN_SERIALIZABLE, and TRAN_UNKNOWN_ISOLATION.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 9433 of file semantic_check.c.
References ARG_FILE_LINE, assert, pt_json_table_node_info::columns, DB_IS_STRING, db_json_convert_to_utf8(), DOMAIN_COMPATIBLE, pt_json_table_column_info::func, parser_node::info, JSON_TABLE_DEFAULT_VALUE, pt_statement_info::json_table_node_info, JSON_TABLE_ORDINALITY, json_table_column_behavior::m_behavior, json_table_column_behavior::m_default_value, pt_json_table_node_info::nested_paths, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_json_table_column_info::on_empty, pt_json_table_column_info::on_error, pt_json_table_column_info::path, pt_json_table_node_info::path, pt_json_str_codeset_normalization(), PT_JSON_TABLE_NODE, pt_normalize_path(), pt_xasl_node_to_domain(), tp_domain_status_er_set(), and tp_value_cast().
Referenced by pt_semantic_check_local().
|
static |
Definition at line 9165 of file semantic_check.c.
References parser_node::info, pt_statement_info::killstmt, MSGCAT_SEMANTIC_TRANSACTION_ID_WANT_INTEGER, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, NULL, PT_ERRORm, PT_TYPE_INTEGER, pt_killstmt_info::tran_id_list, and parser_node::type_enum.
Referenced by pt_check_with_info().
|
static |
Definition at line 9008 of file semantic_check.c.
References pt_method_call_info::arg_list, assert, pt_statement_info::data_type, parser_node::data_type, db_get_class_method(), db_get_method(), db_get_object(), db_is_instance(), db_make_null(), db_method_arg_count(), pt_name_info::db_object, pt_data_type_info::entity, er_clear(), er_errid(), ER_OBJ_INVALID_METHOD, parser_node::info, jsp_is_exist_stored_procedure(), pt_name_info::meta_class, pt_statement_info::method_call, pt_method_call_info::method_name, MSGCAT_SEMANTIC_METH_ARG_NE_DEFINED, MSGCAT_SEMANTIC_METH_DOESNT_EXIST, MSGCAT_SEMANTIC_METH_MIX_CLASS_INST, MSGCAT_SEMANTIC_METH_MIX_INST_CLASS, MSGCAT_SEMANTIC_METH_NO_TARGET, MSGCAT_SEMANTIC_METH_TARGET_NOT_OBJ, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, pt_method_call_info::on_call_target, pt_name_info::original, PT_CLASS, PT_ERRORm, PT_ERRORmf, pt_eval_path_expr(), pt_has_error, PT_INTERNAL_ERROR, pt_length_of_list(), PT_META_CLASS, PT_NAME, PT_PARAMETER, PT_TYPE_NULL, PT_VALUE, parser_node::type_enum, and db_value_plist::val.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 4657 of file semantic_check.c.
References assert, pt_statement_info::attr_def, pt_attr_def_info::attr_name, db_attribute_class(), db_get_attribute_force(), db_get_class_name(), parser_node::info, MSGCAT_SEMANTIC_HEIR_CANT_CHANGE_IT, MSGCAT_SEMANTIC_NOT_ATTRIBUTE_OF, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, PT_ATTR_DEF, and PT_ERRORmf2.
Referenced by pt_check_alter().
PT_NODE* pt_check_odku_assignments | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | insert | ||
) |
Definition at line 15590 of file semantic_check.c.
References pt_expr_info::arg1, assert, pt_statement_info::expr, pt_spec_info::id, parser_node::info, pt_statement_info::insert, MSGCAT_SEMANTIC_ILLEGAL_LHS, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_insert_info::odku_assignments, pt_expr_info::op, PT_ASSIGN, pt_check_assignments(), PT_ERRORm, PT_EXPR, pt_has_error, PT_INSERT, PT_INTERNAL_ERROR, PT_NAME, pt_no_double_updates(), pt_insert_info::spec, pt_statement_info::spec, and pt_name_info::spec_id.
Referenced by mq_resolve_insert_statement(), mq_translate_insert(), and pt_semantic_check_local().
int pt_check_order_by | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query | ||
) |
Definition at line 12646 of file semantic_check.c.
References pt_query_info::all_distinct, pt_union_info::arg1, pt_union_info::arg2, pt_sort_spec_info::asc_or_desc, assert, CASE_INSENSITIVE, pt_value_info::data_value, parser_node::do_not_replace_orderby, qfile_tuple_value_position::dom, semantic_chk_info::donot_fold, ER_FAILED, error(), EXCLUDE_HIDDEN_COLUMNS, pt_sort_spec_info::expr, pt_statement_info::expr, parser_node::flag, pt_select_info::from, i, pt_data_value::i, INCLUDE_HIDDEN_COLUMNS, parser_node::info, parser_node::is_hidden_column, pt_query_info::limit, pt_select_info::list, mq_clear_ids(), mq_rewrite_aggregate_as_derived(), MSGCAT_SEMANTIC_INVALID_ORDERBY_WITH_DISTINCT, MSGCAT_SEMANTIC_NO_ORDERBY_ALLOWED, MSGCAT_SEMANTIC_ORDERBY_IS_NOT_INT, MSGCAT_SEMANTIC_ORDERBYNUM_SELECT_LIST_ERR, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_SORT_DIR_CONFLICT, MSGCAT_SEMANTIC_SORT_SPEC_NAN_PATH, MSGCAT_SEMANTIC_SORT_SPEC_NOT_EXIST, MSGCAT_SEMANTIC_SORT_SPEC_RANGE_ERR, MSGCAT_SEMANTIC_SORT_SPEC_WANT_NUM, MSGCAT_SEMANTIC_UNION_INCOMPATIBLE, MSGCAT_SET_PARSER_SEMANTIC, db_value_plist::next, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_expr_info::op, pt_query_info::order_by, parser_append_node(), parser_copy_tree(), parser_free_node(), parser_free_tree(), parser_new_node(), parser_print_tree(), parser_walk_leaves(), pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, pt_check_compatible_node_for_orderby(), pt_check_orderbynum_post(), pt_check_orderbynum_pre(), pt_check_path_eq(), PT_DIFFERENCE, PT_DISTINCT, PT_DOT_, PT_ERRORm, PT_ERRORmf, PT_ERRORmf2, PT_EXPR, pt_find_order_value_in_list(), pt_has_error, PT_HOST_VAR, PT_INTERSECTION, PT_IS_QUERY, PT_IS_QUERY_NODE_TYPE, pt_is_single_tuple(), pt_length_of_select_list(), PT_NAME, PT_ORDERBY_NUM, pt_remove_from_list(), pt_resolve_names(), PT_SELECT, pt_short_print(), pt_str_compare(), pt_to_null_ordering(), PT_TYPE_INTEGER, PT_TYPE_MAYBE, PT_TYPE_NONE, PT_UNION, PT_VALUE, pt_value_to_db(), pt_xasl_node_to_domain(), pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_statement_info::sort_spec, semantic_chk_info::top_node, parser_node::type_enum, pt_query_info::union_, and pt_statement_info::value.
Referenced by pt_fold_union(), pt_semantic_check_local(), and pt_to_upd_del_query().
|
static |
Definition at line 5620 of file semantic_check.c.
References assert_release, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, ER_FAILED, er_msg(), error(), parser_node::info, lang_charset_introducer(), LANG_SYS_CODESET, LANG_SYS_COLLATION, MSGCAT_SEMANTIC_PARTITION_VAL_CODESET, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_statement_info::parts, pt_coerce_value(), PT_ERROR, PT_ERRORmf2, PT_HAS_COLLATION, PT_TYPE_NULL, PT_VALUE, pt_value_links_add(), pt_value_info::text, parser_node::type_enum, pt_data_type_info::units, db_value_plist::val, pt_statement_info::value, and pt_parts_info::values.
Referenced by pt_check_partitions().
|
static |
Definition at line 5728 of file semantic_check.c.
References pt_statement_info::alter, pt_alter_info::alter_clause, assert, pt_statement_info::attr_def, pt_create_entity_info::attr_def_list, pt_attr_def_info::attr_name, pt_attr_def_info::attr_type, sm_class::attributes, au_fetch_class(), AU_FETCH_READ, AU_SELECT, sm_attribute::class_mop, pt_statement_info::create_entity, pt_create_entity_info::create_select, parser_node::data_type, pt_value_info::data_value, db_free_query_format(), pt_name_info::db_object, db_query_format_next(), sm_attribute::domain, semantic_chk_info::donot_fold, pt_alter_info::entity_name, error(), pt_partition_info::expr, free_and_init, pt_partition_info::hashsize, sm_attribute::header, parser_context::host_var_count, pt_data_value::i, pr_type::id, parser_node::info, intl_identifier_casecmp(), pt_partition_info::keycol, MAX_PARTITIONS, MSGCAT_SEMANTIC_CONSTANT_TYPE_MISMATCH, MSGCAT_SEMANTIC_DUPLICATE_PARTITION_DEF, MSGCAT_SEMANTIC_HOSTVAR_IN_DDL, MSGCAT_SEMANTIC_INVALID_PARTITION_COLUMN_TYPE, MSGCAT_SEMANTIC_INVALID_PARTITION_DEFINITION, MSGCAT_SEMANTIC_INVALID_PARTITION_INHERITED_ATTR, MSGCAT_SEMANTIC_INVALID_PARTITION_SIZE, MSGCAT_SEMANTIC_NO_PARTITION_COLUMN, MSGCAT_SEMANTIC_ONLYONE_PARTITION_COLUMN, MSGCAT_SET_PARSER_SEMANTIC, sm_component::name, pt_parts_info::name, pt_statement_info::name, PT_VALUE_LINKS::next, sm_component::next, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_name_info::original, parser_copy_tree(), parser_walk_tree(), pt_alter_info::partition, pt_statement_info::partition, pt_create_entity_info::partition_info, pt_partition_info::parts, pt_statement_info::parts, PT_ALTER, PT_ATTR_DEF, pt_check_and_replace_hostvar(), pt_check_partition_values(), pt_check_range_partition_strict_increasing(), PT_CREATE_ENTITY, pt_db_to_type_enum(), pt_domain_to_data_type(), PT_ERRORm, PT_ERRORmf, PT_EXPR, pt_find_partition_column_count(), pt_get_select_query_columns(), pt_has_error, PT_NAME, PT_NORMAL, PT_PARTITION, PT_PARTITION_HASH, PT_PARTITION_LIST, PT_PARTITION_RANGE, PT_PARTS, pt_semantic_type(), PT_TYPE_BIGINT, PT_TYPE_CHAR, PT_TYPE_DATE, PT_TYPE_DATETIME, PT_TYPE_DATETIMELTZ, PT_TYPE_DATETIMETZ, pt_type_enum_to_db_domain(), PT_TYPE_INTEGER, PT_TYPE_NCHAR, PT_TYPE_NULL, PT_TYPE_SMALLINT, PT_TYPE_TIME, PT_TYPE_TIMESTAMP, PT_TYPE_TIMESTAMPLTZ, PT_TYPE_TIMESTAMPTZ, PT_TYPE_VARCHAR, PT_TYPE_VARNCHAR, SM_COMPARE_NAMES, pt_create_entity_info::supclass_list, semantic_chk_info::top_node, tp_domain_cache(), sm_attribute::type, pt_partition_info::type, pt_parts_info::type, parser_node::type_enum, pt_statement_info::value, and pt_parts_info::values.
Referenced by pt_check_alter(), and pt_check_create_entity().
int pt_check_path_eq | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | p, | ||
const PT_NODE * | q | ||
) |
Definition at line 13046 of file semantic_check.c.
References pt_dot_info::arg1, pt_dot_info::arg2, CASE_INSENSITIVE, pt_statement_info::dot, parser_node::info, MSGCAT_SEMANTIC_SORT_SPEC_NAN_PATH, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, PT_DOT_, PT_ERRORmf, PT_NAME, pt_short_print(), pt_str_compare(), pt_name_info::resolved, and pt_name_info::spec_id.
Referenced by pt_check_compatible_node_for_orderby(), pt_check_group_concat_order_by(), pt_check_order_by(), pt_compare_sort_spec_expr(), pt_expand_analytic_node(), pt_find_order_value_in_list(), pt_get_node_title(), pt_make_tuple_value_reference(), qo_apply_range_intersection(), qo_convert_to_range_helper(), qo_fold_is_and_not_null(), and qo_search_comp_pair_term().
|
static |
Definition at line 15944 of file semantic_check.c.
References assert, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, DB_IS_NULL, DB_LT, db_make_null(), db_value_compare(), error(), parser_node::info, MSGCAT_SEMANTIC_CONSTANT_TYPE_MISMATCH, MSGCAT_SEMANTIC_PARTITION_RANGE_ERROR, MSGCAT_SEMANTIC_PARTITION_RANGE_INVALID, MSGCAT_SET_PARSER_SEMANTIC, pt_parts_info::name, pt_statement_info::name, NO_ERROR, parser_node::node_type, NULL, pt_name_info::original, pt_statement_info::parts, pt_coerce_partition_value_with_data_type(), PT_DATA_TYPE, PT_ERRORmf, pt_has_error, PT_IS_STRING_TYPE, PT_PARTS, pt_value_to_db(), parser_node::type_enum, and pt_parts_info::values.
Referenced by pt_check_alter_partition(), and pt_check_partitions().
|
static |
Definition at line 9189 of file semantic_check.c.
References parser_node::alias_print, pt_dot_info::arg2, CASE_INSENSITIVE, pt_query_info::correlation_level, parser_context::custom_print, pt_agg_check_info::depth, pt_spec_info::derived_table, pt_spec_info::derived_table_type, pt_statement_info::dot, pt_sort_spec_info::expr, pt_statement_info::expr, pt_select_info::from, pt_agg_check_info::from, pt_agg_check_info::group_by, parser_node::info, pt_name_info::meta_class, MSGCAT_SEMANTIC_NOT_SINGLE_VALUED, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, parser_context::oid_included, pt_expr_info::op, parser_print_tree(), parser_walk_tree(), pt_check_single_valued_node_post(), PT_CONNECT_BY_ISCYCLE, PT_CONNECT_BY_ISLEAF, PT_CONNECT_BY_ROOT, PT_CONTINUE_WALK, PT_CONVERT_RANGE, PT_DOT_, PT_ERRORmf, PT_EXPR, pt_find_attribute(), pt_find_spec(), PT_INCLUDE_OID_TRUSTME, PT_INST_NUM, pt_is_aggregate_function(), PT_IS_CLASSOID_NAME, PT_IS_OID_NAME, PT_IS_SET_EXPR, PT_LEAF_WALK, PT_LEVEL, PT_LIST_WALK, PT_META_ATTR, PT_META_CLASS, PT_METHOD, PT_NAME, PT_PARAMETER, PT_PRIOR, PT_ROWNUM, PT_SELECT, pt_short_print(), PT_STOP_WALK, pt_str_compare(), PT_SYS_CONNECT_BY_PATH, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_statement_info::sort_spec, and pt_statement_info::spec.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 9338 of file semantic_check.c.
References pt_agg_check_info::depth, parser_node::node_type, PT_CONTINUE_WALK, and PT_SELECT.
Referenced by pt_check_single_valued_node(), and pt_semantic_check_local().
|
static |
Definition at line 13293 of file semantic_check.c.
References ARG_FILE_LINE, db_error_string(), pt_name_info::db_object, pt_spec_info::entity_name, ER_DO_INSERT_TOO_MANY, ER_ERROR_SEVERITY, er_set(), parser_node::info, pt_statement_info::insert, MSGCAT_SEMANTIC_NON_REFERABLE_VIOLATION, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, parser_walk_tree(), PT_CONTINUE_WALK, PT_DIFFERENCE, PT_ERRORc, PT_ERRORmf, pt_has_error, PT_INSERT, PT_INTERNAL_ERROR, PT_INTERSECTION, PT_IS_SUBQUERY, PT_LIST_WALK, PT_SELECT, PT_STOP_WALK, PT_UNION, sm_is_reuse_oid_class(), pt_insert_info::spec, pt_statement_info::spec, and pt_insert_info::value_clauses.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 9127 of file semantic_check.c.
References db_find_class(), db_is_class(), pt_name_info::db_object, pt_spec_info::entity_name, pt_flat_spec_info::for_update, parser_node::info, MSGCAT_SEMANTIC_IS_NOT_A, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, parser_walk_tree(), pt_check_user_owns_class(), PT_CLASS, pt_continue_walk(), PT_ERRORmf2, pt_flat_spec_pre(), PT_NAME, pt_show_misc_type(), PT_SPEC, pt_truncate_info::spec, pt_statement_info::spec, pt_flat_spec_info::spec_parent, and pt_statement_info::truncate.
Referenced by pt_check_with_info().
PT_NODE* pt_check_type_compatibility_of_values_query | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node | ||
) |
Definition at line 2733 of file semantic_check.c.
References assert, cubregex::count(), EXCLUDE_HIDDEN_COLUMNS, free_and_init, parser_node::info, pt_node_list_info::list, pt_select_info::list, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, pt_get_values_query_compatible_info(), PT_IS_VALUE_QUERY, pt_length_of_select_list(), PT_SELECT, pt_values_query_to_compatible_cast(), pt_query_info::q, pt_statement_info::query, and pt_query_info::select.
Referenced by pt_eval_type().
PT_NODE* pt_check_union_compatibility | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node | ||
) |
Definition at line 2638 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, pt_statement_info::cte, parser_node::data_type, EXCLUDE_HIDDEN_COLUMNS, free_and_init, parser_node::info, MSGCAT_SEMANTIC_ARITY_MISMATCH, MSGCAT_SET_PARSER_SEMANTIC, parser_node::node_type, pt_cte_info::non_recursive_part, NULL, parser_copy_tree(), parser_free_tree(), PT_CTE, PT_DIFFERENCE, PT_ERRORmf2, pt_get_compatible_info(), pt_get_select_list(), PT_INTERSECTION, pt_length_of_select_list(), pt_to_compatible_cast(), PT_UNION, pt_query_info::q, pt_statement_info::query, pt_cte_info::recursive_part, and pt_query_info::union_.
Referenced by pt_eval_type().
STATEMENT_SET_FOLD pt_check_union_is_foldable | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | union_node | ||
) |
Definition at line 16135 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, parser_node::info, parser_node::node_type, NULL, PT_CTE, PT_DIFFERENCE, pt_false_where(), PT_INTERSECTION, PT_IS_QUERY_NODE_TYPE, PT_UNION, pt_query_info::q, pt_statement_info::query, STATEMENT_SET_FOLD_AS_ARG1, STATEMENT_SET_FOLD_AS_ARG2, STATEMENT_SET_FOLD_AS_NULL, STATEMENT_SET_FOLD_NOTHING, pt_query_info::union_, and pt_query_info::with.
Referenced by pt_eval_type(), and pt_semantic_check_local().
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().
|
static |
Definition at line 11228 of file semantic_check.c.
References assert, pt_statement_info::attr_def, pt_attr_def_info::attr_name, pt_attr_def_info::attr_type, CASE_INSENSITIVE, pt_sort_spec_info::expr, parser_node::info, MSGCAT_SEMANTIC_CLASS_ATTR_DUPLICATED, MSGCAT_SEMANTIC_INDEX_ATTR_DUPLICATED, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, p, PT_ATTR_DEF, PT_ERRORmf, PT_ERRORmf2, PT_NAME, PT_SORT_SPEC, pt_str_compare(), and pt_statement_info::sort_spec.
Referenced by pt_check_create_entity(), and pt_check_create_index().
|
static |
Definition at line 1323 of file semantic_check.c.
References assert, db_find_user(), parser_node::info, MSGCAT_SEMANTIC_USER_IS_NOT_IN_DB, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, PT_ERRORmf, PT_NAME, and pt_name_info::resolved.
Referenced by pt_check_create_entity(), and pt_check_user_owns_class().
DB_OBJECT* pt_check_user_owns_class | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | cls_ref | ||
) |
Definition at line 1351 of file semantic_check.c.
References db_get_owner(), pt_name_info::db_object, parser_node::info, MSGCAT_SEMANTIC_USER_DOESNT_OWN_CLS, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, NULL, pt_name_info::original, pt_check_user_exists(), PT_ERRORmf2, pt_name_info::resolved, and ws_is_same_object().
Referenced by do_get_stats(), do_update_stats(), pt_check_alter(), pt_check_attribute_domain(), pt_check_create_entity(), pt_check_create_index(), pt_check_drop(), pt_check_truncate(), and pt_find_users_class().
|
static |
Definition at line 15647 of file semantic_check.c.
References assert, pt_flat_spec_info::for_update, NULL, parser_walk_tree(), pt_continue_walk(), pt_flat_spec_pre(), PT_IS_VACUUM_NODE, and pt_flat_spec_info::spec_parent.
Referenced by pt_check_with_info().
|
static |
Definition at line 7178 of file semantic_check.c.
References pt_is_compatible_type(), PT_UNION_COMP, pt_union_compatible(), PT_UNION_INCOMP, and parser_node::type_enum.
Referenced by pt_check_vclass_query_spec().
|
static |
Definition at line 7390 of file semantic_check.c.
References pt_statement_info::attr_def, pt_attr_def_info::attr_type, attribute_name(), parser_node::data_type, parser_node::do_not_replace_orderby, EXCLUDE_HIDDEN_COLUMNS, parser_node::flag, parser_node::info, pt_query_info::into_list, is_shared_attribute(), MSGCAT_SEMANTIC_ATT_CNT_NE_COL_CNT, MSGCAT_SEMANTIC_ATT_INCOMPATIBLE_COL, MSGCAT_SEMANTIC_HOSTVAR_NOT_ALLOWED_ON_QUERY_SPEC, MSGCAT_SEMANTIC_QSPEC_COL_NOT_NA, MSGCAT_SEMANTIC_WANT_NO_INTO_CLAUSE, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, parser_node::node_type, NULL, parser_copy_tree_list(), parser_walk_tree(), pt_attr_refers_to_self(), pt_check_cyclic_reference_in_view_spec(), pt_check_vclass_attr_qspec_compatible(), pt_check_vclass_union_spec(), pt_class_assignable(), pt_collection_assignable(), PT_ERRORm, PT_ERRORmf, PT_ERRORmf2, pt_fixup_column_type(), pt_get_select_list(), pt_has_error, PT_HOST_VAR, PT_IS_COLLECTION_TYPE, pt_is_query, pt_length_of_list(), pt_length_of_select_list(), PT_META_ATTR, pt_semantic_check(), pt_short_print(), PT_TYPE_NA, PT_TYPE_NONE, PT_TYPE_NULL, PT_TYPE_OBJECT, PT_UNION_COMP, PT_VALUE, pt_vclass_compatible(), pt_statement_info::query, and parser_node::type_enum.
Referenced by pt_check_create_view(), and pt_validate_query_spec().
|
static |
Definition at line 7199 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, pt_statement_info::attr_def, pt_attr_def_info::attr_type, attribute_name(), parser_node::data_type, parser_node::info, MSGCAT_SEMANTIC_ATT_INCOMPATIBLE_COL, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, parser_node::node_type, NULL, pt_class_assignable(), PT_DIFFERENCE, PT_ERRORmf2, pt_get_select_list(), pt_has_error, PT_INTERSECTION, pt_is_query, PT_META_ATTR, PT_SELECT, pt_short_print(), PT_TYPE_OBJECT, PT_UNION, pt_vclass_compatible(), pt_query_info::q, pt_statement_info::query, parser_node::type_enum, and pt_query_info::union_.
Referenced by pt_check_vclass_query_spec().
|
static |
Definition at line 15912 of file semantic_check.c.
References MSGCAT_SEMANTIC_INVALID_AGGREGATE, MSGCAT_SEMANTIC_NESTED_ANALYTIC_FUNCTIONS, MSGCAT_SET_PARSER_SEMANTIC, NULL, PT_ERRORm, pt_find_aggregate_analytic_in_where(), and pt_is_aggregate_function().
Referenced by pt_check_with_info().
|
static |
Definition at line 10726 of file semantic_check.c.
References parser_node::alias_print, pt_cte_info::as_attr_list, pt_statement_info::cte, pt_with_clause_info::cte_definition_list, parser_node::info, parser_node::next, parser_node::node_type, pt_cte_info::non_recursive_part, NULL, PT_DOT_, pt_get_select_list(), PT_NAME, pt_statement_info::query, pt_cte_info::recursive_part, pt_query_info::with, and pt_statement_info::with_clause.
Referenced by pt_check_create_entity().
|
static |
Definition at line 10775 of file semantic_check.c.
References pt_statement_info::alter, assert, parser_node::cannot_prepare, pt_alter_info::code, pt_index_info::column_names, pt_alter_info::create_index, db_error_string(), db_find_class(), pt_query_info::do_cache, pt_query_info::do_not_cache, semantic_chk_info::donot_fold, pt_spec_info::entity_name, er_errid(), ER_LK_UNILATERALLY_ABORTED, pt_sort_spec_info::expr, pt_query_info::flag, parser_node::flag, pt_index_info::function_expr, pt_query_info::has_system_class, parser_context::host_var_count, pt_statement_info::index, pt_index_info::indexed_class, parser_node::info, pt_name_info::meta_class, MSGCAT_SEMANTIC_HOSTVAR_IN_DDL, MSGCAT_SEMANTIC_INVALID_FILTER_INDEX, MSGCAT_SEMANTIC_IS_NOT_A_CLASS, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, db_value_plist::next, parser_node::next, parser_node::node_type, NULL, pt_update_info::object_parameter, pt_name_info::original, p, parent_parser, parser_walk_tree(), PT_ADD_ATTR_MTHD, PT_ADD_INDEX_CLAUSE, PT_ALTER, PT_ALTER_INDEX, PT_ALTER_SERIAL, PT_ALTER_TRIGGER, PT_ALTER_USER, PT_AUTH_CMD, pt_check_alter(), pt_check_and_replace_hostvar(), pt_check_create_entity(), pt_check_create_index(), pt_check_create_user(), pt_check_drop(), pt_check_filter_index_expr(), pt_check_function_index_expr(), pt_check_grant_revoke(), pt_check_kill(), pt_check_truncate(), pt_check_vacuum(), pt_check_where(), pt_continue_walk(), PT_CREATE_ENTITY, PT_CREATE_INDEX, PT_CREATE_SERIAL, PT_CREATE_TRIGGER, PT_CREATE_USER, PT_DELETE, PT_DIFFERENCE, PT_DO, PT_DROP, PT_DROP_INDEX, PT_DROP_SERIAL, PT_DROP_TRIGGER, PT_DROP_USER, PT_ERRORc, PT_ERRORm, PT_ERRORmf, PT_EVALUATE, pt_expand_isnull_preds(), PT_EXPR, pt_false_search_condition(), PT_FUNCTION, PT_GRANT, pt_has_error, PT_HOST_VAR, PT_INSERT, PT_INTERSECTION, pt_is_function_index_expr(), PT_IS_QUERY, PT_KILL_STMT, pt_mark_union_leaf_nodes(), PT_MERGE, PT_METHOD_CALL, PT_NAME, PT_PARAMETER, pt_register_orphan(), PT_RENAME, PT_RENAME_TRIGGER, pt_resolve_names(), pt_resolve_object(), PT_REVOKE, PT_ROLLBACK_WORK, PT_SAVEPOINT, PT_SCOPE, PT_SELECT, pt_semantic_check_local(), pt_semantic_type(), PT_SET_SESSION_VARIABLES, PT_SET_XACTION, pt_short_print(), PT_TRUNCATE, PT_UNION, PT_UPDATE, PT_UPDATE_STATS, PT_VACUUM, PT_VALUE, pt_statement_info::query, pt_query_info::reexecute, RESET_HOST_VARIABLES_IF_INTERNAL_STATEMENT, pt_statement_info::rollback_work, pt_rollback_work_info::save_name, pt_savepoint_info::save_name, pt_statement_info::savepoint, SET_HOST_VARIABLES_IF_INTERNAL_STATEMENT, pt_statement_info::sort_spec, pt_statement_info::spec, semantic_chk_info::system_class, semantic_chk_info::top_node, pt_statement_info::update, and pt_index_info::where.
Referenced by pt_semantic_check().
|
static |
Definition at line 13542 of file semantic_check.c.
References MSGCAT_SEMANTIC_GT_1_ISOLATION_LVL, MSGCAT_SEMANTIC_GT_1_TIMEOUT_CLAUSES, MSGCAT_SET_PARSER_SEMANTIC, NULL, parser_walk_tree(), pt_count_iso_nodes(), pt_count_time_nodes(), and PT_ERRORm.
Referenced by pt_semantic_check_local().
int pt_class_assignable | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | d_class_dt, | ||
const PT_NODE * | s_class | ||
) |
Definition at line 1836 of file semantic_check.c.
References pt_statement_info::data_type, parser_node::data_type, pt_data_type_info::entity, parser_node::info, parser_node::node_type, PT_DATA_TYPE, pt_is_real_class_of_vclass(), pt_objects_assignable(), PT_TYPE_NA, PT_TYPE_NULL, PT_TYPE_OBJECT, and parser_node::type_enum.
Referenced by pt_assignment_class_compatible(), pt_check_vclass_query_spec(), pt_check_vclass_union_spec(), and pt_class_compatible().
|
static |
Definition at line 1877 of file semantic_check.c.
References parser_node::data_type, pt_class_assignable(), PT_TYPE_OBJECT, and parser_node::type_enum.
Referenced by pt_union_compatible().
|
static |
Definition at line 13181 of file semantic_check.c.
References pt_insert_info::attr_list, pt_merge_info::attr_list, EXCLUDE_HIDDEN_COLUMNS, parser_node::info, pt_merge_info::insert, pt_statement_info::insert, pt_node_list_info::list, pt_statement_info::merge, MSGCAT_SEMANTIC_ATT_CNT_COL_CNT_NE, MSGCAT_SEMANTIC_ATT_CNT_VAL_CNT_NE, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, pt_assignment_compatible(), PT_ERRORmf2, pt_get_select_list(), PT_HOST_VAR, PT_INSERT, PT_IS_DEFAULT_VALUE, PT_IS_NUMERIC_TYPE, PT_IS_STRING_TYPE, PT_IS_SUBQUERY, pt_length_of_list(), pt_length_of_select_list(), PT_MERGE, pt_node_to_db_domain(), PT_TYPE_MAYBE, tp_domain_cache(), pt_insert_info::value_clauses, and pt_merge_info::value_clauses.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 16060 of file semantic_check.c.
References assert, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, error(), parser_node::info, NO_ERROR, parser_node::node_type, NULL, pt_coerce_value(), PT_DATA_TYPE, PT_IS_STRING_TYPE, and parser_node::type_enum.
Referenced by pt_check_alter_partition(), and pt_check_range_partition_strict_increasing().
|
static |
Definition at line 2014 of file semantic_check.c.
References parser_node::data_type, parser_node::next, NULL, PT_IS_COLLECTION_TYPE, pt_type_assignable(), PT_TYPE_MULTISET, PT_TYPE_NA, PT_TYPE_NULL, PT_TYPE_OBJECT, PT_TYPE_SEQUENCE, PT_TYPE_SET, and parser_node::type_enum.
Referenced by pt_check_vclass_query_spec(), and pt_collection_compatible().
|
static |
Definition at line 2095 of file semantic_check.c.
References pt_collection_assignable(), PT_IS_COLLECTION_TYPE, and parser_node::type_enum.
Referenced by pt_union_compatible().
|
static |
Definition at line 277 of file semantic_check.c.
References assert, seman_compatible_info::idx, NULL, pt_common_type(), pt_get_compatible_info_from_node(), pt_update_compatible_info(), and seman_compatible_info::type_enum.
Referenced by pt_check_union_type_compatibility_of_values_query(), and pt_get_values_query_compatible_info().
|
static |
Definition at line 14469 of file semantic_check.c.
References CASE_INSENSITIVE, parser_node::node_type, NULL, parser_print_tree(), pt_check_path_eq(), PT_DOT_, PT_NAME, and pt_str_compare().
Referenced by pt_check_analytic_function(), and pt_find_matching_sort_spec().
PT_NODE* pt_count_input_markers | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 13373 of file semantic_check.c.
References pt_statement_info::host_var, pt_host_var_info::index, parser_node::info, and pt_is_input_hostvar.
Referenced by pt_transform_cnf_post().
|
static |
Definition at line 13572 of file semantic_check.c.
References parser_node::node_type, and PT_ISOLATION_LVL.
Referenced by pt_check_xaction_list().
PT_NODE* pt_count_output_markers | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 13401 of file semantic_check.c.
References pt_statement_info::host_var, pt_host_var_info::index, parser_node::info, and pt_is_output_hostvar.
Referenced by db_number_of_output_markers().
|
static |
Definition at line 13593 of file semantic_check.c.
References parser_node::node_type, and PT_TIMEOUT.
Referenced by pt_check_xaction_list().
|
static |
Definition at line 1379 of file semantic_check.c.
References parser_node::alias_print, assert, pt_statement_info::attr_def, pt_attr_def_info::attr_name, pt_attr_def_info::attr_type, parser_node::data_type, parser_node::info, pt_name_info::meta_class, pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, parser_new_node(), PT_ATTR_DEF, pt_name(), PT_NAME, PT_NORMAL, PT_OID_ATTR, PT_TYPE_OBJECT, pt_name_info::resolved, strlen, and parser_node::type_enum.
Referenced by pt_check_create_view().
|
static |
Definition at line 10590 of file semantic_check.c.
References pt_merge_info::del_search_cond, pt_statement_info::delete_, parser_node::info, pt_merge_info::insert, pt_statement_info::merge, parser_node::node_type, NULL, parser_walk_tree(), PT_DELETE, pt_expand_isnull_preds_helper(), PT_MERGE, PT_SELECT, PT_UPDATE, pt_query_info::q, pt_statement_info::query, pt_delete_info::search_cond, pt_update_info::search_cond, pt_merge_info::search_cond, pt_query_info::select, pt_merge_info::update, pt_statement_info::update, and pt_select_info::where.
Referenced by pt_check_with_info().
|
static |
Definition at line 10550 of file semantic_check.c.
References pt_expr_info::arg1, pt_dot_info::arg2, PT_CHAIN_INFO::chain, PT_CHAIN_INFO::chain_length, PT_CHAIN_INFO::chain_ptr, PT_CHAIN_INFO::chain_size, pt_statement_info::dot, pt_statement_info::expr, free_and_init, parser_node::info, pt_statement_info::name, parser_node::node_type, NULL, pt_expr_info::op, parser_walk_tree(), PT_CHAIN_LENGTH, PT_DOT_, PT_EXPR, pt_gen_isnull_preds(), pt_has_error, PT_IS_NULL, pt_path_chain(), PT_CHAIN_INFO::spec_id, and pt_name_info::spec_id.
Referenced by pt_expand_isnull_preds().
|
static |
Definition at line 4382 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, pt_set_session_variable_info::assignments, pt_statement_info::delete_, pt_statement_info::do_, pt_do_info::expr, parser_node::info, parser_node::node_type, NULL, parser_walk_tree(), PT_DELETE, PT_DIFFERENCE, PT_DO, PT_EXPR, pt_find_aggregate_analytic_post(), pt_find_aggregate_analytic_pre(), PT_FUNCTION, PT_INSERT, PT_INTERSECTION, pt_is_aggregate_function(), pt_is_analytic_function(), PT_MERGE, PT_SELECT, PT_SET_SESSION_VARIABLES, PT_UNION, pt_query_info::q, pt_statement_info::query, pt_delete_info::search_cond, pt_query_info::select, pt_statement_info::set_variables, pt_query_info::union_, and pt_select_info::where.
Referenced by pt_check_where(), and pt_find_aggregate_analytic_pre().
|
static |
Definition at line 4343 of file semantic_check.c.
References parser_node::node_type, NULL, PT_CONTINUE_WALK, and PT_IS_QUERY_NODE_TYPE.
Referenced by pt_find_aggregate_analytic_in_where().
|
static |
Definition at line 4291 of file semantic_check.c.
References assert, parser_node::node_type, NULL, pt_find_aggregate_analytic_in_where(), pt_is_aggregate_function(), pt_is_analytic_function(), PT_IS_FUNCTION, PT_IS_QUERY_NODE_TYPE, and PT_STOP_WALK.
Referenced by pt_find_aggregate_analytic_in_where().
|
static |
Definition at line 4261 of file semantic_check.c.
References NULL, pt_is_aggregate_function(), PT_IS_EXPR_NODE, PT_IS_FUNCTION, and PT_STOP_WALK.
Referenced by pt_check_data_default().
|
static |
Definition at line 11206 of file semantic_check.c.
References db_find_class_with_purpose(), parser_node::info, pt_statement_info::name, parser_node::node_type, pt_name_info::original, and PT_NAME.
Referenced by pt_check_alter(), and pt_check_create_entity().
PT_NODE* pt_find_class_of_index | ( | PARSER_CONTEXT * | parser, |
const char *const | index_name, | ||
const DB_CONSTRAINT_TYPE | index_type | ||
) |
Definition at line 13834 of file semantic_check.c.
References db_find_class_of_index(), db_get_class_name(), NULL, PT_INTERNAL_ERROR, and pt_name().
|
static |
Definition at line 4205 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, assert, pt_statement_info::expr, parser_node::info, NULL, pt_expr_info::op, PT_CURRENT_DATE, PT_CURRENT_DATETIME, PT_CURRENT_TIME, PT_CURRENT_TIMESTAMP, PT_CURRENT_USER, PT_IS_EXPR_NODE, PT_STOP_WALK, PT_SYS_DATE, PT_SYS_DATETIME, PT_SYS_TIME, PT_SYS_TIMESTAMP, PT_TO_CHAR, PT_UNIX_TIMESTAMP, and PT_USER.
Referenced by pt_check_data_default().
|
static |
Definition at line 14512 of file semantic_check.c.
References parser_node::next, NULL, pt_compare_sort_spec_expr(), and pt_resolve_sort_spec_expr().
Referenced by pt_check_analytic_function().
PT_NODE* pt_find_order_value_in_list | ( | PARSER_CONTEXT * | parser, |
const PT_NODE * | sort_value, | ||
const PT_NODE * | order_list | ||
) |
Definition at line 12600 of file semantic_check.c.
References pt_value_info::data_value, pt_sort_spec_info::expr, pt_data_value::i, parser_node::info, parser_node::next, parser_node::node_type, NULL, pt_check_path_eq(), PT_NAME, PT_VALUE, pt_statement_info::sort_spec, and pt_statement_info::value.
Referenced by pt_check_order_by(), and qo_reduce_order_by().
Definition at line 5280 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_expr_info::arg3, assert, parser_node::column_number, pt_statement_info::expr, parser_node::info, parser_node::line_number, parser_node::node_type, NULL, pt_expr_info::op, PT_ABS, PT_ACOS, PT_ADD_MONTHS, PT_ADDDATE, PT_ADDTIME, PT_ASCII, PT_ASIN, PT_ATAN, PT_ATAN2, PT_BIN, PT_BIT_AND, PT_BIT_COUNT, PT_BIT_LENGTH, PT_BIT_NOT, PT_BIT_OR, PT_BIT_TO_BLOB, PT_BIT_XOR, PT_BITSHIFT_LEFT, PT_BITSHIFT_RIGHT, PT_BLOB_FROM_FILE, PT_BLOB_LENGTH, PT_BLOB_TO_BIT, PT_CAST, PT_CEIL, PT_CHAR_LENGTH, PT_CHAR_TO_BLOB, PT_CHAR_TO_CLOB, PT_CLOB_FROM_FILE, PT_CLOB_LENGTH, PT_CLOB_TO_CHAR, PT_CONCAT, PT_CONCAT_WS, PT_CONV, PT_CONV_TZ, PT_COS, PT_COT, PT_CURRENT_DATE, PT_CURRENT_DATETIME, PT_CURRENT_TIME, PT_CURRENT_TIMESTAMP, PT_DATABASE, PT_DATE_ADD, PT_DATE_FORMAT, PT_DATE_SUB, PT_DATEDIFF, PT_DATEF, PT_DAYF, PT_DAYOFMONTH, PT_DAYOFWEEK, PT_DAYOFYEAR, PT_DBTIMEZONE, PT_DEGREES, PT_DIV, PT_DIVIDE, PT_EXP, PT_EXPR, PT_EXTRACT, PT_FIELD, pt_find_partition_column_count_func(), PT_FINDINSET, PT_FLOOR, PT_FORMAT, PT_FROM_BASE64, PT_FROM_TZ, PT_FROM_UNIXTIME, PT_FROMDAYS, PT_FUNCTION_HOLDER, PT_HEX, PT_HOURF, PT_INET_ATON, PT_INET_NTOA, PT_LAST_DAY, PT_LEFT, PT_LIKE_LOWER_BOUND, PT_LIKE_UPPER_BOUND, PT_LN, PT_LOCATE, PT_LOG, PT_LOG10, PT_LOG2, PT_LOWER, PT_LPAD, PT_LTRIM, PT_MAKEDATE, PT_MAKETIME, PT_MD5, PT_MID, PT_MINUS, PT_MINUTEF, PT_MOD, PT_MODULUS, PT_MONTHF, PT_MONTHS_BETWEEN, PT_NAME, PT_NEW_TIME, PT_OCTET_LENGTH, PT_PI, PT_PLUS, PT_POSITION, PT_POWER, PT_QUARTERF, PT_RADIANS, PT_RAND, PT_RANDOM, PT_REPEAT, PT_REPLACE, PT_REVERSE, PT_RIGHT, PT_ROUND, PT_RPAD, PT_RTRIM, PT_SCHEMA, PT_SECONDF, PT_SECTOTIME, PT_SESSIONTIMEZONE, PT_SIN, PT_SPACE, PT_SQRT, PT_STR_TO_DATE, PT_STRCAT, PT_STRCMP, PT_SUBDATE, PT_SUBSTRING, PT_SUBSTRING_INDEX, PT_SYS_DATE, PT_SYS_DATETIME, PT_SYS_TIME, PT_SYS_TIMESTAMP, PT_TAN, PT_TIME_FORMAT, PT_TIMEDIFF, PT_TIMEF, PT_TIMES, PT_TIMESTAMP, PT_TIMETOSEC, PT_TO_BASE64, PT_TO_CHAR, PT_TO_DATE, PT_TO_DATETIME, PT_TO_DATETIME_TZ, PT_TO_NUMBER, PT_TO_TIME, PT_TO_TIMESTAMP, PT_TO_TIMESTAMP_TZ, PT_TODAYS, PT_TRANSLATE, PT_TRIM, PT_TRUNC, PT_TYPE_NULL, PT_TYPEOF, PT_TZ_OFFSET, PT_UNARY_MINUS, PT_UNIX_TIMESTAMP, PT_UPPER, PT_UTC_DATE, PT_UTC_TIME, PT_UTC_TIMESTAMP, PT_VALUE, PT_VERSION, PT_WEEKDAY, PT_WEEKF, PT_YEARF, and parser_node::type_enum.
Referenced by pt_check_partitions(), and pt_find_partition_column_count_func().
Definition at line 5203 of file semantic_check.c.
References pt_function_info::arg_list, 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, pt_statement_info::function, pt_function_info::function_type, parser_node::info, parser_node::next, parser_node::node_type, NULL, PT_EXPR, pt_find_partition_column_count(), PT_FUNCTION, and PT_NAME.
Referenced by pt_find_partition_column_count().
|
static |
Definition at line 4180 of file semantic_check.c.
References assert, NULL, PT_IS_QUERY, and PT_STOP_WALK.
Referenced by pt_check_data_default().
Definition at line 12529 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_statement_info::expr, parser_node::info, parser_node::node_type, p, PT_DOT_, PT_EXPR, and PT_NAME.
Referenced by mq_invert_insert_subquery(), and pt_invert().
PT_NODE* pt_fold_union | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | union_node, | ||
STATEMENT_SET_FOLD | fold_as | ||
) |
Definition at line 16216 of file semantic_check.c.
References parser_node::alias_print, pt_union_info::arg1, pt_union_info::arg2, assert, parser_node::column_number, pt_query_info::flag, parser_node::info, pt_query_info::limit, parser_node::line_number, mq_rewrite_query_as_derived(), db_value_plist::next, parser_node::next, parser_node::node_type, NULL, pt_query_info::order_by, pt_query_info::orderby_for, parser_free_tree(), parser_new_node(), pt_check_order_by(), PT_DIFFERENCE, pt_has_error, PT_INTERSECTION, pt_move_node(), PT_TYPE_NULL, PT_UNION, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_query_info::rewrite_limit, STATEMENT_SET_FOLD_AS_ARG1, STATEMENT_SET_FOLD_AS_ARG2, STATEMENT_SET_FOLD_AS_NULL, STATEMENT_SET_FOLD_NOTHING, parser_node::type_enum, pt_query_info::union_, and pt_query_info::with.
Referenced by pt_eval_type(), and pt_semantic_check_local().
|
static |
Definition at line 10305 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, PT_CHAIN_INFO::chain_length, PT_CHAIN_INFO::chain_ptr, parser_node::column_number, parser_node::data_type, error(), pt_statement_info::expr, i, pt_spec_info::id, parser_node::info, parser_node::line_number, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::node_type, NULL, pt_expr_info::op, pt_expr_info::paren_type, parser_copy_tree(), parser_copy_tree_list(), parser_new_node(), pt_spec_info::path_conjuncts, PT_DOT_, PT_ERRORm, PT_EXPR, PT_INTERNAL_ERROR, PT_IS_NULL, PT_NAME, PT_OR, PT_TYPE_LOGICAL, pt_name_info::resolved, pt_statement_info::spec, pt_name_info::spec_id, and parser_node::type_enum.
Referenced by pt_expand_isnull_preds_helper().
Definition at line 15557 of file semantic_check.c.
References pt_update_info::assignment, pt_merge_info::assignment, parser_node::info, pt_statement_info::insert, pt_statement_info::merge, parser_node::node_type, NULL, pt_insert_info::odku_assignments, PT_INSERT, PT_MERGE, PT_UPDATE, pt_merge_info::update, and pt_statement_info::update.
Referenced by pt_check_assignments(), pt_no_attr_and_meta_attr_updates(), and pt_no_double_updates().
|
static |
Definition at line 1441 of file semantic_check.c.
References assert, pt_statement_info::attr_def, pt_attr_def_info::attr_name, pt_statement_info::data_type, parser_node::data_type, db_attribute_domain(), db_attribute_is_shared(), db_attribute_name(), db_attribute_next(), db_attribute_type(), db_domain_class(), db_domain_next(), db_domain_set(), db_get_attributes(), db_get_class_name(), pt_name_info::db_object, sm_attribute::domain, pt_data_type_info::entity, parser_node::info, pt_name_info::meta_class, pt_statement_info::name, parser_node::next, NULL, parser_append_node(), parser_new_node(), pt_append_string(), PT_ATTR_DEF, PT_CLASS, PT_DATA_TYPE, pt_db_to_type_enum(), pt_domain_to_data_type(), PT_INTERNAL_ERROR, pt_name(), PT_NAME_DEFAULTF_ACCEPTS, PT_NAME_INFO_SET_FLAG, PT_NORMAL, PT_SHARED, PT_TYPE_MULTISET, PT_TYPE_OBJECT, PT_TYPE_SEQUENCE, PT_TYPE_SET, pt_name_info::resolved, pt_name_info::spec_id, and parser_node::type_enum.
Referenced by pt_number_of_attributes(), and pt_validate_query_spec().
|
static |
Definition at line 1532 of file semantic_check.c.
References db_is_class(), db_is_vclass(), PT_CLASS, PT_MISC_DUMMY, and PT_VCLASS.
Referenced by pt_check_alter().
|
static |
Definition at line 2577 of file semantic_check.c.
References parser_node::data_type, seman_compatible_info::idx, MSGCAT_SEMANTIC_UNION_INCOMPATIBLE, MSGCAT_SET_PARSER_SEMANTIC, NULL, pt_common_type(), PT_ERRORmf2, pt_get_compatible_info_from_node(), PT_IS_STRING_TYPE, pt_short_print(), PT_TYPE_MAYBE, PT_TYPE_NONE, pt_update_compatible_info(), and parser_node::type_enum.
Referenced by pt_get_compatible_info().
|
static |
Definition at line 514 of file semantic_check.c.
References assert, pt_coll_infer::can_force_cs, pt_coll_infer::codeset, pt_coll_infer::coerc_level, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, EXCLUDE_HIDDEN_COLUMNS, seman_compatible_info::force_cast, free_and_init, i, seman_compatible_info::idx, parser_node::info, LANG_SYS_CODESET, LANG_SYS_COLLATION, pt_node_list_info::list, MSGCAT_SEMANTIC_ARITY_MISMATCH, MSGCAT_SEMANTIC_ARITY_OF_VALUES_CLAUSE_MISMATCH, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_UNION_INCOMPATIBLE, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, p, seman_compatible_info::prec, PT_COLLATION_NOT_COERC, PT_ERRORm, PT_ERRORmf2, PT_ERRORmf4, pt_get_common_type_for_union(), pt_length_of_select_list(), PT_NODE_LIST, pt_short_print(), PT_TYPE_NONE, pt_union_compatible(), PT_UNION_ERROR, PT_UNION_INCOMP, PT_UNION_INCOMP_CANNOT_FIX, seman_compatible_info::ref_att, seman_compatible_info::scale, and seman_compatible_info::type_enum.
Referenced by pt_check_union_compatibility(), pt_check_union_type_compatibility_of_values_query(), and pt_get_values_query_compatible_info().
|
static |
Definition at line 2517 of file semantic_check.c.
References assert, pt_coll_infer::can_force_cs, pt_coll_infer::codeset, pt_coll_infer::coerc_level, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, pt_statement_info::data_type, parser_node::data_type, pt_data_type_info::dec_precision, seman_compatible_info::force_cast, parser_node::info, INTL_CODESET_NONE, NULL, seman_compatible_info::prec, pt_data_type_info::precision, PT_COLLATION_NOT_COERC, pt_get_collation_info(), PT_HAS_COLLATION, PT_TYPE_BIGINT, PT_TYPE_CHAR, PT_TYPE_INTEGER, PT_TYPE_NCHAR, PT_TYPE_NUMERIC, PT_TYPE_SMALLINT, PT_TYPE_VARCHAR, PT_TYPE_VARNCHAR, seman_compatible_info::ref_att, seman_compatible_info::scale, seman_compatible_info::type_enum, and parser_node::type_enum.
Referenced by pt_apply_union_select_list_collation(), pt_combine_compatible_info(), pt_get_common_type_for_union(), pt_get_select_list_coll_compat(), and pt_union_compatible().
|
static |
Definition at line 15677 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, pt_coll_infer::coerc_level, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, i, parser_node::info, parser_node::next, parser_node::node_type, NULL, PT_DIFFERENCE, pt_get_compatible_info_from_node(), pt_get_select_list(), PT_HAS_COLLATION, PT_INTERSECTION, PT_SELECT, PT_TYPE_NONE, PT_UNION, PT_UNION_COMP, PT_UNION_INCOMP, pt_query_info::q, pt_statement_info::query, seman_compatible_info::ref_att, seman_compatible_info::type_enum, and pt_query_info::union_.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 744 of file semantic_check.c.
References assert, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, cubregex::count(), EXCLUDE_HIDDEN_COLUMNS, free_and_init, i, seman_compatible_info::idx, parser_node::info, pt_node_list_info::list, pt_select_info::list, MSGCAT_SEMANTIC_UNION_INCOMPATIBLE, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, seman_compatible_info::prec, pt_combine_compatible_info(), PT_ERRORmf2, pt_get_compatible_info(), PT_IS_VALUE_QUERY, pt_length_of_select_list(), PT_SELECT, pt_short_print(), pt_query_info::q, pt_statement_info::query, seman_compatible_info::scale, pt_query_info::select, and seman_compatible_info::type_enum.
Referenced by pt_check_type_compatibility_of_values_query(), and pt_check_union_type_compatibility_of_values_query().
|
static |
Definition at line 14358 of file semantic_check.c.
References NULL, parser_walk_tree(), and pt_is_parameter_node().
Referenced by pt_check_create_entity(), and pt_check_create_view().
PT_NODE* pt_has_using_index_clause | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 13427 of file semantic_check.c.
References pt_statement_info::delete_, parser_node::info, parser_node::node_type, NULL, PT_DELETE, PT_SELECT, PT_STOP_WALK, PT_UPDATE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_statement_info::update, pt_delete_info::using_index, pt_select_info::using_index, and pt_update_info::using_index.
Referenced by emit_query_specs().
PT_NODE* pt_invert | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | name_expr, | ||
PT_NODE * | result | ||
) |
Definition at line 12101 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, assert, semantic_chk_info::donot_fold, parser_context::error_msgs, pt_statement_info::expr, parser_node::info, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, pt_expr_info::paren_type, parser_copy_tree(), parser_new_node(), PT_CAST, PT_DIVIDE, PT_EXPR, pt_find_var(), pt_has_error, PT_INTERNAL_ERROR, PT_MINUS, PT_NAME, PT_PLUS, pt_semantic_type(), PT_TIMES, PT_TYPE_NULL, PT_UNARY_MINUS, semantic_chk_info::top_node, and parser_node::type_enum.
Referenced by mq_class_lambda(), mq_invert_insert_select(), and mq_invert_subqueries().
|
static |
Definition at line 7094 of file semantic_check.c.
References PT_TYPE_BIGINT, PT_TYPE_BIT, PT_TYPE_CHAR, PT_TYPE_DOUBLE, PT_TYPE_FLOAT, PT_TYPE_INTEGER, PT_TYPE_LOGICAL, PT_TYPE_MONETARY, PT_TYPE_NCHAR, PT_TYPE_NUMERIC, PT_TYPE_SMALLINT, PT_TYPE_VARBIT, PT_TYPE_VARCHAR, and PT_TYPE_VARNCHAR.
Referenced by pt_check_vclass_attr_qspec_compatible().
|
static |
Definition at line 2285 of file semantic_check.c.
References assert, assert_release, pt_coll_infer::codeset, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, pt_data_type_info::collation_id, pt_statement_info::data_type, parser_node::data_type, pt_data_type_info::dec_precision, seman_compatible_info::force_cast, if(), parser_node::info, INTL_CAN_COERCE_CS, NULL, seman_compatible_info::prec, pt_data_type_info::precision, PT_HAS_COLLATION, PT_IS_COLLECTION_TYPE, PT_IS_STRING_TYPE, PT_TYPE_ENUMERATION, PT_TYPE_JSON, PT_TYPE_NUMERIC, seman_compatible_info::scale, seman_compatible_info::type_enum, parser_node::type_enum, and pt_data_type_info::units.
Referenced by pt_assignment_compatible(), pt_to_compatible_cast(), and pt_values_query_to_compatible_cast().
|
static |
Definition at line 14376 of file semantic_check.c.
References pt_statement_info::expr, parser_node::info, parser_node::node_type, pt_expr_info::op, PT_CONTINUE_WALK, PT_DEFINE_VARIABLE, PT_EVALUATE_VARIABLE, PT_EXPR, and PT_STOP_WALK.
Referenced by pt_has_parameters().
|
static |
Definition at line 1771 of file semantic_check.c.
References pt_statement_info::data_type, pt_data_type_info::entity, parser_node::info, mq_is_real_class_of_vclass(), parser_node::node_type, and PT_DATA_TYPE.
Referenced by pt_class_assignable().
|
static |
Definition at line 9406 of file semantic_check.c.
References ASSERT_ERROR, db_get_string(), db_get_string_size(), db_make_string(), db_string_convert_to(), INTL_CODESET_UTF8, LANG_COLL_UTF8_BINARY, NO_ERROR, parser_alloc(), and pr_clear_value().
Referenced by pt_check_json_table_node().
|
static |
Definition at line 628 of file semantic_check.c.
References parser_node::alias_print, pt_expr_info::arg1, assert, pt_expr_info::cast_type, pt_coll_infer::codeset, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, pt_data_type_info::collation_id, parser_node::column_number, pt_statement_info::data_type, parser_node::data_type, pt_data_type_info::dec_precision, parser_node::etc, pt_statement_info::expr, parser_node::flag, parser_node::info, parser_node::is_value_query, parser_node::line_number, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, pt_name_info::original, parser_copy_tree_list(), parser_free_tree(), parser_new_node(), seman_compatible_info::prec, pt_data_type_info::precision, PT_CAST, PT_DATA_TYPE, PT_EXPR, PT_EXPR_INFO_CAST_SHOULD_FOLD, PT_EXPR_INFO_SET_FLAG, PT_HAS_COLLATION, PT_NAME, seman_compatible_info::scale, seman_compatible_info::type_enum, parser_node::type_enum, and pt_data_type_info::units.
Referenced by pt_apply_union_select_list_collation(), pt_to_compatible_cast(), and pt_values_query_to_compatible_cast().
|
static |
Definition at line 15883 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, parser_node::info, pt_union_info::is_leaf_node, PT_IS_DIFFERENCE, PT_IS_INTERSECTION, PT_IS_UNION, pt_query_info::q, pt_statement_info::query, and pt_query_info::union_.
Referenced by pt_check_with_info().
void pt_no_attr_and_meta_attr_updates | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement | ||
) |
Definition at line 11888 of file semantic_check.c.
References parser_node::info, pt_assignments_helper::lhs, pt_name_info::meta_class, MSGCAT_SEMANTIC_UPDATE_MIX_CLASS_NON_CLASS, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, NULL, PT_ERRORm, pt_get_assignments(), pt_get_next_assignment(), pt_init_assignments_helper(), and PT_META_ATTR.
Referenced by mq_check_merge(), and mq_check_update().
void pt_no_double_insert_assignments | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | stmt | ||
) |
Definition at line 11927 of file semantic_check.c.
References assert, pt_insert_info::attr_list, pt_spec_info::entity_name, er_msg(), parser_node::info, pt_statement_info::insert, MSGCAT_SEMANTIC_GT_1_ASSIGNMENT_TO, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_name_info::original, PT_ERROR, PT_ERRORmf2, PT_INSERT, pt_name_equal(), pt_insert_info::spec, and pt_statement_info::spec.
Referenced by mq_translate_insert(), and pt_bind_names().
void pt_no_double_updates | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | stmt | ||
) |
Definition at line 11979 of file semantic_check.c.
References pt_expr_info::arg1, assert, CASE_INSENSITIVE, pt_statement_info::expr, parser_node::info, MSGCAT_SEMANTIC_GT_1_ASSIGNMENT_TO, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, pt_name_info::original, PT_ASSIGN, PT_ERRORmf2, PT_EXPR, pt_get_assignments(), PT_INTERNAL_ERROR, PT_IS_N_COLUMN_UPDATE_EXPR, PT_NAME, pt_str_compare(), pt_name_info::resolved, and pt_name_info::spec_id.
Referenced by mq_check_merge(), mq_check_update(), pt_check_odku_assignments(), and pt_semantic_check_local().
|
static |
Definition at line 9390 of file semantic_check.c.
References db_json_normalize_path_string(), NO_ERROR, and parser_alloc().
Referenced by pt_check_json_table_node().
|
static |
Definition at line 1566 of file semantic_check.c.
References pt_statement_info::alter, pt_alter_info::alter_clause, pt_resolution_info::as_attr_mthd_name, assert, pt_statement_info::attr_def, pt_create_entity_info::attr_def_list, pt_resolution_info::attr_mthd_name, pt_attr_def_info::attr_name, pt_attr_def_info::attr_type, CASE_INSENSITIVE, pt_alter_info::code, cubregex::count(), pt_statement_info::create_entity, pt_name_info::db_object, parser_node::info, pt_statement_info::name, parser_node::next, parser_node::node_type, NULL, pt_resolution_info::of_sup_class_name, pt_name_info::original, parser_append_node(), PT_ALTER, PT_CREATE_ENTITY, pt_get_attributes(), pt_length_of_list(), PT_META_ATTR, PT_RESET_QUERY, pt_str_compare(), pt_alter_info::query, pt_statement_info::resolution, pt_create_entity_info::resolution_list, pt_name_info::resolved, and pt_create_entity_info::supclass_list.
Referenced by pt_check_create_view().
|
static |
Definition at line 1789 of file semantic_check.c.
References pt_statement_info::data_type, parser_node::data_type, db_is_subclass(), pt_name_info::db_object, pt_data_type_info::entity, parser_node::info, pt_statement_info::name, parser_node::node_type, NULL, PT_DATA_TYPE, PT_TYPE_OBJECT, and parser_node::type_enum.
Referenced by pt_class_assignable().
|
static |
Definition at line 10456 of file semantic_check.c.
References PT_CHAIN_INFO::chain, PT_CHAIN_INFO::chain_length, PT_CHAIN_INFO::chain_ptr, PT_CHAIN_INFO::chain_size, pt_spec_info::id, parser_node::info, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, parser_node::node_type, NULL, pt_spec_info::path_entities, PT_DELETE, PT_ERRORm, PT_MERGE, PT_SELECT, PT_SPEC, PT_STOP_WALK, PT_UPDATE, pt_statement_info::spec, and PT_CHAIN_INFO::spec_id.
Referenced by pt_expand_isnull_preds_helper().
PT_NODE* pt_remove_from_list | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
PT_NODE * | list | ||
) |
Definition at line 12559 of file semantic_check.c.
References parser_node::next, NULL, and parser_free_tree().
Referenced by pt_check_analytic_function(), pt_check_function_index_expr(), pt_check_order_by(), and qo_reduce_order_by().
|
static |
Definition at line 14564 of file semantic_check.c.
References assert, pt_sort_spec_info::expr, parser_node::info, parser_node::next, parser_node::node_type, NULL, parser_append_node(), parser_free_tree(), PT_EXPR, PT_INTERNAL_ERROR, pt_is_const_expr_node(), PT_SORT_SPEC, PT_TYPE_NULL, PT_VALUE, pt_statement_info::sort_spec, and parser_node::type_enum.
Referenced by pt_check_analytic_function().
|
static |
Definition at line 11737 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_update_info::assignment, pt_statement_info::expr, parser_node::info, parser_node::next, NULL, pt_expr_info::op, parser_free_tree(), parser_walk_tree(), prm_get_bool_value(), PRM_ID_UPDATE_USE_ATTRIBUTE_REFERENCES, PT_ASSIGN, PT_IS_CONST, PT_IS_EXPR_NODE, PT_IS_N_COLUMN_UPDATE_EXPR, pt_replace_referenced_attributes(), pt_statement_info::update, and db_value_plist::val.
Referenced by pt_semantic_check_local().
|
static |
Definition at line 11817 of file semantic_check.c.
References pt_expr_info::arg1, pt_expr_info::arg2, assert_release, pt_statement_info::expr, parser_node::info, parser_node::next, parser_node::node_type, NULL, parser_copy_tree(), PT_CONTINUE_WALK, PT_INTERNAL_ERROR, pt_is_attr(), PT_IS_N_COLUMN_UPDATE_EXPR, PT_LIST_WALK, PT_NAME, pt_name_equal(), and db_value_plist::val.
Referenced by pt_replace_names_in_update_values().
|
static |
Definition at line 3898 of file semantic_check.c.
References pt_statement_info::alter, pt_alter_info::alter_clause, pt_alter_info::ch_attr_def, db_find_class(), db_get_attribute(), pt_alter_info::entity_name, parser_node::info, pt_alter_info::internal_stmts, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, NULL, pt_name_info::original, and PT_ERRORm.
Referenced by pt_check_alter().
|
static |
Definition at line 14406 of file semantic_check.c.
References pt_value_info::data_value, pt_sort_spec_info::expr, pt_statement_info::expr, pt_data_value::i, parser_node::info, MSGCAT_SEMANTIC_SORT_SPEC_RANGE_ERR, MSGCAT_SEMANTIC_SORT_SPEC_WANT_NUM, MSGCAT_SET_PARSER_SEMANTIC, parser_node::node_type, NULL, pt_expr_info::op, PT_ERRORm, PT_ERRORmf, PT_EXPR, pt_get_node_from_list(), PT_INTERNAL_ERROR, PT_SORT_SPEC, PT_TYPE_INTEGER, PT_UNARY_MINUS, PT_VALUE, pt_statement_info::sort_spec, parser_node::type_enum, and pt_statement_info::value.
Referenced by pt_check_analytic_function(), and pt_find_matching_sort_spec().
PT_NODE* pt_semantic_check | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node | ||
) |
Definition at line 11190 of file semantic_check.c.
References NULL, and pt_check_with_info().
Referenced by check_default_on_update_clause(), do_alter_one_clause_with_template(), do_create_entity(), get_att_default_from_def(), pt_check_create_entity(), pt_check_create_view(), pt_check_vclass_query_spec(), and pt_compile().
|
static |
Definition at line 9529 of file semantic_check.c.
References parser_node::alias_print, pt_union_info::arg1, ARG_FILE_LINE, pt_function_info::arg_list, pt_method_call_info::arg_list, pt_spec_info::as_attr_list, assert, ASSERT_ERROR, pt_update_info::assignment, pt_merge_info::assignment, pt_merge_info::attr_list, pt_method_call_info::call_or_expr, pt_coll_infer::can_force_cs, parser_node::cannot_prepare, CASE_INSENSITIVE, pt_select_info::check_cycles, pt_coll_infer::codeset, pt_coll_infer::coerc_level, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, pt_select_info::connect_by, CONNECT_BY_CYCLES_IGNORE, CONNECT_BY_CYCLES_NONE, CONNECT_BY_CYCLES_NONE_IGNORE, pt_statement_info::data_type, parser_node::data_type, pt_value_info::data_value, DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, db_error_string(), db_find_class(), db_is_vclass(), pt_name_info::db_object, pt_statement_info::delete_, pt_agg_check_info::depth, pt_spec_info::derived_table, pt_spec_info::derived_table_type, pt_data_type_info::entity, ER_DO_INSERT_TOO_MANY, ER_ERROR_SEVERITY, er_msg(), er_set(), EXCLUDE_HIDDEN_COLUMNS, pt_sort_spec_info::expr, pt_json_table_info::expr, pt_statement_info::expr, pt_query_info::flag, parser_node::flag, pt_spec_info::flat_entity_list, pt_select_info::from, pt_agg_check_info::from, pt_statement_info::function, pt_function_info::function_type, pt_function_info::generic_name, pt_select_info::group_by, pt_agg_check_info::group_by, pt_select_info::having, i, pt_data_value::i, pt_spec_info::id, seman_compatible_info::idx, INCLUDE_HIDDEN_COLUMNS, parser_node::info, pt_merge_info::insert, pt_statement_info::insert, pt_merge_info::into, pt_insert_info::into_var, pt_union_info::is_leaf_node, pt_statement_info::json_table_info, LANG_SYS_CODESET, LANG_SYS_COLLATION, pt_select_info::list, pt_node_list_info::list_type, pt_statement_info::merge, pt_statement_info::method_call, mq_generate_name(), MSGCAT_SEMANTIC_AMBIGUOUS_REF_TO, MSGCAT_SEMANTIC_CANNOT_USE_GROUPBYNUM_WITH_ROLLUP, MSGCAT_SEMANTIC_DELETE_DERIVED_TABLE, MSGCAT_SEMANTIC_GEN_FUNC_TOO_MANY_ARGS, MSGCAT_SEMANTIC_INS_EXPR_IN_INSERT, MSGCAT_SEMANTIC_INSTNUM_COMPATIBILITY_ERR, MSGCAT_SEMANTIC_IS_NOT_DEFINED, MSGCAT_SEMANTIC_MERGE_CANT_AFFECT_SOURCE_TABLE, MSGCAT_SEMANTIC_MERGE_DERIVED_TABLE, MSGCAT_SEMANTIC_NO_GROUPBY_ALLOWED, MSGCAT_SEMANTIC_NO_ORDERBY_ALLOWED, MSGCAT_SEMANTIC_NON_REFERABLE_VIOLATION, MSGCAT_SEMANTIC_NOT_SINGLE_COL, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SEMANTIC_RESOLUTION_FAILED, MSGCAT_SEMANTIC_SORT_SPEC_RANGE_ERR, MSGCAT_SEMANTIC_SORT_SPEC_WANT_NUM, MSGCAT_SEMANTIC_UPDATE_DERIVED_TABLE, MSGCAT_SEMANTIC_UPDATE_NO_AGGREGATE, MSGCAT_SEMANTIC_UPDATE_SUBVCLASS_NOT_ALLOWED, MSGCAT_SEMANTIC_WANT_NO_AGGREGATE, MSGCAT_SEMANTIC_WANT_TYPE, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, db_value_plist::next, parser_node::next, NO_ERROR, pt_statement_info::node_list, parser_node::node_type, NULL, NUM_F_GENERIC_ARGS, pt_insert_info::odku_assignments, pt_method_call_info::on_call_target, pt_spec_info::only_all, pt_expr_info::op, pt_query_info::order_by, pt_update_info::order_by, pt_name_info::original, parser, parser_append_node(), parser_copy_tree(), parser_free_node(), parser_walk_tree(), pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, seman_compatible_info::prec, prm_get_bool_value(), PRM_ID_ONLY_FULL_GROUP_BY, PT_ALL, pt_apply_union_select_list_collation(), PT_CAST, pt_check_analytic_function(), pt_check_assignments(), pt_check_cast_op(), pt_check_cume_dist_percent_rank_order_by(), pt_check_defaultf(), pt_check_group_concat_order_by(), pt_check_groupbynum_post(), pt_check_groupbynum_pre(), pt_check_into_clause(), pt_check_isolation_lvl(), pt_check_json_table_node(), pt_check_level_expr(), pt_check_method(), pt_check_odku_assignments(), pt_check_order_by(), pt_check_single_valued_node(), pt_check_single_valued_node_post(), pt_check_sub_insert(), pt_check_union_is_foldable(), pt_check_xaction_list(), pt_coerce_insert_values(), PT_COLLATION_NOT_COERC, PT_CONNECT_BY_ISCYCLE, PT_CONNECT_BY_ISLEAF, PT_CUME_DIST, PT_DEFAULTF, PT_DEFINE_VARIABLE, PT_DELETE, PT_DIFFERENCE, PT_DO, PT_ERRORc, PT_ERRORm, PT_ERRORmf, PT_ERRORmf2, PT_EVALUATE, PT_EXPR, pt_expr_disallow_op_pre(), PT_EXPR_INFO_INSTNUM_NC, PT_EXPR_INFO_IS_FLAGED, pt_find_op_type_pre(), pt_find_spec_in_statement(), pt_fold_union(), PT_FUNCTION, PT_GENERIC, pt_get_next_assignment(), pt_get_select_list(), pt_get_select_list_coll_compat(), PT_GROUP_CONCAT, pt_has_aggregate(), pt_has_analytic(), pt_has_error, PT_HOST_VAR, pt_init_assignments_helper(), PT_INSERT, PT_INTERSECTION, PT_IS_CALL_STMT, pt_is_instnum, pt_is_json_doc_type(), PT_IS_MTHD_EXPR, PT_IS_OID_NAME, PT_IS_SHOWSTMT, PT_IS_SUBQUERY, PT_JSON_TABLE, pt_length_of_list(), pt_length_of_select_list(), PT_MERGE, PT_METHOD_CALL, pt_name(), PT_NAME, PT_NAME_ALLOW_REUSABLE_OID, PT_NAME_INFO_GENERATED_OID, PT_NAME_INFO_IS_FLAGED, pt_no_double_updates(), PT_PERCENT_RANK, pt_register_orphan(), pt_replace_names_in_update_values(), PT_SCOPE, PT_SELECT, PT_SELECT_INFO_DISABLE_LOOSE_SCAN, PT_SELECT_INFO_SET_FLAG, pt_semantic_type(), PT_SET_SESSION_VARIABLES, PT_SET_XACTION, pt_short_print(), pt_show_type_enum(), PT_SHOWSTMT, PT_SPEC, PT_SPEC_IS_CTE, pt_str_compare(), pt_to_pos_descr(), PT_TYPE_INTEGER, PT_TYPE_JSON, PT_TYPE_NONE, PT_TYPE_OBJECT, PT_UNION, PT_UNION_INCOMP, PT_UPDATE, PT_VALUE, pt_query_info::q, pt_statement_info::query, seman_compatible_info::ref_att, seman_compatible_info::scale, pt_query_info::select, showstmt_metadata::semantic_check_func, pt_statement_info::set_xaction, pt_showstmt_info::show_type, pt_statement_info::showstmt, showstmt_get_metadata(), pt_query_info::single_tuple, sm_is_reuse_oid_class(), pt_statement_info::sort_spec, pt_delete_info::spec, pt_statement_info::spec, pt_name_info::spec_id, STATEMENT_SET_FOLD_NOTHING, pt_delete_info::target_classes, semantic_chk_info::top_node, pt_json_table_info::tree, seman_compatible_info::type_enum, parser_node::type_enum, pt_query_info::union_, pt_merge_info::update, pt_statement_info::update, pt_statement_info::value, pt_insert_info::value_clauses, pt_merge_info::value_clauses, pt_select_info::with_increment, parser_node::with_rollup, and pt_set_xaction_info::xaction_modes.
Referenced by pt_check_with_info().
PT_NODE* pt_semantic_quick_check_node | ( | PARSER_CONTEXT * | parser, |
PT_NODE ** | spec_p, | ||
PT_NODE ** | node_p | ||
) |
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().
|
static |
Definition at line 2368 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, assert_release, pt_coll_infer::codeset, pt_coll_infer::coll_id, seman_compatible_info::coll_infer, parser_node::data_type, i, seman_compatible_info::idx, parser_node::info, pt_select_info::list, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, NULL, parser_copy_tree_list(), parser_free_tree(), PT_ERRORm, pt_get_select_list(), PT_HAS_COLLATION, pt_is_compatible_without_cast(), pt_is_query, pt_is_select, PT_IS_STRING_TYPE, PT_IS_VALUE_QUERY, pt_make_cast_with_compatible_info(), PT_TYPE_NUMERIC, pt_values_query_to_compatible_cast(), pt_query_info::q, pt_statement_info::query, pt_query_info::select, parser_node::type_enum, and pt_query_info::union_.
Referenced by pt_check_union_compatibility(), and pt_check_union_type_compatibility_of_values_query().
void pt_try_remove_order_by | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query | ||
) |
Definition at line 16083 of file semantic_check.c.
References assert, pt_statement_info::expr, pt_query_info::flag, parser_node::flag, parser_node::info, parser_node::is_hidden_column, pt_query_info::limit, db_value_plist::next, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, pt_query_info::order_by, pt_query_info::order_siblings, pt_query_info::orderby_for, parser_free_tree(), PT_EXPR, pt_get_select_list(), PT_IS_QUERY_NODE_TYPE, PT_ORDERBY_NUM, and pt_statement_info::query.
Referenced by mq_make_derived_spec(), and pt_coerce_range_expr_arguments().
|
static |
Definition at line 1965 of file semantic_check.c.
References pt_statement_info::data_type, db_find_class(), db_is_subclass(), pt_name_info::db_object, pt_data_type_info::entity, parser_node::info, pt_name_info::meta_class, mq_is_real_class_of_vclass(), pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, PT_CLASS, PT_DATA_TYPE, PT_TYPE_OBJECT, and parser_node::type_enum.
Referenced by pt_collection_assignable().
|
static |
Definition at line 7592 of file semantic_check.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, pt_statement_info::attr_def, pt_attr_def_info::attr_type, parser_node::data_type, parser_node::info, pt_node_list_info::list, pt_select_info::list, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, parser_copy_tree_list(), parser_free_tree(), pt_get_select_list(), pt_has_error, pt_is_query, PT_IS_VALUE_QUERY, PT_META_ATTR, PT_NODE_LIST, PT_SELECT, pt_type_cast_vclass_query_spec_column(), pt_query_info::q, pt_statement_info::query, pt_query_info::select, parser_node::type_enum, and pt_query_info::union_.
Referenced by pt_check_create_view(), and pt_validate_query_spec().
PT_NODE* pt_type_cast_vclass_query_spec_column | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | attr, | ||
PT_NODE * | col | ||
) |
Definition at line 7515 of file semantic_check.c.
References parser_node::alias_print, pt_expr_info::arg1, assert, pt_expr_info::cast_type, pt_data_type_info::collation_id, parser_node::column_number, pt_statement_info::data_type, parser_node::data_type, pt_data_type_info::dec_precision, pt_data_type_info::enumeration, pt_statement_info::expr, parser_node::info, parser_node::line_number, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, NULL, pt_expr_info::op, parser_copy_tree_list(), parser_free_tree(), parser_new_node(), pt_data_type_info::precision, PT_CAST, PT_DATA_TYPE, PT_ERRORm, PT_EXPR, PT_EXPR_INFO_CAST_SHOULD_FOLD, PT_EXPR_INFO_SET_FLAG, PT_IS_COLLECTION_TYPE, PT_IS_PARAMETERIZED_TYPE, PT_TYPE_OBJECT, PT_UNION_COMP, pt_union_compatible(), PT_UNION_INCOMP, parser_node::type_enum, and pt_data_type_info::units.
Referenced by mq_set_types(), and pt_type_cast_vclass_query_spec().
|
static |
Definition at line 2133 of file semantic_check.c.
References pt_statement_info::data_type, parser_node::data_type, DB_MAX_NUMERIC_PRECISION, pt_data_type_info::dec_precision, parser_node::info, pt_name_info::meta_class, pt_statement_info::name, parser_node::node_type, NULL, parser_new_node(), seman_compatible_info::prec, pt_data_type_info::precision, pt_class_compatible(), pt_collection_compatible(), pt_common_type(), PT_DATA_TYPE, pt_get_compatible_info_from_node(), PT_IS_COLLECTION_TYPE, PT_IS_STRING_TYPE, PT_NAME, PT_TYPE_MAYBE, PT_TYPE_NA, PT_TYPE_NONE, PT_TYPE_NULL, PT_TYPE_NUMERIC, PT_TYPE_OBJECT, PT_UNION_COMP, PT_UNION_ERROR, PT_UNION_INCOMP, PT_UNION_INCOMP_CANNOT_FIX, PT_VALUE, PT_VID_ATTR, seman_compatible_info::scale, parser_node::type_enum, and pt_data_type_info::units.
Referenced by pt_check_vclass_attr_qspec_compatible(), pt_get_compatible_info(), and pt_type_cast_vclass_query_spec_column().
|
static |
Definition at line 317 of file semantic_check.c.
References assert, DB_DEFAULT_PRECISION, DB_MAX_NUMERIC_PRECISION, NULL, seman_compatible_info::prec, PT_TYPE_BIT, PT_TYPE_CHAR, PT_TYPE_MULTISET, PT_TYPE_NCHAR, PT_TYPE_NONE, PT_TYPE_NUMERIC, PT_TYPE_SEQUENCE, PT_TYPE_SET, PT_TYPE_VARBIT, PT_TYPE_VARCHAR, PT_TYPE_VARNCHAR, seman_compatible_info::scale, and seman_compatible_info::type_enum.
Referenced by pt_combine_compatible_info(), and pt_get_common_type_for_union().
int pt_validate_query_spec | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | s, | ||
DB_OBJECT * | c | ||
) |
Definition at line 13470 of file semantic_check.c.
References ARG_FILE_LINE, assert, db_get_class_name(), db_is_vclass(), er_errid(), ER_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_OBJ_INVALID_ARGUMENTS, er_set(), NO_ERROR, NULL, parser_walk_tree(), pt_check_vclass_query_spec(), pt_get_attributes(), pt_has_error, pt_report_to_ersys(), PT_SEMANTIC, pt_set_is_view_spec(), PT_SYNTAX, and pt_type_cast_vclass_query_spec().
Referenced by db_validate_query_spec(), and pt_check_alter().
|
static |
Definition at line 5557 of file semantic_check.c.
References DB_EQ, db_value_compare(), ER_FAILED, free_and_init, parser_node::info, MSGCAT_SEMANTIC_DUPLICATE_PARTITION_DEF, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, pt_parts_info::name, pt_statement_info::name, PT_VALUE_LINKS::next, NO_ERROR, NULL, pt_name_info::original, pt_statement_info::parts, PT_ERRORm, PT_ERRORmf, pt_value_to_db(), db_value_plist::val, and PT_VALUE_LINKS::vallink.
Referenced by pt_check_partition_values().
|
static |
Definition at line 407 of file semantic_check.c.
References assert, parser_node::data_type, i, seman_compatible_info::idx, parser_node::info, pt_node_list_info::list, pt_select_info::list, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, parser_copy_tree_list(), parser_free_tree(), PT_ERRORm, pt_is_compatible_without_cast(), PT_IS_STRING_TYPE, PT_IS_VALUE_QUERY, pt_make_cast_with_compatible_info(), PT_SELECT, PT_TYPE_NUMERIC, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and parser_node::type_enum.
Referenced by pt_check_type_compatibility_of_values_query(), and pt_to_compatible_cast().
|
static |
Definition at line 1904 of file semantic_check.c.
References pt_statement_info::data_type, parser_node::data_type, db_find_class(), db_get_query_specs(), pt_name_info::db_object, db_query_spec_next(), db_query_spec_string(), pt_data_type_info::entity, parser_node::info, intl_identifier_casecmp(), pt_statement_info::name, parser_node::node_type, NULL, pt_name_info::original, PT_DATA_TYPE, pt_get_proxy_spec_name(), PT_NAME, PT_TYPE_OBJECT, and parser_node::type_enum.
Referenced by pt_check_vclass_query_spec(), and pt_check_vclass_union_spec().