Skip to content

File execute_statement.c

FileList > cubrid > src > query > execute_statement.c

Go to the source code of this file

  • #include "config.h"
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <assert.h>
  • #include <unistd.h>
  • #include <libgen.h>
  • #include <sys/time.h>
  • #include <string.h>
  • #include <limits.h>
  • #include <errno.h>
  • #include <stdarg.h>
  • #include <ctype.h>
  • #include "error_manager.h"
  • #include "db.h"
  • #include "dbi.h"
  • #include "dbtype.h"
  • #include "parser.h"
  • #include "porting.h"
  • #include "schema_manager.h"
  • #include "schema_system_catalog_constants.h"
  • #include "transform.h"
  • #include "parser_message.h"
  • #include "system_parameter.h"
  • #include "execute_statement.h"
  • #include "semantic_check.h"
  • #include "execute_schema.h"
  • #include "server_interface.h"
  • #include "transaction_cl.h"
  • #include "object_print.h"
  • #include "jansson.h"
  • #include "jsp_cl.h"
  • #include "optimizer.h"
  • #include "memory_alloc.h"
  • #include "object_domain.h"
  • #include "object_primitive.h"
  • #include "object_representation.h"
  • #include "trigger_manager.h"
  • #include "release_string.h"
  • #include "object_accessor.h"
  • #include "locator_cl.h"
  • #include "authenticate.h"
  • #include "xasl_generation.h"
  • #include "virtual_object.h"
  • #include "environment_variable.h"
  • #include "set_object.h"
  • #include "intl_support.h"
  • #include "replication.h"
  • #include "view_transform.h"
  • #include "network_interface_cl.h"
  • #include "arithmetic.h"
  • #include "xasl_to_stream.h"
  • #include "query_cl.h"
  • #include "parser_support.h"
  • #include "tz_support.h"
  • #include "crypt_opfunc.h"
  • #include "method_callback.hpp"
  • #include "network.h"

Classes

Type Name
struct cst_item
struct eval_insert_value
struct odku_tuple_value_arg
struct reserved_class_info
struct serial_invariant

Public Types

Type Name
typedef struct cst_item CST_ITEM
enum CST_ITEM_ENUM
typedef struct eval_insert_value EVAL_INSERT_VALUE
typedef struct odku_tuple_value_arg ODKU_TUPLE_VALUE_ARG
typedef struct reserved_class_info RESERVED_CLASS_INFO
typedef struct serial_invariant SERIAL_INVARIANT
enum SERVER_PREFERENCE
enum UPDATE_TYPE

Public Attributes

Type Name
bool cdc_Trigger_involved = [**false**](broker__monitor_8c.md#function-timeout)
bool do_Trigger_involved

Public Static Attributes

Type Name
CST_ITEM cst_item_tbl = /* multi line expression */
int delete_savepoint_number = 0
int insert_savepoint_number = 0
int merge_savepoint_number = 0
int tr_savepoint_number = 0
int update_savepoint_number = 0

Public Functions

Type Name
int do_alter_serial (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_alter_server (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_alter_synonym (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_alter_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_attach (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_call_method (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_change_auto_increment_serial (PARSER_CONTEXT *const parser, MOP serial_obj, PT_NODE * node_new_val)
int do_check_delete_trigger (PARSER_CONTEXT * parser, PT_NODE * statement, PT_DO_FUNC * do_func)
int do_check_insert_trigger (PARSER_CONTEXT * parser, PT_NODE * statement, PT_DO_FUNC * do_func)
int do_check_internal_statements (PARSER_CONTEXT * parser, PT_NODE * statement, PT_DO_FUNC do_func)
int do_check_merge_trigger (PARSER_CONTEXT * parser, PT_NODE * statement, PT_DO_FUNC * do_func)
int do_check_update_trigger (PARSER_CONTEXT * parser, PT_NODE * statement, PT_DO_FUNC * do_func)
int do_commit (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_create_auto_increment_serial (PARSER_CONTEXT * parser, MOP * serial_object, const char * class_name, PT_NODE * att)
int do_create_serial (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_create_server (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_create_synonym (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_create_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_delete (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_drop_serial (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_drop_server (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_drop_session_variables (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_drop_synonym (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_drop_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_evaluate (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_evaluate_default_expr (PARSER_CONTEXT * parser, PT_NODE * class_name)
int do_execute_delete (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_do (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_insert (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_merge (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_prepared_subquery (PARSER_CONTEXT * parser, PT_NODE * stmt, int num_query, DB_PREPARE_SUBQUERY_INFO * info)
int do_execute_select (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_session_statement (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_statement (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_subquery (PARSER_CONTEXT * parser, PT_NODE * stmt)
int do_execute_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_execute_update (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_find_class_by_query (const char * name, char * buf, int buf_size)
int do_find_serial_by_query (const char * name, char * buf, int buf_size)
int do_find_stored_procedure_by_query (const char * name, char * buf, int buf_size)
int do_find_synonym_by_query (const char * name, char * buf, int buf_size)
int do_find_trigger_by_query (const char * name, char * buf, int buf_size)
int do_get_optimization_param (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_get_serial_cached_num (int * cached_num, MOP serial_obj)
MOP do_get_serial_obj_id (DB_IDENTIFIER * serial_obj_id, DB_OBJECT * serial_class_mop, const char * serial_name)
int do_get_stats (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_get_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_get_xaction (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_insert (PARSER_CONTEXT * parser, PT_NODE * root_statement)
int do_internal_statements (PARSER_CONTEXT * parser, PT_NODE * internal_stmt_list, const int phase)
int do_kill (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_merge (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_prepare_delete (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * parent)
int do_prepare_insert (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_prepare_merge (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_prepare_select (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_prepare_session_statement (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_prepare_statement (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_prepare_subquery (PARSER_CONTEXT * parser, PT_NODE * stmt)
int do_prepare_to_commit (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_prepare_update (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_remove_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_rename_server (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_rename_synonym (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_rename_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_replicate_statement (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_reset_auto_increment_serial (MOP serial_obj)
int do_rollback (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_savepoint (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_scope (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_select (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_select_for_ins_upd (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_names (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_optimization_param (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_query_trace (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_session_variables (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_sys_params (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_timezone (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_set_xaction (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_statement (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_statements (PARSER_CONTEXT * parser, PT_NODE * statement_list)
int do_update (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_update_auto_increment_serial_on_rename (MOP serial_obj, const char * class_name, const char * att_name)
int do_update_maxvalue_of_auto_increment_serial (PARSER_CONTEXT * parser, MOP * serial_object, const char * class_name, PT_NODE * att)
int do_update_stats (PARSER_CONTEXT * parser, PT_NODE * statement)
int get_dblink_info_from_dbserver (PARSER_CONTEXT * parser, PT_NODE * server_name, PT_NODE * owner_name, DB_VALUE * out_val)
int get_dblink_owner_name_from_dbserver (PARSER_CONTEXT * parser, PT_NODE * server_nm, PT_NODE * owner_nm, DB_VALUE * out_val)
int init_update_data (PARSER_CONTEXT * parser, PT_NODE * statement, CLIENT_UPDATE_INFO ** assigns_data, int * assigns_count, CLIENT_UPDATE_CLASS_INFO ** cls_data, int * cls_count, DB_VALUE ** values, int * values_cnt, bool has_delete)
void insert_rewrite_names_in_value_clauses (PARSER_CONTEXT * parser, PT_NODE * insert_statement)
bool is_stmt_based_repl_type (const PT_NODE * node)
int pt_check_dblink_password (PARSER_CONTEXT * parser, const char * passwd, char * cipher_buf, int ciper_buf_size)
bool pt_is_allowed_result_cache ()

Public Static Functions

Type Name
int build_xasl_for_server_delete (PARSER_CONTEXT * parser, PT_NODE * statement)
int call_method (PARSER_CONTEXT * parser, PT_NODE * statement)
int check_for_cons (PARSER_CONTEXT * parser, int * has_unique, PT_NODE ** non_null_attrs, const PT_NODE * attr_list, DB_OBJECT * class_obj)
int check_merge_trigger (PT_DO_FUNC * do_func, PARSER_CONTEXT * parser, PT_NODE * statement)
int check_missing_non_null_attrs (const PARSER_CONTEXT * parser, const PT_NODE * spec, PT_NODE * attr_list, const bool has_default_values_list)
int check_serial_invariants (SERIAL_INVARIANT * invariants, int num_invariants, int * ret_msg_id)
int check_timeout_value (PARSER_CONTEXT * parser, PT_NODE * statement, DB_VALUE * val)
int check_trigger (DB_TRIGGER_EVENT event, PT_DO_FUNC * do_func, PARSER_CONTEXT * parser, PT_NODE * statement)
DB_TRIGGER_EVENT convert_event_to_tr_event (const PT_EVENT_TYPE ev)
DB_TRIGGER_STATUS convert_misc_to_tr_status (const PT_MISC_TYPE pt_status)
DB_TRIGGER_TIME convert_misc_to_tr_time (const PT_MISC_TYPE pt_time)
int convert_speclist_to_objlist (DB_OBJLIST ** triglist, PT_NODE * specnode)
int delete_list_by_oids (PARSER_CONTEXT * parser, PT_NODE * statement, QFILE_LIST_ID * list_id, bool savepoint_started)
int delete_object_by_oid (const PARSER_CONTEXT * parser, const PT_NODE * statement)
int delete_object_tuple (DB_OBJECT * obj)
int delete_real_class (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_alter_synonym_internal (const char * synonym_name, const char * target_name, DB_OBJECT * target_owner, const char * comment, const int is_public_synonym, bool is_dblinked)
PT_NODE * do_check_cte_or_system_class_spec (PARSER_CONTEXT * parser, PT_NODE * stmt, void * arg, int * continue_walk)
int do_check_for_empty_classes_in_delete (PARSER_CONTEXT * parser, PT_NODE * statement)
PT_NODE * do_check_insert_server_allowed (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
int do_check_subquery_cache (PARSER_CONTEXT * parser, PT_NODE * statement)
void do_clear_insert_values (PARSER_CONTEXT * parser, PT_NODE * insert_statement)
PT_NODE * do_clear_subquery_cache_flag (PARSER_CONTEXT * parser, PT_NODE * stmt, void * arg, int * continue_walk)
int do_create_midxkey_for_constraint (DB_OTMPL * tmpl, SM_CLASS_CONSTRAINT * constraint, DB_VALUE * key)
PT_NODE * do_create_odku_stmt (PARSER_CONTEXT * parser, PT_NODE * insert)
int do_create_serial_internal (MOP * serial_object, const char * serial_name, DB_VALUE * start_val, DB_VALUE * inc_val, DB_VALUE * min_val, DB_VALUE * max_val, const int cyclic, const int cached_num, const int started, const char * comment, const char * class_name, const char * att_name)
int do_create_server_internal (MOP * server_object, DB_VALUE * port_no, DB_VALUE * passwd, MOP owner, const char ** attr_names, char ** attr_val, int attr_cnt)
int do_create_synonym_internal (const char * synonym_name, DB_OBJECT * synonym_owner, const char * target_name, DB_OBJECT * target_owner, const char * comment, const int is_public_synonym, const int or_replace, bool is_dblinked)
int do_drop_synonym_internal (const char * synonym_name, const int is_public_synonym, const int if_exists, DB_OBJECT * synonym_class_obj, DB_OBJECT * synonym_obj)
int do_evaluate_insert_values (PARSER_CONTEXT * parser, PT_NODE * insert_statement)
int do_find_object_type (PT_MISC_TYPE type, const char * classname, CDC_DDL_OBJECT_TYPE * objtype)
int do_find_unique_constraint_violations (DB_OTMPL * tmpl, bool for_update, OID ** oids, int * oids_count)
MOP do_get_obj_id (DB_IDENTIFIER * obj_id, DB_OBJECT * class_mop, const char * name, const char * attr_name)
MOP do_get_server_obj_id (DB_IDENTIFIER * server_obj_id, DB_OBJECT * server_class_mop, const char * server_name)
int do_insert_at_server (PARSER_CONTEXT * parser, PT_NODE * statement)
int do_insert_checks (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE ** class_, PT_NODE ** update, PT_NODE * values)
int do_insert_template (PARSER_CONTEXT * parser, DB_OTMPL ** otemplate, PT_NODE * statement, const char ** savepoint_name, int * row_count_ptr)
int do_on_duplicate_key_update (PARSER_CONTEXT * parser, DB_OTMPL * tpl, PT_NODE * update_stmt)
int do_prepare_insert_internal (PARSER_CONTEXT * parser, PT_NODE * statement)
PT_NODE * do_prepare_subquery_pre (PARSER_CONTEXT * parser, PT_NODE * stmt, void * arg, int * continue_walk)
int do_rename_synonym_internal (const char * old_synonym_name, const char * new_synonym_name)
int do_replace_into (PARSER_CONTEXT * parser, DB_OTMPL * tmpl, PT_NODE * spec, PT_NODE * class_specs)
PT_NODE * do_replace_names_for_insert_values_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
int do_reserve_classinfo (PARSER_CONTEXT * parser, PT_NODE * statement, RESERVED_CLASS_INFO ** cls_info)
int do_reserve_oidinfo (PARSER_CONTEXT * parser, PT_NODE * statement, OID ** oid)
int do_select_internal (PARSER_CONTEXT * parser, PT_NODE * statement, bool for_ins_upd)
void do_send_plan_trace_to_session (PARSER_CONTEXT * parser)
PT_NODE * do_set_insert_server_not_allowed (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
int do_set_pruning_type (PARSER_CONTEXT * parser, PT_NODE * spec, CLIENT_UPDATE_CLASS_INFO * cls)
void do_set_trace_to_query_flag (QUERY_FLAG * query_flag)
int do_supplemental_statement (PARSER_CONTEXT * parser, PT_NODE * statement, RESERVED_CLASS_INFO ** cls_info, OID * reserved_oid)
int do_vacuum (PARSER_CONTEXT * parser, PT_NODE * statement)
char * extract_att_name (const char * str)
int extract_bt_idx (const char * str)
char ** find_update_columns (int * count_ptr, PT_NODE * statement)
void get_activity_info (PARSER_CONTEXT * parser, DB_TRIGGER_ACTION * type, const char ** source, PT_NODE * statement)
int get_dblink_password_decrypt (const char * passwd_cipher, DB_VALUE * decrypt_val)
int get_dblink_password_encrypt (const char * passwd, DB_VALUE * encrypt_val)
double get_priority (PARSER_CONTEXT * parser, PT_NODE * node)
const char * get_savepoint_name_from_db_value (DB_VALUE * val)
QFILE_LIST_ID * get_select_list_to_update (PARSER_CONTEXT * parser, PT_NODE * from, PT_NODE * column_names, PT_NODE * column_values, PT_NODE * with, PT_NODE * where, PT_NODE * order_by, PT_NODE * orderby_for, PT_NODE * using_index, PT_NODE * class_specs, PT_NODE * update_stmt)
int has_unique_constraint (DB_OBJECT * mop)
void init_compile_context (PARSER_CONTEXT * parser)
void init_xasl_stream (XASL_STREAM * stream)
void initialize_serial_invariant (SERIAL_INVARIANT * invariant, DB_VALUE val1, DB_VALUE val2, PT_OP_TYPE cmp_op, int val1_msgid, int val2_msgid, int error_type)
int insert_local (PARSER_CONTEXT * parser, PT_NODE * statement)
int insert_object_attr (const PARSER_CONTEXT * parser, DB_OTMPL * otemplate, DB_VALUE * value, PT_NODE * name, DB_ATTDESC * attr_desc)
int insert_subquery_results (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * values_list, PT_NODE * class_, const char ** savepoint_name)
int is_attr_not_in_insert_list (const PARSER_CONTEXT * parser, PT_NODE * name_list, const char * name)
int is_replace_or_odku_allowed (DB_OBJECT * obj, int * allowed)
int is_server_insert_allowed (PARSER_CONTEXT * parser, PT_NODE * statement)
int is_server_update_allowed (PARSER_CONTEXT * parser, PT_NODE ** non_null_attrs, int * has_uniques, int *const server_allowed, const PT_NODE * statement)
int make_cst_item_value (DB_OBJECT * obj, const char * str, DB_VALUE * db_val)
PT_NODE * make_vmops (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
int map_iso_levels (PARSER_CONTEXT * parser, PT_NODE * statement, DB_TRAN_ISOLATION * tran_isolation, PT_NODE * node)
int merge_mop_list_extension (DB_OBJLIST * new_objlist, DB_OBJLIST ** list)
PT_NODE * pt_append_odku_references (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * pt_sub_host_vars_index (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
int select_delete_list (PARSER_CONTEXT * parser, QFILE_LIST_ID ** result_p, PT_NODE * delete_stmt)
MOP server_find (PT_NODE * node_server, PT_NODE * node_owner)
int set_iso_level (PARSER_CONTEXT * parser, DB_TRAN_ISOLATION * tran_isolation, bool * async_ws, PT_NODE * statement, const DB_VALUE * level)
XASL_NODE * statement_to_update_xasl (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE ** non_null_attrs)
PT_NODE * test_check_option (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
bool truncate_need_repl_log (PT_NODE * statement)
void unlink_list (PT_NODE * list)
int update_at_server (PARSER_CONTEXT * parser, PT_NODE * from, PT_NODE * statement, PT_NODE ** non_null_attrs, int has_uniques)
int update_check_for_constraints (PARSER_CONTEXT * parser, int * has_unique, PT_NODE ** not_nulls, const PT_NODE * statement)
bool update_check_having_meta_attr (PARSER_CONTEXT * parser, PT_NODE * assignment)
int update_class_attributes (PARSER_CONTEXT * parser, PT_NODE * statement)
int update_object_attribute (PARSER_CONTEXT * parser, DB_OTMPL * otemplate, PT_NODE * name, DB_ATTDESC * attr_desc, DB_VALUE * value)
int update_object_by_oid (PARSER_CONTEXT * parser, PT_NODE * statement, UPDATE_TYPE update_type)
int update_object_tuple (PARSER_CONTEXT * parser, CLIENT_UPDATE_INFO * assigns, int assigns_count, CLIENT_UPDATE_CLASS_INFO * upd_classes_info, int classes_cnt, const int turn_off_unique_check, const int turn_off_serializable_conflict_check, UPDATE_TYPE update_type, bool should_delete)
int update_objs_for_list_file (PARSER_CONTEXT * parser, QFILE_LIST_ID * list_id, PT_NODE * statement, bool savepoint_started)
int update_real_class (PARSER_CONTEXT * parser, PT_NODE * statement, bool savepoint_started)

Macros

Type Name
define CUSTOM_PRINT_4_SHA_COMPUTE (PT\_CONVERT\_RANGE \| PT\_PRINT\_QUOTES \| PT\_PRINT\_USER \| PT\_PRINT\_HOST\_VAR\_COUNT \| PT\_PRINT\_DBLINK\_INFO)
define DBLINK_PASSWORD_CIPHER_LENGTH ([**DBLINK\_PASSWORD\_MAX\_LENGTH**](execute__statement_8c.md#define-dblink_password_max_length) + [**DBLINK\_PASSWORD\_CONFUSED\_LENGTH**](execute__statement_8c.md#define-dblink_password_confused_length))
define DBLINK_PASSWORD_CONFUSED_LENGTH (6)
define DBLINK_PASSWORD_MAX_BUFSIZE (([**int**](broker__monitor_8c.md#function-timeout))([**DBLINK\_PASSWORD\_CIPHER\_LENGTH**](execute__statement_8c.md#define-dblink_password_cipher_length) / 3 \* 4) + [**DBLINK\_PASSWORD\_PAD\_LENGTH**](execute__statement_8c.md#define-dblink_password_pad_length))
define DBLINK_PASSWORD_MAX_LENGTH (128)
define DBLINK_PASSWORD_PAD_LENGTH (40)
define DB_SERIAL_MAX "99999999999999999999999999999999999999"
define DB_SERIAL_MIN "-99999999999999999999999999999999999999"
define DB_VALUE_STACK_MAX 40
define ER_PT_UNKNOWN_STATEMENT [**ER\_GENERIC\_ERROR**](error__code_8h.md#define-er_generic_error)
define ER_TR_INVALID_VALUE_TYPE [**ER\_GENERIC\_ERROR**](error__code_8h.md#define-er_generic_error)
define IS_INVALIDATE_ACTION_STATEMENT (statement) /* multi line expression */
define IS_PRINT_ACTION_STATEMENT (statement) /* multi line expression */
define IS_REJECT_ACTION_STATEMENT (statement) /* multi line expression */
define MAX_DOMAIN_NAME_SIZE 150
define MAX_LEN 100
define MAX_SERIAL_INVARIANT 8
define PT_NODE_ACTION (node) ((node)-&gt;info.create\_trigger.trigger\_action)
define PT_NODE_ACTION_TIME (node) ([**convert\_misc\_to\_tr\_time**](execute__statement_8c.md#function-convert_misc_to_tr_time)((node)-&gt;info.create\_trigger.action\_time))
define PT_NODE_COND (node) ((node)-&gt;info.create\_trigger.trigger\_condition)
define PT_NODE_COND_TIME (node) ([**convert\_misc\_to\_tr\_time**](execute__statement_8c.md#function-convert_misc_to_tr_time)((node)-&gt;info.create\_trigger.condition\_time))
define PT_NODE_SR_CACHED_NUM_VAL (node) ((node)-&gt;info.serial.cached\_num\_val)
define PT_NODE_SR_CYCLIC (node) ((node)-&gt;info.serial.cyclic )
define PT_NODE_SR_INCREMENT_VAL (node) ((node)-&gt;info.serial.increment\_val)
define PT_NODE_SR_MAX_VAL (node) ((node)-&gt;info.serial.max\_val)
define PT_NODE_SR_MIN_VAL (node) ((node)-&gt;info.serial.min\_val)
define PT_NODE_SR_NAME (node) ((node)-&gt;info.serial.serial\_name-&gt;info.name.original)
define PT_NODE_SR_NO_CACHE (node) ((node)-&gt;info.serial.no\_cache)
define PT_NODE_SR_NO_CYCLIC (node) ((node)-&gt;info.serial.no\_cyclic )
define PT_NODE_SR_NO_MAX (node) ((node)-&gt;info.serial.no\_max )
define PT_NODE_SR_NO_MIN (node) ((node)-&gt;info.serial.no\_min )
define PT_NODE_SR_START_VAL (node) ((node)-&gt;info.serial.start\_val)
define PT_NODE_TR_EVENT_TYPE (node) ([**convert\_event\_to\_tr\_event**](execute__statement_8c.md#function-convert_event_to_tr_event)((node)-&gt;info.create\_trigger.trigger\_event-&gt;info.event\_spec.event\_type))
define PT_NODE_TR_NAME (node) ((node)-&gt;info.create\_trigger.trigger\_name-&gt;info.name.original)
define PT_NODE_TR_PRI (node) ((node)-&gt;info.create\_trigger.trigger\_priority)
define PT_NODE_TR_REF (node) ((node)-&gt;info.create\_trigger.trigger\_reference)
define PT_NODE_TR_STATUS (node) ([**convert\_misc\_to\_tr\_status**](execute__statement_8c.md#function-convert_misc_to_tr_status)((node)-&gt;info.create\_trigger.trigger\_status))
define PT_NODE_TR_TARGET (node) ((node)-&gt;info.create\_trigger.trigger\_event-&gt;info.event\_spec.event\_target)
define PT_TR_ATTR_NAME (attr) ((attr)-&gt;info.name.original)
define PT_TR_REF_REFERENCE (ref) (&(ref)-&gt;info.event\_object)
define PT_TR_TARGET_ATTR (target) ((target)-&gt;info.event\_target.attribute)
define PT_TR_TARGET_CLASS (target) ((target)-&gt;info.event\_target.class\_name-&gt;info.name.original)
define QUERY_BUF_SIZE 2048
define QUERY_BUF_SIZE 2048
define QUERY_BUF_SIZE 2048
define QUERY_BUF_SIZE 2048
define QUERY_BUF_SIZE 2048
define SERVER_ATTR_COMMENT "comment"
define SERVER_ATTR_DB_NAME "db\_name"
define SERVER_ATTR_HOST "host"
define SERVER_ATTR_LINK_NAME "link\_name"
define SERVER_ATTR_LINK_NAME_BUF_SIZE (255)
define SERVER_ATTR_OWNER "owner"
define SERVER_ATTR_PASSWORD "password"
define SERVER_ATTR_PORT "port"
define SERVER_ATTR_PROPERTIES "properties"
define SERVER_ATTR_USER_NAME "user\_name"
define UNIQUE_SAVEPOINT_ALTER_TRIGGER "aLTERtRIGGER"
define UNIQUE_SAVEPOINT_EXTERNAL_STATEMENT "eXTERNALsTATEMENT"

Public Types Documentation

typedef CST_ITEM

typedef struct cst_item CST_ITEM;

enum CST_ITEM_ENUM

enum CST_ITEM_ENUM {
    CST_UNDEFINED,
    CST_NOBJECTS,
    CST_NPAGES,
    CST_NATTRIBUTES,
    CST_BT_NKEYS
};

typedef EVAL_INSERT_VALUE

typedef struct eval_insert_value EVAL_INSERT_VALUE;

typedef ODKU_TUPLE_VALUE_ARG

typedef struct odku_tuple_value_arg ODKU_TUPLE_VALUE_ARG;

typedef RESERVED_CLASS_INFO

typedef struct reserved_class_info RESERVED_CLASS_INFO;

typedef SERIAL_INVARIANT

typedef struct serial_invariant SERIAL_INVARIANT;

enum SERVER_PREFERENCE

enum SERVER_PREFERENCE {
    INSERT_SELECT = 1,
    INSERT_VALUES = 2,
    INSERT_DEFAULT = 4,
    INSERT_REPLACE = 8,
    INSERT_ON_DUP_KEY_UPDATE = 16
};

enum UPDATE_TYPE

enum UPDATE_TYPE {
    NORMAL_UPDATE,
    UPDATE_OBJECT,
    ON_DUPLICATE_KEY_UPDATE
};

Public Attributes Documentation

variable cdc_Trigger_involved

bool cdc_Trigger_involved;

variable do_Trigger_involved

bool do_Trigger_involved;

Public Static Attributes Documentation

variable cst_item_tbl

CST_ITEM cst_item_tbl[];

variable delete_savepoint_number

int delete_savepoint_number;

variable insert_savepoint_number

int insert_savepoint_number;

variable merge_savepoint_number

int merge_savepoint_number;

variable tr_savepoint_number

int tr_savepoint_number;

variable update_savepoint_number

int update_savepoint_number;

Public Functions Documentation

function do_alter_serial

int do_alter_serial (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_alter_server

int do_alter_server (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_alter_synonym

int do_alter_synonym (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_alter_trigger

int do_alter_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_attach

int do_attach (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_call_method

int do_call_method (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_change_auto_increment_serial

int do_change_auto_increment_serial (
    PARSER_CONTEXT * const parser,
    MOP serial_obj,
    PT_NODE * node_new_val
) 

function do_check_delete_trigger

int do_check_delete_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_DO_FUNC * do_func
) 

function do_check_insert_trigger

int do_check_insert_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_DO_FUNC * do_func
) 

function do_check_internal_statements

int do_check_internal_statements (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_DO_FUNC do_func
) 

function do_check_merge_trigger

int do_check_merge_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_DO_FUNC * do_func
) 

function do_check_update_trigger

int do_check_update_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_DO_FUNC * do_func
) 

function do_commit

int do_commit (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_create_auto_increment_serial

int do_create_auto_increment_serial (
    PARSER_CONTEXT * parser,
    MOP * serial_object,
    const  char * class_name,
    PT_NODE * att
) 

function do_create_serial

int do_create_serial (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_create_server

int do_create_server (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_create_synonym

int do_create_synonym (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_create_trigger

int do_create_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_delete

int do_delete (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_drop_serial

int do_drop_serial (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_drop_server

int do_drop_server (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_drop_session_variables

int do_drop_session_variables (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_drop_synonym

int do_drop_synonym (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_drop_trigger

int do_drop_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_evaluate

int do_evaluate (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_evaluate_default_expr

int do_evaluate_default_expr (
    PARSER_CONTEXT * parser,
    PT_NODE * class_name
) 

function do_execute_delete

int do_execute_delete (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_do

int do_execute_do (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_insert

int do_execute_insert (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_merge

int do_execute_merge (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_prepared_subquery

int do_execute_prepared_subquery (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt,
    int num_query,
    DB_PREPARE_SUBQUERY_INFO * info
) 

function do_execute_select

int do_execute_select (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_session_statement

int do_execute_session_statement (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_statement

int do_execute_statement (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_subquery

int do_execute_subquery (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt
) 

function do_execute_trigger

int do_execute_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_execute_update

int do_execute_update (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_find_class_by_query

int do_find_class_by_query (
    const  char * name,
    char * buf,
    int buf_size
) 

function do_find_serial_by_query

int do_find_serial_by_query (
    const  char * name,
    char * buf,
    int buf_size
) 

function do_find_stored_procedure_by_query

int do_find_stored_procedure_by_query (
    const  char * name,
    char * buf,
    int buf_size
) 

function do_find_synonym_by_query

int do_find_synonym_by_query (
    const  char * name,
    char * buf,
    int buf_size
) 

function do_find_trigger_by_query

int do_find_trigger_by_query (
    const  char * name,
    char * buf,
    int buf_size
) 

function do_get_optimization_param

int do_get_optimization_param (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_get_serial_cached_num

int do_get_serial_cached_num (
    int * cached_num,
    MOP serial_obj
) 

function do_get_serial_obj_id

MOP do_get_serial_obj_id (
    DB_IDENTIFIER * serial_obj_id,
    DB_OBJECT * serial_class_mop,
    const  char * serial_name
) 

function do_get_stats

int do_get_stats (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_get_trigger

int do_get_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_get_xaction

int do_get_xaction (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_insert

int do_insert (
    PARSER_CONTEXT * parser,
    PT_NODE * root_statement
) 

function do_internal_statements

int do_internal_statements (
    PARSER_CONTEXT * parser,
    PT_NODE * internal_stmt_list,
    const  int phase
) 

function do_kill

int do_kill (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_merge

int do_merge (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_delete

int do_prepare_delete (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_NODE * parent
) 

function do_prepare_insert

int do_prepare_insert (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_merge

int do_prepare_merge (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_select

int do_prepare_select (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_session_statement

int do_prepare_session_statement (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_statement

int do_prepare_statement (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_subquery

int do_prepare_subquery (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt
) 

function do_prepare_to_commit

int do_prepare_to_commit (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_update

int do_prepare_update (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_remove_trigger

int do_remove_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_rename_server

int do_rename_server (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_rename_synonym

int do_rename_synonym (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_rename_trigger

int do_rename_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_replicate_statement

int do_replicate_statement (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_reset_auto_increment_serial

int do_reset_auto_increment_serial (
    MOP serial_obj
) 

function do_rollback

int do_rollback (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_savepoint

int do_savepoint (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_scope

int do_scope (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_select

int do_select (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_select_for_ins_upd

int do_select_for_ins_upd (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_names

int do_set_names (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_optimization_param

int do_set_optimization_param (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_query_trace

int do_set_query_trace (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_session_variables

int do_set_session_variables (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_sys_params

int do_set_sys_params (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_timezone

int do_set_timezone (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_trigger

int do_set_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_set_xaction

int do_set_xaction (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_statement

int do_statement (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_statements

int do_statements (
    PARSER_CONTEXT * parser,
    PT_NODE * statement_list
) 

function do_update

int do_update (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_update_auto_increment_serial_on_rename

int do_update_auto_increment_serial_on_rename (
    MOP serial_obj,
    const  char * class_name,
    const  char * att_name
) 

function do_update_maxvalue_of_auto_increment_serial

int do_update_maxvalue_of_auto_increment_serial (
    PARSER_CONTEXT * parser,
    MOP * serial_object,
    const  char * class_name,
    PT_NODE * att
) 

function do_update_stats

int do_update_stats (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

int get_dblink_info_from_dbserver (
    PARSER_CONTEXT * parser,
    PT_NODE * server_name,
    PT_NODE * owner_name,
    DB_VALUE * out_val
) 

int get_dblink_owner_name_from_dbserver (
    PARSER_CONTEXT * parser,
    PT_NODE * server_nm,
    PT_NODE * owner_nm,
    DB_VALUE * out_val
) 

function init_update_data

int init_update_data (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    CLIENT_UPDATE_INFO ** assigns_data,
    int * assigns_count,
    CLIENT_UPDATE_CLASS_INFO ** cls_data,
    int * cls_count,
    DB_VALUE ** values,
    int * values_cnt,
    bool has_delete
) 

function insert_rewrite_names_in_value_clauses

void insert_rewrite_names_in_value_clauses (
    PARSER_CONTEXT * parser,
    PT_NODE * insert_statement
) 

function is_stmt_based_repl_type

bool is_stmt_based_repl_type (
    const  PT_NODE * node
) 

int pt_check_dblink_password (
    PARSER_CONTEXT * parser,
    const  char * passwd,
    char * cipher_buf,
    int ciper_buf_size
) 

function pt_is_allowed_result_cache

bool pt_is_allowed_result_cache () 

Public Static Functions Documentation

function build_xasl_for_server_delete

static int build_xasl_for_server_delete (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function call_method

static int call_method (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function check_for_cons

static int check_for_cons (
    PARSER_CONTEXT * parser,
    int * has_unique,
    PT_NODE ** non_null_attrs,
    const  PT_NODE * attr_list,
    DB_OBJECT * class_obj
) 

function check_merge_trigger

static int check_merge_trigger (
    PT_DO_FUNC * do_func,
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function check_missing_non_null_attrs

static int check_missing_non_null_attrs (
    const  PARSER_CONTEXT * parser,
    const  PT_NODE * spec,
    PT_NODE * attr_list,
    const  bool has_default_values_list
) 

function check_serial_invariants

static int check_serial_invariants (
    SERIAL_INVARIANT * invariants,
    int num_invariants,
    int * ret_msg_id
) 

function check_timeout_value

static int check_timeout_value (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    DB_VALUE * val
) 

function check_trigger

static int check_trigger (
    DB_TRIGGER_EVENT event,
    PT_DO_FUNC * do_func,
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function convert_event_to_tr_event

static DB_TRIGGER_EVENT convert_event_to_tr_event (
    const  PT_EVENT_TYPE ev
) 

function convert_misc_to_tr_status

static DB_TRIGGER_STATUS convert_misc_to_tr_status (
    const  PT_MISC_TYPE pt_status
) 

function convert_misc_to_tr_time

static DB_TRIGGER_TIME convert_misc_to_tr_time (
    const  PT_MISC_TYPE pt_time
) 

function convert_speclist_to_objlist

static int convert_speclist_to_objlist (
    DB_OBJLIST ** triglist,
    PT_NODE * specnode
) 

function delete_list_by_oids

static int delete_list_by_oids (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    QFILE_LIST_ID * list_id,
    bool savepoint_started
) 

function delete_object_by_oid

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

function delete_object_tuple

static int delete_object_tuple (
    DB_OBJECT * obj
) 

function delete_real_class

static int delete_real_class (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_alter_synonym_internal

static int do_alter_synonym_internal (
    const  char * synonym_name,
    const  char * target_name,
    DB_OBJECT * target_owner,
    const  char * comment,
    const  int is_public_synonym,
    bool is_dblinked
) 

function do_check_cte_or_system_class_spec

static PT_NODE * do_check_cte_or_system_class_spec (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt,
    void * arg,
    int * continue_walk
) 

function do_check_for_empty_classes_in_delete

static int do_check_for_empty_classes_in_delete (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_check_insert_server_allowed

static PT_NODE * do_check_insert_server_allowed (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function do_check_subquery_cache

static int do_check_subquery_cache (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_clear_insert_values

static void do_clear_insert_values (
    PARSER_CONTEXT * parser,
    PT_NODE * insert_statement
) 

function do_clear_subquery_cache_flag

static PT_NODE * do_clear_subquery_cache_flag (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt,
    void * arg,
    int * continue_walk
) 

function do_create_midxkey_for_constraint

static int do_create_midxkey_for_constraint (
    DB_OTMPL * tmpl,
    SM_CLASS_CONSTRAINT * constraint,
    DB_VALUE * key
) 

function do_create_odku_stmt

static PT_NODE * do_create_odku_stmt (
    PARSER_CONTEXT * parser,
    PT_NODE * insert
) 

function do_create_serial_internal

static int do_create_serial_internal (
    MOP * serial_object,
    const  char * serial_name,
    DB_VALUE * start_val,
    DB_VALUE * inc_val,
    DB_VALUE * min_val,
    DB_VALUE * max_val,
    const  int cyclic,
    const  int cached_num,
    const  int started,
    const  char * comment,
    const  char * class_name,
    const  char * att_name
) 

function do_create_server_internal

static int do_create_server_internal (
    MOP * server_object,
    DB_VALUE * port_no,
    DB_VALUE * passwd,
    MOP owner,
    const  char ** attr_names,
    char ** attr_val,
    int attr_cnt
) 

function do_create_synonym_internal

static int do_create_synonym_internal (
    const  char * synonym_name,
    DB_OBJECT * synonym_owner,
    const  char * target_name,
    DB_OBJECT * target_owner,
    const  char * comment,
    const  int is_public_synonym,
    const  int or_replace,
    bool is_dblinked
) 

function do_drop_synonym_internal

static int do_drop_synonym_internal (
    const  char * synonym_name,
    const  int is_public_synonym,
    const  int if_exists,
    DB_OBJECT * synonym_class_obj,
    DB_OBJECT * synonym_obj
) 

function do_evaluate_insert_values

static int do_evaluate_insert_values (
    PARSER_CONTEXT * parser,
    PT_NODE * insert_statement
) 

function do_find_object_type

static int do_find_object_type (
    PT_MISC_TYPE type,
    const  char * classname,
    CDC_DDL_OBJECT_TYPE * objtype
) 

function do_find_unique_constraint_violations

static int do_find_unique_constraint_violations (
    DB_OTMPL * tmpl,
    bool for_update,
    OID ** oids,
    int * oids_count
) 

function do_get_obj_id

static MOP do_get_obj_id (
    DB_IDENTIFIER * obj_id,
    DB_OBJECT * class_mop,
    const  char * name,
    const  char * attr_name
) 

function do_get_server_obj_id

static MOP do_get_server_obj_id (
    DB_IDENTIFIER * server_obj_id,
    DB_OBJECT * server_class_mop,
    const  char * server_name
) 

function do_insert_at_server

static int do_insert_at_server (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_insert_checks

static int do_insert_checks (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_NODE ** class_,
    PT_NODE ** update,
    PT_NODE * values
) 

function do_insert_template

static int do_insert_template (
    PARSER_CONTEXT * parser,
    DB_OTMPL ** otemplate,
    PT_NODE * statement,
    const  char ** savepoint_name,
    int * row_count_ptr
) 

function do_on_duplicate_key_update

static int do_on_duplicate_key_update (
    PARSER_CONTEXT * parser,
    DB_OTMPL * tpl,
    PT_NODE * update_stmt
) 

function do_prepare_insert_internal

static int do_prepare_insert_internal (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function do_prepare_subquery_pre

static PT_NODE * do_prepare_subquery_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt,
    void * arg,
    int * continue_walk
) 

function do_rename_synonym_internal

static int do_rename_synonym_internal (
    const  char * old_synonym_name,
    const  char * new_synonym_name
) 

function do_replace_into

static int do_replace_into (
    PARSER_CONTEXT * parser,
    DB_OTMPL * tmpl,
    PT_NODE * spec,
    PT_NODE * class_specs
) 

function do_replace_names_for_insert_values_pre

static PT_NODE * do_replace_names_for_insert_values_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function do_reserve_classinfo

static int do_reserve_classinfo (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    RESERVED_CLASS_INFO ** cls_info
) 

function do_reserve_oidinfo

static int do_reserve_oidinfo (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    OID ** oid
) 

function do_select_internal

static int do_select_internal (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    bool for_ins_upd
) 

function do_send_plan_trace_to_session

static void do_send_plan_trace_to_session (
    PARSER_CONTEXT * parser
) 

function do_set_insert_server_not_allowed

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

function do_set_pruning_type

static int do_set_pruning_type (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    CLIENT_UPDATE_CLASS_INFO * cls
) 

function do_set_trace_to_query_flag

static void do_set_trace_to_query_flag (
    QUERY_FLAG * query_flag
) 

function do_supplemental_statement

static int do_supplemental_statement (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    RESERVED_CLASS_INFO ** cls_info,
    OID * reserved_oid
) 

function do_vacuum

static int do_vacuum (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function extract_att_name

static char * extract_att_name (
    const  char * str
) 

function extract_bt_idx

static int extract_bt_idx (
    const  char * str
) 

function find_update_columns

static char ** find_update_columns (
    int * count_ptr,
    PT_NODE * statement
) 

function get_activity_info

static void get_activity_info (
    PARSER_CONTEXT * parser,
    DB_TRIGGER_ACTION * type,
    const  char ** source,
    PT_NODE * statement
) 

static int get_dblink_password_decrypt (
    const  char * passwd_cipher,
    DB_VALUE * decrypt_val
) 

static int get_dblink_password_encrypt (
    const  char * passwd,
    DB_VALUE * encrypt_val
) 

function get_priority

static double get_priority (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function get_savepoint_name_from_db_value

static const  char * get_savepoint_name_from_db_value (
    DB_VALUE * val
) 

function get_select_list_to_update

static QFILE_LIST_ID * get_select_list_to_update (
    PARSER_CONTEXT * parser,
    PT_NODE * from,
    PT_NODE * column_names,
    PT_NODE * column_values,
    PT_NODE * with,
    PT_NODE * where,
    PT_NODE * order_by,
    PT_NODE * orderby_for,
    PT_NODE * using_index,
    PT_NODE * class_specs,
    PT_NODE * update_stmt
) 

function has_unique_constraint

static int has_unique_constraint (
    DB_OBJECT * mop
) 

function init_compile_context

static void init_compile_context (
    PARSER_CONTEXT * parser
) 

function init_xasl_stream

static void init_xasl_stream (
    XASL_STREAM * stream
) 

function initialize_serial_invariant

static void initialize_serial_invariant (
    SERIAL_INVARIANT * invariant,
    DB_VALUE val1,
    DB_VALUE val2,
    PT_OP_TYPE cmp_op,
    int val1_msgid,
    int val2_msgid,
    int error_type
) 

function insert_local

static int insert_local (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function insert_object_attr

static int insert_object_attr (
    const  PARSER_CONTEXT * parser,
    DB_OTMPL * otemplate,
    DB_VALUE * value,
    PT_NODE * name,
    DB_ATTDESC * attr_desc
) 

function insert_subquery_results

static int insert_subquery_results (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_NODE * values_list,
    PT_NODE * class_,
    const  char ** savepoint_name
) 

function is_attr_not_in_insert_list

static int is_attr_not_in_insert_list (
    const  PARSER_CONTEXT * parser,
    PT_NODE * name_list,
    const  char * name
) 

function is_replace_or_odku_allowed

static int is_replace_or_odku_allowed (
    DB_OBJECT * obj,
    int * allowed
) 

function is_server_insert_allowed

static int is_server_insert_allowed (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function is_server_update_allowed

static int is_server_update_allowed (
    PARSER_CONTEXT * parser,
    PT_NODE ** non_null_attrs,
    int * has_uniques,
    int * const server_allowed,
    const  PT_NODE * statement
) 

function make_cst_item_value

static int make_cst_item_value (
    DB_OBJECT * obj,
    const  char * str,
    DB_VALUE * db_val
) 

function make_vmops

static PT_NODE * make_vmops (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function map_iso_levels

static int map_iso_levels (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    DB_TRAN_ISOLATION * tran_isolation,
    PT_NODE * node
) 

function merge_mop_list_extension

static int merge_mop_list_extension (
    DB_OBJLIST * new_objlist,
    DB_OBJLIST ** list
) 

function pt_append_odku_references

static PT_NODE * pt_append_odku_references (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_sub_host_vars_index

static PT_NODE * pt_sub_host_vars_index (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function select_delete_list

static int select_delete_list (
    PARSER_CONTEXT * parser,
    QFILE_LIST_ID ** result_p,
    PT_NODE * delete_stmt
) 

function server_find

static MOP server_find (
    PT_NODE * node_server,
    PT_NODE * node_owner
) 

function set_iso_level

static int set_iso_level (
    PARSER_CONTEXT * parser,
    DB_TRAN_ISOLATION * tran_isolation,
    bool * async_ws,
    PT_NODE * statement,
    const  DB_VALUE * level
) 

function statement_to_update_xasl

static XASL_NODE * statement_to_update_xasl (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_NODE ** non_null_attrs
) 

function test_check_option

static PT_NODE * test_check_option (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function truncate_need_repl_log

static bool truncate_need_repl_log (
    PT_NODE * statement
) 

static void unlink_list (
    PT_NODE * list
) 

function update_at_server

static int update_at_server (
    PARSER_CONTEXT * parser,
    PT_NODE * from,
    PT_NODE * statement,
    PT_NODE ** non_null_attrs,
    int has_uniques
) 

function update_check_for_constraints

static int update_check_for_constraints (
    PARSER_CONTEXT * parser,
    int * has_unique,
    PT_NODE ** not_nulls,
    const  PT_NODE * statement
) 

function update_check_having_meta_attr

static bool update_check_having_meta_attr (
    PARSER_CONTEXT * parser,
    PT_NODE * assignment
) 

function update_class_attributes

static int update_class_attributes (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function update_object_attribute

static int update_object_attribute (
    PARSER_CONTEXT * parser,
    DB_OTMPL * otemplate,
    PT_NODE * name,
    DB_ATTDESC * attr_desc,
    DB_VALUE * value
) 

function update_object_by_oid

static int update_object_by_oid (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    UPDATE_TYPE update_type
) 

function update_object_tuple

static int update_object_tuple (
    PARSER_CONTEXT * parser,
    CLIENT_UPDATE_INFO * assigns,
    int assigns_count,
    CLIENT_UPDATE_CLASS_INFO * upd_classes_info,
    int classes_cnt,
    const  int turn_off_unique_check,
    const  int turn_off_serializable_conflict_check,
    UPDATE_TYPE update_type,
    bool should_delete
) 

function update_objs_for_list_file

static int update_objs_for_list_file (
    PARSER_CONTEXT * parser,
    QFILE_LIST_ID * list_id,
    PT_NODE * statement,
    bool savepoint_started
) 

function update_real_class

static int update_real_class (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    bool savepoint_started
) 

Macro Definition Documentation

define CUSTOM_PRINT_4_SHA_COMPUTE

#define CUSTOM_PRINT_4_SHA_COMPUTE `( PT_CONVERT_RANGE | PT_PRINT_QUOTES | PT_PRINT_USER | PT_PRINT_HOST_VAR_COUNT | PT_PRINT_DBLINK_INFO )`

#define DBLINK_PASSWORD_CIPHER_LENGTH `( DBLINK_PASSWORD_MAX_LENGTH + DBLINK_PASSWORD_CONFUSED_LENGTH )`

#define DBLINK_PASSWORD_CONFUSED_LENGTH `(6)`

#define DBLINK_PASSWORD_MAX_BUFSIZE `(( int )( DBLINK_PASSWORD_CIPHER_LENGTH / 3 * 4) + DBLINK_PASSWORD_PAD_LENGTH )`

#define DBLINK_PASSWORD_MAX_LENGTH `(128)`

#define DBLINK_PASSWORD_PAD_LENGTH `(40)`

define DB_SERIAL_MAX

#define DB_SERIAL_MAX `"99999999999999999999999999999999999999"`

define DB_SERIAL_MIN

#define DB_SERIAL_MIN `"-99999999999999999999999999999999999999"`

define DB_VALUE_STACK_MAX

#define DB_VALUE_STACK_MAX `40`

define ER_PT_UNKNOWN_STATEMENT

#define ER_PT_UNKNOWN_STATEMENT `ER_GENERIC_ERROR`

define ER_TR_INVALID_VALUE_TYPE

#define ER_TR_INVALID_VALUE_TYPE `ER_GENERIC_ERROR`

define IS_INVALIDATE_ACTION_STATEMENT

#define IS_INVALIDATE_ACTION_STATEMENT (
    statement
) `/* multi line expression */`

define IS_PRINT_ACTION_STATEMENT

#define IS_PRINT_ACTION_STATEMENT (
    statement
) `/* multi line expression */`

define IS_REJECT_ACTION_STATEMENT

#define IS_REJECT_ACTION_STATEMENT (
    statement
) `/* multi line expression */`

define MAX_DOMAIN_NAME_SIZE

#define MAX_DOMAIN_NAME_SIZE `150`

define MAX_LEN

#define MAX_LEN `100`

define MAX_SERIAL_INVARIANT

#define MAX_SERIAL_INVARIANT `8`

define PT_NODE_ACTION

#define PT_NODE_ACTION (
    node
) `((node)->info.create_trigger.trigger_action)`

define PT_NODE_ACTION_TIME

#define PT_NODE_ACTION_TIME (
    node
) `( convert_misc_to_tr_time ((node)->info.create_trigger.action_time))`

define PT_NODE_COND

#define PT_NODE_COND (
    node
) `((node)->info.create_trigger.trigger_condition)`

define PT_NODE_COND_TIME

#define PT_NODE_COND_TIME (
    node
) `( convert_misc_to_tr_time ((node)->info.create_trigger.condition_time))`

define PT_NODE_SR_CACHED_NUM_VAL

#define PT_NODE_SR_CACHED_NUM_VAL (
    node
) `((node)->info.serial.cached_num_val)`

define PT_NODE_SR_CYCLIC

#define PT_NODE_SR_CYCLIC (
    node
) `((node)->info.serial.cyclic )`

define PT_NODE_SR_INCREMENT_VAL

#define PT_NODE_SR_INCREMENT_VAL (
    node
) `((node)->info.serial.increment_val)`

define PT_NODE_SR_MAX_VAL

#define PT_NODE_SR_MAX_VAL (
    node
) `((node)->info.serial.max_val)`

define PT_NODE_SR_MIN_VAL

#define PT_NODE_SR_MIN_VAL (
    node
) `((node)->info.serial.min_val)`

define PT_NODE_SR_NAME

#define PT_NODE_SR_NAME (
    node
) `((node)->info.serial.serial_name->info.name.original)`

define PT_NODE_SR_NO_CACHE

#define PT_NODE_SR_NO_CACHE (
    node
) `((node)->info.serial.no_cache)`

define PT_NODE_SR_NO_CYCLIC

#define PT_NODE_SR_NO_CYCLIC (
    node
) `((node)->info.serial.no_cyclic )`

define PT_NODE_SR_NO_MAX

#define PT_NODE_SR_NO_MAX (
    node
) `((node)->info.serial.no_max )`

define PT_NODE_SR_NO_MIN

#define PT_NODE_SR_NO_MIN (
    node
) `((node)->info.serial.no_min )`

define PT_NODE_SR_START_VAL

#define PT_NODE_SR_START_VAL (
    node
) `((node)->info.serial.start_val)`

define PT_NODE_TR_EVENT_TYPE

#define PT_NODE_TR_EVENT_TYPE (
    node
) `( convert_event_to_tr_event ((node)->info.create_trigger.trigger_event->info.event_spec.event_type))`

define PT_NODE_TR_NAME

#define PT_NODE_TR_NAME (
    node
) `((node)->info.create_trigger.trigger_name->info.name.original)`

define PT_NODE_TR_PRI

#define PT_NODE_TR_PRI (
    node
) `((node)->info.create_trigger.trigger_priority)`

define PT_NODE_TR_REF

#define PT_NODE_TR_REF (
    node
) `((node)->info.create_trigger.trigger_reference)`

define PT_NODE_TR_STATUS

#define PT_NODE_TR_STATUS (
    node
) `( convert_misc_to_tr_status ((node)->info.create_trigger.trigger_status))`

define PT_NODE_TR_TARGET

#define PT_NODE_TR_TARGET (
    node
) `((node)->info.create_trigger.trigger_event->info.event_spec.event_target)`

define PT_TR_ATTR_NAME

#define PT_TR_ATTR_NAME (
    attr
) `((attr)->info.name.original)`

define PT_TR_REF_REFERENCE

#define PT_TR_REF_REFERENCE (
    ref
) `(&(ref)->info.event_object)`

define PT_TR_TARGET_ATTR

#define PT_TR_TARGET_ATTR (
    target
) `((target)->info.event_target.attribute)`

define PT_TR_TARGET_CLASS

#define PT_TR_TARGET_CLASS (
    target
) `((target)->info.event_target.class_name->info.name.original)`

define QUERY_BUF_SIZE

#define QUERY_BUF_SIZE `2048`

define QUERY_BUF_SIZE

#define QUERY_BUF_SIZE `2048`

define QUERY_BUF_SIZE

#define QUERY_BUF_SIZE `2048`

define QUERY_BUF_SIZE

#define QUERY_BUF_SIZE `2048`

define QUERY_BUF_SIZE

#define QUERY_BUF_SIZE `2048`

define SERVER_ATTR_COMMENT

#define SERVER_ATTR_COMMENT `"comment"`

define SERVER_ATTR_DB_NAME

#define SERVER_ATTR_DB_NAME `"db_name"`

define SERVER_ATTR_HOST

#define SERVER_ATTR_HOST `"host"`

#define SERVER_ATTR_LINK_NAME `"link_name"`

#define SERVER_ATTR_LINK_NAME_BUF_SIZE `(255)`

define SERVER_ATTR_OWNER

#define SERVER_ATTR_OWNER `"owner"`

define SERVER_ATTR_PASSWORD

#define SERVER_ATTR_PASSWORD `"password"`

define SERVER_ATTR_PORT

#define SERVER_ATTR_PORT `"port"`

define SERVER_ATTR_PROPERTIES

#define SERVER_ATTR_PROPERTIES `"properties"`

define SERVER_ATTR_USER_NAME

#define SERVER_ATTR_USER_NAME `"user_name"`

define UNIQUE_SAVEPOINT_ALTER_TRIGGER

#define UNIQUE_SAVEPOINT_ALTER_TRIGGER `"aLTERtRIGGER"`

define UNIQUE_SAVEPOINT_EXTERNAL_STATEMENT

#define UNIQUE_SAVEPOINT_EXTERNAL_STATEMENT `"eXTERNALsTATEMENT"`


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