From: Bborie Park Date: Thu, 1 Mar 2012 15:59:39 +0000 (+0000) Subject: Forced casting of output from 1-raster ST_MapAlgebraExpr. Ticket is #1639. X-Git-Tag: 2.0.0beta2~56 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=64af0eb8233b6c36794cc88562a5155608c9b878;p=postgis Forced casting of output from 1-raster ST_MapAlgebraExpr. Ticket is #1639. git-svn-id: http://svn.osgeo.org/postgis/trunk@9371 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/raster/rt_pg/rt_pg.c b/raster/rt_pg/rt_pg.c index 0577cb456..c5691c4cb 100644 --- a/raster/rt_pg/rt_pg.c +++ b/raster/rt_pg/rt_pg.c @@ -2795,11 +2795,12 @@ Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS) /* Construct expression for raster values */ if (!PG_ARGISNULL(3)) { expression = text_to_cstring(PG_GETARG_TEXT_P(3)); - len = strlen("SELECT ") + strlen(expression); + len = strlen("SELECT (") + strlen(expression) + strlen(")::double precision"); initexpr = (char *)palloc(len + 1); - strncpy(initexpr, "SELECT ", strlen("SELECT ")); - strncpy(initexpr + strlen("SELECT "), expression, strlen(expression)); + strncpy(initexpr, "SELECT (", strlen("SELECT (")); + strncpy(initexpr + strlen("SELECT ("), expression, strlen(expression)); + strncpy(initexpr + strlen("SELECT (") + strlen(expression), ")::double precision", strlen(")::double precision")); initexpr[len] = '\0'; POSTGIS_RT_DEBUGF(3, "RASTER_mapAlgebraExpr: Expression is %s", initexpr);