[ https://issues.apache.org/jira/browse/CALCITE-3815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17056677#comment-17056677 ]
Feng Zhu commented on CALCITE-3815: ----------------------------------- It seems that we cannot completely reuse _min/max_'s implementation for _every/some_, at least in the runtime layer. In min/max, if no rows are selected, the default result is NULL. However, for every/some, we should get "false". The query below is validated in PG. Therefore, I'd like to suggest implementing them seperately. {code:java} select every(a>100) from (VALUES (1, 11), (2, 22), (3, 33)) AS t (a, b) ------------- false {code} > Add missing SQL standard aggregate functions: EVERY, SOME, INTERSECTION > ----------------------------------------------------------------------- > > Key: CALCITE-3815 > URL: https://issues.apache.org/jira/browse/CALCITE-3815 > Project: Calcite > Issue Type: Bug > Reporter: Julian Hyde > Assignee: Hanumath Rao Maduri > Priority: Major > Labels: pull-request-available > Time Spent: 1.5h > Remaining Estimate: 0h > > Add missing SQL standard aggregate functions: EVERY, SOME, INTERSECTION. > Examples: > {code} > SELECT deptno, > EVERY(sal < 3000) AS es, SOME(sal < 1000) AS ss, > EVERY(comm < 500) AS ec, SOME(comm < 500) AS sc > FROM emp > GROUP BY deptno; > +--------+-------+-------+-------+------+ > | DEPTNO | ES | SS | EC | SC | > +--------+-------+-------+-------+------+ > | 10 | FALSE | FALSE | | | > | 20 | FALSE | TRUE | | | > | 30 | TRUE | TRUE | FALSE | TRUE | > +--------+-------+-------+-------+------+ > {code} > {{EVERY}} and {{SOME}} can be implemented by translating to {{MIN}}, {{MAX}}: > * {{EVERY(condition)}} is equivalent to {{MIN(condition)}}; > * {{SOME(condition)}} is equivalent to {{MAX(condition)}} > where {{condition}} is a {{BOOLEAN}} expression, possibly allowing {{NULL}} > values). > {{INTERSECTION}} computes the intersection of collections (arrays and > multisets). (Compare to {{FUSION}}, which computes the union of collections.) > {{FUSION}} is in the operator table but there is no code-generation for it. > This task should implement {{FUSION}} and {{INTERSECTION}} so that we can run > queries in Enumerable mode. -- This message was sent by Atlassian Jira (v8.3.4#803005)