CUBRID Engine  latest
query_executor.h File Reference
#include "dbtype_def.h"
#include "query_list.h"
#include "system.h"
#include "thread_compat.hpp"
#include <time.h>
Include dependency graph for query_executor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  upddel_class_instances_lock_info
 
struct  val_descr
 

Macros

#define QEXEC_NULL_COMMAND_ID   -1 /* Invalid command identifier */
 

Typedefs

using XASL_STATE = xasl_state
 
typedef struct upddel_class_instances_lock_info UPDDEL_CLASS_INSTANCE_LOCK_INFO
 
typedef struct val_descr VAL_DESCR
 

Functions

qfile_list_idqexec_execute_query (THREAD_ENTRY *thread_p, xasl_node *xasl, int dbval_cnt, const DB_VALUE *dbval_ptr, QUERY_ID query_id)
 
int qexec_execute_mainblock (THREAD_ENTRY *thread_p, xasl_node *xasl, xasl_state *xstate, UPDDEL_CLASS_INSTANCE_LOCK_INFO *p_class_instance_lock_info)
 
int qexec_start_mainblock_iterations (THREAD_ENTRY *thread_p, xasl_node *xasl, xasl_state *xstate)
 
int qexec_clear_xasl (THREAD_ENTRY *thread_p, xasl_node *xasl, bool is_final)
 
int qexec_clear_pred_context (THREAD_ENTRY *thread_p, pred_expr_with_context *pred_filter, bool dealloc_dbvalues)
 
int qexec_clear_func_pred (THREAD_ENTRY *thread_p, func_pred *pred_filter)
 
int qexec_clear_partition_expression (THREAD_ENTRY *thread_p, regu_variable_node *expr)
 
qfile_list_idqexec_get_xasl_list_id (xasl_node *xasl)
 
int qexec_clear_list_cache_by_class (THREAD_ENTRY *thread_p, const OID *class_oid)
 
int qexec_get_tuple_column_value (QFILE_TUPLE tpl, int index, DB_VALUE *valp, tp_domain *domain)
 
int qexec_insert_tuple_into_list (THREAD_ENTRY *thread_p, qfile_list_id *list_id, valptr_list_node *outptr_list, val_descr *vd, qfile_tuple_record *tplrec)
 
void qexec_replace_prior_regu_vars_prior_expr (THREAD_ENTRY *thread_p, regu_variable_node *regu, xasl_node *xasl, xasl_node *connect_by_ptr)
 

Macro Definition Documentation

#define QEXEC_NULL_COMMAND_ID   -1 /* Invalid command identifier */

Definition at line 55 of file query_executor.h.

Typedef Documentation

typedef struct val_descr VAL_DESCR

Definition at line 64 of file query_executor.h.

Definition at line 53 of file query_executor.h.

Function Documentation

int qexec_clear_func_pred ( THREAD_ENTRY thread_p,
func_pred pred_filter 
)

Definition at line 21472 of file query_executor.c.

References func_pred::func_regu, NO_ERROR, and qexec_clear_regu_var().

Referenced by heap_eval_function_index(), heap_free_func_pred_unpack_info(), xbtree_load_index(), and xbtree_load_online_index().

Here is the caller graph for this function:

int qexec_clear_list_cache_by_class ( THREAD_ENTRY thread_p,
const OID class_oid 
)
int qexec_clear_partition_expression ( THREAD_ENTRY thread_p,
regu_variable_node expr 
)

Definition at line 21490 of file query_executor.c.

References NO_ERROR, and qexec_clear_regu_var().

Referenced by partition_free_partition_predicate().

Here is the caller graph for this function:

int qexec_clear_pred_context ( THREAD_ENTRY thread_p,
pred_expr_with_context pred_filter,
bool  dealloc_dbvalues 
)
int qexec_clear_xasl ( THREAD_ENTRY thread_p,
xasl_node xasl,
bool  is_final 
)

Definition at line 2130 of file query_executor.c.

