[
https://issues.apache.org/jira/browse/CALCITE-1489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde resolved CALCITE-1489.
----------------------------------
Resolution: Fixed
Fix Version/s: 1.11.0
Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/3f92157d. Thanks
for the PR, [~gian]!
> Add rule, AggregateValuesRule, that applies to Aggregate on empty relation
> --------------------------------------------------------------------------
>
> Key: CALCITE-1489
> URL: https://issues.apache.org/jira/browse/CALCITE-1489
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Assignee: Julian Hyde
> Fix For: 1.11.0
>
>
> Add rule, AggegateValuesRule, that applies to Aggregate on empty relation. In
> CALCITE-1488, [~gian] wrote:
> {quote}
> I still have a problem with Aggregates that lack a group set, like SELECT
> COUNT\(\*\) FROM s.foo WHERE 1 = 0. PruneEmptyRules doesn't reduce that,
> since the result is going to be one row, not empty. The ValuesReduceRules
> don't either, because they don't touch Aggregates.
> I ended up addressing this with a rule on my end:
> https://gist.github.com/gianm/1c192a47a7ce284be8af986f97e6dd8f
> Does that approach make sense? If so do you think it makes sense to
> contribute to Calcite?
> One thing I'm not sure about is if there's a better way to figure out what
> should be 0 and what should be NULL other than hard-coding COUNT and SUM0.
> {quote}
> Let's call it {{AggregateValuesRule}}, consistent with the naming convention
> where we start with the type of rel(s) being acted on. Initially it would
> apply to an empty {{Values}}, but potentially it could apply to one or more
> values.
> I don't recall aggregates having a way to tell us what they will return on
> empty (or constant) input. In future we could use the constant reducer for
> that, but for now, the rule should match a particular set of aggregates:
> {{COUNT}} and {{SUM0}} return zero; {{MIN}}, {{MAX}}, {{SUM}} return null. It
> must abort if it sees an aggregate it does not know how to handle.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)