File tree 10 files changed +45
-5
lines changed
10 files changed +45
-5
lines changed Original file line number Diff line number Diff line change 8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.165 2010/02/08 20:39:51 tgl Exp $
11
+ * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.166 2010/02/27 21:53:21 tgl Exp $
12
12
*
13
13
*-------------------------------------------------------------------------
14
14
*/
@@ -130,7 +130,8 @@ get_float4_infinity(void)
130
130
double
131
131
get_float8_nan (void )
132
132
{
133
- #ifdef NAN
133
+ /* (double) NAN doesn't work on some NetBSD/MIPS releases */
134
+ #if defined(NAN ) && !(defined(__NetBSD__ ) && defined(__mips__ ))
134
135
/* C99 standard way */
135
136
return (double ) NAN ;
136
137
#else
Original file line number Diff line number Diff line change 1
- /* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.50 2010/02/26 02:01:29 momjian Exp $ */
1
+ /* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.51 2010/02/27 21:53:21 tgl Exp $ */
2
2
3
3
#define POSTGRES_ECPG_INTERNAL
4
4
#include "postgres_fe.h"
5
5
6
6
#include <stdlib.h>
7
7
#include <string.h>
8
+ #include <float.h>
8
9
#include <math.h>
9
10
10
11
#include "ecpgtype.h"
@@ -85,7 +86,8 @@ get_float8_infinity(void)
85
86
static double
86
87
get_float8_nan (void )
87
88
{
88
- #ifdef NAN
89
+ /* (double) NAN doesn't work on some NetBSD/MIPS releases */
90
+ #if defined(NAN ) && !(defined(__NetBSD__ ) && defined(__mips__ ))
89
91
return (double ) NAN ;
90
92
#else
91
93
return (double ) (0.0 / 0.0 );
Original file line number Diff line number Diff line change @@ -119,6 +119,12 @@ SELECT 'nan'::float4 / 'nan'::float4;
119
119
NaN
120
120
(1 row)
121
121
122
+ SELECT 'nan'::numeric::float4;
123
+ float4
124
+ --------
125
+ NaN
126
+ (1 row)
127
+
122
128
SELECT '' AS five, * FROM FLOAT4_TBL;
123
129
five | f1
124
130
------+--------------
Original file line number Diff line number Diff line change @@ -119,6 +119,12 @@ SELECT 'nan'::float4 / 'nan'::float4;
119
119
NaN
120
120
(1 row)
121
121
122
+ SELECT 'nan'::numeric::float4;
123
+ float4
124
+ --------
125
+ NaN
126
+ (1 row)
127
+
122
128
SELECT '' AS five, * FROM FLOAT4_TBL;
123
129
five | f1
124
130
------+-------------
Original file line number Diff line number Diff line change @@ -119,6 +119,12 @@ SELECT 'nan'::float8 / 'nan'::float8;
119
119
NaN
120
120
(1 row)
121
121
122
+ SELECT 'nan'::numeric::float8;
123
+ float8
124
+ --------
125
+ NaN
126
+ (1 row)
127
+
122
128
SELECT '' AS five, * FROM FLOAT8_TBL;
123
129
five | f1
124
130
------+----------------------
Original file line number Diff line number Diff line change @@ -123,6 +123,12 @@ SELECT 'nan'::float8 / 'nan'::float8;
123
123
NaN
124
124
(1 row)
125
125
126
+ SELECT 'nan'::numeric::float8;
127
+ float8
128
+ --------
129
+ NaN
130
+ (1 row)
131
+
126
132
SELECT '' AS five, * FROM FLOAT8_TBL;
127
133
five | f1
128
134
------+----------------------
Original file line number Diff line number Diff line change @@ -123,6 +123,12 @@ SELECT 'nan'::float8 / 'nan'::float8;
123
123
NaN
124
124
(1 row)
125
125
126
+ SELECT 'nan'::numeric::float8;
127
+ float8
128
+ --------
129
+ NaN
130
+ (1 row)
131
+
126
132
SELECT '' AS five, * FROM FLOAT8_TBL;
127
133
five | f1
128
134
------+----------------------
Original file line number Diff line number Diff line change @@ -119,6 +119,12 @@ SELECT 'nan'::float8 / 'nan'::float8;
119
119
NaN
120
120
(1 row)
121
121
122
+ SELECT 'nan'::numeric::float8;
123
+ float8
124
+ --------
125
+ NaN
126
+ (1 row)
127
+
122
128
SELECT '' AS five, * FROM FLOAT8_TBL;
123
129
five | f1
124
130
------+----------------------
Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ SELECT ' INFINITY x'::float4;
40
40
SELECT ' Infinity' ::float4 + 100 .0 ;
41
41
SELECT ' Infinity' ::float4 / ' Infinity' ::float4;
42
42
SELECT ' nan' ::float4 / ' nan' ::float4;
43
-
43
+ SELECT ' nan ' :: numeric ::float4;
44
44
45
45
SELECT ' ' AS five, * FROM FLOAT4_TBL;
46
46
Original file line number Diff line number Diff line change @@ -40,6 +40,7 @@ SELECT ' INFINITY x'::float8;
40
40
SELECT ' Infinity' ::float8 + 100 .0 ;
41
41
SELECT ' Infinity' ::float8 / ' Infinity' ::float8;
42
42
SELECT ' nan' ::float8 / ' nan' ::float8;
43
+ SELECT ' nan' ::numeric ::float8;
43
44
44
45
SELECT ' ' AS five, * FROM FLOAT8_TBL;
45
46
You can’t perform that action at this time.
0 commit comments