[postgis] 01/03: Imported Upstream version 2.1.7+dfsg
Markus Wanner
markus_wanner-guest at moszumanska.debian.org
Mon Mar 30 17:43:51 UTC 2015
This is an automated email from the git hooks/post-receive script.
markus_wanner-guest pushed a commit to branch master
in repository postgis.
commit 90d363661ac979aa47e23af3cc79c40677262945
Author: Markus Wanner <markus at bluegap.ch>
Date: Mon Mar 30 19:06:59 2015 +0200
Imported Upstream version 2.1.7+dfsg
---
ChangeLog | 50 ++++++++++++++++
NEWS | 11 ++++
README.postgis | 4 +-
Version.config | 2 +-
aclocal.m4 | 6 +-
configure | 6 --
configure.ac | 1 -
doc/release_notes.xml | 16 ++++-
extensions/postgis/postgis.control | 2 +-
.../postgis_tiger_geocoder.control | 2 +-
.../postgis_topology/postgis_topology.control | 2 +-
extensions/upgradeable_versions.mk | 6 +-
liblwgeom/liblwgeom.h.in | 6 +-
liblwgeom/lwin_geojson.c | 68 ++++++++++++++--------
liblwgeom/lwutil.c | 20 -------
libtool | 4 +-
postgis/lwgeom_box.c | 8 +--
postgis/sqldefines.h | 8 +--
postgis_svn_revision.h | 2 +-
raster/rt_pg/rt_pg.c | 22 ++++---
raster/test/regress/rt_dumpvalues.sql | 13 ++++-
21 files changed, 167 insertions(+), 92 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index f51ad77..8044365 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,53 @@
+2015-03-27 17:21 pramsey
+
+ * liblwgeom/lwin_geojson.c: Formatting
+
+2015-03-27 16:26 pramsey
+
+ * liblwgeom/lwin_geojson.c: Fix z+ handling
+
+2015-03-26 22:29 pramsey
+
+ * liblwgeom/lwin_geojson.c: GeoJSON maintenance
+
+2015-03-24 13:39 dustymugs
+
+ * raster/rt_pg/rt_pg.c: invalid operator. Ticket #3090
+
+2015-03-24 13:32 dustymugs
+
+ * NEWS, raster/rt_pg/rt_pg.c,
+ raster/test/regress/rt_dumpvalues.sql: Fix ST_DumpValues()
+ crasher when cleaning. Ticket #3086
+
+2015-03-23 16:34 strk
+
+ * NEWS, configure.ac, liblwgeom/liblwgeom.h.in, liblwgeom/lwutil.c,
+ postgis/lwgeom_box.c: Do not (re)define strcasestr in a public
+ header (#3088)
+
+2015-03-20 17:11 pramsey
+
+ * HOWTO_RELEASE: Add notes on updateing trunk too
+
+2015-03-20 17:08 pramsey
+
+ * HOWTO_RELEASE, extensions/upgradeable_versions.mk,
+ java/jdbc_jtsparser/pom.xml: Push versions forward
+
+2015-03-20 17:01 pramsey
+
+ * NEWS, Version.config: Set versions for 2.1.7dev
+
+2015-03-20 17:00 pramsey
+
+ * NEWS, README.postgis, Version.config, doc/release_notes.xml:
+ Setup for 2.1.6 release
+
+2015-03-20 16:45 pramsey
+
+ * ChangeLog: update changelog
+
2015-03-20 15:50 pramsey
* NEWS: Update NEWs
diff --git a/NEWS b/NEWS
index 72d1b23..a88b42f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,14 @@
+PostGIS 2.1.7
+2015/03/30
+
+ * Bug Fixes *
+
+ - #3086, ST_DumpValues() crashes backend on cleanup with invalid
+ band indexes
+ - #3088, Do not (re)define strcasestr in a liblwgeom.h
+ - #3094, Malformed GeoJSON inputs crash backend
+
+
PostGIS 2.1.6
2015/03/20
diff --git a/README.postgis b/README.postgis
index 20f416f..08501dd 100644
--- a/README.postgis
+++ b/README.postgis
@@ -1,8 +1,8 @@
PostGIS - Geographic Information Systems Extensions to PostgreSQL
=================================================================
-:Version: 2.1.6
-:Date: 2015-03-20
+:Version: 2.1.7
+:Date: 2015-03-30
:Website: http://postgis.net
This distribution contains a module which implements GIS simple features, ties
diff --git a/Version.config b/Version.config
index 88a4adc..4beb12b 100644
--- a/Version.config
+++ b/Version.config
@@ -5,5 +5,5 @@
POSTGIS_MAJOR_VERSION=2
POSTGIS_MINOR_VERSION=1
-POSTGIS_MICRO_VERSION=6
+POSTGIS_MICRO_VERSION=7
diff --git a/aclocal.m4 b/aclocal.m4
index cc18be7..c437d77 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -12,7 +12,7 @@
# PARTICULAR PURPOSE.
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/configure b/configure
index 2a68b7b..120a9d0 100755
--- a/configure
+++ b/configure
@@ -16278,12 +16278,6 @@ fi
$as_echo "#define HAVE_ASPRINTF 1" >>confdefs.h
-ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr"
-if test "x$ac_cv_func_strcasestr" = xyes; then :
- $as_echo "#define HAVE_STRCASESTR 1" >>confdefs.h
-
-fi
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
if ${ac_cv_sys_largefile_source+:} false; then :
diff --git a/configure.ac b/configure.ac
index bb45ff6..88c7658 100644
--- a/configure.ac
+++ b/configure.ac
@@ -116,7 +116,6 @@ AC_CHECK_FUNC(vasprintf, [HAVE_VASPRINTF=1], [HAVE_VASPRINTF=0])
AC_DEFINE([HAVE_VASPRINTF])
AC_CHECK_FUNC(asprintf, [HAVE_ASPRINTF=1], [HAVE_ASPRINTF=0])
AC_DEFINE([HAVE_ASPRINTF])
-AC_CHECK_FUNC(strcasestr, AC_DEFINE([HAVE_STRCASESTR]))
AC_FUNC_FSEEKO()
dnl
diff --git a/doc/release_notes.xml b/doc/release_notes.xml
index fa2b304..63e19c7 100644
--- a/doc/release_notes.xml
+++ b/doc/release_notes.xml
@@ -4,8 +4,20 @@
<subtitle>Release Notes</subtitle>
<sect1>
- <title>Release 2.1.5</title>
- <para>Release date: 2014-12-18</para>
+ <title>Release 2.1.7</title>
+ <para>Release date: 2015-03-30</para>
+ <para>This is a critical bug fix release.</para>
+ <simplesect>
+ <title>Bug Fixes</title>
+ <para>#3086, ST_DumpValues() crashes backend on cleanup with invalid band indexes</para>
+ <para>#3088, Do not (re)define strcasestr in a liblwgeom.h</para>
+ <para>#3094, Malformed GeoJSON inputs crash backend</para>
+ </simplesect>
+ </sect1>
+
+ <sect1>
+ <title>Release 2.1.6</title>
+ <para>Release date: 2015-03-20</para>
<para>This is a bug fix and performance improvement release.</para>
<simplesect>
<title>Enhancements</title>
diff --git a/extensions/postgis/postgis.control b/extensions/postgis/postgis.control
index ad8d257..a25e0d5 100644
--- a/extensions/postgis/postgis.control
+++ b/extensions/postgis/postgis.control
@@ -1,5 +1,5 @@
# postgis extension
comment = 'PostGIS geometry, geography, and raster spatial types and functions'
-default_version = '2.1.6'
+default_version = '2.1.7'
module_pathname = '$libdir/postgis-2.1'
relocatable = true
diff --git a/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control b/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control
index 1732904..7b4efac 100644
--- a/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control
+++ b/extensions/postgis_tiger_geocoder/postgis_tiger_geocoder.control
@@ -1,6 +1,6 @@
# postgis tiger geocoder extension
comment = 'PostGIS tiger geocoder and reverse geocoder'
-default_version = '2.1.6'
+default_version = '2.1.7'
relocatable = false
schema = tiger
requires = 'postgis,fuzzystrmatch'
diff --git a/extensions/postgis_topology/postgis_topology.control b/extensions/postgis_topology/postgis_topology.control
index 9f8dc2c..02107f5 100644
--- a/extensions/postgis_topology/postgis_topology.control
+++ b/extensions/postgis_topology/postgis_topology.control
@@ -1,6 +1,6 @@
# postgis topology extension
comment = 'PostGIS topology spatial types and functions'
-default_version = '2.1.6'
+default_version = '2.1.7'
relocatable = false
schema = topology
requires = postgis
diff --git a/extensions/upgradeable_versions.mk b/extensions/upgradeable_versions.mk
index 24da730..a7d1929 100644
--- a/extensions/upgradeable_versions.mk
+++ b/extensions/upgradeable_versions.mk
@@ -14,7 +14,8 @@ UPGRADEABLE_VERSIONS = \
2.1.2 \
2.1.3 \
2.1.4 \
- 2.1.5
+ 2.1.5 \
+ 2.1.6
UPGRADEABLE_VERSIONS_MINOR = \
2.0.0 \
@@ -34,4 +35,5 @@ UPGRADEABLE_VERSIONS_PATCH = \
2.1.2 \
2.1.3 \
2.1.4 \
- 2.1.5
+ 2.1.5 \
+ 2.1.6
diff --git a/liblwgeom/liblwgeom.h.in b/liblwgeom/liblwgeom.h.in
index 446ea65..8a9d43d 100644
--- a/liblwgeom/liblwgeom.h.in
+++ b/liblwgeom/liblwgeom.h.in
@@ -1,5 +1,5 @@
/**********************************************************************
- * $Id: liblwgeom.h.in 13367 2015-03-20 13:53:44Z pramsey $
+ * $Id: liblwgeom.h.in 13391 2015-03-23 16:34:30Z strk $
*
* PostGIS - Spatial Types for PostgreSQL
*
@@ -1842,10 +1842,6 @@ extern void lwfree(void *mem);
/* Utilities */
extern char *lwmessage_truncate(char *str, int startpos, int endpos, int maxlength, int truncdirection);
-#ifndef HAVE_STRCASESTR
-extern char *strcasestr(const char *s, const char *find);
-#endif
-
/*******************************************************************************
* SQLMM internal functions - TODO: Move into separate header files
******************************************************************************/
diff --git a/liblwgeom/lwin_geojson.c b/liblwgeom/lwin_geojson.c
index 8899372..bf3d8ea 100644
--- a/liblwgeom/lwin_geojson.c
+++ b/liblwgeom/lwin_geojson.c
@@ -59,7 +59,11 @@ findMemberByName(json_object* poObj, const char* pszName )
if( NULL != json_object_get_object(poTmp) )
{
- assert( NULL != json_object_get_object(poTmp)->head );
+ if( NULL == json_object_get_object(poTmp)->head )
+ {
+ geojson_lwerror("invalid GeoJSON representation", 2);
+ return NULL;
+ }
for( it.entry = json_object_get_object(poTmp)->head;
( it.entry ?
@@ -90,7 +94,12 @@ parse_geojson_coord(json_object *poObj, int *hasz, POINTARRAY *pa)
const int nSize = json_object_array_length( poObj );
LWDEBUGF(3, "parse_geojson_coord called for array size %d.", nSize );
-
+ if ( nSize < 2 )
+ {
+ geojson_lwerror("Too few ordinates in GeoJSON", 4);
+ return LW_FAILURE;
+ }
+
// Read X coordinate
poObjCoord = json_object_array_get_idx( poObj, 0 );
pt.x = json_object_get_double( poObjCoord );
@@ -101,7 +110,7 @@ parse_geojson_coord(json_object *poObj, int *hasz, POINTARRAY *pa)
pt.y = json_object_get_double( poObjCoord );
LWDEBUGF(3, "parse_geojson_coord pt.y = %f.", pt.y );
- if( nSize == 3 ) /* should this be >= 3 ? */
+ if( nSize > 2 ) /* should this be >= 3 ? */
{
// Read Z coordinate
poObjCoord = json_object_array_get_idx( poObj, 2 );
@@ -109,19 +118,27 @@ parse_geojson_coord(json_object *poObj, int *hasz, POINTARRAY *pa)
LWDEBUGF(3, "parse_geojson_coord pt.z = %f.", pt.z );
*hasz = LW_TRUE;
}
- else
+ else if ( nSize == 2 )
{
*hasz = LW_FALSE;
/* Initialize Z coordinate, if required */
if ( FLAGS_GET_Z(pa->flags) ) pt.z = 0.0;
}
-
- /* TODO: should we account for nSize > 3 ? */
+ else
+ {
+ /* TODO: should we account for nSize > 3 ? */
+ /* more than 3 coordinates, we're just dropping dimensions here... */
+ }
/* Initialize M coordinate, if required */
if ( FLAGS_GET_M(pa->flags) ) pt.m = 0.0;
}
+ else
+ {
+ /* If it's not an array, just don't handle it */
+ return LW_FAILURE;
+ }
return ptarray_append_point(pa, &pt, LW_TRUE);
}
@@ -136,10 +153,11 @@ parse_geojson_point(json_object *geojson, int *hasz, int root_srid)
LWDEBUGF(3, "parse_geojson_point called with root_srid = %d.", root_srid );
coords = findMemberByName( geojson, "coordinates" );
- if ( ! coords ) {
+ if ( ! coords )
+ {
geojson_lwerror("Unable to find 'coordinates' in GeoJSON string", 4);
- return NULL;
- }
+ return NULL;
+ }
pa = ptarray_construct_empty(1, 0, 1);
parse_geojson_coord(coords, hasz, pa);
@@ -162,8 +180,8 @@ parse_geojson_linestring(json_object *geojson, int *hasz, int root_srid)
points = findMemberByName( geojson, "coordinates" );
if ( ! points ) {
geojson_lwerror("Unable to find 'coordinates' in GeoJSON string", 4);
- return NULL;
- }
+ return NULL;
+ }
pa = ptarray_construct_empty(1, 0, 1);
@@ -356,10 +374,11 @@ parse_geojson_multipolygon(json_object *geojson, int *hasz, int root_srid)
}
poObjPolys = findMemberByName( geojson, "coordinates" );
- if ( ! poObjPolys ) {
+ if ( ! poObjPolys )
+ {
geojson_lwerror("Unable to find 'coordinates' in GeoJSON string", 4);
- return NULL;
- }
+ return NULL;
+ }
if( json_type_array == json_object_get_type( poObjPolys ) )
{
@@ -432,10 +451,11 @@ parse_geojson_geometrycollection(json_object *geojson, int *hasz, int root_srid
}
poObjGeoms = findMemberByName( geojson, "geometries" );
- if ( ! poObjGeoms ) {
+ if ( ! poObjGeoms )
+ {
geojson_lwerror("Unable to find 'geometries' in GeoJSON string", 4);
- return NULL;
- }
+ return NULL;
+ }
if( json_type_array == json_object_get_type( poObjGeoms ) )
{
@@ -458,16 +478,18 @@ parse_geojson(json_object *geojson, int *hasz, int root_srid)
json_object* type = NULL;
const char* name;
- if( NULL == geojson ) {
+ if( NULL == geojson )
+ {
geojson_lwerror("invalid GeoJSON representation", 2);
- return NULL;
- }
+ return NULL;
+ }
type = findMemberByName( geojson, "type" );
- if( NULL == type ) {
+ if( NULL == type )
+ {
geojson_lwerror("unknown GeoJSON type", 3);
- return NULL;
- }
+ return NULL;
+ }
name = json_object_get_string( type );
diff --git a/liblwgeom/lwutil.c b/liblwgeom/lwutil.c
index 2f858f7..f7f00c9 100644
--- a/liblwgeom/lwutil.c
+++ b/liblwgeom/lwutil.c
@@ -343,23 +343,3 @@ clamp_srid(int srid)
return newsrid;
}
-#ifndef HAVE_STRCASESTR
-char *strcasestr(const char *s, const char *find)
-{
- char c, sc;
- size_t len;
-
- if ((c = *find++) != 0) {
- c = tolower((unsigned char)c);
- len = strlen(find);
- do {
- do {
- if ((sc = *s++) == 0)
- return (NULL);
- } while ((char)tolower((unsigned char)sc) != c);
- } while (strncasecmp(s, find, len) != 0);
- s--;
- }
- return ((char *)s);
-}
-#endif
diff --git a/libtool b/libtool
index 9d82d33..1e69385 100755
--- a/libtool
+++ b/libtool
@@ -1,6 +1,6 @@
#! /bin/sh
# Generated automatically by config.status ()
-# Libtool was configured on host Butterfly.local:
+# Libtool was configured on host Crane.local:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
@@ -88,7 +88,7 @@ EGREP="/usr/bin/grep -E"
FGREP="/usr/bin/grep -F"
# A BSD- or MS-compatible name lister.
-NM="/usr/bin/nm"
+NM="/opt/local/bin/nm"
# Whether we need soft or hard links.
LN_S="ln -s"
diff --git a/postgis/lwgeom_box.c b/postgis/lwgeom_box.c
index bd7469f..e353074 100644
--- a/postgis/lwgeom_box.c
+++ b/postgis/lwgeom_box.c
@@ -1,5 +1,5 @@
/**********************************************************************
- * $Id: lwgeom_box.c 13134 2014-12-01 08:47:21Z strk $
+ * $Id: lwgeom_box.c 13391 2015-03-23 16:34:30Z strk $
*
* PostGIS - Spatial Types for PostgreSQL
* http://postgis.net
@@ -52,12 +52,6 @@ Datum BOX2D_in(PG_FUNCTION_ARGS)
gbox_init(&box);
- if (strcasestr(str,"BOX(") != str )
- {
- elog(ERROR,"box2d parser - doesnt start with BOX(");
- PG_RETURN_NULL();
- }
-
for(i = 0; str[i]; i++) {
str[i] = tolower(str[i]);
}
diff --git a/postgis/sqldefines.h b/postgis/sqldefines.h
index 67e01ec..1902b06 100644
--- a/postgis/sqldefines.h
+++ b/postgis/sqldefines.h
@@ -9,7 +9,7 @@
#define POSTGIS_PGSQL_VERSION 93
#define POSTGIS_GEOS_VERSION 35
#define POSTGIS_PROJ_VERSION 48
-#define POSTGIS_LIB_VERSION '2.1.6'
+#define POSTGIS_LIB_VERSION '2.1.7'
#define POSTGIS_LIBXML2_VERSION 2.9.2
/*
@@ -18,12 +18,12 @@
* won't substitute within apostrophes)
*/
#define _POSTGIS_SQL_SELECT_POSTGIS_VERSION 'SELECT ''2.1 USE_GEOS=1 USE_PROJ=1 USE_STATS=1''::text AS version'
-#define _POSTGIS_SQL_SELECT_POSTGIS_BUILD_DATE 'SELECT ''2015-03-20 17:18:30''::text AS version'
+#define _POSTGIS_SQL_SELECT_POSTGIS_BUILD_DATE 'SELECT ''2015-03-30 12:54:40''::text AS version'
#if POSTGIS_SVN_REVISION
-#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.1.6'::text || ' r' || POSTGIS_SVN_REVISION::text AS version $$
+#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.1.7'::text || ' r' || POSTGIS_SVN_REVISION::text AS version $$
#else
-#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.1.6'::text AS version $$
+#define _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION $$ SELECT '2.1.7'::text AS version $$
#endif
#define SRID_USR_MAX 998999
diff --git a/postgis_svn_revision.h b/postgis_svn_revision.h
index b312c3c..1564b5a 100644
--- a/postgis_svn_revision.h
+++ b/postgis_svn_revision.h
@@ -1 +1 @@
-#define POSTGIS_SVN_REVISION 13384
+#define POSTGIS_SVN_REVISION 13414
diff --git a/raster/rt_pg/rt_pg.c b/raster/rt_pg/rt_pg.c
index 6873c1a..1d0cfaa 100644
--- a/raster/rt_pg/rt_pg.c
+++ b/raster/rt_pg/rt_pg.c
@@ -1,5 +1,5 @@
/*
- * $Id: rt_pg.c 13199 2015-01-24 17:33:34Z dustymugs $
+ * $Id: rt_pg.c 13394 2015-03-24 13:39:49Z dustymugs $
*
* WKTRaster - Raster Types for PostGIS
* http://trac.osgeo.org/postgis/wiki/WKTRaster
@@ -2754,16 +2754,20 @@ static void rtpg_dumpvalues_arg_destroy(rtpg_dumpvalues_arg arg) {
if (arg->nbands != NULL)
pfree(arg->nbands);
- for (i = 0; i < arg->numbands; i++) {
- if (arg->values[i] != NULL)
- pfree(arg->values[i]);
+ if (arg->values != NULL) {
+ for (i = 0; i < arg->numbands; i++) {
- if (arg->nodata[i] != NULL)
- pfree(arg->nodata[i]);
- }
+ if (arg->values[i] != NULL)
+ pfree(arg->values[i]);
+
+ if (arg->nodata[i] != NULL)
+ pfree(arg->nodata[i]);
+
+ }
- if (arg->values != NULL)
pfree(arg->values);
+ }
+
if (arg->nodata != NULL)
pfree(arg->nodata);
}
@@ -3535,7 +3539,7 @@ Datum RASTER_setPixelValuesArray(PG_FUNCTION_ARGS)
pfree(nulls);
}
/* hasnosetvalue and nosetvalue */
- else if (!PG_ARGISNULL(6) & PG_GETARG_BOOL(6)) {
+ else if (!PG_ARGISNULL(6) && PG_GETARG_BOOL(6)) {
hasnosetval = TRUE;
if (PG_ARGISNULL(7))
nosetvalisnull = TRUE;
diff --git a/raster/test/regress/rt_dumpvalues.sql b/raster/test/regress/rt_dumpvalues.sql
index a305bd8..1efad9b 100644
--- a/raster/test/regress/rt_dumpvalues.sql
+++ b/raster/test/regress/rt_dumpvalues.sql
@@ -100,4 +100,15 @@ DROP TABLE IF EXISTS raster_dumpvalues;
-- ticket #2493
-SELECT (ST_DumpValues(ST_AddBand(ST_MakeEmptyRaster(0, 0, 0, 0, 1), ARRAY[ROW(NULL, '8BUI', 255, 0),ROW(NULL, '16BUI', 1, 2)]::addbandarg[]))).*
+SELECT (ST_DumpValues(ST_AddBand(ST_MakeEmptyRaster(0, 0, 0, 0, 1), ARRAY[ROW(NULL, '8BUI', 255, 0),ROW(NULL, '16BUI', 1, 2)]::addbandarg[]))).*;
+
+-- #3086
+DROP TABLE IF EXISTS raster_tile;
+CREATE TABLE raster_tile AS
+ WITH foo AS (
+ SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL
+ SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast
+ )
+ SELECT ST_Union(rast) AS rast FROM foo;
+WITH foo AS (SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM raster_tile) SELECT (ST_DumpValues(rast, array[1,2,3])).* FROM foo;
+DROP TABLE IF EXISTS raster_tile;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/postgis.git
More information about the Pkg-grass-devel
mailing list