Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Hi Winfried,

On Tuesday, 2018-05-08 07:46:46 +0000, Winfried Donkers wrote:

I found what causes the problem of bug tdf117443, but I don't understand why the code is as it is 
now and therefore I am reluctant to change it.
In sc/source/core/data/dociter.cxx:ScQueryValueIterator::GetThis()

ScQueryCellIterator::GetThis() that is..

there is a loop in lines 1132-1143 that is entered as soon as the first column of the range has 
been processed and a new column is started.
The loop skips empty columns, which is annoying when you want to count empty cells.

Do you know/remember if this code is only there to improve efficiency of the iterator?

Yes, because for all other queries than empty cells an empty column
doesn't need to be handled.

Would it be a good idea to add a boolean mbDontSkipEmptyCols to
ScQueryValueIterator which is only set to true for e.g. ScCountIf
(ideally only when empty cell is part of the query, but I don't know
if that can be achieved simply).?

It shouldn't need another parameter, just evaluating also
rItem.mbMatchEmpty there should be sufficient, so

            while (!rItem.mbMatchEmpty && pCol->IsEmptyData());

(untested)

  Eike

-- 
LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A
Care about Free Software, support the FSFE https://fsfe.org/support/?erack

Attachment: signature.asc
Description: PGP signature


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.