[
https://issues.apache.org/jira/browse/CALCITE-4597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17429640#comment-17429640
]
Julian Hyde commented on CALCITE-4597:
--------------------------------------
{quote}How is this issue going?{quote}
No one is working on it.
{quote}Is this option belong to the output field of current relnode?{quote}
No, this option should be system-wide. Something like this, but with
{{INSTANCE}} moved to {{CalciteSystemProperty}}:
{code}
enum EmptyRowTypePolicy {
FORBIDDEN,
DISCOURAGED,
ALLOWED;
public static final EmptyRowTypePolicy INSTANCE =
Arrays.stream(values())
.filter(p ->
p.name().equals(System.getProperty("calcite.emptyRowTypePolicy")))
.findFirst()
.orElse(DISCOURAGED);
}
{code}
> Allow RelNodes to have an empty row type (zero fields)
> ------------------------------------------------------
>
> Key: CALCITE-4597
> URL: https://issues.apache.org/jira/browse/CALCITE-4597
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Priority: Major
>
> Add an option, {{EmptyRowTypePolicy}}, to allow creation of {{RelNode}}s
> whose row type is empty. That is, contains zero fields.
> There are three values:
> * {{FORBIDDEN}} - Calcite prevents empty row type. (For example, planner and
> {{RelBuilder}} throw if they see one.) Rules must not produce empty row
> types. Rules can assume that they will not encounter empty row types.
> * {{DISCOURAGED}} - Empty row types are discouraged. (Planner and
> {{RelBuilder}} will not throw if they see one.) Rules must not fail if they
> encounter an empty row type. Rules should not produce empty row types (with
> reasonable exceptions, such as if the input has an empty row type).
> * {{ALLOWED}} - Empty row types are OK. All rules should handle {{RelNode}}s
> with empty row types, and it's OK if they generate {{RelNode}}s with empty
> row types.
> The current policy is effectively {{DISCOURAGED}}. We try not to create empty
> RelNodes, but we don't check, and they crop up occasionally.
> After this change, and for a few releases, the policy will be {{DISCOURAGED}}
> by default, but we will run tests in all three modes. All rules must run in
> all modes.
> At some point in the future, we will change the default policy to
> {{ALLOWED}}. All rules must continue to run in all modes.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)