public abstract class AbstractQueryMetaContext extends java.lang.Object implements IQueryMetaContext
IQueryMetaContext
Constructor and Description |
---|
AbstractQueryMetaContext() |
Modifier and Type | Method and Description |
---|---|
boolean |
canLeadOutOfScope(IInputKey key)
Tells whether the given
IInputKey is an edge and may lead out of scope. |
com.google.common.collect.SetMultimap<InputKeyImplication,InputKeyImplication> |
getConditionalImplications(IInputKey implyingKey)
Returns known "double dispatch" implications, where the given implying key implies other input keys under certain additional conditions (themselves input keys).
|
IPosetComparator |
getPosetComparator(java.lang.Iterable<IInputKey> key)
Returns an
IPosetComparator for the given set of IInputKey s. |
java.util.Comparator<IInputKey> |
getSuggestedEliminationOrdering()
For query normalizing, this is the order suggested for trying to eliminate input keys.
|
java.util.Collection<InputKeyImplication> |
getWeakenedAlternatives(IInputKey implyingKey)
Returns a set of implications (weakened alternatives),
with a suggestion for the query planner that satisfying them first may help in satisfying the implying key.
|
boolean |
isPosetKey(IInputKey key)
Returns true if the given
IInputKey represents a poset type. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getFunctionalDependencies, getImplications, isEnumerable, isStateless
public com.google.common.collect.SetMultimap<InputKeyImplication,InputKeyImplication> getConditionalImplications(IInputKey implyingKey)
IQueryMetaContext
Note that for the obvious reasons, enumerable keys can only be implied by enumerable keys (either as the implying key or as the additional condition).
Note that symmetry is not required, i.e. the additional conditions do not have to list the same conditional implication.
getConditionalImplications
in interface IQueryMetaContext
public boolean canLeadOutOfScope(IInputKey key)
IQueryMetaContext
IInputKey
is an edge and may lead out of scope.canLeadOutOfScope
in interface IQueryMetaContext
public java.util.Comparator<IInputKey> getSuggestedEliminationOrdering()
IQueryMetaContext
getSuggestedEliminationOrdering
in interface IQueryMetaContext
public java.util.Collection<InputKeyImplication> getWeakenedAlternatives(IInputKey implyingKey)
IQueryMetaContext
Note that for the obvious reasons, enumerable keys can only be implied by enumerable keys.
Must follow directly or transitively from implications of IQueryMetaContext.getImplications(IInputKey)
.
getWeakenedAlternatives
in interface IQueryMetaContext
public boolean isPosetKey(IInputKey key)
IQueryMetaContext
IInputKey
represents a poset type.isPosetKey
in interface IQueryMetaContext
public IPosetComparator getPosetComparator(java.lang.Iterable<IInputKey> key)
IQueryMetaContext
IPosetComparator
for the given set of IInputKey
s.getPosetComparator
in interface IQueryMetaContext
key
- an iterable collection of input keys