public interface IQueryMetaContext
AbstractQueryMetaContext
instead of directly implementing this interface.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).
|
java.util.Map<java.util.Set<java.lang.Integer>,java.util.Set<java.lang.Integer>> |
getFunctionalDependencies(IInputKey key)
Returns functional dependencies of the input key expressed in terms of column indices.
|
java.util.Collection<InputKeyImplication> |
getImplications(IInputKey implyingKey)
Returns known direct implications, e.g.
|
IPosetComparator |
getPosetComparator(java.lang.Iterable<IInputKey> keys)
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 |
isEnumerable(IInputKey key)
Returns true iff instance tuples of the given key can be enumerated.
|
boolean |
isPosetKey(IInputKey key)
Returns true if the given
IInputKey represents a poset type. |
boolean |
isStateless(IInputKey key)
Returns true iff the set of instance tuples of the given key is immutable.
|
boolean isEnumerable(IInputKey key)
If false, the runtime can only test tuple membership in the extensional relation identified by the key, but not enumerate member tuples in general.
Equivalent to IInputKey.isEnumerable()
.
boolean isStateless(IInputKey key)
If false, the runtime provides notifications upon change.
java.util.Collection<InputKeyImplication> getWeakenedAlternatives(IInputKey implyingKey)
Note that for the obvious reasons, enumerable keys can only be implied by enumerable keys.
Must follow directly or transitively from implications of getImplications(IInputKey)
.
java.util.Collection<InputKeyImplication> getImplications(IInputKey implyingKey)
Note that for the obvious reasons, enumerable keys can only be implied by enumerable keys.
com.google.common.collect.SetMultimap<InputKeyImplication,InputKeyImplication> getConditionalImplications(IInputKey implyingKey)
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.
java.util.Map<java.util.Set<java.lang.Integer>,java.util.Set<java.lang.Integer>> getFunctionalDependencies(IInputKey key)
Each entry of the map is a functional dependency rule, where the entry key specifies source columns and the entry value specifies target columns.
java.util.Comparator<IInputKey> getSuggestedEliminationOrdering()
boolean canLeadOutOfScope(IInputKey key)
IInputKey
is an edge and may lead out of scope.boolean isPosetKey(IInputKey key)
IInputKey
represents a poset type.IPosetComparator getPosetComparator(java.lang.Iterable<IInputKey> keys)
IPosetComparator
for the given set of IInputKey
s.keys
- an iterable collection of input keys