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

Taewoo Kim commented on ASTERIXDB-2372:
---------------------------------------

id = 1.0 is a valid predicate for an equality search on an integer index. So, 
id >= 1 and id <=1 will return one result (id = 1).

 

But, id = 1.3 is not a valid predicate. However, id >=1 and id <=2 return two 
results (id =1 and id = 2). Thus, we need to remove the inclusiveness option.

 

So, in short, if ceil( x ) = floor ( x ), we maintain the current framework (id 
>= floor( x ) and id <= ceil ( x )). If not, we remove the inclusiveness option.

> Providing a float value predicate to an integer primary index does not work 
> as expected.
> ----------------------------------------------------------------------------------------
>
>                 Key: ASTERIXDB-2372
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2372
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Taewoo Kim
>            Assignee: Taewoo Kim
>            Priority: Critical
>
> If we have an integer primary index and feed a float value predicate that is 
> not an integer such as 1.3, the search result is not correct.
>  
> The DDL and DML
> {code:java}
> drop dataverse test if exists;
> create dataverse test;
> use test;
> create type MyRecord as closed {
>   id: int64
> };
> create dataset MyData(MyRecord) primary key id;
> insert into MyData({"id":1});
> insert into MyData({"id":2});
> select * from MyData where id = 1.3;{code}
>  
> The result should be empty. But, it returns 1 and 2 as the result.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to