[
https://issues.apache.org/jira/browse/CALCITE-911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14945396#comment-14945396
]
Julian Hyde commented on CALCITE-911:
-------------------------------------
My concern about this patch is the huge increase in API surface area. There are
a lot of classes and interfaces that include the word "schema" and it's frankly
a rat's nest. You didn't create the rat's nest: I created Schema and
SchemaFactory and SchemaPlus and SchemaPlusImpl and CalciteSchema. But the key
part of that design were the words "Used internally" against CalciteSchema. And
you want to make that implementation public.
So, I think this patch is taking us in the wrong direction.
Can we start off with your requirements? I believe your requirement is to have
a representation of schema that knows its structure (name, parent schema, child
schemas, child objects), you build yourself, and does not need to be re-created
for every request.
> Make CalciteSchema extendible for different implementation.
> -----------------------------------------------------------
>
> Key: CALCITE-911
> URL: https://issues.apache.org/jira/browse/CALCITE-911
> Project: Calcite
> Issue Type: Bug
> Reporter: Jinfeng Ni
> Assignee: Jinfeng Ni
>
> CalciteSchema by default uses cache to store table, sub-schema, function.
> This would work perfectly for schema-based system, yet would create problem
> for Drill, which dynamically explore the schema on the fly during query
> execution.
> One solution is to refactor CalciteSchema and make it as an interface. The
> default implementation would still use the current implementation. Further,
> it would other system to extend the default behavior and make CalciteSchema
> works for Drill as well.
> Background information: The issue around CalciteSchema is one of the reasons
> that Drill has to use a forked version of Calcite. Hopefully, if we could
> resolve this issue, we are one step further to remove the forked Calcite in
> the near future.
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)