5 -- Build a table for testing
6 -- (This temporarily hides the table created in test_setup.sql)
8 CREATE TEMP TABLE FLOAT8_TBL(f1 float8);
9 INSERT INTO FLOAT8_TBL(f1) VALUES (' 0.0 ');
10 INSERT INTO FLOAT8_TBL(f1) VALUES ('1004.30 ');
11 INSERT INTO FLOAT8_TBL(f1) VALUES (' -34.84');
12 INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200');
13 INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200');
14 -- test for underflow and overflow handling
15 SELECT '10e400'::float8;
16 ERROR: "10e400" is out of range for type double precision
17 LINE 1: SELECT '10e400'::float8;
19 SELECT '-10e400'::float8;
20 ERROR: "-10e400" is out of range for type double precision
21 LINE 1: SELECT '-10e400'::float8;
23 SELECT '10e-400'::float8;
24 ERROR: "10e-400" is out of range for type double precision
25 LINE 1: SELECT '10e-400'::float8;
27 SELECT '-10e-400'::float8;
28 ERROR: "-10e-400" is out of range for type double precision
29 LINE 1: SELECT '-10e-400'::float8;
31 -- test smallest normalized input
32 SELECT float8send('2.2250738585072014E-308'::float8);
39 INSERT INTO FLOAT8_TBL(f1) VALUES ('');
40 ERROR: invalid input syntax for type double precision: ""
41 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('');
43 INSERT INTO FLOAT8_TBL(f1) VALUES (' ');
44 ERROR: invalid input syntax for type double precision: " "
45 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES (' ');
47 INSERT INTO FLOAT8_TBL(f1) VALUES ('xyz');
48 ERROR: invalid input syntax for type double precision: "xyz"
49 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('xyz');
51 INSERT INTO FLOAT8_TBL(f1) VALUES ('5.0.0');
52 ERROR: invalid input syntax for type double precision: "5.0.0"
53 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('5.0.0');
55 INSERT INTO FLOAT8_TBL(f1) VALUES ('5 . 0');
56 ERROR: invalid input syntax for type double precision: "5 . 0"
57 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('5 . 0');
59 INSERT INTO FLOAT8_TBL(f1) VALUES ('5. 0');
60 ERROR: invalid input syntax for type double precision: "5. 0"
61 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('5. 0');
63 INSERT INTO FLOAT8_TBL(f1) VALUES (' - 3');
64 ERROR: invalid input syntax for type double precision: " - 3"
65 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES (' - 3');
67 INSERT INTO FLOAT8_TBL(f1) VALUES ('123 5');
68 ERROR: invalid input syntax for type double precision: "123 5"
69 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('123 5');
71 -- Also try it with non-error-throwing API
72 SELECT pg_input_is_valid('34.5', 'float8');
78 SELECT pg_input_is_valid('xyz', 'float8');
84 SELECT pg_input_is_valid('1e4000', 'float8');
90 SELECT * FROM pg_input_error_info('1e4000', 'float8');
91 message | detail | hint | sql_error_code
92 ----------------------------------------------------+--------+------+----------------
93 "1e4000" is out of range for type double precision | | | 22003
103 SELECT 'nan'::float8;
109 SELECT ' NAN '::float8;
115 SELECT 'infinity'::float8;
121 SELECT ' -INFINiTY '::float8;
127 -- bad special inputs
128 SELECT 'N A N'::float8;
129 ERROR: invalid input syntax for type double precision: "N A N"
130 LINE 1: SELECT 'N A N'::float8;
132 SELECT 'NaN x'::float8;
133 ERROR: invalid input syntax for type double precision: "NaN x"
134 LINE 1: SELECT 'NaN x'::float8;
136 SELECT ' INFINITY x'::float8;
137 ERROR: invalid input syntax for type double precision: " INFINITY x"
138 LINE 1: SELECT ' INFINITY x'::float8;
140 SELECT 'Infinity'::float8 + 100.0;
146 SELECT 'Infinity'::float8 / 'Infinity'::float8;
152 SELECT '42'::float8 / 'Infinity'::float8;
158 SELECT 'nan'::float8 / 'nan'::float8;
164 SELECT 'nan'::float8 / '0'::float8;
170 SELECT 'nan'::numeric::float8;
176 SELECT * FROM FLOAT8_TBL;
178 ----------------------
186 SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
188 ----------------------
195 SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
201 SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
203 ----------------------
209 SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
211 ----------------------
217 SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
219 ----------------------
226 SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
228 ----------------------
235 SELECT f.f1, f.f1 * '-10' AS x
239 ----------------------+-----------------------
241 1.2345678901234e+200 | -1.2345678901234e+201
242 1.2345678901234e-200 | -1.2345678901234e-199
245 SELECT f.f1, f.f1 + '-10' AS x
249 ----------------------+----------------------
251 1.2345678901234e+200 | 1.2345678901234e+200
252 1.2345678901234e-200 | -10
255 SELECT f.f1, f.f1 / '-10' AS x
259 ----------------------+-----------------------
260 1004.3 | -100.42999999999999
261 1.2345678901234e+200 | -1.2345678901234e+199
262 1.2345678901234e-200 | -1.2345678901234e-201
265 SELECT f.f1, f.f1 - '-10' AS x
269 ----------------------+----------------------
271 1.2345678901234e+200 | 1.2345678901234e+200
272 1.2345678901234e-200 | 10
275 SELECT f.f1 ^ '2.0' AS square_f1
276 FROM FLOAT8_TBL f where f.f1 = '1004.3';
283 SELECT f.f1, @f.f1 AS abs_f1
286 ----------------------+----------------------
290 1.2345678901234e+200 | 1.2345678901234e+200
291 1.2345678901234e-200 | 1.2345678901234e-200
295 SELECT f.f1, trunc(f.f1) AS trunc_f1
298 ----------------------+----------------------
302 1.2345678901234e+200 | 1.2345678901234e+200
303 1.2345678901234e-200 | 0
307 SELECT f.f1, round(f.f1) AS round_f1
310 ----------------------+----------------------
314 1.2345678901234e+200 | 1.2345678901234e+200
315 1.2345678901234e-200 | 0
319 select ceil(f1) as ceil_f1 from float8_tbl f;
321 ----------------------
329 select ceiling(f1) as ceiling_f1 from float8_tbl f;
331 ----------------------
340 select floor(f1) as floor_f1 from float8_tbl f;
342 ----------------------
351 select sign(f1) as sign_f1 from float8_tbl f;
361 -- avoid bit-exact output here because operations may not be bit-exact.
362 SET extra_float_digits = 0;
364 SELECT sqrt(float8 '64') AS eight;
370 SELECT |/ float8 '64' AS eight;
376 SELECT f.f1, |/f.f1 AS sqrt_f1
380 ----------------------+-----------------------
381 1004.3 | 31.6906926399535
382 1.2345678901234e+200 | 1.11111110611109e+100
383 1.2345678901234e-200 | 1.11111110611109e-100
387 SELECT power(float8 '144', float8 '0.5');
393 SELECT power(float8 'NaN', float8 '0.5');
399 SELECT power(float8 '144', float8 'NaN');
405 SELECT power(float8 'NaN', float8 'NaN');
411 SELECT power(float8 '-1', float8 'NaN');
417 SELECT power(float8 '1', float8 'NaN');
423 SELECT power(float8 'NaN', float8 '0');
429 SELECT power(float8 'inf', float8 '0');
435 SELECT power(float8 '-inf', float8 '0');
441 SELECT power(float8 '0', float8 'inf');
447 SELECT power(float8 '0', float8 '-inf');
448 ERROR: zero raised to a negative power is undefined
449 SELECT power(float8 '1', float8 'inf');
455 SELECT power(float8 '1', float8 '-inf');
461 SELECT power(float8 '-1', float8 'inf');
467 SELECT power(float8 '-1', float8 '-inf');
473 SELECT power(float8 '0.1', float8 'inf');
479 SELECT power(float8 '-0.1', float8 'inf');
485 SELECT power(float8 '1.1', float8 'inf');
491 SELECT power(float8 '-1.1', float8 'inf');
497 SELECT power(float8 '0.1', float8 '-inf');
503 SELECT power(float8 '-0.1', float8 '-inf');
509 SELECT power(float8 '1.1', float8 '-inf');
515 SELECT power(float8 '-1.1', float8 '-inf');
521 SELECT power(float8 'inf', float8 '-2');
527 SELECT power(float8 'inf', float8 '2');
533 SELECT power(float8 'inf', float8 'inf');
539 SELECT power(float8 'inf', float8 '-inf');
545 -- Intel's icc misoptimizes the code that controls the sign of this result,
546 -- even with -mp1. Pending a fix for that, only test for "is it zero".
547 SELECT power(float8 '-inf', float8 '-2') = '0';
553 SELECT power(float8 '-inf', float8 '-3');
559 SELECT power(float8 '-inf', float8 '2');
565 SELECT power(float8 '-inf', float8 '3');
571 SELECT power(float8 '-inf', float8 '3.5');
572 ERROR: a negative number raised to a non-integer power yields a complex result
573 SELECT power(float8 '-inf', float8 'inf');
579 SELECT power(float8 '-inf', float8 '-inf');
585 -- take exp of ln(f.f1)
586 SELECT f.f1, exp(ln(f.f1)) AS exp_ln_f1
590 ----------------------+-----------------------
592 1.2345678901234e+200 | 1.23456789012338e+200
593 1.2345678901234e-200 | 1.23456789012339e-200
596 -- check edge cases for exp
597 SELECT exp('inf'::float8), exp('-inf'::float8), exp('nan'::float8);
599 ----------+-----+-----
604 SELECT ||/ float8 '27' AS three;
610 SELECT f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
612 ----------------------+----------------------
614 1004.3 | 10.014312837827
615 -34.84 | -3.26607421344208
616 1.2345678901234e+200 | 4.97933859234765e+66
617 1.2345678901234e-200 | 2.3112042409018e-67
620 SELECT * FROM FLOAT8_TBL;
622 ----------------------
631 SET f1 = FLOAT8_TBL.f1 * '-1'
632 WHERE FLOAT8_TBL.f1 > '0.0';
633 SELECT f.f1 * '1e200' from FLOAT8_TBL f;
634 ERROR: value out of range: overflow
635 SELECT f.f1 ^ '1e200' from FLOAT8_TBL f;
636 ERROR: value out of range: overflow
637 SELECT 0 ^ 0 + 0 ^ 1 + 0 ^ 0.0 + 0 ^ 0.5;
643 SELECT ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
644 ERROR: cannot take logarithm of zero
645 SELECT ln(f.f1) from FLOAT8_TBL f where f.f1 < '0.0' ;
646 ERROR: cannot take logarithm of a negative number
647 SELECT exp(f.f1) from FLOAT8_TBL f;
648 ERROR: value out of range: underflow
649 SELECT f.f1 / '0.0' from FLOAT8_TBL f;
650 ERROR: division by zero
651 SELECT * FROM FLOAT8_TBL;
653 -----------------------
657 -1.2345678901234e+200
658 -1.2345678901234e-200
661 -- hyperbolic functions
662 -- we run these with extra_float_digits = 0 too, since different platforms
663 -- tend to produce results that vary in the last place.
664 SELECT sinh(float8 '1');
670 SELECT cosh(float8 '1');
676 SELECT tanh(float8 '1');
682 SELECT asinh(float8 '1');
688 SELECT acosh(float8 '2');
694 SELECT atanh(float8 '0.5');
700 -- test Inf/NaN cases for hyperbolic functions
701 SELECT sinh(float8 'infinity');
707 SELECT sinh(float8 '-infinity');
713 SELECT sinh(float8 'nan');
719 SELECT cosh(float8 'infinity');
725 SELECT cosh(float8 '-infinity');
731 SELECT cosh(float8 'nan');
737 SELECT tanh(float8 'infinity');
743 SELECT tanh(float8 '-infinity');
749 SELECT tanh(float8 'nan');
755 SELECT asinh(float8 'infinity');
761 SELECT asinh(float8 '-infinity');
767 SELECT asinh(float8 'nan');
773 -- acosh(Inf) should be Inf, but some mingw versions produce NaN, so skip test
774 -- SELECT acosh(float8 'infinity');
775 SELECT acosh(float8 '-infinity');
776 ERROR: input is out of range
777 SELECT acosh(float8 'nan');
783 SELECT atanh(float8 'infinity');
784 ERROR: input is out of range
785 SELECT atanh(float8 '-infinity');
786 ERROR: input is out of range
787 SELECT atanh(float8 'nan');
794 -- we run these with extra_float_digits = -1, to get consistently rounded
795 -- results on all platforms.
796 SET extra_float_digits = -1;
800 FROM (VALUES (float8 '-infinity'),
801 (-28), (-6), (-3.4), (-2.1), (-1.1), (-0.45),
802 (-1.2e-9), (-2.3e-13), (-1.2e-17), (0),
803 (1.2e-17), (2.3e-13), (1.2e-9),
804 (0.45), (1.1), (2.1), (3.4), (6), (28),
805 (float8 'infinity'), (float8 'nan')) AS t(x);
807 -----------+----------------------+---------------------
811 -3.4 | -0.99999847800664 | 1.9999984780066
812 -2.1 | -0.99702053334367 | 1.9970205333437
813 -1.1 | -0.88020506957408 | 1.8802050695741
814 -0.45 | -0.47548171978692 | 1.4754817197869
815 -1.2e-09 | -1.3540550005146e-09 | 1.0000000013541
816 -2.3e-13 | -2.5952720843197e-13 | 1.0000000000003
817 -1.2e-17 | -1.3540550005146e-17 | 1
819 1.2e-17 | 1.3540550005146e-17 | 1
820 2.3e-13 | 2.5952720843197e-13 | 0.99999999999974
821 1.2e-09 | 1.3540550005146e-09 | 0.99999999864595
822 0.45 | 0.47548171978692 | 0.52451828021308
823 1.1 | 0.88020506957408 | 0.11979493042592
824 2.1 | 0.99702053334367 | 0.002979466656333
825 3.4 | 0.99999847800664 | 1.5219933628623e-06
826 6 | 1 | 2.1519736712499e-17
832 RESET extra_float_digits;
833 -- test for over- and underflow
834 INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
835 ERROR: "10e400" is out of range for type double precision
836 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
838 INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
839 ERROR: "-10e400" is out of range for type double precision
840 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
842 INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
843 ERROR: "10e-400" is out of range for type double precision
844 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
846 INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
847 ERROR: "-10e-400" is out of range for type double precision
848 LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
850 DROP TABLE FLOAT8_TBL;
851 -- Check the float8 values exported for use by other tests
852 SELECT * FROM FLOAT8_TBL;
854 -----------------------
858 -1.2345678901234e+200
859 -1.2345678901234e-200
862 -- test edge-case coercions to integer
863 SELECT '32767.4'::float8::int2;
869 SELECT '32767.6'::float8::int2;
870 ERROR: smallint out of range
871 SELECT '-32768.4'::float8::int2;
877 SELECT '-32768.6'::float8::int2;
878 ERROR: smallint out of range
879 SELECT '2147483647.4'::float8::int4;
885 SELECT '2147483647.6'::float8::int4;
886 ERROR: integer out of range
887 SELECT '-2147483648.4'::float8::int4;
893 SELECT '-2147483648.6'::float8::int4;
894 ERROR: integer out of range
895 SELECT '9223372036854773760'::float8::int8;
897 ---------------------
901 SELECT '9223372036854775807'::float8::int8;
902 ERROR: bigint out of range
903 SELECT '-9223372036854775808.5'::float8::int8;
905 ----------------------
909 SELECT '-9223372036854780000'::float8::int8;
910 ERROR: bigint out of range
911 -- test exact cases for trigonometric functions in degrees
914 sind(x) IN (-1,-0.5,0,0.5,1) AS sind_exact
915 FROM (VALUES (0), (30), (90), (150), (180),
916 (210), (270), (330), (360)) AS t(x);
917 x | sind | sind_exact
918 -----+------+------------
932 cosd(x) IN (-1,-0.5,0,0.5,1) AS cosd_exact
933 FROM (VALUES (0), (60), (90), (120), (180),
934 (240), (270), (300), (360)) AS t(x);
935 x | cosd | cosd_exact
936 -----+------+------------
950 tand(x) IN ('-Infinity'::float8,-1,0,
951 1,'Infinity'::float8) AS tand_exact,
953 cotd(x) IN ('-Infinity'::float8,-1,0,
954 1,'Infinity'::float8) AS cotd_exact
955 FROM (VALUES (0), (45), (90), (135), (180),
956 (225), (270), (315), (360)) AS t(x);
957 x | tand | tand_exact | cotd | cotd_exact
958 -----+-----------+------------+-----------+------------
959 0 | 0 | t | Infinity | t
961 90 | Infinity | t | 0 | t
962 135 | -1 | t | -1 | t
963 180 | 0 | t | -Infinity | t
965 270 | -Infinity | t | 0 | t
966 315 | -1 | t | -1 | t
967 360 | 0 | t | Infinity | t
972 asind(x) IN (-90,-30,0,30,90) AS asind_exact,
974 acosd(x) IN (0,60,90,120,180) AS acosd_exact
975 FROM (VALUES (-1), (-0.5), (0), (0.5), (1)) AS t(x);
976 x | asind | asind_exact | acosd | acosd_exact
977 ------+-------+-------------+-------+-------------
978 -1 | -90 | t | 180 | t
979 -0.5 | -30 | t | 120 | t
981 0.5 | 30 | t | 60 | t
987 atand(x) IN (-90,-45,0,45,90) AS atand_exact
988 FROM (VALUES ('-Infinity'::float8), (-1), (0), (1),
989 ('Infinity'::float8)) AS t(x);
990 x | atand | atand_exact
991 -----------+-------+-------------
1001 atan2d(y, x) IN (-90,0,90,180) AS atan2d_exact
1002 FROM (SELECT 10*cosd(a), 10*sind(a)
1003 FROM generate_series(0, 360, 90) AS t(a)) AS t(x,y);
1004 x | y | atan2d | atan2d_exact
1005 -----+-----+--------+--------------
1014 -- test output (and round-trip safety) of various values.
1015 -- To ensure we're testing what we think we're testing, start with
1016 -- float values specified by bit patterns (as a useful side effect,
1017 -- this means we'll fail on non-IEEE platforms).
1018 create type xfloat8;
1019 create function xfloat8in(cstring) returns xfloat8 immutable strict
1020 language internal as 'int8in';
1021 NOTICE: return type xfloat8 is only a shell
1022 create function xfloat8out(xfloat8) returns cstring immutable strict
1023 language internal as 'int8out';
1024 NOTICE: argument type xfloat8 is only a shell
1025 LINE 1: create function xfloat8out(xfloat8) returns cstring immutabl...
1027 create type xfloat8 (input = xfloat8in, output = xfloat8out, like = float8);
1028 create cast (xfloat8 as float8) without function;
1029 create cast (float8 as xfloat8) without function;
1030 create cast (xfloat8 as bigint) without function;
1031 create cast (bigint as xfloat8) without function;
1032 -- float8: seeeeeee eeeeeeee eeeeeeee mmmmmmmm mmmmmmmm(x4)
1033 -- we don't care to assume the platform's strtod() handles subnormals
1034 -- correctly; those are "use at your own risk". However we do test
1035 -- subnormal outputs, since those are under our control.
1036 with testdata(bits) as (values
1038 (x'0000000000000001'),
1039 (x'0000000000000002'), (x'0000000000000003'),
1040 (x'0000000000001000'), (x'0000000100000000'),
1041 (x'0000010000000000'), (x'0000010100000000'),
1042 (x'0000400000000000'), (x'0000400100000000'),
1043 (x'0000800000000000'), (x'0000800000000001'),
1044 -- these values taken from upstream testsuite
1045 (x'00000000000f4240'),
1046 (x'00000000016e3600'),
1047 (x'0000008cdcdea440'),
1048 -- borderline between subnormal and normal
1049 (x'000ffffffffffff0'), (x'000ffffffffffff1'),
1050 (x'000ffffffffffffe'), (x'000fffffffffffff'))
1051 select float8send(flt) as ibits,
1053 from (select bits::bigint::xfloat8::float8 as flt
1057 --------------------+-------------------------
1058 \x0000000000000001 | 5e-324
1059 \x0000000000000002 | 1e-323
1060 \x0000000000000003 | 1.5e-323
1061 \x0000000000001000 | 2.0237e-320
1062 \x0000000100000000 | 2.121995791e-314
1063 \x0000010000000000 | 5.43230922487e-312
1064 \x0000010100000000 | 5.45352918278e-312
1065 \x0000400000000000 | 3.4766779039175e-310
1066 \x0000400100000000 | 3.4768901034966e-310
1067 \x0000800000000000 | 6.953355807835e-310
1068 \x0000800000000001 | 6.95335580783505e-310
1069 \x00000000000f4240 | 4.940656e-318
1070 \x00000000016e3600 | 1.18575755e-316
1071 \x0000008cdcdea440 | 2.989102097996e-312
1072 \x000ffffffffffff0 | 2.2250738585071935e-308
1073 \x000ffffffffffff1 | 2.225073858507194e-308
1074 \x000ffffffffffffe | 2.2250738585072004e-308
1075 \x000fffffffffffff | 2.225073858507201e-308
1079 with testdata(bits) as (values
1080 (x'0000000000000000'),
1081 -- smallest normal values
1082 (x'0010000000000000'), (x'0010000000000001'),
1083 (x'0010000000000002'), (x'0018000000000000'),
1085 (x'3ddb7cdfd9d7bdba'), (x'3ddb7cdfd9d7bdbb'), (x'3ddb7cdfd9d7bdbc'),
1086 (x'3e112e0be826d694'), (x'3e112e0be826d695'), (x'3e112e0be826d696'),
1087 (x'3e45798ee2308c39'), (x'3e45798ee2308c3a'), (x'3e45798ee2308c3b'),
1088 (x'3e7ad7f29abcaf47'), (x'3e7ad7f29abcaf48'), (x'3e7ad7f29abcaf49'),
1089 (x'3eb0c6f7a0b5ed8c'), (x'3eb0c6f7a0b5ed8d'), (x'3eb0c6f7a0b5ed8e'),
1090 (x'3ee4f8b588e368ef'), (x'3ee4f8b588e368f0'), (x'3ee4f8b588e368f1'),
1091 (x'3f1a36e2eb1c432c'), (x'3f1a36e2eb1c432d'), (x'3f1a36e2eb1c432e'),
1092 (x'3f50624dd2f1a9fb'), (x'3f50624dd2f1a9fc'), (x'3f50624dd2f1a9fd'),
1093 (x'3f847ae147ae147a'), (x'3f847ae147ae147b'), (x'3f847ae147ae147c'),
1094 (x'3fb9999999999999'), (x'3fb999999999999a'), (x'3fb999999999999b'),
1095 -- values very close to 1
1096 (x'3feffffffffffff0'), (x'3feffffffffffff1'), (x'3feffffffffffff2'),
1097 (x'3feffffffffffff3'), (x'3feffffffffffff4'), (x'3feffffffffffff5'),
1098 (x'3feffffffffffff6'), (x'3feffffffffffff7'), (x'3feffffffffffff8'),
1099 (x'3feffffffffffff9'), (x'3feffffffffffffa'), (x'3feffffffffffffb'),
1100 (x'3feffffffffffffc'), (x'3feffffffffffffd'), (x'3feffffffffffffe'),
1101 (x'3fefffffffffffff'),
1102 (x'3ff0000000000000'),
1103 (x'3ff0000000000001'), (x'3ff0000000000002'), (x'3ff0000000000003'),
1104 (x'3ff0000000000004'), (x'3ff0000000000005'), (x'3ff0000000000006'),
1105 (x'3ff0000000000007'), (x'3ff0000000000008'), (x'3ff0000000000009'),
1107 (x'3ff921fb54442d18'),
1108 (x'4005bf0a8b14576a'),
1109 (x'400921fb54442d18'),
1111 (x'4023ffffffffffff'), (x'4024000000000000'), (x'4024000000000001'),
1112 (x'4058ffffffffffff'), (x'4059000000000000'), (x'4059000000000001'),
1113 (x'408f3fffffffffff'), (x'408f400000000000'), (x'408f400000000001'),
1114 (x'40c387ffffffffff'), (x'40c3880000000000'), (x'40c3880000000001'),
1115 (x'40f869ffffffffff'), (x'40f86a0000000000'), (x'40f86a0000000001'),
1116 (x'412e847fffffffff'), (x'412e848000000000'), (x'412e848000000001'),
1117 (x'416312cfffffffff'), (x'416312d000000000'), (x'416312d000000001'),
1118 (x'4197d783ffffffff'), (x'4197d78400000000'), (x'4197d78400000001'),
1119 (x'41cdcd64ffffffff'), (x'41cdcd6500000000'), (x'41cdcd6500000001'),
1120 (x'4202a05f1fffffff'), (x'4202a05f20000000'), (x'4202a05f20000001'),
1121 (x'42374876e7ffffff'), (x'42374876e8000000'), (x'42374876e8000001'),
1122 (x'426d1a94a1ffffff'), (x'426d1a94a2000000'), (x'426d1a94a2000001'),
1123 (x'42a2309ce53fffff'), (x'42a2309ce5400000'), (x'42a2309ce5400001'),
1124 (x'42d6bcc41e8fffff'), (x'42d6bcc41e900000'), (x'42d6bcc41e900001'),
1125 (x'430c6bf52633ffff'), (x'430c6bf526340000'), (x'430c6bf526340001'),
1126 (x'4341c37937e07fff'), (x'4341c37937e08000'), (x'4341c37937e08001'),
1127 (x'4376345785d89fff'), (x'4376345785d8a000'), (x'4376345785d8a001'),
1128 (x'43abc16d674ec7ff'), (x'43abc16d674ec800'), (x'43abc16d674ec801'),
1129 (x'43e158e460913cff'), (x'43e158e460913d00'), (x'43e158e460913d01'),
1130 (x'4415af1d78b58c3f'), (x'4415af1d78b58c40'), (x'4415af1d78b58c41'),
1131 (x'444b1ae4d6e2ef4f'), (x'444b1ae4d6e2ef50'), (x'444b1ae4d6e2ef51'),
1132 (x'4480f0cf064dd591'), (x'4480f0cf064dd592'), (x'4480f0cf064dd593'),
1133 (x'44b52d02c7e14af5'), (x'44b52d02c7e14af6'), (x'44b52d02c7e14af7'),
1134 (x'44ea784379d99db3'), (x'44ea784379d99db4'), (x'44ea784379d99db5'),
1135 (x'45208b2a2c280290'), (x'45208b2a2c280291'), (x'45208b2a2c280292'),
1137 (x'7feffffffffffffe'), (x'7fefffffffffffff'),
1138 -- round to even tests (+ve)
1139 (x'4350000000000002'),
1140 (x'4350000000002e06'),
1141 (x'4352000000000003'),
1142 (x'4352000000000004'),
1143 (x'4358000000000003'),
1144 (x'4358000000000004'),
1145 (x'435f000000000020'),
1146 -- round to even tests (-ve)
1147 (x'c350000000000002'),
1148 (x'c350000000002e06'),
1149 (x'c352000000000003'),
1150 (x'c352000000000004'),
1151 (x'c358000000000003'),
1152 (x'c358000000000004'),
1153 (x'c35f000000000020'),
1154 -- exercise fixed-point memmoves
1155 (x'42dc12218377de66'),
1156 (x'42a674e79c5fe51f'),
1157 (x'4271f71fb04cb74c'),
1158 (x'423cbe991a145879'),
1159 (x'4206fee0e1a9e061'),
1160 (x'41d26580b487e6b4'),
1161 (x'419d6f34540ca453'),
1162 (x'41678c29dcd6e9dc'),
1163 (x'4132d687e3df217d'),
1164 (x'40fe240c9fcb68c8'),
1165 (x'40c81cd6e63c53d3'),
1166 (x'40934a4584fd0fdc'),
1167 (x'405edd3c07fb4c93'),
1168 (x'4028b0fcd32f7076'),
1169 (x'3ff3c0ca428c59f8'),
1170 -- these cases come from the upstream's testsuite
1171 -- LotsOfTrailingZeros)
1172 (x'3e60000000000000'),
1174 (x'c352bd2668e077c4'),
1175 (x'434018601510c000'),
1176 (x'43d055dc36f24000'),
1177 (x'43e052961c6f8000'),
1178 (x'3ff3c0ca2a5b1d5d'),
1180 (x'4830f0cf064dd592'),
1181 (x'4840f0cf064dd592'),
1182 (x'4850f0cf064dd592'),
1184 (x'3ff3333333333333'),
1185 (x'3ff3ae147ae147ae'),
1186 (x'3ff3be76c8b43958'),
1187 (x'3ff3c083126e978d'),
1188 (x'3ff3c0c1fc8f3238'),
1189 (x'3ff3c0c9539b8887'),
1190 (x'3ff3c0ca2a5b1d5d'),
1191 (x'3ff3c0ca4283de1b'),
1192 (x'3ff3c0ca43db770a'),
1193 (x'3ff3c0ca428abd53'),
1194 (x'3ff3c0ca428c1d2b'),
1195 (x'3ff3c0ca428c51f2'),
1196 (x'3ff3c0ca428c58fc'),
1197 (x'3ff3c0ca428c59dd'),
1198 (x'3ff3c0ca428c59f8'),
1199 (x'3ff3c0ca428c59fb'),
1201 (x'40112e0be8047a7d'),
1202 (x'40112e0be815a889'),
1203 (x'40112e0be826d695'),
1204 (x'40112e0be83804a1'),
1205 (x'40112e0be84932ad'),
1207 (x'0040000000000000'),
1208 (x'007fffffffffffff'),
1209 (x'0290000000000000'),
1210 (x'029fffffffffffff'),
1211 (x'4350000000000000'),
1212 (x'435fffffffffffff'),
1213 (x'1330000000000000'),
1214 (x'133fffffffffffff'),
1215 (x'3a6fa7161a4d6e0c')
1217 select float8send(flt) as ibits,
1219 flt::text::float8 as r_flt,
1220 float8send(flt::text::float8) as obits,
1221 float8send(flt::text::float8) = float8send(flt) as correct
1222 from (select bits::bigint::xfloat8::float8 as flt
1225 ibits | flt | r_flt | obits | correct
1226 --------------------+-------------------------+-------------------------+--------------------+---------
1227 \x0000000000000000 | 0 | 0 | \x0000000000000000 | t
1228 \x0010000000000000 | 2.2250738585072014e-308 | 2.2250738585072014e-308 | \x0010000000000000 | t
1229 \x0010000000000001 | 2.225073858507202e-308 | 2.225073858507202e-308 | \x0010000000000001 | t
1230 \x0010000000000002 | 2.2250738585072024e-308 | 2.2250738585072024e-308 | \x0010000000000002 | t
1231 \x0018000000000000 | 3.337610787760802e-308 | 3.337610787760802e-308 | \x0018000000000000 | t
1232 \x3ddb7cdfd9d7bdba | 9.999999999999999e-11 | 9.999999999999999e-11 | \x3ddb7cdfd9d7bdba | t
1233 \x3ddb7cdfd9d7bdbb | 1e-10 | 1e-10 | \x3ddb7cdfd9d7bdbb | t
1234 \x3ddb7cdfd9d7bdbc | 1.0000000000000002e-10 | 1.0000000000000002e-10 | \x3ddb7cdfd9d7bdbc | t
1235 \x3e112e0be826d694 | 9.999999999999999e-10 | 9.999999999999999e-10 | \x3e112e0be826d694 | t
1236 \x3e112e0be826d695 | 1e-09 | 1e-09 | \x3e112e0be826d695 | t
1237 \x3e112e0be826d696 | 1.0000000000000003e-09 | 1.0000000000000003e-09 | \x3e112e0be826d696 | t
1238 \x3e45798ee2308c39 | 9.999999999999999e-09 | 9.999999999999999e-09 | \x3e45798ee2308c39 | t
1239 \x3e45798ee2308c3a | 1e-08 | 1e-08 | \x3e45798ee2308c3a | t
1240 \x3e45798ee2308c3b | 1.0000000000000002e-08 | 1.0000000000000002e-08 | \x3e45798ee2308c3b | t
1241 \x3e7ad7f29abcaf47 | 9.999999999999998e-08 | 9.999999999999998e-08 | \x3e7ad7f29abcaf47 | t
1242 \x3e7ad7f29abcaf48 | 1e-07 | 1e-07 | \x3e7ad7f29abcaf48 | t
1243 \x3e7ad7f29abcaf49 | 1.0000000000000001e-07 | 1.0000000000000001e-07 | \x3e7ad7f29abcaf49 | t
1244 \x3eb0c6f7a0b5ed8c | 9.999999999999997e-07 | 9.999999999999997e-07 | \x3eb0c6f7a0b5ed8c | t
1245 \x3eb0c6f7a0b5ed8d | 1e-06 | 1e-06 | \x3eb0c6f7a0b5ed8d | t
1246 \x3eb0c6f7a0b5ed8e | 1.0000000000000002e-06 | 1.0000000000000002e-06 | \x3eb0c6f7a0b5ed8e | t
1247 \x3ee4f8b588e368ef | 9.999999999999997e-06 | 9.999999999999997e-06 | \x3ee4f8b588e368ef | t
1248 \x3ee4f8b588e368f0 | 9.999999999999999e-06 | 9.999999999999999e-06 | \x3ee4f8b588e368f0 | t
1249 \x3ee4f8b588e368f1 | 1e-05 | 1e-05 | \x3ee4f8b588e368f1 | t
1250 \x3f1a36e2eb1c432c | 9.999999999999999e-05 | 9.999999999999999e-05 | \x3f1a36e2eb1c432c | t
1251 \x3f1a36e2eb1c432d | 0.0001 | 0.0001 | \x3f1a36e2eb1c432d | t
1252 \x3f1a36e2eb1c432e | 0.00010000000000000002 | 0.00010000000000000002 | \x3f1a36e2eb1c432e | t
1253 \x3f50624dd2f1a9fb | 0.0009999999999999998 | 0.0009999999999999998 | \x3f50624dd2f1a9fb | t
1254 \x3f50624dd2f1a9fc | 0.001 | 0.001 | \x3f50624dd2f1a9fc | t
1255 \x3f50624dd2f1a9fd | 0.0010000000000000002 | 0.0010000000000000002 | \x3f50624dd2f1a9fd | t
1256 \x3f847ae147ae147a | 0.009999999999999998 | 0.009999999999999998 | \x3f847ae147ae147a | t
1257 \x3f847ae147ae147b | 0.01 | 0.01 | \x3f847ae147ae147b | t
1258 \x3f847ae147ae147c | 0.010000000000000002 | 0.010000000000000002 | \x3f847ae147ae147c | t
1259 \x3fb9999999999999 | 0.09999999999999999 | 0.09999999999999999 | \x3fb9999999999999 | t
1260 \x3fb999999999999a | 0.1 | 0.1 | \x3fb999999999999a | t
1261 \x3fb999999999999b | 0.10000000000000002 | 0.10000000000000002 | \x3fb999999999999b | t
1262 \x3feffffffffffff0 | 0.9999999999999982 | 0.9999999999999982 | \x3feffffffffffff0 | t
1263 \x3feffffffffffff1 | 0.9999999999999983 | 0.9999999999999983 | \x3feffffffffffff1 | t
1264 \x3feffffffffffff2 | 0.9999999999999984 | 0.9999999999999984 | \x3feffffffffffff2 | t
1265 \x3feffffffffffff3 | 0.9999999999999986 | 0.9999999999999986 | \x3feffffffffffff3 | t
1266 \x3feffffffffffff4 | 0.9999999999999987 | 0.9999999999999987 | \x3feffffffffffff4 | t
1267 \x3feffffffffffff5 | 0.9999999999999988 | 0.9999999999999988 | \x3feffffffffffff5 | t
1268 \x3feffffffffffff6 | 0.9999999999999989 | 0.9999999999999989 | \x3feffffffffffff6 | t
1269 \x3feffffffffffff7 | 0.999999999999999 | 0.999999999999999 | \x3feffffffffffff7 | t
1270 \x3feffffffffffff8 | 0.9999999999999991 | 0.9999999999999991 | \x3feffffffffffff8 | t
1271 \x3feffffffffffff9 | 0.9999999999999992 | 0.9999999999999992 | \x3feffffffffffff9 | t
1272 \x3feffffffffffffa | 0.9999999999999993 | 0.9999999999999993 | \x3feffffffffffffa | t
1273 \x3feffffffffffffb | 0.9999999999999994 | 0.9999999999999994 | \x3feffffffffffffb | t
1274 \x3feffffffffffffc | 0.9999999999999996 | 0.9999999999999996 | \x3feffffffffffffc | t
1275 \x3feffffffffffffd | 0.9999999999999997 | 0.9999999999999997 | \x3feffffffffffffd | t
1276 \x3feffffffffffffe | 0.9999999999999998 | 0.9999999999999998 | \x3feffffffffffffe | t
1277 \x3fefffffffffffff | 0.9999999999999999 | 0.9999999999999999 | \x3fefffffffffffff | t
1278 \x3ff0000000000000 | 1 | 1 | \x3ff0000000000000 | t
1279 \x3ff0000000000001 | 1.0000000000000002 | 1.0000000000000002 | \x3ff0000000000001 | t
1280 \x3ff0000000000002 | 1.0000000000000004 | 1.0000000000000004 | \x3ff0000000000002 | t
1281 \x3ff0000000000003 | 1.0000000000000007 | 1.0000000000000007 | \x3ff0000000000003 | t
1282 \x3ff0000000000004 | 1.0000000000000009 | 1.0000000000000009 | \x3ff0000000000004 | t
1283 \x3ff0000000000005 | 1.000000000000001 | 1.000000000000001 | \x3ff0000000000005 | t
1284 \x3ff0000000000006 | 1.0000000000000013 | 1.0000000000000013 | \x3ff0000000000006 | t
1285 \x3ff0000000000007 | 1.0000000000000016 | 1.0000000000000016 | \x3ff0000000000007 | t
1286 \x3ff0000000000008 | 1.0000000000000018 | 1.0000000000000018 | \x3ff0000000000008 | t
1287 \x3ff0000000000009 | 1.000000000000002 | 1.000000000000002 | \x3ff0000000000009 | t
1288 \x3ff921fb54442d18 | 1.5707963267948966 | 1.5707963267948966 | \x3ff921fb54442d18 | t
1289 \x4005bf0a8b14576a | 2.7182818284590455 | 2.7182818284590455 | \x4005bf0a8b14576a | t
1290 \x400921fb54442d18 | 3.141592653589793 | 3.141592653589793 | \x400921fb54442d18 | t
1291 \x4023ffffffffffff | 9.999999999999998 | 9.999999999999998 | \x4023ffffffffffff | t
1292 \x4024000000000000 | 10 | 10 | \x4024000000000000 | t
1293 \x4024000000000001 | 10.000000000000002 | 10.000000000000002 | \x4024000000000001 | t
1294 \x4058ffffffffffff | 99.99999999999999 | 99.99999999999999 | \x4058ffffffffffff | t
1295 \x4059000000000000 | 100 | 100 | \x4059000000000000 | t
1296 \x4059000000000001 | 100.00000000000001 | 100.00000000000001 | \x4059000000000001 | t
1297 \x408f3fffffffffff | 999.9999999999999 | 999.9999999999999 | \x408f3fffffffffff | t
1298 \x408f400000000000 | 1000 | 1000 | \x408f400000000000 | t
1299 \x408f400000000001 | 1000.0000000000001 | 1000.0000000000001 | \x408f400000000001 | t
1300 \x40c387ffffffffff | 9999.999999999998 | 9999.999999999998 | \x40c387ffffffffff | t
1301 \x40c3880000000000 | 10000 | 10000 | \x40c3880000000000 | t
1302 \x40c3880000000001 | 10000.000000000002 | 10000.000000000002 | \x40c3880000000001 | t
1303 \x40f869ffffffffff | 99999.99999999999 | 99999.99999999999 | \x40f869ffffffffff | t
1304 \x40f86a0000000000 | 100000 | 100000 | \x40f86a0000000000 | t
1305 \x40f86a0000000001 | 100000.00000000001 | 100000.00000000001 | \x40f86a0000000001 | t
1306 \x412e847fffffffff | 999999.9999999999 | 999999.9999999999 | \x412e847fffffffff | t
1307 \x412e848000000000 | 1000000 | 1000000 | \x412e848000000000 | t
1308 \x412e848000000001 | 1000000.0000000001 | 1000000.0000000001 | \x412e848000000001 | t
1309 \x416312cfffffffff | 9999999.999999998 | 9999999.999999998 | \x416312cfffffffff | t
1310 \x416312d000000000 | 10000000 | 10000000 | \x416312d000000000 | t
1311 \x416312d000000001 | 10000000.000000002 | 10000000.000000002 | \x416312d000000001 | t
1312 \x4197d783ffffffff | 99999999.99999999 | 99999999.99999999 | \x4197d783ffffffff | t
1313 \x4197d78400000000 | 100000000 | 100000000 | \x4197d78400000000 | t
1314 \x4197d78400000001 | 100000000.00000001 | 100000000.00000001 | \x4197d78400000001 | t
1315 \x41cdcd64ffffffff | 999999999.9999999 | 999999999.9999999 | \x41cdcd64ffffffff | t
1316 \x41cdcd6500000000 | 1000000000 | 1000000000 | \x41cdcd6500000000 | t
1317 \x41cdcd6500000001 | 1000000000.0000001 | 1000000000.0000001 | \x41cdcd6500000001 | t
1318 \x4202a05f1fffffff | 9999999999.999998 | 9999999999.999998 | \x4202a05f1fffffff | t
1319 \x4202a05f20000000 | 10000000000 | 10000000000 | \x4202a05f20000000 | t
1320 \x4202a05f20000001 | 10000000000.000002 | 10000000000.000002 | \x4202a05f20000001 | t
1321 \x42374876e7ffffff | 99999999999.99998 | 99999999999.99998 | \x42374876e7ffffff | t
1322 \x42374876e8000000 | 100000000000 | 100000000000 | \x42374876e8000000 | t
1323 \x42374876e8000001 | 100000000000.00002 | 100000000000.00002 | \x42374876e8000001 | t
1324 \x426d1a94a1ffffff | 999999999999.9999 | 999999999999.9999 | \x426d1a94a1ffffff | t
1325 \x426d1a94a2000000 | 1000000000000 | 1000000000000 | \x426d1a94a2000000 | t
1326 \x426d1a94a2000001 | 1000000000000.0001 | 1000000000000.0001 | \x426d1a94a2000001 | t
1327 \x42a2309ce53fffff | 9999999999999.998 | 9999999999999.998 | \x42a2309ce53fffff | t
1328 \x42a2309ce5400000 | 10000000000000 | 10000000000000 | \x42a2309ce5400000 | t
1329 \x42a2309ce5400001 | 10000000000000.002 | 10000000000000.002 | \x42a2309ce5400001 | t
1330 \x42d6bcc41e8fffff | 99999999999999.98 | 99999999999999.98 | \x42d6bcc41e8fffff | t
1331 \x42d6bcc41e900000 | 100000000000000 | 100000000000000 | \x42d6bcc41e900000 | t
1332 \x42d6bcc41e900001 | 100000000000000.02 | 100000000000000.02 | \x42d6bcc41e900001 | t
1333 \x430c6bf52633ffff | 999999999999999.9 | 999999999999999.9 | \x430c6bf52633ffff | t
1334 \x430c6bf526340000 | 1e+15 | 1e+15 | \x430c6bf526340000 | t
1335 \x430c6bf526340001 | 1.0000000000000001e+15 | 1.0000000000000001e+15 | \x430c6bf526340001 | t
1336 \x4341c37937e07fff | 9.999999999999998e+15 | 9.999999999999998e+15 | \x4341c37937e07fff | t
1337 \x4341c37937e08000 | 1e+16 | 1e+16 | \x4341c37937e08000 | t
1338 \x4341c37937e08001 | 1.0000000000000002e+16 | 1.0000000000000002e+16 | \x4341c37937e08001 | t
1339 \x4376345785d89fff | 9.999999999999998e+16 | 9.999999999999998e+16 | \x4376345785d89fff | t
1340 \x4376345785d8a000 | 1e+17 | 1e+17 | \x4376345785d8a000 | t
1341 \x4376345785d8a001 | 1.0000000000000002e+17 | 1.0000000000000002e+17 | \x4376345785d8a001 | t
1342 \x43abc16d674ec7ff | 9.999999999999999e+17 | 9.999999999999999e+17 | \x43abc16d674ec7ff | t
1343 \x43abc16d674ec800 | 1e+18 | 1e+18 | \x43abc16d674ec800 | t
1344 \x43abc16d674ec801 | 1.0000000000000001e+18 | 1.0000000000000001e+18 | \x43abc16d674ec801 | t
1345 \x43e158e460913cff | 9.999999999999998e+18 | 9.999999999999998e+18 | \x43e158e460913cff | t
1346 \x43e158e460913d00 | 1e+19 | 1e+19 | \x43e158e460913d00 | t
1347 \x43e158e460913d01 | 1.0000000000000002e+19 | 1.0000000000000002e+19 | \x43e158e460913d01 | t
1348 \x4415af1d78b58c3f | 9.999999999999998e+19 | 9.999999999999998e+19 | \x4415af1d78b58c3f | t
1349 \x4415af1d78b58c40 | 1e+20 | 1e+20 | \x4415af1d78b58c40 | t
1350 \x4415af1d78b58c41 | 1.0000000000000002e+20 | 1.0000000000000002e+20 | \x4415af1d78b58c41 | t
1351 \x444b1ae4d6e2ef4f | 9.999999999999999e+20 | 9.999999999999999e+20 | \x444b1ae4d6e2ef4f | t
1352 \x444b1ae4d6e2ef50 | 1e+21 | 1e+21 | \x444b1ae4d6e2ef50 | t
1353 \x444b1ae4d6e2ef51 | 1.0000000000000001e+21 | 1.0000000000000001e+21 | \x444b1ae4d6e2ef51 | t
1354 \x4480f0cf064dd591 | 9.999999999999998e+21 | 9.999999999999998e+21 | \x4480f0cf064dd591 | t
1355 \x4480f0cf064dd592 | 1e+22 | 1e+22 | \x4480f0cf064dd592 | t
1356 \x4480f0cf064dd593 | 1.0000000000000002e+22 | 1.0000000000000002e+22 | \x4480f0cf064dd593 | t
1357 \x44b52d02c7e14af5 | 9.999999999999997e+22 | 9.999999999999997e+22 | \x44b52d02c7e14af5 | t
1358 \x44b52d02c7e14af6 | 9.999999999999999e+22 | 9.999999999999999e+22 | \x44b52d02c7e14af6 | t
1359 \x44b52d02c7e14af7 | 1.0000000000000001e+23 | 1.0000000000000001e+23 | \x44b52d02c7e14af7 | t
1360 \x44ea784379d99db3 | 9.999999999999998e+23 | 9.999999999999998e+23 | \x44ea784379d99db3 | t
1361 \x44ea784379d99db4 | 1e+24 | 1e+24 | \x44ea784379d99db4 | t
1362 \x44ea784379d99db5 | 1.0000000000000001e+24 | 1.0000000000000001e+24 | \x44ea784379d99db5 | t
1363 \x45208b2a2c280290 | 9.999999999999999e+24 | 9.999999999999999e+24 | \x45208b2a2c280290 | t
1364 \x45208b2a2c280291 | 1e+25 | 1e+25 | \x45208b2a2c280291 | t
1365 \x45208b2a2c280292 | 1.0000000000000003e+25 | 1.0000000000000003e+25 | \x45208b2a2c280292 | t
1366 \x7feffffffffffffe | 1.7976931348623155e+308 | 1.7976931348623155e+308 | \x7feffffffffffffe | t
1367 \x7fefffffffffffff | 1.7976931348623157e+308 | 1.7976931348623157e+308 | \x7fefffffffffffff | t
1368 \x4350000000000002 | 1.8014398509481992e+16 | 1.8014398509481992e+16 | \x4350000000000002 | t
1369 \x4350000000002e06 | 1.8014398509529112e+16 | 1.8014398509529112e+16 | \x4350000000002e06 | t
1370 \x4352000000000003 | 2.0266198323167244e+16 | 2.0266198323167244e+16 | \x4352000000000003 | t
1371 \x4352000000000004 | 2.0266198323167248e+16 | 2.0266198323167248e+16 | \x4352000000000004 | t
1372 \x4358000000000003 | 2.7021597764222988e+16 | 2.7021597764222988e+16 | \x4358000000000003 | t
1373 \x4358000000000004 | 2.7021597764222992e+16 | 2.7021597764222992e+16 | \x4358000000000004 | t
1374 \x435f000000000020 | 3.4902897112121472e+16 | 3.4902897112121472e+16 | \x435f000000000020 | t
1375 \xc350000000000002 | -1.8014398509481992e+16 | -1.8014398509481992e+16 | \xc350000000000002 | t
1376 \xc350000000002e06 | -1.8014398509529112e+16 | -1.8014398509529112e+16 | \xc350000000002e06 | t
1377 \xc352000000000003 | -2.0266198323167244e+16 | -2.0266198323167244e+16 | \xc352000000000003 | t
1378 \xc352000000000004 | -2.0266198323167248e+16 | -2.0266198323167248e+16 | \xc352000000000004 | t
1379 \xc358000000000003 | -2.7021597764222988e+16 | -2.7021597764222988e+16 | \xc358000000000003 | t
1380 \xc358000000000004 | -2.7021597764222992e+16 | -2.7021597764222992e+16 | \xc358000000000004 | t
1381 \xc35f000000000020 | -3.4902897112121472e+16 | -3.4902897112121472e+16 | \xc35f000000000020 | t
1382 \x42dc12218377de66 | 123456789012345.6 | 123456789012345.6 | \x42dc12218377de66 | t
1383 \x42a674e79c5fe51f | 12345678901234.56 | 12345678901234.56 | \x42a674e79c5fe51f | t
1384 \x4271f71fb04cb74c | 1234567890123.456 | 1234567890123.456 | \x4271f71fb04cb74c | t
1385 \x423cbe991a145879 | 123456789012.3456 | 123456789012.3456 | \x423cbe991a145879 | t
1386 \x4206fee0e1a9e061 | 12345678901.23456 | 12345678901.23456 | \x4206fee0e1a9e061 | t
1387 \x41d26580b487e6b4 | 1234567890.123456 | 1234567890.123456 | \x41d26580b487e6b4 | t
1388 \x419d6f34540ca453 | 123456789.0123456 | 123456789.0123456 | \x419d6f34540ca453 | t
1389 \x41678c29dcd6e9dc | 12345678.90123456 | 12345678.90123456 | \x41678c29dcd6e9dc | t
1390 \x4132d687e3df217d | 1234567.890123456 | 1234567.890123456 | \x4132d687e3df217d | t
1391 \x40fe240c9fcb68c8 | 123456.7890123456 | 123456.7890123456 | \x40fe240c9fcb68c8 | t
1392 \x40c81cd6e63c53d3 | 12345.67890123456 | 12345.67890123456 | \x40c81cd6e63c53d3 | t
1393 \x40934a4584fd0fdc | 1234.567890123456 | 1234.567890123456 | \x40934a4584fd0fdc | t
1394 \x405edd3c07fb4c93 | 123.4567890123456 | 123.4567890123456 | \x405edd3c07fb4c93 | t
1395 \x4028b0fcd32f7076 | 12.34567890123456 | 12.34567890123456 | \x4028b0fcd32f7076 | t
1396 \x3ff3c0ca428c59f8 | 1.234567890123456 | 1.234567890123456 | \x3ff3c0ca428c59f8 | t
1397 \x3e60000000000000 | 2.9802322387695312e-08 | 2.9802322387695312e-08 | \x3e60000000000000 | t
1398 \xc352bd2668e077c4 | -2.1098088986959632e+16 | -2.1098088986959632e+16 | \xc352bd2668e077c4 | t
1399 \x434018601510c000 | 9.0608011534336e+15 | 9.0608011534336e+15 | \x434018601510c000 | t
1400 \x43d055dc36f24000 | 4.708356024711512e+18 | 4.708356024711512e+18 | \x43d055dc36f24000 | t
1401 \x43e052961c6f8000 | 9.409340012568248e+18 | 9.409340012568248e+18 | \x43e052961c6f8000 | t
1402 \x3ff3c0ca2a5b1d5d | 1.2345678 | 1.2345678 | \x3ff3c0ca2a5b1d5d | t
1403 \x4830f0cf064dd592 | 5.764607523034235e+39 | 5.764607523034235e+39 | \x4830f0cf064dd592 | t
1404 \x4840f0cf064dd592 | 1.152921504606847e+40 | 1.152921504606847e+40 | \x4840f0cf064dd592 | t
1405 \x4850f0cf064dd592 | 2.305843009213694e+40 | 2.305843009213694e+40 | \x4850f0cf064dd592 | t
1406 \x3ff3333333333333 | 1.2 | 1.2 | \x3ff3333333333333 | t
1407 \x3ff3ae147ae147ae | 1.23 | 1.23 | \x3ff3ae147ae147ae | t
1408 \x3ff3be76c8b43958 | 1.234 | 1.234 | \x3ff3be76c8b43958 | t
1409 \x3ff3c083126e978d | 1.2345 | 1.2345 | \x3ff3c083126e978d | t
1410 \x3ff3c0c1fc8f3238 | 1.23456 | 1.23456 | \x3ff3c0c1fc8f3238 | t
1411 \x3ff3c0c9539b8887 | 1.234567 | 1.234567 | \x3ff3c0c9539b8887 | t
1412 \x3ff3c0ca2a5b1d5d | 1.2345678 | 1.2345678 | \x3ff3c0ca2a5b1d5d | t
1413 \x3ff3c0ca4283de1b | 1.23456789 | 1.23456789 | \x3ff3c0ca4283de1b | t
1414 \x3ff3c0ca43db770a | 1.234567895 | 1.234567895 | \x3ff3c0ca43db770a | t
1415 \x3ff3c0ca428abd53 | 1.2345678901 | 1.2345678901 | \x3ff3c0ca428abd53 | t
1416 \x3ff3c0ca428c1d2b | 1.23456789012 | 1.23456789012 | \x3ff3c0ca428c1d2b | t
1417 \x3ff3c0ca428c51f2 | 1.234567890123 | 1.234567890123 | \x3ff3c0ca428c51f2 | t
1418 \x3ff3c0ca428c58fc | 1.2345678901234 | 1.2345678901234 | \x3ff3c0ca428c58fc | t
1419 \x3ff3c0ca428c59dd | 1.23456789012345 | 1.23456789012345 | \x3ff3c0ca428c59dd | t
1420 \x3ff3c0ca428c59f8 | 1.234567890123456 | 1.234567890123456 | \x3ff3c0ca428c59f8 | t
1421 \x3ff3c0ca428c59fb | 1.2345678901234567 | 1.2345678901234567 | \x3ff3c0ca428c59fb | t
1422 \x40112e0be8047a7d | 4.294967294 | 4.294967294 | \x40112e0be8047a7d | t
1423 \x40112e0be815a889 | 4.294967295 | 4.294967295 | \x40112e0be815a889 | t
1424 \x40112e0be826d695 | 4.294967296 | 4.294967296 | \x40112e0be826d695 | t
1425 \x40112e0be83804a1 | 4.294967297 | 4.294967297 | \x40112e0be83804a1 | t
1426 \x40112e0be84932ad | 4.294967298 | 4.294967298 | \x40112e0be84932ad | t
1427 \x0040000000000000 | 1.7800590868057611e-307 | 1.7800590868057611e-307 | \x0040000000000000 | t
1428 \x007fffffffffffff | 2.8480945388892175e-306 | 2.8480945388892175e-306 | \x007fffffffffffff | t
1429 \x0290000000000000 | 2.446494580089078e-296 | 2.446494580089078e-296 | \x0290000000000000 | t
1430 \x029fffffffffffff | 4.8929891601781557e-296 | 4.8929891601781557e-296 | \x029fffffffffffff | t
1431 \x4350000000000000 | 1.8014398509481984e+16 | 1.8014398509481984e+16 | \x4350000000000000 | t
1432 \x435fffffffffffff | 3.6028797018963964e+16 | 3.6028797018963964e+16 | \x435fffffffffffff | t
1433 \x1330000000000000 | 2.900835519859558e-216 | 2.900835519859558e-216 | \x1330000000000000 | t
1434 \x133fffffffffffff | 5.801671039719115e-216 | 5.801671039719115e-216 | \x133fffffffffffff | t
1435 \x3a6fa7161a4d6e0c | 3.196104012172126e-27 | 3.196104012172126e-27 | \x3a6fa7161a4d6e0c | t
1438 -- clean up, lest opr_sanity complain
1439 drop type xfloat8 cascade;
1440 NOTICE: drop cascades to 6 other objects
1441 DETAIL: drop cascades to function xfloat8in(cstring)
1442 drop cascades to function xfloat8out(xfloat8)
1443 drop cascades to cast from xfloat8 to double precision
1444 drop cascades to cast from double precision to xfloat8
1445 drop cascades to cast from xfloat8 to bigint
1446 drop cascades to cast from bigint to xfloat8