CUBRID Engine
latest
|
#include "config.h"
#include <assert.h>
#include "authenticate.h"
#include "dbi.h"
#include "parser.h"
#include "semantic_check.h"
#include "locator_cl.h"
#include "memory_alloc.h"
#include "schema_manager.h"
#include "parser_message.h"
#include "view_transform.h"
#include "intl_support.h"
#include "server_interface.h"
#include "network_interface_cl.h"
#include "execute_statement.h"
#include "transaction_cl.h"
#include "dbtype.h"
Go to the source code of this file.
Classes | |
struct | trigger_exec_info |
struct | pt_class_locks |
Typedefs | |
typedef struct trigger_exec_info | TRIGGER_EXEC_INFO |
typedef struct pt_class_locks | PT_CLASS_LOCKS |
Enumerations | |
enum | pt_order_by_adjustment { PT_ADD_ONE, PT_TIMES_TWO } |
typedef struct pt_class_locks PT_CLASS_LOCKS |
typedef struct trigger_exec_info TRIGGER_EXEC_INFO |
|
static |
Definition at line 687 of file compile.c.
References pt_class_locks::allocated_count, pt_class_locks::classes, pt_spec_info::entity_name, ER_FAILED, pt_class_locks::flags, parser_node::info, LC_CLASS, LC_FETCH_CURRENT_VERSION, LC_PREF_FLAG_LOCK, locator_fetch_mode_to_lock(), pt_class_locks::lock_type, pt_class_locks::locks, MSGCAT_RUNTIME_OUT_OF_MEMORY, MSGCAT_SET_PARSER_RUNTIME, NA_LOCK, pt_statement_info::name, NO_ERROR, NULL, pt_class_locks::num_classes, pt_class_locks::only_all, pt_spec_info::only_all, pt_name_info::original, PT_ERRORmf, PT_ONLY, sm_downcase_name(), pt_statement_info::spec, and strlen.
Referenced by pt_find_lck_class_from_partition(), and pt_find_lck_classes().
|
static |
Definition at line 242 of file compile.c.
References pt_union_info::arg1, pt_union_info::arg2, assert, db_value::data, pt_value_info::data_value, DB_ROW_OIDS, pt_value_info::db_value, pt_sort_spec_info::expr, pt_select_info::from, db_data::i, pt_data_value::i, parser_node::info, pt_select_info::list, parser_node::next, parser_node::node_type, NULL, pt_query_info::oids_included, pt_query_info::order_by, p, parser_free_tree(), pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, PT_DIFFERENCE, pt_get_select_list(), PT_INTERSECTION, PT_IS_QUERY_NODE_TYPE, PT_IS_VALUE_QUERY, PT_SELECT, PT_SPEC, pt_spec_to_oid_attr(), PT_UNION, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_union_info::select_list, pt_statement_info::sort_spec, pt_value_info::text, pt_query_info::union_, and pt_statement_info::value.
Referenced by pt_add_row_classoid_name(), pt_add_row_oid(), and pt_add_row_oid_name().
PT_NODE* pt_add_row_classoid_name | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement, | ||
int | server_op | ||
) |
Definition at line 361 of file compile.c.
References CLASSOID_NAME, HIDDEN_CLASSOID_NAME, and pt_add_oid_to_select_list().
Referenced by pt_mvcc_prepare_upd_del_select(), pt_to_merge_update_query(), and pt_to_upd_del_query().
PT_NODE* pt_add_row_oid | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement | ||
) |
Definition at line 333 of file compile.c.
References pt_add_oid_to_select_list(), and VIEW_OID.
Referenced by db_compile_statement_local().
PT_NODE* pt_add_row_oid_name | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement | ||
) |
Definition at line 347 of file compile.c.
References OID_NAME, and pt_add_oid_to_select_list().
Referenced by mq_translate_subqueries(), mq_virtual_queries(), pt_mvcc_prepare_upd_del_select(), pt_rewrite_derived_for_upd_del(), pt_to_merge_update_query(), and pt_to_upd_del_query().
PT_NODE* pt_class_pre_fetch | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement | ||
) |
Definition at line 431 of file compile.c.
References pt_class_locks::allocated_count, pt_statement_info::alter, pt_alter_info::alter_clause, pt_statement_info::attr_def, pt_alter_info::attr_mthd, pt_class_locks::classes, cleanup(), pt_alter_info::code, pt_attr_def_info::constrain_not_null, pt_statement_info::create_entity, db_error_string(), pt_create_entity_info::entity_type, er_errid(), ER_LK_UNILATERALLY_ABORTED, ER_TM_SERVER_DOWN_UNILATERALLY_ABORTED, pt_class_locks::flags, free_and_init, parser_node::info, LC_CLASSNAME_ERROR, LC_CLASSNAME_EXIST, parser_context::lcks_classes, locator_lockhint_classes(), pt_class_locks::locks, MSGCAT_RUNTIME_OUT_OF_MEMORY, MSGCAT_SET_PARSER_RUNTIME, parser_node::next, NO_ERROR, parser_node::node_type, NULL, NULL_LOCK, pt_class_locks::num_classes, parser_context::num_lcks_classes, pt_class_locks::only_all, parser_free_lcks_classes(), parser_walk_tree(), PT_ADD_ATTR_MTHD, PT_ALTER, PT_CLASS, pt_count_entities(), PT_CREATE_ENTITY, PT_DELETE, PT_DIFFERENCE, PT_ERRORc, PT_ERRORmf, pt_find_lck_classes(), pt_has_error, PT_INSERT, PT_INTERSECTION, PT_MERGE, pt_resolve_cte_specs(), PT_SELECT, pt_set_class_chn(), PT_UNION, PT_UPDATE, S_LOCK, TM_TRAN_ISOLATION, TM_TRAN_REP_READ_LOCK, tran_lock_rep_read(), TRAN_REPEATABLE_READ, and X_LOCK.
Referenced by db_compile_statement_local(), and sm_virtual_queries().
PT_NODE* pt_compile | ( | PARSER_CONTEXT * | parser, |
PT_NODE *volatile | statement | ||
) |
Definition at line 380 of file compile.c.
References parser_node::next, NULL, PT_CLEAR_JMP_ENV, pt_semantic_check(), and PT_SET_JMP_ENV.
Referenced by db_compile_statement_local(), do_alter(), execute_create_select_query(), mq_get_expression(), mq_translate_subqueries(), mq_virtual_queries(), pt_check_alter_partition(), pt_compile_trigger_stmt(), and pt_get_select_query_columns().
PT_NODE* pt_compile_trigger_stmt | ( | PARSER_CONTEXT * | parser, |
const char * | trigger_stmt, | ||
DB_OBJECT * | class_op, | ||
const char * | name1, | ||
const char * | name2 | ||
) |
Definition at line 1018 of file compile.c.
References assert, parser_node::column_number, db_get_class_name(), pt_spec_info::entity_name, PT_ZZ_ERROR_MSG_INFO::error_message, pt_statement_info::error_msg, pt_trigger_action_info::expression, parser_node::flag, pt_spec_info::id, parser_node::info, intl_mbs_ncasecmp(), trigger_exec_info::is_update_object, parser_node::line_number, pt_name_info::meta_class, mq_translate(), pt_statement_info::name, trigger_exec_info::name2, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_spec_info::only_all, pt_name_info::original, parser_copy_tree(), parser_new_node(), parser_parse_string_use_sys_charset(), pt_append_string(), PT_CLASS, pt_compile(), PT_DELETE, pt_get_errors(), pt_has_error, PT_INTERNAL_ERROR, PT_NAME, PT_ONLY, PT_SPEC, pt_split_delete_stmt(), pt_spec_info::range_var, remove_appended_trigger_info(), pt_name_info::resolved, pt_statement_info::scope, parser_node::si_datetime, pt_update_info::spec, pt_statement_info::spec, pt_name_info::spec_id, pt_scope_info::stmt, strlen, pt_statement_info::trigger_action, and pt_statement_info::update.
Referenced by compile_trigger_activity().
|
static |
Definition at line 661 of file compile.c.
References parser_node::info, parser_node::node_type, NULL, pt_spec_info::partition, PT_SPEC, and pt_statement_info::spec.
Referenced by pt_class_pre_fetch().
int pt_exec_trigger_stmt | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | trigger_stmt, | ||
DB_OBJECT * | object1, | ||
DB_OBJECT * | object2, | ||
DB_VALUE * | result | ||
) |
Definition at line 1373 of file compile.c.
References assert, db_get_class(), db_make_null(), pt_name_info::db_object, db_value_free(), do_scope(), pt_spec_info::entity_name, er_errid(), error(), parser_node::etc, pt_trigger_action_info::expression, parser_node::flag, pt_spec_info::flat_entity_list, pt_scope_info::from, parser_node::info, trigger_exec_info::is_update_object, parser_context::local_transaction_id, mq_reset_ids_in_statement(), pt_statement_info::name, trigger_exec_info::name1, trigger_exec_info::name2, parser_node::next, NO_ERROR, parser_node::node_type, NULL, trigger_exec_info::object1, trigger_exec_info::object2, pt_update_info::object_parameter, pt_name_info::original, parser_copy_tree(), parser_free_tree(), parser_walk_tree(), PT_EVALUATE, PT_SCOPE, pt_set_trigger_obj_post(), pt_set_trigger_obj_pre(), PT_TRIGGER_ACTION, PT_UPDATE, qp_get_server_info(), pt_spec_info::range_var, pt_statement_info::scope, parser_node::si_datetime, SI_LOCAL_TRANSACTION_ID, SI_SYS_DATETIME, parser_node::si_tran_id, pt_update_info::spec, pt_statement_info::spec, pt_name_info::spec_id, trigger_exec_info::spec_id1, trigger_exec_info::spec_id2, pt_scope_info::stmt, parser_context::sys_datetime, parser_context::sys_epochtime, pt_statement_info::trigger_action, pt_statement_info::update, ws_hide_new_old_trigger_obj(), and ws_unhide_new_old_trigger_obj().
Referenced by eval_action(), and eval_condition().
|
static |
Definition at line 862 of file compile.c.
References pt_spec_info::entity_name, error(), parser_node::info, LC_PREF_FLAG_LOCK, pt_statement_info::name, NO_ERROR, NULL, pt_name_info::original, pt_spec_info::partition, pt_add_lock_class(), pt_has_error, pt_in_lck_array(), PT_INTERNAL_ERROR, pt_partition_name(), and pt_statement_info::spec.
Referenced by pt_find_lck_classes().
|
static |
Definition at line 785 of file compile.c.
References DB_FETCH_READ, pt_spec_info::entity_name, pt_select_info::from, pt_statement_info::function, pt_function_info::function_type, parser_node::info, LC_PREF_FLAG_COUNT_OPTIM, LC_PREF_FLAG_LOCK, pt_select_info::list, pt_class_locks::lock_type, pt_statement_info::name, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_name_info::original, pt_spec_info::partition, pt_add_lock_class(), PT_COUNT_STAR, pt_find_lck_class_from_partition(), PT_FUNCTION, pt_in_lck_array(), PT_NAME, PT_SPEC, PT_STOP_WALK, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_statement_info::spec, and pt_select_info::where.
Referenced by pt_class_pre_fetch().
|
static |
Definition at line 908 of file compile.c.
References pt_class_locks::classes, pt_class_locks::flags, i, intl_identifier_casecmp(), LC_CLASS, LC_FETCH_CURRENT_VERSION, LC_PREF_FLAG_COUNT_OPTIM, LC_PREF_FLAG_LOCK, locator_fetch_mode_to_lock(), pt_class_locks::lock_type, pt_class_locks::locks, and pt_class_locks::num_classes.
Referenced by pt_find_lck_class_from_partition(), and pt_find_lck_classes().
int pt_name_occurs_in_from_list | ( | PARSER_CONTEXT * | parser, |
const char * | name, | ||
PT_NODE * | from_list | ||
) |
Definition at line 1545 of file compile.c.
References i, parser_node::info, intl_identifier_casecmp(), pt_statement_info::name, parser_node::next, NULL, pt_name_info::original, pt_spec_info::range_var, and pt_statement_info::spec.
Referenced by mq_regenerate_if_ambiguous(), and pt_get_unique_exposed_name().
|
static |
Definition at line 614 of file compile.c.
References db_is_class(), pt_name_info::db_object, pt_name_info::db_object_chn, er_msg(), pt_spec_info::flat_entity_list, parser_node::info, is_class(), locator_flush_class(), locator_get_cache_coherency_number(), pt_statement_info::name, parser_node::next, NO_ERROR, parser_node::node_type, NULL, PT_ERRORc, PT_SPEC, and pt_statement_info::spec.
Referenced by pt_class_pre_fetch().
|
static |
Definition at line 1321 of file compile.c.
References parser_node::next, parser_node::node_type, NULL, parser_free_tree(), trigger_exec_info::path_expr_level, PT_DOT_, pt_eval_value_path(), and trigger_exec_info::trig_corr_path.
Referenced by pt_exec_trigger_stmt().
|
static |
Definition at line 1185 of file compile.c.
References pt_name_info::db_object, parser_node::info, trigger_exec_info::is_update_object, pt_name_info::meta_class, pt_statement_info::name, trigger_exec_info::name1, trigger_exec_info::name2, parser_node::node_type, NULL, pt_update_info::object, trigger_exec_info::object1, trigger_exec_info::object2, pt_name_info::original, trigger_exec_info::path_expr_level, PT_DOT_, PT_NAME, PT_PARAMETER, PT_SELECT, PT_TRIGGER_OID, PT_UPDATE, pt_statement_info::query, pt_name_info::spec_id, trigger_exec_info::spec_id1, trigger_exec_info::spec_id2, trigger_exec_info::trig_corr_path, pt_statement_info::update, and pt_query_info::xasl.
Referenced by pt_exec_trigger_stmt().
PT_NODE* pt_spec_to_oid_attr | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | spec, | ||
VIEW_HANDLING | how | ||
) |
Definition at line 101 of file compile.c.
References pt_function_info::arg_list, pt_spec_info::as_attr_list, CLASSOID_NAME, pt_statement_info::data_type, parser_node::data_type, pt_data_type_info::entity, F_CLASS_OF, pt_spec_info::flat_entity_list, pt_statement_info::function, pt_function_info::function_type, HIDDEN_CLASSOID_NAME, pt_function_info::hidden_column, pt_spec_info::id, parser_node::info, pt_name_info::meta_class, mq_is_updatable(), mq_oid(), pt_statement_info::name, parser_node::next, NULL, OID_NAME, pt_name_info::original, parser_copy_tree(), parser_copy_tree_list(), parser_new_node(), PT_DATA_TYPE, PT_FUNCTION, PT_META_CLASS, pt_name(), PT_OID_ATTR, PT_SPEC_IS_DERIVED, PT_TYPE_OBJECT, pt_spec_info::range_var, pt_statement_info::spec, parser_node::type_enum, pt_data_type_info::virt_object, pt_name_info::virt_object, pt_data_type_info::virt_type_enum, and pt_name_info::virt_type_enum.
Referenced by pt_add_oid_to_select_list(), pt_to_constraint_pred(), and pt_to_upd_del_query().