[PATCH] fdo#44025: repair dbaccess::ORowSetCache::isLast() after matrix (re)fill
Lionel Elie Mamane
lionel at mamane.lu
Thu Jan 19 11:29:36 PST 2012
After filling matrix, *do* check if we hit the last row and update
m_nRowCount accordingly. Else, a subsequent isLast() will return true
on the last row of the prefetch window, even if it is not the last row
of the data. Thus the algorithm:
while ( ! pResultSet->isLast() )
{
//do stuff
pResultSet->next()
}
will stop too soon, which is exactly the symptom in fdo#44025.
---
dbaccess/source/core/api/RowSetCache.cxx | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index 49f6368..272d260 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -803,7 +803,6 @@ sal_Bool ORowSetCache::fillMatrix(sal_Int32& _nNewStartPos,sal_Int32 _nNewEndPos
}
// we have to read one row forward to ensure that we know when we are on last row
// but only when we don't know it already
- /*
if(!m_bRowCountFinal)
{
if(!m_pCacheSet->next())
@@ -816,7 +815,6 @@ sal_Bool ORowSetCache::fillMatrix(sal_Int32& _nNewStartPos,sal_Int32 _nNewEndPos
m_nRowCount = std::max(i,m_nRowCount);
}
- */
return bCheck;
}
--
1.7.7.3
--d6Gm4EdcadzBjdND--
More information about the LibreOffice
mailing list