Skip to content

Commit cc7ae5d

Browse files
committed
Merge branch 'svn-trunk' of github.com:javisantana/postgis into svn-trunk
2 parents ffc54b5 + 4557106 commit cc7ae5d

File tree

6 files changed

+43
-4
lines changed

6 files changed

+43
-4
lines changed

NEWS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ PostGIS 2.2.0
3838
- #2527, Added -k flag to raster2pgsql to skip checking that
3939
band is NODATA
4040
- #2616, Reduce text casts during topology building and export
41+
- #2747, Add support for GDAL 2.0
4142

4243
* Bug Fixes *
4344

postgis/lwgeom_functions_analytic.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,16 @@ Datum LWGEOM_simplify2d(PG_FUNCTION_ARGS)
4444
{
4545
GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
4646
GSERIALIZED *result;
47-
LWGEOM *in = lwgeom_from_gserialized(geom);
47+
int type = gserialized_get_type(geom);
48+
LWGEOM *in;
4849
LWGEOM *out;
49-
double dist = PG_GETARG_FLOAT8(1);
50+
double dist;
51+
52+
if ( type == POINTTYPE || type == MULTIPOINTTYPE )
53+
PG_RETURN_POINTER(geom);
54+
55+
dist = PG_GETARG_FLOAT8(1);
56+
in = lwgeom_from_gserialized(geom);
5057

5158
out = lwgeom_simplify(in, dist);
5259
if ( ! out ) PG_RETURN_NULL();

raster/rt_core/rt_geometry.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,12 @@ rt_raster_gdal_polygonize(
910910
/*****************************
911911
* Register ogr mem driver
912912
*****************************/
913+
#ifdef GDAL_DCAP_RASTER
914+
/* in GDAL 2.0, OGRRegisterAll() is an alias to GDALAllRegister() */
915+
rt_util_gdal_register_all(0);
916+
#else
913917
OGRRegisterAll();
918+
#endif
914919

915920
RASTER_DEBUG(3, "creating OGR MEM vector");
916921

raster/rt_core/rt_raster.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1728,6 +1728,14 @@ rt_raster_gdal_drivers(uint32_t *drv_count, uint8_t cancc) {
17281728
for (i = 0, j = 0; i < count; i++) {
17291729
drv = GDALGetDriver(i);
17301730

1731+
#ifdef GDAL_DCAP_RASTER
1732+
/* Starting with GDAL 2.0, vector drivers can also be returned */
1733+
/* Only keep raster drivers */
1734+
state = GDALGetMetadataItem(drv, GDAL_DCAP_RASTER, NULL);
1735+
if (state == NULL || !EQUAL(state, "YES"))
1736+
continue;
1737+
#endif
1738+
17311739
if (cancc) {
17321740
/* CreateCopy support */
17331741
state = GDALGetMetadataItem(drv, GDAL_DCAP_CREATECOPY, NULL);

raster/rt_pg/Makefile.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,9 @@ rtpostgis_upgrade.sql.in: rtpostgis.sql ../../utils/postgis_proc_upgrade.pl
123123
$(PERL) ../../utils/postgis_proc_upgrade.pl $< UNUSED > $@
124124

125125
rtpostgis_upgrade.sql: rtpostgis_upgrade_cleanup.sql rtpostgis_drop.sql rtpostgis_upgrade.sql.in
126-
cat $^ > $@
126+
echo 'BEGIN;' > $@
127+
cat $^ | sed -e 's/^BEGIN;$$//' -e 's/^COMMIT;$$//' >> $@
128+
echo 'COMMIT;' >> $@
127129

128130
uninstall_rtpostgis.sql: rtpostgis.sql ../../utils/create_undef.pl
129131
$(PERL) ../../utils/create_undef.pl $< $(POSTGIS_PGSQL_VERSION) > $@

raster/rt_pg/rtpostgis.sql.in

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5713,32 +5713,40 @@ CREATE OR REPLACE FUNCTION raster_overlap(raster, raster)
57135713
LANGUAGE 'sql' IMMUTABLE STRICT;
57145714

57155715
-- raster/geometry functions
5716+
5717+
-- Availability: 2.0.0
57165718
CREATE OR REPLACE FUNCTION raster_geometry_contain(raster, geometry)
57175719
RETURNS bool
57185720
AS 'select $1::geometry ~ $2'
57195721
LANGUAGE 'sql' IMMUTABLE STRICT;
57205722

5723+
-- Availability: 2.0.5
57215724
CREATE OR REPLACE FUNCTION raster_contained_by_geometry(raster, geometry)
57225725
RETURNS bool
57235726
AS 'select $1::geometry @ $2'
57245727
LANGUAGE 'sql' IMMUTABLE STRICT;
57255728

5729+
-- Availability: 2.0.0
57265730
CREATE OR REPLACE FUNCTION raster_geometry_overlap(raster, geometry)
57275731
RETURNS bool
57285732
AS 'select $1::geometry && $2'
57295733
LANGUAGE 'sql' IMMUTABLE STRICT;
57305734

57315735
-- geometry/raster functions
5736+
5737+
-- Availability: 2.0.0
57325738
CREATE OR REPLACE FUNCTION geometry_raster_contain(geometry, raster)
57335739
RETURNS bool
57345740
AS 'select $1 ~ $2::geometry'
57355741
LANGUAGE 'sql' IMMUTABLE STRICT;
57365742

5743+
-- Availability: 2.0.5
57375744
CREATE OR REPLACE FUNCTION geometry_contained_by_raster(geometry, raster)
57385745
RETURNS bool
57395746
AS 'select $1 @ $2::geometry'
57405747
LANGUAGE 'sql' IMMUTABLE STRICT;
57415748

5749+
-- Availability: 2.0.0
57425750
CREATE OR REPLACE FUNCTION geometry_raster_overlap(geometry, raster)
57435751
RETURNS bool
57445752
AS 'select $1 && $2::geometry'
@@ -5821,37 +5829,45 @@ CREATE OPERATOR ~ (
58215829
);
58225830

58235831
-- raster/geometry operators
5832+
5833+
-- Availability: 2.0.0
58245834
CREATE OPERATOR ~ (
58255835
LEFTARG = raster, RIGHTARG = geometry, PROCEDURE = raster_geometry_contain,
58265836
-- COMMUTATOR = '@', -- see http://trac.osgeo.org/postgis/ticket/2532
58275837
RESTRICT = contsel, JOIN = contjoinsel
58285838
);
58295839

5840+
-- Availability: 2.0.5
58305841
CREATE OPERATOR @ (
58315842
LEFTARG = raster, RIGHTARG = geometry, PROCEDURE = raster_contained_by_geometry,
58325843
COMMUTATOR = '~',
58335844
RESTRICT = contsel, JOIN = contjoinsel
58345845
);
58355846

5847+
-- Availability: 2.0.0
58365848
CREATE OPERATOR && (
58375849
LEFTARG = raster, RIGHTARG = geometry, PROCEDURE = raster_geometry_overlap,
58385850
COMMUTATOR = '&&',
58395851
RESTRICT = contsel, JOIN = contjoinsel
58405852
);
58415853

58425854
-- geometry/raster operators
5855+
5856+
-- Availability: 2.0.0
58435857
CREATE OPERATOR ~ (
58445858
LEFTARG = geometry, RIGHTARG = raster, PROCEDURE = geometry_raster_contain,
58455859
-- COMMUTATOR = '@', -- see http://trac.osgeo.org/postgis/ticket/2532
58465860
RESTRICT = contsel, JOIN = contjoinsel
58475861
);
58485862

5863+
-- Availability: 2.0.5
58495864
CREATE OPERATOR @ (
58505865
LEFTARG = geometry, RIGHTARG = raster, PROCEDURE = geometry_contained_by_raster,
58515866
COMMUTATOR = '~',
58525867
RESTRICT = contsel, JOIN = contjoinsel
58535868
);
5854-
5869+
5870+
-- Availability: 2.0.0
58555871
CREATE OPERATOR && (
58565872
LEFTARG = geometry, RIGHTARG = raster, PROCEDURE = geometry_raster_overlap,
58575873
COMMUTATOR = '&&',

0 commit comments

Comments
 (0)