[
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)