19.01.2018 04:10, Adriano dos Santos Fernandes wrote:
Most of types generates reversible sort keys, so only key is written in
sort blocks and data is regenerated from it.
INTL strings (IS_INTL_DATA) does not generate reversible sort keys, so
original data is also written.
I think there is an unnecessary pass for them, there is no need to
regenerate data from the key in this case (when direction == 0).
Agreed.
See attached patch.
Is it correct?
I'd check just for IS_INTL_DATA(), without SKD* conditions. This macro
already checks for strings inside. And AFAIU, DECFLOAT should also be
handled this way:
if (IS_INTL_DATA(desc) || desc->isDecFloat())
{
sort_key->skd_flags |= SKD_separate_data;
}
Dmitry
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel