CUBRID Engine
latest
|
Go to the source code of this file.
Classes | |
struct | scan_pred |
struct | scan_attrs |
struct | filter_info |
Namespaces | |
cubxasl | |
Macros | |
#define | QPROC_ANALYTIC_IS_OFFSET_FUNCTION(func_p) |
#define | ANALYTIC_ADVANCE_RANK 1 /* advance rank */ |
#define | ANALYTIC_KEEP_RANK 2 /* keep current rank */ |
#define | ANALYTIC_FUNC_IS_FLAGED(x, f) ((x)->flag & (int) (f)) |
#define | ANALYTIC_FUNC_SET_FLAG(x, f) (x)->flag |= (int) (f) |
#define | ANALYTIC_FUNC_CLEAR_FLAG(x, f) (x)->flag &= (int) ~(f) |
Typedefs | |
typedef struct val_descr | VAL_DESCR |
using | PRED_EXPR = cubxasl::pred_expr |
typedef DB_LOGICAL(* | PR_EVAL_FNC) (THREAD_ENTRY *thread_p, const PRED_EXPR *, val_descr *, OID *) |
typedef struct scan_pred | SCAN_PRED |
typedef struct scan_attrs | SCAN_ATTRS |
typedef struct filter_info | FILTER_INFO |
Enumerations | |
enum | QPROC_QUALIFICATION { QPROC_QUALIFIED = 0, QPROC_NOT_QUALIFIED, QPROC_QUALIFIED_OR_NOT } |
#define ANALYTIC_ADVANCE_RANK 1 /* advance rank */ |
Definition at line 74 of file query_evaluator.h.
#define ANALYTIC_FUNC_CLEAR_FLAG | ( | x, | |
f | |||
) | (x)->flag &= (int) ~(f) |
Definition at line 79 of file query_evaluator.h.
Referenced by qdata_evaluate_analytic_func().
#define ANALYTIC_FUNC_IS_FLAGED | ( | x, | |
f | |||
) | ((x)->flag & (int) (f)) |
Definition at line 77 of file query_evaluator.h.
Referenced by qdata_evaluate_analytic_func().
#define ANALYTIC_FUNC_SET_FLAG | ( | x, | |
f | |||
) | (x)->flag |= (int) (f) |
Definition at line 78 of file query_evaluator.h.
Referenced by qexec_analytic_put_next().
#define ANALYTIC_KEEP_RANK 2 /* keep current rank */ |
Definition at line 75 of file query_evaluator.h.
Referenced by qdata_evaluate_analytic_func(), and qexec_analytic_put_next().
#define QPROC_ANALYTIC_IS_OFFSET_FUNCTION | ( | func_p | ) |
Definition at line 68 of file query_evaluator.h.
Referenced by qexec_analytic_eval_instnum_pred(), qexec_analytic_evaluate_offset_function(), qexec_analytic_put_next(), and qexec_analytic_update_group_result().
typedef struct filter_info FILTER_INFO |
Definition at line 111 of file query_evaluator.h.
typedef DB_LOGICAL(* PR_EVAL_FNC) (THREAD_ENTRY *thread_p, const PRED_EXPR *, val_descr *, OID *) |
Definition at line 59 of file query_evaluator.h.
using PRED_EXPR = cubxasl::pred_expr |
Definition at line 56 of file query_evaluator.h.
typedef struct scan_attrs SCAN_ATTRS |
Definition at line 102 of file query_evaluator.h.
Definition at line 93 of file query_evaluator.h.
Definition at line 48 of file query_evaluator.h.
enum QPROC_QUALIFICATION |
Enumerator | |
---|---|
QPROC_QUALIFIED | |
QPROC_NOT_QUALIFIED | |
QPROC_QUALIFIED_OR_NOT |
Definition at line 61 of file query_evaluator.h.
DB_LOGICAL eval_data_filter | ( | THREAD_ENTRY * | thread_p, |
OID * | oid, | ||
RECDES * | recdes, | ||
HEAP_SCANCACHE * | scan_cache, | ||
FILTER_INFO * | filter | ||
) |
Definition at line 2691 of file query_evaluator.c.
References scan_attrs::attr_cache, filter_info::class_oid, fetch_val_list(), heap_attrinfo_read_dbvalues(), NO_ERROR, NULL, PEEK, scan_pred::pr_eval_fnc, scan_pred::pred_expr, scan_pred::regu_list, filter_info::scan_attrs, filter_info::scan_pred, V_ERROR, V_TRUE, filter_info::val_descr, and filter_info::val_list.
Referenced by locator_mvcc_reevaluate_filters(), scan_next_class_attr_scan(), scan_next_heap_page_scan(), scan_next_heap_scan(), scan_next_index_key_info_scan(), scan_next_index_lookup_heap(), and scan_next_index_node_info_scan().
PR_EVAL_FNC eval_fnc | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
DB_TYPE * | single_node_type | ||
) |
Definition at line 2540 of file query_evaluator.c.
References DB_TYPE_NULL, cubxasl::alsm_eval_term::elemset, cubxasl::eval_term::et, cubxasl::eval_term::et_alsm, cubxasl::eval_term::et_comp, cubxasl::eval_term::et_type, eval_pred(), eval_pred_alsm4(), eval_pred_alsm5(), eval_pred_comp0(), eval_pred_comp1(), eval_pred_comp2(), eval_pred_comp3(), eval_pred_like6(), eval_pred_rlike7(), cubxasl::alsm_eval_term::item_type, cubxasl::comp_eval_term::lhs, cubxasl::pred_expr::m_eval_term, NULL, cubxasl::pred_expr::pe, R_EXISTS, R_NULL, cubxasl::comp_eval_term::rel_op, cubxasl::comp_eval_term::rhs, T_ALSM_EVAL_TERM, T_COMP_EVAL_TERM, T_EVAL_TERM, T_LIKE_EVAL_TERM, T_RLIKE_EVAL_TERM, cubxasl::comp_eval_term::type, cubxasl::pred_expr::type, regu_variable_node::type, and TYPE_LIST_ID.
Referenced by locator_eval_filter_predicate(), online_index_builder(), scan_open_class_attr_scan(), scan_open_heap_page_scan(), scan_open_heap_scan(), scan_open_index_key_info_scan(), scan_open_index_node_info_scan(), scan_open_index_scan(), scan_open_json_table_scan(), scan_open_list_scan(), scan_open_set_scan(), scan_open_showstmt_scan(), and xbtree_load_index().
DB_LOGICAL eval_key_filter | ( | THREAD_ENTRY * | thread_p, |
DB_VALUE * | value, | ||
FILTER_INFO * | filter | ||
) |
Definition at line 2772 of file query_evaluator.c.
References assert_release, scan_attrs::attr_cache, scan_attrs::attr_ids, filter_info::btree_attr_ids, filter_info::btree_num_attrs, db_char::buf, db_data::ch, db_value::data, db_get_midxkey(), db_make_null(), DB_TYPE_MIDXKEY, DB_VALUE_DOMAIN_TYPE, db_value_is_null(), DB_VALUE_TYPE, db_value::domain, filter_info::func_idx_col_id, db_domain_info::general_info, heap_attrinfo_set(), heap_attrvalue_locate(), i, db_domain_info::general_info::is_null, db_char::medium, db_value::need_clear, NO_ERROR, NULL, scan_attrs::num_attrs, pr_clear_value(), pr_clone_value(), scan_pred::pr_eval_fnc, pr_midxkey_get_element_nocopy(), scan_pred::pred_expr, prm_get_bool_value(), PRM_ID_ORACLE_STYLE_EMPTY_STRING, QSTR_IS_ANY_CHAR_OR_BIT, scan_pred::regu_list, filter_info::scan_attrs, filter_info::scan_pred, xasl_node::type, V_ERROR, V_TRUE, and filter_info::val_descr.
Referenced by btree_apply_key_range_and_filter().
DB_LOGICAL eval_pred | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 1650 of file query_evaluator.c.
References ARG_FILE_LINE, B_AND, B_IS, B_IS_NOT, B_OR, B_XOR, cubxasl::pred::bool_op, CHECK_REGU_VARIABLE_XASL_STATUS, db_get_set(), db_set_size(), db_string_like(), DB_TYPE_UNKNOWN, DB_VALUE_DOMAIN_TYPE, db_value_is_null(), DB_VALUE_TYPE, cubxasl::alsm_eval_term::elem, cubxasl::alsm_eval_term::elemset, cubxasl::alsm_eval_term::eq_flag, ER_ERROR_SEVERITY, ER_MAX_RECURSION_SQL_DEPTH, ER_QPROC_INVALID_DATATYPE, er_set(), cubxasl::like_eval_term::esc_char, cubxasl::eval_term::et, cubxasl::eval_term::et_alsm, cubxasl::eval_term::et_comp, cubxasl::eval_term::et_like, cubxasl::eval_term::et_type, eval_all_eval(), eval_all_list_eval(), eval_negative(), eval_pred(), eval_pred_comp1(), eval_pred_rlike7(), eval_set_list_cmp(), eval_some_eval(), eval_some_list_eval(), eval_value_rel_cmp(), EXECUTE_REGU_VARIABLE_XASL, F_ALL, fetch_peek_dbval(), cubxasl::pred::lhs, cubxasl::comp_eval_term::lhs, qfile_sorted_list_id::list_id, cubxasl::pred_expr::m_eval_term, cubxasl::pred_expr::m_not_term, cubxasl::pred_expr::m_pred, NO_ERROR, NULL, cubxasl::like_eval_term::pattern, cubxasl::pred_expr::pe, prm_get_integer_value(), PRM_ID_MAX_RECURSION_SQL_DEPTH, R_EQ_TORDER, R_EXISTS, R_NULL, R_NULLSAFE_EQ, cubxasl::comp_eval_term::rel_op, cubxasl::alsm_eval_term::rel_op, cubxasl::pred::rhs, cubxasl::comp_eval_term::rhs, set_size(), cubxasl::like_eval_term::src, regu_variable_node::regu_data_value::srlist_id, T_ALSM_EVAL_TERM, T_COMP_EVAL_TERM, T_EVAL_TERM, T_LIKE_EVAL_TERM, T_NOT_TERM, T_PRED, T_RLIKE_EVAL_TERM, thread_dec_recursion_depth(), thread_get_recursion_depth(), thread_inc_recursion_depth(), TP_IS_SET_TYPE, qfile_list_id::tuple_cnt, cubxasl::pred_expr::type, regu_variable_node::type, TYPE_LIST_ID, V_ERROR, V_FALSE, V_TRUE, V_UNKNOWN, and regu_variable_node::value.
Referenced by eval_fnc(), eval_pred(), fetch_peek_arith(), qexec_end_buildvalueblock_iterations(), qexec_eval_grbynum_pred(), qexec_eval_instnum_pred(), qexec_eval_ordbynum_pred(), qexec_execute_connect_by(), qexec_execute_duplicate_key_update(), qexec_execute_insert(), qexec_execute_obj_fetch(), qexec_execute_scan(), qexec_execute_update(), qexec_gby_finalize_group(), qexec_intprt_fnc(), qexec_iterate_connect_by_results(), qexec_merge_fnc(), qexec_merge_list_outer(), and qexec_update_connect_by_lists().
DB_LOGICAL eval_pred_alsm4 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2302 of file query_evaluator.c.
References ARG_FILE_LINE, db_get_set(), DB_VALUE_DOMAIN_TYPE, db_value_is_null(), cubxasl::alsm_eval_term::elem, cubxasl::alsm_eval_term::elemset, cubxasl::alsm_eval_term::eq_flag, ER_ERROR_SEVERITY, ER_QPROC_INVALID_DATATYPE, er_set(), cubxasl::eval_term::et, cubxasl::eval_term::et_alsm, eval_all_eval(), eval_some_eval(), F_ALL, fetch_peek_dbval(), cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::pred_expr::pe, cubxasl::alsm_eval_term::rel_op, set_size(), TP_IS_SET_TYPE, V_ERROR, V_FALSE, V_TRUE, and V_UNKNOWN.
Referenced by eval_fnc().
DB_LOGICAL eval_pred_alsm5 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2368 of file query_evaluator.c.
References CHECK_REGU_VARIABLE_XASL_STATUS, db_value_is_null(), cubxasl::alsm_eval_term::elem, cubxasl::alsm_eval_term::elemset, cubxasl::alsm_eval_term::eq_flag, cubxasl::eval_term::et, cubxasl::eval_term::et_alsm, eval_all_list_eval(), eval_some_list_eval(), EXECUTE_REGU_VARIABLE_XASL, F_ALL, fetch_peek_dbval(), qfile_sorted_list_id::list_id, cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::pred_expr::pe, cubxasl::alsm_eval_term::rel_op, regu_variable_node::regu_data_value::srlist_id, qfile_list_id::tuple_cnt, V_ERROR, V_FALSE, V_TRUE, V_UNKNOWN, and regu_variable_node::value.
Referenced by eval_fnc().
DB_LOGICAL eval_pred_comp0 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2099 of file query_evaluator.c.
References db_value_is_null(), cubxasl::eval_term::et, cubxasl::eval_term::et_comp, eval_value_rel_cmp(), fetch_peek_dbval(), cubxasl::comp_eval_term::lhs, cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::pred_expr::pe, R_NULLSAFE_EQ, cubxasl::comp_eval_term::rel_op, cubxasl::comp_eval_term::rhs, V_ERROR, and V_UNKNOWN.
Referenced by eval_fnc().
DB_LOGICAL eval_pred_comp1 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2148 of file query_evaluator.c.
References db_get_oid(), DB_TYPE_OID, DB_VALUE_DOMAIN_TYPE, db_value_is_null(), cubxasl::eval_term::et, cubxasl::eval_term::et_comp, fetch_peek_dbval(), heap_is_object_not_null(), cubxasl::comp_eval_term::lhs, cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::pred_expr::pe, V_ERROR, V_FALSE, and V_TRUE.
Referenced by eval_fnc(), and eval_pred().
DB_LOGICAL eval_pred_comp2 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2187 of file query_evaluator.c.
References ARG_FILE_LINE, CHECK_REGU_VARIABLE_XASL_STATUS, db_get_set(), DB_VALUE_DOMAIN_TYPE, db_value_is_null(), ER_ERROR_SEVERITY, ER_QPROC_INVALID_DATATYPE, er_set(), cubxasl::eval_term::et, cubxasl::eval_term::et_comp, EXECUTE_REGU_VARIABLE_XASL, fetch_peek_dbval(), cubxasl::comp_eval_term::lhs, qfile_sorted_list_id::list_id, cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::pred_expr::pe, set_size(), regu_variable_node::regu_data_value::srlist_id, TP_IS_SET_TYPE, qfile_list_id::tuple_cnt, regu_variable_node::type, TYPE_LIST_ID, V_ERROR, V_FALSE, V_TRUE, V_UNKNOWN, and regu_variable_node::value.
Referenced by eval_fnc().
DB_LOGICAL eval_pred_comp3 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2244 of file query_evaluator.c.
References db_value_is_null(), cubxasl::eval_term::et, cubxasl::eval_term::et_comp, eval_set_list_cmp(), fetch_peek_dbval(), cubxasl::comp_eval_term::lhs, cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::pred_expr::pe, cubxasl::comp_eval_term::rhs, regu_variable_node::type, TYPE_LIST_ID, V_ERROR, and V_UNKNOWN.
Referenced by eval_fnc().
DB_LOGICAL eval_pred_like6 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2426 of file query_evaluator.c.
References db_string_like(), db_value_is_null(), cubxasl::like_eval_term::esc_char, cubxasl::eval_term::et, cubxasl::eval_term::et_like, fetch_peek_dbval(), cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::like_eval_term::pattern, cubxasl::pred_expr::pe, cubxasl::like_eval_term::src, V_ERROR, and V_UNKNOWN.
Referenced by eval_fnc().
DB_LOGICAL eval_pred_rlike7 | ( | THREAD_ENTRY * | thread_p, |
const PRED_EXPR * | pr, | ||
val_descr * | vd, | ||
OID * | obj_oid | ||
) |
Definition at line 2484 of file query_evaluator.c.
References cubxasl::rlike_eval_term::case_sensitive, cubxasl::rlike_eval_term::compiled_pattern, cubxasl::rlike_eval_term::compiled_regex, db_string_rlike(), db_value_is_null(), cubxasl::eval_term::et, cubxasl::eval_term::et_rlike, fetch_peek_dbval(), cubxasl::pred_expr::m_eval_term, NO_ERROR, NULL, cubxasl::rlike_eval_term::pattern, cubxasl::pred_expr::pe, cubxasl::rlike_eval_term::src, V_ERROR, and V_UNKNOWN.
Referenced by eval_fnc(), and eval_pred().
DB_LOGICAL update_logical_result | ( | THREAD_ENTRY * | thread_p, |
DB_LOGICAL | ev_res, | ||
int * | qualification | ||
) |
Definition at line 2618 of file query_evaluator.c.
References assert, NULL, QPROC_NOT_QUALIFIED, QPROC_QUALIFIED, QPROC_QUALIFIED_OR_NOT, V_ERROR, V_FALSE, and V_TRUE.
Referenced by locator_mvcc_reevaluate_filters(), and scan_next_index_lookup_heap().