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

Christian Beikov commented on CALCITE-1913:
-------------------------------------------

I implemented part of what you describe as part of a PR that adds sequence 
support. Maybe you could comment on that? [~jbal...@gmail.com]
https://github.com/apache/calcite/pull/514

By allowing a user to provide a custom SqlDialectFactory, a user could make use 
of a custom dialect implementation. That way, a consumer of calcite can 
overrule if a feature is used or not. Still, the default implementation can 
make a decision about whether a feature is used by doing version comparisons. 
That obviously requires that SqlDialect is the "gate-keeper" to what a dialect 
actually supports rather than handling that through checks against 
DatabaseProduct.
My prime example for when the DatabaseProduct approach will break is MySQL. 
With version 8 it will support CTEs thus we could push down such SQL, yet we 
only have a single MYSQL enum entry. We could introduce multiple entries for 
respective versions(e.g. MYSQL5, MYSQL8) to handle such cases, but that won't 
handle cases where a user might not want to use a specific feature.

Allowing SqlDialect to handle unparsing or return whether a DBMS has a specific 
capability also allows for adding new dialects that don't fit into the current 
DatabaseProduct scheme. What if there is a MySQL fork out there that doesn't 
support feature X,Y,Z of our "standard MySQL" version we defined through a 
DatabaseProduct? These people would be out of luck right now.

Maybe you ([~julianhyde]) could comment further about what he doesn't like 
about this approach so we could tackle specifics?

> Include DB version in SqlDialect
> --------------------------------
>
>                 Key: CALCITE-1913
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1913
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.13.0
>            Reporter: Jess Balint
>            Assignee: Jess Balint
>            Priority: Minor
>
> It would be useful to have the DB version # in the SqlDialect for unparsing



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to