[ 
https://issues.apache.org/jira/browse/OAK-6390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chetan Mehrotra resolved OAK-6390.
----------------------------------
    Resolution: Duplicate

> With FastQuerySize, getSize() returns -1 if there are exactly 21 rows
> ---------------------------------------------------------------------
>
>                 Key: OAK-6390
>                 URL: https://issues.apache.org/jira/browse/OAK-6390
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: query
>    Affects Versions: 1.8
>            Reporter: Thomas Mueller
>
> If FastQuerySize is enabled, and the query result has exactly 21 rows, then 
> getSize() returns -1. With 20 or 22 rows, the correct value is returned.
> Comment:
> One can not assume getSize() _always_ returns a value larger than 0. 
> Sometimes, getSize() returns too many, it could also return too few; it is 
> just an estimate. The loop used to read the rows should _only_ have 
> "it.hasNext() && i < maxCount" as a condition. With maxCount for example 30. 
> If the number of rows read is smaller than 30, then that's the real row 
> count. If it's 30, then you can use getSize() as an estimation. That can 
> still be -1 for "unknown", even with FastQuerySize enabled.
> But it's true that -1 is unexpected in this case.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to