[ 
https://issues.apache.org/jira/browse/CALCITE-4486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17403210#comment-17403210
 ] 

Julian Hyde commented on CALCITE-4486:
--------------------------------------

It sounds like I got the spec wrong above. My point was, we need tests. For 
singleton keys with nulls and also composite keys fully and partially null. 
Also UNIQUE in the SELECT clause so that we can see that it does not return 
UNKNOWN in corner cases. And add a concise example to this case, as I tried to 
do above.

> UNIQUE predicate
> ----------------
>
>                 Key: CALCITE-4486
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4486
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: duan xiong
>            Priority: Major
>
> Implement the UNIQUE predicate, as specified by the SQL standard.
> Example:
> {code:java}
> UNIQUE (SELECT publishedIn FROM Book
>             WHERE authorId = 3)
> NOT UNIQUE (SELECT publishedIn FROM BOOK
>             WHERE authorId = 3)
> {code}
> {{UNIQUE}} returns {{FALSE}} if the query returns two or more rows that do 
> not include NULL values and are equal. Like {{EXISTS}}, it never returns 
> {{UNKNOWN}}.
> More details at 
> [JOOQ|https://www.jooq.org/doc/3.0/manual/sql-building/conditional-expressions/unique-predicate/].
> This Issue support the UNIQUE predicate by set {{isExpand}} to return false, 
> so sub-queries are converted to {{RexSubQuery}} expressions and handled later 
> by {{SubQueryRemoveRule}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to