[
https://issues.apache.org/jira/browse/CALCITE-3416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16956339#comment-16956339
]
Julian Hyde commented on CALCITE-3416:
--------------------------------------
Thanks for creating https://github.com/apache/calcite/pull/1524, [~danny0405].
But I don't like the approach, because it centralizes the code for all
dialects. The initialization code for each dialect should be within its dialect
class. Also, people should be able to create their own dialect sub-class
without modifying a Calcite-controlled enum.
> SQL Dialects "DEFAULT"s should be more extensible
> -------------------------------------------------
>
> Key: CALCITE-3416
> URL: https://issues.apache.org/jira/browse/CALCITE-3416
> Project: Calcite
> Issue Type: Improvement
> Reporter: Steven Talbot
> Assignee: Danny Chen
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The behavior of SQLDialect is partly governed by the methods defined on the
> given dialect subclass and partly governed by options passed in in a Context
> object. So every dialect subclass exposes a "DEFAULT" instance that has been
> initialized with the correct Context.
> However, if you then wish to extend the dialect for one reason or another,
> you must create a new instance to extend, or of course create a whole new
> subclass. In either case, you lose the options from the Context passed into
> the default, which governs important behavior of the dialect. You can
> copy-paste the relevant Context out of the Calcite code, but then you lose
> future improvements or fixes that might land in mainline Calcite.
> It would be nice if each dialect exposed the DEFAULT_CONTEXT that it passed
> into its DEFAULT instance as a public final member. Then, when extending the
> dialect, you simply initialize your extension with the DEFAULT_CONTEXT, and
> if any customization needs to happens on the Context options that's easy to
> do with the Context's API.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)