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

Julian Hyde commented on CALCITE-1798:
--------------------------------------

We could have a mechanism where there can be multiple handlers to unparse 
calls. Maybe a handler can identify itself as handling a particular dialect, or 
a particular set of operators. Or maybe it doesn't, and we use a [chain of 
responsibility|https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern], 
stopping when we find a handler. And I suppose handlers could be loaded from 
the classpath the same way that JDBC drivers are. Feel free to log a new JIRA 
case with a proposed mechanism.

> In JDBC adapter, generate dialect-specific SQL for FLOOR operator
> -----------------------------------------------------------------
>
>                 Key: CALCITE-1798
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1798
>             Project: Calcite
>          Issue Type: Bug
>          Components: jdbc-adapter
>            Reporter: Chris Baynes
>            Assignee: Julian Hyde
>              Labels: dialect
>             Fix For: 1.13.0
>
>
> The FLOOR operator (on dates) is currently broken for all jdbc dialects.
> The syntax allowed by the parser looks like: "FLOOR(datetime to timeUnit)".
> However no jdbc dialect (as far as I'm aware) actually name the function 
> FLOOR:
> In postgres: DATE_TRUNC('year', my_datetime)
> In hsqldb: TRUNC ( my_datetime, 'YYYY' )
> In oracle: TRUNC(my_datetime, 'YEAR')
> In mysql: There's no direct equivalent in mysql (though it could be emulated 
> with some nasty timestamp diffing)
> The other issue is that the timeUnits are sometimes also named differently by 
> each dialect (e.g. 'YYYY' in hsqldb).



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

Reply via email to