You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Maryann Xue (JIRA)" <ji...@apache.org> on 2016/02/26 17:20:18 UTC

[jira] [Commented] (CALCITE-1101) Extend Schema SPI to provide materialized views

    [ 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)