[ 
https://issues.apache.org/jira/browse/CALCITE-5865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17744817#comment-17744817
 ] 

Gian Merlino commented on CALCITE-5865:
---------------------------------------

PR in https://github.com/apache/calcite/pull/3327.

Btw, to me this seems more like a {{RelDataTypeSystem}} thing than a 
{{SqlConformance}} thing. It seems similar to {{deriveSumType}}, 
{{deriveAvgAggType}}, etc. However, in the PR, I stuck with the conformance 
approach, for two reasons:

- I'm asking for this to be included in 1.35.0, which is up to rc2 already, so 
I'm keeping the patch small.
- I could be missing this reason why this should be a conformance thing.

> ClassCastException with FLOOR and CEIL on conformances that are not builtin
> ---------------------------------------------------------------------------
>
>                 Key: CALCITE-5865
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5865
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Gian Merlino
>            Priority: Major
>              Labels: pull-request-available
>
> CALCITE-5747 introduced some BigQuery-specific logic for FLOOR and CEIL that 
> is keyed off the conformance being {{SqlConformanceEnum.BIG_QUERY}}. However, 
> it was implemented in such a way that implementations of {{SqlConformance}} 
> that are not {{SqlConformanceEnum}} would throw {{ClassCastException}}, due 
> to this line in {{Parser.jj}}:
> {code}
> SqlOperator op = SqlStdOperatorTable.floorCeil(floorFlag, 
> (SqlConformanceEnum) this.conformance);
> {code}
> Better would be to pass {{this.conformance}} without casting, and adjust 
> {{SqlStdOperatorTable.floorCeil}} to handle any kind of conformance.
> This affects us in Apache Druid land, because we have a conformance that 
> extends {{SqlAbstractConformance}}.



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

Reply via email to