Class RelOptLattice

java.lang.Object
org.apache.calcite.plan.RelOptLattice

public class RelOptLattice extends Object
Use of a lattice by the query optimizer.
  • Field Details

    • lattice

      public final Lattice lattice
    • starRelOptTable

      public final RelOptTable starRelOptTable
  • Constructor Details

  • Method Details

    • rootTable

      public RelOptTable rootTable()
    • rewrite

      public @Nullable RelNode rewrite(RelNode node)
      Rewrites a relational expression to use a lattice.

      Returns null if a rewrite is not possible.

      Parameters:
      node - Relational expression
      Returns:
      Rewritten query
    • getAggregate

      public @Nullable Pair<CalciteSchema.TableEntry,TileKey> getAggregate(RelOptPlanner planner, ImmutableBitSet groupSet, List<Lattice.Measure> measureList)
      Retrieves a materialized table that will satisfy an aggregate query on the star table.

      The current implementation creates a materialization and populates it, provided that Lattice.auto is true.

      Future implementations might return materializations at a different level of aggregation, from which the desired result can be obtained by rolling up.

      Parameters:
      planner - Current planner
      groupSet - Grouping key
      measureList - Calls to aggregate functions
      Returns:
      Materialized table