MySQL 8.0.39
Source Code Documentation
|
Holds members common to JOIN_TAB and QEP_TAB. More...
#include <sql_opt_exec_shared.h>
Private Attributes | |
JOIN * | m_join |
plan_idx | m_idx |
Index of structure in array: More... | |
TABLE * | m_table |
Corresponding table. Might be an internal temporary one. More... | |
POSITION * | m_position |
Points into best_positions array. Includes cost info. More... | |
Semijoin_mat_exec * | m_sj_mat_exec |
Struct needed for materialization of semi-join. More... | |
plan_idx | m_first_sj_inner |
Boundaries of semijoin inner tables around this table. More... | |
plan_idx | m_last_sj_inner |
plan_idx | m_first_inner |
first inner table for including outer join More... | |
plan_idx | m_last_inner |
last table table for embedding outer join More... | |
plan_idx | m_first_upper |
first inner table for embedding outer join More... | |
Index_lookup | m_ref |
Used to do index-based look up based on a key value. More... | |
uint | m_index |
ID of index used for index scan or semijoin LooseScan. More... | |
enum join_type | m_type |
Type of chosen access method (scan, etc). More... | |
Item * | m_condition |
Table condition, ie condition to be evaluated for a row from this table. More... | |
bool | m_condition_is_pushed_to_sort = false |
Whether the condition in m_condition is evaluated in front of a sort, so that it does not need to be evaluated again (unless it is outer to an inner join; see the relevant comments in SortingIterator::Init(). More... | |
Key_map | m_keys |
All keys with can be used. More... | |
ha_rows | m_records |
Either number of rows in the table or 1 for const table. More... | |
AccessPath * | m_range_scan = nullptr |
Non-NULL if quick-select used. More... | |
table_map | prefix_tables_map |
The set of all tables available in the join prefix for this table, including the table handled by this JOIN_TAB. More... | |
table_map | added_tables_map |
The set of tables added for this table, compared to the previous table in the join prefix. More... | |
Item_func_match * | m_ft_func |
FT function. More... | |
bool | m_skip_records_in_range |
Set if index dive can be skipped for this query. More... | |
Holds members common to JOIN_TAB and QEP_TAB.
|
inline |
|
inline |
Add an available set of tables for a table in a join plan.
tables | Set of tables added for this table in plan. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Set available tables for a table in a join plan.
prefix_tables_arg | Set of tables available for this plan |
prev_tables_arg | Set of tables available for previous table, used to calculate set of tables added for this table. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
The set of tables added for this table, compared to the previous table in the join prefix.
|
private |
Table condition, ie condition to be evaluated for a row from this table.
Notice that the condition may refer to rows from previous tables in the join prefix, as well as outer tables.
|
private |
Whether the condition in m_condition is evaluated in front of a sort, so that it does not need to be evaluated again (unless it is outer to an inner join; see the relevant comments in SortingIterator::Init().
Note that m_condition remains non-nullptr in this case, for purposes of the (non-tree) EXPLAIN and for filesort to build up its read maps.
|
private |
first inner table for including outer join
|
private |
Boundaries of semijoin inner tables around this table.
Valid only once final QEP has been chosen. Depending on the strategy, they may define an interval (all tables inside are inner of a semijoin) or not. last_sj_inner is not set for Duplicates Weedout.
|
private |
first inner table for embedding outer join
|
private |
FT function.
|
private |
Index of structure in array:
|
private |
ID of index used for index scan or semijoin LooseScan.
|
private |
|
private |
All keys with can be used.
Used by add_key_field() (optimization time) and execution of dynamic range (DynamicRangeIterator), and EXPLAIN.
|
private |
last table table for embedding outer join
|
private |
|
private |
Points into best_positions array. Includes cost info.
|
private |
Non-NULL if quick-select used.
Filled in optimization, converted to a RowIterator before execution (used to find rows), and in EXPLAIN.
|
private |
Either number of rows in the table or 1 for const table.
Used in optimization, and also in execution for FOUND_ROWS().
|
private |
Used to do index-based look up based on a key value.
Used when we read constant tables, in misc optimization (like remove_const()), and in execution.
|
private |
Struct needed for materialization of semi-join.
Set for a materialized temporary table, and NULL for all other join_tabs (except when materialization is in progress,
|
private |
Set if index dive can be skipped for this query.
See comments for check_skip_records_in_range_qualification.
|
private |
Corresponding table. Might be an internal temporary one.
|
private |
Type of chosen access method (scan, etc).
|
private |
The set of all tables available in the join prefix for this table, including the table handled by this JOIN_TAB.