Wrong boundary for minimum value for BIGINT/DECIMAL(18)
-------------------------------------------------------
Key: CORE-4258
URL: http://tracker.firebirdsql.org/browse/CORE-4258
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 3.0 Alpha 1
Environment: Firebird 3.0.0.30717 (64 bit Windows) (also reproducible
with and 3.0.0.30708)
Reporter: Mark Rotteveel
A test in Jaybird creates a table with a DECIMAL(18) field and inserts the
maximum and minimum values into this table (and retrieves this).
The minimum value for a BIGINT / DECIMAL(18) should be -2^63 (or
0x8000000000000000 or -9223372036854775808), but when inserting this Firebird 3
throws error 335544779. Integer overflow. The result of an integer operation
caused the most significant bit of the result to carry.
Add 1 to the value and it works, so it looks like it is a boundary issue (it
seems to use -1 * maximum value (2^63 - 1) as the boundary). The problem also
occurs with a BIGINT.
This works correctly in Firebird 2.5 and in Firebird 3 Alpha 1 (build 305666)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel