CUBRID Engine  latest
scan_manager.h File Reference
#include <time.h>
#include "btree.h"
#include "heap_file.h"
#include "method_scan.h"
#include "oid.h"
#include "query_evaluator.h"
#include "query_list.h"
#include "access_json_table.hpp"
#include "scan_json_table.hpp"
#include "storage_common.h"
#include "query_hash_scan.h"
Include dependency graph for scan_manager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  heap_scan_id
 
struct  heap_page_scan_id
 
struct  indx_cov
 
struct  range_opt_item
 
struct  multi_range_opt
 
struct  index_skip_scan
 
struct  indx_scan_id
 
struct  index_node_scan_id
 
struct  llist_scan_id
 
struct  showstmt_scan_id
 
struct  regu_values_scan_id
 
struct  set_scan_id
 
struct  va_scan_id
 
struct  scan_pos
 
struct  scan_stats
 
struct  scan_id_struct
 

Namespaces

 cubxasl
 

Macros

#define IDX_COV_DEFAULT_TUPLES   200
 
#define SCAN_IS_INDEX_COVERED(iscan_id_p)   ((iscan_id_p)->indx_cov.list_id != NULL)
 
#define SCAN_IS_INDEX_MRO(iscan_id_p)   ((iscan_id_p)->multi_range_opt.use)
 
#define SCAN_IS_INDEX_ISS(iscan_id_p)   ((iscan_id_p)->iss.use)
 
#define SCAN_IS_INDEX_ILS(iscan_id_p)
 

Typedefs

typedef struct indx_info INDX_INFO
 
typedef struct val_descr VAL_DESCR
 
using PRED_EXPR = cubxasl::pred_expr
 
typedef struct heap_scan_id HEAP_SCAN_ID
 
typedef struct heap_page_scan_id HEAP_PAGE_SCAN_ID
 
typedef struct indx_cov INDX_COV
 
typedef struct range_opt_item RANGE_OPT_ITEM
 
typedef struct multi_range_opt MULTI_RANGE_OPT
 
typedef struct index_skip_scan INDEX_SKIP_SCAN
 
typedef struct index_node_scan_id INDEX_NODE_SCAN_ID
 
typedef struct llist_scan_id LLIST_SCAN_ID
 
typedef struct showstmt_scan_id SHOWSTMT_SCAN_ID
 
typedef struct regu_values_scan_id REGU_VALUES_SCAN_ID
 
typedef struct set_scan_id SET_SCAN_ID
 
typedef struct va_scan_id VA_SCAN_ID
 
typedef struct scan_pos SCAN_POS
 
typedef struct scan_stats SCAN_STATS
 
typedef struct scan_id_struct SCAN_ID
 

Enumerations

enum  SCAN_TYPE {
  S_HEAP_SCAN = 1, S_CLASS_ATTR_SCAN, S_INDX_SCAN, S_LIST_SCAN,
  S_SET_SCAN, S_JSON_TABLE_SCAN, S_METHOD_SCAN, S_VALUES_SCAN,
  S_SHOWSTMT_SCAN, S_HEAP_SCAN_RECORD_INFO, S_HEAP_PAGE_SCAN, S_INDX_KEY_INFO_SCAN,
  S_INDX_NODE_INFO_SCAN
}
 
enum  ISS_OP_TYPE { ISS_OP_NONE, ISS_OP_GET_FIRST_KEY, ISS_OP_DO_RANGE_SEARCH, ISS_OP_SEARCH_NEXT_DISTINCT_KEY }
 

Functions

int scan_open_heap_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, bool mvcc_select_lock_needed, SCAN_OPERATION_TYPE scan_op_type, int fixed, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, OID *cls_oid, HFID *hfid, regu_variable_list_node *regu_list_pred, PRED_EXPR *pr, regu_variable_list_node *regu_list_rest, int num_attrs_pred, ATTR_ID *attrids_pred, HEAP_CACHE_ATTRINFO *cache_pred, int num_attrs_rest, ATTR_ID *attrids_rest, HEAP_CACHE_ATTRINFO *cache_rest, SCAN_TYPE scan_type, DB_VALUE **cache_recordinfo, regu_variable_list_node *regu_list_recordinfo)
 
int scan_open_heap_page_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, val_list_node *val_list, val_descr *vd, OID *cls_oid, HFID *hfid, PRED_EXPR *pr, SCAN_TYPE scan_type, DB_VALUE **cache_page_info, regu_variable_list_node *regu_list_page_info)
 
int scan_open_class_attr_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, OID *cls_oid, HFID *hfid, regu_variable_list_node *regu_list_pred, PRED_EXPR *pr, regu_variable_list_node *regu_list_rest, int num_attrs_pred, ATTR_ID *attrids_pred, HEAP_CACHE_ATTRINFO *cache_pred, int num_attrs_rest, ATTR_ID *attrids_rest, HEAP_CACHE_ATTRINFO *cache_rest)
 
int scan_open_index_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, bool mvcc_select_lock_needed, SCAN_OPERATION_TYPE scan_op_type, int fixed, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, indx_info *indx_info, OID *cls_oid, HFID *hfid, regu_variable_list_node *regu_list_key, PRED_EXPR *pr_key, regu_variable_list_node *regu_list_pred, PRED_EXPR *pr, regu_variable_list_node *regu_list_rest, PRED_EXPR *pr_range, regu_variable_list_node *regu_list_range, valptr_list_node *output_val_list, regu_variable_list_node *regu_val_list, int num_attrs_key, ATTR_ID *attrids_key, HEAP_CACHE_ATTRINFO *cache_key, int num_attrs_pred, ATTR_ID *attrids_pred, HEAP_CACHE_ATTRINFO *cache_pred, int num_attrs_rest, ATTR_ID *attrids_rest, HEAP_CACHE_ATTRINFO *cache_rest, int num_attrs_range, ATTR_ID *attrids_range, HEAP_CACHE_ATTRINFO *cache_range, bool iscan_oid_order, QUERY_ID query_id)
 
int scan_open_index_key_info_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, val_list_node *val_list, val_descr *vd, indx_info *indx_info, OID *cls_oid, HFID *hfid, PRED_EXPR *pr, valptr_list_node *output_val_list, bool iscan_oid_order, QUERY_ID query_id, DB_VALUE **key_info_values, regu_variable_list_node *key_info_regu_list)
 
int scan_open_index_node_info_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, val_list_node *val_list, val_descr *vd, indx_info *indx_info, PRED_EXPR *pr, DB_VALUE **node_info_values, regu_variable_list_node *node_info_regu_list)
 
int scan_open_list_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, QFILE_LIST_ID *list_id, regu_variable_list_node *regu_list_pred, PRED_EXPR *pr, regu_variable_list_node *regu_list_rest, regu_variable_list_node *regu_list_build, regu_variable_list_node *regu_list_probe, int hash_list_scan_yn)
 
int scan_open_showstmt_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, PRED_EXPR *pr, SHOWSTMT_TYPE show_type, regu_variable_list_node *arg_list)
 
int scan_open_values_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, valptr_list_node *valptr_list)
 
int scan_open_set_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, regu_variable_node *set_ptr, regu_variable_list_node *regu_list_pred, PRED_EXPR *pr)
 
int scan_open_json_table_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, PRED_EXPR *pr)
 
int scan_open_method_scan (THREAD_ENTRY *thread_p, SCAN_ID *scan_id, int grouped, QPROC_SINGLE_FETCH single_fetch, DB_VALUE *join_dbval, val_list_node *val_list, val_descr *vd, QFILE_LIST_ID *list_id, method_sig_list *meth_sig_list)
 
int scan_start_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
SCAN_CODE scan_reset_scan_block (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
SCAN_CODE scan_next_scan_block (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
void scan_end_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
void scan_close_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
SCAN_CODE scan_next_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
SCAN_CODE scan_prev_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
void scan_save_scan_pos (SCAN_ID *s_id, SCAN_POS *scan_pos)
 
SCAN_CODE scan_jump_scan_pos (THREAD_ENTRY *thread_p, SCAN_ID *s_id, SCAN_POS *scan_pos)
 
int scan_init_iss (INDX_SCAN_ID *isidp)
 
void scan_init_index_scan (INDX_SCAN_ID *isidp, struct btree_iscan_oid_list *oid_list, MVCC_SNAPSHOT *mvcc_snapshot)
 
int scan_initialize (void)
 
void scan_finalize (void)
 
void scan_init_filter_info (FILTER_INFO *filter_info_p, SCAN_PRED *scan_pred, SCAN_ATTRS *scan_attrs, val_list_node *val_list, val_descr *val_descr, OID *class_oid, int btree_num_attrs, ATTR_ID *btree_attr_ids, int *num_vstr_ptr, ATTR_ID *vstr_ids)
 
void showstmt_scan_init (void)
 
SCAN_CODE showstmt_next_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
int showstmt_start_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 
int showstmt_end_scan (THREAD_ENTRY *thread_p, SCAN_ID *s_id)
 

Macro Definition Documentation

#define IDX_COV_DEFAULT_TUPLES   200

Definition at line 73 of file scan_manager.h.

Referenced by scan_init_indx_coverage().

#define SCAN_IS_INDEX_COVERED (   iscan_id_p)    ((iscan_id_p)->indx_cov.list_id != NULL)
#define SCAN_IS_INDEX_ILS (   iscan_id_p)
Value:
((iscan_id_p)->indx_info != NULL \
&& (iscan_id_p)->indx_info->ils_prefix_len > 0)
#define NULL
Definition: freelistheap.h:34

Definition at line 373 of file scan_manager.h.

#define SCAN_IS_INDEX_ISS (   iscan_id_p)    ((iscan_id_p)->iss.use)

Definition at line 372 of file scan_manager.h.

#define SCAN_IS_INDEX_MRO (   iscan_id_p)    ((iscan_id_p)->multi_range_opt.use)

Definition at line 371 of file scan_manager.h.

Referenced by qexec_intprt_fnc().

Typedef Documentation

Definition at line 112 of file scan_manager.h.

typedef struct heap_scan_id HEAP_SCAN_ID

Definition at line 93 of file scan_manager.h.

Definition at line 235 of file scan_manager.h.

Definition at line 177 of file scan_manager.h.

typedef struct indx_cov INDX_COV

Definition at line 123 of file scan_manager.h.

typedef struct indx_info INDX_INFO

Definition at line 51 of file scan_manager.h.

typedef struct llist_scan_id LLIST_SCAN_ID

Definition at line 246 of file scan_manager.h.

Definition at line 148 of file scan_manager.h.

Definition at line 66 of file scan_manager.h.

Definition at line 141 of file scan_manager.h.

Definition at line 270 of file scan_manager.h.

typedef struct scan_id_struct SCAN_ID

Definition at line 329 of file scan_manager.h.

typedef struct scan_pos SCAN_POS

Definition at line 295 of file scan_manager.h.

typedef struct scan_stats SCAN_STATS

Definition at line 303 of file scan_manager.h.

typedef struct set_scan_id SET_SCAN_ID

Definition at line 277 of file scan_manager.h.

Definition at line 257 of file scan_manager.h.

typedef struct va_scan_id VA_SCAN_ID

Definition at line 288 of file scan_manager.h.

typedef struct val_descr VAL_DESCR

Definition at line 58 of file scan_manager.h.

Enumeration Type Documentation

Enumerator
ISS_OP_NONE 
ISS_OP_GET_FIRST_KEY 
ISS_OP_DO_RANGE_SEARCH 
ISS_OP_SEARCH_NEXT_DISTINCT_KEY 

Definition at line 168 of file scan_manager.h.

enum SCAN_TYPE
Enumerator
S_HEAP_SCAN 
S_CLASS_ATTR_SCAN 
S_INDX_SCAN 
S_LIST_SCAN 
S_SET_SCAN 
S_JSON_TABLE_SCAN 
S_METHOD_SCAN 
S_VALUES_SCAN 
S_SHOWSTMT_SCAN 
S_HEAP_SCAN_RECORD_INFO 
S_HEAP_PAGE_SCAN 
S_INDX_KEY_INFO_SCAN 
S_INDX_NODE_INFO_SCAN 

Definition at line 75 of file scan_manager.h.

Function Documentation

void scan_close_scan ( THREAD_ENTRY thread_p,
SCAN_ID s_id 
)

Definition at line 4719 of file scan_manager.c.

References showstmt_scan_id::arg_values, indx_scan_id::bt_attr_ids, indx_scan_id::bt_attrs_prefix_length, indx_scan_id::bt_num_attrs, multi_range_opt::buffer, indx_scan_id::copy_buf, db_private_free_and_init, qfile_tuple_value_type_list::domp, indx_scan_id::fetched_values, hash_list_scan::hash_list_scan_yn, hash_list_scan::hash_table, llist_scan_id::hlsid, i, range_opt_item::index_value, indx_scan_id::indx_cov, multi_range_opt::is_desc_order, scan_id_struct::isid, indx_scan_id::key_vals, indx_cov::list_id, llist_scan_id::list_id, scan_id_struct::llsid, indx_cov::lsid, method_close_scan(), mht_clear_hls(), mht_destroy_hls(), mht_dump_hls(), indx_scan_id::multi_range_opt, NULL, indx_scan_id::oid_list, showstmt_scan_id::out_values, qfile_list_id::page_cnt, pr_clear_value(), qdata_free_hscan_entry(), qdata_free_hscan_key(), qdata_print_hash_scan_entry(), qfile_close_list(), qfile_close_scan(), qfile_destroy_list(), QFILE_FREE_AND_INIT_LIST_ID, scan_id_struct::s, S_CLASS_ATTR_SCAN, S_CLOSED, S_HEAP_PAGE_SCAN, S_HEAP_SCAN, S_HEAP_SCAN_RECORD_INFO, S_INDX_SCAN, S_JSON_TABLE_SCAN, S_LIST_SCAN, S_METHOD_SCAN, S_SET_SCAN, S_SHOWSTMT_SCAN, S_VALUES_SCAN, va_scan_id::scan_buf, scan_free_iscan_oid_buf_list(), multi_range_opt::size, multi_range_opt::sort_att_idx, multi_range_opt::sort_col_dom, scan_id_struct::status, scan_id_struct::stsid, hash_list_scan::temp_key, hash_list_scan::temp_new_key, multi_range_opt::top_n_items, qfile_tuple_record::tpl, indx_cov::tplrec, multi_range_opt::tplrec, qfile_list_id::tuple_cnt, scan_id_struct::type, indx_cov::type_list, scan_id_struct::vaid, hash_scan_key::val_count, and indx_scan_id::vstr_ids.

Referenced by qexec_clear_xasl(), qexec_close_scan(), qexec_init_next_partition(), and qexec_merge_fnc().

Here is the caller graph for this function:

void scan_finalize ( void  )

Definition at line 7294 of file scan_manager.c.

References btree_iscan_oid_list::next_list, NULL, scan_free_oid_list(), and scan_Iscan_oid_buf_list.

Referenced by qmgr_finalize(), and scan_initialize().

Here is the caller graph for this function:

SCAN_CODE scan_next_scan ( THREAD_ENTRY thread_p,
SCAN_ID s_id 
)
int scan_open_class_attr_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
int  grouped,
QPROC_SINGLE_FETCH  single_fetch,
DB_VALUE join_dbval,
val_list_node val_list,
val_descr vd,
OID cls_oid,
HFID hfid,
regu_variable_list_node regu_list_pred,
PRED_EXPR pr,
regu_variable_list_node regu_list_rest,
int  num_attrs_pred,
ATTR_ID attrids_pred,
HEAP_CACHE_ATTRINFO cache_pred,
int  num_attrs_rest,
ATTR_ID attrids_rest,
HEAP_CACHE_ATTRINFO cache_rest 
)
int scan_open_heap_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
bool  mvcc_select_lock_needed,
SCAN_OPERATION_TYPE  scan_op_type,
int  fixed,
int  grouped,
QPROC_SINGLE_FETCH  single_fetch,
DB_VALUE join_dbval,
val_list_node val_list,
val_descr vd,
OID cls_oid,
HFID hfid,
regu_variable_list_node regu_list_pred,
PRED_EXPR pr,
regu_variable_list_node regu_list_rest,
int  num_attrs_pred,
ATTR_ID attrids_pred,
HEAP_CACHE_ATTRINFO cache_pred,
int  num_attrs_rest,
ATTR_ID attrids_rest,
HEAP_CACHE_ATTRINFO cache_rest,
SCAN_TYPE  scan_type,
DB_VALUE **  cache_recordinfo,
regu_variable_list_node regu_list_recordinfo 
)
int scan_open_index_key_info_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
val_list_node val_list,
val_descr vd,
indx_info indx_info,
OID cls_oid,
HFID hfid,
PRED_EXPR pr,
valptr_list_node output_val_list,
bool  iscan_oid_order,
QUERY_ID  query_id,
DB_VALUE **  key_info_values,
regu_variable_list_node key_info_regu_list 
)

Definition at line 3386 of file scan_manager.c.

References assert, indx_scan_id::bt_attr_ids, indx_scan_id::bt_num_attrs, indx_scan_id::bt_scan, indx_scan_id::bt_type, indx_info::btid, btree_scan::btid_int, btree_get_root_header(), btree_glean_root_header_info(), BTREE_INIT_SCAN, indx_scan_id::cls_oid, indx_scan_id::copy_buf, indx_scan_id::copy_buf_len, COPY_OID, indx_scan_id::curr_keyno, indx_scan_id::curr_oidno, indx_scan_id::curr_oidp, db_private_alloc, db_private_free_and_init, DB_TYPE_NULL, qfile_tuple_value_type_list::domp, er_errid(), ER_FAILED, eval_fnc(), heap_get_indexinfo_of_btid(), indx_scan_id::hfid, indx_scan_id::indx_cov, indx_scan_id::indx_info, btree_scan::is_btid_int_valid, indx_scan_id::iscan_oid_order, scan_id_struct::isid, indx_scan_id::key_cnt, indx_info::key_info, indx_scan_id::key_info_regu_list, indx_scan_id::key_info_values, indx_scan_id::key_vals, indx_cov::list_id, indx_cov::lsid, btree_node_header::max_key_len, indx_scan_id::multi_range_opt, NO_ERROR, btree_root_header::node, NULL, indx_scan_id::num_vstr, indx_scan_id::oid_list, OLD_PAGE, indx_scan_id::one_range, vpid::pageid, pgbuf_fix, PGBUF_LATCH_READ, PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, prm_get_bool_value(), PRM_ID_ORACLE_STYLE_EMPTY_STRING, QFILE_FREE_AND_INIT_LIST_ID, QPROC_NO_SINGLE_INNER, btid::root_pageid, scan_id_struct::s, S_INDX_KEY_INFO_SCAN, S_SELECT, scan_init_index_key_limit(), scan_init_indx_coverage(), scan_init_iss(), scan_init_scan_id(), scan_init_scan_pred(), indx_scan_id::scan_pred, indx_scan_id::scancache_inited, btid_int::sys_btid, qfile_tuple_record::tpl, indx_cov::tplrec, scan_id_struct::type, indx_cov::type_list, multi_range_opt::use, btid::vfid, vpid::volid, vfid::volid, and indx_scan_id::vstr_ids.

Referenced by qexec_open_scan().

Here is the caller graph for this function:

int scan_open_index_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
bool  mvcc_select_lock_needed,
SCAN_OPERATION_TYPE  scan_op_type,
int  fixed,
int  grouped,
QPROC_SINGLE_FETCH  single_fetch,
DB_VALUE join_dbval,
val_list_node val_list,
val_descr vd,
indx_info indx_info,
OID cls_oid,
HFID hfid,
regu_variable_list_node regu_list_key,
PRED_EXPR pr_key,
regu_variable_list_node regu_list_pred,
PRED_EXPR pr,
regu_variable_list_node regu_list_rest,
PRED_EXPR pr_range,
regu_variable_list_node regu_list_range,
valptr_list_node output_val_list,
regu_variable_list_node regu_val_list,
int  num_attrs_key,
ATTR_ID attrids_key,
HEAP_CACHE_ATTRINFO cache_key,
int  num_attrs_pred,
ATTR_ID attrids_pred,
HEAP_CACHE_ATTRINFO cache_pred,
int  num_attrs_rest,
ATTR_ID attrids_rest,
HEAP_CACHE_ATTRINFO cache_rest,
int  num_attrs_range,
ATTR_ID attrids_range,
HEAP_CACHE_ATTRINFO cache_range,
bool  iscan_oid_order,
QUERY_ID  query_id 
)

Definition at line 3019 of file scan_manager.c.

References assert, indx_scan_id::bt_attr_ids, indx_scan_id::bt_attrs_prefix_length, indx_scan_id::bt_num_attrs, indx_scan_id::bt_scan, indx_scan_id::bt_type, indx_info::btid, btree_scan::btid_int, btree_get_root_header(), btree_glean_root_header_info(), BTREE_INIT_SCAN, btree_iscan_oid_list::capacity, indx_scan_id::cls_oid, indx_scan_id::copy_buf, indx_scan_id::copy_buf_len, COPY_OID, indx_info::coverage, scan_stats::covered_index, indx_scan_id::curr_keyno, indx_scan_id::curr_oidno, indx_scan_id::curr_oidp, DB_INT32_MAX, db_make_null(), db_private_alloc, db_private_free_and_init, DB_TYPE_MIDXKEY, DB_TYPE_NULL, DBVAL_BUFSIZE, qfile_tuple_value_type_list::domp, EQ_NA, er_errid(), ER_FAILED, eval_fnc(), indx_scan_id::fetched_values, heap_get_indexinfo_of_btid(), indx_scan_id::hfid, indx_info::ils_prefix_len, indx_scan_id::indx_cov, indx_scan_id::indx_info, btree_scan::is_btid_int_valid, ISCAN_OID_BUFFER_COUNT, indx_scan_id::iscan_oid_order, scan_id_struct::isid, indx_scan_id::key_attrs, key_info::key_cnt, indx_scan_id::key_cnt, indx_info::key_info, indx_scan_id::key_limit_lower, key_info::key_limit_reset, indx_scan_id::key_limit_upper, indx_scan_id::key_pred, key_info::key_ranges, btid_int::key_type, indx_scan_id::key_vals, indx_cov::list_id, scan_stats::loose_index_scan, indx_cov::lsid, btree_node_header::max_key_len, btree_iscan_oid_list::max_oid_cnt, indx_scan_id::multi_range_opt, scan_stats::multi_range_opt, btree_iscan_oid_list::next_list, NO_ERROR, btree_root_header::node, NULL, indx_scan_id::num_vstr, btree_iscan_oid_list::oid_cnt, indx_scan_id::oid_list, btree_iscan_oid_list::oidp, OLD_PAGE, indx_scan_id::one_range, PAGE_BTREE, vpid::pageid, pgbuf_check_page_ptype(), pgbuf_fix, PGBUF_LATCH_READ, PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, indx_scan_id::pred_attrs, prm_get_bool_value(), PRM_ID_ORACLE_STYLE_EMPTY_STRING, QFILE_FREE_AND_INIT_LIST_ID, QSTR_IS_ANY_CHAR_OR_BIT, key_range::range, indx_scan_id::range_attrs, indx_scan_id::range_pred, indx_scan_id::rest_attrs, indx_scan_id::rest_regu_list, btid::root_pageid, scan_id_struct::s, S_INDX_SCAN, S_SELECT, scan_alloc_iscan_oid_buf_list(), scan_free_iscan_oid_buf_list(), scan_init_index_key_limit(), scan_init_indx_coverage(), scan_init_iss(), scan_init_multi_range_optimization(), scan_init_scan_attrs(), scan_init_scan_id(), scan_init_scan_pred(), indx_scan_id::scan_pred, scan_id_struct::scan_stats, indx_scan_id::scancache_inited, btid_int::sys_btid, TP_DOMAIN_TYPE, qfile_tuple_record::tpl, indx_cov::tplrec, tp_domain::type, scan_id_struct::type, indx_cov::type_list, multi_range_opt::use, btid::vfid, vpid::volid, vfid::volid, and indx_scan_id::vstr_ids.

Referenced by qexec_init_next_partition(), and qexec_open_scan().

Here is the caller graph for this function:

int scan_open_json_table_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
int  grouped,
QPROC_SINGLE_FETCH  single_fetch,
DB_VALUE join_dbval,
val_list_node val_list,
val_descr vd,
PRED_EXPR pr 
)
int scan_open_method_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
int  grouped,
QPROC_SINGLE_FETCH  single_fetch,
DB_VALUE join_dbval,
val_list_node val_list,
val_descr vd,
QFILE_LIST_ID list_id,
method_sig_list meth_sig_list 
)

Definition at line 3989 of file scan_manager.c.

References method_open_scan(), scan_id_struct::s, S_METHOD_SCAN, S_SELECT, va_scan_id::scan_buf, scan_init_scan_id(), scan_id_struct::type, and scan_id_struct::vaid.

Referenced by qexec_open_scan().

Here is the caller graph for this function:

int scan_open_set_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
int  grouped,
QPROC_SINGLE_FETCH  single_fetch,
DB_VALUE join_dbval,
val_list_node val_list,
val_descr vd,
regu_variable_node set_ptr,
regu_variable_list_node regu_list_pred,
PRED_EXPR pr 
)
int scan_open_values_scan ( THREAD_ENTRY thread_p,
SCAN_ID scan_id,
int  grouped,
QPROC_SINGLE_FETCH  single_fetch,
DB_VALUE join_dbval,
val_list_node val_list,
val_descr vd,
valptr_list_node valptr_list 
)
SCAN_CODE scan_prev_scan ( THREAD_ENTRY thread_p,
SCAN_ID s_id 
)

Definition at line 7095 of file scan_manager.c.

References scan_handle_single_scan(), and scan_prev_scan_local().

void scan_save_scan_pos ( SCAN_ID s_id,
SCAN_POS scan_pos 
)
int scan_start_scan ( THREAD_ENTRY thread_p,
SCAN_ID s_id 
)

Definition at line 4014 of file scan_manager.c.

References ARG_FILE_LINE, assert, scan_attrs::attr_cache, scan_attrs::attr_ids, index_node_scan_id::btns, BTREE_KEY_INFO_COUNT, BTREE_NODE_INFO_COUNT, BTREE_NODE_SCAN_INIT, heap_scan_id::cache_recordinfo, heap_scan_id::caches_inited, indx_scan_id::caches_inited, index_node_scan_id::caches_inited, heap_scan_id::cls_oid, indx_scan_id::cls_oid, indx_scan_id::curr_keyno, heap_scan_id::curr_oid, indx_scan_id::curr_oidno, heap_page_scan_id::curr_vpid, regu_value_list::current_value, db_make_null(), scan_id_struct::direction, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_QPROC_INVALID_XASLNODE, er_set(), scan_id_struct::fixed, scan_id_struct::grouped, heap_attrinfo_end(), heap_attrinfo_start(), HEAP_RECORD_INFO_COUNT, heap_scancache_start(), heap_scanrange_start(), heap_scan_id::hfid, indx_scan_id::hfid, scan_id_struct::hpsid, scan_id_struct::hsid, i, scan_id_struct::insid, scan_id_struct::isid, scan_id_struct::jtid, indx_scan_id::key_attrs, indx_scan_id::key_info_values, indx_scan_id::key_pred, llist_scan_id::list_id, scan_id_struct::llsid, logtb_get_mvcc_snapshot(), llist_scan_id::lsid, regu_variable_list_node::next, NO_ERROR, index_node_scan_id::node_info_values, NULL, scan_id_struct::null_fetched, scan_attrs::num_attrs, OID_IS_ROOTOID, indx_scan_id::oids_count, indx_scan_id::one_range, scan_id_struct::position, heap_scan_id::pred_attrs, indx_scan_id::pred_attrs, qfile_open_list_scan(), qfile_start_scan_fix(), scan_id_struct::qualified_block, indx_scan_id::range_attrs, indx_scan_id::range_pred, scan_pred::regu_list, regu_value_list::regu_list, regu_values_scan_id::regu_list, heap_scan_id::rest_attrs, indx_scan_id::rest_attrs, scan_id_struct::rvsid, scan_id_struct::s, S_BEFORE, S_CLASS_ATTR_SCAN, S_FORWARD, S_HEAP_PAGE_SCAN, S_HEAP_SCAN, S_HEAP_SCAN_RECORD_INFO, S_INDX_KEY_INFO_SCAN, S_INDX_NODE_INFO_SCAN, S_INDX_SCAN, S_JSON_TABLE_SCAN, S_LIST_SCAN, S_METHOD_SCAN, S_SET_SCAN, S_SHOWSTMT_SCAN, S_STARTED, S_VALUES_SCAN, heap_scan_id::scan_cache, indx_scan_id::scan_cache, heap_scan_id::scan_range, heap_scan_id::scancache_inited, indx_scan_id::scancache_inited, heap_scan_id::scanrange_inited, set_scan_id::set, showstmt_start_scan(), scan_id_struct::single_fetched, scan_id_struct::ssid, scan_id_struct::status, scan_id_struct::type, UT_CAST_TO_NULL_HEAP_OID, regu_variable_list_node::value, and VPID_SET_NULL.

Referenced by qexec_init_next_partition(), qexec_merge_list_outer(), qexec_next_merge_block(), qexec_next_scan_block(), and scan_open_list_scan().

Here is the caller graph for this function:

int showstmt_end_scan ( THREAD_ENTRY thread_p,
SCAN_ID s_id 
)

Definition at line 309 of file show_scan.c.

References assert, showstmt_scan_id::ctx, show_request::end_func, error(), NO_ERROR, NULL, scan_id_struct::s, show_request::show_type, showstmt_scan_id::show_type, and scan_id_struct::stsid.

Referenced by scan_end_scan().

Here is the caller graph for this function:

void showstmt_scan_init ( void  )

Definition at line 100 of file show_scan.c.

References btree_index_end_scan(), btree_index_next_scan(), btree_index_start_scan(), csect_start_scan, css_job_queues_start_scan(), css_user_access_status_start_scan(), disk_volume_header_end_scan(), disk_volume_header_next_scan(), disk_volume_header_start_scan(), show_request::end_func, heap_capacity_next_scan(), heap_header_capacity_end_scan(), heap_header_capacity_start_scan(), heap_header_next_scan(), log_active_log_header_end_scan(), log_active_log_header_next_scan(), log_active_log_header_start_scan(), log_archive_log_header_end_scan(), log_archive_log_header_next_scan(), log_archive_log_header_start_scan(), logtb_descriptors_start_scan(), show_request::next_func, pgbuf_start_scan(), show_scan_Inited, show_request::show_type, SHOWSTMT_ACCESS_STATUS, SHOWSTMT_ACTIVE_LOG_HEADER, SHOWSTMT_ALL_HEAP_CAPACITY, SHOWSTMT_ALL_HEAP_HEADER, SHOWSTMT_ALL_INDEXES_CAPACITY, SHOWSTMT_ALL_INDEXES_HEADER, SHOWSTMT_ARCHIVE_LOG_HEADER, showstmt_array_end_scan(), showstmt_array_next_scan(), SHOWSTMT_END, SHOWSTMT_FULL_TIMEZONES, SHOWSTMT_GLOBAL_CRITICAL_SECTIONS, SHOWSTMT_HEAP_CAPACITY, SHOWSTMT_HEAP_HEADER, SHOWSTMT_INDEX_CAPACITY, SHOWSTMT_INDEX_HEADER, SHOWSTMT_JOB_QUEUES, SHOWSTMT_PAGE_BUFFER_STATUS, SHOWSTMT_SLOTTED_PAGE_HEADER, SHOWSTMT_SLOTTED_PAGE_SLOTS, SHOWSTMT_THREADS, SHOWSTMT_TIMEZONES, SHOWSTMT_TRAN_TABLES, SHOWSTMT_VOLUME_HEADER, spage_header_end_scan(), spage_header_next_scan(), spage_header_start_scan(), spage_slots_end_scan(), spage_slots_next_scan(), spage_slots_start_scan(), show_request::start_func, thread_start_scan(), tz_full_timezones_start_scan(), and tz_timezones_start_scan().

Referenced by xboot_register_client().

Here is the caller graph for this function:

int showstmt_start_scan ( THREAD_ENTRY thread_p,
SCAN_ID s_id 
)