![]() |
MySQL 9.5.0
Source Code Documentation
|
#include <sys/types.h>#include <algorithm>#include <array>#include <cassert>#include <string>#include <type_traits>#include <utility>#include "my_table_map.h"#include "sql/field.h"#include "sql/item.h"#include "sql/join_optimizer/bit_utils.h"#include "sql/join_optimizer/make_join_hypergraph.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"#include "sql/sql_const.h"#include "sql/table.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 Operator , class Func > requires std::is_same_v<RelationalExpression, std::remove_const_t<Operator>> && std::is_invocable_v<Func, Operator *> | |
| void | ForEachJoinOperator (Operator *expr, Func &&func) |
| template<class Func > | |
| void | ForEachOperator (RelationalExpression *expr, Func &&func) |
| void ForEachJoinOperator | ( | Operator * | expr, |
| Func && | func | ||
| ) |
| void ForEachOperator | ( | RelationalExpression * | expr, |
| Func && | func | ||
| ) |
|
inline |
|
inline |