public class SelfJoinLikeExecutor extends Object
| Modifier and Type | Class and Description |
|---|---|
protected static class |
SelfJoinLikeExecutor.AtomUnificationException
TODO: explain
TODO: find valid cases
|
protected static class |
SelfJoinLikeExecutor.ConcreteProposal
TODO: explain
|
protected static class |
SelfJoinLikeExecutor.PredicateLevelProposal
TODO: explain
|
| Modifier | Constructor and Description |
|---|---|
protected |
SelfJoinLikeExecutor(SubstitutionFactory substitutionFactory,
ImmutableUnificationTools unificationTools,
TermFactory termFactory) |
| Modifier and Type | Method and Description |
|---|---|
protected static com.google.common.collect.ImmutableList<VariableOrGroundTerm> |
extractArguments(DataAtom atom,
com.google.common.collect.ImmutableList<Integer> positions)
Returns the list of the terms from atom corresponding
to the positions
TODO: explain
|
protected static com.google.common.collect.ImmutableMultimap<RelationPredicate,ExtensionalDataNode> |
extractDataNodes(com.google.common.collect.ImmutableList<QueryNode> siblings) |
protected com.google.common.collect.ImmutableList<ImmutableSubstitution<VariableOrGroundTerm>> |
extractSubstitutions(com.google.common.collect.ImmutableCollection<SelfJoinLikeExecutor.PredicateLevelProposal> predicateProposals) |
protected Optional<ImmutableSubstitution<VariableOrGroundTerm>> |
mergeSubstitutions(com.google.common.collect.ImmutableList<ImmutableSubstitution<VariableOrGroundTerm>> substitutions,
com.google.common.collect.ImmutableMultimap<RelationPredicate,ExtensionalDataNode> initialDataNodeMap,
com.google.common.collect.ImmutableList<Variable> priorityVariables) |
protected com.google.common.collect.ImmutableList<Variable> |
prioritizeVariables(IntermediateQuery query,
JoinLikeNode joinLikeNode)
TODO: implement seriously
|
protected SelfJoinLikeExecutor.PredicateLevelProposal |
proposeForGroupingMap(com.google.common.collect.ImmutableMultimap<com.google.common.collect.ImmutableList<VariableOrGroundTerm>,ExtensionalDataNode> groupingMap)
groupingMap groups data nodes that are being joined on the unique constraints
creates proposal to unify redundant nodes
|
protected ImmutableSubstitution<VariableOrGroundTerm> |
unifyRedundantNodes(Collection<ExtensionalDataNode> redundantNodes) |
protected <N extends JoinOrFilterNode> |
updateJoinNodeAndPropagateSubstitution(IntermediateQuery query,
QueryTreeComponent treeComponent,
N joinNode,
SelfJoinLikeExecutor.ConcreteProposal proposal) |
protected SelfJoinLikeExecutor(SubstitutionFactory substitutionFactory, ImmutableUnificationTools unificationTools, TermFactory termFactory)
protected static com.google.common.collect.ImmutableMultimap<RelationPredicate,ExtensionalDataNode> extractDataNodes(com.google.common.collect.ImmutableList<QueryNode> siblings)
protected SelfJoinLikeExecutor.PredicateLevelProposal proposeForGroupingMap(com.google.common.collect.ImmutableMultimap<com.google.common.collect.ImmutableList<VariableOrGroundTerm>,ExtensionalDataNode> groupingMap) throws SelfJoinLikeExecutor.AtomUnificationException
protected ImmutableSubstitution<VariableOrGroundTerm> unifyRedundantNodes(Collection<ExtensionalDataNode> redundantNodes) throws SelfJoinLikeExecutor.AtomUnificationException
protected Optional<ImmutableSubstitution<VariableOrGroundTerm>> mergeSubstitutions(com.google.common.collect.ImmutableList<ImmutableSubstitution<VariableOrGroundTerm>> substitutions, com.google.common.collect.ImmutableMultimap<RelationPredicate,ExtensionalDataNode> initialDataNodeMap, com.google.common.collect.ImmutableList<Variable> priorityVariables) throws SelfJoinLikeExecutor.AtomUnificationException
protected com.google.common.collect.ImmutableList<ImmutableSubstitution<VariableOrGroundTerm>> extractSubstitutions(com.google.common.collect.ImmutableCollection<SelfJoinLikeExecutor.PredicateLevelProposal> predicateProposals)
protected static com.google.common.collect.ImmutableList<VariableOrGroundTerm> extractArguments(DataAtom atom, com.google.common.collect.ImmutableList<Integer> positions)
protected <N extends JoinOrFilterNode> NodeCentricOptimizationResults<N> updateJoinNodeAndPropagateSubstitution(IntermediateQuery query, QueryTreeComponent treeComponent, N joinNode, SelfJoinLikeExecutor.ConcreteProposal proposal) throws EmptyQueryException
EmptyQueryExceptionprotected com.google.common.collect.ImmutableList<Variable> prioritizeVariables(IntermediateQuery query, JoinLikeNode joinLikeNode)
Copyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.