On 01/02/2018 14:04, Mark Rotteveel wrote:
> On 1-2-2018 16:30, Alex Peshkoff via Firebird-devel wrote:
>>> Point taken, but my suggestion was more that we now don't utilize
>>> the Decimal128 to its fullest for decimal, and users of the direct
>>> API now need to handle decfloat and decimal(19+, x) in a very
>>> different manner even though the underlying datatype is the same
>>> (and provides the convenient feature to communicate the scale inline).
>>
>> Damned, I still do not catch where is the problem. I reviewed ISQL
>> code - we have DecFixed interface that provides conversion to/from
>> strings and BCD. And it's implementation is less that once screen of
>> a code.
>
> Let me try to rephrase: for DECFLOAT we use Decimal128 which includes
> the correct scale, and for DECIMAL(19+) we use Decimal128 with a scale
> of zero, and the correct scale communicated externally, which then
> needs to be applied separately.
>
> That to me as a consumer of the API is an inconsistency (now having
> implemented both for the wire protocol and legacy API), and it bugs me.

If I understand the problem (*) correct, I'm with Mark...

*

12.34 and 1234 with the new type, the first value with (, 2) and the
last with (, 0) decimals types are returned with the same bytes, and the
user must known the scale to convert the bytes to 12.34 and 1234
respectively.


Adriano


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

Reply via email to