PostGIS 2.4.0
2017/09/30
* New Features *
- #3822, Have postgis_full_version() also show and check version of
PostgreSQL the scripts were built against (Sandro Santilli)
- #2411, curves support in ST_Reverse (Sandro Santilli)
- #2951, ST_Centroid for geography (Danny Götte)
- #3788, Allow postgis_restore.pl to work on directory-style (-Fd) dumps
(Roger Crew)
- #3772, Direction agnostic ST_CurveToLine output (Sandro Santilli / KKGeo)
- #2464, ST_CurveToLine with MaxError tolerance (Sandro Santilli / KKGeo)
- #3599, Geobuf output support via ST_AsGeobuf (Björn Harrtell)
- #3661, Mapbox vector tile output support via ST_AsMVT (Björn Harrtell / CartoDB)
- #3689, Add orientation checking and forcing functions (Dan Baston)
- #3753, Gist penalty speed improvements for 2D and ND points
(Darafei Praliaskouski, Andrey Borodin)
- #3677, ST_FrechetDistance (Shinichi Sugiyama)
- Most aggregates (raster and geometry),
and all stable / immutable (raster and geometry) marked as parallel safe
- #2249, ST_MakeEmptyCoverage for raster (David Zwarg, ainomieli)
- #3709, Allow signed distance for ST_Project (Darafei Praliaskouski)
- #524, Covers support for polygon on polygon, line on line,
point on line for geography (Danny Götte)
* Enhancements and Fixes*
- Many corrections to docs and several translations almost complete.
Andreas Schild who provided many corrections to core docs.
PostGIS Japanese translation team first to reach completion of translation.
- Support for PostgreSQL 10
- Preliminary support for PostgreSQL 11
- #3645, Avoid loading logically deleted records from shapefiles
- #3747, Add zip4 and address_alphanumeric as attributes
to norm_addy tiger_geocoder type.
- #3748, address_standardizer lookup tables update
so pagc_normalize_address better standardizes abbreviations
- #3647, better handling of noding in ST_Node using GEOSNode
(Wouter Geraedts)
- #3684, Update to EPSG register v9
(Even Rouault)
- #3830, Fix initialization of incompatible type (>=9.6) address_standardizer
- #3662, Make shp2pgsql work in debug mode by sending debug to stderr
- #3405, Fixed memory leak in lwgeom_to_points
- #3832, Support wide integer fields as int8 in shp2pgsql
- #3841, Deterministic sorting support for empty geometries in btree geography
- #3844, Make = operator a strict equality test, and < > to rough "spatial sorting"
- #3855, ST_AsTWKB memory and speed improvements
* Breaking Changes *
- Dropped support for PostgreSQL 9.2.
- #3810, GEOS 3.4.0 or above minimum required to compile
- Most aggregates now marked as parallel safe,
which means most aggs have to be dropped / recreated.
If you have views that utilize PostGIS aggs,
you'll need to drop before upgrade and recreate after upgrade
- #3578, ST_NumInteriorRings(POLYGON EMPTY) now returns 0 instead of NULL
- _ST_DumpPoints removed, was no longer needed after PostGIS 2.1.0
when ST_DumpPoints got reimplemented in C
- B-Tree index operators < = > changed to provide better spatial locality on sorting
and have expected behavior on GROUP BY.
If you have btree index for geometry or geography, you need to REINDEX it, or review
if it was created by accident and needs to be replaced with GiST index.
If your code relies on old left-to-right box compare ordering,
update it to use << >> operators
PostGIS 2.4.0rc3
2017/09/27
* Fixes and Enhancements since PostGIS 2.4.0rc2 *
- #3781 st_contains cannot handle curvepolygon / compoundcurve
consisting of only straight lines
- #3866 server crashing from large values in ST_AsTWKB
- #3818 Allow triangles unclosed in M to be WKT parsed
- several packaging changes regarding checking trailing blanks
PostGIS 2.4.0rc2
2017/09/24
* Fixes and Enhancements since PostGIS 2.4.0rc1 *
- Numerous fixes to ST_AsMVT, ST_AsGeoBuf
- ST_AsTWKB speed and memory performance enhancments
- ST_RepeatedPoints speed improvements
- ST_ConcaveHull bug fix
See PostGIS 2.4.0 section for details of
new features and enhancements in this release.
PostGIS 2.4.0rc1
2017/09/13
Note possible breaking changes since 2.4.0 beta1 release are:
* Breaking Changes *
- B-Tree index operators < = > changed to provide better spatial locality on sorting
and have expected behavior on GROUP BY.
If you have btree index for geometry or geography, you need to REINDEX it, or review
if it was created by accident and needs to be replaced with GiST index.
If your code relies on old left-to-right box compare ordering,
update it to use << >> operators.
- ST_AsMVT aggregate now overloaded and arg order changed.
Check your code if you are already using this function.
- _ST_DumpPoints removed, was no longer needed after PostGIS 2.1.0
when ST_DumpPoints got reimplemented in C
Upstream has very complicated ifdefs that try to define UNIX
everywhere but windows, except that it fails to include NetBSD. Then,
it uses UNIX to avoid using the non-standard stricmp and instead use
the POSIX-conforming strcasecmp.
For pkgsrc, rip out an entire screenful of complexity and just define
UNIX if not defined. Resolves build on NetBSD 7, and probably other places.
Drop build patch incorporated upstream.
Upstream changes:
PostGIS 2.3.1 (2016/11/28)
* Bug fixes
PostGIS 2.3.0 (2016/09/26)
* Important / Breaking Changes
- #3466, Casting from box3d to geometry now returns a 3D
geometry (Julien Rouhaud of Dalibo)
- #3604, pgcommon/Makefile.in orders CFLAGS incorrectly leading to
wrong liblwgeom.h (Greg Troxel)
- #3396, ST_EstimatedExtent, throw WARNING instead of ERROR
(Regina Obe)
* New Features
- Add support for custom TOC in postgis_restore.pl
(Christoph Moench-Tegeder)
- Add support for negative indexing in ST_PointN and ST_SetPoint
(Rémi Cura)
- Add parameters for geography ST_Buffer (Thomas Bonfort)
- TopoGeom_addElement, TopoGeom_remElement (Sandro Santilli)
- populate_topology_layer (Sandro Santilli)
- #454, ST_WrapX and lwgeom_wrapx (Sandro Santilli)
- #1758, ST_Normalize (Sandro Santilli)
- #2236, shp2pgsql -d now emits "DROP TABLE IF EXISTS"
- #2259, ST_VoronoiPolygons and ST_VoronoiLines (Dan Baston)
- #2841 and #2996, ST_MinimumBoundingRadius and new ST_MinimumBoundingCircle
implementation using Welzl's algorithm (Dan Baston)
- #2991, Enable ST_Transform to use PROJ.4 text (Mike Toews)
- #3059, Allow passing per-dimension parameters in ST_Expand (Dan Baston)
- #3339, ST_GeneratePoints (Paul Ramsey)
- #3362, ST_ClusterDBSCAN (Dan Baston)
- #3364, ST_GeometricMedian (Dan Baston)
- #3391, Add table inheritance support in ST_EstimatedExtent
(Alessandro Pasotti)
- #3424, ST_MinimumClearance (Dan Baston)
- #3428, ST_Points (Dan Baston)
- #3465, ST_ClusterKMeans (Paul Ramsey)
- #3469, ST_MakeLine with MULTIPOINTs (Paul Norman)
- #3549, Support PgSQL 9.6 parallel query mode, as far as possible
(Paul Ramsey, Regina Obe)
- #3557, Geometry function costs based on query stats (Paul Norman)
- #3591, Add support for BRIN indexes. PostgreSQL 9.4+ required.
(Giuseppe Broccolo of 2nd Quadrant, Julien Rouhaud
and Ronan Dunklau of Dalibo)
- #3496, Make postgis non-relocateable for extension install,
schema qualify calls in functions (Regina Obe)
Should resolve once and for all for extensions #3494, #3486, #3076
- #3547, Update tiger geocoder to support TIGER 2016
and to support both http and ftp.
- #3613, Segmentize geography using equal length segments
(Hugo Mercier of Oslandia)
* Bug Fixes
* Performance Enhancements
- #75, Enhancement to PIP short circuit (Dan Baston)
- #3383, Avoid deserializing small geometries during index operations
(Dan Baston)
- #3400, Minor optimization of PIP routines (Dan Baston)
- Make adding a line to topology interruptible (Sandro Santilli)
PostGIS 2.2.2
2016/03/22
* Bug Fixes *
- #3463, Fix crash on face-collapsing edge change
- #3422, Improve ST_Split robustness on standard precision double
systems (arm64, ppc64el, s390c, powerpc, ...)
- #3427, Update spatial_ref_sys to EPSG version 8.8
- #3433, ST_ClusterIntersecting incorrect for MultiPoints
- #3435, ST_AsX3D fix rendering of concave geometries
- #3436, memory handling mistake in ptarray_clone_deep
- #3437, ST_ClusterIntersecting incorrect for MultiPoints
- #3461, ST_GeomFromKML crashes Postgres when there are
innerBoundaryIs and no outerBoundaryIs
- #3429, upgrading to 2.3 or from 2.1 can cause loop/hang on some
platforms
- #3460, ST_ClusterWithin 'Tolerance not defined' error after upgrade
- #3490, Raster data restore issues, materialized views
Scripts postgis_proc_set_search_path.sql, rtpostgis_proc_set_search_path.sql
refere to http://postgis.net/docs/manual-2.2/RT_FAQ.html#faq_raster_data_not_restore
- #3426, failing POINT EMPTY tests on fun architectures
(Passes make check on netbsd-6 i386 with pgsql 9.3.)
PostGIS 2.2.1
2016/01/06
* Bug Fixes *
- #2232, avoid accumulated error in SVG rounding
- #3321, Fix performance regression in topology loading
- #3329, Fix robustness regression in TopoGeo_addPoint
- #3349, Fix installation path of postgis_topology scripts
- #3351, set endnodes isolation on ST_RemoveIsoEdge
(and lwt_RemIsoEdge)
- #3355, geography ST_Segmentize has geometry bbox
- #3359, Fix toTopoGeom loss of low-id primitives from
TopoGeometry definition
- #3360, _raster_constraint_info_scale invalid input syntax
- #3375, crash in repeated point removal for collection(point)
- #3378, Fix handling of hierarchical TopoGeometries
in presence of multiple topologies
- #3380, #3402, Decimate lines on topology load
- #3388, #3410, Fix missing end-points in ST_Removepoints
- #3389, Buffer overflow in lwgeom_to_geojson
- #3390, Compilation under Alpine Linux 3.2
gives an error when compiling the postgis and postgis_topology extension
- #3393, ST_Area NaN for some polygons
- #3401, Improve ST_Split robustness on 32bit systems
- #3404, ST_ClusterWithin crashes backend
- #3407, Fix crash on splitting a face or an edge
defining multiple TopoGeometry objects
- #3411, Clustering functions not using spatial index
- #3412, Improve robustness of snapping step in TopoGeo_addLinestring
- #3415, Fix OSX 10.9 build under pkgsrc
- Fix memory leak in lwt_ChangeEdgeGeom [liblwgeom]
Disable address standardizer, which seems to build if some of what it
requires (pcre) happens to be installed, until I figure out if it should
be built and require the dependencies.
Add patches (already reported upstream) to work around upstream using
PERL from pgxs, which is "missing" in pkgsrc, because the
postgresql-client build didn't require perl, and to use @PERL@, found
by postgis configure instead.
Passes tests on NetBSD-6 i386 with postgresql93.
PostGIS 2.2.0
2015/10/07
* Important / Breaking Changes *
- PROJ4 4.6 and higher only
- #2703, KNN <-> operator now returns the correct distance ordering
for all geometry types, not just for points. Code that expects
the looser "centroid distance" ordering should be updated.
- #3022, ValidateTopology swapped meaning of id1 and id2 for the
'edge crosses node' error (now edge_id,node_id)
- #2565, ST_SummaryStats(tablename, rastercolumn, ...) uses
ST_SummaryStatsAgg()
- #2567, ST_Count(tablename, rastercolumn, ...) uses ST_CountAgg()
- #2842, raster - Hide unselectable tables from raster_overview
and raster_columns
- By default, PostGIS raster disables all GDAL drivers affecting
out-db rasters, ST_FromGDALRaster() and ST_AsGDALRaster() variants
- #3181, POINT EMPTY is now stored as POINT(NaN NaN) in WKB, instead of as MULTIPOINT EMPTY
- Java binding moved to separate repository:
https://github.com/postgis/postgis-java
* Deprecated signatures *
- #2748, ST_Shift_Longitude renamed to ST_ShiftLongitude,
ST_Find_Extent renamed to ST_FindExtent,
ST_Combine_BBox renamed to ST_CombineBbox,
ST_Length_Spheroid renamed to ST_LengthSpheroid,
ST_Distance_Spheroid renamed to ST_DistanceSpheroid,
ST_Distance_Sphere renamed to ST_DistanceSphere,
ST_3DLength_Spheroid deprecated (use ST_LengthSpheroid)
- #2769, ST_Mem_Size renamed to ST_MemSize
- #2565, ST_SummaryStats(tablename, rastercolumn, ...)
- #2567, ST_Count(tablename, rastercolumn, ...)
* New Features *
- Topology API in liblwgeom
(Sandro Santilli / Regione Toscana - SITA)
- New lwgeom_version method in liblwgeom
- New lwgeom_unaryunion method in liblwgeom
- New lwgeom_linemerge method in liblwgeom
- New lwgeom_is_simple method in liblwgeom
- #3117, Add SFCGAL 1.1 support: add ST_3DDifference, ST_3DUnion,
ST_Volume, ST_MakeSolid, ST_IsSolid (Vincent Mora / Oslandia)
- #3169, ST_ApproximateMedialAxis (Sandro Santilli)
- ST_CPAWithin (Sandro Santilli / Boundless)
- Add |=| operator with CPA semantic and KNN support with PgSQL 9.5+
(Sandro Santilli / Boundless)
- #3131, KNN support for the geography type (Paul Ramsey / CartoDB)
- #3023, ST_ClusterIntersecting / ST_ClusterWithin (Dan Baston)
- #2703, Exact KNN results for all geometry types, aka "KNN re-check" (Paul Ramsey / CartoDB)
- #1137, Allow a tolerance value in ST_RemoveRepeatedPoints (Paul Ramsey / CartoDB)
- #3062, Allow passing M factor to ST_Scale (Sandro Santilli / Boundless)
- #3139, ST_BoundingDiagonal (Sandro Santilli / Boundless)
- #3129, ST_IsValidTrajectory (Sandro Santilli / Boundless)
- #3128, ST_ClosestPointOfApproach (Sandro Santilli / Boundless)
- #3152, ST_DistanceCPA (Sandro Santilli / Boundless)
- Canonical output for index key types
- ST_SwapOrdinates (Sandro Santilli / Boundless)
- #2918, Use GeographicLib functions for geodetics (Mike Toews)
- #3074, ST_Subdivide to break up large geometry (Paul Ramsey / CartoDB)
- #3040, KNN GiST index based centroid (<<->>)
n-D distance operators (Sandro Santilli / Boundless)
- Interruptibility API for liblwgeom (Sandro Santilli / CartoDB)
- #2939, ST_ClipByBox2D (Sandro Santilli / CartoDB)
- #2247, ST_Retile and ST_CreateOverview: in-db raster overviews creation
(Sandro Santilli / Vizzuality)
- #899, -m shp2pgsql attribute names mapping -m switch
(Regina Obe / Sandro Santilli)
- #1678, Added GUC postgis.gdal_datapath to specify GDAL config
variable GDAL_DATA
- #2843, Support reprojection on raster import
(Sandro Santilli / Vizzuality)
- #2349, Support for encoded_polyline input/output (Kashif Rasul)
- #2159, report libjson version from postgis_full_version()
- #2770, ST_MemSize(raster)
- Add postgis_noop(raster)
- Added missing variants of ST_TPI(), ST_TRI() and ST_Roughness()
- Added GUC postgis.gdal_enabled_drivers to specify GDAL config
variable GDAL_SKIP
- Added GUC postgis.enable_outdb_rasters to enable access to
rasters with out-db bands
- #2387, address_standardizer extension as part of PostGIS
Stephen Woodbridge (imaptools.com), Walter Sinclair, Regina Obe
- #2816, address_standardizer_data_us extension
provides reference lex,gaz,rules for address_standardizer
Stephen Woodbridge (imaptools.com), Walter Sinclair, Regina Obe
- #2341, New mask parameter for ST_MapAlgebra
- #2397, read encoding info automatically in shapefile loader
- #2430, ST_ForceCurve
- #2565, ST_SummaryStatsAgg()
- #2567, ST_CountAgg()
- #2632, ST_AsGML() support for curved features
- #2652, Add --upgrade-path switch to run_test.pl
- #2754, sfcgal wrapped as an extension
- #2227, Simplification with Visvalingam-Whyatt algorithm
ST_SimplifyVW, ST_SetEffectiveArea (Nicklas Avén)
- Functions to encode and decode TWKB
ST_AsTWKB, ST_GeomFromTWKB (Paul Ramsey / Nicklas Avén / CartoDB)
* Enhancements *
- #3223, Add memcmp short-circuit to ST_Equals (Daniel Baston)
- #3227, Tiger geocoder upgraded to support Tiger 2015 census
- #2278, Make liblwgeom compatible between minor releases
- #897, ST_AsX3D support for GeoCoordinates and systems "GD" "WE"
ability to flip x/y axis (use option = 2, 3)
- ST_Split: allow splitting lines by multilines, multipoints
and (multi)polygon boundaries
- #3070, Simplify geometry type constraint
- #2839, Implement selectivity estimator for functional indexes,
speeding up spatial queries on raster tables.
(Sandro Santilli / Vizzuality)
- #2361, Added spatial_index column to raster_columns view
- #2390, Testsuite for pgsql2shp
- #2527, Added -k flag to raster2pgsql to skip checking that
band is NODATA
- #2616, Reduce text casts during topology building and export
- #2717, support startpoint, endpoint, pointn, numpoints for compoundcurve
- #2747, Add support for GDAL 2.0
- #2754, SFCGAL can now be installed with CREATE EXTENSION
Vincent Mora (Oslandia)
- #2828, Convert ST_Envelope(raster) from SQL to C
- #2829, Shortcut ST_Clip(raster) if geometry fully contains the raster
and no NODATA specified
- #2906, Update tiger geocoder to handle tiger 2014 data
- #3048, Speed up geometry simplification (J.Santana @ CartoDB)
- #3092, Slow performance of geometry_columns with many tables
* Bug Fixes *
- #2893, Allow interruptibility of ST_Segmentize(geometry)
(Sandro Santilli / CartoDB)
- #2540, Change GUC name for GDAL_DATA to postgis.gdal_datapath
- #2777, Raster max extent constraint based upon envelope to behave
like geometry extent
- #2822, Use @ operator instead of ST_CoveredBy() for raster
max extent constraint
- #3018, GROUP BY geography sometimes returns duplicate rows
- #3020, ST_AddBand out-db bug where height using width value
- #3048, shp2pgsql - illegal number format when specific system locale set
- #3061, Allow duplicate points in JSON, GML, GML ST_GeomFrom* functions
- #3086, ST_DumpValues() crashes backend on cleanup with invalid
band indexes
Problems found with existing distfiles:
distfiles/D6.data.ros.gz
distfiles/cstore0.2.tar.gz
distfiles/data4.tar.gz
distfiles/sphinx-2.2.7-release.tar.gz
No changes made to the cstore or mariadb55-client distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
- #3159, do not force a bbox cache on ST_Affine
- #3018, GROUP BY geography sometimes returns duplicate rows
- #3048, shp2pgsql - illegal number format when specific system locale set
- #3094, Malformed GeoJSON inputs crash backend
- #3104, st_asgml introduces random characters in ID field
- #3155, Remove liblwgeom.h on make uninstall
- #3177, gserialized_is_empty cannot handle nested empty cases
- Fix crash in ST_LineLocatePoint
Enhancements
#2745, Speedup ST_Simplify calls against points
#2747, Support for GDAL 2.0
#2749, Make rtpostgisupgrade20_21.sql ACID
#2811, Do not specify index names when loading shapefiles/rasters
#2829, Shortcut ST_Clip(raster) if geometry fully contains the raster
and no NODATA specified
#2895, Raise cost of ST_ConvexHull(raster) to 300 for better query plans
[Many bugfixes omitted]
(This is minor update and a leaf package.)
PostGIS adds support for geographic objects to the PostgreSQL object-relational
database. In effect, PostGIS "spatially enables" the PostgreSQL server,
allowing it to be used as a backend spatial database for geographic information
systems (GIS), much like ESRI's SDE or Oracle's Spatial extension. PostGIS
follows the OpenGIS "Simple Features Specification for SQL" and has been
certified as compliant with the "Types and Functions" profile.
PostGIS/PostgreSQL includes the following functionality:
* Simple Features as defined by the OpenGIS Consortium (OGC)
* Support for Well-Known Text and Well-Known Binary representations of GIS
objects
* Fast spatial indexing using GiST
* Geospatial analysis functions
* PostgreSQL JDBC extension objects corresponding to the geometries
* Support for OGC access functions as defined by the Simple Features
Specification
This is postgis 2.x, the currently-maintained and recommended version.