jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chetan Mehrotra (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (OAK-6390) With FastQuerySize, getSize() returns -1 if there are exactly 21 rows
Date Mon, 03 Jul 2017 08:36:00 GMT

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

Mime
View raw message