File query_planner.h
FileList > cubrid > src > optimizer > query_planner.h
Go to the source code of this file
Namespaces
Classes
Public Types
Public Functions
Macros
Public Types Documentation
enum PRED_CLASS
enum PRED_CLASS {
PC_ATTR,
PC_CONST,
PC_HOST_VAR,
PC_SUBQUERY,
PC_SET,
PC_OTHER,
PC_MULTI_ATTR
};
typedef PRED_CLASS
typedef enum PRED_CLASS PRED_CLASS;
enum QO_JOINMETHOD
enum QO_JOINMETHOD {
QO_JOINMETHOD_NL_JOIN,
QO_JOINMETHOD_IDX_JOIN,
QO_JOINMETHOD_MERGE_JOIN,
QO_JOINMETHOD_HASH_JOIN
};
enum QO_PLANTYPE
enum QO_PLANTYPE {
QO_PLANTYPE_SCAN,
QO_PLANTYPE_SORT,
QO_PLANTYPE_JOIN,
QO_PLANTYPE_FOLLOW,
QO_PLANTYPE_WORST
};
typedef QO_PLANVEC
typedef struct qo_planvec QO_PLANVEC;
enum QO_PLAN_COMPARE_RESULT
enum QO_PLAN_COMPARE_RESULT {
PLAN_COMP_UNK = -2,
PLAN_COMP_LT = -1,
PLAN_COMP_EQ = 0,
PLAN_COMP_GT = 1
};
enum QO_PLAN_MULTI_RANGE_OPT_USE
enum QO_PLAN_MULTI_RANGE_OPT_USE {
PLAN_MULTI_RANGE_OPT_USE = 1,
PLAN_MULTI_RANGE_OPT_NO = 0,
PLAN_MULTI_RANGE_OPT_CANNOT_USE = -1,
PLAN_MULTI_RANGE_OPT_CAN_USE = -2
};
enum QO_PLAN_PARALLEL_OPT_USE
enum QO_PLAN_PARALLEL_OPT_USE {
PLAN_PARALLEL_OPT_USE = 1,
PLAN_PARALLEL_OPT_NO = 0,
PLAN_PARALLEL_OPT_CANNOT_USE = -1,
PLAN_PARALLEL_OPT_CAN_USE = -2
};
enum QO_PLAN_SKIP_ORDERBY_OPT
enum QO_PLAN_SKIP_ORDERBY_OPT {
QO_PLAN_SKIP_ORDERBY_USE = 1,
QO_PLAN_SKIP_ORDERBY_NO = 0,
QO_PLAN_SKIP_ORDERBY_CANNOT_USE = -1,
QO_PLAN_SKIP_ORDERBY_CAN_USE = -2
};
typedef QO_PLAN_VTBL
typedef struct qo_plan_vtbl QO_PLAN_VTBL;
enum QO_SCANMETHOD
enum QO_SCANMETHOD {
QO_SCANMETHOD_SEQ_SCAN,
QO_SCANMETHOD_INDEX_SCAN,
QO_SCANMETHOD_INDEX_ORDERBY_SCAN,
QO_SCANMETHOD_INDEX_GROUPBY_SCAN,
QO_SCANMETHOD_INDEX_SCAN_INSPECT
};
Public Functions Documentation
function qo_check_hjoin_for_parallel_opt
QO_PLAN_PARALLEL_OPT_USE qo_check_hjoin_for_parallel_opt (
QO_PLAN * plan
)
function qo_classify
PRED_CLASS qo_classify (
PT_NODE * node
)
function qo_has_like_recompile_candidate
int qo_has_like_recompile_candidate (
QO_PLAN * plan,
void * arg
)
function qo_has_sort_limit_subplan
bool qo_has_sort_limit_subplan (
QO_PLAN * plan
)
function qo_info_stats
void qo_info_stats (
FILE * f
)
function qo_is_all_unique_index_columns_are_equi_terms
bool qo_is_all_unique_index_columns_are_equi_terms (
QO_PLAN * plan
)
function qo_is_interesting_order_scan
bool qo_is_interesting_order_scan (
QO_PLAN * plan
)
function qo_is_iscan
bool qo_is_iscan (
QO_PLAN * plan
)
function qo_is_iscan_from_groupby
bool qo_is_iscan_from_groupby (
QO_PLAN * plan
)
function qo_is_iscan_from_orderby
bool qo_is_iscan_from_orderby (
QO_PLAN * plan
)
function qo_is_seq_scan
bool qo_is_seq_scan (
QO_PLAN * plan
)
function qo_plan_compute_iscan_sort_list
PT_NODE * qo_plan_compute_iscan_sort_list (
QO_PLAN * root,
PT_NODE * group_by,
bool * is_index_w_prefix,
bool for_min_max_optimize
)
function qo_planner_free
void qo_planner_free (
QO_PLANNER * planner
)
function qo_planner_search
QO_PLAN * qo_planner_search (
QO_ENV * env
)
function qo_plans_stats
void qo_plans_stats (
FILE * f
)
Macro Definition Documentation
define DEFAULT_BETWEEN_SELECTIVITY
#define DEFAULT_BETWEEN_SELECTIVITY `( double ) 0.01`
define DEFAULT_COMP_SELECTIVITY
#define DEFAULT_COMP_SELECTIVITY `( double ) 0.1`
define DEFAULT_EQUAL_SELECTIVITY
#define DEFAULT_EQUAL_SELECTIVITY `( double ) 0.001`
define DEFAULT_EQUIJOIN_SELECTIVITY
#define DEFAULT_EQUIJOIN_SELECTIVITY `( double ) 0.001`
define DEFAULT_EXISTS_SELECTIVITY
#define DEFAULT_EXISTS_SELECTIVITY `( double ) 0.1`
define DEFAULT_IN_SELECTIVITY
#define DEFAULT_IN_SELECTIVITY `( double ) 0.01`
define DEFAULT_NULL_SELECTIVITY
#define DEFAULT_NULL_SELECTIVITY `( double ) 0.01`
define DEFAULT_RANGE_SELECTIVITY
#define DEFAULT_RANGE_SELECTIVITY `( double ) 0.1`
define DEFAULT_SELECTIVITY
#define DEFAULT_SELECTIVITY `( double ) 0.1`
define NPLANS
#define NPLANS `4 /* Maximum number of plans to keep in a PlanVec */`
define QO_PLAN_HAS_CONSTANT_LIMIT
#define QO_PLAN_HAS_CONSTANT_LIMIT (
plan
) `/* multi line expression */`
define QO_PLAN_HAS_LIMIT
#define QO_PLAN_HAS_LIMIT (
plan
) `/* multi line expression */`
define qo_plan_add_ref
#define qo_plan_add_ref (
p
) `(( p ->refcount)++, ( p ))`
define qo_plan_del_ref
#define qo_plan_del_ref (
p
) `/* multi line expression */`
define qo_plan_release
#define qo_plan_release (
p
) `/* multi line expression */`
The documentation for this class was generated from the following file cubrid/src/optimizer/query_planner.h