Skip to content

File execute_schema.c

FileList > cubrid > src > query > execute_schema.c

Go to the source code of this file

  • #include "config.h"
  • #include <stdarg.h>
  • #include <ctype.h>
  • #include <assert.h>
  • #include "authenticate.h"
  • #include "error_manager.h"
  • #include "parser.h"
  • #include "parser_message.h"
  • #include "db.h"
  • #include "dbi.h"
  • #include "semantic_check.h"
  • #include "execute_schema.h"
  • #include "execute_statement.h"
  • #include "schema_manager.h"
  • #include "transaction_cl.h"
  • #include "system_parameter.h"
  • #include "xasl_generation.h"
  • #include "memory_alloc.h"
  • #include "schema_system_catalog_constants.h"
  • #include "transform.h"
  • #include "set_object.h"
  • #include "object_accessor.h"
  • #include "object_primitive.h"
  • #include "object_representation.h"
  • #include "memory_hash.h"
  • #include "locator_cl.h"
  • #include "network_interface_cl.h"
  • #include "view_transform.h"
  • #include "xasl_to_stream.h"
  • #include "parser_support.h"
  • #include "dbtype.h"
  • #include "jsp_cl.h"
  • #include "msgcat_glossary.hpp"

Classes

Type Name
struct db_value_slist
struct part_class_info
struct sm_attr_properties_chg
struct sm_partition_alter_info

Public Types

Type Name
typedef struct db_value_slist DB_VALUE_SLIST
enum DO_INDEX
typedef struct part_class_info PART_CLASS_INFO
enum SM_ATTR_CHG_SOL
typedef struct sm_attr_properties_chg SM_ATTR_PROP_CHG
typedef struct sm_partition_alter_info SM_PARTITION_ALTER_INFO
enum execute__schema_8c_1a1812ab31015cef0a41c6d4f3ae07f13d
enum execute__schema_8c_1af38129fd1797a5cfd7d746065784a44f

Public Attributes

Type Name
int ib_thread_count = 0

Public Functions

