[
https://issues.apache.org/jira/browse/CALCITE-1101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15172366#comment-15172366
]
Julian Hyde commented on CALCITE-1101:
--------------------------------------
As an architect I am delighted when I hear that my proposed changes solve other
problems than the one they are intended to solve.
Some component will need to deal with the concurrency problem of materialized
views coming online and going offline, and concurrency problems are never easy,
but I agree that component shouldn't be in Calcite.
> 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)