References buildlist_proc_node::a_eval_list, buildlist_proc_node::a_outptr_list, buildlist_proc_node::a_outptr_list_ex, buildlist_proc_node::a_outptr_list_interm, buildlist_proc_node::a_regu_list, buildlist_proc_node::a_val_list, connectby_proc_node::after_cb_regu_list_pred, connectby_proc_node::after_cb_regu_list_rest, connectby_proc_node::after_connect_by_pred, buildlist_proc_node::after_groupby_list, xasl_node::after_iscan_list, xasl_node::after_join_pred, buildvalue_proc_node::agg_list, xasl_node::aptr_list, fetch_proc_node::arg, assert, odku_info::assignments, update_proc_node::assigns, bh_destroy(), xasl_node::bptr_list, xasl_node::buildlist, BUILDLIST_PROC, xasl_node::buildvalue, BUILDVALUE_PROC, xasl_node::connect_by, xasl_node::connect_by_ptr, CONNECTBY_PROC, odku_info::cons_pred, update_proc_node::cons_pred, xasl_node::cte, CTE_PROC, xasl_node::curr_spec, db_private_free_and_init, xasl_node::dptr_list, binary_heap::element_count, buildlist_proc_node::eptr_list, xasl_node::fetch, xasl_node::flag, xasl_node::fptr_list, buildlist_proc_node::g_agg_list, buildlist_proc_node::g_grbynum_pred, buildlist_proc_node::g_grbynum_val, buildlist_proc_node::g_hash_eligible, buildlist_proc_node::g_having_pred, buildlist_proc_node::g_hk_scan_regu_list, buildlist_proc_node::g_hk_sort_regu_list, buildlist_proc_node::g_outptr_list, buildlist_proc_node::g_regu_list, buildlist_proc_node::g_scan_regu_list, buildlist_proc_node::g_val_list, buildvalue_proc_node::grbynum_val, buildlist_proc_node::groupby_list, buildvalue_proc_node::having_pred, i, xasl_node::if_pred, xasl_node::insert, INSERT_PROC, merge_proc_node::insert_xasl, xasl_node::instnum_pred, xasl_node::instnum_val, xasl_node::iscycle_val, xasl_node::isleaf_val, xasl_node::level_val, xasl_node::limit_offset, xasl_node::limit_row_count, xasl_node::list_id, lock_abort_composite_lock(), xasl_node::merge, MERGE_PROC, xasl_node::merge_spec, xasl_node::merge_val_list, regu_variable_list_node::next, xasl_node::next, cte_proc_node::non_recursive_part, NULL, odku_info::num_assigns, update_proc_node::num_assigns, insert_proc_node::num_val_lists, OBJFETCH_PROC, insert_proc_node::odku, xasl_node::ordbynum_pred, xasl_node::ordbynum_val, xasl_node::orderby_limit, xasl_node::orderby_list, buildvalue_proc_node::outarith_list, xasl_node::outptr_list, pr_clear_value(), connectby_proc_node::prior_outptr_list, connectby_proc_node::prior_regu_list_pred, connectby_proc_node::prior_regu_list_rest, connectby_proc_node::prior_val_list, xasl_node::proc, qexec_clear_access_spec_list(), qexec_clear_agg_list(), qexec_clear_agg_orderby_const_list(), qexec_clear_analytic_function_list(), qexec_clear_arith_list(), qexec_clear_db_val_list(), qexec_clear_pred(), qexec_clear_regu_list(), qexec_clear_regu_var(), qexec_clear_sort_list(), qexec_clear_topn_tuple(), qexec_clear_update_assignment(), qexec_clear_xasl(), qexec_clear_xasl_head(), qexec_destroy_upddel_ehash_files(), qexec_free_agg_hash_context(), QEXEC_GET_BH_TOPN_TUPLE, qfile_clear_list_id(), xasl_node::query_in_progress, cte_proc_node::recursive_part, connectby_proc_node::regu_list_pred, connectby_proc_node::regu_list_rest, scan_close_scan(), scan_end_scan(), SCAN_PROC, xasl_node::scan_ptr, fetch_proc_node::set_pred, xasl_node::spec_list, connectby_proc_node::start_with_pred, xasl_node::type, xasl_node::update, UPDATE_PROC, merge_proc_node::update_xasl, xasl_node::val_list, val_list_node::valp, insert_proc_node::valptr_lists, valptr_list_node::valptrp, regu_variable_list_node::value, XASL_DECACHE_CLONE, XASL_HAS_CONNECT_BY, XASL_IS_FLAGED, and XASL_SET_FLAG.

Referenced by qexec_clear_access_spec_list(), qexec_clear_regu_var(), qexec_clear_xasl(), qexec_execute_query(), and xcache_clone_decache().

Here is the caller graph for this function:

int qexec_start_mainblock_iterations ( THREAD_ENTRY thread_p,
xasl_node xasl,
xasl_state xstate 
)

Definition at line 12910 of file query_executor.c.

References buildlist_proc_node::a_eval_list, xasl_node::after_iscan_list, buildvalue_proc_node::agg_list, ARG_FILE_LINE, BUILD_SCHEMA_PROC, xasl_node::buildlist, BUILDLIST_PROC, xasl_node::buildvalue, BUILDVALUE_PROC, CONNECTBY_PROC, CTE_PROC, db_make_bigint(), db_make_int(), db_private_free_and_init, DIFFERENCE_PROC, qfile_tuple_value_type_list::domp, ER_ERROR_SEVERITY, ER_FAILED, ER_QPROC_INVALID_XASLNODE, er_set(), buildlist_proc_node::g_grbynum_val, GOTO_EXIT_ON_ERROR, buildvalue_proc_node::grbynum_val, buildlist_proc_node::groupby_list, xasl_node::instnum_val, INTERSECTION_PROC, xasl_node::iscycle_val, xasl_node::isleaf_val, xasl_node::level_val, xasl_node::list_id, MERGELIST_PROC, NO_ERROR, NULL, xasl_node::option, xasl_node::ordbynum_val, xasl_node::orderby_list, xasl_node::outptr_list, xasl_node::proc, Q_DISTINCT, qdata_get_valptr_type_list(), qdata_initialize_aggregate_list(), qexec_clear_regu_list(), qexec_destroy_upddel_ehash_files(), qexec_init_instnum_val(), qexec_init_upddel_ehash_files(), QEXEC_IS_MULTI_TABLE_UPDATE_DELETE, qexec_setup_topn_proc(), qfile_copy_list_id(), QFILE_FLAG_ALL, QFILE_FLAG_RESULT_FILE, QFILE_FREE_AND_INIT_LIST_ID, qfile_free_list_id(), qfile_open_list(), QFILE_SET_FLAG, xasl_state::query_id, xasl_node::type, qfile_tuple_value_type_list::type_cnt, qfile_list_id::type_list, UNION_PROC, valptr_list_node::valptrp, xasl_state::vd, XASL_HAS_CONNECT_BY, XASL_IS_FLAGED, XASL_MULTI_UPDATE_AGG, XASL_SKIP_ORDERBY_LIST, XASL_TO_BE_CACHED, and XASL_TOP_MOST_XASL.

Referenced by qexec_execute_build_columns(), qexec_execute_build_indexes(), qexec_execute_connect_by(), qexec_execute_mainblock_internal(), and qexec_merge_listfiles().

Here is the caller graph for this function: