Commit 500cf66d authored by Tom Lane's avatar Tom Lane

Add some regression test cases for denormalized float8 input.

This was submitted with the previous patch, but I'm committing it
separately to ease backing it out if these results prove too unportable.

Marti Raudsepp, after a proposal by Jeroen Vermeulen
parent c318aeed
...@@ -24,6 +24,25 @@ SELECT '-10e-400'::float8; ...@@ -24,6 +24,25 @@ SELECT '-10e-400'::float8;
ERROR: "-10e-400" is out of range for type double precision ERROR: "-10e-400" is out of range for type double precision
LINE 1: SELECT '-10e-400'::float8; LINE 1: SELECT '-10e-400'::float8;
^ ^
-- test whether denormalized values are accepted
SELECT '4.95e-324'::float8 < '1.49e-323'::float8;
?column?
----------
t
(1 row)
SELECT '4.95e-324'::float8 > '0'::float8;
?column?
----------
t
(1 row)
SELECT substr('-4.95e-324'::float8::text, 1, 4);
substr
--------
-4.9
(1 row)
-- bad input -- bad input
INSERT INTO FLOAT8_TBL(f1) VALUES (''); INSERT INTO FLOAT8_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type double precision: "" ERROR: invalid input syntax for type double precision: ""
......
...@@ -24,6 +24,25 @@ SELECT '10e-400'::float8; ...@@ -24,6 +24,25 @@ SELECT '10e-400'::float8;
SELECT '-10e-400'::float8; SELECT '-10e-400'::float8;
float8 float8
-- test whether denormalized values are accepted
SELECT '4.95e-324'::float8 < '1.49e-323'::float8;
?column?
----------
t
(1 row)
SELECT '4.95e-324'::float8 > '0'::float8;
?column?
----------
t
(1 row)
SELECT substr('-4.95e-324'::float8::text, 1, 4);
substr
--------
-4.9
(1 row)
-------- --------
-0 -0
(1 row) (1 row)
......
...@@ -24,6 +24,25 @@ SELECT '10e-400'::float8; ...@@ -24,6 +24,25 @@ SELECT '10e-400'::float8;
SELECT '-10e-400'::float8; SELECT '-10e-400'::float8;
float8 float8
-- test whether denormalized values are accepted
SELECT '4.95e-324'::float8 < '1.49e-323'::float8;
?column?
----------
t
(1 row)
SELECT '4.95e-324'::float8 > '0'::float8;
?column?
----------
t
(1 row)
SELECT substr('-4.95e-324'::float8::text, 1, 4);
substr
--------
-4.9
(1 row)
-------- --------
0 0
(1 row) (1 row)
......
...@@ -24,6 +24,25 @@ SELECT '-10e-400'::float8; ...@@ -24,6 +24,25 @@ SELECT '-10e-400'::float8;
ERROR: "-10e-400" is out of range for type double precision ERROR: "-10e-400" is out of range for type double precision
LINE 1: SELECT '-10e-400'::float8; LINE 1: SELECT '-10e-400'::float8;
^ ^
-- test whether denormalized values are accepted
SELECT '4.95e-324'::float8 < '1.49e-323'::float8;
?column?
----------
t
(1 row)
SELECT '4.95e-324'::float8 > '0'::float8;
?column?
----------
t
(1 row)
SELECT substr('-4.95e-324'::float8::text, 1, 4);
substr
--------
-4.9
(1 row)
-- bad input -- bad input
INSERT INTO FLOAT8_TBL(f1) VALUES (''); INSERT INTO FLOAT8_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type double precision: "" ERROR: invalid input syntax for type double precision: ""
......
...@@ -16,6 +16,11 @@ SELECT '-10e400'::float8; ...@@ -16,6 +16,11 @@ SELECT '-10e400'::float8;
SELECT '10e-400'::float8; SELECT '10e-400'::float8;
SELECT '-10e-400'::float8; SELECT '-10e-400'::float8;
-- test whether denormalized values are accepted
SELECT '4.95e-324'::float8 < '1.49e-323'::float8;
SELECT '4.95e-324'::float8 > '0'::float8;
SELECT substr('-4.95e-324'::float8::text, 1, 4);
-- bad input -- bad input
INSERT INTO FLOAT8_TBL(f1) VALUES (''); INSERT INTO FLOAT8_TBL(f1) VALUES ('');
INSERT INTO FLOAT8_TBL(f1) VALUES (' '); INSERT INTO FLOAT8_TBL(f1) VALUES (' ');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment