asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Taewoo Kim (JIRA)" <>
Subject [jira] [Commented] (ASTERIXDB-1234) Currently allowing (and botching) non-atomic field comparisons
Date Thu, 24 Dec 2015 20:03:49 GMT


Taewoo Kim commented on ASTERIXDB-1234:

It looks like we need to choose the second method - providing comparabilityCheck() since we
can't have total ordering if we prevent non-atomic field comparisons in the universal comparator.
That is, the universal comparator needs to know whether the caller needs to have an arbitrary
order based on byte-by-byte or have "non-comparable" for non-atomic fields.  And this involves
an interface change. Thus, the second method will be more appropriate. We can have a discussion
after I dig more. 

> Currently allowing (and botching) non-atomic field comparisons
> --------------------------------------------------------------
>                 Key: ASTERIXDB-1234
>                 URL:
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: AsterixDB, Optimizer, Translator - AQL
>            Reporter: Michael J. Carey
>            Assignee: Taewoo Kim
> In the ADM/AQL 101 demo, the following query "works" and should not:
> use dataverse TinySocial;
> for $t1 in dataset TweetMessages
> for $t2 in dataset TweetMessages
> where $t1.referred-topics = $t2.referred-topics
> return {
>   "topics1": $t1.referred-topics,
>   "topics2":$t2.referred-topics
> }
> Notice that this is comparing two non-atomic (unordered list) fields.  Eventually we
should support deep equality for = and return null for <, etc.
> Currently the system thinks the fields are comparable because they have the same type
tag - and then it does a bytewise comparison, which is wrong.
> For now we should disallow (return null) comparisons of records or lists;
> in the future we should support deep equality.

This message was sent by Atlassian JIRA

View raw message