![]() |
MySQL 9.0.0
Source Code Documentation
|
#include <graph_simplification.h>
Classes | |
struct | CompareByBenefit |
struct | EdgeCardinalities |
struct | MarkNeighborCache |
struct | NeighborCache |
struct | ProposedSimplificationStep |
struct | SimplificationStep |
Public Types | |
enum | SimplificationResult { NO_SIMPLIFICATION_POSSIBLE = 0 , APPLIED_SIMPLIFICATION , APPLIED_NOOP , APPLIED_REDO_STEP } |
Public Member Functions | |
GraphSimplifier (THD *thd, JoinHypergraph *graph) | |
SimplificationResult | DoSimplificationStep () |
void | UndoSimplificationStep () |
int | num_steps_done () const |
int | num_steps_undone () const |
Private Member Functions | |
void | UpdatePQ (size_t edge_idx) |
void | RecalculateNeighbors (size_t edge1_idx, size_t begin, size_t end) |
ALWAYS_INLINE bool | EdgesAreNeighboring (size_t edge1_idx, size_t edge2_idx, ProposedSimplificationStep *step) |
SimplificationStep | ConcretizeSimplificationStep (GraphSimplifier::ProposedSimplificationStep step) |
Private Attributes | |
THD * | m_thd |
Mem_root_array< SimplificationStep > | m_done_steps |
Mem_root_array< SimplificationStep > | m_undone_steps |
Bounds_checked_array< EdgeCardinalities > | m_edge_cardinalities |
JoinHypergraph * | m_graph |
OnlineCycleFinder | m_cycles |
Bounds_checked_array< NeighborCache > | m_cache |
Priority_queue< NeighborCache *, std::vector< NeighborCache *, Mem_root_allocator< NeighborCache * > >, CompareByBenefit, MarkNeighborCache > | m_pq |
GraphSimplifier::GraphSimplifier | ( | THD * | thd, |
JoinHypergraph * | graph | ||
) |
|
private |
GraphSimplifier::SimplificationResult GraphSimplifier::DoSimplificationStep | ( | ) |
|
private |
|
inline |
|
inline |
|
private |
void GraphSimplifier::UndoSimplificationStep | ( | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |