[ 
https://issues.apache.org/jira/browse/CALCITE-3166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde updated CALCITE-3166:
---------------------------------
    Description: 
Make {{RelBuilder}} configurable, so that particular optimizations can easily 
be turned off.

I propose to add a class {{RelBuilder.Config}}, which is immutable and has a 
public final field for each configuration property; also a class 
{{RelBuilder.ConfigBuilder}} to create a config.

{{RelBuilder.create(FrameworkConfig frameworkConfig)}} will get a config by 
calling {{frameworkConfig.getContext().unwrap(RelBuilder.Config.class)}}.

Going forward, any new features that add "optimizations" to {{RelBuilder}} 
would need to have a corresponding flag in {{Config}} to switch them off. A 
feature would not be considered "complete" if it did not have tests and a 
switch.

  was:
Make {{RelBuilder}} configurable, so that particular optimizations can easily 
be turned off.

I propose to add a class {{RelBuilder.Config}}, which is immutable and has a 
public final field for each configuration property; also a class 
{{RelBuilder.ConfigBuilder}} to create a config.

{{RelBuilder.create(FrameworkConfig frameworkConfig)}} will get a config by 
calling {{frameworkConfig.getContext().unwrap(RelBuilder.Config.class)}}.


> Make RelBuilder configurable
> ----------------------------
>
>                 Key: CALCITE-3166
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3166
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.21.0
>
>
> Make {{RelBuilder}} configurable, so that particular optimizations can easily 
> be turned off.
> I propose to add a class {{RelBuilder.Config}}, which is immutable and has a 
> public final field for each configuration property; also a class 
> {{RelBuilder.ConfigBuilder}} to create a config.
> {{RelBuilder.create(FrameworkConfig frameworkConfig)}} will get a config by 
> calling {{frameworkConfig.getContext().unwrap(RelBuilder.Config.class)}}.
> Going forward, any new features that add "optimizations" to {{RelBuilder}} 
> would need to have a corresponding flag in {{Config}} to switch them off. A 
> feature would not be considered "complete" if it did not have tests and a 
> switch.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to