[ 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)