[
https://issues.apache.org/jira/browse/CALCITE-3014?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16827840#comment-16827840
]
Lai Zhou edited comment on CALCITE-3014 at 4/28/19 7:31 AM:
------------------------------------------------------------
[~zabetak],[~julianhyde]
Is there already an example query that joins different data source using
different sql dialects meanwhile ? Do we really need this feature?
If just consider the problem of RexExecutorImpl here, we need pass the current
SqlConformance
to RexExecutorImpl when reducing expressions.But now the caller RexSimplify
didn't have a SqlConformance.
Consider the simplifyCast of RexSimplify, in Hive Sql
{code:java}
select cast('' as decimal)
{code}
it will return null, but in Calcite it will throw exception. I want to use a
SqlConformance to customize the generated expression when simplifing Cast.
Since the
[AggregateNode.java#L226|https://github.com/apache/calcite/blob/72f36a8830afe7f903d8cb32cf547ea484e49fef/core/src/main/java/org/apache/calcite/interpreter/AggregateNode.java#L226]
did have a `TODO` solution, we can ignore it here .
was (Author: hhlai1990):
[~zabetak],[~julianhyde]
Is there already an example query that joins different data source using
different sql dialects meanwhile ? Do we really need this feature?
If just consider the problem of RexExecutorImpl here, we need pass the current
SqlConformance
to RexExecutorImpl when reducing expressions.But now the caller RexSimplify
didn't have a SqlConformance.
Consider the simplifyCast of RexSimplify, in Hive Sql
{code:java}
select cast('' as Decimal)
{code}
it will return null, but in Calcite it will throw exception. I want to use a
SqlConformance to customize the generated expression when simplifing Cast.
Since the
[AggregateNode.java#L226|https://github.com/apache/calcite/blob/72f36a8830afe7f903d8cb32cf547ea484e49fef/core/src/main/java/org/apache/calcite/interpreter/AggregateNode.java#L226]
did have a `TODO` solution, we can ignore it here .
> SqlConformanceEnum is hard coded in a few places
> ------------------------------------------------
>
> Key: CALCITE-3014
> URL: https://issues.apache.org/jira/browse/CALCITE-3014
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.19.0
> Reporter: Lai Zhou
> Priority: Major
>
> I found SqlConformanceEnum is hard coded in a few places.
> [https://github.com/apache/calcite/blob/ee83efd360793ef4201f4cdfc2af8d837b76ca69/core/src/main/java/org/apache/calcite/rex/RexExecutorImpl.java#L81]
> [https://github.com/apache/calcite/blob/72f36a8830afe7f903d8cb32cf547ea484e49fef/core/src/main/java/org/apache/calcite/interpreter/AggregateNode.java#L226]
> I think it's not easy to fix them in a generic way. To support different
> SQL compatibility modes well, many place of current codebase is possible to
> be modified.
> It will `drill a hole` to pass the SqlConformance config in the whole process
> of one sql query.
> May be we can put the SqlConformance config in ThreadLocal, avoiding pass it
> frequently.
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)