public final class JoinAnalysisFacts extends Object
StatementGraph for the
join-analysis facts (GAPs 1/2/4): the structured JoinGraph,
the WHERE/filter Predicate list, and the
QueryBlockScope. Using one carrier slot (rather than one slot
per GAP) keeps StatementGraph's constructor count from growing
further.
EMPTY is the default for every existing
StatementGraph constructor — an empty join graph, no filter
predicates, and a null scope — so adding this carrier is fully
additive and the legacy flat accessors are unaffected.
Immutable. Introduced by join-analysis slice 162 (S1); wired into
StatementGraph in slice 167 (S6).
| Modifier and Type | Field and Description |
|---|---|
static JoinAnalysisFacts |
EMPTY
Shared empty carrier; the default for legacy constructors.
|
| Constructor and Description |
|---|
JoinAnalysisFacts(JoinGraph joinGraph,
List<Predicate> filterPredicates,
QueryBlockScope queryBlockScope) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object o) |
List<Predicate> |
getFilterPredicates()
Never null; empty when the WHERE clause is absent / not modelled.
|
JoinGraph |
getJoinGraph()
Never null;
JoinGraph.EMPTY when absent. |
QueryBlockScope |
getQueryBlockScope()
Optional; null until scope is populated (slice 170).
|
int |
hashCode() |
boolean |
isEmpty() |
String |
toString() |
JoinAnalysisFacts |
withFilterPredicates(List<Predicate> newFilters)
Copy with a replaced filter-predicate list.
|
JoinAnalysisFacts |
withJoinGraph(JoinGraph newGraph)
Copy with a replaced join graph.
|
JoinAnalysisFacts |
withQueryBlockScope(QueryBlockScope newScope)
Copy with a replaced query-block scope.
|
public static final JoinAnalysisFacts EMPTY
public JoinAnalysisFacts(JoinGraph joinGraph, List<Predicate> filterPredicates, QueryBlockScope queryBlockScope)
public JoinGraph getJoinGraph()
JoinGraph.EMPTY when absent.public List<Predicate> getFilterPredicates()
public QueryBlockScope getQueryBlockScope()
public boolean isEmpty()
public JoinAnalysisFacts withJoinGraph(JoinGraph newGraph)
public JoinAnalysisFacts withFilterPredicates(List<Predicate> newFilters)
public JoinAnalysisFacts withQueryBlockScope(QueryBlockScope newScope)