]> granicus.if.org Git - postgresql/commitdiff
Give up on testing guc.c's behavior for "infinity" inputs.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 11 Mar 2019 21:53:09 +0000 (17:53 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 11 Mar 2019 21:53:09 +0000 (17:53 -0400)
Further buildfarm testing shows that on the machines that are failing
ac75959cd's test case, what we're actually getting from strtod("-infinity")
is a syntax error (endptr == value) not ERANGE at all.  This test case
is not worth carrying two sets of expected output for, so just remove it,
and revert commit b212245f9's misguided attempt to work around the platform
dependency.

Discussion: https://postgr.es/m/E1h33xk-0001Og-Gs@gemulon.postgresql.org

src/backend/utils/misc/guc.c
src/test/regress/expected/guc.out
src/test/regress/sql/guc.sql

index 1c4f9ac04e6d18bb7e308a97784cd58d19410944..fe6c6f8a05a51fc3db423d99663d3d35256b63d3 100644 (file)
@@ -6240,15 +6240,13 @@ parse_real(const char *value, double *result, int flags, const char **hintmsg)
        if (hintmsg)
                *hintmsg = NULL;
 
+       errno = 0;
        val = strtod(value, &endptr);
-       if (endptr == value)
-               return false;                   /* no HINT for syntax error */
 
-       /*
-        * We ignore strtod's errno, so that out-of-range inputs will just result
-        * in zero or infinity values.  Subsequent range checks will reject those
-        * if necessary.  We do need to reject NaN explicitly, however.
-        */
+       if (endptr == value || errno == ERANGE)
+               return false;                   /* no HINT for these cases */
+
+       /* reject NaN (infinities will fail range checks later) */
        if (isnan(val))
                return false;                   /* treat same as syntax error; no HINT */
 
index f2590ee6769b1e91af072c4cd736a218f803f0c9..811f80a0976bbf58da62d903326e4ce8bc131f7c 100644 (file)
@@ -511,8 +511,6 @@ SET seq_page_cost TO 'NaN';
 ERROR:  invalid value for parameter "seq_page_cost": "NaN"
 SET vacuum_cost_delay TO '10s';
 ERROR:  10000 ms is outside the valid range for parameter "vacuum_cost_delay" (0 .. 100)
-SET geqo_selection_bias TO '-infinity';
-ERROR:  -Infinity is outside the valid range for parameter "geqo_selection_bias" (1.5 .. 2)
 --
 -- Test DISCARD TEMP
 --
index b3ca59c09b1c3fa12a03aab028826e68301d0442..43dbba3775ea75530e2e6ea2bdbe08da4b9efc79 100644 (file)
@@ -147,7 +147,6 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
 -- Test some simple error cases
 SET seq_page_cost TO 'NaN';
 SET vacuum_cost_delay TO '10s';
-SET geqo_selection_bias TO '-infinity';
 
 --
 -- Test DISCARD TEMP