[ 
https://issues.apache.org/jira/browse/CALCITE-1742?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maryann Xue updated CALCITE-1742:
---------------------------------
    Description: 
{{CalciteSchema}} is designed to have two sets of objects, the explicit and the 
implicit. A explicit object means an object we add through explicit 
{{CalciteSchema#addTable}} (or {{CalciteSchema.addFunction}}, etc) calls, while 
an implicit object means an object we get from the underlying {{Schema}} 
object's getXXX methods.
 
However, in {{CalciteCatalogReader#getTableFrom}}, after a table is resolved 
through {{CalciteSchema.getTable}} method, it will be added to the 
{{CalciteSchema}} again as an explicit object regardless of whether it is 
originally implicit or explicit. So if it happens to be an implicit table, any 
change about that table later on will be shadowed by the newly added explicit 
object and thus cannot be accessed.

  was: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}}).


> CalciteCatalogReader should not add resolved tables into CalciteSchema's 
> explicit table map
> -------------------------------------------------------------------------------------------
>
>                 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
>
> {{CalciteSchema}} is designed to have two sets of objects, the explicit and 
> the implicit. A explicit object means an object we add through explicit 
> {{CalciteSchema#addTable}} (or {{CalciteSchema.addFunction}}, etc) calls, 
> while an implicit object means an object we get from the underlying 
> {{Schema}} object's getXXX methods.
>  
> However, in {{CalciteCatalogReader#getTableFrom}}, after a table is resolved 
> through {{CalciteSchema.getTable}} method, it will be added to the 
> {{CalciteSchema}} again as an explicit object regardless of whether it is 
> originally implicit or explicit. So if it happens to be an implicit table, 
> any change about that table later on will be shadowed by the newly added 
> explicit object and thus cannot be accessed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to