CUBRID Engine
latest
|
#include "config.h"
#include "authenticate.h"
#include "misc_string.h"
#include "error_manager.h"
#include "parser.h"
#include "parser_message.h"
#include "server_interface.h"
#include "db_query.h"
#include "object_accessor.h"
#include "schema_manager.h"
#include "memory_alloc.h"
#include "execute_statement.h"
#include "xasl_generation.h"
#include "object_primitive.h"
#include "db.h"
#include "network_interface_cl.h"
#include "transaction_cl.h"
#include "dbtype.h"
Go to the source code of this file.
DB_ATTRIBUTE* db_get_attribute_force | ( | DB_OBJECT * | obj, |
const char * | name | ||
) |
Definition at line 1371 of file query_result.c.
References ARG_FILE_LINE, au_fetch_class_force(), AU_FETCH_READ, classobj_find_attribute(), ER_OBJ_INVALID_ATTRIBUTE, er_set(), ER_WARNING_SEVERITY, NO_ERROR, and NULL.
Referenced by pt_check_alter(), pt_check_default_vclass_query_spec(), pt_check_mutable_attributes(), pt_expand_external_path(), and pt_find_attr_in_class_list().
DB_ATTRIBUTE* db_get_attributes_force | ( | DB_OBJECT * | obj | ) |
Definition at line 1395 of file query_result.c.
References ARG_FILE_LINE, au_fetch_class_force(), AU_FETCH_READ, ER_OBJ_NO_COMPONENTS, er_set(), ER_WARNING_SEVERITY, NO_ERROR, NULL, and sm_class::ordered_attributes.
Referenced by pt_check_drop(), pt_check_union_type_compatibility_of_values_query(), pt_get_all_attributes_and_types(), and pt_resolve_vclass_args().
int db_object_describe | ( | DB_OBJECT * | obj_mop, |
int | num_attrs, | ||
const char ** | attrs, | ||
DB_QUERY_TYPE ** | col_spec | ||
) |
Definition at line 1200 of file query_result.c.
References ARG_FILE_LINE, CHECK_CONNECT_ERROR, db_alloc_query_format(), db_free_query_format(), ER_ERROR_SEVERITY, ER_OBJ_INVALID_ARGUMENTS, er_set(), err, i, db_query_type::next, NO_ERROR, NULL, pt_find_size_from_dbtype(), sm_att_info(), sm_att_type_id(), sm_domain_copy(), strlen, and WS_CLASS_MOP.
Referenced by uci_object_describe().
int db_object_fetch | ( | DB_OBJECT * | obj_mop, |
int | num_attrs, | ||
const char ** | attrs, | ||
DB_QUERY_RESULT ** | result | ||
) |
Definition at line 1273 of file query_result.c.
References ARG_FILE_LINE, C_BEFORE, CHECK_CONNECT_ERROR, db_query_result::col_cnt, db_objfetch_result::crs_pos, db_alloc_query_format(), db_alloc_query_result(), db_free_query_result(), db_init_query_result(), db_query_type::db_type, ER_ERROR_SEVERITY, ER_OBJ_INVALID_ARGUMENTS, er_set(), err, db_query_type::name, NO_ERROR, NULL, db_query_result::o, obj_get(), db_query_result::oid_included, pr_make_ext_value(), pt_find_size_from_dbtype(), db_query_result::query_type, db_query_result::res, db_query_type::size, sm_att_type_id(), sm_get_class(), strlen, T_OBJFETCH, db_query_result::type, db_query_result::type_cnt, and db_objfetch_result::valptr_list.
Referenced by uci_object_fetch().
|
static |
Definition at line 89 of file query_result.c.
References db_query_type::next.
Referenced by pt_fillin_type_size().
void pt_end_query | ( | PARSER_CONTEXT * | parser, |
QUERY_ID | query_id_self | ||
) |
Definition at line 1168 of file query_result.c.
References assert, er_errid(), ER_LK_UNILATERALLY_ABORTED, NULL, qmgr_end_query(), parser_context::query_id, and tran_was_latest_query_ended().
Referenced by build_xasl_for_server_delete(), db_free_query(), delete_real_class(), do_execute_delete(), do_execute_insert(), do_execute_merge(), do_execute_update(), do_insert_at_server(), do_merge(), insert_subquery_results(), pt_evaluate_tree_internal(), pt_set_table_to_db(), update_at_server(), and update_real_class().
DB_QUERY_TYPE* pt_fillin_type_size | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query, | ||
DB_QUERY_TYPE * | list, | ||
const int | oids_included, | ||
bool | want_spec_entity_name, | ||
bool | fixup_columns_type | ||
) |
Definition at line 893 of file query_result.c.
References pt_dot_info::arg1, pt_dot_info::arg2, db_query_type::col_type, db_free_query_format(), pt_statement_info::dot, pt_spec_info::entity_name, EXCLUDE_HIDDEN_COLUMNS, parser_node::info, pt_statement_info::method_call, pt_method_call_info::method_name, pt_statement_info::name, db_query_type::next, parser_node::next, parser_node::node_type, NULL, OID_COLUMN, pt_name_info::original, pt_append_string(), pt_arity_of_query_type(), PT_DOT_, pt_find_entity(), pt_find_size_from_dbtype(), pt_fixup_select_columns_type(), pt_get_col_type(), pt_get_from_list(), pt_get_node_title(), pt_get_select_list(), pt_get_src_domain(), PT_INTERNAL_ERROR, pt_is_attr(), pt_is_method_call(), pt_length_of_list(), pt_length_of_select_list(), PT_NAME, pt_type_enum_to_db(), pt_xasl_node_to_domain(), pt_spec_info::range_var, pt_statement_info::spec, pt_name_info::spec_id, strdup(), strlen, parser_node::type_enum, and db_query_type::visible_type.
Referenced by db_compile_statement_local(), and pt_get_select_query_columns().
Definition at line 64 of file query_result.c.
References DB_TYPE_NULL, pr_mem_size(), pr_type_from_id(), and pr_type::variable_p.
Referenced by db_object_describe(), db_object_fetch(), and pt_fillin_type_size().
DB_OBJECT* pt_find_users_class | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | name | ||
) |
Definition at line 1420 of file query_result.c.
References db_find_class(), pt_name_info::db_object, parser_node::info, MSGCAT_SEMANTIC_CLASS_DOES_NOT_EXIST, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, pt_name_info::original, pt_check_user_owns_class(), and PT_ERRORmf.
Referenced by pt_get_resolution(), and pt_make_flat_name_list().
|
static |
Definition at line 624 of file query_result.c.
References parser_node::next, NULL, and pt_fixup_column_type().
Referenced by pt_fillin_type_size().
void pt_free_query_etc_area | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query | ||
) |
Definition at line 1150 of file query_result.c.
References CUBRID_STMT_DO, CUBRID_STMT_SELECT, cursor_free_self_list_id, parser_node::etc, pt_is_server_insert_with_generated_keys(), and pt_node_to_cmd_type().
Referenced by db_execute_and_keep_statement_local().
|
static |
Definition at line 110 of file query_result.c.
References parser_context::custom_print, parser_node::node_type, NULL, parser_print_tree(), pt_get_end_path_node(), PT_NAME, PT_SUPPRESS_RESOLVED, PT_SUPPRESS_SELECTOR, and strdup().
Referenced by pt_get_node_title().
|
static |
Definition at line 146 of file query_result.c.
References pt_dot_info::arg2, DB_COL_EXPR, DB_COL_FUNC, DB_COL_NAME, DB_COL_OID, DB_COL_OTHER, DB_COL_PATH, DB_COL_VALUE, pt_statement_info::dot, parser_node::info, parser_node::node_type, PT_FUNCTION, pt_is_dot_node, pt_is_expr_node, pt_is_function, pt_is_name_node, pt_is_oid_name, pt_is_value_node, and PT_METHOD_CALL.
Referenced by pt_fillin_type_size(), and pt_get_node_title().
|
static |
Definition at line 601 of file query_result.c.
References pt_union_info::arg1, pt_select_info::from, parser_node::info, parser_node::node_type, NULL, PT_DIFFERENCE, PT_INTERSECTION, PT_SELECT, PT_UNION, pt_query_info::q, pt_statement_info::query, pt_query_info::select, and pt_query_info::union_.
Referenced by pt_fillin_type_size(), and pt_get_titles().
|
static |
Definition at line 699 of file query_result.c.
References parser_node::alias_print, pt_dot_info::arg1, db_query_type::attr_name, db_query_type::col_type, parser_context::custom_print, DB_SIZEOF, db_query_type::db_type, DB_TYPE_NULL, db_query_type::domain, pt_statement_info::dot, pt_spec_info::entity_name, error(), free_and_init, parser_node::info, pt_name_info::meta_class, db_query_type::name, pt_statement_info::name, db_query_type::next, parser_node::next, parser_node::node_type, NULL, db_query_type::original_name, pt_append_string(), pt_check_path_eq(), PT_DOT_, pt_get_attr_name(), pt_get_col_type(), PT_META_ATTR, PT_NAME, PT_NAME_INFO_DOT_NAME, PT_NAME_INFO_DOT_STAR, PT_NAME_INFO_IS_FLAGED, PT_NAME_INFO_STAR, PT_NORMAL, pt_print_alias(), pt_resolved(), PT_SUPPRESS_QUOTES, PT_SUPPRESS_RESOLVED, pt_spec_info::range_var, pt_name_info::resolved, db_query_type::size, pt_statement_info::spec, db_query_type::spec_name, db_query_type::src_domain, strdup(), USER_COLUMN, and db_query_type::visible_type.
Referenced by pt_fillin_type_size(), and pt_get_titles().
PT_NODE* pt_get_select_list | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query | ||
) |
Definition at line 404 of file query_result.c.
References parser_node::alias_print, pt_union_info::arg1, pt_union_info::arg2, assert, parser_node::data_type, db_make_null(), pt_value_info::db_value, EXCLUDE_HIDDEN_COLUMNS, parser_node::flag, parser_context::id, INCLUDE_HIDDEN_COLUMNS, parser_node::info, parser_node::is_hidden_column, pt_node_list_info::list, pt_select_info::list, MSGCAT_SEMANTIC_ARITY_MISMATCH, MSGCAT_SET_PARSER_SEMANTIC, parser_node::next, pt_statement_info::node_list, parser_node::node_type, NULL, parser_copy_tree_list(), parser_free_tree(), parser_node::parser_id, pt_append_string(), pt_common_type(), PT_DIFFERENCE, PT_ERRORmf2, PT_INTERSECTION, PT_IS_COMPLEX_TYPE, PT_IS_PARAMETERIZED_TYPE, pt_is_value_node, pt_length_of_select_list(), PT_NAME, PT_NODE_LIST, PT_SELECT, PT_TYPE_ENUMERATION, PT_TYPE_NA, PT_TYPE_NONE, PT_TYPE_NULL, PT_TYPE_STAR, PT_UNION, PT_VALUE, pt_query_info::q, pt_statement_info::query, pt_query_info::select, pt_union_info::select_list, parser_node::type_enum, pt_query_info::union_, and pt_statement_info::value.
Referenced by db_get_query_type_list(), insert_subquery_results(), mq_make_derived_spec(), mq_rewrite_query_as_derived(), pt_add_oid_to_select_list(), pt_append_odku_references(), pt_apply_union_select_list_collation(), pt_check_assignments(), pt_check_create_entity(), pt_check_create_view(), pt_check_default_vclass_query_spec(), pt_check_into_clause(), pt_check_union_compatibility(), pt_check_union_type_compatibility_of_values_query(), pt_check_vclass_query_spec(), pt_check_vclass_union_spec(), pt_check_with_clause(), pt_coerce_insert_values(), pt_coerce_range_expr_arguments(), pt_eval_function_type_old(), pt_fillin_type_size(), pt_get_attr_list_of_derived_table(), pt_get_one_tuple_from_list_id(), pt_get_select_list_coll_compat(), pt_get_titles(), pt_make_aptr_parent_node(), pt_new_query_result_descriptor(), pt_semantic_check_local(), pt_set_attr_list_types(), pt_set_orderby_for_sort_limit_plan(), pt_set_table_to_db(), pt_to_after_groupby(), pt_to_after_iscan(), pt_to_compatible_cast(), pt_to_groupby(), pt_to_insert_xasl(), pt_to_merge_insert_xasl(), pt_to_orderby(), pt_to_outlist(), pt_to_regu_variable(), pt_try_remove_order_by(), pt_type_cast_vclass_query_spec(), pt_wrap_select_list_with_cast_op(), qo_check_iscan_for_multi_range_opt(), qo_discover_sort_limit_nodes(), qo_reduce_equality_terms(), qo_rewrite_subqueries(), and func_type::Node::set_return_type().
|
static |
Definition at line 247 of file query_result.c.
References pt_dot_info::arg2, DB_TYPE_INTEGER, DB_TYPE_NULL, pt_statement_info::dot, pt_spec_info::flat_entity_list, parser_node::info, pt_statement_info::name, parser_node::node_type, NULL, pr_type_from_id(), PT_DOT_, pt_find_entity(), PT_NAME, pt_set_domain_class_list(), sm_domain_alloc(), pt_statement_info::spec, pt_name_info::spec_id, tp_domain_init(), tp_domain::type, and pt_name_info::virt_object.
Referenced by pt_fillin_type_size().
DB_QUERY_TYPE* pt_get_titles | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query | ||
) |
Definition at line 642 of file query_result.c.
References parser_context::custom_print, db_free_query_format(), EXCLUDE_HIDDEN_COLUMNS, parser_node::flag, parser_node::is_hidden_column, db_query_type::next, parser_node::next, NULL, pt_get_from_list(), pt_get_node_title(), pt_get_select_list(), pt_length_of_select_list(), and PT_SUPPRESS_CHARSET_PRINT.
Referenced by db_compile_statement_local(), and pt_get_select_query_columns().
int pt_is_server_insert_with_generated_keys | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | statement | ||
) |
Definition at line 1447 of file query_result.c.
References parser_context::flag, parser_node::info, pt_statement_info::insert, parser_node::node_type, PT_INSERT, parser_context::return_generated_keys, pt_insert_info::server_allowed, and SERVER_INSERT_IS_ALLOWED.
Referenced by db_execute_and_keep_statement_local(), and pt_free_query_etc_area().
DB_QUERY_RESULT* pt_make_cache_hit_result_descriptor | ( | void | ) |
Definition at line 1127 of file query_result.c.
References db_alloc_query_result(), db_init_query_result(), NULL, and T_CACHE_HIT.
Referenced by db_execute_and_keep_statement_local().
DB_QUERY_RESULT* pt_new_query_result_descriptor | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | query | ||
) |
Definition at line 1032 of file query_result.c.
References cursor_id::buffer, db_select_result::cache_time, parser_node::cache_time, db_query_result::col_cnt, pt_execute_info::column_count, CUBRID_STMT_SELECT, cursor_free_self_list_id, db_select_result::cursor_id, cursor_open(), db_alloc_query_result(), db_free_query_result(), db_init_query_result(), parser_node::etc, EXCLUDE_HIDDEN_COLUMNS, pt_statement_info::execute, parser_context::flag, db_select_result::holdable, if(), parser_node::info, parser_context::is_holdable, cursor_id::list_id, parser_node::node_type, NULL, db_query_result::oid_included, pt_query_info::oids_included, pt_execute_info::oids_included, PT_DIFFERENCE, PT_EXECUTE_PREPARE, pt_get_select_list(), PT_INSERT, PT_INTERSECTION, pt_length_of_select_list(), PT_SELECT, PT_UNION, QFILE_CLEAR_LIST_ID, pt_statement_info::query, cursor_id::query_id, db_select_result::query_id, parser_context::query_id, db_query_result::res, db_query_result::s, db_select_result::stmt_id, db_select_result::stmt_type, pt_execute_info::stmt_type, T_SELECT, qfile_tuple_record::tpl, cursor_id::tuple_record, db_query_result::type, and db_query_result::type_cnt.
Referenced by db_execute_and_keep_statement_local().
void pt_report_to_ersys | ( | const PARSER_CONTEXT * | parser, |
const PT_ERROR_TYPE | error_type | ||
) |
Definition at line 287 of file query_result.c.
References ARG_FILE_LINE, assert, er_errid(), ER_IS_LOCK_TIMEOUT_ERROR, ER_IS_SERVER_DOWN_ERROR, ER_PT_EXECUTE, ER_PT_SEMANTIC, ER_PT_SYNTAX, er_set(), ER_SYNTAX_ERROR_SEVERITY, err, PT_ZZ_ERROR_MSG_INFO::error_message, pt_statement_info::error_msg, parser_context::error_msgs, parser_node::info, NO_ERROR, parser_node::node_type, PT_EXECUTION, PT_SEMANTIC, PT_SYNTAX, and PT_ZZ_ERROR_MSG.
Referenced by call_method(), check_default_on_update_clause(), db_compile_statement_local(), db_execute_and_keep_statement_local(), db_push_values(), db_validate_query_spec(), do_alter_one_clause_with_template(), do_cast_host_variables_to_expected_domain(), do_create_entity(), do_evaluate(), do_execute_do(), do_insert(), do_prepare_select(), do_select_internal(), do_set_session_variables(), do_set_trigger(), get_att_default_from_def(), jsp_call_stored_procedure(), mq_evaluate_check_option(), mq_evaluate_expression(), mq_evaluate_expression_having_serial(), mq_fetch_one_real_class_get_cache(), mq_get_attribute(), mq_get_expression(), mq_update_attribute(), pt_eval_path_expr(), pt_make_aptr_parent_node(), pt_string_to_db_domain(), pt_to_delete_xasl(), pt_to_func_pred(), pt_to_insert_xasl(), pt_to_pred_with_context(), pt_to_update_xasl(), and pt_validate_query_spec().
void pt_report_to_ersys_with_statement | ( | PARSER_CONTEXT * | parser, |
const PT_ERROR_TYPE | error_type, | ||
PT_NODE * | statement | ||
) |
Definition at line 338 of file query_result.c.
References parser_node::alias_print, ARG_FILE_LINE, assert, er_errid(), ER_IS_LOCK_TIMEOUT_ERROR, ER_IS_SERVER_DOWN_ERROR, ER_PT_EXECUTE, ER_PT_SEMANTIC, ER_PT_SYNTAX, er_set(), ER_SYNTAX_ERROR_SEVERITY, err, PT_ZZ_ERROR_MSG_INFO::error_message, pt_statement_info::error_msg, parser_context::error_msgs, parser_node::info, NO_ERROR, parser_node::node_type, NULL, PT_CONVERT_RANGE, PT_EXECUTION, PT_NODE_PRINT_TO_ALIAS, PT_SEMANTIC, PT_SHORT_PRINT, PT_SYNTAX, and PT_ZZ_ERROR_MSG.
Referenced by db_compile_statement_local(), db_execute_and_keep_statement_local(), do_alter(), do_merge(), execute_create_select_query(), pt_build_do_stmt_aptr_list_pre(), pt_get_select_query_columns(), pt_node_to_partition_info(), pt_to_merge_insert_xasl(), pt_to_merge_update_xasl(), and pt_to_update_xasl().
|
static |
Definition at line 183 of file query_result.c.
References tp_domain::class_mop, tp_domain::class_oid, COPY_OID, db_find_class(), pt_name_info::db_object, DB_TYPE_OBJECT, parser_node::info, pt_statement_info::name, parser_node::node_type, NULL, vid_oid::oid, db_object::oid_info, pt_name_info::original, pr_type_from_id(), PT_NAME, and tp_domain::type.
Referenced by pt_set_domain_class_list().
|
static |
Definition at line 219 of file query_result.c.
References assert, DB_TYPE_INTEGER, tp_domain::next, parser_node::next, parser_node::node_type, NULL, PT_NAME, pt_set_domain_class(), sm_domain_alloc(), and tp_domain_init().
Referenced by pt_get_src_domain().