Skip to content

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

Type Name
struct PT_CHAIN_INFO
struct PT_VALUE_LINKS
struct db_value_plist
struct seman_compatible_info

Public Types

Type Name
typedef struct db_value_plist DB_VALUE_PLIST
enum PT_CAST_VAL
enum PT_UNION_COMPATIBLE
typedef struct PT_VALUE_LINKS PT_VALUE_LINKS
enum RANGE_MIN_MAX_ENUM
typedef struct seman_compatible_info SEMAN_COMPATIBLE_INFO

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

Type Name
define PT_CHAIN_LENGTH 10

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 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
) 

function pt_count_input_markers

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
) 

function pt_no_attr_and_meta_attr_updates

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
) 

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