From 7db166f0842b1bcc8a41f4d1e294f30ec16028e6 Mon Sep 17 00:00:00 2001 From: David Zwarg Date: Tue, 14 Feb 2012 17:00:00 +0000 Subject: [PATCH] Reverting changes that optimize ST_MapAlgebraExpr. Re-advertise x and y parameters as int32. Reverts changes from r9137, closes #1557. git-svn-id: http://svn.osgeo.org/postgis/trunk@9185 b70326c6-7e19-0410-871a-916f4a2858ee --- raster/rt_pg/rt_pg.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/raster/rt_pg/rt_pg.c b/raster/rt_pg/rt_pg.c index d1af077a6..7799c92fd 100644 --- a/raster/rt_pg/rt_pg.c +++ b/raster/rt_pg/rt_pg.c @@ -2596,8 +2596,9 @@ Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS) const int argkwcount = 3; enum KEYWORDS { kVAL=0, kX=1, kY=2 }; char *argkw[] = {"[rast]", "[rast.x]", "[rast.y]"}; + Oid argkwtypes[] = { FLOAT8OID, INT4OID, INT4OID }; int argcount = 0; - Oid argtype[] = { FLOAT8OID, FLOAT8OID, FLOAT8OID }; + Oid argtype[] = { FLOAT8OID, INT4OID, INT4OID }; uint8_t argpos[3] = {0}; char place[5]; int idx = 0; @@ -3038,6 +3039,7 @@ Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS) newexpr = rtpg_strreplace(initexpr, argkw[i], place, &len); pfree(initexpr); initexpr=newexpr; if (len > 0) { + argtype[argcount] = argkwtypes[i]; argcount++; argpos[i] = j++; @@ -3129,12 +3131,12 @@ Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS) if (i == kX ) { /* x is 0 based index, but SQL expects 1 based index */ - values[idx] = Float8GetDatum((float)(x+1)); + values[idx] = Int32GetDatum(x+1); nulls[idx] = ' '; } else if (i == kY) { /* y is 0 based index, but SQL expects 1 based index */ - values[idx] = Float8GetDatum((float)(y+1)); + values[idx] = Int32GetDatum(y+1); nulls[idx] = ' '; } else if (i == kVAL ) { -- 2.40.0