MySQL 8.0.40
Source Code Documentation
Semijoin_decorrelation Class Reference

Context object used by semijoin equality decorrelation code. More...

Public Member Functions

 Semijoin_decorrelation (mem_root_deque< Item * > *sj_outer_exprs_arg, mem_root_deque< Item * > *sj_inner_exprs_arg, Mem_root_array< Item_func::Functype > *op_types_arg)
 
void add_outer (Item *i)
 
void add_inner (Item *i)
 
bool decorrelate_only_eq () const
 
bool add_op_type (Item_func::Functype op_type)
 
Item_func::Functype op_type_at (int j) const
 

Private Attributes

mem_root_deque< Item * > * sj_outer_exprs
 
mem_root_deque< Item * > * sj_inner_exprs
 
Mem_root_array< Item_func::Functype > * op_types
 If nullptr: only a=b is decorrelated. More...
 

Detailed Description

Context object used by semijoin equality decorrelation code.

Constructor & Destructor Documentation

◆ Semijoin_decorrelation()

Semijoin_decorrelation::Semijoin_decorrelation ( mem_root_deque< Item * > *  sj_outer_exprs_arg,
mem_root_deque< Item * > *  sj_inner_exprs_arg,
Mem_root_array< Item_func::Functype > *  op_types_arg 
)
inline

Member Function Documentation

◆ add_inner()

void Semijoin_decorrelation::add_inner ( Item i)
inline

◆ add_op_type()

bool Semijoin_decorrelation::add_op_type ( Item_func::Functype  op_type)
inline

◆ add_outer()

void Semijoin_decorrelation::add_outer ( Item i)
inline

◆ decorrelate_only_eq()

bool Semijoin_decorrelation::decorrelate_only_eq ( ) const
inline

◆ op_type_at()

Item_func::Functype Semijoin_decorrelation::op_type_at ( int  j) const
inline

Member Data Documentation

◆ op_types

Mem_root_array<Item_func::Functype>* Semijoin_decorrelation::op_types
private

If nullptr: only a=b is decorrelated.

Otherwise, a OP b is decorrelated for OP in <>, >=, >, <=, <, and for each decorrelated SJ outer/inner pair, located at position N in sj_outer_exprs and sj_inner_exprs, we store, at the same position in op_types, the operator's type code representing "outer OP inner" (for example, LE_FUNC for outer<=inner as well as inner>=outer).

◆ sj_inner_exprs

mem_root_deque<Item *> * Semijoin_decorrelation::sj_inner_exprs
private

◆ sj_outer_exprs

mem_root_deque<Item *>* Semijoin_decorrelation::sj_outer_exprs
private

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