Julian Hyde created CALCITE-3815:
------------------------------------
Summary: 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
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)