File optimizer.h¶
FileList > cubrid > src > optimizer > optimizer.h
Go to the source code of this file
#include <stdarg.h>#include <assert.h>#include "error_manager.h"#include "memory_alloc.h"#include "parser.h"#include "query_bitset.h"#include "release_string.h"
Classes¶
| Type | Name |
|---|---|
| struct | QO_ATTR_CUM_STATS |
| struct | projection_final_info |
| struct | projection_info |
| struct | projection_part_info |
| struct | qo_limit_info |
| struct | qo_summary |
Public Types¶
Public Functions¶
Macros¶
| Type | Name |
|---|---|
| define | CHECK_INVALID_OPTIMIZATION_LEVEL (level) (!([**CHECK\_VALID\_EXECUTION**](optimizer_8h.md#define-check_valid_execution)(level) && [**CHECK\_VALID\_PLAN**](optimizer_8h.md#define-check_valid_plan)(level))) |
| define | CHECK_VALID_EXECUTION (level) ((level & 0x00ff) > 0 && (level & 0x00ff) < 3) |
| define | CHECK_VALID_PLAN (level) (((level>>8) & 0x00ff) >= 0 && ((level>>8) & 0x00ff) < 3) |
| define | DETAILED_DUMP (level) ((level) & 0x200) |
| define | OPTIMIZATION_ENABLED (level) ([**OPT\_LEVEL**](optimizer_8h.md#define-opt_level)(level) != 0) |
| define | OPT_LEVEL (level) ((level) & 0xff) |
| define | PLAN_DUMP_ENABLED (level) ((level) >= 0x100) |
| define | PROJECTION_FINAL_INFO_INITIALIZER { [**NULL**](freelistheap_8h.md#define-null), 0 } |
| define | PROJECTION_INFO_INITIALIZER { [**PROJECTION\_PART\_INFO\_INITIALIZER**](optimizer_8h.md#define-projection_part_info_initializer), [**PROJECTION\_PART\_INFO\_INITIALIZER**](optimizer_8h.md#define-projection_part_info_initializer), [**PROJECTION\_FINAL\_INFO\_INITIALIZER**](optimizer_8h.md#define-projection_final_info_initializer) } |
| define | PROJECTION_PART_INFO_INITIALIZER { [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), [**EMPTY\_SET**](query__bitset_8c.md#variable-empty_set), 0, 0, 0, 0, [**NULL**](freelistheap_8h.md#define-null)} |
| define | QO_ABORT (env) [**qo\_abort**](optimizer_8h.md#function-qo_abort)((env), [**\_\_FILE\_\_**](broker__monitor_8c.md#function-timeout), [**\_\_LINE\_\_**](broker__monitor_8c.md#function-timeout)) |
| define | QO_ASSERT (env, cond) /* multi line expression */ |
| define | QO_ERROR (code) |
| define | QO_ERROR1 (code, x) |
| define | QO_ERROR2 (code, x, y) |
| define | QO_WARN (code) |
| define | QO_WARN1 (code, x) |
| define | SIMPLE_DUMP (level) ((level) & 0x100) |
| define | UNEXPECTED_CASE 0 |
| define | UNREACHABLE 0 |
Public Types Documentation¶
typedef PROJECTION_FINAL_INFO¶
typedef PROJECTION_INFO¶
typedef PROJECTION_PART_INFO¶
typedef QO_ATTR_INFO¶
typedef QO_CLASS_INFO¶
typedef QO_ENV¶
typedef QO_EQCLASS¶
typedef QO_INDEX¶
typedef QO_INDEX_ENTRY¶
typedef QO_INDEX_XASL_INFO¶
typedef QO_INFO¶
typedef QO_LIMIT_INFO¶
typedef QO_NODE¶
typedef QO_NODE_INDEX¶
typedef QO_NODE_INDEX_ENTRY¶
enum QO_PARAM¶
typedef QO_PARTITION¶
typedef QO_PLAN¶
typedef QO_PLANNER¶
typedef QO_SEGMENT¶
typedef QO_SUBQUERY¶
typedef QO_SUMMARY¶
typedef QO_TERM¶
typedef QO_USING_INDEX¶
typedef QO_USING_INDEX_ENTRY¶
typedef QO_XASL_INDEX_INFO¶
Public Functions Documentation¶
function lookup_node¶
function lookup_seg¶
function mq_rewrite¶
function qo_abort¶
function qo_add_hq_iterations_access_spec¶
function qo_check_iscan_for_multi_range_opt¶
function qo_check_join_for_multi_range_opt¶
function qo_check_nullable_expr¶
PT_NODE * qo_check_nullable_expr (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function qo_expr_segs¶
function qo_expr_selectivity¶
function qo_find_subplan_using_multi_range_opt¶
function qo_get_key_limit_from_instnum¶
QO_LIMIT_INFO * qo_get_key_limit_from_instnum (
PARSER_CONTEXT * parser,
QO_PLAN * plan,
xasl_node * xasl
)
function qo_get_key_limit_from_ordbynum¶
QO_LIMIT_INFO * qo_get_key_limit_from_ordbynum (
PARSER_CONTEXT * parser,
QO_PLAN * plan,
xasl_node * xasl,
bool ignore_lower
)
function qo_get_optimization_param¶
function qo_is_index_covering_scan¶
function qo_is_index_iss_scan¶
function qo_is_index_loose_scan¶
function qo_is_index_mro_scan¶
function qo_need_skip_execution¶
function qo_optimize_query¶
function qo_plan_discard¶
function qo_plan_dump¶
function qo_plan_get_cost_fn¶
function qo_plan_iscan_sort_list¶
function qo_plan_multi_range_opt¶
function qo_plan_set_cost_fn¶
function qo_plan_skip_groupby¶
function qo_plan_skip_orderby¶
function qo_set_optimization_param¶
function qo_to_xasl¶
function qo_top_plan_print_json¶
void qo_top_plan_print_json (
PARSER_CONTEXT * parser,
xasl_node * xasl,
PT_NODE * select,
QO_PLAN * plan
)
function qo_top_plan_print_text¶
void qo_top_plan_print_text (
PARSER_CONTEXT * parser,
xasl_node * xasl,
PT_NODE * select,
QO_PLAN * plan
)
function qo_xasl_get_num_terms¶
function qo_xasl_get_terms¶
Macro Definition Documentation¶
define CHECK_INVALID_OPTIMIZATION_LEVEL¶
#define CHECK_INVALID_OPTIMIZATION_LEVEL (
level
) `(!( CHECK_VALID_EXECUTION (level) && CHECK_VALID_PLAN (level)))`
define CHECK_VALID_EXECUTION¶
define CHECK_VALID_PLAN¶
define DETAILED_DUMP¶
define OPTIMIZATION_ENABLED¶
define OPT_LEVEL¶
define PLAN_DUMP_ENABLED¶
define PROJECTION_FINAL_INFO_INITIALIZER¶
define PROJECTION_INFO_INITIALIZER¶
#define PROJECTION_INFO_INITIALIZER `{ PROJECTION_PART_INFO_INITIALIZER , PROJECTION_PART_INFO_INITIALIZER , PROJECTION_FINAL_INFO_INITIALIZER }`
define PROJECTION_PART_INFO_INITIALIZER¶
#define PROJECTION_PART_INFO_INITIALIZER `{ NULL , NULL , NULL , NULL , EMPTY_SET , 0, 0, 0, 0, NULL }`
define QO_ABORT¶
define QO_ASSERT¶
define QO_ERROR¶
define QO_ERROR1¶
define QO_ERROR2¶
define QO_WARN¶
define QO_WARN1¶
define SIMPLE_DUMP¶
define UNEXPECTED_CASE¶
define UNREACHABLE¶
The documentation for this class was generated from the following file cubrid/src/optimizer/optimizer.h