Class MockRelOptPlanner

java.lang.Object
org.apache.calcite.plan.AbstractRelOptPlanner
org.apache.calcite.test.MockRelOptPlanner
All Implemented Interfaces:
RelOptPlanner

public class MockRelOptPlanner extends AbstractRelOptPlanner
MockRelOptPlanner is a mock implementation of the RelOptPlanner interface.
  • Constructor Details

    • MockRelOptPlanner

      public MockRelOptPlanner(Context context)
      Creates MockRelOptPlanner.
  • Method Details

    • setRoot

      public void setRoot(RelNode rel)
      Description copied from interface: RelOptPlanner
      Sets the root node of this query.
      Parameters:
      rel - Relational expression
    • getRoot

      public @Nullable RelNode getRoot()
      Description copied from interface: RelOptPlanner
      Returns the root node of this query.
      Returns:
      Root node
    • clear

      public void clear()
      Description copied from interface: RelOptPlanner
      Removes all internal state, including all registered rules, materialized views, and lattices.
      Specified by:
      clear in interface RelOptPlanner
      Overrides:
      clear in class AbstractRelOptPlanner
    • getRules

      public List<RelOptRule> getRules()
      Description copied from interface: RelOptPlanner
      Returns the list of all registered rules.
      Specified by:
      getRules in interface RelOptPlanner
      Overrides:
      getRules in class AbstractRelOptPlanner
    • addRule

      public boolean addRule(RelOptRule rule)
      Description copied from interface: RelOptPlanner
      Registers a rule.

      If the rule has already been registered, does nothing. This method determines if the given rule is a ConverterRule and pass the ConverterRule to all registered RelTraitDef instances.

      Specified by:
      addRule in interface RelOptPlanner
      Overrides:
      addRule in class AbstractRelOptPlanner
      Returns:
      whether the rule was added, as per Collection.add(E)
    • removeRule

      public boolean removeRule(RelOptRule rule)
      Description copied from interface: RelOptPlanner
      Removes a rule.
      Specified by:
      removeRule in interface RelOptPlanner
      Overrides:
      removeRule in class AbstractRelOptPlanner
      Returns:
      true if the rule was present, as per Collection.remove(Object)
    • changeTraits

      public RelNode changeTraits(RelNode rel, RelTraitSet toTraits)
      Description copied from interface: RelOptPlanner
      Changes a relational expression to an equivalent one with a different set of traits.
      Parameters:
      rel - Relational expression (may or may not have been registered; must not have the desired traits)
      toTraits - Trait set to convert the relational expression to
      Returns:
      Relational expression with desired traits. Never null, but may be abstract
    • findBestExp

      public RelNode findBestExp()
      Description copied from interface: RelOptPlanner
      Finds the most efficient expression to implement this query.
    • register

      public RelNode register(RelNode rel, @Nullable RelNode equivRel)
      Description copied from interface: RelOptPlanner
      Registers a relational expression in the expression bank.

      After it has been registered, you may not modify it.

      The expression must not already have been registered. If you are not sure whether it has been registered, call RelOptPlanner.ensureRegistered(RelNode, RelNode).

      Parameters:
      rel - Relational expression to register (must not already be registered)
      equivRel - Relational expression it is equivalent to (may be null)
      Returns:
      the same expression, or an equivalent existing expression
    • ensureRegistered

      public RelNode ensureRegistered(RelNode rel, RelNode equivRel)
      Description copied from interface: RelOptPlanner
      Registers a relational expression if it is not already registered.

      If equivRel is specified, rel is placed in the same equivalence set. It is OK if equivRel has different traits; rel will end up in a different subset of the same set.

      It is OK if rel is a subset.

      Parameters:
      rel - Relational expression to register
      equivRel - Relational expression it is equivalent to (may be null)
      Returns:
      Registered relational expression
    • isRegistered

      public boolean isRegistered(RelNode rel)
      Description copied from interface: RelOptPlanner
      Determines whether a relational expression has been registered.
      Parameters:
      rel - expression to test
      Returns:
      whether rel has been registered
    • getRelMetadataTimestamp

      @Deprecated public long getRelMetadataTimestamp(RelNode rel)
      Deprecated.
      Description copied from interface: RelOptPlanner
      Gets a timestamp for a given rel's metadata. This timestamp is used by CachingRelMetadataProvider to decide whether cached metadata has gone stale.
      Specified by:
      getRelMetadataTimestamp in interface RelOptPlanner
      Overrides:
      getRelMetadataTimestamp in class AbstractRelOptPlanner
      Parameters:
      rel - rel of interest
      Returns:
      timestamp of last change which might affect metadata derivation
    • setRelMetadataTimestamp

      @Deprecated public void setRelMetadataTimestamp(long metadataTimestamp)
      Deprecated.