13.07.2019 12:10, Mark Rotteveel wrote:
I propose that for Firebird 4 we bring this inline with the standard:
1. Change and document FLOAT(p) to apply precision in binary digits,
that is:
- p in [1, 24] is a 32 bit single precision
- p in [25, 53] is a 64 bit double precision
- p < 1 and p > 53 are an error (in the future we could consider adding
support for higher precision formats like binary128 (p in [54, 113]) and
binary256 (p in [114, 237]))
2. Document that FLOAT (without precision) is a synonym for FLOAT(24).
3. Document DOUBLE PRECISION as a synonym of FLOAT(53)
4. Document REAL as a synonym of FLOAT(24)
5. Document LONG FLOAT as a synonym of FLOAT(53)
This change will break backwards compatibility for FLOAT(p), but as the
precision syntax for FLOAT was never documented, I think that is an
acceptable tradeoff to gain better standard compliance.
As far as I can tell, technically this change would be limited to
parse.y (float_type).
Are there any objections to such a change? I'm willing to provide a pull
request for this.
No objections from my side, (possible) compatibility issues sound
acceptable for a major release.
Dmitry
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel