Skip to content

File scan_manager.h

FileList > cubrid > src > query > scan_manager.h

Go to the source code of this file

  • #include <time.h>
  • #include "jansson.h"
  • #include "btree.h"
  • #include "heap_file.h"
  • #include "method_scan.hpp"
  • #include "dblink_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"

Namespaces

Type Name
namespace cubxasl
namespace parallel_heap_scan

Classes

Type Name
struct dblink_scan_id
struct heap_page_scan_id
struct heap_scan_id
struct index_node_scan_id
struct index_skip_scan
struct indx_cov
struct indx_scan_id
struct llist_scan_id
struct multi_range_opt
struct parallel_heap_scan_id
struct range_opt_item
struct regu_values_scan_id
struct scan_agl
struct scan_id_struct
struct scan_pos
struct scan_stats
struct set_scan_id
struct showstmt_scan_id

Public Types

Type Name
typedef struct dblink_scan_id DBLINK_SCAN_ID
typedef struct heap_page_scan_id HEAP_PAGE_SCAN_ID
typedef struct heap_scan_id HEAP_SCAN_ID
typedef struct index_node_scan_id INDEX_NODE_SCAN_ID
typedef struct index_skip_scan INDEX_SKIP_SCAN
typedef struct indx_cov INDX_COV
typedef struct indx_info INDX_INFO
enum ISS_OP_TYPE
typedef struct llist_scan_id LLIST_SCAN_ID
typedef struct multi_range_opt MULTI_RANGE_OPT
typedef struct parallel_heap_scan_id PARALLEL_HEAP_SCAN_ID
typedef cubxasl::pred_expr PRED_EXPR
typedef struct range_opt_item RANGE_OPT_ITEM
typedef struct regu_values_scan_id REGU_VALUES_SCAN_ID
typedef struct scan_agl SCAN_AGL
typedef struct scan_id_struct SCAN_ID
typedef struct scan_pos SCAN_POS
typedef struct scan_stats SCAN_STATS
enum SCAN_TYPE
typedef struct set_scan_id SET_SCAN_ID
typedef struct showstmt_scan_id SHOWSTMT_SCAN_ID
typedef struct val_descr VAL_DESCR

Public Functions

Type Name
void scan_close_scan (THREAD_ENTRY * thread_p, SCAN_ID * s_id)
void scan_end_scan (THREAD_ENTRY * thread_p, SCAN_ID * s_id)
void scan_finalize (void)
void scan_init_index_scan (INDX_SCAN_ID * isidp, struct btree_iscan_oid_list * oid_list, MVCC_SNAPSHOT * mvcc_snapshot)
int scan_init_iss (INDX_SCAN_ID * isidp)
int scan_initialize (void)
SCAN_CODE scan_jump_scan_pos (THREAD_ENTRY * thread_p, SCAN_ID * s_id, SCAN_POS * scan_pos)
SCAN_CODE scan_next_scan (THREAD_ENTRY * thread_p, SCAN_ID * s_id)
SCAN_CODE scan_next_scan_block (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_dblink_scan (THREAD_ENTRY * thread_p, SCAN_ID * scan_id, struct access_spec_node * spec, VAL_DESCR * vd, val_list_node * val_list, DBLINK_HOST_VARS * host_vars)
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_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, bool is_partition_table)
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_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, bool min_max_optimzied_scan)
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_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, bool is_read_only)
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, PL_SIGNATURE_ARRAY_TYPE * meth_sig_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_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)
SCAN_CODE scan_prev_scan (THREAD_ENTRY * thread_p, SCAN_ID * s_id)
void scan_print_stats_json (SCAN_ID * scan_id, json_t * stats)
void scan_print_stats_text (FILE * fp, SCAN_ID * scan_id)
SCAN_CODE scan_reset_scan_block (THREAD_ENTRY * thread_p, SCAN_ID * s_id)
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)
int showstmt_end_scan (THREAD_ENTRY * thread_p, SCAN_ID * s_id)
SCAN_CODE showstmt_next_scan (THREAD_ENTRY * thread_p, SCAN_ID * s_id)
void showstmt_scan_init (void)
int showstmt_start_scan (THREAD_ENTRY * thread_p, SCAN_ID * s_id)

Macros

Type Name
define IDX_COV_DEFAULT_TUPLES 200
define SCAN_IS_INDEX_COVERED (iscan_id_p) (([**iscan\_id\_p**](broker__monitor_8c.md#function-timeout))-&gt;[**indx\_cov.list\_id**](structindx__cov.md#variable-list_id) != [**NULL**](freelistheap_8h.md#define-null))
define SCAN_IS_INDEX_ILS (iscan_id_p) /* multi line expression */
define SCAN_IS_INDEX_ISS (iscan_id_p) (([**iscan\_id\_p**](broker__monitor_8c.md#function-timeout))-&gt;iss.use)
define SCAN_IS_INDEX_MRO (iscan_id_p) (([**iscan\_id\_p**](broker__monitor_8c.md#function-timeout))-&gt;[**multi\_range\_opt.use**](structmulti__range__opt.md#variable-use))

Public Types Documentation

typedef struct dblink_scan_id DBLINK_SCAN_ID;

typedef HEAP_PAGE_SCAN_ID

typedef struct heap_page_scan_id HEAP_PAGE_SCAN_ID;

typedef HEAP_SCAN_ID

typedef struct heap_scan_id HEAP_SCAN_ID;

typedef INDEX_NODE_SCAN_ID

typedef struct index_node_scan_id INDEX_NODE_SCAN_ID;

typedef INDEX_SKIP_SCAN

typedef struct index_skip_scan INDEX_SKIP_SCAN;

typedef INDX_COV

typedef struct indx_cov INDX_COV;

typedef INDX_INFO

typedef struct indx_info INDX_INFO;

enum ISS_OP_TYPE

enum ISS_OP_TYPE {
    ISS_OP_NONE,
    ISS_OP_GET_FIRST_KEY,
    ISS_OP_DO_RANGE_SEARCH,
    ISS_OP_SEARCH_NEXT_DISTINCT_KEY
};

typedef LLIST_SCAN_ID

typedef struct llist_scan_id LLIST_SCAN_ID;

typedef MULTI_RANGE_OPT

typedef struct multi_range_opt MULTI_RANGE_OPT;

typedef PARALLEL_HEAP_SCAN_ID

typedef struct parallel_heap_scan_id PARALLEL_HEAP_SCAN_ID;

typedef PRED_EXPR

using PRED_EXPR =  cubxasl::pred_expr;

typedef RANGE_OPT_ITEM

typedef struct range_opt_item RANGE_OPT_ITEM;

typedef REGU_VALUES_SCAN_ID

typedef struct regu_values_scan_id REGU_VALUES_SCAN_ID;

typedef SCAN_AGL

typedef struct scan_agl SCAN_AGL;

typedef SCAN_ID

typedef struct scan_id_struct SCAN_ID;

typedef SCAN_POS

typedef struct scan_pos SCAN_POS;

typedef SCAN_STATS

typedef struct scan_stats SCAN_STATS;

enum SCAN_TYPE

enum SCAN_TYPE {
    S_HEAP_SCAN = 1,
    S_PARALLEL_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,
    S_DBLINK_SCAN,
    S_HEAP_SAMPLING_SCAN
};

typedef SET_SCAN_ID

typedef struct set_scan_id SET_SCAN_ID;

typedef SHOWSTMT_SCAN_ID

typedef struct showstmt_scan_id SHOWSTMT_SCAN_ID;

typedef VAL_DESCR

typedef struct val_descr VAL_DESCR;

Public Functions Documentation

function scan_close_scan

void scan_close_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function scan_end_scan

void scan_end_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function scan_finalize

void scan_finalize (
    void
) 

function scan_init_index_scan

void scan_init_index_scan (
    INDX_SCAN_ID * isidp,
    struct  btree_iscan_oid_list * oid_list,
    MVCC_SNAPSHOT * mvcc_snapshot
) 

function scan_init_iss

int scan_init_iss (
    INDX_SCAN_ID * isidp
) 

function scan_initialize

int scan_initialize (
    void
) 

function scan_jump_scan_pos

SCAN_CODE scan_jump_scan_pos (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id,
    SCAN_POS * scan_pos
) 

function scan_next_scan

SCAN_CODE scan_next_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function scan_next_scan_block

SCAN_CODE scan_next_scan_block (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function scan_open_class_attr_scan

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_dblink_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * scan_id,
    struct  access_spec_node * spec,
    VAL_DESCR * vd,
    val_list_node * val_list,
    DBLINK_HOST_VARS * host_vars
) 

function scan_open_heap_page_scan

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
) 

function scan_open_heap_scan

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,
    bool is_partition_table
) 

function scan_open_index_key_info_scan

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
) 

function scan_open_index_node_info_scan

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
) 

function scan_open_index_scan

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,
    bool min_max_optimzied_scan
) 

function scan_open_json_table_scan

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
) 

function scan_open_list_scan

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,
    bool is_read_only
) 

function scan_open_method_scan

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,
    PL_SIGNATURE_ARRAY_TYPE * meth_sig_list
) 

function scan_open_set_scan

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
) 

function scan_open_showstmt_scan

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
) 

function scan_open_values_scan

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
) 

function scan_prev_scan

SCAN_CODE scan_prev_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function scan_print_stats_json

void scan_print_stats_json (
    SCAN_ID * scan_id,
    json_t * stats
) 

function scan_print_stats_text

void scan_print_stats_text (
    FILE * fp,
    SCAN_ID * scan_id
) 

function scan_reset_scan_block

SCAN_CODE scan_reset_scan_block (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function scan_save_scan_pos

void scan_save_scan_pos (
    SCAN_ID * s_id,
    SCAN_POS * scan_pos
) 

function scan_start_scan

int scan_start_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function showstmt_end_scan

int showstmt_end_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function showstmt_next_scan

SCAN_CODE showstmt_next_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

function showstmt_scan_init

void showstmt_scan_init (
    void
) 

function showstmt_start_scan

int showstmt_start_scan (
    THREAD_ENTRY * thread_p,
    SCAN_ID * s_id
) 

Macro Definition Documentation

define IDX_COV_DEFAULT_TUPLES

#define IDX_COV_DEFAULT_TUPLES `200`

define SCAN_IS_INDEX_COVERED

#define SCAN_IS_INDEX_COVERED (
    iscan_id_p
) `(( iscan_id_p )-> indx_cov.list_id != NULL )`

define SCAN_IS_INDEX_ILS

#define SCAN_IS_INDEX_ILS (
    iscan_id_p
) `/* multi line expression */`

define SCAN_IS_INDEX_ISS

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

define SCAN_IS_INDEX_MRO

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


The documentation for this class was generated from the following file cubrid/src/query/scan_manager.h