Type Name
int do_add_attributes (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * atts, PT_NODE * constraints, DB_QUERY_TYPE * create_select_columns)
int do_add_constraints (DB_CTMPL * ctemplate, PT_NODE * constraints)
int do_add_method_files (const PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * method_files)
int do_add_methods (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * methods)
int do_add_queries (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, const PT_NODE * queries)
int do_add_resolutions (const PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, const PT_NODE * resolution)
int do_add_supers (const PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, const PT_NODE * supers)
int do_alter (PARSER_CONTEXT * parser, PT_NODE * alter)
int do_alter_index (PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_alter_user (const PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_check_fk_constraints (DB_CTMPL * ctemplate, PT_NODE * constraints)
int do_check_partitioned_class (DB_OBJECT * classop, int check_map, char * keyattr)
int do_check_rows_for_null (MOP class_mop, const char * att_name, bool * has_nulls)
int do_create_entity (PARSER_CONTEXT * parser, PT_NODE * node)
int do_create_index (PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_create_local (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * pt_node, DB_QUERY_TYPE * create_select_columns)
int do_create_user (const PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_drop (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_drop_index (PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_drop_partition_list (MOP class_, PT_NODE * name_list, DB_CTMPL * tmpl)
int do_drop_partitioned_class (MOP class_, int drop_sub_flag, bool is_cascade_constraints)
int do_drop_user (const PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_get_partition_keycol (char * keycol, MOP class_)
int do_get_partition_parent (DB_OBJECT *const classop, MOP *const parentop)
int do_get_partition_size (MOP class_)
int do_grant (const PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_is_partitioned_subclass (int * is_partitioned, const char * classname, char * keyattr)
int do_recreate_filter_index_constr (PARSER_CONTEXT * parser, SM_PREDICATE_INFO * filter_index_info, PT_NODE * alter, const char * src_cls_name, const char * new_cls_name)
int do_recreate_func_index_constr (PARSER_CONTEXT * parser, SM_CONSTRAINT_INFO * constr, SM_FUNCTION_INFO * func_index_info, PT_NODE * alter, const char * src_cls_name, const char * new_cls_name)
int do_rename (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_rename_partition (MOP old_class, const char * newname)
int do_revoke (const PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_set_object_id (const PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * object_id_list)
int do_truncate (PARSER_CONTEXT * parser, PT_NODE * statement)
int ib_get_thread_count ()

Public Static Functions

Type Name
int acquire_locks_for_multiple_rename (const PT_NODE * statement)
int add_foreign_key (DB_CTMPL * ctemplate, const PT_NODE * cnstr, const char ** att_names)
int add_query_to_virtual_class (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, const PT_NODE * queries)
int add_union_query (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, const PT_NODE * query)
int adjust_partition_range (DB_OBJLIST * objs)
int adjust_partition_size (MOP class_, DB_CTMPL * tmpl)
int build_att_coll_change_map (TP_DOMAIN * curr_domain, TP_DOMAIN * req_domain, SM_ATTR_PROP_CHG * attr_chg_properties)
int build_att_type_change_map (TP_DOMAIN * curr_domain, TP_DOMAIN * req_domain, SM_ATTR_PROP_CHG * attr_chg_properties)
int build_attr_change_map (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * attr_def, PT_NODE * attr_old_name, PT_NODE * constraints, SM_ATTR_PROP_CHG * attr_chg_properties)
int check_att_chg_allowed (const char * att_name, const PT_TYPE_ENUM t, const SM_ATTR_PROP_CHG * attr_chg_prop, SM_ATTR_CHG_SOL chg_how, bool log_error_allowed, bool * new_attempt)
int check_change_attribute (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * attribute, PT_NODE * old_name_node, PT_NODE ** pointer_constraints, SM_ATTR_PROP_CHG * attr_chg_prop, SM_ATTR_CHG_SOL * change_mode)
int check_change_class_collation (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_ALTER_INFO * alter, bool * need_update, int * collation_id)
int check_default_on_update_clause (PARSER_CONTEXT * parser, PT_NODE * attribute)
SM_FUNCTION_INFO * compile_partition_expression (PARSER_CONTEXT * parser, PT_NODE * entity_name, PT_NODE * pinfo)
int create_or_drop_index_helper (PARSER_CONTEXT * parser, const char *const constraint_name, const bool is_reverse, const bool is_unique, const PT_INDEX_INFO * idx_info, DB_OBJECT *const obj, DO_INDEX do_index)
PT_NODE * create_select_to_insert_into (PARSER_CONTEXT * parser, const char * class_name, PT_NODE * create_select, PT_CREATE_SELECT_ACTION create_select_action, DB_QUERY_TYPE * query_columns)
int do_add_attribute (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * atts, PT_NODE * constraints, bool error_on_not_normal)
int do_add_attribute_from_select_column (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, DB_QUERY_TYPE * column)
int do_alter_change_auto_increment (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_change_col_comment (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_change_default_cs_coll (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_change_owner (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_change_tbl_comment (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_clause_add_index (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_clause_change_attribute (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_clause_drop_index (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_clause_rename_entity (PARSER_CONTEXT *const parser, PT_NODE *const alter)
int do_alter_index_comment (PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_alter_index_rebuild (PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_alter_index_status (PARSER_CONTEXT * parser, const PT_NODE * statement)
int do_alter_one_clause_with_template (PARSER_CONTEXT * parser, PT_NODE * alter)
int do_alter_partitioning_post (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_alter_partitioning_pre (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_analyze_partition (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_change_att_schema_only (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, PT_NODE * attribute, PT_NODE * old_name_node, PT_NODE * constraints, SM_ATTR_PROP_CHG * attr_chg_prop, SM_ATTR_CHG_SOL * change_mode)
int do_check_fk_constraints_internal (DB_CTMPL * ctemplate, PT_NODE * constraints, bool is_partitioned)
int do_coalesce_partition_post (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_coalesce_partition_pre (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_copy_indexes (PARSER_CONTEXT * parser, MOP classmop, SM_CLASS * src_class)
int do_create_partition (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_create_partition_constraint (PT_NODE * alter, SM_CLASS * root_class, SM_CLASS_CONSTRAINT * constraint, SM_PARTITION_ALTER_INFO * pinfo)
int do_create_partition_constraints (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_drop_att_constraints (MOP class_mop, SM_CONSTRAINT_INFO * constr_info_list)
int do_drop_saved_indexes (MOP classmop, SM_CONSTRAINT_INFO * index_save_info)
int do_find_auto_increment_serial (MOP * auto_increment_obj, const char * class_name, const char * attr_name)
int do_promote_partition (SM_CLASS * class_)
int do_promote_partition_by_name (const char * class_name, const char * part_num, char ** partition_name)
int do_promote_partition_list (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_recreate_att_constraints (MOP class_mop, SM_CONSTRAINT_INFO * constr_info_list)
int do_recreate_renamed_class_indexes (const PARSER_CONTEXT * parser, const char *const old_class_name, const char *const class_name)
int do_recreate_saved_indexes (MOP classmop, SM_CONSTRAINT_INFO * index_save_info)
int do_redistribute_partitions_data (const char * class_name, const char * keyname, char ** promoted, int promoted_count, PT_ALTER_CODE alter_op, bool should_update, bool should_insert)
int do_remove_partition_post (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_remove_partition_pre (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_rename_internal (const char *const old_name, const char *const new_name)
int do_reorganize_partition_post (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_reorganize_partition_pre (PARSER_CONTEXT * parser, PT_NODE * alter, SM_PARTITION_ALTER_INFO * pinfo)
int do_run_update_query_for_class (char * query, MOP class_mop, int * row_count)
int do_run_update_query_for_new_default_expression_fields (PARSER_CONTEXT * parser, PT_NODE * alter, PT_NODE * attr_list, int attr_count, MOP class_mop)
int do_run_update_query_for_new_notnull_fields (PARSER_CONTEXT * parser, PT_NODE * alter, PT_NODE * attr_list, int attr_count, MOP class_mop)
int do_run_upgrade_instances_domain (PARSER_CONTEXT * parser, OID * p_class_oid, int att_id)
int do_save_all_indexes (MOP classmop, SM_CONSTRAINT_INFO ** saved_index_info_listpp)
int do_set_auto_increment (PARSER_CONTEXT * parser, DB_CTMPL * ctemplate, const char * attr_name, PT_NODE * attribute, SM_ATTRIBUTE ** attr)
int do_update_new_cols_with_default_expression (PARSER_CONTEXT * parser, PT_NODE * alter, MOP class_mop)
int do_update_new_notnull_cols_without_default (PARSER_CONTEXT * parser, PT_NODE * alter, MOP class_mop)
int drop_class_name (const char * name, bool is_cascade_constraints)
int execute_create_select_query (PARSER_CONTEXT * parser, const char *const class_name, PT_NODE * create_select, PT_CREATE_SELECT_ACTION create_select_action, DB_QUERY_TYPE * query_columns, PT_NODE * flagged_statement)
int get_att_default_from_def (PARSER_CONTEXT * parser, PT_NODE * attribute, DB_VALUE ** default_value, const char * classname)
int get_att_order_from_def (PT_NODE * attribute, bool * ord_first, const char ** ord_after_name)
const char * get_attr_name (PT_NODE * attribute)
PT_NODE * get_attribute_with_name (PT_NODE * atts, const char * name)
const char * get_hard_default_for_type (PT_TYPE_ENUM type)
int get_index_type_qualifiers (MOP obj, bool * is_reverse, bool * is_unique, const char * index_name)
DB_CONSTRAINT_TYPE get_reverse_unique_index_type (const bool is_reverse, const bool is_unique)
bool is_att_change_needed (const SM_ATTR_PROP_CHG * attr_chg_properties)
bool is_att_prop_set (const int prop, const int value)
bool is_att_property_structure_checked (const SM_ATTR_PROP_CHG * attr_chg_properties)
bool is_attribute_primary_key (const char * class_name, const char * attr_name)
int lob_process_dir_add_attr (SM_CLASS * class_, int old_att_count)
int lob_process_dir_drop_attr (SM_CLASS * class_, const char * attr_name)
SM_FOREIGN_KEY_ACTION map_pt_to_sm_action (const PT_MISC_TYPE action)
SM_FUNCTION_INFO * pt_node_to_function_index (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * sort_spec, DO_INDEX do_index)
SM_PARTITION * pt_node_to_partition_info (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * entity_name, char * class_name, char * partition_name, DB_VALUE * minval)
PT_NODE * pt_replace_names_index_expr (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
DB_QUERY_TYPE * query_get_column_with_name (DB_QUERY_TYPE * query_columns, const char * name)
PT_NODE * replace_names_alter_chg_attr (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
void reset_att_property_structure (SM_ATTR_PROP_CHG * attr_chg_properties)
int save_constraint_info_from_pt_node (SM_CONSTRAINT_INFO ** save_info, const PT_NODE *const pt_constr)
int sort_constr_info_list (SM_CONSTRAINT_INFO ** source)
int truncate_class_name (const char * name, const bool is_cascade)
int update_locksets_for_multiple_rename (const char * class_name, int * num_mops, MOP * mop_set, int * num_names, char ** name_set, bool error_on_misssing_class)
int validate_attribute_domain (PARSER_CONTEXT * parser, PT_NODE * attribute, const bool check_zero_precision)

Macros

Type Name
define GET_NAME (n) (([**char**](broker__monitor_8c.md#function-timeout) \*) (n)-&gt;info.name.original)
define GET_STRING (n) (([**char**](broker__monitor_8c.md#function-timeout) \*) (n)-&gt;info.value.data\_value.str-&gt;bytes)
define IS_NAME (n) ((n)-&gt;node\_type == PT\_NAME)
define IS_STRING (n) /* multi line expression */
define MAX_FILTER_PREDICATE_STRING_LENGTH (1073741823)
define MAX_FUNCTION_EXPRESSION_STRING_LENGTH 1024
define QUERY_MAX_SIZE 1024 \* 1024
define UNIQUE_SAVEPOINT_ADD_ATTR_MTHD "aDDaTTRmTHD"
define UNIQUE_SAVEPOINT_ALTER_INDEX "aLTERiNDEX"
define UNIQUE_SAVEPOINT_ALTER_USER_ENTITY "aLTERuSEReNTITY"
define UNIQUE_SAVEPOINT_CHANGE_ATTR "cHANGEaTTR"
define UNIQUE_SAVEPOINT_CHANGE_COLUMN_COMMENT "cHANGEcOLUMNcOMMENT"
define UNIQUE_SAVEPOINT_CHANGE_DEF_COLL "cHANGEdEFAULTcOLL"
define UNIQUE_SAVEPOINT_CHANGE_TBL_COMMENT "cHANGEtBLcOMMENT"
define UNIQUE_SAVEPOINT_CREATE_ENTITY "cREATEeNTITY"
define UNIQUE_SAVEPOINT_CREATE_USER_ENTITY "cREATEuSEReNTITY"
define UNIQUE_SAVEPOINT_DROP_ENTITY "dROPeNTITY"
define UNIQUE_SAVEPOINT_DROP_USER_ENTITY "dROPuSEReNTITY"
define UNIQUE_SAVEPOINT_GRANT_USER "gRANTuSER"
define UNIQUE_SAVEPOINT_MULTIPLE_ALTER "mULTIPLEaLTER"
define UNIQUE_SAVEPOINT_RENAME "rENAME"
define UNIQUE_SAVEPOINT_REPLACE_VIEW "rEPlACE"
define UNIQUE_SAVEPOINT_REVOKE_USER "rEVOKEuSER"
define UNIQUE_SAVEPOINT_TRUNCATE "tRUnCATE"

Public Types Documentation

typedef DB_VALUE_SLIST

typedef struct db_value_slist DB_VALUE_SLIST;

enum DO_INDEX

enum DO_INDEX {
    DO_INDEX_CREATE,
    DO_INDEX_DROP
};

typedef PART_CLASS_INFO

typedef struct part_class_info PART_CLASS_INFO;

enum SM_ATTR_CHG_SOL

enum SM_ATTR_CHG_SOL {
    SM_ATTR_CHG_NOT_NEEDED = 0,
    SM_ATTR_CHG_ONLY_SCHEMA = 1,
    SM_ATTR_CHG_WITH_ROW_UPDATE = 2,
    SM_ATTR_CHG_BEST_EFFORT = 3
};

typedef SM_ATTR_PROP_CHG

typedef struct sm_attr_properties_chg SM_ATTR_PROP_CHG;

typedef SM_PARTITION_ALTER_INFO

typedef struct sm_partition_alter_info SM_PARTITION_ALTER_INFO;

enum execute__schema_8c_1a1812ab31015cef0a41c6d4f3ae07f13d

enum execute__schema_8c_1a1812ab31015cef0a41c6d4f3ae07f13d {
    P_NAME = 0,
    P_NOT_NULL,
    P_DEFAULT_VALUE,
    P_ON_UPDATE_EXPR,
    P_CONSTR_CHECK,
    P_DEFFERABLE,
    P_ORDER,
    P_AUTO_INCR,
    P_CONSTR_FK,
    P_S_CONSTR_PK,
    P_M_CONSTR_PK,
    P_S_CONSTR_UNI,
    P_M_CONSTR_UNI,
    P_CONSTR_NON_UNI,
    P_PREFIX_INDEX,
    P_TYPE,
    P_IS_PARTITION_COL,
    P_COMMENT,
    NUM_ATT_CHG_PROP
};

enum execute__schema_8c_1af38129fd1797a5cfd7d746065784a44f

enum execute__schema_8c_1af38129fd1797a5cfd7d746065784a44f {
    ATT_CHG_PROPERTY_PRESENT_OLD = 0x1,
    ATT_CHG_PROPERTY_PRESENT_NEW = 0x2,
    ATT_CHG_PROPERTY_LOST = 0x4,
    ATT_CHG_PROPERTY_GAINED = 0x8,
    ATT_CHG_PROPERTY_UNCHANGED = 0x10,
    ATT_CHG_PROPERTY_DIFF = 0x20,
    ATT_CHG_TYPE_PREC_INCR = 0x100,
    ATT_CHG_TYPE_SET_CLS_COMPAT = 0x200,
    ATT_CHG_TYPE_UPGRADE = 0x400,
    ATT_CHG_TYPE_NEED_ROW_CHECK = 0x800,
    ATT_CHG_TYPE_PSEUDO_UPGRADE = 0x1000,
    ATT_CHG_TYPE_NOT_SUPPORTED_WITH_CFG = 0x2000,
    ATT_CHG_TYPE_NOT_SUPPORTED = 0x4000,
    ATT_CHG_PROPERTY_NOT_CHECKED = 0x10000
};

Public Attributes Documentation

variable ib_thread_count

int ib_thread_count;

Public Functions Documentation

function do_add_attributes

int do_add_attributes (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * atts,
    PT_NODE * constraints,
    DB_QUERY_TYPE * create_select_columns
) 

function do_add_constraints

int do_add_constraints (
    DB_CTMPL * ctemplate,
    PT_NODE * constraints
) 

function do_add_method_files

int do_add_method_files (
    const  PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * method_files
) 

function do_add_methods

int do_add_methods (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * methods
) 

function do_add_queries

int do_add_queries (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    const  PT_NODE * queries
) 

function do_add_resolutions

int do_add_resolutions (
    const  PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    const  PT_NODE * resolution
) 

function do_add_supers

int do_add_supers (
    const  PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    const  PT_NODE * supers
) 

function do_alter

int do_alter (
    PARSER_CONTEXT * parser,
    PT_NODE * alter
) 

function do_alter_index

int do_alter_index (
    PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_alter_user

int do_alter_user (
    const  PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_check_fk_constraints

int do_check_fk_constraints (
    DB_CTMPL * ctemplate,
    PT_NODE * constraints
) 

function do_check_partitioned_class

int do_check_partitioned_class (
    DB_OBJECT * classop,
    int check_map,
    char * keyattr
) 

function do_check_rows_for_null

int do_check_rows_for_null (
    MOP class_mop,
    const  char * att_name,
    bool * has_nulls
) 

function do_create_entity

int do_create_entity (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function do_create_index

int do_create_index (
    PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_create_local

int do_create_local (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * pt_node,
    DB_QUERY_TYPE * create_select_columns
) 

function do_create_user

int do_create_user (
    const  PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_drop

int do_drop (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_drop_index

int do_drop_index (
    PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_drop_partition_list

int do_drop_partition_list (
    MOP class_,
    PT_NODE * name_list,
    DB_CTMPL * tmpl
) 

function do_drop_partitioned_class

int do_drop_partitioned_class (
    MOP class_,
    int drop_sub_flag,
    bool is_cascade_constraints
) 

function do_drop_user

int do_drop_user (
    const  PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_get_partition_keycol

int do_get_partition_keycol (
    char * keycol,
    MOP class_
) 

function do_get_partition_parent

int do_get_partition_parent (
    DB_OBJECT * const classop,
    MOP * const parentop
) 

function do_get_partition_size

int do_get_partition_size (
    MOP class_
) 

function do_grant

int do_grant (
    const  PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_is_partitioned_subclass

int do_is_partitioned_subclass (
    int * is_partitioned,
    const  char * classname,
    char * keyattr
) 

function do_recreate_filter_index_constr

int do_recreate_filter_index_constr (
    PARSER_CONTEXT * parser,
    SM_PREDICATE_INFO * filter_index_info,
    PT_NODE * alter,
    const  char * src_cls_name,
    const  char * new_cls_name
) 

function do_recreate_func_index_constr

int do_recreate_func_index_constr (
    PARSER_CONTEXT * parser,
    SM_CONSTRAINT_INFO * constr,
    SM_FUNCTION_INFO * func_index_info,
    PT_NODE * alter,
    const  char * src_cls_name,
    const  char * new_cls_name
) 

function do_rename

int do_rename (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_rename_partition

int do_rename_partition (
    MOP old_class,
    const  char * newname
) 

function do_revoke

int do_revoke (
    const  PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_set_object_id

int do_set_object_id (
    const  PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * object_id_list
) 

function do_truncate

int do_truncate (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function ib_get_thread_count

int ib_get_thread_count () 

Public Static Functions Documentation

function acquire_locks_for_multiple_rename

static int acquire_locks_for_multiple_rename (
    const  PT_NODE * statement
) 

function add_foreign_key

static int add_foreign_key (
    DB_CTMPL * ctemplate,
    const  PT_NODE * cnstr,
    const  char ** att_names
) 

function add_query_to_virtual_class

static int add_query_to_virtual_class (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    const  PT_NODE * queries
) 

function add_union_query

static int add_union_query (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    const  PT_NODE * query
) 

function adjust_partition_range

static int adjust_partition_range (
    DB_OBJLIST * objs
) 

function adjust_partition_size

static int adjust_partition_size (
    MOP class_,
    DB_CTMPL * tmpl
) 

function build_att_coll_change_map

static int build_att_coll_change_map (
    TP_DOMAIN * curr_domain,
    TP_DOMAIN * req_domain,
    SM_ATTR_PROP_CHG * attr_chg_properties
) 

function build_att_type_change_map

static int build_att_type_change_map (
    TP_DOMAIN * curr_domain,
    TP_DOMAIN * req_domain,
    SM_ATTR_PROP_CHG * attr_chg_properties
) 

function build_attr_change_map

static int build_attr_change_map (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * attr_def,
    PT_NODE * attr_old_name,
    PT_NODE * constraints,
    SM_ATTR_PROP_CHG * attr_chg_properties
) 

function check_att_chg_allowed

static int check_att_chg_allowed (
    const  char * att_name,
    const  PT_TYPE_ENUM t,
    const  SM_ATTR_PROP_CHG * attr_chg_prop,
    SM_ATTR_CHG_SOL chg_how,
    bool log_error_allowed,
    bool * new_attempt
) 

function check_change_attribute

static int check_change_attribute (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * attribute,
    PT_NODE * old_name_node,
    PT_NODE ** pointer_constraints,
    SM_ATTR_PROP_CHG * attr_chg_prop,
    SM_ATTR_CHG_SOL * change_mode
) 

function check_change_class_collation

static int check_change_class_collation (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_ALTER_INFO * alter,
    bool * need_update,
    int * collation_id
) 

function check_default_on_update_clause

static int check_default_on_update_clause (
    PARSER_CONTEXT * parser,
    PT_NODE * attribute
) 

function compile_partition_expression

static SM_FUNCTION_INFO * compile_partition_expression (
    PARSER_CONTEXT * parser,
    PT_NODE * entity_name,
    PT_NODE * pinfo
) 

function create_or_drop_index_helper

static int create_or_drop_index_helper (
    PARSER_CONTEXT * parser,
    const  char * const constraint_name,
    const  bool is_reverse,
    const  bool is_unique,
    const  PT_INDEX_INFO * idx_info,
    DB_OBJECT * const obj,
    DO_INDEX do_index
) 

function create_select_to_insert_into

static PT_NODE * create_select_to_insert_into (
    PARSER_CONTEXT * parser,
    const  char * class_name,
    PT_NODE * create_select,
    PT_CREATE_SELECT_ACTION create_select_action,
    DB_QUERY_TYPE * query_columns
) 

function do_add_attribute

static int do_add_attribute (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * atts,
    PT_NODE * constraints,
    bool error_on_not_normal
) 

function do_add_attribute_from_select_column

static int do_add_attribute_from_select_column (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    DB_QUERY_TYPE * column
) 

function do_alter_change_auto_increment

static int do_alter_change_auto_increment (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_change_col_comment

static int do_alter_change_col_comment (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_change_default_cs_coll

static int do_alter_change_default_cs_coll (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_change_owner

static int do_alter_change_owner (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_change_tbl_comment

static int do_alter_change_tbl_comment (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_clause_add_index

static int do_alter_clause_add_index (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_clause_change_attribute

static int do_alter_clause_change_attribute (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_clause_drop_index

static int do_alter_clause_drop_index (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_clause_rename_entity

static int do_alter_clause_rename_entity (
    PARSER_CONTEXT * const parser,
    PT_NODE * const alter
) 

function do_alter_index_comment

static int do_alter_index_comment (
    PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_alter_index_rebuild

static int do_alter_index_rebuild (
    PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_alter_index_status

static int do_alter_index_status (
    PARSER_CONTEXT * parser,
    const  PT_NODE * statement
) 

function do_alter_one_clause_with_template

static int do_alter_one_clause_with_template (
    PARSER_CONTEXT * parser,
    PT_NODE * alter
) 

function do_alter_partitioning_post

static int do_alter_partitioning_post (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_alter_partitioning_pre

static int do_alter_partitioning_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_analyze_partition

static int do_analyze_partition (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_change_att_schema_only

static int do_change_att_schema_only (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    PT_NODE * attribute,
    PT_NODE * old_name_node,
    PT_NODE * constraints,
    SM_ATTR_PROP_CHG * attr_chg_prop,
    SM_ATTR_CHG_SOL * change_mode
) 

function do_check_fk_constraints_internal

static int do_check_fk_constraints_internal (
    DB_CTMPL * ctemplate,
    PT_NODE * constraints,
    bool is_partitioned
) 

function do_coalesce_partition_post

static int do_coalesce_partition_post (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_coalesce_partition_pre

static int do_coalesce_partition_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_copy_indexes

static int do_copy_indexes (
    PARSER_CONTEXT * parser,
    MOP classmop,
    SM_CLASS * src_class
) 

function do_create_partition

static int do_create_partition (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_create_partition_constraint

static int do_create_partition_constraint (
    PT_NODE * alter,
    SM_CLASS * root_class,
    SM_CLASS_CONSTRAINT * constraint,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_create_partition_constraints

static int do_create_partition_constraints (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_drop_att_constraints

static int do_drop_att_constraints (
    MOP class_mop,
    SM_CONSTRAINT_INFO * constr_info_list
) 

function do_drop_saved_indexes

static int do_drop_saved_indexes (
    MOP classmop,
    SM_CONSTRAINT_INFO * index_save_info
) 

function do_find_auto_increment_serial

static int do_find_auto_increment_serial (
    MOP * auto_increment_obj,
    const  char * class_name,
    const  char * attr_name
) 

function do_promote_partition

static int do_promote_partition (
    SM_CLASS * class_
) 

function do_promote_partition_by_name

static int do_promote_partition_by_name (
    const  char * class_name,
    const  char * part_num,
    char ** partition_name
) 

function do_promote_partition_list

static int do_promote_partition_list (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_recreate_att_constraints

static int do_recreate_att_constraints (
    MOP class_mop,
    SM_CONSTRAINT_INFO * constr_info_list
) 

function do_recreate_renamed_class_indexes

static int do_recreate_renamed_class_indexes (
    const  PARSER_CONTEXT * parser,
    const  char * const old_class_name,
    const  char * const class_name
) 

function do_recreate_saved_indexes

static int do_recreate_saved_indexes (
    MOP classmop,
    SM_CONSTRAINT_INFO * index_save_info
) 

function do_redistribute_partitions_data

static int do_redistribute_partitions_data (
    const  char * class_name,
    const  char * keyname,
    char ** promoted,
    int promoted_count,
    PT_ALTER_CODE alter_op,
    bool should_update,
    bool should_insert
) 

function do_remove_partition_post

static int do_remove_partition_post (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_remove_partition_pre

static int do_remove_partition_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_rename_internal

static int do_rename_internal (
    const  char * const old_name,
    const  char * const new_name
) 

function do_reorganize_partition_post

static int do_reorganize_partition_post (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_reorganize_partition_pre

static int do_reorganize_partition_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    SM_PARTITION_ALTER_INFO * pinfo
) 

function do_run_update_query_for_class

static int do_run_update_query_for_class (
    char * query,
    MOP class_mop,
    int * row_count
) 

function do_run_update_query_for_new_default_expression_fields

static int do_run_update_query_for_new_default_expression_fields (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    PT_NODE * attr_list,
    int attr_count,
    MOP class_mop
) 

function do_run_update_query_for_new_notnull_fields

static int do_run_update_query_for_new_notnull_fields (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    PT_NODE * attr_list,
    int attr_count,
    MOP class_mop
) 

function do_run_upgrade_instances_domain

static int do_run_upgrade_instances_domain (
    PARSER_CONTEXT * parser,
    OID * p_class_oid,
    int att_id
) 

function do_save_all_indexes

static int do_save_all_indexes (
    MOP classmop,
    SM_CONSTRAINT_INFO ** saved_index_info_listpp
) 

function do_set_auto_increment

static int do_set_auto_increment (
    PARSER_CONTEXT * parser,
    DB_CTMPL * ctemplate,
    const  char * attr_name,
    PT_NODE * attribute,
    SM_ATTRIBUTE ** attr
) 

function do_update_new_cols_with_default_expression

static int do_update_new_cols_with_default_expression (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    MOP class_mop
) 

function do_update_new_notnull_cols_without_default

static int do_update_new_notnull_cols_without_default (
    PARSER_CONTEXT * parser,
    PT_NODE * alter,
    MOP class_mop
) 

function drop_class_name

static int drop_class_name (
    const  char * name,
    bool is_cascade_constraints
) 

function execute_create_select_query

static int execute_create_select_query (
    PARSER_CONTEXT * parser,
    const  char * const class_name,
    PT_NODE * create_select,
    PT_CREATE_SELECT_ACTION create_select_action,
    DB_QUERY_TYPE * query_columns,
    PT_NODE * flagged_statement
) 

function get_att_default_from_def

static int get_att_default_from_def (
    PARSER_CONTEXT * parser,
    PT_NODE * attribute,
    DB_VALUE ** default_value,
    const  char * classname
) 

function get_att_order_from_def

static int get_att_order_from_def (
    PT_NODE * attribute,
    bool * ord_first,
    const  char ** ord_after_name
) 

function get_attr_name

static const  char * get_attr_name (
    PT_NODE * attribute
) 

function get_attribute_with_name

static PT_NODE * get_attribute_with_name (
    PT_NODE * atts,
    const  char * name
) 

function get_hard_default_for_type

static const  char * get_hard_default_for_type (
    PT_TYPE_ENUM type
) 

function get_index_type_qualifiers

static int get_index_type_qualifiers (
    MOP obj,
    bool * is_reverse,
    bool * is_unique,
    const  char * index_name
) 

function get_reverse_unique_index_type

static DB_CONSTRAINT_TYPE get_reverse_unique_index_type (
    const  bool is_reverse,
    const  bool is_unique
) 

function is_att_change_needed

static bool is_att_change_needed (
    const  SM_ATTR_PROP_CHG * attr_chg_properties
) 

function is_att_prop_set

static bool is_att_prop_set (
    const  int prop,
    const  int value
) 

function is_att_property_structure_checked

static bool is_att_property_structure_checked (
    const  SM_ATTR_PROP_CHG * attr_chg_properties
) 

function is_attribute_primary_key

static bool is_attribute_primary_key (
    const  char * class_name,
    const  char * attr_name
) 

function lob_process_dir_add_attr

static int lob_process_dir_add_attr (
    SM_CLASS * class_,
    int old_att_count
) 

function lob_process_dir_drop_attr

static int lob_process_dir_drop_attr (
    SM_CLASS * class_,
    const  char * attr_name
) 

function map_pt_to_sm_action

static SM_FOREIGN_KEY_ACTION map_pt_to_sm_action (
    const  PT_MISC_TYPE action
) 

function pt_node_to_function_index

static SM_FUNCTION_INFO * pt_node_to_function_index (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * sort_spec,
    DO_INDEX do_index
) 

function pt_node_to_partition_info

static SM_PARTITION * pt_node_to_partition_info (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * entity_name,
    char * class_name,
    char * partition_name,
    DB_VALUE * minval
) 

function pt_replace_names_index_expr

static PT_NODE * pt_replace_names_index_expr (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * void_arg,
    int * continue_walk
) 

function query_get_column_with_name

static DB_QUERY_TYPE * query_get_column_with_name (
    DB_QUERY_TYPE * query_columns,
    const  char * name
) 

function replace_names_alter_chg_attr

static PT_NODE * replace_names_alter_chg_attr (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * void_arg,
    int * continue_walk
) 

function reset_att_property_structure

static void reset_att_property_structure (
    SM_ATTR_PROP_CHG * attr_chg_properties
) 

function save_constraint_info_from_pt_node

static int save_constraint_info_from_pt_node (
    SM_CONSTRAINT_INFO ** save_info,
    const  PT_NODE * const pt_constr
) 

function sort_constr_info_list

static int sort_constr_info_list (
    SM_CONSTRAINT_INFO ** source
) 

function truncate_class_name

static int truncate_class_name (
    const  char * name,
    const  bool is_cascade
) 

function update_locksets_for_multiple_rename

static int update_locksets_for_multiple_rename (
    const  char * class_name,
    int * num_mops,
    MOP * mop_set,
    int * num_names,
    char ** name_set,
    bool error_on_misssing_class
) 

function validate_attribute_domain

static int validate_attribute_domain (
    PARSER_CONTEXT * parser,
    PT_NODE * attribute,
    const  bool check_zero_precision
) 

Macro Definition Documentation

define GET_NAME

#define GET_NAME (
    n
) `(( char *) (n)->info.name.original)`

define GET_STRING

#define GET_STRING (
    n
) `(( char *) (n)->info.value.data_value.str->bytes)`

define IS_NAME

#define IS_NAME (
    n
) `((n)->node_type == PT_NAME )`

define IS_STRING

#define IS_STRING (
    n
) `/* multi line expression */`

define MAX_FILTER_PREDICATE_STRING_LENGTH

#define MAX_FILTER_PREDICATE_STRING_LENGTH `(1073741823)`

define MAX_FUNCTION_EXPRESSION_STRING_LENGTH

#define MAX_FUNCTION_EXPRESSION_STRING_LENGTH `1024`

define QUERY_MAX_SIZE

#define QUERY_MAX_SIZE `1024 * 1024`

define UNIQUE_SAVEPOINT_ADD_ATTR_MTHD

#define UNIQUE_SAVEPOINT_ADD_ATTR_MTHD `"aDDaTTRmTHD"`

define UNIQUE_SAVEPOINT_ALTER_INDEX

#define UNIQUE_SAVEPOINT_ALTER_INDEX `"aLTERiNDEX"`

define UNIQUE_SAVEPOINT_ALTER_USER_ENTITY

#define UNIQUE_SAVEPOINT_ALTER_USER_ENTITY `"aLTERuSEReNTITY"`

define UNIQUE_SAVEPOINT_CHANGE_ATTR

#define UNIQUE_SAVEPOINT_CHANGE_ATTR `"cHANGEaTTR"`

define UNIQUE_SAVEPOINT_CHANGE_COLUMN_COMMENT

#define UNIQUE_SAVEPOINT_CHANGE_COLUMN_COMMENT `"cHANGEcOLUMNcOMMENT"`

define UNIQUE_SAVEPOINT_CHANGE_DEF_COLL

#define UNIQUE_SAVEPOINT_CHANGE_DEF_COLL `"cHANGEdEFAULTcOLL"`

define UNIQUE_SAVEPOINT_CHANGE_TBL_COMMENT

#define UNIQUE_SAVEPOINT_CHANGE_TBL_COMMENT `"cHANGEtBLcOMMENT"`

define UNIQUE_SAVEPOINT_CREATE_ENTITY

#define UNIQUE_SAVEPOINT_CREATE_ENTITY `"cREATEeNTITY"`

define UNIQUE_SAVEPOINT_CREATE_USER_ENTITY

#define UNIQUE_SAVEPOINT_CREATE_USER_ENTITY `"cREATEuSEReNTITY"`

define UNIQUE_SAVEPOINT_DROP_ENTITY

#define UNIQUE_SAVEPOINT_DROP_ENTITY `"dROPeNTITY"`

define UNIQUE_SAVEPOINT_DROP_USER_ENTITY

#define UNIQUE_SAVEPOINT_DROP_USER_ENTITY `"dROPuSEReNTITY"`

define UNIQUE_SAVEPOINT_GRANT_USER

#define UNIQUE_SAVEPOINT_GRANT_USER `"gRANTuSER"`

define UNIQUE_SAVEPOINT_MULTIPLE_ALTER

#define UNIQUE_SAVEPOINT_MULTIPLE_ALTER `"mULTIPLEaLTER"`

define UNIQUE_SAVEPOINT_RENAME

#define UNIQUE_SAVEPOINT_RENAME `"rENAME"`

define UNIQUE_SAVEPOINT_REPLACE_VIEW

#define UNIQUE_SAVEPOINT_REPLACE_VIEW `"rEPlACE"`

define UNIQUE_SAVEPOINT_REVOKE_USER

#define UNIQUE_SAVEPOINT_REVOKE_USER `"rEVOKEuSER"`

define UNIQUE_SAVEPOINT_TRUNCATE

#define UNIQUE_SAVEPOINT_TRUNCATE `"tRUnCATE"`


The documentation for this class was generated from the following file cubrid/src/query/execute_schema.c