Fix use-after-free in parallel_vacuum_reset_dead_items
[pgsql.git] / src / test / regress / expected / float8.out
blobde56998f5cdef5ed9116ea1c887e4e2fbf9cf86e
1 --
2 -- FLOAT8
3 --
4 --
5 -- Build a table for testing
6 -- (This temporarily hides the table created in test_setup.sql)
7 --
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;
18                ^
19 SELECT '-10e400'::float8;
20 ERROR:  "-10e400" is out of range for type double precision
21 LINE 1: SELECT '-10e400'::float8;
22                ^
23 SELECT '10e-400'::float8;
24 ERROR:  "10e-400" is out of range for type double precision
25 LINE 1: SELECT '10e-400'::float8;
26                ^
27 SELECT '-10e-400'::float8;
28 ERROR:  "-10e-400" is out of range for type double precision
29 LINE 1: SELECT '-10e-400'::float8;
30                ^
31 -- test smallest normalized input
32 SELECT float8send('2.2250738585072014E-308'::float8);
33      float8send     
34 --------------------
35  \x0010000000000000
36 (1 row)
38 -- bad input
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 ('');
42                                            ^
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 ('     ');
46                                            ^
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');
50                                            ^
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');
54                                            ^
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');
58                                            ^
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');
62                                            ^
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');
66                                            ^
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');
70                                            ^
71 -- Also try it with non-error-throwing API
72 SELECT pg_input_is_valid('34.5', 'float8');
73  pg_input_is_valid 
74 -------------------
75  t
76 (1 row)
78 SELECT pg_input_is_valid('xyz', 'float8');
79  pg_input_is_valid 
80 -------------------
81  f
82 (1 row)
84 SELECT pg_input_is_valid('1e4000', 'float8');
85  pg_input_is_valid 
86 -------------------
87  f
88 (1 row)
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
94 (1 row)
96 -- special inputs
97 SELECT 'NaN'::float8;
98  float8 
99 --------
100     NaN
101 (1 row)
103 SELECT 'nan'::float8;
104  float8 
105 --------
106     NaN
107 (1 row)
109 SELECT '   NAN  '::float8;
110  float8 
111 --------
112     NaN
113 (1 row)
115 SELECT 'infinity'::float8;
116   float8  
117 ----------
118  Infinity
119 (1 row)
121 SELECT '          -INFINiTY   '::float8;
122   float8   
123 -----------
124  -Infinity
125 (1 row)
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;
131                ^
132 SELECT 'NaN x'::float8;
133 ERROR:  invalid input syntax for type double precision: "NaN x"
134 LINE 1: SELECT 'NaN x'::float8;
135                ^
136 SELECT ' INFINITY    x'::float8;
137 ERROR:  invalid input syntax for type double precision: " INFINITY    x"
138 LINE 1: SELECT ' INFINITY    x'::float8;
139                ^
140 SELECT 'Infinity'::float8 + 100.0;
141  ?column? 
142 ----------
143  Infinity
144 (1 row)
146 SELECT 'Infinity'::float8 / 'Infinity'::float8;
147  ?column? 
148 ----------
149       NaN
150 (1 row)
152 SELECT '42'::float8 / 'Infinity'::float8;
153  ?column? 
154 ----------
155         0
156 (1 row)
158 SELECT 'nan'::float8 / 'nan'::float8;
159  ?column? 
160 ----------
161       NaN
162 (1 row)
164 SELECT 'nan'::float8 / '0'::float8;
165  ?column? 
166 ----------
167       NaN
168 (1 row)
170 SELECT 'nan'::numeric::float8;
171  float8 
172 --------
173     NaN
174 (1 row)
176 SELECT * FROM FLOAT8_TBL;
177           f1          
178 ----------------------
179                     0
180                1004.3
181                -34.84
182  1.2345678901234e+200
183  1.2345678901234e-200
184 (5 rows)
186 SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
187           f1          
188 ----------------------
189                     0
190                -34.84
191  1.2345678901234e+200
192  1.2345678901234e-200
193 (4 rows)
195 SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
196    f1   
197 --------
198  1004.3
199 (1 row)
201 SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
202           f1          
203 ----------------------
204                     0
205                -34.84
206  1.2345678901234e-200
207 (3 rows)
209 SELECT f.* FROM FLOAT8_TBL f WHERE  f.f1 < '1004.3';
210           f1          
211 ----------------------
212                     0
213                -34.84
214  1.2345678901234e-200
215 (3 rows)
217 SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
218           f1          
219 ----------------------
220                     0
221                1004.3
222                -34.84
223  1.2345678901234e-200
224 (4 rows)
226 SELECT f.* FROM FLOAT8_TBL f WHERE  f.f1 <= '1004.3';
227           f1          
228 ----------------------
229                     0
230                1004.3
231                -34.84
232  1.2345678901234e-200
233 (4 rows)
235 SELECT f.f1, f.f1 * '-10' AS x
236    FROM FLOAT8_TBL f
237    WHERE f.f1 > '0.0';
238           f1          |           x           
239 ----------------------+-----------------------
240                1004.3 |                -10043
241  1.2345678901234e+200 | -1.2345678901234e+201
242  1.2345678901234e-200 | -1.2345678901234e-199
243 (3 rows)
245 SELECT f.f1, f.f1 + '-10' AS x
246    FROM FLOAT8_TBL f
247    WHERE f.f1 > '0.0';
248           f1          |          x           
249 ----------------------+----------------------
250                1004.3 |                994.3
251  1.2345678901234e+200 | 1.2345678901234e+200
252  1.2345678901234e-200 |                  -10
253 (3 rows)
255 SELECT f.f1, f.f1 / '-10' AS x
256    FROM FLOAT8_TBL f
257    WHERE f.f1 > '0.0';
258           f1          |           x           
259 ----------------------+-----------------------
260                1004.3 |   -100.42999999999999
261  1.2345678901234e+200 | -1.2345678901234e+199
262  1.2345678901234e-200 | -1.2345678901234e-201
263 (3 rows)
265 SELECT f.f1, f.f1 - '-10' AS x
266    FROM FLOAT8_TBL f
267    WHERE f.f1 > '0.0';
268           f1          |          x           
269 ----------------------+----------------------
270                1004.3 |               1014.3
271  1.2345678901234e+200 | 1.2345678901234e+200
272  1.2345678901234e-200 |                   10
273 (3 rows)
275 SELECT f.f1 ^ '2.0' AS square_f1
276    FROM FLOAT8_TBL f where f.f1 = '1004.3';
277      square_f1      
278 --------------------
279  1008618.4899999999
280 (1 row)
282 -- absolute value
283 SELECT f.f1, @f.f1 AS abs_f1
284    FROM FLOAT8_TBL f;
285           f1          |        abs_f1        
286 ----------------------+----------------------
287                     0 |                    0
288                1004.3 |               1004.3
289                -34.84 |                34.84
290  1.2345678901234e+200 | 1.2345678901234e+200
291  1.2345678901234e-200 | 1.2345678901234e-200
292 (5 rows)
294 -- truncate
295 SELECT f.f1, trunc(f.f1) AS trunc_f1
296    FROM FLOAT8_TBL f;
297           f1          |       trunc_f1       
298 ----------------------+----------------------
299                     0 |                    0
300                1004.3 |                 1004
301                -34.84 |                  -34
302  1.2345678901234e+200 | 1.2345678901234e+200
303  1.2345678901234e-200 |                    0
304 (5 rows)
306 -- round
307 SELECT f.f1, round(f.f1) AS round_f1
308    FROM FLOAT8_TBL f;
309           f1          |       round_f1       
310 ----------------------+----------------------
311                     0 |                    0
312                1004.3 |                 1004
313                -34.84 |                  -35
314  1.2345678901234e+200 | 1.2345678901234e+200
315  1.2345678901234e-200 |                    0
316 (5 rows)
318 -- ceil / ceiling
319 select ceil(f1) as ceil_f1 from float8_tbl f;
320        ceil_f1        
321 ----------------------
322                     0
323                  1005
324                   -34
325  1.2345678901234e+200
326                     1
327 (5 rows)
329 select ceiling(f1) as ceiling_f1 from float8_tbl f;
330       ceiling_f1      
331 ----------------------
332                     0
333                  1005
334                   -34
335  1.2345678901234e+200
336                     1
337 (5 rows)
339 -- floor
340 select floor(f1) as floor_f1 from float8_tbl f;
341        floor_f1       
342 ----------------------
343                     0
344                  1004
345                   -35
346  1.2345678901234e+200
347                     0
348 (5 rows)
350 -- sign
351 select sign(f1) as sign_f1 from float8_tbl f;
352  sign_f1 
353 ---------
354        0
355        1
356       -1
357        1
358        1
359 (5 rows)
361 -- avoid bit-exact output here because operations may not be bit-exact.
362 SET extra_float_digits = 0;
363 -- square root
364 SELECT sqrt(float8 '64') AS eight;
365  eight 
366 -------
367      8
368 (1 row)
370 SELECT |/ float8 '64' AS eight;
371  eight 
372 -------
373      8
374 (1 row)
376 SELECT f.f1, |/f.f1 AS sqrt_f1
377    FROM FLOAT8_TBL f
378    WHERE f.f1 > '0.0';
379           f1          |        sqrt_f1        
380 ----------------------+-----------------------
381                1004.3 |      31.6906926399535
382  1.2345678901234e+200 | 1.11111110611109e+100
383  1.2345678901234e-200 | 1.11111110611109e-100
384 (3 rows)
386 -- power
387 SELECT power(float8 '144', float8 '0.5');
388  power 
389 -------
390     12
391 (1 row)
393 SELECT power(float8 'NaN', float8 '0.5');
394  power 
395 -------
396    NaN
397 (1 row)
399 SELECT power(float8 '144', float8 'NaN');
400  power 
401 -------
402    NaN
403 (1 row)
405 SELECT power(float8 'NaN', float8 'NaN');
406  power 
407 -------
408    NaN
409 (1 row)
411 SELECT power(float8 '-1', float8 'NaN');
412  power 
413 -------
414    NaN
415 (1 row)
417 SELECT power(float8 '1', float8 'NaN');
418  power 
419 -------
420      1
421 (1 row)
423 SELECT power(float8 'NaN', float8 '0');
424  power 
425 -------
426      1
427 (1 row)
429 SELECT power(float8 'inf', float8 '0');
430  power 
431 -------
432      1
433 (1 row)
435 SELECT power(float8 '-inf', float8 '0');
436  power 
437 -------
438      1
439 (1 row)
441 SELECT power(float8 '0', float8 'inf');
442  power 
443 -------
444      0
445 (1 row)
447 SELECT power(float8 '0', float8 '-inf');
448 ERROR:  zero raised to a negative power is undefined
449 SELECT power(float8 '1', float8 'inf');
450  power 
451 -------
452      1
453 (1 row)
455 SELECT power(float8 '1', float8 '-inf');
456  power 
457 -------
458      1
459 (1 row)
461 SELECT power(float8 '-1', float8 'inf');
462  power 
463 -------
464      1
465 (1 row)
467 SELECT power(float8 '-1', float8 '-inf');
468  power 
469 -------
470      1
471 (1 row)
473 SELECT power(float8 '0.1', float8 'inf');
474  power 
475 -------
476      0
477 (1 row)
479 SELECT power(float8 '-0.1', float8 'inf');
480  power 
481 -------
482      0
483 (1 row)
485 SELECT power(float8 '1.1', float8 'inf');
486   power   
487 ----------
488  Infinity
489 (1 row)
491 SELECT power(float8 '-1.1', float8 'inf');
492   power   
493 ----------
494  Infinity
495 (1 row)
497 SELECT power(float8 '0.1', float8 '-inf');
498   power   
499 ----------
500  Infinity
501 (1 row)
503 SELECT power(float8 '-0.1', float8 '-inf');
504   power   
505 ----------
506  Infinity
507 (1 row)
509 SELECT power(float8 '1.1', float8 '-inf');
510  power 
511 -------
512      0
513 (1 row)
515 SELECT power(float8 '-1.1', float8 '-inf');
516  power 
517 -------
518      0
519 (1 row)
521 SELECT power(float8 'inf', float8 '-2');
522  power 
523 -------
524      0
525 (1 row)
527 SELECT power(float8 'inf', float8 '2');
528   power   
529 ----------
530  Infinity
531 (1 row)
533 SELECT power(float8 'inf', float8 'inf');
534   power   
535 ----------
536  Infinity
537 (1 row)
539 SELECT power(float8 'inf', float8 '-inf');
540  power 
541 -------
542      0
543 (1 row)
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';
548  ?column? 
549 ----------
551 (1 row)
553 SELECT power(float8 '-inf', float8 '-3');
554  power 
555 -------
556     -0
557 (1 row)
559 SELECT power(float8 '-inf', float8 '2');
560   power   
561 ----------
562  Infinity
563 (1 row)
565 SELECT power(float8 '-inf', float8 '3');
566    power   
567 -----------
568  -Infinity
569 (1 row)
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');
574   power   
575 ----------
576  Infinity
577 (1 row)
579 SELECT power(float8 '-inf', float8 '-inf');
580  power 
581 -------
582      0
583 (1 row)
585 -- take exp of ln(f.f1)
586 SELECT f.f1, exp(ln(f.f1)) AS exp_ln_f1
587    FROM FLOAT8_TBL f
588    WHERE f.f1 > '0.0';
589           f1          |       exp_ln_f1       
590 ----------------------+-----------------------
591                1004.3 |                1004.3
592  1.2345678901234e+200 | 1.23456789012338e+200
593  1.2345678901234e-200 | 1.23456789012339e-200
594 (3 rows)
596 -- check edge cases for exp
597 SELECT exp('inf'::float8), exp('-inf'::float8), exp('nan'::float8);
598    exp    | exp | exp 
599 ----------+-----+-----
600  Infinity |   0 | NaN
601 (1 row)
603 -- cube root
604 SELECT ||/ float8 '27' AS three;
605  three 
606 -------
607      3
608 (1 row)
610 SELECT f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
611           f1          |       cbrt_f1        
612 ----------------------+----------------------
613                     0 |                    0
614                1004.3 |      10.014312837827
615                -34.84 |    -3.26607421344208
616  1.2345678901234e+200 | 4.97933859234765e+66
617  1.2345678901234e-200 |  2.3112042409018e-67
618 (5 rows)
620 SELECT * FROM FLOAT8_TBL;
621           f1          
622 ----------------------
623                     0
624                1004.3
625                -34.84
626  1.2345678901234e+200
627  1.2345678901234e-200
628 (5 rows)
630 UPDATE FLOAT8_TBL
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;
638  ?column? 
639 ----------
640         2
641 (1 row)
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;
652           f1           
653 -----------------------
654                      0
655                 -34.84
656                -1004.3
657  -1.2345678901234e+200
658  -1.2345678901234e-200
659 (5 rows)
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');
665       sinh       
666 -----------------
667  1.1752011936438
668 (1 row)
670 SELECT cosh(float8 '1');
671        cosh       
672 ------------------
673  1.54308063481524
674 (1 row)
676 SELECT tanh(float8 '1');
677        tanh        
678 -------------------
679  0.761594155955765
680 (1 row)
682 SELECT asinh(float8 '1');
683        asinh       
684 -------------------
685  0.881373587019543
686 (1 row)
688 SELECT acosh(float8 '2');
689       acosh       
690 ------------------
691  1.31695789692482
692 (1 row)
694 SELECT atanh(float8 '0.5');
695        atanh       
696 -------------------
697  0.549306144334055
698 (1 row)
700 -- test Inf/NaN cases for hyperbolic functions
701 SELECT sinh(float8 'infinity');
702    sinh   
703 ----------
704  Infinity
705 (1 row)
707 SELECT sinh(float8 '-infinity');
708    sinh    
709 -----------
710  -Infinity
711 (1 row)
713 SELECT sinh(float8 'nan');
714  sinh 
715 ------
716   NaN
717 (1 row)
719 SELECT cosh(float8 'infinity');
720    cosh   
721 ----------
722  Infinity
723 (1 row)
725 SELECT cosh(float8 '-infinity');
726    cosh   
727 ----------
728  Infinity
729 (1 row)
731 SELECT cosh(float8 'nan');
732  cosh 
733 ------
734   NaN
735 (1 row)
737 SELECT tanh(float8 'infinity');
738  tanh 
739 ------
740     1
741 (1 row)
743 SELECT tanh(float8 '-infinity');
744  tanh 
745 ------
746    -1
747 (1 row)
749 SELECT tanh(float8 'nan');
750  tanh 
751 ------
752   NaN
753 (1 row)
755 SELECT asinh(float8 'infinity');
756   asinh   
757 ----------
758  Infinity
759 (1 row)
761 SELECT asinh(float8 '-infinity');
762    asinh   
763 -----------
764  -Infinity
765 (1 row)
767 SELECT asinh(float8 'nan');
768  asinh 
769 -------
770    NaN
771 (1 row)
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');
778  acosh 
779 -------
780    NaN
781 (1 row)
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');
788  atanh 
789 -------
790    NaN
791 (1 row)
793 -- error functions
794 -- we run these with extra_float_digits = -1, to get consistently rounded
795 -- results on all platforms.
796 SET extra_float_digits = -1;
797 SELECT x,
798        erf(x),
799        erfc(x)
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);
806      x     |         erf          |        erfc         
807 -----------+----------------------+---------------------
808  -Infinity |                   -1 |                   2
809        -28 |                   -1 |                   2
810         -6 |                   -1 |                   2
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
818          0 |                    0 |                   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
827         28 |                    1 |                   0
828   Infinity |                    1 |                   0
829        NaN |                  NaN |                 NaN
830 (22 rows)
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');
837                                            ^
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');
841                                            ^
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');
845                                            ^
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');
849                                            ^
850 DROP TABLE FLOAT8_TBL;
851 -- Check the float8 values exported for use by other tests
852 SELECT * FROM FLOAT8_TBL;
853           f1           
854 -----------------------
855                      0
856                 -34.84
857                -1004.3
858  -1.2345678901234e+200
859  -1.2345678901234e-200
860 (5 rows)
862 -- test edge-case coercions to integer
863 SELECT '32767.4'::float8::int2;
864  int2  
865 -------
866  32767
867 (1 row)
869 SELECT '32767.6'::float8::int2;
870 ERROR:  smallint out of range
871 SELECT '-32768.4'::float8::int2;
872   int2  
873 --------
874  -32768
875 (1 row)
877 SELECT '-32768.6'::float8::int2;
878 ERROR:  smallint out of range
879 SELECT '2147483647.4'::float8::int4;
880     int4    
881 ------------
882  2147483647
883 (1 row)
885 SELECT '2147483647.6'::float8::int4;
886 ERROR:  integer out of range
887 SELECT '-2147483648.4'::float8::int4;
888     int4     
889 -------------
890  -2147483648
891 (1 row)
893 SELECT '-2147483648.6'::float8::int4;
894 ERROR:  integer out of range
895 SELECT '9223372036854773760'::float8::int8;
896         int8         
897 ---------------------
898  9223372036854773760
899 (1 row)
901 SELECT '9223372036854775807'::float8::int8;
902 ERROR:  bigint out of range
903 SELECT '-9223372036854775808.5'::float8::int8;
904          int8         
905 ----------------------
906  -9223372036854775808
907 (1 row)
909 SELECT '-9223372036854780000'::float8::int8;
910 ERROR:  bigint out of range
911 -- test exact cases for trigonometric functions in degrees
912 SELECT x,
913        sind(x),
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 -----+------+------------
919    0 |    0 | t
920   30 |  0.5 | t
921   90 |    1 | t
922  150 |  0.5 | t
923  180 |    0 | t
924  210 | -0.5 | t
925  270 |   -1 | t
926  330 | -0.5 | t
927  360 |    0 | t
928 (9 rows)
930 SELECT x,
931        cosd(x),
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 -----+------+------------
937    0 |    1 | t
938   60 |  0.5 | t
939   90 |    0 | t
940  120 | -0.5 | t
941  180 |   -1 | t
942  240 | -0.5 | t
943  270 |    0 | t
944  300 |  0.5 | t
945  360 |    1 | t
946 (9 rows)
948 SELECT x,
949        tand(x),
950        tand(x) IN ('-Infinity'::float8,-1,0,
951                    1,'Infinity'::float8) AS tand_exact,
952        cotd(x),
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
960   45 |         1 | t          |         1 | t
961   90 |  Infinity | t          |         0 | t
962  135 |        -1 | t          |        -1 | t
963  180 |         0 | t          | -Infinity | t
964  225 |         1 | t          |         1 | t
965  270 | -Infinity | t          |         0 | t
966  315 |        -1 | t          |        -1 | t
967  360 |         0 | t          |  Infinity | t
968 (9 rows)
970 SELECT x,
971        asind(x),
972        asind(x) IN (-90,-30,0,30,90) AS asind_exact,
973        acosd(x),
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
980     0 |     0 | t           |    90 | t
981   0.5 |    30 | t           |    60 | t
982     1 |    90 | t           |     0 | t
983 (5 rows)
985 SELECT x,
986        atand(x),
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 -----------+-------+-------------
992  -Infinity |   -90 | t
993         -1 |   -45 | t
994          0 |     0 | t
995          1 |    45 | t
996   Infinity |    90 | t
997 (5 rows)
999 SELECT x, y,
1000        atan2d(y, x),
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 -----+-----+--------+--------------
1006   10 |   0 |      0 | t
1007    0 |  10 |     90 | t
1008  -10 |   0 |    180 | t
1009    0 | -10 |    -90 | t
1010   10 |   0 |      0 | t
1011 (5 rows)
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...
1026                                    ^
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
1037   -- small subnormals
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,
1052        flt
1053   from (select bits::bigint::xfloat8::float8 as flt
1054           from testdata
1055         offset 0) s;
1056        ibits        |           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
1076 (18 rows)
1078 -- round-trip tests
1079 with testdata(bits) as (values
1080   (x'0000000000000000'),
1081   -- smallest normal values
1082   (x'0010000000000000'), (x'0010000000000001'),
1083   (x'0010000000000002'), (x'0018000000000000'),
1084   --
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'),
1106   --
1107   (x'3ff921fb54442d18'),
1108   (x'4005bf0a8b14576a'),
1109   (x'400921fb54442d18'),
1110   --
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'),
1136   --
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'),
1173   -- Regression
1174   (x'c352bd2668e077c4'),
1175   (x'434018601510c000'),
1176   (x'43d055dc36f24000'),
1177   (x'43e052961c6f8000'),
1178   (x'3ff3c0ca2a5b1d5d'),
1179   -- LooksLikePow5
1180   (x'4830f0cf064dd592'),
1181   (x'4840f0cf064dd592'),
1182   (x'4850f0cf064dd592'),
1183   -- OutputLength
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'),
1200   -- 32-bit chunking
1201   (x'40112e0be8047a7d'),
1202   (x'40112e0be815a889'),
1203   (x'40112e0be826d695'),
1204   (x'40112e0be83804a1'),
1205   (x'40112e0be84932ad'),
1206   -- MinMaxShift
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,
1218        flt,
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
1223           from testdata
1224         offset 0) s;
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
1436 (209 rows)
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