On 2022-02-15 20:08, Vlad Khorsun wrote:
15.02.2022 20:32, Mark Rotteveel wrote:
On 2022-02-15 16:20, Vlad Khorsun wrote:
I'd vote to remove idx_numeric2 in favour of idx_decimal and look
how to improve
Decimal128::makeIndexKey() performance. For example, it stores every
3 decimal
digits into 10 bits using relatively complex (computationally)
algorithm with
shifts and multiplications. Storing every digit in 4 bits will use 2
bits per 3
digits more but should save come CPU circles, I believe.
But that is the storage format of Decimal128 (DECFLOAT(34)).
No. It looks more like packed BCD. DECFLOAT uses a more complex
internals,
it is not BCD inside.
Decimal128 uses densely packed BCD (with some oddities to encode sign,
exponent and first digit).
Mark
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel