Class QueryJoinOptimizer.JoinVisitor

  • All Implemented Interfaces:
    QueryModelVisitor<java.lang.RuntimeException>
    Enclosing class:
    QueryJoinOptimizer

    @Deprecated
    protected class QueryJoinOptimizer.JoinVisitor
    extends AbstractQueryModelVisitor<java.lang.RuntimeException>
    Deprecated.
    This class is protected for historic reasons only, and will be made private in a future major release.
    • Field Detail

      • boundVars

        java.util.Set<java.lang.String> boundVars
        Deprecated.
    • Constructor Detail

      • JoinVisitor

        protected JoinVisitor()
        Deprecated.
    • Method Detail

      • optimizePriorityJoin

        private void optimizePriorityJoin​(java.util.Set<java.lang.String> origBoundVars,
                                          TupleExpr join)
        Deprecated.
      • getJoinArgs

        protected <L extends java.util.List<TupleExpr>> L getJoinArgs​(TupleExpr tupleExpr,
                                                                      L joinArgs)
        Deprecated.
      • getStatementPatternVars

        protected java.util.List<Var> getStatementPatternVars​(TupleExpr tupleExpr)
        Deprecated.
      • getVarFreqMap

        protected <M extends java.util.Map<Var,​java.lang.Integer>> M getVarFreqMap​(java.util.List<Var> varList,
                                                                                         M varFreqMap)
        Deprecated.
      • getExtensions

        protected java.util.List<TupleExpr> getExtensions​(java.util.List<TupleExpr> expressions)
        Deprecated.
      • getSubSelects

        protected java.util.List<TupleExpr> getSubSelects​(java.util.List<TupleExpr> expressions)
        Deprecated.
      • reorderSubselects

        protected java.util.List<TupleExpr> reorderSubselects​(java.util.List<TupleExpr> subselects)
        Deprecated.
        Determines an optimal ordering of subselect join arguments, based on variable bindings. An ordering is considered optimal if for each consecutive element it holds that first of all its shared variables with all previous elements is maximized, and second, the union of all its variables with all previous elements is maximized.

        Example: reordering

           [f] [a b c] [e f] [a d] [b e]
         

        should result in:

           [a b c] [a d] [b e] [e f] [f]
         
        Parameters:
        subselects - the original ordering of expressions
        Returns:
        the optimized ordering of expressions
      • getNextSubselect

        private TupleExpr getNextSubselect​(java.util.List<TupleExpr> currentList,
                                           java.util.List<TupleExpr> joinArgs)
        Deprecated.
      • selectNextTupleExpr

        protected TupleExpr selectNextTupleExpr​(java.util.List<TupleExpr> expressions,
                                                java.util.Map<TupleExpr,​java.lang.Double> cardinalityMap,
                                                java.util.Map<TupleExpr,​java.util.List<Var>> varsMap,
                                                java.util.Map<Var,​java.lang.Integer> varFreqMap,
                                                java.util.Set<java.lang.String> boundVars)
        Deprecated.
        Selects from a list of tuple expressions the next tuple expression that should be evaluated. This method selects the tuple expression with highest number of bound variables, preferring variables that have been bound in other tuple expressions over variables with a fixed value.
      • getTupleExprCardinality

        @Deprecated
        protected double getTupleExprCardinality​(TupleExpr tupleExpr,
                                                 java.util.Map<TupleExpr,​java.lang.Double> cardinalityMap,
                                                 java.util.Map<TupleExpr,​java.util.List<Var>> varsMap,
                                                 java.util.Map<Var,​java.lang.Integer> varFreqMap,
                                                 java.util.Set<java.lang.String> boundVars)
        Deprecated.
      • getTupleExprCost

        protected double getTupleExprCost​(TupleExpr tupleExpr,
                                          java.util.Map<TupleExpr,​java.lang.Double> cardinalityMap,
                                          java.util.Map<TupleExpr,​java.util.List<Var>> varsMap,
                                          java.util.Map<Var,​java.lang.Integer> varFreqMap,
                                          java.util.Set<java.lang.String> boundVars)
        Deprecated.
      • getConstantVars

        protected java.util.List<Var> getConstantVars​(java.lang.Iterable<Var> vars)
        Deprecated.
      • getUnboundVars

        protected java.util.List<Var> getUnboundVars​(java.lang.Iterable<Var> vars)
        Deprecated.
      • getForeignVarFreq

        protected int getForeignVarFreq​(java.util.List<Var> ownUnboundVars,
                                        java.util.Map<Var,​java.lang.Integer> varFreqMap)
        Deprecated.