MySQL 9.0.0
Source Code Documentation

Definition of an undirected (join) hypergraph. More...
#include <stddef.h>
#include <algorithm>
#include <bit>
#include <vector>
#include "sql/join_optimizer/node_map.h"
#include "sql/mem_root_array.h"
Go to the source code of this file.
Classes  
struct  hypergraph::Node 
struct  hypergraph::Hyperedge 
struct  hypergraph::Hypergraph 
Namespaces  
namespace  hypergraph 
Functions  
bool  hypergraph::IsSimpleEdge (NodeMap left, NodeMap right) 
Is an edge between "left" and "right" a simple edge? More...  
Definition of an undirected (join) hypergraph.
A hypergraph in this context is an undirected graph consisting of nodes and hyperedges, where hyperedges are edges that can have more than one node in each side of the edge. For instance, in a graph with nodes {A, B, C, D}, a regular undirected edge could be e.g. (A,B), while in a hypergraph, an edge such as ({A,C},B) would also be allowed. Note that this definition of hypergraphs differs from that on Wikipedia.
The main user of Hypergraph is subgraph_enumeration.h.