[
https://issues.apache.org/jira/browse/CALCITE-4597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yu Xu resolved CALCITE-4597.
----------------------------
Fix Version/s: 1.43.0
Resolution: Fixed
Fixed in
[https://github.com/apache/calcite/commit/6484bed4572adbc219b171a9efbbd08a1b662f3a]
Thank you for the review [~julianhyde] [~mbudiu]
> 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
> Assignee: Yu Xu
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.43.0
>
>
> 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.20.10#820010)