[
https://issues.apache.org/jira/browse/CALCITE-1742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15959924#comment-15959924
]
Maryann Xue commented on CALCITE-1742:
--------------------------------------
bq. From the code, schema.addTable is only called when the located TableEntry
was not successfully unwrapped into a PreparingTable instance. If that happens,
it will replace the old one with a new properly created TableEntry in schema.
I don't calling {{addSchema}} will actually do anything about the {{Table}}
instance other than create a new {{TableEntry}} object with exactly the same
name and Table objects. The side effect of calling {{addSchema}} though, is
adding this Table into the {{tableMap}} which is targeted for explicit tables
only (sorry I shouldn't have called it cache). Note that the {{Table}} instance
here can be an "explicit" or an "implicit" table, so it should NOT be added to
the {{tableMap}}. Otherwise if it's an implicit Table, the change of this Table
from the underlying {{Schema}} provider object can be shadowed.
> Avoid caching sub-objects from CalciteSchema if caching is not enabled
> ----------------------------------------------------------------------
>
> Key: CALCITE-1742
> URL: https://issues.apache.org/jira/browse/CALCITE-1742
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.12.0
> Reporter: Maryann Xue
> Assignee: Maryann Xue
>
> We have two implementations of CalciteSchema, {{CachingCalciteSchema}} and
> {{SimpleCalciteSchema}}. There is still caching in the parent class
> {{CalciteSchema}}, though, that causes objects to be cached even if caching
> is not enabled (as in {{SimpleCalciteSchema}}).
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)