aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2015-02-03 15:20:45 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2015-02-03 15:20:45 -0500
commit778d498c7d9099c784f14199a319ec2a84d91191 (patch)
treefadaee36b9806768d42e9e4f4ebdaa48186b2bb9
parent91fa7b4719ac583420d9143132ba4ccddefbc5b2 (diff)
downloadpostgresql-778d498c7d9099c784f14199a319ec2a84d91191.tar.gz
postgresql-778d498c7d9099c784f14199a319ec2a84d91191.zip
Fix breakage in GEODEBUG debug code.
LINE doesn't have an "m" field (anymore anyway). Also fix unportable assumption that %x can print the result of pointer subtraction. In passing, improve single_decode() in minor ways: * Remove unnecessary leading-whitespace skip (strtod does that already). * Make GEODEBUG message more intelligible. * Remove entirely-useless test to see if strtod returned a silly pointer. * Don't bother computing trailing-whitespace skip unless caller wants an ending pointer. This has been broken since 261c7d4b653bc3e44c31fd456d94f292caa50d8f. Although it's only debug code, might as well fix the 9.4 branch too.
-rw-r--r--src/backend/utils/adt/geo_ops.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
index 8fdf77bea2f..0b13c400547 100644
--- a/src/backend/utils/adt/geo_ops.c
+++ b/src/backend/utils/adt/geo_ops.c
@@ -128,19 +128,19 @@ single_decode(char *str, float8 *x, char **s)
if (!PointerIsValid(str))
return FALSE;
- while (isspace((unsigned char) *str))
- str++;
*x = strtod(str, &cp);
+
#ifdef GEODEBUG
- printf("single_decode- (%x) try decoding %s to %g\n", (cp - str), str, *x);
+ printf("single_decode- decoded first %d chars of \"%s\" to %g\n",
+ (int) (cp - str), str, *x);
#endif
- if (cp <= str)
- return FALSE;
- while (isspace((unsigned char) *cp))
- cp++;
if (s != NULL)
+ {
+ while (isspace((unsigned char) *cp))
+ cp++;
*s = cp;
+ }
return TRUE;
} /* single_decode() */
@@ -2901,8 +2901,8 @@ close_ps(PG_FUNCTION_ARGS)
result = point_copy(&lseg->p[!yh]); /* below the lseg, take lower
* end pt */
#ifdef GEODEBUG
- printf("close_ps below: tmp A %f B %f C %f m %f\n",
- tmp->A, tmp->B, tmp->C, tmp->m);
+ printf("close_ps below: tmp A %f B %f C %f\n",
+ tmp->A, tmp->B, tmp->C);
#endif
PG_RETURN_POINT_P(result);
}
@@ -2913,8 +2913,8 @@ close_ps(PG_FUNCTION_ARGS)
result = point_copy(&lseg->p[yh]); /* above the lseg, take higher
* end pt */
#ifdef GEODEBUG
- printf("close_ps above: tmp A %f B %f C %f m %f\n",
- tmp->A, tmp->B, tmp->C, tmp->m);
+ printf("close_ps above: tmp A %f B %f C %f\n",
+ tmp->A, tmp->B, tmp->C);
#endif
PG_RETURN_POINT_P(result);
}
@@ -2925,8 +2925,8 @@ close_ps(PG_FUNCTION_ARGS)
*/
tmp = line_construct_pm(pt, invm);
#ifdef GEODEBUG
- printf("close_ps- tmp A %f B %f C %f m %f\n",
- tmp->A, tmp->B, tmp->C, tmp->m);
+ printf("close_ps- tmp A %f B %f C %f\n",
+ tmp->A, tmp->B, tmp->C);
#endif
result = interpt_sl(lseg, tmp);
Assert(result != NULL);