File semantic_check.c
FileList > cubrid > src > parser > semantic_check.c
Go to the source code of this file
#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 "execute_statement.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 "db_client_type.hpp"
#include "msgcat_glossary.hpp"
#include "network_interface_cl.h"
#include "dbtype.h"
Classes
Public Types
Public Functions
| Type |
Name |
| int |
pt_attr_check_default_cs_coll (PARSER_CONTEXT * parser, PT_NODE * attr, int default_cs, int default_coll)
|
| bool |
pt_check_cast_op (PARSER_CONTEXT * parser, PT_NODE * node)
|
| int |
pt_check_class_eq (PARSER_CONTEXT * parser, PT_NODE * p, PT_NODE * q)
|
| bool |
pt_check_compatible_node_for_min_max_optimize (PARSER_CONTEXT * parser, PT_NODE * order, PT_NODE * column)
|
| bool |
pt_check_compatible_node_for_orderby (PARSER_CONTEXT * parser, PT_NODE * order, PT_NODE * column)
|
| PT_NODE * |
pt_check_cyclic_reference_in_view_spec (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_check_group_by (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_check_odku_assignments (PARSER_CONTEXT * parser, PT_NODE * insert)
|
| int |
pt_check_order_by (PARSER_CONTEXT * parser, PT_NODE * query)
|
| int |
pt_check_path_eq (PARSER_CONTEXT * parser, const PT_NODE * p, const PT_NODE * q)
|
| PT_NODE * |
pt_check_type_compatibility_of_values_query (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_check_union_compatibility (PARSER_CONTEXT * parser, PT_NODE * node)
|
| STATEMENT_SET_FOLD |
pt_check_union_is_foldable (PARSER_CONTEXT * parser, PT_NODE * union_node)
|
| PT_NODE * |
pt_check_union_type_compatibility_of_values_query (PARSER_CONTEXT * parser, PT_NODE * node)
|
| DB_OBJECT * |
pt_check_user_owns_class (PARSER_CONTEXT * parser, PT_NODE * cls_ref)
|
| int |
pt_class_assignable (PARSER_CONTEXT * parser, const PT_NODE * d_class_dt, const PT_NODE * s_class)
|
| bool |
pt_compare_sort_spec_expr (PARSER_CONTEXT * parser, PT_NODE * expr1, PT_NODE * expr2)
|
| PT_NODE * |
pt_count_input_markers (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_count_output_markers (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_find_attr_def (const PT_NODE * attr_def_list, const PT_NODE * name)
|
| PT_NODE * |
pt_find_class_of_index (PARSER_CONTEXT * parser, const char *const index_name, const DB_CONSTRAINT_TYPE index_type)
|
| PT_NODE * |
pt_find_cnstr_def (const PT_NODE * cnstr_def_list, const PT_NODE * name)
|
| PT_NODE * |
pt_find_order_value_in_list (PARSER_CONTEXT * parser, const PT_NODE * sort_value, const PT_NODE * order_list)
|
| int |
pt_find_var (PT_NODE * p, PT_NODE ** result)
|
| PT_NODE * |
pt_fold_union (PARSER_CONTEXT * parser, PT_NODE * union_node, STATEMENT_SET_FOLD fold_as)
|
| PT_NODE * |
pt_has_using_index_clause (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_invert (PARSER_CONTEXT * parser, PT_NODE * name_expr, PT_NODE * result)
|
| void |
pt_no_attr_and_meta_attr_updates (PARSER_CONTEXT * parser, PT_NODE * statement)
|
| void |
pt_no_double_insert_assignments (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| void |
pt_no_double_updates (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| PT_NODE * |
pt_remove_from_list (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * list)
|
| PT_NODE * |
pt_semantic_check (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_semantic_quick_check_node (PARSER_CONTEXT * parser, PT_NODE ** spec_p, PT_NODE ** node_p)
|
| void |
pt_try_remove_order_by (PARSER_CONTEXT * parser, PT_NODE * query)
|
| PT_NODE * |
pt_type_cast_vclass_query_spec_column (PARSER_CONTEXT * parser, PT_NODE * attr, PT_NODE * col)
|
| int |
pt_validate_query_spec (PARSER_CONTEXT * parser, PT_NODE * s, DB_OBJECT * c)
|
Public Static Functions
| Type |
Name |
| const char * |
attribute_name (PARSER_CONTEXT * parser, PT_NODE * att)
|
| int |
db_value_list_add (DB_VALUE_PLIST ** ptail, DB_VALUE * val)
|
| int |
db_value_list_find (const DB_VALUE_PLIST * phead, const DB_VALUE * val)
|
| int |
db_value_list_finddel (DB_VALUE_PLIST ** phead, DB_VALUE * val)
|
| int |
is_shared_attribute (PARSER_CONTEXT * parser, PT_NODE * att)
|
| int |
partition_range_min_max (DB_VALUE ** dest, DB_VALUE * inval, int min_max)
|
| PT_NODE * |
pt_append_statements_on_add_attribute (PARSER_CONTEXT * parser, PT_NODE * statement_list, PT_NODE * stmt_node, const char * class_name, const char * attr_name, PT_NODE * attr)
|
| PT_NODE * |
pt_append_statements_on_change_default (PARSER_CONTEXT * parser, PT_NODE * statement_list, PT_NODE * stmt_node, const char * class_name, const char * attr_name, PT_NODE * value)
|
| PT_NODE * |
pt_append_statements_on_delete (PARSER_CONTEXT * parser, PT_NODE * stmt_node, const char * class_name, const char * attr_name, const char * alias_name, PT_NODE ** where_ptr)
|
| PT_NODE * |
pt_append_statements_on_drop_attributes (PARSER_CONTEXT * parser, PT_NODE * statement_list, const char * class_name_list)
|
| PT_NODE * |
pt_append_statements_on_insert (PARSER_CONTEXT * parser, PT_NODE * stmt_node, const char * class_name, const char * attr_name, PT_NODE * value, PT_NODE * parameter)
|
| PT_NODE * |
pt_append_statements_on_update (PARSER_CONTEXT * parser, PT_NODE * stmt_node, const char * class_name, const char * attr_name, const char * alias_name, PT_NODE * value, PT_NODE ** where_ptr)
|
| PT_UNION_COMPATIBLE |
pt_apply_union_select_list_collation (PARSER_CONTEXT * parser, PT_NODE * query, SEMAN_COMPATIBLE_INFO * cinfo, int num_cinfo)
|
| int |
pt_assignment_class_compatible (PARSER_CONTEXT * parser, PT_NODE * lhs, PT_NODE * rhs)
|
| PT_NODE * |
pt_assignment_compatible (PARSER_CONTEXT * parser, PT_NODE * lhs, PT_NODE * rhs)
|
| bool |
pt_attr_refers_to_self (PARSER_CONTEXT * parser, PT_NODE * attr, const char * self)
|
| void |
pt_check_alter (PARSER_CONTEXT * parser, PT_NODE * alter)
|
| void |
pt_check_alter_partition (PARSER_CONTEXT * parser, PT_NODE * stmt, MOP dbobj)
|
| void |
pt_check_alter_serial (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_alter_synonym (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_check_analytic_function (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_check_and_replace_hostvar (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
pt_check_assignments (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| void |
pt_check_attribute_domain (PARSER_CONTEXT * parser, PT_NODE * attr_defs, PT_MISC_TYPE class_type, const char * self, const bool reuse_oid, PT_NODE * stmt)
|
| int |
pt_check_auto_increment_table_option (PARSER_CONTEXT * parser, PT_NODE * create)
|
| PT_NODE * |
pt_check_constraint (PARSER_CONTEXT * parser, const PT_NODE * create, const PT_NODE * constraint)
|
| PT_NODE * |
pt_check_constraints (PARSER_CONTEXT * parser, const PT_NODE * create)
|
| void |
pt_check_create_entity (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_create_index (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_create_stored_procedure (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_create_synonym (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_create_user (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_create_view (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| int |
pt_check_cume_dist_percent_rank_order_by (PARSER_CONTEXT * parser, PT_NODE * func)
|
| PT_NODE * |
pt_check_data_default (PARSER_CONTEXT * parser, PT_NODE * data_default_list)
|
| int |
pt_check_default_value_param_for_stored_procedure (PARSER_CONTEXT * parser, PT_NODE * param)
|
| PT_NODE * |
pt_check_default_vclass_query_spec (PARSER_CONTEXT * parser, PT_NODE * qry, PT_NODE * attrs)
|
| int |
pt_check_defaultf (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_drop (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_drop_synonym (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_filter_index_expr (PARSER_CONTEXT * parser, PT_NODE * atts, PT_NODE * node, MOP db_obj)
|
| PT_NODE * |
pt_check_filter_index_expr_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_check_filter_index_expr_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
pt_check_function_index_expr (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_check_function_index_expr_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
pt_check_grant_revoke (PARSER_CONTEXT * parser, PT_NODE * node)
|
| int |
pt_check_group_concat_order_by (PARSER_CONTEXT * parser, PT_NODE * func)
|
| void |
pt_check_into_clause (PARSER_CONTEXT * parser, PT_NODE * qry)
|
| void |
pt_check_into_clause_for_static_sql (PARSER_CONTEXT * parser, PT_NODE * qry, int into_cnt)
|
| PT_NODE * |
pt_check_isolation_lvl (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_check_json_table_node (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_kill (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_method (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_mutable_attributes (PARSER_CONTEXT * parser, DB_OBJECT * cls, PT_NODE * attr_defs)
|
| int |
pt_check_partition_values (PARSER_CONTEXT * parser, PT_TYPE_ENUM desired_type, PT_NODE * data_type, PT_VALUE_LINKS * ptl, PT_NODE * parts)
|
| void |
pt_check_partitions (PARSER_CONTEXT * parser, PT_NODE * stmt, MOP dbobj)
|
| PT_NODE * |
pt_check_query_cache_in_create_entity (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_check_range_partition_strict_increasing (PARSER_CONTEXT * parser, PT_NODE * stmt, PT_NODE * part, PT_NODE * part_next, PT_NODE * column_dt)
|
| void |
pt_check_rename_synonym (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_check_single_valued_node (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_check_single_valued_node_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_check_sub_insert (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| void |
pt_check_truncate (PARSER_CONTEXT * parser, PT_NODE * node)
|
| void |
pt_check_unique_attr (PARSER_CONTEXT * parser, const char * entity_name, PT_NODE * att, PT_NODE_TYPE att_type)
|
| void |
pt_check_update_stats (PARSER_CONTEXT * parser, PT_NODE * node)
|
| DB_OBJECT * |
pt_check_user_exists (PARSER_CONTEXT * parser, PT_NODE * cls_ref)
|
| void |
pt_check_vacuum (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_UNION_COMPATIBLE |
pt_check_vclass_attr_qspec_compatible (PARSER_CONTEXT * parser, PT_NODE * attr, PT_NODE * col)
|
| PT_NODE * |
pt_check_vclass_query_spec (PARSER_CONTEXT * parser, PT_NODE * qry, PT_NODE * attrs, const char * self, const bool do_semantic_check)
|
| PT_NODE * |
pt_check_vclass_union_spec (PARSER_CONTEXT * parser, PT_NODE * qry, PT_NODE * attrds)
|
| PT_NODE * |
pt_check_where (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_check_with_clause (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_check_with_info (PARSER_CONTEXT * parser, PT_NODE * node, SEMANTIC_CHK_INFO * info)
|
| void |
pt_check_xaction_list (PARSER_CONTEXT * parser, PT_NODE * node)
|
| int |
pt_class_compatible (PARSER_CONTEXT * parser, const PT_NODE * class1, const PT_NODE * class2, bool view_definition_context)
|
| PT_NODE * |
pt_coerce_insert_values (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| int |
pt_coerce_partition_value_with_data_type (PARSER_CONTEXT * parser, PT_NODE * value, PT_NODE * data_type)
|
| int |
pt_collection_assignable (PARSER_CONTEXT * parser, const PT_NODE * d_col, const PT_NODE * s_col)
|
| int |
pt_collection_compatible (PARSER_CONTEXT * parser, const PT_NODE * col1, const PT_NODE * col2, bool view_definition_context)
|
| bool |
pt_combine_compatible_info (PARSER_CONTEXT * parser, SEMAN_COMPATIBLE_INFO * cinfo1, SEMAN_COMPATIBLE_INFO * cinfo2, PT_NODE * att1, PT_NODE * att2, int index)
|
| PT_NODE * |
pt_count_iso_nodes (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_count_time_nodes (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_derive_attribute (PARSER_CONTEXT * parser, PT_NODE * c)
|
| PT_NODE * |
pt_expand_isnull_preds (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_expand_isnull_preds_helper (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_find_aggregate_analytic_in_where (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
pt_find_aggregate_analytic_post (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_find_aggregate_analytic_pre (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_find_aggregate_function (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| DB_OBJECT * |
pt_find_class (PARSER_CONTEXT * parser, PT_NODE * p, bool for_update)
|
| PT_NODE * |
pt_find_default_expression (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_find_matching_sort_spec (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * spec_list, PT_NODE * select_list)
|
| PT_NODE * |
pt_find_method_call (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| int |
pt_find_partition_column_count (PT_NODE * expr, PT_NODE ** name_node)
|
| int |
pt_find_partition_column_count_func (PT_NODE * func, PT_NODE ** name_node)
|
| PT_NODE * |
pt_find_query (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_gen_isnull_preds (PARSER_CONTEXT * parser, PT_NODE * pred, PT_CHAIN_INFO * chain)
|
| PT_NODE * |
pt_get_assignments (PT_NODE * node, bool * dblinked)
|
| PT_NODE * |
pt_get_attributes (PARSER_CONTEXT * parser, const DB_OBJECT * c)
|
| PT_MISC_TYPE |
pt_get_class_type (PARSER_CONTEXT * parser, const DB_OBJECT * cls)
|
| PT_NODE * |
pt_get_common_type_for_union (PARSER_CONTEXT * parser, PT_NODE * att1, PT_NODE * att2, SEMAN_COMPATIBLE_INFO * cinfo, int idx, bool * need_cast)
|
| SEMAN_COMPATIBLE_INFO * |
pt_get_compatible_info (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * select_list1, PT_NODE * select_list2, bool * need_cast)
|
| void |
pt_get_compatible_info_from_node (const PT_NODE * att, SEMAN_COMPATIBLE_INFO * cinfo)
|
| PT_UNION_COMPATIBLE |
pt_get_select_list_coll_compat (PARSER_CONTEXT * parser, PT_NODE * query, SEMAN_COMPATIBLE_INFO * cinfo, int num_cinfo)
|
| PT_TYPE_ENUM |
pt_get_type_enum_of_table_column (PARSER_CONTEXT * parser, PT_NODE * data_type)
|
| const char * |
pt_get_type_name (PT_TYPE_ENUM type_enum, PT_NODE * data_type)
|
| SEMAN_COMPATIBLE_INFO * |
pt_get_values_query_compatible_info (PARSER_CONTEXT * parser, PT_NODE * node, bool * need_cast)
|
| bool |
pt_has_parameters (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| bool |
pt_is_compatible_type (const PT_TYPE_ENUM arg1_type, const PT_TYPE_ENUM arg2_type)
|
| bool |
pt_is_compatible_without_cast (PARSER_CONTEXT * parser, SEMAN_COMPATIBLE_INFO * dest_sci, PT_NODE * src, bool * is_cast_allowed)
|
| bool |
pt_is_defined_class (PARSER_CONTEXT * parser, PT_NODE * data_type)
|
| PT_NODE * |
pt_is_parameter_node (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_is_real_class_of_vclass (PARSER_CONTEXT * parser, const PT_NODE * s_class, const PT_NODE * d_class)
|
| bool |
pt_is_type_supported_by_sp (PARSER_CONTEXT * parser, PT_TYPE_ENUM & type_enum, PT_NODE * data_type)
|
| int |
pt_json_str_codeset_normalization (PARSER_CONTEXT * parser, REFPTR(char, c))
|
| PT_NODE * |
pt_make_cast_with_compatible_info (PARSER_CONTEXT * parser, PT_NODE * att, PT_NODE * next_att, SEMAN_COMPATIBLE_INFO * cinfo, bool * new_cast_added)
|
| PT_NODE * |
pt_make_default_value (PARSER_CONTEXT * parser, const char * class_name, const char * attr_name)
|
| PT_NODE * |
pt_make_parameter (PARSER_CONTEXT * parser, const char * name, int is_out_parameter)
|
| PT_NODE * |
pt_mark_union_leaf_nodes (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_normalize_path (PARSER_CONTEXT * parser, REFPTR(char, c))
|
| int |
pt_number_of_attributes (PARSER_CONTEXT * parser, PT_NODE * stmt, PT_NODE ** attrs)
|
| int |
pt_objects_assignable (PARSER_CONTEXT * parser, const PT_NODE * d_class_dt, const PT_NODE * s_class)
|
| PT_NODE * |
pt_path_chain (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_remove_unusable_sort_specs (PARSER_CONTEXT * parser, PT_NODE * list)
|
| PT_NODE * |
pt_replace_names_in_update_values (PARSER_CONTEXT * parser, PT_NODE * update)
|
| PT_NODE * |
pt_replace_referenced_attributes (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
pt_resolve_default_external (PARSER_CONTEXT * parser, PT_NODE * alter)
|
| void |
pt_resolve_delete_external (PARSER_CONTEXT * parser, PT_NODE * delete)
|
| void |
pt_resolve_insert_external (PARSER_CONTEXT * parser, PT_NODE * insert)
|
| PT_NODE * |
pt_resolve_sort_spec_expr (PARSER_CONTEXT * parser, PT_NODE * sort_spec, PT_NODE * select_list)
|
| void |
pt_resolve_update_external (PARSER_CONTEXT * parser, PT_NODE * update)
|
| PT_NODE * |
pt_semantic_check_local (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_to_compatible_cast (PARSER_CONTEXT * parser, PT_NODE * node, SEMAN_COMPATIBLE_INFO * cinfo, int num_cinfo)
|
| int |
pt_type_assignable (PARSER_CONTEXT * parser, const PT_NODE * d_type, const PT_NODE * s_type)
|
| PT_NODE * |
pt_type_cast_vclass_query_spec (PARSER_CONTEXT * parser, PT_NODE * qry, PT_NODE * attrs)
|
| PT_UNION_COMPATIBLE |
pt_union_compatible (PARSER_CONTEXT * parser, PT_NODE * item1, PT_NODE * item2, bool view_definition_context, bool * is_object_type)
|
| bool |
pt_update_compatible_info (PARSER_CONTEXT * parser, SEMAN_COMPATIBLE_INFO * cinfo, PT_TYPE_ENUM common_type, SEMAN_COMPATIBLE_INFO * att1_info, SEMAN_COMPATIBLE_INFO * att2_info)
|
| int |
pt_value_links_add (PARSER_CONTEXT * parser, PT_NODE * val, PT_NODE * parts, PT_VALUE_LINKS * ptl)
|
| PT_NODE * |
pt_values_query_to_compatible_cast (PARSER_CONTEXT * parser, PT_NODE * node, SEMAN_COMPATIBLE_INFO * cinfo, int num_cinfo)
|
| bool |
pt_vclass_compatible (PARSER_CONTEXT * parser, const PT_NODE * att, const PT_NODE * qcol)
|
Macros
Public Types Documentation
typedef DB_VALUE_PLIST
typedef struct db_value_plist DB_VALUE_PLIST;
enum PT_CAST_VAL
enum PT_CAST_VAL {
PT_CAST_VALID,
PT_CAST_INVALID,
PT_CAST_UNSUPPORTED
};
enum PT_UNION_COMPATIBLE
enum PT_UNION_COMPATIBLE {
PT_UNION_COMP = 1,
PT_UNION_INCOMP = 0,
PT_UNION_INCOMP_CANNOT_FIX = -1,
PT_UNION_ERROR = -2
};
typedef PT_VALUE_LINKS
typedef struct PT_VALUE_LINKS PT_VALUE_LINKS;
enum RANGE_MIN_MAX_ENUM
enum RANGE_MIN_MAX_ENUM {
RANGE_MIN = 0,
RANGE_MAX = 1
};
typedef SEMAN_COMPATIBLE_INFO
typedef struct seman_compatible_info SEMAN_COMPATIBLE_INFO;
Public Functions Documentation
function pt_attr_check_default_cs_coll
int pt_attr_check_default_cs_coll (
PARSER_CONTEXT * parser,
PT_NODE * attr,
int default_cs,
int default_coll
)
function pt_check_cast_op
bool pt_check_cast_op (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_class_eq
int pt_check_class_eq (
PARSER_CONTEXT * parser,
PT_NODE * p,
PT_NODE * q
)
function pt_check_compatible_node_for_min_max_optimize
bool pt_check_compatible_node_for_min_max_optimize (
PARSER_CONTEXT * parser,
PT_NODE * order,
PT_NODE * column
)
function pt_check_compatible_node_for_orderby
bool pt_check_compatible_node_for_orderby (
PARSER_CONTEXT * parser,
PT_NODE * order,
PT_NODE * column
)
function pt_check_cyclic_reference_in_view_spec
PT_NODE * pt_check_cyclic_reference_in_view_spec (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_group_by
int pt_check_group_by (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_odku_assignments
PT_NODE * pt_check_odku_assignments (
PARSER_CONTEXT * parser,
PT_NODE * insert
)
function pt_check_order_by
int pt_check_order_by (
PARSER_CONTEXT * parser,
PT_NODE * query
)
function pt_check_path_eq
int pt_check_path_eq (
PARSER_CONTEXT * parser,
const PT_NODE * p,
const PT_NODE * q
)
function pt_check_type_compatibility_of_values_query
PT_NODE * pt_check_type_compatibility_of_values_query (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_union_compatibility
PT_NODE * pt_check_union_compatibility (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_union_is_foldable
STATEMENT_SET_FOLD pt_check_union_is_foldable (
PARSER_CONTEXT * parser,
PT_NODE * union_node
)
function pt_check_union_type_compatibility_of_values_query
PT_NODE * pt_check_union_type_compatibility_of_values_query (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_user_owns_class
DB_OBJECT * pt_check_user_owns_class (
PARSER_CONTEXT * parser,
PT_NODE * cls_ref
)
function pt_class_assignable
int pt_class_assignable (
PARSER_CONTEXT * parser,
const PT_NODE * d_class_dt,
const PT_NODE * s_class
)
function pt_compare_sort_spec_expr
bool pt_compare_sort_spec_expr (
PARSER_CONTEXT * parser,
PT_NODE * expr1,
PT_NODE * expr2
)
PT_NODE * pt_count_input_markers (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_count_output_markers
PT_NODE * pt_count_output_markers (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_find_attr_def
PT_NODE * pt_find_attr_def (
const PT_NODE * attr_def_list,
const PT_NODE * name
)
function pt_find_class_of_index
PT_NODE * pt_find_class_of_index (
PARSER_CONTEXT * parser,
const char * const index_name,
const DB_CONSTRAINT_TYPE index_type
)
function pt_find_cnstr_def
PT_NODE * pt_find_cnstr_def (
const PT_NODE * cnstr_def_list,
const PT_NODE * name
)
function pt_find_order_value_in_list
PT_NODE * pt_find_order_value_in_list (
PARSER_CONTEXT * parser,
const PT_NODE * sort_value,
const PT_NODE * order_list
)
function pt_find_var
int pt_find_var (
PT_NODE * p,
PT_NODE ** result
)
function pt_fold_union
PT_NODE * pt_fold_union (
PARSER_CONTEXT * parser,
PT_NODE * union_node,
STATEMENT_SET_FOLD fold_as
)
function pt_has_using_index_clause
PT_NODE * pt_has_using_index_clause (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_invert
PT_NODE * pt_invert (
PARSER_CONTEXT * parser,
PT_NODE * name_expr,
PT_NODE * result
)
void pt_no_attr_and_meta_attr_updates (
PARSER_CONTEXT * parser,
PT_NODE * statement
)
function pt_no_double_insert_assignments
void pt_no_double_insert_assignments (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function pt_no_double_updates
void pt_no_double_updates (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function pt_remove_from_list
PT_NODE * pt_remove_from_list (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * list
)
function pt_semantic_check
PT_NODE * pt_semantic_check (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_semantic_quick_check_node
PT_NODE * pt_semantic_quick_check_node (
PARSER_CONTEXT * parser,
PT_NODE ** spec_p,
PT_NODE ** node_p
)
function pt_try_remove_order_by
void pt_try_remove_order_by (
PARSER_CONTEXT * parser,
PT_NODE * query
)
function pt_type_cast_vclass_query_spec_column
PT_NODE * pt_type_cast_vclass_query_spec_column (
PARSER_CONTEXT * parser,
PT_NODE * attr,
PT_NODE * col
)
function pt_validate_query_spec
int pt_validate_query_spec (
PARSER_CONTEXT * parser,
PT_NODE * s,
DB_OBJECT * c
)
Public Static Functions Documentation
function attribute_name
static const char * attribute_name (
PARSER_CONTEXT * parser,
PT_NODE * att
)
function db_value_list_add
static int db_value_list_add (
DB_VALUE_PLIST ** ptail,
DB_VALUE * val
)
function db_value_list_find
static int db_value_list_find (
const DB_VALUE_PLIST * phead,
const DB_VALUE * val
)
function db_value_list_finddel
static int db_value_list_finddel (
DB_VALUE_PLIST ** phead,
DB_VALUE * val
)
function is_shared_attribute
static int is_shared_attribute (
PARSER_CONTEXT * parser,
PT_NODE * att
)
function partition_range_min_max
static int partition_range_min_max (
DB_VALUE ** dest,
DB_VALUE * inval,
int min_max
)
function pt_append_statements_on_add_attribute
static PT_NODE * pt_append_statements_on_add_attribute (
PARSER_CONTEXT * parser,
PT_NODE * statement_list,
PT_NODE * stmt_node,
const char * class_name,
const char * attr_name,
PT_NODE * attr
)
function pt_append_statements_on_change_default
static PT_NODE * pt_append_statements_on_change_default (
PARSER_CONTEXT * parser,
PT_NODE * statement_list,
PT_NODE * stmt_node,
const char * class_name,
const char * attr_name,
PT_NODE * value
)
function pt_append_statements_on_delete
static PT_NODE * pt_append_statements_on_delete (
PARSER_CONTEXT * parser,
PT_NODE * stmt_node,
const char * class_name,
const char * attr_name,
const char * alias_name,
PT_NODE ** where_ptr
)
function pt_append_statements_on_drop_attributes
static PT_NODE * pt_append_statements_on_drop_attributes (
PARSER_CONTEXT * parser,
PT_NODE * statement_list,
const char * class_name_list
)
function pt_append_statements_on_insert
static PT_NODE * pt_append_statements_on_insert (
PARSER_CONTEXT * parser,
PT_NODE * stmt_node,
const char * class_name,
const char * attr_name,
PT_NODE * value,
PT_NODE * parameter
)
function pt_append_statements_on_update
static PT_NODE * pt_append_statements_on_update (
PARSER_CONTEXT * parser,
PT_NODE * stmt_node,
const char * class_name,
const char * attr_name,
const char * alias_name,
PT_NODE * value,
PT_NODE ** where_ptr
)
function pt_apply_union_select_list_collation
static PT_UNION_COMPATIBLE pt_apply_union_select_list_collation (
PARSER_CONTEXT * parser,
PT_NODE * query,
SEMAN_COMPATIBLE_INFO * cinfo,
int num_cinfo
)
function pt_assignment_class_compatible
static int pt_assignment_class_compatible (
PARSER_CONTEXT * parser,
PT_NODE * lhs,
PT_NODE * rhs
)
function pt_assignment_compatible
static PT_NODE * pt_assignment_compatible (
PARSER_CONTEXT * parser,
PT_NODE * lhs,
PT_NODE * rhs
)
function pt_attr_refers_to_self
static bool pt_attr_refers_to_self (
PARSER_CONTEXT * parser,
PT_NODE * attr,
const char * self
)
function pt_check_alter
static void pt_check_alter (
PARSER_CONTEXT * parser,
PT_NODE * alter
)
function pt_check_alter_partition
static void pt_check_alter_partition (
PARSER_CONTEXT * parser,
PT_NODE * stmt,
MOP dbobj
)
function pt_check_alter_serial
static void pt_check_alter_serial (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_alter_synonym
static void pt_check_alter_synonym (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_analytic_function
static PT_NODE * pt_check_analytic_function (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_and_replace_hostvar
static PT_NODE * pt_check_and_replace_hostvar (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_assignments
static void pt_check_assignments (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function pt_check_attribute_domain
static void pt_check_attribute_domain (
PARSER_CONTEXT * parser,
PT_NODE * attr_defs,
PT_MISC_TYPE class_type,
const char * self,
const bool reuse_oid,
PT_NODE * stmt
)
function pt_check_auto_increment_table_option
static int pt_check_auto_increment_table_option (
PARSER_CONTEXT * parser,
PT_NODE * create
)
function pt_check_constraint
static PT_NODE * pt_check_constraint (
PARSER_CONTEXT * parser,
const PT_NODE * create,
const PT_NODE * constraint
)
function pt_check_constraints
static PT_NODE * pt_check_constraints (
PARSER_CONTEXT * parser,
const PT_NODE * create
)
function pt_check_create_entity
static void pt_check_create_entity (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_create_index
static void pt_check_create_index (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_create_stored_procedure
static void pt_check_create_stored_procedure (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_create_synonym
static void pt_check_create_synonym (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_create_user
static void pt_check_create_user (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_create_view
static void pt_check_create_view (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function pt_check_cume_dist_percent_rank_order_by
static int pt_check_cume_dist_percent_rank_order_by (
PARSER_CONTEXT * parser,
PT_NODE * func
)
function pt_check_data_default
static PT_NODE * pt_check_data_default (
PARSER_CONTEXT * parser,
PT_NODE * data_default_list
)
function pt_check_default_value_param_for_stored_procedure
static int pt_check_default_value_param_for_stored_procedure (
PARSER_CONTEXT * parser,
PT_NODE * param
)
function pt_check_default_vclass_query_spec
static PT_NODE * pt_check_default_vclass_query_spec (
PARSER_CONTEXT * parser,
PT_NODE * qry,
PT_NODE * attrs
)
function pt_check_defaultf
static int pt_check_defaultf (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_drop
static void pt_check_drop (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_drop_synonym
static void pt_check_drop_synonym (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_filter_index_expr
static void pt_check_filter_index_expr (
PARSER_CONTEXT * parser,
PT_NODE * atts,
PT_NODE * node,
MOP db_obj
)
function pt_check_filter_index_expr_post
static PT_NODE * pt_check_filter_index_expr_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_filter_index_expr_pre
static PT_NODE * pt_check_filter_index_expr_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_function_index_expr
static void pt_check_function_index_expr (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_function_index_expr_pre
static PT_NODE * pt_check_function_index_expr_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_grant_revoke
static void pt_check_grant_revoke (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_group_concat_order_by
static int pt_check_group_concat_order_by (
PARSER_CONTEXT * parser,
PT_NODE * func
)
function pt_check_into_clause
static void pt_check_into_clause (
PARSER_CONTEXT * parser,
PT_NODE * qry
)
function pt_check_into_clause_for_static_sql
static void pt_check_into_clause_for_static_sql (
PARSER_CONTEXT * parser,
PT_NODE * qry,
int into_cnt
)
function pt_check_isolation_lvl
static PT_NODE * pt_check_isolation_lvl (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_json_table_node
static int pt_check_json_table_node (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_kill
static void pt_check_kill (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_method
static void pt_check_method (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_mutable_attributes
static void pt_check_mutable_attributes (
PARSER_CONTEXT * parser,
DB_OBJECT * cls,
PT_NODE * attr_defs
)
function pt_check_partition_values
static int pt_check_partition_values (
PARSER_CONTEXT * parser,
PT_TYPE_ENUM desired_type,
PT_NODE * data_type,
PT_VALUE_LINKS * ptl,
PT_NODE * parts
)
function pt_check_partitions
static void pt_check_partitions (
PARSER_CONTEXT * parser,
PT_NODE * stmt,
MOP dbobj
)
function pt_check_query_cache_in_create_entity
static PT_NODE * pt_check_query_cache_in_create_entity (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_range_partition_strict_increasing
static int pt_check_range_partition_strict_increasing (
PARSER_CONTEXT * parser,
PT_NODE * stmt,
PT_NODE * part,
PT_NODE * part_next,
PT_NODE * column_dt
)
function pt_check_rename_synonym
static void pt_check_rename_synonym (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_single_valued_node
static PT_NODE * pt_check_single_valued_node (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_single_valued_node_post
static PT_NODE * pt_check_single_valued_node_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_sub_insert
static PT_NODE * pt_check_sub_insert (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function pt_check_truncate
static void pt_check_truncate (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_unique_attr
static void pt_check_unique_attr (
PARSER_CONTEXT * parser,
const char * entity_name,
PT_NODE * att,
PT_NODE_TYPE att_type
)
function pt_check_update_stats
static void pt_check_update_stats (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_user_exists
static DB_OBJECT * pt_check_user_exists (
PARSER_CONTEXT * parser,
PT_NODE * cls_ref
)
function pt_check_vacuum
static void pt_check_vacuum (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_vclass_attr_qspec_compatible
static PT_UNION_COMPATIBLE pt_check_vclass_attr_qspec_compatible (
PARSER_CONTEXT * parser,
PT_NODE * attr,
PT_NODE * col
)
function pt_check_vclass_query_spec
static PT_NODE * pt_check_vclass_query_spec (
PARSER_CONTEXT * parser,
PT_NODE * qry,
PT_NODE * attrs,
const char * self,
const bool do_semantic_check
)
function pt_check_vclass_union_spec
static PT_NODE * pt_check_vclass_union_spec (
PARSER_CONTEXT * parser,
PT_NODE * qry,
PT_NODE * attrds
)
function pt_check_where
static PT_NODE * pt_check_where (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_with_clause
static PT_NODE * pt_check_with_clause (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_check_with_info
static PT_NODE * pt_check_with_info (
PARSER_CONTEXT * parser,
PT_NODE * node,
SEMANTIC_CHK_INFO * info
)
function pt_check_xaction_list
static void pt_check_xaction_list (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_class_compatible
static int pt_class_compatible (
PARSER_CONTEXT * parser,
const PT_NODE * class1,
const PT_NODE * class2,
bool view_definition_context
)
function pt_coerce_insert_values
static PT_NODE * pt_coerce_insert_values (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function pt_coerce_partition_value_with_data_type
static int pt_coerce_partition_value_with_data_type (
PARSER_CONTEXT * parser,
PT_NODE * value,
PT_NODE * data_type
)
function pt_collection_assignable
static int pt_collection_assignable (
PARSER_CONTEXT * parser,
const PT_NODE * d_col,
const PT_NODE * s_col
)
function pt_collection_compatible
static int pt_collection_compatible (
PARSER_CONTEXT * parser,
const PT_NODE * col1,
const PT_NODE * col2,
bool view_definition_context
)
function pt_combine_compatible_info
static bool pt_combine_compatible_info (
PARSER_CONTEXT * parser,
SEMAN_COMPATIBLE_INFO * cinfo1,
SEMAN_COMPATIBLE_INFO * cinfo2,
PT_NODE * att1,
PT_NODE * att2,
int index
)
function pt_count_iso_nodes
static PT_NODE * pt_count_iso_nodes (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_count_time_nodes
static PT_NODE * pt_count_time_nodes (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_derive_attribute
static PT_NODE * pt_derive_attribute (
PARSER_CONTEXT * parser,
PT_NODE * c
)
function pt_expand_isnull_preds
static PT_NODE * pt_expand_isnull_preds (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_expand_isnull_preds_helper
static PT_NODE * pt_expand_isnull_preds_helper (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_find_aggregate_analytic_in_where
static PT_NODE * pt_find_aggregate_analytic_in_where (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_find_aggregate_analytic_post
static PT_NODE * pt_find_aggregate_analytic_post (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_find_aggregate_analytic_pre
static PT_NODE * pt_find_aggregate_analytic_pre (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_find_aggregate_function
static PT_NODE * pt_find_aggregate_function (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_find_class
static DB_OBJECT * pt_find_class (
PARSER_CONTEXT * parser,
PT_NODE * p,
bool for_update
)
function pt_find_default_expression
static PT_NODE * pt_find_default_expression (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_find_matching_sort_spec
static PT_NODE * pt_find_matching_sort_spec (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * spec_list,
PT_NODE * select_list
)
function pt_find_method_call
static PT_NODE * pt_find_method_call (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_find_partition_column_count
static int pt_find_partition_column_count (
PT_NODE * expr,
PT_NODE ** name_node
)
function pt_find_partition_column_count_func
static int pt_find_partition_column_count_func (
PT_NODE * func,
PT_NODE ** name_node
)
function pt_find_query
static PT_NODE * pt_find_query (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_gen_isnull_preds
static PT_NODE * pt_gen_isnull_preds (
PARSER_CONTEXT * parser,
PT_NODE * pred,
PT_CHAIN_INFO * chain
)
function pt_get_assignments
static PT_NODE * pt_get_assignments (
PT_NODE * node,
bool * dblinked
)
function pt_get_attributes
static PT_NODE * pt_get_attributes (
PARSER_CONTEXT * parser,
const DB_OBJECT * c
)
function pt_get_class_type
static PT_MISC_TYPE pt_get_class_type (
PARSER_CONTEXT * parser,
const DB_OBJECT * cls
)
function pt_get_common_type_for_union
static PT_NODE * pt_get_common_type_for_union (
PARSER_CONTEXT * parser,
PT_NODE * att1,
PT_NODE * att2,
SEMAN_COMPATIBLE_INFO * cinfo,
int idx,
bool * need_cast
)
function pt_get_compatible_info
static SEMAN_COMPATIBLE_INFO * pt_get_compatible_info (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * select_list1,
PT_NODE * select_list2,
bool * need_cast
)
function pt_get_compatible_info_from_node
static void pt_get_compatible_info_from_node (
const PT_NODE * att,
SEMAN_COMPATIBLE_INFO * cinfo
)
function pt_get_select_list_coll_compat
static PT_UNION_COMPATIBLE pt_get_select_list_coll_compat (
PARSER_CONTEXT * parser,
PT_NODE * query,
SEMAN_COMPATIBLE_INFO * cinfo,
int num_cinfo
)
function pt_get_type_enum_of_table_column
static PT_TYPE_ENUM pt_get_type_enum_of_table_column (
PARSER_CONTEXT * parser,
PT_NODE * data_type
)
function pt_get_type_name
static const char * pt_get_type_name (
PT_TYPE_ENUM type_enum,
PT_NODE * data_type
)
function pt_get_values_query_compatible_info
static SEMAN_COMPATIBLE_INFO * pt_get_values_query_compatible_info (
PARSER_CONTEXT * parser,
PT_NODE * node,
bool * need_cast
)
function pt_has_parameters
static bool pt_has_parameters (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function pt_is_compatible_type
static bool pt_is_compatible_type (
const PT_TYPE_ENUM arg1_type,
const PT_TYPE_ENUM arg2_type
)
function pt_is_compatible_without_cast
static bool pt_is_compatible_without_cast (
PARSER_CONTEXT * parser,
SEMAN_COMPATIBLE_INFO * dest_sci,
PT_NODE * src,
bool * is_cast_allowed
)
function pt_is_defined_class
static bool pt_is_defined_class (
PARSER_CONTEXT * parser,
PT_NODE * data_type
)
function pt_is_parameter_node
static PT_NODE * pt_is_parameter_node (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_is_real_class_of_vclass
static int pt_is_real_class_of_vclass (
PARSER_CONTEXT * parser,
const PT_NODE * s_class,
const PT_NODE * d_class
)
function pt_is_type_supported_by_sp
static bool pt_is_type_supported_by_sp (
PARSER_CONTEXT * parser,
PT_TYPE_ENUM & type_enum,
PT_NODE * data_type
)
function pt_json_str_codeset_normalization
static int pt_json_str_codeset_normalization (
PARSER_CONTEXT * parser,
REFPTR ( char , c)
)
function pt_make_cast_with_compatible_info
static PT_NODE * pt_make_cast_with_compatible_info (
PARSER_CONTEXT * parser,
PT_NODE * att,
PT_NODE * next_att,
SEMAN_COMPATIBLE_INFO * cinfo,
bool * new_cast_added
)
function pt_make_default_value
static PT_NODE * pt_make_default_value (
PARSER_CONTEXT * parser,
const char * class_name,
const char * attr_name
)
function pt_make_parameter
static PT_NODE * pt_make_parameter (
PARSER_CONTEXT * parser,
const char * name,
int is_out_parameter
)
function pt_mark_union_leaf_nodes
static PT_NODE * pt_mark_union_leaf_nodes (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_normalize_path
static int pt_normalize_path (
PARSER_CONTEXT * parser,
REFPTR ( char , c)
)
function pt_number_of_attributes
static int pt_number_of_attributes (
PARSER_CONTEXT * parser,
PT_NODE * stmt,
PT_NODE ** attrs
)
function pt_objects_assignable
static int pt_objects_assignable (
PARSER_CONTEXT * parser,
const PT_NODE * d_class_dt,
const PT_NODE * s_class
)
function pt_path_chain
static PT_NODE * pt_path_chain (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_remove_unusable_sort_specs
static PT_NODE * pt_remove_unusable_sort_specs (
PARSER_CONTEXT * parser,
PT_NODE * list
)
function pt_replace_names_in_update_values
static PT_NODE * pt_replace_names_in_update_values (
PARSER_CONTEXT * parser,
PT_NODE * update
)
function pt_replace_referenced_attributes
static PT_NODE * pt_replace_referenced_attributes (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_resolve_default_external
static void pt_resolve_default_external (
PARSER_CONTEXT * parser,
PT_NODE * alter
)
function pt_resolve_delete_external
static void pt_resolve_delete_external (
PARSER_CONTEXT * parser,
PT_NODE * delete
)
function pt_resolve_insert_external
static void pt_resolve_insert_external (
PARSER_CONTEXT * parser,
PT_NODE * insert
)
function pt_resolve_sort_spec_expr
static PT_NODE * pt_resolve_sort_spec_expr (
PARSER_CONTEXT * parser,
PT_NODE * sort_spec,
PT_NODE * select_list
)
function pt_resolve_update_external
static void pt_resolve_update_external (
PARSER_CONTEXT * parser,
PT_NODE * update
)
function pt_semantic_check_local
static PT_NODE * pt_semantic_check_local (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_to_compatible_cast
static PT_NODE * pt_to_compatible_cast (
PARSER_CONTEXT * parser,
PT_NODE * node,
SEMAN_COMPATIBLE_INFO * cinfo,
int num_cinfo
)
function pt_type_assignable
static int pt_type_assignable (
PARSER_CONTEXT * parser,
const PT_NODE * d_type,
const PT_NODE * s_type
)
function pt_type_cast_vclass_query_spec
static PT_NODE * pt_type_cast_vclass_query_spec (
PARSER_CONTEXT * parser,
PT_NODE * qry,
PT_NODE * attrs
)
function pt_union_compatible
static PT_UNION_COMPATIBLE pt_union_compatible (
PARSER_CONTEXT * parser,
PT_NODE * item1,
PT_NODE * item2,
bool view_definition_context,
bool * is_object_type
)
function pt_update_compatible_info
static bool pt_update_compatible_info (
PARSER_CONTEXT * parser,
SEMAN_COMPATIBLE_INFO * cinfo,
PT_TYPE_ENUM common_type,
SEMAN_COMPATIBLE_INFO * att1_info,
SEMAN_COMPATIBLE_INFO * att2_info
)
function pt_value_links_add
static int pt_value_links_add (
PARSER_CONTEXT * parser,
PT_NODE * val,
PT_NODE * parts,
PT_VALUE_LINKS * ptl
)
function pt_values_query_to_compatible_cast
static PT_NODE * pt_values_query_to_compatible_cast (
PARSER_CONTEXT * parser,
PT_NODE * node,
SEMAN_COMPATIBLE_INFO * cinfo,
int num_cinfo
)
function pt_vclass_compatible
static bool pt_vclass_compatible (
PARSER_CONTEXT * parser,
const PT_NODE * att,
const PT_NODE * qcol
)
Macro Definition Documentation
define PT_CHAIN_LENGTH
#define PT_CHAIN_LENGTH `10`
The documentation for this class was generated from the following file cubrid/src/parser/semantic_check.c