MySQL 9.1.0
Source Code Documentation
|
#include <stdint.h>
#include <type_traits>
#include "sql/item.h"
#include "sql/join_optimizer/bit_utils.h"
#include "sql/join_optimizer/estimate_selectivity.h"
#include "sql/join_optimizer/node_map.h"
#include "sql/join_optimizer/overflow_bitset.h"
#include "sql/join_type.h"
#include "sql/mem_root_array.h"
#include "sql/nested_join.h"
#include "sql/sql_class.h"
Go to the source code of this file.
Classes | |
struct | CachedPropertiesForPredicate |
struct | ConflictRule |
class | CompanionSet |
RelationalExpression objects in the same companion set are those that are inner-joined against each other; we use this to see in what parts of the graph we allow cycles. More... | |
struct | CompanionSet::EqualTerm |
This represents equality between a set of fields, i.e. More... | |
struct | RelationalExpression |
Represents an expression tree in the relational algebra of joins. More... | |
class | CompanionSetCollection |
The collection of CompanionSet objects for a given JoinHypergraph. More... | |
Functions | |
bool | PassesConflictRules (hypergraph::NodeMap joined_tables, const RelationalExpression *expr) |
bool | OperatorIsCommutative (const RelationalExpression &expr) |
template<class Func > requires std::is_invocable_v<Func, RelationalExpression *> | |
void | ForEachJoinOperator (RelationalExpression *expr, Func &&func) |
template<class Func > | |
void | ForEachOperator (RelationalExpression *expr, Func &&func) |
void ForEachJoinOperator | ( | RelationalExpression * | expr, |
Func && | func | ||
) |
void ForEachOperator | ( | RelationalExpression * | expr, |
Func && | func | ||
) |
|
inline |
|
inline |