CUBRID Engine  latest
execute_statement.c File Reference
#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 "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"

Go to the source code of this file.

Classes

struct  serial_invariant
 
struct  eval_insert_value
 
struct  cst_item
 
struct  odku_tuple_value_arg
 

Macros

#define DB_SERIAL_MAX   "99999999999999999999999999999999999999"
 
#define DB_SERIAL_MIN   "-99999999999999999999999999999999999999"
 
#define UNIQUE_SAVEPOINT_ALTER_TRIGGER   "aLTERtRIGGER"
 
#define PT_NODE_SR_NAME(node)   ((node)->info.serial.serial_name->info.name.original)
 
#define PT_NODE_SR_START_VAL(node)   ((node)->info.serial.start_val)
 
#define PT_NODE_SR_INCREMENT_VAL(node)   ((node)->info.serial.increment_val)
 
#define PT_NODE_SR_MAX_VAL(node)   ((node)->info.serial.max_val)
 
#define PT_NODE_SR_MIN_VAL(node)   ((node)->info.serial.min_val)
 
#define PT_NODE_SR_CYCLIC(node)   ((node)->info.serial.cyclic )
 
#define PT_NODE_SR_NO_MAX(node)   ((node)->info.serial.no_max )
 
#define PT_NODE_SR_NO_MIN(node)   ((node)->info.serial.no_min )
 
#define PT_NODE_SR_NO_CYCLIC(node)   ((node)->info.serial.no_cyclic )
 
#define PT_NODE_SR_CACHED_NUM_VAL(node)   ((node)->info.serial.cached_num_val)
 
#define PT_NODE_SR_NO_CACHE(node)   ((node)->info.serial.no_cache)
 
#define MAX_SERIAL_INVARIANT   8
 
#define ER_PT_UNKNOWN_STATEMENT   ER_GENERIC_ERROR
 
#define UNIQUE_SAVEPOINT_EXTERNAL_STATEMENT   "eXTERNALsTATEMENT"
 
#define ER_TR_INVALID_VALUE_TYPE   ER_GENERIC_ERROR
 
#define MAX_DOMAIN_NAME_SIZE   150
 
#define IS_REJECT_ACTION_STATEMENT(statement)
 
#define IS_INVALIDATE_ACTION_STATEMENT(statement)
 
#define IS_PRINT_ACTION_STATEMENT(statement)
 
#define PT_NODE_TR_NAME(node)   ((node)->info.create_trigger.trigger_name->info.name.original)
 
#define PT_NODE_TR_STATUS(node)   (convert_misc_to_tr_status((node)->info.create_trigger.trigger_status))
 
#define PT_NODE_TR_PRI(node)   ((node)->info.create_trigger.trigger_priority)
 
#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_TARGET(node)   ((node)->info.create_trigger.trigger_event->info.event_spec.event_target)
 
#define PT_TR_TARGET_CLASS(target)   ((target)->info.event_target.class_name->info.name.original)
 
#define PT_TR_TARGET_ATTR(target)   ((target)->info.event_target.attribute)
 
#define PT_TR_ATTR_NAME(attr)   ((attr)->info.name.original)
 
#define PT_NODE_COND(node)   ((node)->info.create_trigger.trigger_condition)
 
#define PT_NODE_COND_TIME(node)   (convert_misc_to_tr_time((node)->info.create_trigger.condition_time))
 
#define PT_NODE_ACTION(node)   ((node)->info.create_trigger.trigger_action)
 
#define PT_NODE_ACTION_TIME(node)   (convert_misc_to_tr_time((node)->info.create_trigger.action_time))
 
#define PT_NODE_TR_REF(node)   ((node)->info.create_trigger.trigger_reference)
 
#define PT_TR_REF_REFERENCE(ref)   (&(ref)->info.event_object)
 
#define DB_VALUE_STACK_MAX   40
 
#define MAX_LEN   100
 

Typedefs

typedef struct serial_invariant SERIAL_INVARIANT
 
typedef struct eval_insert_value EVAL_INSERT_VALUE
 
typedef struct cst_item CST_ITEM
 
typedef struct odku_tuple_value_arg ODKU_TUPLE_VALUE_ARG
 

Enumerations

enum  CST_ITEM_ENUM {
  CST_UNDEFINED, CST_NOBJECTS, CST_NPAGES, CST_NATTRIBUTES,
  CST_BT_NKEYS
}
 
enum  UPDATE_TYPE { NORMAL_UPDATE, UPDATE_OBJECT, ON_DUPLICATE_KEY_UPDATE }
 
enum  SERVER_PREFERENCE { INSERT_SELECT = 1, INSERT_VALUES = 2 }
 

Functions

static void do_set_trace_to_query_flag (QUERY_FLAG *query_flag)
 
static void do_send_plan_trace_to_session (PARSER_CONTEXT *parser)
 
static int do_vacuum (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int do_insert_checks (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE **class_, PT_NODE **update, PT_NODE *values)
 
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)
 
static int check_serial_invariants (SERIAL_INVARIANT *invariants, int num_invariants, int *ret_msg_id)
 
static bool truncate_need_repl_log (PT_NODE *statement)
 
