You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Firebird currently allows creation of float columns with a precision that exceeds the actual implementation precision. A double precision has about 16 decimal digits precision, and this is the maximum supported by Firebird. However it is possible to create a float(100) (which still results in a double precision).
The SQL Standard (6.1 <data type>) says:
"""
29) FLOAT specifies the data type approximate numeric, with binary precision equal to or greater than the value of the specified <precision>. The maximum value of <precision> is implementation-defined. <precision> shall not be greater than this value.
"""
Given we do not provide a precision larger than 16, the precision should be capped at 16, attempts to create a float(p) with p > 16 should yield an error.
The text was updated successfully, but these errors were encountered:
Note that given the specification of "binary precision", the precision should actually specify the number significand bits, so we should actually map precision 1-24 on REAL, and 25-53 on DOUBLE PRECISION, but changing that would severely break backwards compatibility.
Submitted by: @mrotteveel
Is replaced by CORE6109
Firebird currently allows creation of float columns with a precision that exceeds the actual implementation precision. A double precision has about 16 decimal digits precision, and this is the maximum supported by Firebird. However it is possible to create a float(100) (which still results in a double precision).
The SQL Standard (6.1 <data type>) says:
"""
29) FLOAT specifies the data type approximate numeric, with binary precision equal to or greater than the value of the specified <precision>. The maximum value of <precision> is implementation-defined. <precision> shall not be greater than this value.
"""
Given we do not provide a precision larger than 16, the precision should be capped at 16, attempts to create a float(p) with p > 16 should yield an error.
The text was updated successfully, but these errors were encountered: