You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by 徐保荣 <lu...@aloudata.com> on 2022/02/15 04:07:20 UTC

Some questions about lattices

hello,
     I'm reading code about star materialized views ,These problems keeps making me puzzled. 


can you tell me some information about the lattice and star-materialization-view ?
from the code ,I find two place about star-materialization-view:
1. before use materialization by UnifyRule 

private static List<RelNode> substitute(
      RelNode root, RelOptMaterialization materialization,
      List<SubstitutionVisitor.UnifyRule> materializationRules) {
    // First, if the materialization is in terms of a star table, rewrite
    // the query in terms of the star table.
    if (materialization.starRelOptTable != null) {
      RelNode newRoot = RelOptMaterialization.tryUseStar(root,
          materialization.starRelOptTable);
    }
2. AggregateStarTableRule,and it use lattice.

What I don't understand that why star match in the two place? why the lattices only used in the second one?

I also confused about lattice's effecttions. is it  just  a Schema description for star aggreation view?
from the official website document,the lattice's introduction is as follows:
A lattice is a framework for creating and populating materialized views, and for recognizing that a materialized view can be used to solve a particular query.
but in the project,I only find it used in AggregateStarTableRule

I don't find any code about that:  a lattice is a partially ordered set where any two elements have a unique greatest lower bound and least upper bound

I look forward to hearing from you very much
thanks





 rules transformation
Permalink