MySQL 8.4.2
Source Code Documentation
ROR_intersect_plan Class Reference

#include <rowid_ordered_retrieval_plan.h>

Public Member Functions

 ROR_intersect_plan (const RANGE_OPT_PARAM *param, size_t num_fields)
 
 ROR_intersect_plan (const ROR_intersect_plan &)=delete
 
ROR_intersect_planoperator= (const ROR_intersect_plan &plan)
 
bool add (OverflowBitset needed_fields, ROR_SCAN_INFO *ror_scan, bool is_cpk_scan, Opt_trace_object *trace_costs, bool ignore_cost)
 
double get_scan_selectivity (const ROR_SCAN_INFO *scan) const
 
size_t num_scans () const
 

Public Attributes

const RANGE_OPT_PARAMm_param
 Range optimizer parameter. More...
 
Mem_root_array< ROR_SCAN_INFO * > m_ror_scans
 Rowid ordered scans that are part of this plan. More...
 
bool m_is_covering {false}
 Whether this plan with the chosen rowid ordered scans is covering or not. More...
 
double m_out_rows
 Output rows for this plan. More...
 
Cost_estimate m_total_cost
 Total cost for the plan - m_index_read_cost + disk_sweep_cost. More...
 

Private Attributes

OverflowBitset m_covered_fields
 Bitmap of fields covered by the scans in the plan. More...
 
ha_rows m_index_records {0}
 Number of rows to be read from indexes that are used for rowid ordered scans. More...
 
Cost_estimate m_index_read_cost
 Total cost for reading the indexes picked in the plan. More...
 

Constructor & Destructor Documentation

◆ ROR_intersect_plan() [1/2]

ROR_intersect_plan::ROR_intersect_plan ( const RANGE_OPT_PARAM param,
size_t  num_fields 
)

◆ ROR_intersect_plan() [2/2]

ROR_intersect_plan::ROR_intersect_plan ( const ROR_intersect_plan )
delete

Member Function Documentation

◆ add()

bool ROR_intersect_plan::add ( OverflowBitset  needed_fields,
ROR_SCAN_INFO ror_scan,
bool  is_cpk_scan,
Opt_trace_object trace_costs,
bool  ignore_cost 
)

◆ get_scan_selectivity()

double ROR_intersect_plan::get_scan_selectivity ( const ROR_SCAN_INFO scan) const

key values tuple, used to store both min_range.key and max_range.key. This function is only called for equality ranges; open ranges (e.g. "min_value < X < max_value") cannot be used for rowid ordered retrieval, so in this function we know that min_range.key == max_range.key

◆ num_scans()

size_t ROR_intersect_plan::num_scans ( ) const
inline

◆ operator=()

ROR_intersect_plan & ROR_intersect_plan::operator= ( const ROR_intersect_plan plan)

Member Data Documentation

◆ m_covered_fields

OverflowBitset ROR_intersect_plan::m_covered_fields
private

Bitmap of fields covered by the scans in the plan.

◆ m_index_read_cost

Cost_estimate ROR_intersect_plan::m_index_read_cost
private

Total cost for reading the indexes picked in the plan.

◆ m_index_records

ha_rows ROR_intersect_plan::m_index_records {0}
private

Number of rows to be read from indexes that are used for rowid ordered scans.

◆ m_is_covering

bool ROR_intersect_plan::m_is_covering {false}

Whether this plan with the chosen rowid ordered scans is covering or not.

◆ m_out_rows

double ROR_intersect_plan::m_out_rows

Output rows for this plan.

◆ m_param

const RANGE_OPT_PARAM* ROR_intersect_plan::m_param

Range optimizer parameter.

◆ m_ror_scans

Mem_root_array<ROR_SCAN_INFO *> ROR_intersect_plan::m_ror_scans

Rowid ordered scans that are part of this plan.

◆ m_total_cost

Cost_estimate ROR_intersect_plan::m_total_cost

Total cost for the plan - m_index_read_cost + disk_sweep_cost.


The documentation for this class was generated from the following files: