MySQL 8.0.40
Source Code Documentation
|
A class that represents a join condition in a hash join. More...
#include <item_cmpfunc.h>
Public Member Functions | |
HashJoinCondition (Item_eq_base *join_condition, MEM_ROOT *mem_root) | |
Item_eq_base * | join_condition () const |
Item * | left_extractor () const |
Item * | right_extractor () const |
bool | left_uses_any_table (table_map tables) const |
bool | right_uses_any_table (table_map tables) const |
size_t | max_character_length () const |
bool | store_full_sort_key () const |
bool | null_equals_null () const |
Returns true if this join condition evaluates to TRUE if both operands are NULL. More... | |
Private Attributes | |
Item_eq_base * | m_join_condition |
Item * | m_left_extractor |
Item * | m_right_extractor |
const table_map | m_left_used_tables |
const table_map | m_right_used_tables |
const size_t | m_max_character_length {0} |
bool | m_store_full_sort_key |
bool | m_null_equals_null |
A class that represents a join condition in a hash join.
The class holds an equality condition, as well as a pre-calculated bitmap of the used tables (Item::used_tables()) for each side of the condition.
The class also contains one Item for each side of the condition. In most cases, the Item is only a pointer to the left/right Item of the join condition. But for certain data types (DECIMAL, DOUBLE(M, N), FLOAT(M, N)), the Item might be a typecast. Either way, the caller should use these Items when i.e. reading the values from the join condition, so that the values are read in the right data type context. See the comments for Item_eq_base::create_cast_if_needed for more details around this.
HashJoinCondition::HashJoinCondition | ( | Item_eq_base * | join_condition, |
MEM_ROOT * | mem_root | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Returns true if this join condition evaluates to TRUE if both operands are NULL.
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |