Class QueryJoinOptimizer

All Implemented Interfaces:

public class QueryJoinOptimizer extends Object implements QueryOptimizer
A query optimizer that re-orders nested Joins.
Arjohn Kampman, James Leigh
  • Field Details


      @Experimental public static int MERGE_JOIN_CARDINALITY_SIZE_DIFF_MULTIPLIER
      When deciding if merge join is the correct approach we will compare the cardinality of the two join arguments, if one is bigger than the other by a factor of MERGE_JOIN_CARDINALITY_SIZE_DIFF_MULTIPLIER then we will not use merge join. As an example, if the limit is 10 and the left cardinality if 50 000 and the right cardinality is 500 000 then we will use merge join, but if it is 500 001 then we will not.

      @Experimental public static boolean USE_MERGE_JOIN_FOR_LAST_STATEMENT_PATTERNS_WHEN_CROSS_JOIN
    • statistics

      protected final EvaluationStatistics statistics
  • Constructor Details

  • Method Details

    • optimize

      public void optimize(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings)
      Applies generally applicable optimizations: path expressions are sorted from more to less specific.
      Specified by:
      optimize in interface QueryOptimizer
      tupleExpr -