![]() |
MySQL 9.2.0
Source Code Documentation
|
Various small helpers to abstract over the fact that AccessPath can contain a number of different range scan types. More...
#include "sql/join_optimizer/access_path.h"
#include "sql/range_optimizer/group_index_skip_scan_plan.h"
#include "sql/range_optimizer/index_merge_plan.h"
#include "sql/range_optimizer/index_range_scan_plan.h"
#include "sql/range_optimizer/index_skip_scan_plan.h"
#include "sql/range_optimizer/range_optimizer.h"
#include "sql/range_optimizer/rowid_ordered_retrieval_plan.h"
#include "sql/sql_opt_exec_shared.h"
Go to the source code of this file.
Functions | |
bool | is_loose_index_scan (const AccessPath *path) |
bool | is_agg_loose_index_scan (const AccessPath *path) |
bool | reverse_sort_possible (const AccessPath *path) |
Whether the range access method is capable of returning records in reverse order. More... | |
bool | is_reverse_sorted_range (const AccessPath *path) |
Whether the access path is an INDEX_RANGE_SCAN that returns rows in reverse order. More... | |
bool | make_reverse (uint used_key_parts, AccessPath *path) |
Ask the AccessPath to reverse itself; returns false if successful. More... | |
void | set_need_sorted_output (AccessPath *path) |
unsigned | used_index (const AccessPath *path) |
If this is an index range scan, and that range scan uses a single index, returns the index used. More... | |
bool | unique_key_range (const AccessPath *path) |
Return true if there is only one range and this uses the whole unique key. More... | |
void | get_fields_used (const AccessPath *path, MY_BITMAP *used_fields) |
unsigned | get_used_key_parts (const AccessPath *path) |
bool | uses_index_on_fields (const AccessPath *path, const MY_BITMAP *fields) |
Return whether any index used by this range scan uses the field(s) marked in passed bitmap. More... | |
unsigned | get_max_used_key_length (const AccessPath *path) |
Get the total length of first used_key_parts parts of the key, in bytes. More... | |
void | add_info_string (const AccessPath *path, String *str) |
void | add_keys_and_lengths (const AccessPath *path, String *key_names, String *used_lengths) |
void | trace_basic_info (THD *thd, const AccessPath *path, const RANGE_OPT_PARAM *param, Opt_trace_object *trace_object) |
Add basic info for this range scan to the optimizer trace. More... | |
bool | get_forced_by_hint (const AccessPath *path) |
void | dbug_dump (const AccessPath *path, int indent, bool verbose) |
Various small helpers to abstract over the fact that AccessPath can contain a number of different range scan types.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Get the total length of first used_key_parts parts of the key, in bytes.
Only applicable for range access types that use a single index (others will assert-fail).
|
inline |
|
inline |
|
inline |
|
inline |
Whether the access path is an INDEX_RANGE_SCAN that returns rows in reverse order.
(Note that non-range index scans return false here.)
|
inline |
Ask the AccessPath to reverse itself; returns false if successful.
Overridden only in INDEX_RANGE_SCAN.
|
inline |
Whether the range access method is capable of returning records in reverse order.
|
inline |
|
inline |
Add basic info for this range scan to the optimizer trace.
path must be a range scan, or there will be an assert.
thd | Thread handle |
param | Parameters for range analysis of this table |
trace_object | The optimizer trace object the info is appended to |
|
inline |
Return true if there is only one range and this uses the whole unique key.
|
inline |
If this is an index range scan, and that range scan uses a single index, returns the index used.
Otherwise, MAX_KEY.
|
inline |
Return whether any index used by this range scan uses the field(s) marked in passed bitmap.
Assert-fails if not a range scan.