[ 
https://issues.apache.org/jira/browse/CALCITE-1101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15169249#comment-15169249
 ] 

Maryann Xue commented on CALCITE-1101:
--------------------------------------

Would it make sense to still let Calcite handle the translation to RelNode from 
sql, given Calcite has whatever schema objects that are needed? One more thing 
to add to this Materialization class may be the "schema path" for the sql. Not 
sure about the "referencedTables", does it look like a redundant information 
with sql? It's something that we already do in 
VolcanoPlanner.findTables(RelNode), right?
 
MaterializationService also handles the creation of materialized views if they 
are not pre-populated, so looks like we'd better have table name + table path 
instead of Table object here. What do you think, [~julianhyde]?

> Extend Schema SPI to provide materialized views
> -----------------------------------------------
>
>                 Key: CALCITE-1101
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1101
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>
> Currently the way to get materialized views is via MaterializationService, 
> but it would be simpler to get them from a new method 
> Schema.getMaterializedViews().
> Some thoughts:
> * The method should return materialized views not just in the current schema, 
> and therefore
> * The method should be filtered by Table (or Tables)
> * The objects returned can not include RelNode (RelNode can only be created 
> in the context of a statement, and the Schema is created before the first 
> statement; furthermore, holding onto RelNode would be a resource leak). But 
> they should provide the means to create a RelNode (given sufficient context).
> * Maybe the objects returned indicate something about the mapping
> Taking all this, we get {code}List<Foo> getMaterializedViews(Table... tables);
> class Foo {
>   public final Table view;
>   public final List<Table> referencedTables;
>   public final TileKey tileKey; // may be null
>   public final String sql; // may be null; for information only
>   public RelNode rel(Context context);
> }
> {code}
> Maybe we can obsolete {{CalciteSchema.getTableBySql}}.
> Cc [~maryannxue], [~jamestaylor].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to