summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/data.c')
-rw-r--r--src/interfaces/ecpg/ecpglib/data.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/src/interfaces/ecpg/ecpglib/data.c b/src/interfaces/ecpg/ecpglib/data.c
index fa562767585..d5d40f7b654 100644
--- a/src/interfaces/ecpg/ecpglib/data.c
+++ b/src/interfaces/ecpg/ecpglib/data.c
@@ -69,34 +69,23 @@ garbage_left(enum ARRAY_TYPE isarray, char **scan_length, enum COMPAT_MODE compa
return false;
}
-/* stolen code from src/backend/utils/adt/float.c */
-#if defined(WIN32) && !defined(NAN)
-static const uint32 nan[2] = {0xffffffff, 0x7fffffff};
-
-#define NAN (*(const double *) nan)
-#endif
+/*
+ * Portability wrappers borrowed from src/include/utils/float.h
+ */
static double
get_float8_infinity(void)
{
-#ifdef INFINITY
return (double) INFINITY;
-#else
- return (double) (HUGE_VAL * HUGE_VAL);
-#endif
}
static double
get_float8_nan(void)
{
- /* (double) NAN doesn't work on some NetBSD/MIPS releases */
-#if defined(NAN) && !(defined(__NetBSD__) && defined(__mips__))
return (double) NAN;
-#else
- return (double) (0.0 / 0.0);
-#endif
}
+
static bool
check_special_value(char *ptr, double *retval, char **endptr)
{