static int do_check_for_empty_classes_in_delete (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int do_evaluate_insert_values (PARSER_CONTEXT *parser, PT_NODE *insert_statement)
 
static void do_clear_insert_values (PARSER_CONTEXT *parser, PT_NODE *insert_statement)
 
static PT_NODEdo_replace_names_for_insert_values_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static int do_prepare_insert_internal (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int do_insert_template (PARSER_CONTEXT *parser, DB_OTMPL **otemplate, PT_NODE *statement, const char **savepoint_name, int *row_count_ptr)
 
static void init_compile_context (PARSER_CONTEXT *parser)
 
static int do_select_internal (PARSER_CONTEXT *parser, PT_NODE *statement, bool for_ins_upd)
 
bool is_stmt_based_repl_type (const PT_NODE *node)
 
int do_evaluate_default_expr (PARSER_CONTEXT *parser, PT_NODE *class_name)
 
static int do_create_serial_internal (MOP *serial_object, const char *serial_name, DB_VALUE *current_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_update_auto_increment_serial_on_rename (MOP serial_obj, const char *class_name, const char *att_name)
 
int do_reset_auto_increment_serial (MOP serial_obj)
 
int do_change_auto_increment_serial (PARSER_CONTEXT *const parser, MOP serial_obj, PT_NODE *node_new_val)
 
MOP do_get_serial_obj_id (DB_IDENTIFIER *serial_obj_id, DB_OBJECT *serial_class_mop, const char *serial_name)
 
int do_get_serial_cached_num (int *cached_num, MOP serial_obj)
 
int do_create_serial (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_update_maxvalue_of_auto_increment_serial (PARSER_CONTEXT *parser, MOP *serial_object, const char *class_name, PT_NODE *att)
 
int do_alter_serial (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_drop_serial (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_statement (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_prepare_statement (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_execute_statement (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_check_internal_statements (PARSER_CONTEXT *parser, PT_NODE *statement, PT_DO_FUNC do_func)
 
static char * extract_att_name (const char *str)
 
static int extract_bt_idx (const char *str)
 
static int make_cst_item_value (DB_OBJECT *obj, const char *str, DB_VALUE *db_val)
 
int do_update_stats (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_get_stats (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int map_iso_levels (PARSER_CONTEXT *parser, PT_NODE *statement, DB_TRAN_ISOLATION *tran_isolation, PT_NODE *node)
 
static int set_iso_level (PARSER_CONTEXT *parser, DB_TRAN_ISOLATION *tran_isolation, bool *async_ws, PT_NODE *statement, const DB_VALUE *level)
 
static int check_timeout_value (PARSER_CONTEXT *parser, PT_NODE *statement, DB_VALUE *val)
 
static const char * get_savepoint_name_from_db_value (DB_VALUE *val)
 
int do_attach (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_prepare_to_commit (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_commit (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_rollback (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_savepoint (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_get_xaction (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_set_xaction (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_get_optimization_param (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_set_optimization_param (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_set_sys_params (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int merge_mop_list_extension (DB_OBJLIST *new_objlist, DB_OBJLIST **list)
 
static DB_TRIGGER_EVENT convert_event_to_tr_event (const PT_EVENT_TYPE ev)
 
static DB_TRIGGER_TIME convert_misc_to_tr_time (const PT_MISC_TYPE pt_time)
 
static DB_TRIGGER_STATUS convert_misc_to_tr_status (const PT_MISC_TYPE pt_status)
 
static int convert_speclist_to_objlist (DB_OBJLIST **triglist, PT_NODE *specnode)
 
static int check_trigger (DB_TRIGGER_EVENT event, PT_DO_FUNC *do_func, PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int check_merge_trigger (PT_DO_FUNC *do_func, PARSER_CONTEXT *parser, PT_NODE *statement)
 
static char ** find_update_columns (int *count_ptr, PT_NODE *statement)
 
static void get_activity_info (PARSER_CONTEXT *parser, DB_TRIGGER_ACTION *type, const char **source, PT_NODE *statement)
 
static double get_priority (PARSER_CONTEXT *parser, PT_NODE *node)
 
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_update_trigger (PARSER_CONTEXT *parser, PT_NODE *statement, PT_DO_FUNC *do_func)
 
int do_create_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_drop_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_alter_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_execute_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_remove_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_rename_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_set_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_get_trigger (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static void unlink_list (PT_NODE *list)
 
static QFILE_LIST_IDget_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)
 
static int update_object_attribute (PARSER_CONTEXT *parser, DB_OTMPL *otemplate, PT_NODE *name, DB_ATTDESC *attr_desc, DB_VALUE *value)
 
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)
 
static int update_object_by_oid (PARSER_CONTEXT *parser, PT_NODE *statement, UPDATE_TYPE update_type)
 
static 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)
 
static int do_set_pruning_type (PARSER_CONTEXT *parser, PT_NODE *spec, CLIENT_UPDATE_CLASS_INFO *cls)
 
static int update_objs_for_list_file (PARSER_CONTEXT *parser, QFILE_LIST_ID *list_id, PT_NODE *statement, bool savepoint_started)
 
static int update_class_attributes (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int update_at_server (PARSER_CONTEXT *parser, PT_NODE *from, PT_NODE *statement, PT_NODE **non_null_attrs, int has_uniques)
 
static int update_check_for_constraints (PARSER_CONTEXT *parser, int *has_unique, PT_NODE **not_nulls, const PT_NODE *statement)
 
static bool update_check_having_meta_attr (PARSER_CONTEXT *parser, PT_NODE *assignment)
 
static int update_real_class (PARSER_CONTEXT *parser, PT_NODE *statement, bool savepoint_started)
 
static XASL_NODEstatement_to_update_xasl (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE **non_null_attrs)
 
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)
 
static int delete_object_tuple (DB_OBJECT *obj)
 
static int has_unique_constraint (DB_OBJECT *mop)
 
static void init_xasl_stream (XASL_STREAM *stream)
 
int do_update (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_prepare_update (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_execute_update (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int select_delete_list (PARSER_CONTEXT *parser, QFILE_LIST_ID **result_p, PT_NODE *delete_stmt)
 
static int delete_list_by_oids (PARSER_CONTEXT *parser, PT_NODE *statement, QFILE_LIST_ID *list_id, bool savepoint_started)
 
static int build_xasl_for_server_delete (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int delete_real_class (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_delete (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_prepare_delete (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE *parent)
 
int do_execute_delete (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_evaluate (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int insert_object_attr (const PARSER_CONTEXT *parser, DB_OTMPL *otemplate, DB_VALUE *value, PT_NODE *name, DB_ATTDESC *attr_desc)
 
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)
 
static int is_server_insert_allowed (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int do_insert_at_server (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int insert_subquery_results (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE *values_list, PT_NODE *class_, const char **savepoint_name)
 
static int is_attr_not_in_insert_list (const PARSER_CONTEXT *parser, PT_NODE *name_list, const char *name)
 
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)
 
static PT_NODEmake_vmops (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEtest_check_option (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static int insert_local (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static PT_NODEdo_create_odku_stmt (PARSER_CONTEXT *parser, PT_NODE *insert)
 
static int do_find_unique_constraint_violations (DB_OTMPL *tmpl, bool for_update, OID **oids, int *oids_count)
 
static int do_create_midxkey_for_constraint (DB_OTMPL *tmpl, SM_CLASS_CONSTRAINT *constraint, DB_VALUE *key)
 
static int do_on_duplicate_key_update (PARSER_CONTEXT *parser, DB_OTMPL *tpl, PT_NODE *update_stmt)
 
static int do_replace_into (PARSER_CONTEXT *parser, DB_OTMPL *tmpl, PT_NODE *spec, PT_NODE *class_specs)
 
static int is_replace_or_odku_allowed (DB_OBJECT *obj, int *allowed)
 
static PT_NODEpt_append_odku_references (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEdo_check_insert_server_allowed (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEdo_set_insert_server_not_allowed (PARSER_CONTEXT *parser, PT_NODE *node, void *void_arg, int *continue_walk)
 
int do_insert (PARSER_CONTEXT *parser, PT_NODE *root_statement)
 
int do_prepare_insert (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_execute_insert (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static int call_method (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_call_method (PARSER_CONTEXT *parser, PT_NODE *statement)
 
void dbmeth_class_name (DB_OBJECT *self, DB_VALUE *result)
 
void dbmeth_print (DB_OBJECT *self, DB_VALUE *result, DB_VALUE *msg)
 
int do_select (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_select_for_ins_upd (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_execute_session_statement (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_execute_select (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_replicate_statement (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_scope (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_execute_do (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_set_session_variables (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_drop_session_variables (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_check_merge_trigger (PARSER_CONTEXT *parser, PT_NODE *statement, PT_DO_FUNC *do_func)
 
int do_merge (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_prepare_merge (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_execute_merge (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_set_names (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_set_timezone (PARSER_CONTEXT *parser, PT_NODE *statement)
 
void insert_rewrite_names_in_value_clauses (PARSER_CONTEXT *parser, PT_NODE *insert_statement)
 
int do_set_query_trace (PARSER_CONTEXT *parser, PT_NODE *statement)
 
int do_kill (PARSER_CONTEXT *parser, PT_NODE *statement)
 

Variables

bool do_Trigger_involved
 
static CST_ITEM cst_item_tbl []
 
static int tr_savepoint_number = 0
 
static int update_savepoint_number = 0
 
static int delete_savepoint_number = 0
 
static int insert_savepoint_number = 0
 
static int merge_savepoint_number = 0
 

Macro Definition Documentation

#define DB_SERIAL_MAX   "99999999999999999999999999999999999999"
#define DB_SERIAL_MIN   "-99999999999999999999999999999999999999"

Definition at line 97 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

#define DB_VALUE_STACK_MAX   40

Definition at line 6809 of file execute_statement.c.

#define ER_PT_UNKNOWN_STATEMENT   ER_GENERIC_ERROR

Definition at line 2929 of file execute_statement.c.

Referenced by do_execute_statement(), and do_statement().

#define ER_TR_INVALID_VALUE_TYPE   ER_GENERIC_ERROR

Definition at line 5141 of file execute_statement.c.

#define IS_INVALIDATE_ACTION_STATEMENT (   statement)
Value:
((statement)->node_type == PT_TRIGGER_ACTION \
&& (statement)->info.trigger_action.action_type == PT_INVALIDATE_XACTION)

Definition at line 5163 of file execute_statement.c.

Referenced by get_activity_info().

#define IS_PRINT_ACTION_STATEMENT (   statement)
Value:
((statement)->node_type == PT_TRIGGER_ACTION \
&& (statement)->info.trigger_action.action_type == PT_PRINT)

Definition at line 5167 of file execute_statement.c.

Referenced by get_activity_info().

#define IS_REJECT_ACTION_STATEMENT (   statement)
Value:
((statement)->node_type == PT_TRIGGER_ACTION \
&& (statement)->info.trigger_action.action_type == PT_REJECT)

Definition at line 5159 of file execute_statement.c.

Referenced by get_activity_info().

#define MAX_DOMAIN_NAME_SIZE   150

Definition at line 5143 of file execute_statement.c.

Referenced by do_set_trigger().

#define MAX_LEN   100

Referenced by do_set_timezone().

#define MAX_SERIAL_INVARIANT   8

Definition at line 135 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

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

Definition at line 5194 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5196 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5189 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5191 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 124 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

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

Definition at line 116 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

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

Definition at line 110 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

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

Definition at line 112 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

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

Definition at line 114 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

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

Definition at line 106 of file execute_statement.c.

Referenced by do_alter_serial(), do_create_serial(), and do_drop_serial().

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

Definition at line 126 of file execute_statement.c.

Referenced by do_alter_serial().

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

Definition at line 122 of file execute_statement.c.

Referenced by do_alter_serial().

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

Definition at line 118 of file execute_statement.c.

Referenced by do_alter_serial().

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

Definition at line 120 of file execute_statement.c.

Referenced by do_alter_serial().

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

Definition at line 108 of file execute_statement.c.

Referenced by do_alter_serial(), and do_create_serial().

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

Definition at line 5177 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5171 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5175 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5199 of file execute_statement.c.

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

Definition at line 5173 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5180 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5186 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5201 of file execute_statement.c.

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

Definition at line 5184 of file execute_statement.c.

Referenced by do_create_trigger().

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

Definition at line 5182 of file execute_statement.c.

Referenced by do_create_trigger().

#define UNIQUE_SAVEPOINT_ALTER_TRIGGER   "aLTERtRIGGER"

Definition at line 99 of file execute_statement.c.

Referenced by do_alter_trigger().

#define UNIQUE_SAVEPOINT_EXTERNAL_STATEMENT   "eXTERNALsTATEMENT"

Definition at line 2930 of file execute_statement.c.

Referenced by do_check_internal_statements().

Typedef Documentation

typedef struct cst_item CST_ITEM

Definition at line 3967 of file execute_statement.c.

Definition at line 156 of file execute_statement.c.

Definition at line 10735 of file execute_statement.c.

Definition at line 136 of file execute_statement.c.

Enumeration Type Documentation

Enumerator
CST_UNDEFINED 
CST_NOBJECTS 
CST_NPAGES 
CST_NATTRIBUTES 
CST_BT_NKEYS 

Definition at line 3956 of file execute_statement.c.

Enumerator
INSERT_SELECT 
INSERT_VALUES 

Definition at line 10719 of file execute_statement.c.

Enumerator
NORMAL_UPDATE 
UPDATE_OBJECT 
ON_DUPLICATE_KEY_UPDATE 

Definition at line 6806 of file execute_statement.c.

Function Documentation

static int check_serial_invariants ( SERIAL_INVARIANT invariants,
int  num_invariants,
int *  ret_msg_id 
)
static
static int check_timeout_value ( PARSER_CONTEXT parser,
PT_NODE statement,
DB_VALUE val 
)
static
static DB_TRIGGER_STATUS convert_misc_to_tr_status ( const PT_MISC_TYPE  pt_status)
static

Definition at line 5353 of file execute_statement.c.

References PT_ACTIVE, PT_INACTIVE, TR_STATUS_ACTIVE, and TR_STATUS_INACTIVE.

Referenced by do_alter_trigger().

Here is the caller graph for this function:

static DB_TRIGGER_TIME convert_misc_to_tr_time ( const PT_MISC_TYPE  pt_time)
static
void dbmeth_class_name ( DB_OBJECT self,
DB_VALUE result 
)

Definition at line 13810 of file execute_statement.c.

References db_get_class_name(), and db_make_string().

void dbmeth_print ( DB_OBJECT self,
DB_VALUE result,
DB_VALUE msg 
)

Definition at line 13841 of file execute_statement.c.

References db_make_null(), and db_value_print().

int do_alter_serial ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 2225 of file execute_statement.c.

References ARG_FILE_LINE, assert, au_check_serial_authorization(), AU_DISABLE, AU_ENABLE, au_fetch_instance_force(), AU_FETCH_WRITE, CHECK_MODIFICATION_ERROR, check_serial_invariants(), pt_serial_info::comment, CT_SERIAL_NAME, pt_value_info::data_value, db_abs_dbval(), db_get(), db_get_int(), DB_IS_NULL, db_make_int(), db_make_null(), db_make_string(), DB_MAX_NUMERIC_PRECISION, DB_SERIAL_MAX, DB_SERIAL_MIN, DB_TYPE_NUMERIC, db_value_clone(), db_value_domain_init(), dbt_abort_object(), dbt_edit_object(), dbt_finish_object(), dbt_put_internal(), do_get_serial_obj_id(), er_clear(), er_errid(), ER_ERROR_SEVERITY, ER_INVALID_SERIAL_VALUE, ER_IT_DATA_OVERFLOW, ER_QPROC_CANNOT_UPDATE_SERIAL, ER_QPROC_DB_SERIAL_NOT_FOUND, ER_QPROC_SERIAL_NOT_FOUND, ER_QPROC_SERIAL_RANGE_OVERFLOW, er_set(), error(), pt_data_value::i, parser_node::info, initialize_serial_invariant(), INTL_CODESET_ISO88591, LC_FETCH_MVCC_VERSION, MAX_SERIAL_INVARIANT, MSGCAT_RUNTIME_INVALID_AUTO_INCREMENT_ALTER, MSGCAT_RUNTIME_RT_SERIAL_ALTER_NOT_ALLOWED, MSGCAT_RUNTIME_RT_SERIAL_NOT_DEFINED, MSGCAT_SEMANTIC_SERIAL_CACHED_NUM_INVALID_RANGE, MSGCAT_SEMANTIC_SERIAL_INC_VAL_INVALID, MSGCAT_SEMANTIC_SERIAL_INC_VAL_ZERO, MSGCAT_SEMANTIC_SERIAL_MAX_VAL_INVALID, MSGCAT_SEMANTIC_SERIAL_MAX_VAL_OVERFLOW, MSGCAT_SEMANTIC_SERIAL_MIN_VAL_INVALID, MSGCAT_SEMANTIC_SERIAL_MIN_VAL_UNDERFLOW, MSGCAT_SEMANTIC_SERIAL_START_VAL_INVALID, MSGCAT_SET_PARSER_RUNTIME, MSGCAT_SET_PARSER_SEMANTIC, NO_ERROR, parser_node::node_type, NULL, numeric_coerce_string_to_num(), numeric_db_value_coerce_to_num(), numeric_db_value_compare(), numeric_db_value_mul(), numeric_db_value_sub(), OID_ISNULL, OID_SET_NULL, pr_clear_value(), PT_ERRORmf, PT_GE, PT_LE, PT_LT, PT_NE, PT_NODE_SR_CACHED_NUM_VAL, PT_NODE_SR_CYCLIC, PT_NODE_SR_INCREMENT_VAL, PT_NODE_SR_MAX_VAL, PT_NODE_SR_MIN_VAL, PT_NODE_SR_NAME, PT_NODE_SR_NO_CACHE, PT_NODE_SR_NO_CYCLIC, PT_NODE_SR_NO_MAX, PT_NODE_SR_NO_MIN, PT_NODE_SR_START_VAL, PT_TYPE_INTEGER, PT_VALUE, PT_VALUE_GET_BYTES, pt_value_to_db(), pt_statement_info::serial, SERIAL_ATTR_CACHED_NUM, SERIAL_ATTR_CLASS_NAME, SERIAL_ATTR_COMMENT, SERIAL_ATTR_CURRENT_VAL, SERIAL_ATTR_CYCLIC, SERIAL_ATTR_INCREMENT_VAL, SERIAL_ATTR_MAX_VAL, SERIAL_ATTR_MIN_VAL, SERIAL_ATTR_STARTED, serial_decache(), sm_find_class(), strlen, parser_node::type_enum, pt_statement_info::value, ws_decache(), and WS_ISDIRTY.

Referenced by do_execute_statement(), and do_statement().

Here is the caller graph for this function:

int do_attach ( PARSER_CONTEXT parser,
PT_NODE statement 
)
static PT_NODE * do_check_insert_server_allowed ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
int do_check_insert_trigger ( PARSER_CONTEXT parser,
PT_NODE statement,
PT_DO_FUNC do_func 
)

Definition at line 6019 of file execute_statement.c.

References check_trigger(), parser_node::flag, TR_EVENT_STATEMENT_INSERT, and parser_node::use_auto_commit.

Referenced by do_execute_statement(), and do_statement().

Here is the caller graph for this function:

int do_commit ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 4435 of file execute_statement.c.

References pt_statement_info::commit_work, db_update_row_count_cache(), parser_node::info, pt_commit_work_info::retain_lock, and tran_commit().

Referenced by do_execute_statement(), and do_statement().

Here is the caller graph for this function:

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

Definition at line 1766 of file execute_statement.c.

References parser_node::alias_print, ARG_FILE_LINE, assert_release, pt_statement_info::attr_def, pt_attr_def_info::attr_name, pt_attr_def_info::auto_increment, pt_statement_info::auto_increment, AUTO_INCREMENT_SERIAL_NAME_EXTRA_LENGTH, CT_SERIAL_NAME, pt_statement_info::data_type, parser_node::data_type, DB_BIGINT_MAX, db_get_int(), DB_INT16_MAX, DB_INT32_MAX, DB_LT, db_make_bigint(), db_make_int(), db_make_null(), DB_MAX_NUMERIC_PRECISION, DB_SERIAL_MAX, DB_TYPE_NUMERIC, db_value_clone(), db_value_domain_init(), do_create_serial_internal(), do_get_serial_obj_id(), ER_AUTO_INCREMENT_SERIAL_ALREADY_EXIST, ER_AUTO_INCREMENT_STARTVAL_MUST_LT_MAXVAL, er_errid(), ER_ERROR_SEVERITY, ER_INCREMENT_VALUE_CANNOT_BE_ZERO, ER_INVALID_SERIAL_VALUE, ER_OUT_OF_VIRTUAL_MEMORY, ER_QPROC_DB_SERIAL_NOT_FOUND, er_set(), error(), free_and_init, i, pt_auto_increment_info::increment_val, parser_node::info, INTL_CODESET_ISO88591, pt_statement_info::name, NO_ERROR, NULL, numeric_coerce_string_to_num(), numeric_db_value_coerce_to_num(), numeric_db_value_compare(), pt_name_info::original, p, pr_clear_value(), pt_data_type_info::precision, PT_TYPE_BIGINT, PT_TYPE_INTEGER, PT_TYPE_NUMERIC, PT_TYPE_SMALLINT, pt_value_to_db(), SET_AUTO_INCREMENT_SERIAL_NAME, sm_downcase_name(), sm_find_class(), SM_MAX_IDENTIFIER_LENGTH, pt_auto_increment_info::start_val, strlen, tp_value_compare(), and parser_node::type_enum.

Referenced by do_add_attribute(), and do_change_att_schema_only().

Here is the caller graph for this function:

int do_create_serial ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 1280 of file execute_statement.c.

References ARG_FILE_LINE, assert, AU_DISABLE, AU_ENABLE, CHECK_MODIFICATION_ERROR, check_serial_invariants(), pt_serial_info::comment, CT_SERIAL_NAME, pt_value_info::data_value, db_abs_dbval(), db_get_int(), db_make_int(), db_make_null(), DB_MAX_NUMERIC_PRECISION, DB_SERIAL_MAX, DB_SERIAL_MIN, DB_TYPE_NUMERIC, db_value_clone(), db_value_domain_init(), do_create_serial_internal(), do_get_serial_obj_id(), er_clear(), er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_INVALID_SERIAL_VALUE, ER_IT_DATA_OVERFLOW, ER_OUT_OF_VIRTUAL_MEMORY, ER_QPROC_DB_SERIAL_NOT_FOUND, ER_QPROC_SERIAL_ALREADY_EXIST, ER_QPROC_SERIAL_RANGE_OVERFLOW, er_set(), error(), free_and_init, pt_data_value::i, parser_node::info, initialize_serial_invariant(), INTL_CODESET_ISO88591, intl_identifier_lower(), intl_identifier_lower_string_size(), MAX_SERIAL_INVARIANT, MSGCAT_SEMANTIC_SERIAL_ALREADY_EXIST, MSGCAT_SEMANTIC_SERIAL_CACHED_NUM_INVALID_RANGE, MSGCAT_SEMANTIC_SERIAL_INC_VAL_INVALID, MSGCAT_SEMANTIC_SERIAL_INC_VAL_ZERO, MSGCAT_SEMANTIC_SERIAL_MAX_VAL_INVALID, MSGCAT_SEMANTIC_SERIAL_MAX_VAL_OVERFLOW, MSGCAT_SEMANTIC_SERIAL_MIN_VAL_INVALID, MSGCAT_SEMANTIC_SERIAL_MIN_VAL_UNDERFLOW, MSGCAT_SEMANTIC_SERIAL_START_VAL_INVALID, MSGCAT_SET_PARSER_SEMANTIC, NO_ERROR, parser_node::node_type, NULL, numeric_coerce_string_to_num(), numeric_db_value_coerce_to_num(), numeric_db_value_compare(), numeric_db_value_mul(), numeric_db_value_sub(), p, pr_clear_value(), PT_ERRORmf, PT_GE, PT_LE, PT_LT, PT_NE, PT_NODE_SR_CACHED_NUM_VAL, PT_NODE_SR_CYCLIC, PT_NODE_SR_INCREMENT_VAL, PT_NODE_SR_MAX_VAL, PT_NODE_SR_MIN_VAL, PT_NODE_SR_NAME, PT_NODE_SR_START_VAL, PT_TYPE_INTEGER, PT_VALUE, PT_VALUE_GET_BYTES, pt_value_to_db(), pt_statement_info::serial, sm_find_class(), strlen, parser_node::type_enum, and pt_statement_info::value.

Referenced by do_execute_statement(), and do_statement().

Here is the caller graph for this function:

int do_evaluate_default_expr ( PARSER_CONTEXT parser,
PT_NODE class_name 
)

Definition at line 406 of file execute_statement.c.

References ARG_FILE_LINE, assert, assert_release, sm_class::attributes, au_fetch_class_force(), AU_FETCH_READ, db_datetime::date, db_datetime_decode(), db_datetime_to_timestamp(), DB_DEFAULT_CURR_USER, DB_DEFAULT_CURRENTDATE, DB_DEFAULT_CURRENTDATETIME, DB_DEFAULT_CURRENTTIME, DB_DEFAULT_CURRENTTIMESTAMP, DB_DEFAULT_NONE, DB_DEFAULT_SYSDATE, DB_DEFAULT_SYSDATETIME, DB_DEFAULT_SYSTIME, DB_DEFAULT_SYSTIMESTAMP, DB_DEFAULT_UNIX_TIMESTAMP, DB_DEFAULT_USER, db_get_datetime(), db_get_user_and_host_name(), db_get_user_name(), DB_IS_NULL, db_make_datetime(), db_make_int(), db_make_null(), db_make_string(), db_make_time(), db_make_timestamp(), pt_name_info::db_object, db_timestamp_encode_sys(), db_to_char(), DB_TYPE_STRING, db_unix_timestamp(), db_value_clear(), db_value_put_encoded_date(), db_value_put_encoded_time(), DB_VALUE_TYPE, sm_default_value::default_expr, db_default_expr::default_expr_format, db_default_expr::default_expr_op, db_default_expr::default_expr_type, default_value, sm_attribute::default_value, sm_attribute::domain, DOMAIN_COMPATIBLE, error(), sm_attribute::header, parser_node::info, lang_set_flag_from_lang(), pt_statement_info::name, db_value::need_clear, sm_component::next, NO_ERROR, parser_node::node_type, NULL, pr_clear_value(), pr_clone_value(), prm_get_string_value(), PRM_ID_INTL_DATE_LANG, PT_NAME, strlen, parser_context::sys_datetime, T_TO_CHAR, db_datetime::time, tp_domain_resolve_default(), tp_domain_resolve_value(), tp_domain_status_er_set(), TP_DOMAIN_TYPE, TP_IS_CHAR_TYPE, tp_value_cast(), tz_conv_tz_datetime_w_region(), tz_conv_tz_time_w_zone_name(), tz_get_session_local_timezone(), tz_get_session_tz_region(), tz_get_system_timezone(), tz_get_system_tz_region(), and sm_default_value::value.

Referenced by do_prepare_merge(), and insert_local().

Here is the caller graph for this function:

int do_execute_delete ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 10416 of file execute_statement.c.

References assert, AU_RESTORE, AU_SAVE_AND_DISABLE, AU_SAVE_AND_ENABLE, parser_context::auto_param_count, CHECK_MODIFICATION_ERROR, cursor_free_self_list_id, db_abort_to_savepoint(), db_is_vclass(), pt_name_info::db_object, DEFAULT_EXEC_MODE, pt_statement_info::delete_, delete_list_by_oids(), delete_savepoint_number, do_send_plan_trace_to_session(), do_set_trace_to_query_flag(), ER_GENERIC_ERROR, ER_LK_UNILATERALLY_ABORTED, err, execute_query(), EXECUTE_QUERY_WITH_COMMIT, pt_spec_info::flag, parser_context::flag, pt_spec_info::flat_entity_list, parser_context::host_var_count, parser_context::host_variables, if(), parser_node::info, parser_context::is_auto_commit, parser_context::is_xasl_pinned_reference, mq_generate_name(), pt_statement_info::name, parser_node::next, NO_ERROR, NOT_FROM_RESULT_CACHE, NULL, pt_name_info::original, prm_get_bool_value(), PRM_ID_QUERY_TRACE, pt_end_query(), PT_HINT_LK_TIMEOUT, PT_IS_HINT_NODE, PT_SPEC_FLAG_DELETE, parser_context::query_id, parser_context::query_trace, RESULT_CACHE_INHIBITED, pt_delete_info::server_delete, sm_decache_instances_after_query_executed_with_commit(), sm_flush_and_decache_objects(), sm_flush_objects(), pt_delete_info::spec, pt_statement_info::spec, TM_TRAN_ISOLATION, TM_TRAN_WAIT_MSECS, TRAN_AUTO_COMMIT, tran_flush_to_commit(), TRAN_REP_READ, tran_reset_wait_times(), tran_system_savepoint(), tran_was_latest_query_committed(), qfile_list_id::tuple_cnt, pt_delete_info::waitsecs_hint, and XASL_CACHE_PINNED_REFERENCE.

Referenced by do_execute_statement().

Here is the caller graph for this function:

int do_execute_merge ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 16244 of file execute_statement.c.

References parser_context::abort, assert, pt_merge_info::assignment, AU_RESTORE, AU_SAVE_AND_DISABLE, AU_SAVE_AND_ENABLE, parser_context::auto_param_count, CHECK_MODIFICATION_ERROR, parser_node::column_number, cursor_free_self_list_id, db_abort_to_savepoint(), DB_FETCH_CLREAD_INSTWRITE, db_is_vclass(), pt_name_info::db_object, DEFAULT_EXEC_MODE, pt_merge_info::do_class_attrs, do_select(), er_errid(), ER_FAILED, ER_GENERIC_ERROR, ER_LK_UNILATERALLY_ABORTED, er_msg(), err, error(), parser_node::etc, execute_query(), EXECUTE_QUERY_WITH_COMMIT, parser_node::flag, parser_context::flag, pt_merge_info::flags, pt_spec_info::flat_entity_list, pt_merge_info::hint, parser_context::host_var_count, parser_context::host_variables, parser_node::info, pt_merge_info::insert, insert_subquery_results(), pt_merge_info::into, parser_context::is_auto_commit, parser_context::is_xasl_pinned_reference, parser_node::line_number, pt_node_list_info::list, pt_node_list_info::list_type, locator_fetch_class(), pt_statement_info::merge, merge_savepoint_number, mq_generate_name(), mq_translate(), pt_statement_info::name, NO_ERROR, pt_statement_info::node_list, NOT_FROM_RESULT_CACHE, NULL, obt_begin_insert_values(), parser_free_tree(), pt_end_query(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_IS_HINT_NODE, PT_IS_SUBQUERY, PT_MERGE_INFO_INSERT_ONLY, PT_MERGE_INFO_SERVER_OP, pt_record_error(), pt_to_merge_insert_query(), qmgr_end_query(), parser_context::query_id, RESULT_CACHE_INHIBITED, sm_decache_instances_after_query_executed_with_commit(), sm_flush_and_decache_objects(), sm_flush_objects(), pt_statement_info::spec, parser_context::statement_number, TM_TRAN_WAIT_MSECS, TRAN_AUTO_COMMIT, tran_flush_to_commit(), tran_reset_wait_times(), tran_system_savepoint(), tran_was_latest_query_committed(), tran_was_latest_query_ended(), qfile_list_id::tuple_cnt, pt_merge_info::update, update_class_attributes(), update_objs_for_list_file(), parser_node::use_auto_commit, pt_merge_info::value_clauses, pt_merge_info::waitsecs_hint, ws_need_flush(), XASL_CACHE_PINNED_REFERENCE, and parser_node::xasl_id.

Referenced by do_execute_statement().

Here is the caller graph for this function:

int do_execute_select ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 14441 of file execute_statement.c.

References parser_context::abort, assert, AU_RESTORE, AU_SAVE_AND_ENABLE, parser_context::auto_param_count, parser_node::cache_time, CACHE_TIME_EQ, CACHE_TIME_RESET, parser_node::clt_cache_check, parser_node::clt_cache_reusable, db_value_clear(), db_value_copy(), DEFAULT_EXEC_MODE, pt_query_info::do_cache, pt_query_info::do_not_cache, do_send_plan_trace_to_session(), do_set_trace_to_query_flag(), DONT_COLLECT_EXEC_STATS, parser_context::dont_collect_exec_stats, er_errid(), err, parser_node::etc, execute_query(), EXECUTE_QUERY_WITH_COMMIT, pt_query_info::flag, parser_node::flag, parser_context::flag, free_and_init, parser_context::host_var_count, parser_context::host_variables, i, parser_node::info, pt_query_info::into_list, parser_context::is_auto_commit, parser_context::is_holdable, parser_context::is_xasl_pinned_reference, locator_all_flush(), locator_assign_all_permanent_oids(), MSGCAT_RUNTIME_PARM_IS_NOT_SET, MSGCAT_SET_PARSER_RUNTIME, pt_statement_info::name, NO_ERROR, parser_node::node_type, NOT_FROM_RESULT_CACHE, NULL, pt_query_info::oids_included, pt_name_info::original, parser_walk_tree(), prm_get_bool_value(), PRM_ID_QUERY_TRACE, pt_associate_label_with_value_check_reference(), PT_ERRORmf, pt_flush_classes(), pt_get_one_tuple_from_list_id(), pt_length_of_list(), PT_NAME, pt_statement_info::query, parser_context::query_id, parser_context::query_trace, pt_query_info::reexecute, RESULT_CACHE_INHIBITED, RESULT_CACHE_REQUIRED, RESULT_HOLDABLE, parser_node::si_datetime, parser_node::si_tran_id, tm_Use_OID_preflush, TRAN_AUTO_COMMIT, parser_node::use_auto_commit, ws_has_updated(), ws_need_flush(), XASL_CACHE_PINNED_REFERENCE, and parser_node::xasl_id.

Referenced by do_execute_statement().

Here is the caller graph for this function:

int do_execute_session_statement ( PARSER_CONTEXT parser,
PT_NODE statement 
)
int do_execute_statement ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 3430 of file execute_statement.c.

References parser_node::alias_print, ARG_FILE_LINE, assert, db_set_read_fetch_instance_version(), db_set_suppress_repl_on_transaction(), do_alter(), do_alter_index(), do_alter_serial(), do_alter_trigger(), do_alter_user(), do_attach(), do_call_method(), do_check_delete_trigger(), do_check_insert_trigger(), do_check_internal_statements(), do_check_merge_trigger(), do_check_update_trigger(), do_commit(), do_create_entity(), do_create_index(), do_create_serial(), do_create_trigger(), do_create_user(), do_drop(), do_drop_index(), do_drop_serial(), do_drop_session_variables(), do_drop_trigger(), do_drop_user(), do_drop_variable(), do_evaluate(), do_execute_delete(), do_execute_do(), do_execute_insert(), do_execute_merge(), do_execute_select(), do_execute_session_statement(), do_execute_trigger(), do_execute_update(), do_get_optimization_param(), do_get_stats(), do_get_trigger(), do_get_xaction(), do_grant(), do_kill(), do_prepare_to_commit(), do_remove_trigger(), do_rename(), do_rename_trigger(), do_replicate_statement(), do_revoke(), do_rollback(), do_savepoint(), do_scope(), do_set_names(), do_set_optimization_param(), do_set_query_trace(), do_set_session_variables(), do_set_sys_params(), do_set_timezone(), do_set_trigger(), do_set_xaction(), do_statement(), do_Trigger_involved, do_truncate(), do_update_stats(), do_vacuum(), ER_BLOCK_DDL_STMT, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_GENERIC_ERROR, ER_LK_UNILATERALLY_ABORTED, ER_PT_UNKNOWN_STATEMENT, er_set(), err, error(), HA_DISABLED, is_stmt_based_repl_type(), jsp_alter_stored_procedure(), jsp_create_stored_procedure(), jsp_drop_stored_procedure(), LC_FETCH_DIRTY_VERSION, LC_FETCH_MVCC_VERSION, locator_all_flush(), parser_node::next, NO_ERROR, parser_node::node_type, NULL, parser, prm_get_bool_value(), PRM_ID_BLOCK_DDL_STATEMENT, PT_2PC_ATTACH, PT_ALTER, PT_ALTER_INDEX, PT_ALTER_SERIAL, PT_ALTER_STORED_PROCEDURE, PT_ALTER_TRIGGER, PT_ALTER_USER, PT_COMMIT_WORK, PT_CREATE_ENTITY, PT_CREATE_INDEX, PT_CREATE_SERIAL, PT_CREATE_STORED_PROCEDURE, PT_CREATE_TRIGGER, PT_CREATE_USER, PT_DELETE, PT_DIFFERENCE, PT_DO, PT_DROP, PT_DROP_INDEX, PT_DROP_SERIAL, PT_DROP_SESSION_VARIABLES, PT_DROP_STORED_PROCEDURE, PT_DROP_TRIGGER, PT_DROP_USER, PT_DROP_VARIABLE, PT_EVALUATE, PT_EXECUTE_PREPARE, PT_EXECUTE_TRIGGER, pt_free_orphans(), PT_GET_OPT_LVL, PT_GET_STATS, PT_GET_TRIGGER, PT_GET_XACTION, PT_GRANT, PT_INSERT, PT_INTERSECTION, pt_is_ddl_statement(), PT_KILL_STMT, PT_MERGE, PT_METHOD_CALL, PT_PREPARE_TO_COMMIT, PT_QUERY_TRACE, PT_REMOVE_TRIGGER, PT_RENAME, PT_RENAME_TRIGGER, PT_REVOKE, PT_ROLLBACK_WORK, PT_SAVEPOINT, PT_SCOPE, PT_SELECT, PT_SET_NAMES, PT_SET_OPT_LVL, PT_SET_SESSION_VARIABLES, PT_SET_SYS_PARAMS, PT_SET_TIMEZONE, PT_SET_TRIGGER, PT_SET_XACTION, PT_TRUNCATE, PT_UNION, PT_UPDATE, PT_UPDATE_STATS, PT_VACUUM, qo_need_skip_execution(), parser_context::query_id, RESET_HOST_VARIABLES_IF_INTERNAL_STATEMENT, SET_HOST_VARIABLES_IF_INTERNAL_STATEMENT, parser_node::sql_user_text, TM_TRAN_READ_FETCH_VERSION, tran_abort_only_client(), and tran_was_latest_query_aborted().

Referenced by db_execute_and_keep_statement_local(), and do_scope().

Here is the caller graph for this function:

int do_execute_update ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 9119 of file execute_statement.c.

References assert, AU_RESTORE, AU_SAVE_AND_DISABLE, AU_SAVE_AND_ENABLE, parser_context::auto_param_count, CHECK_MODIFICATION_ERROR, cursor_free_self_list_id, db_abort_to_savepoint(), db_is_vclass(), pt_name_info::db_object, DEFAULT_EXEC_MODE, do_send_plan_trace_to_session(), do_set_trace_to_query_flag(), er_errid(), ER_GENERIC_ERROR, ER_LK_UNILATERALLY_ABORTED, er_msg(), err, execute_query(), EXECUTE_QUERY_WITH_COMMIT, pt_spec_info::flag, parser_context::flag, pt_spec_info::flat_entity_list, parser_context::host_var_count, parser_context::host_variables, if(), parser_node::info, parser_context::is_auto_commit, parser_context::is_xasl_pinned_reference, mq_generate_name(), pt_statement_info::name, parser_node::next, NO_ERROR, NOT_FROM_RESULT_CACHE, NULL, pt_update_info::object, pt_name_info::original, prm_get_bool_value(), PRM_ID_QUERY_TRACE, pt_end_query(), PT_HINT_LK_TIMEOUT, PT_IS_HINT_NODE, pt_record_error(), PT_SPEC_FLAG_UPDATE, qo_do_auto_parameterize(), parser_context::query_id, parser_context::query_trace, RESULT_CACHE_INHIBITED, pt_update_info::server_update, sm_decache_instances_after_query_executed_with_commit(), sm_flush_and_decache_objects(), sm_flush_objects(), pt_update_info::spec, pt_statement_info::spec, parser_context::statement_number, TM_TRAN_ISOLATION, TM_TRAN_WAIT_MSECS, TRAN_AUTO_COMMIT, tran_flush_to_commit(), TRAN_REP_READ, tran_reset_wait_times(), tran_system_savepoint(), tran_was_latest_query_committed(), qfile_list_id::tuple_cnt, pt_statement_info::update, update_class_attributes(), UPDATE_OBJECT, update_object_by_oid(), update_objs_for_list_file(), update_savepoint_number, pt_update_info::waitsecs_hint, and XASL_CACHE_PINNED_REFERENCE.

Referenced by do_execute_statement().

Here is the caller graph for this function:

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

Definition at line 12007 of file execute_statement.c.

References parser_context::abort, ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, pt_update_info::assignment, pt_insert_info::attr_list, pt_statement_info::check_option, pt_update_info::check_where, pt_insert_info::class_specs, cleanup(), parser_context::custom_print, db_error_string(), db_free_attribute_descriptor(), db_get_attribute_descriptor(), db_get_object(), db_is_vclass(), db_make_null(), db_make_object(), db_make_sequence(), DB_NOT_PARTITIONED_CLASS, pt_name_info::db_object, db_value_create(), dbt_abort_object(), dbt_create_object_internal(), dbt_finish_object(), dbt_set_label(), do_clear_insert_values(), do_evaluate_insert_values(), do_insert_at_server(), do_insert_checks(), do_on_duplicate_key_update(), pt_insert_info::do_replace, do_replace_into(), er_clear(), ER_DO_INSERT_TOO_MANY, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), parser_node::etc, pt_check_option_info::expr, pt_spec_info::flag, parser_context::flag, pt_spec_info::flat_entity_list, free_and_init, pt_insert_info::hint, i, if(), parser_node::info, pt_statement_info::insert, insert_object_attr(), insert_subquery_results(), pt_insert_info::into_var, pt_node_list_info::list, pt_node_list_info::list_type, log_get_mvcc_snapshot(), make_vmops(), pt_name_info::meta_class, mq_evaluate_check_option(), MSGCAT_RUNTIME_DBT_PUT_ERROR, MSGCAT_SET_PARSER_RUNTIME, pt_statement_info::name, parser_node::next, NO_ERROR, pt_statement_info::node_list, NULL, obt_quit(), obt_retain_after_finish(), obt_set_force_flush(), pt_insert_info::odku_assignments, pt_insert_info::odku_non_null_attrs, pt_name_info::original, parser_free_tree(), parser_walk_tree(), pt_associate_label_with_value_check_reference(), pt_chop_trailing_dots(), PT_ERRORmf3, pt_find_value_of_label(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_INSERT_VALUE, PT_IS_DEFAULT_VALUE, PT_IS_HINT_NODE, PT_IS_NAME_NODE, PT_IS_SUBQUERY, PT_IS_VALUE, pt_length_of_list(), PT_PARAMETER, PT_PRINT_DB_VALUE, pt_short_print(), qo_get_optimization_param(), qo_need_skip_execution(), QO_PARAM_LEVEL, parser_context::return_generated_keys, pt_insert_info::server_allowed, SERVER_INSERT_IS_ALLOWED, set_create_sequence(), set_free(), set_put_element(), sm_partitioned_class_type(), pt_insert_info::spec, pt_update_info::spec, pt_statement_info::spec, TM_TRAN_ISOLATION, TM_TRAN_WAIT_MSECS, TRAN_REP_READ, tran_reset_wait_times(), pt_statement_info::update, pt_insert_info::value_clauses, pt_insert_info::waitsecs_hint, and pt_insert_info::where.

Referenced by insert_local().

Here is the caller graph for this function:

int do_merge ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 15407 of file execute_statement.c.

References parser_context::abort, pt_expr_info::arg1, assert, ASSERT_ERROR_AND_SET, pt_merge_info::assignment, pt_merge_info::attr_list, AU_DISABLE, AU_ENABLE, parser_context::au_save, check_for_cons(), check_missing_non_null_attrs(), CHECK_MODIFICATION_ERROR, parser_node::column_number, cursor_free_self_list_id, db_abort_to_savepoint(), DB_FETCH_CLREAD_INSTWRITE, db_is_vclass(), pt_name_info::db_object, pt_merge_info::do_class_attrs, do_select_for_ins_upd(), er_errid(), ER_GENERIC_ERROR, ER_LK_UNILATERALLY_ABORTED, er_msg(), err, parser_node::etc, pt_statement_info::expr, parser_context::flag, pt_merge_info::flags, pt_spec_info::flat_entity_list, pt_merge_info::hint, parser_node::info, pt_merge_info::insert, insert_subquery_results(), pt_merge_info::into, parser_node::line_number, pt_node_list_info::list, pt_node_list_info::list_type, locator_fetch_class(), pt_statement_info::merge, merge_savepoint_number, mq_generate_name(), mq_translate(), pt_statement_info::name, NO_ERROR, pt_statement_info::node_list, NULL, obt_begin_insert_values(), pt_name_info::original, parser_copy_tree_list(), parser_free_tree(), pt_end_query(), pt_false_where(), pt_get_assignment_lists(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_IS_HINT_NODE, PT_IS_N_COLUMN_UPDATE_EXPR, PT_IS_SUBQUERY, PT_MERGE_INFO_HAS_UNIQUE, PT_META_ATTR, pt_record_error(), pt_report_to_ersys_with_statement(), pt_restore_assignment_links(), PT_SEMANTIC, pt_to_merge_insert_query(), pt_to_merge_update_query(), qmgr_end_query(), qo_need_skip_execution(), parser_context::query_id, sm_flush_objects(), pt_statement_info::spec, parser_context::statement_number, TM_TRAN_WAIT_MSECS, tran_reset_wait_times(), tran_system_savepoint(), tran_was_latest_query_ended(), pt_merge_info::update, update_check_for_constraints(), update_class_attributes(), update_objs_for_list_file(), pt_merge_info::value_clauses, and pt_merge_info::waitsecs_hint.

Referenced by do_statement(), and ehash_delete().

Here is the caller graph for this function:

static int do_on_duplicate_key_update ( PARSER_CONTEXT parser,
DB_OTMPL tpl,
PT_NODE update_stmt 
)
static
int do_prepare_delete ( PARSER_CONTEXT parser,
PT_NODE statement,
PT_NODE parent 
)

Definition at line 10106 of file execute_statement.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, AU_RESTORE, AU_SAVE_AND_DISABLE, xasl_stream::buffer, parser_node::cannot_prepare, pt_delete_info::class_specs, parser_context::context, pt_name_info::db_object, pt_statement_info::delete_, do_prepare_delete(), do_prepare_select(), parser_context::dont_prt_long_string, er_errid(), er_msg(), ER_OBJ_INVALID_ARGUMENTS, er_set(), ER_WARNING_SEVERITY, err, pt_spec_info::flag, parser_node::flag, parser_context::flag, pt_spec_info::flat_entity_list, free_and_init, parser_node::info, init_xasl_stream(), parser_context::long_string_skipped, mq_translate(), MSGCAT_RUNTIME_RESOURCES_EXHAUSTED, MSGCAT_SET_PARSER_RUNTIME, pt_statement_info::name, parser_node::next, NO_ERROR, NULL, parser_free_tree(), prepare_query(), parser_context::print_type_ambiguity, PT_CONVERT_RANGE, pt_copy_upddel_hints_to_select(), pt_enter_packing_buf(), PT_ERRORm, pt_exit_packing_buf(), pt_false_where(), pt_free_statement_xasl_id(), PT_HINT_USE_SBR, PT_INTERNAL_ERROR, PT_NODE_PRINT_TO_ALIAS, PT_PRINT_QUOTES, PT_PRINT_USER, pt_record_error(), PT_SPEC_FLAG_DELETE, pt_split_delete_stmt(), pt_to_delete_xasl(), pt_to_upd_del_query(), compile_context::recompile_xasl, S_DELETE, pt_delete_info::search_cond, compile_context::sha1, SHA1Compute(), sm_class_has_triggers(), pt_delete_info::spec, pt_statement_info::spec, compile_context::sql_hash_text, compile_context::sql_user_text, compile_context::sql_user_text_len, parser_context::statement_number, strlen, TR_EVENT_DELETE, TR_EVENT_STATEMENT_DELETE, pt_delete_info::using_index, pt_name_info::virt_object, while(), pt_delete_info::with, compile_context::xasl, xasl_stream::xasl_id, parser_node::xasl_id, and xts_map_xasl_to_stream().

Referenced by do_prepare_delete(), and do_prepare_statement().

Here is the caller graph for this function:

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

Definition at line 15827 of file execute_statement.c.

References parser_node::alias_print, pt_expr_info::arg1, ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, pt_merge_info::assignment, update_proc_node::assigns, pt_merge_info::attr_list, AU_RESTORE, AU_SAVE_AND_DISABLE, AU_SAVE_AND_ENABLE, xasl_stream::buffer, parser_node::cannot_prepare, check_for_cons(), check_missing_non_null_attrs(), cleanup(), parser_node::column_number, update_assignment::constant, parser_context::context, db_is_vclass(), pt_name_info::db_object, pt_merge_info::do_class_attrs, do_evaluate_default_expr(), do_prepare_select(), parser_context::dont_prt_long_string, er_errid(), ER_FAILED, er_msg(), ER_OBJ_INVALID_ARGUMENTS, er_set(), ER_WARNING_SEVERITY, err, pt_statement_info::expr, parser_node::flag, parser_context::flag, pt_merge_info::flags, pt_spec_info::flat_entity_list, free_and_init, pt_merge_info::has_delete, i, if(), parser_node::info, init_xasl_stream(), pt_merge_info::insert, INSERT_SELECT, pt_merge_info::into, parser_node::line_number, parser_context::long_string_skipped, xasl_node::merge, pt_statement_info::merge, pt_name_info::meta_class, mq_translate(), MSGCAT_RUNTIME_RESOURCES_EXHAUSTED, MSGCAT_SET_PARSER_RUNTIME, pt_statement_info::name, parser_node::next, NO_ERROR, parser_node::node_type, NULL, update_proc_node::num_assigns, parser_copy_tree_list(), parser_free_tree(), pr_clear_value(), prepare_query(), parser_context::print_type_ambiguity, prm_get_integer_value(), PRM_ID_INSERT_MODE, xasl_node::proc, PT_CONVERT_RANGE, pt_enter_packing_buf(), PT_ERRORm, pt_exit_packing_buf(), pt_false_where(), pt_find_omitted_default_expr(), pt_get_assignment_lists(), pt_has_error, PT_IS_N_COLUMN_UPDATE_EXPR, PT_MERGE_INFO_HAS_UNIQUE, PT_MERGE_INFO_INSERT_ONLY, PT_MERGE_INFO_SERVER_OP, PT_META_ATTR, PT_NAME, PT_NODE_PRINT_TO_ALIAS, PT_NORMAL, PT_PRINT_QUOTES, PT_PRINT_USER, pt_record_error(), pt_restore_assignment_links(), pt_to_merge_update_query(), pt_to_merge_xasl(), parser_node::recompile, compile_context::recompile_xasl, compile_context::sha1, SHA1Compute(), sm_class_has_triggers(), pt_statement_info::spec, compile_context::sql_hash_text, compile_context::sql_user_text, parser_node::sql_user_text, compile_context::sql_user_text_len, parser_node::sql_user_text_len, parser_context::statement_number, strlen, TR_EVENT_DELETE, TR_EVENT_INSERT, TR_EVENT_STATEMENT_DELETE, TR_EVENT_STATEMENT_INSERT, TR_EVENT_STATEMENT_UPDATE, TR_EVENT_UPDATE, xasl_node::update, pt_merge_info::update, update_check_for_constraints(), update_check_having_meta_attr(), merge_proc_node::update_xasl, parser_node::use_plan_cache, pt_merge_info::value_clauses, compile_context::xasl, xasl_stream::xasl_id, parser_node::xasl_id, and xts_map_xasl_to_stream().

Referenced by do_prepare_statement().

Here is the caller graph for this function:

int do_prepare_select ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 14078 of file execute_statement.c.

References parser_node::alias_print, ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, AU_RESTORE, AU_SAVE_AND_DISABLE, xasl_stream::buffer, parser_node::cannot_prepare, CHECK_MODIFICATION_ERROR, parser_context::context, parser_context::dont_prt_long_string, er_errid(), ER_FAILED, ER_OBJ_INVALID_ARGUMENTS, er_set(), ER_WARNING_SEVERITY, err, parser_node::flag, parser_context::flag, free_and_init, xasl_node::header, parser_node::info, init_xasl_stream(), parser_node::is_click_counter, parser_context::long_string_skipped, MSGCAT_RUNTIME_RESOURCES_EXHAUSTED, MSGCAT_SET_PARSER_RUNTIME, NO_ERROR, NULL, pt_query_info::oids_included, parser_generate_xasl(), prepare_query(), parser_context::print_type_ambiguity, PT_CONVERT_RANGE, pt_enter_packing_buf(), PT_ERRORm, pt_exit_packing_buf(), pt_false_where(), pt_has_error, PT_NODE_PRINT_TO_ALIAS, PT_PRINT_DIFFERENT_SYSTEM_PARAMETERS, PT_PRINT_QUOTES, PT_PRINT_USER, pt_recompile_for_limit_optimizations(), pt_report_to_ersys(), pt_reset_error(), PT_SEMANTIC, pt_statement_info::query, parser_node::recompile, compile_context::recompile_xasl, RESULT_CACHE_INHIBITED, compile_context::sha1, SHA1Compute(), compile_context::sql_hash_text, compile_context::sql_user_text, parser_node::sql_user_text, compile_context::sql_user_text_len, parser_node::sql_user_text_len, strlen, parser_node::use_plan_cache, compile_context::xasl, xasl_node_header::xasl_flag, xasl_stream::xasl_header, xasl_stream::xasl_id, parser_node::xasl_id, and xts_map_xasl_to_stream().

Referenced by do_prepare_delete(), do_prepare_merge(), do_prepare_statement(), and do_prepare_update().

Here is the caller graph for this function:

int do_prepare_session_statement ( PARSER_CONTEXT parser,
PT_NODE statement 
)
int do_prepare_to_commit ( PARSER_CONTEXT parser,
PT_NODE statement 
)
int do_prepare_update ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 8738 of file execute_statement.c.

References pt_expr_info::arg1, ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, pt_update_info::assignment, update_proc_node::assigns, AU_RESTORE, AU_SAVE_AND_DISABLE, bool, xasl_stream::buffer, pt_update_info::class_specs, update_assignment::constant, parser_context::context, pt_name_info::db_object, do_prepare_select(), parser_context::dont_prt_long_string, er_errid(), er_msg(), ER_OBJ_INVALID_ARGUMENTS, er_set(), ER_WARNING_SEVERITY, err, pt_statement_info::expr, pt_spec_info::flag, parser_node::flag, parser_context::flag, pt_spec_info::flat_entity_list, free_and_init, i, parser_node::info, init_xasl_stream(), locator_flush_class(), parser_context::long_string_skipped, pt_name_info::meta_class, mq_translate(), MSGCAT_RUNTIME_RESOURCES_EXHAUSTED, MSGCAT_SET_PARSER_RUNTIME, pt_statement_info::name, parser_node::next, NO_ERROR, NULL, update_proc_node::num_assigns, pt_update_info::order_by, pt_update_info::orderby_for, parser_free_tree(), pr_clear_value(), prepare_query(), parser_context::print_type_ambiguity, xasl_node::proc, pt_append_omitted_on_update_expr_assignments(), PT_CONVERT_RANGE, pt_copy_upddel_hints_to_select(), pt_enter_packing_buf(), PT_ERRORm, pt_exit_packing_buf(), pt_false_where(), pt_get_assignment_lists(), PT_HINT_USE_SBR, PT_INTERNAL_ERROR, PT_IS_N_COLUMN_UPDATE_EXPR, PT_META_ATTR, PT_NODE_PRINT_TO_ALIAS, PT_PRINT_QUOTES, PT_PRINT_USER, pt_record_error(), pt_restore_assignment_links(), PT_SPEC_FLAG_UPDATE, pt_to_upd_del_query(), pt_to_update_xasl(), compile_context::recompile_xasl, S_UPDATE, pt_update_info::search_cond, pt_update_info::server_update, compile_context::sha1, SHA1Compute(), sm_class_has_triggers(), pt_update_info::spec, pt_statement_info::spec, compile_context::sql_hash_text, compile_context::sql_user_text, compile_context::sql_user_text_len, parser_context::statement_number, strlen, TR_EVENT_STATEMENT_UPDATE, TR_EVENT_UPDATE, xasl_node::update, pt_statement_info::update, update_check_for_constraints(), update_check_having_meta_attr(), parser_node::use_plan_cache, pt_update_info::using_index, pt_name_info::virt_object, pt_update_info::with, compile_context::xasl, xasl_stream::xasl_id, parser_node::xasl_id, and xts_map_xasl_to_stream().

Referenced by do_prepare_statement().

Here is the caller graph for this function:

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

Definition at line 11897 of file execute_statement.c.

References cleanup(), db_is_deleted(), delete_object_tuple(), do_find_unique_constraint_violations(), error(), free_and_init, i, NO_ERROR, NULL, and ws_mop().

Referenced by do_insert_template(), and insert_subquery_results().

Here is the caller graph for this function:

int do_replicate_statement ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 14632 of file execute_statement.c.

References pt_statement_info::alter, assert, assert_release, pt_statement_info::create_entity, CUBRID_STMT_ALTER_CLASS, CUBRID_STMT_ALTER_INDEX, CUBRID_STMT_ALTER_SERIAL, CUBRID_STMT_ALTER_STORED_PROCEDURE, CUBRID_STMT_ALTER_USER, CUBRID_STMT_CREATE_CLASS, CUBRID_STMT_CREATE_INDEX, CUBRID_STMT_CREATE_SERIAL, CUBRID_STMT_CREATE_STORED_PROCEDURE, CUBRID_STMT_CREATE_TRIGGER, CUBRID_STMT_CREATE_USER, CUBRID_STMT_DELETE, CUBRID_STMT_DROP_CLASS, CUBRID_STMT_DROP_INDEX, CUBRID_STMT_DROP_SERIAL, CUBRID_STMT_DROP_STORED_PROCEDURE, CUBRID_STMT_DROP_TRIGGER, CUBRID_STMT_DROP_USER, CUBRID_STMT_GRANT, CUBRID_STMT_INSERT, CUBRID_STMT_REMOVE_TRIGGER, CUBRID_STMT_RENAME_CLASS, CUBRID_STMT_RENAME_TRIGGER, CUBRID_STMT_REVOKE, CUBRID_STMT_SET_TRIGGER, CUBRID_STMT_TRUNCATE, CUBRID_STMT_UPDATE, CUBRID_STMT_UPDATE_STATS, db_get_user_name(), db_string_free(), repl_info_statement::db_user, pt_statement_info::drop, pt_alter_info::entity_name, pt_create_entity_info::entity_name, pt_spec_info::entity_name, ER_IT_UNKNOWN_VARIABLE, ER_OUT_OF_VIRTUAL_MEMORY, error(), parser_context::host_var_count, parser_context::host_variables, i, pt_drop_info::if_exists, pt_statement_info::index, pt_index_info::indexed_class, repl_info::info, parser_node::info, parser_varchar::length, locator_flush_replication_info(), log_does_allow_replication(), repl_info_statement::name, NO_ERROR, parser_node::node_type, NULL, pt_rename_info::old_name, PT_ALTER, PT_ALTER_INDEX, PT_ALTER_SERIAL, PT_ALTER_STORED_PROCEDURE, PT_ALTER_TRIGGER, PT_ALTER_USER, PT_CREATE_ENTITY, PT_CREATE_INDEX, PT_CREATE_SERIAL, PT_CREATE_STORED_PROCEDURE, PT_CREATE_TRIGGER, PT_CREATE_USER, PT_DELETE, PT_DROP, PT_DROP_INDEX, PT_DROP_SERIAL, PT_DROP_STORED_PROCEDURE, PT_DROP_TRIGGER, PT_DROP_USER, PT_DROP_VARIABLE, pt_get_varchar_bytes(), PT_GRANT, PT_INSERT, pt_is_ddl_statement(), pt_print_bytes(), pt_print_db_value(), PT_REMOVE_TRIGGER, PT_RENAME, PT_RENAME_TRIGGER, PT_REVOKE, PT_TRUNCATE, PT_UPDATE, PT_UPDATE_STATS, pt_statement_info::rename, repl_info::repl_info_type, REPL_INFO_TYPE_SBR, pt_statement_info::spec, pt_drop_info::spec_list, parser_node::sql_user_text, parser_node::sql_user_text_len, repl_info_statement::statement_type, repl_info_statement::stmt_text, strlen, repl_info_statement::sys_prm_context, sysprm_print_parameters_for_ha_repl(), and truncate_need_repl_log().

Referenced by do_execute_statement(), and do_statement().

Here is the caller graph for this function:

int do_select ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 13869 of file execute_statement.c.

References do_select_internal().

Referenced by do_execute_merge(), do_statement(), insert_subquery_results(), pt_evaluate_tree_internal(), pt_set_table_to_db(), and select_delete_list().

Here is the caller graph for this function:

int do_select_for_ins_upd ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 13883 of file execute_statement.c.

References do_select_internal().

Referenced by do_merge(), and get_select_list_to_update().

Here is the caller graph for this function:

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

Definition at line 13898 of file execute_statement.c.

References assert, AU_DISABLE, AU_ENABLE, parser_context::au_save, parser_context::auto_param_count, xasl_stream::buffer, xasl_stream::buffer_size, CHECK_MODIFICATION_ERROR, db_value_clear(), db_value_copy(), DEFAULT_EXEC_MODE, do_send_plan_trace_to_session(), do_set_trace_to_query_flag(), DONT_COLLECT_EXEC_STATS, parser_context::dont_collect_exec_stats, er_errid(), ER_FAILED, ER_REGU_SYSTEM, error(), parser_node::etc, parser_node::flag, parser_context::flag, free_and_init, parser_context::host_var_count, parser_context::host_variables, i, parser_node::info, init_xasl_stream(), pt_query_info::into_list, parser_context::is_auto_commit, parser_node::is_click_counter, MSGCAT_RUNTIME_PARM_IS_NOT_SET, MSGCAT_RUNTIME_RESOURCES_EXHAUSTED, MSGCAT_SET_PARSER_RUNTIME, pt_statement_info::name, regu_variable_list_node::next, NO_ERROR, parser_node::node_type, NULL, pt_name_info::original, xasl_node::outptr_list, parser_generate_xasl(), prepare_and_execute_query(), prm_get_bool_value(), PRM_ID_QUERY_TRACE, pt_associate_label_with_value_check_reference(), PT_CONVERT_RANGE, pt_enter_packing_buf(), PT_ERRORm, PT_ERRORmf, pt_exit_packing_buf(), pt_false_where(), pt_get_one_tuple_from_list_id(), pt_has_error, pt_length_of_list(), PT_NAME, PT_NODE_PRINT_TO_ALIAS, pt_null_etc(), pt_report_to_ersys(), pt_reset_error(), PT_SEMANTIC, pt_statement_info::query, parser_context::query_id, parser_context::query_trace, REGU_VARIABLE_UPD_INS_LIST, TRAN_AUTO_COMMIT, valptr_list_node::valptrp, and xts_map_xasl_to_stream().

Referenced by do_select(), and do_select_for_ins_upd().

Here is the caller graph for this function:

static void do_set_trace_to_query_flag ( QUERY_FLAG query_flag)
static
int do_statement ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 2943 of file execute_statement.c.

References parser_node::alias_print, ARG_FILE_LINE, assert, db_set_read_fetch_instance_version(), db_set_suppress_repl_on_transaction(), do_alter(), do_alter_index(), do_alter_serial(), do_alter_trigger(), do_alter_user(), do_attach(), do_call_method(), do_check_delete_trigger(), do_check_insert_trigger(), do_check_internal_statements(), do_check_merge_trigger(), do_check_update_trigger(), do_commit(), do_create_entity(), do_create_index(), do_create_serial(), do_create_trigger(), do_create_user(), do_delete(), do_drop(), do_drop_index(), do_drop_serial(), do_drop_trigger(), do_drop_user(), do_drop_variable(), do_evaluate(), do_execute_do(), do_execute_trigger(), do_get_optimization_param(), do_get_stats(), do_get_trigger(), do_get_xaction(), do_grant(), do_insert(), do_merge(), do_prepare_to_commit(), do_remove_trigger(), do_rename(), do_rename_trigger(), do_replicate_statement(), do_revoke(), do_rollback(), do_savepoint(), do_scope(), do_select(), do_set_names(), do_set_optimization_param(), do_set_query_trace(), do_set_sys_params(), do_set_timezone(), do_set_trigger(), do_set_xaction(), do_truncate(), do_update(), do_update_stats(), ER_BLOCK_DDL_STMT, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_GENERIC_ERROR, ER_LK_UNILATERALLY_ABORTED, ER_PT_UNKNOWN_STATEMENT, er_set(), error(), HA_DISABLED, is_stmt_based_repl_type(), jsp_alter_stored_procedure(), jsp_create_stored_procedure(), jsp_drop_stored_procedure(), LC_FETCH_DIRTY_VERSION, LC_FETCH_MVCC_VERSION, locator_all_flush(), NO_ERROR, parser_node::node_type, NULL, prm_get_bool_value(), PRM_ID_BLOCK_DDL_STATEMENT, PT_2PC_ATTACH, PT_ALTER, PT_ALTER_INDEX, PT_ALTER_SERIAL, PT_ALTER_STORED_PROCEDURE, PT_ALTER_TRIGGER, PT_ALTER_USER, PT_COMMIT_WORK, PT_CREATE_ENTITY, PT_CREATE_INDEX, PT_CREATE_SERIAL, PT_CREATE_STORED_PROCEDURE, PT_CREATE_TRIGGER, PT_CREATE_USER, PT_DELETE, PT_DIFFERENCE, PT_DO, PT_DROP, PT_DROP_INDEX, PT_DROP_SERIAL, PT_DROP_SESSION_VARIABLES, PT_DROP_STORED_PROCEDURE, PT_DROP_TRIGGER, PT_DROP_USER, PT_DROP_VARIABLE, PT_EVALUATE, PT_EXECUTE_PREPARE, PT_EXECUTE_TRIGGER, pt_free_orphans(), PT_GET_OPT_LVL, PT_GET_STATS, PT_GET_TRIGGER, PT_GET_XACTION, PT_GRANT, PT_INSERT, PT_INTERSECTION, pt_is_ddl_statement(), PT_KILL_STMT, PT_MERGE, PT_METHOD_CALL, PT_PREPARE_TO_COMMIT, PT_QUERY_TRACE, PT_REMOVE_TRIGGER, PT_RENAME, PT_RENAME_TRIGGER, PT_REVOKE, PT_ROLLBACK_WORK, PT_SAVEPOINT, PT_SCOPE, PT_SELECT, PT_SET_NAMES, PT_SET_OPT_LVL, PT_SET_SESSION_VARIABLES, PT_SET_SYS_PARAMS, PT_SET_TIMEZONE, PT_SET_TRIGGER, PT_SET_XACTION, PT_TRUNCATE, PT_UNION, PT_UPDATE, PT_UPDATE_STATS, PT_VACUUM, qo_need_skip_execution(), RESET_HOST_VARIABLES_IF_INTERNAL_STATEMENT, SET_HOST_VARIABLES_IF_INTERNAL_STATEMENT, parser_node::sql_user_text, TM_TRAN_READ_FETCH_VERSION, tran_abort_only_client(), and tran_was_latest_query_aborted().

Referenced by db_execute_and_keep_statement_local(), do_execute_statement(), do_scope(), and execute_create_select_query().

Here is the caller graph for this function:

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

Definition at line 2022 of file execute_statement.c.

References parser_node::alias_print, ARG_FILE_LINE, assert, assert_release, pt_statement_info::attr_def, pt_attr_def_info::attr_name, AU_DISABLE, AU_ENABLE, au_fetch_instance_force(), AU_FETCH_WRITE, pt_attr_def_info::auto_increment, AUTO_INCREMENT_SERIAL_NAME_EXTRA_LENGTH, CT_SERIAL_NAME, pt_statement_info::data_type, parser_node::data_type, DB_BIGINT_MAX, DB_EQ, db_get(), DB_INT16_MAX, DB_INT32_MAX, DB_LT, db_make_bigint(), db_make_int(), db_make_null(), DB_MAX_NUMERIC_PRECISION, DB_SERIAL_MAX, DB_TYPE_NUMERIC, db_value_clone(), db_value_domain_init(), dbt_abort_object(), dbt_edit_object(), dbt_finish_object(), dbt_put_internal(), do_get_serial_obj_id(), ER_AUTO_INCREMENT_STARTVAL_MUST_LT_MAXVAL, er_errid(), ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, ER_QPROC_DB_SERIAL_NOT_FOUND, ER_QPROC_SERIAL_NOT_FOUND, er_set(), error(), free_and_init, i, parser_node::info, INTL_CODESET_ISO88591, LC_FETCH_MVCC_VERSION, pt_statement_info::name, NO_ERROR, NULL, numeric_coerce_string_to_num(), numeric_db_value_coerce_to_num(), OID_ISNULL, OID_SET_NULL, pt_name_info::original, p, pr_clear_value(), pt_data_type_info::precision, PT_TYPE_BIGINT, PT_TYPE_INTEGER, PT_TYPE_NUMERIC, PT_TYPE_SMALLINT, SERIAL_ATTR_CURRENT_VAL, SERIAL_ATTR_MAX_VAL, serial_decache(), SET_AUTO_INCREMENT_SERIAL_NAME, sm_downcase_name(), sm_find_class(), SM_MAX_IDENTIFIER_LENGTH, strlen, tp_value_compare(), parser_node::type_enum, ws_decache(), and WS_ISDIRTY.

Referenced by do_change_att_schema_only().

Here is the caller graph for this function:

static int do_vacuum ( PARSER_CONTEXT parser,
PT_NODE statement 
)
static

Definition at line 17391 of file execute_statement.c.

References assert, cvacuum(), error(), NO_ERROR, NULL, and PT_IS_VACUUM_NODE.

Referenced by do_execute_statement().

Here is the caller graph for this function:

static char * extract_att_name ( const char *  str)
static

Definition at line 4085 of file execute_statement.c.

References CAST_STRLEN, free_and_init, intl_mbs_chr(), intl_mbs_ncpy(), and NULL.

Referenced by make_cst_item_value().

Here is the caller graph for this function:

static int extract_bt_idx ( const char *  str)
static

Definition at line 4124 of file execute_statement.c.

References intl_mbs_chr().

Referenced by make_cst_item_value().

Here is the caller graph for this function:

static double get_priority ( PARSER_CONTEXT parser,
PT_NODE node 
)
static

Definition at line 5493 of file execute_statement.c.

References db_get_double(), DOMAIN_COMPATIBLE, NULL, pt_value_to_db(), tp_Double_domain, tp_value_coerce(), and TR_LOWEST_PRIORITY.

Referenced by do_alter_trigger(), and do_create_trigger().

Here is the caller graph for this function:

static const char * get_savepoint_name_from_db_value ( DB_VALUE val)
static
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 
)
static
static int has_unique_constraint ( DB_OBJECT mop)
static

Definition at line 9870 of file execute_statement.c.

References db_get_constraints(), sm_class_constraint::next, NULL, SM_IS_CONSTRAINT_UNIQUE_FAMILY, and sm_class_constraint::type.

Referenced by delete_list_by_oids(), and update_object_tuple().

Here is the caller graph for this function:

static void init_compile_context ( PARSER_CONTEXT parser)
static
static void init_xasl_stream ( XASL_STREAM stream)
static
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 
)
static
static int insert_subquery_results ( PARSER_CONTEXT parser,
PT_NODE statement,
PT_NODE values_list,
PT_NODE class_,
const char **  savepoint_name 
)
static

Definition at line 12569 of file execute_statement.c.

References ARG_FILE_LINE, assert, pt_update_info::assignment, pt_insert_info::attr_list, pt_merge_info::attr_list, pt_statement_info::check_option, pt_update_info::check_where, pt_merge_info::check_where, pt_insert_info::class_specs, cleanup(), cursor_close(), cursor_free_self_list_id, cursor_get_tuple_value_list(), cursor_next_tuple(), cursor_open(), odku_tuple_value_arg::cursor_p, DB_CURSOR_SUCCESS, db_free_attribute_descriptor(), db_get_attribute_descriptor(), db_is_vclass(), db_make_null(), db_make_object(), db_make_sequence(), DB_NOT_PARTITIONED_CLASS, pt_name_info::db_object, db_value_clear(), db_value_create(), dbt_abort_object(), dbt_create_object_internal(), dbt_finish_object(), do_create_odku_stmt(), do_on_duplicate_key_update(), pt_insert_info::do_replace, do_replace_into(), do_select(), ER_DO_INSERT_TOO_MANY, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_GENERIC_ERROR, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), parser_node::etc, EXCLUDE_HIDDEN_COLUMNS, pt_check_option_info::expr, pt_spec_info::flag, parser_context::flag, free_and_init, i, parser_node::info, pt_merge_info::insert, pt_statement_info::insert, insert_object_attr(), insert_savepoint_number, odku_tuple_value_arg::insert_stmt, obj_template::is_autoincrement_set, pt_node_list_info::list, pt_node_list_info::list_type, pt_statement_info::merge, mq_evaluate_check_option(), mq_generate_name(), pt_statement_info::name, parser_node::next, NO_ERROR, pt_statement_info::node_list, parser_node::node_type, NULL, obt_quit(), obt_retain_after_finish(), obt_set_force_flush(), pt_insert_info::odku_assignments, pt_name_info::original, parser_free_tree(), parser_walk_tree(), obj_template::pruning_type, pt_append_odku_references(), PT_DIFFERENCE, pt_end_query(), pt_get_select_list(), pt_has_error, PT_INSERT, PT_INTERSECTION, PT_IS_SUBQUERY, pt_length_of_select_list(), PT_MERGE, PT_NODE_LIST, PT_SELECT, PT_UNION, cursor_id::query_id, parser_context::query_id, parser_context::return_generated_keys, set_create_sequence(), set_free(), set_put_element(), sm_partitioned_class_type(), pt_insert_info::spec, pt_update_info::spec, pt_statement_info::spec, TM_TRAN_ISOLATION, TRAN_REP_READ, tran_system_savepoint(), pt_statement_info::update, and pt_insert_info::where.

Referenced by do_execute_merge(), do_insert_template(), and do_merge().

Here is the caller graph for this function:

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

Definition at line 12974 of file execute_statement.c.

References parser_node::info, intl_identifier_casecmp(), pt_statement_info::name, parser_node::next, NULL, and pt_name_info::original.

Referenced by check_missing_non_null_attrs().

Here is the caller graph for this function:

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

Definition at line 11960 of file execute_statement.c.

References au_fetch_class(), AU_FETCH_READ, AU_SELECT, error(), sm_class::inheritance, NO_ERROR, NULL, sm_is_partitioned_class(), and sm_class::users.

Referenced by do_insert_checks().

Here is the caller graph for this function:

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

Definition at line 5226 of file execute_statement.c.

References ml_ext_free(), ml_find(), db_objlist::next, NULL, and db_objlist::op.

Referenced by convert_speclist_to_objlist().

Here is the caller graph for this function:

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

Definition at line 8054 of file execute_statement.c.

References pt_to_update_xasl().

Referenced by update_at_server().

Here is the caller graph for this function:

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

Definition at line 6854 of file execute_statement.c.

References parser_node::next, and NULL.

static bool update_check_having_meta_attr ( PARSER_CONTEXT parser,
PT_NODE assignment 
)
static
static int update_object_attribute ( PARSER_CONTEXT parser,
DB_OTMPL otemplate,
PT_NODE name,
DB_ATTDESC attr_desc,
DB_VALUE value 
)
static
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 
)
static

Definition at line 6988 of file execute_statement.c.

References assert, client_update_info::attr_desc, au_fetch_class(), AU_FETCH_READ, AU_SELECT, pt_statement_info::check_option, client_update_class_info::check_where, client_update_class_info::class_mop, db_get_attribute_descriptor(), db_get_object(), db_is_deleted(), DB_IS_NULL, db_is_vclass(), DB_NOT_PARTITIONED_CLASS, pt_name_info::db_object, db_real_instance(), client_update_info::db_val, db_value_clear(), dbt_abort_object(), dbt_edit_object(), dbt_finish_object(), delete_object_tuple(), do_Trigger_involved, er_clear(), er_errid(), ER_GENERIC_ERROR, ER_HEAP_UNKNOWN_OBJECT, error(), pt_check_option_info::expr, client_update_class_info::first_assign, pt_spec_info::flat_entity_list, obj_template::force_check_not_null, has_unique_constraint(), parser_node::info, client_update_info::is_const, locator_flush_instance(), mq_evaluate_check_option(), pt_statement_info::name, client_update_info::next, NO_ERROR, NULL, obt_disable_serializable_conflict_checking(), obt_disable_unique_checking(), obt_set_force_flush(), client_update_class_info::oid, ON_DUPLICATE_KEY_UPDATE, pt_name_info::original, client_update_class_info::pruning_type, obj_template::pruning_type, client_update_class_info::smclass, client_update_class_info::spec, pt_statement_info::spec, client_update_info::upd_col_name, update_object_attribute(), ws_class_mop(), and ws_mop_compare().

Referenced by update_object_by_oid(), and update_objs_for_list_file().

Here is the caller graph for this function:

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

Variable Documentation

CST_ITEM cst_item_tbl[]
static
Initial value:
= {
{CST_NOBJECTS, "#objects", -1, -1},
{CST_NPAGES, "#pages", -1, -1},
{CST_NATTRIBUTES, "#attributes", -1, -1},
{CST_BT_NKEYS, "#keys", 0, 0},
{CST_UNDEFINED, "", 0, 0}
}

Definition at line 3976 of file execute_statement.c.

int delete_savepoint_number = 0
static

Definition at line 9391 of file execute_statement.c.

Referenced by delete_list_by_oids(), do_delete(), and do_execute_delete().

int insert_savepoint_number = 0
static

Definition at line 10743 of file execute_statement.c.

Referenced by insert_local(), and insert_subquery_results().

int merge_savepoint_number = 0
static

Definition at line 15231 of file execute_statement.c.

Referenced by do_execute_merge(), and do_merge().

int tr_savepoint_number = 0
static

Definition at line 5204 of file execute_statement.c.

Referenced by check_merge_trigger(), and check_trigger().

int update_savepoint_number = 0
static

Definition at line 6812 of file execute_statement.c.

Referenced by do_execute_update(), do_update(), and update_objs_for_list_file().