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

Anonymous updated BEAM-12274:
-----------------------------
    Status: Triage Needed  (was: Open)

> Create and use an extension of JavaTypeFactoryImpl.
> ---------------------------------------------------
>
>                 Key: BEAM-12274
>                 URL: https://issues.apache.org/jira/browse/BEAM-12274
>             Project: Beam
>          Issue Type: Wish
>          Components: dsl-sql
>            Reporter: Kyle Weaver
>            Priority: P3
>
> We rely on CalciteUtils.sqlTypeWithAutoCast [1] to handle certain type 
> mappings (Java -> Calcite) that Calcite doesn't know about. Instead of 
> relying on sqlTypeWithAutoCast, we should have our own type factory with 
> these mappings, so we don't have to make sure sqlTypeWithAutoCast is called 
> everywhere (otherwise, it could result in subtle typing bugs).
> Once a type factory was implemented, however, it would be difficult to plug 
> in because of the way connections are initialized. Currently the type factory 
> is initialized to a default [2]. Some methods have an argument for the type 
> factory in Driver [3], but they are not public. And some necessary logic [4] 
> can't just be copied verbatim into Beam, since it depends on 
> CalciteConnectionImpl, which is also not public. So we'd probably have to 
> create a root schema as well as a type factory.
> [1] 
> [https://github.com/apache/beam/blob/54934dce5b439e3f9f83ef84ac32e38b3d318158/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/CalciteUtils.java#L291-L294]
>  
> [2] 
> [https://github.com/apache/calcite/blob/350802b59fa68ef1ee074b78af17bf1b2c435e13/core/src/main/java/org/apache/calcite/jdbc/CalciteConnectionImpl.java#L145]
> [3] 
> [https://github.com/apache/calcite/blob/350802b59fa68ef1ee074b78af17bf1b2c435e13/core/src/main/java/org/apache/calcite/jdbc/Driver.java#L171-L185]
> [4] 
> [https://github.com/apache/calcite/blob/350802b59fa68ef1ee074b78af17bf1b2c435e13/core/src/main/java/org/apache/calcite/jdbc/Driver.java#L91-L157]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to