= Current best = As of 8 July 2019, these versions are latest and give you best stable feature coverage. * PostGIS 2.5.2 * PotgreSQL 11.4 * GEOS 3.7.2 https://github.com/libgeos/geos/blob/master/NEWS * SFCGAL 1.3.7 https://github.com/Oslandia/SFCGAL/releases * GDAL 3.0.1 https://github.com/OSGeo/gdal/releases * PROJ 6.1.1 https://github.com/OSGeo/PROJ/releases = PostGIS Support Matrix = '''Versions of PostgreSQL supported by which versions of PostGIS''' ||'''PostgreSQL version'''||'''PostGIS 1.3 EOL'''||'''PostGIS 1.4 EOL'''||'''PostGIS 1.5 EOL'''||'''PostGIS 2.0 EOL'''||'''PostGIS 2.1 EOL''' ||'''PostGIS 2.2 EOL ''' ||'''PostGIS 2.3'''||'''PostGIS 2.4'''||'''PostGIS 2.5'''||'''PostGIS 3.0 (Trunk)''' ||PostGIS release date|| 2007/08/09|| 2009/07/24|| 2010/02/04|| 2012/04/03|| 2013/08/17|| 2015/10/07|| 2016/09/26|| 2017/09/30|| 2018/09/23|| 2019/xx/xx|| ||'''12'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No||No||No||'''No*'''||'''Yes''' ||'''11'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No||No||Yes*||'''Yes'''||'''Yes''' ||'''10'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No||Yes (not recommended))||'''Yes'''||'''Yes'''||'''Yes''' ||'''9.6'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||Yes (not recommended)||'''Yes'''||'''Yes'''||'''Yes'''||'''Yes''' ||'''9.5'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||'''Yes'''||'''Yes'''||'''Yes'''||'''Yes'''||No ||'''9.4'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, Yes)]]||'''Yes'''||'''Yes'''||'''Yes'''||'''Yes'''||No ||'''[[span(style=color: grey, 9.3 EOL)]]'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 9.2 EOL)]]'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, Yes (not recommended))]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 9.1 EOL)]]'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 9.0 EOL)]]'''||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes (not recommended))]]||[[span(style=color: grey, Yes (not recommended))]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 8.4 EOL)]]'''||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes (not recommended))]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 8.3 EOL)]]'''||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 8.2 EOL)]]'''||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 8.1 EOL)]]'''||[[span(style=color: grey, Yes)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 8.0 EOL)]]'''||[[span(style=color: grey, Yes (not windows))]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] ||'''[[span(style=color: grey, 7.2-7.4 EOL)]]'''||[[span(style=color: grey, Yes (not windows))]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]] Versions of PostGIS labeled 'EOL' will no longer receive any micro updates or security patches. If you are running these you should upgrade to the latest version you can. The ''not recommended'' note means you can compile and install with that, but you'll be missing some functionality. ^*^ Means it currently does or doesn't but may change at release time. If you are compiling PostGIS 2.0+ with anything less than 9.1, you will not get CREATE EXTENSION support and will also not get KNN gist distance for geometry. As a general rule, the PostGIS Project Steering committee tries to maintain support of PostGIS for at least two versions of PostgreSQL. We most often support more than 2 PostgreSQL versions, if requirements do not necessitate bumping up requirement without too much effort. We will rarely support more than 5 PostgreSQL versions on any release. 64-bit Windows version support started in PostGIS 2.0.0 (both 9.0 and 9.1) '''Versions of GEOS support for PostGIS''' The below chart shows which versions of GEOS work with which versions of PostGIS. The none means that you can get that version to work without GEOS, though its not recommended since a lot of functions will not be installed. For the not recommended, this means that while you can get PostGIS to work with those versions, you'll be missing out on some PostGIS functions such as ST_Covers, ST_CoversBy and for PostGIS 1.5 the ST_HausdorffDistance and enhancements to ST_Buffer (both speed and functionality). GEOS 3.1 brought cascade union. GEOS 3.2 brought faster buffering and buffering enhancements, plus numerous enhancements with dealing with tolerance issues when unioning. GEOS 3.3 brought ST_ValidReason, ST_MakeValid etc (in the PostGIS 2.0 releases), so these functions will be disabled in PostGIS 2.0 if you are not running GEOS 3.3. GEOS 3.3. also brought stability fixes for union/buffer not back-ported to 3.2. For PostGIS 1.5, although 3.3 does not add any additional functions, it does fix some crashers involving buffering and unioning not present in other minor releases, so suggested to use that if you can. GEOS 3.4 introduced interruptibility features that allow you to cancel a query while in a GEOS loops. Prior versions of PostGIS/GEOS a query could run (even with statement timeout) until you ran out of memory. This new feature requires both PostGIS 2.1+ and GEOS 3.4+. 3.4 also brought [http://postgis.net/docs/manual-2.1/ST_DelaunayTriangles.html ST_DelaunayTriangles] so you won't get that in 2.1 if you don't compile for 3.4+. GEOS 3.5 brought some enhancements needed new features in PostGIS 2.2 [http://postgis.net/docs/manual-2.2/ST_Subdivide.html ST_Subdivide] and [http://postgis.net/docs/manual-2.2/ST_ClipByBox2D.html ST_ClipByBox2D]. GEOS 3.5 also brought ST_Voronoi so if compiled with lower than 3.5, the ST_Voronoi introduced in PostGIS 2.3 won't be available [http://postgis.net/docs/manual-2.3/ST_VoronoiLines.html ST_VoronoiLines and ST_VoronoiPolygons]. GEOS 3.6.0 came out after 2.3.0 release, so most 2.3 distros will not have enabled - [http://postgis.net/docs/manual-2.3/ST_MinimumClearance.html ST_MinimumClearance*] that require 3.6, but may in 2.3.1 ||'''Geos Version'''||'''PostGIS 1.3 EOL'''||'''PostGIS 1.4 EOL'''||'''PostGIS 1.5 EOL'''||'''PostGIS 2.0 EOL'''||'''PostGIS 2.1 EOL'''||'''PostGIS 2.2 EOL'''||'''PostGIS 2.3'''||'''PostGIS 2.4'''||'''PostGIS 2.5''' ||'''None'''||Yes (not recommended)||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No ||'''2.2 EOL'''||Yes (not recommended)||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No ||'''3.0 EOL'''||Yes||Yes (not recommended)||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No ||'''3.1 EOL'''||Yes||Yes||Yes (not recommended) (requires 3.1.1+)||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No ||'''3.2 EOL'''||Yes||Yes||Yes||Yes (not recommended)||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No ||'''3.3 EOL'''||Yes||Yes||Yes (preferred 3.3.3+)||Yes (3.3.9+)||Yes (not recommended)||Yes*||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No ||'''3.4'''||Yes||Yes||Yes (preferred 3.4.2+)||Yes (3.4.2+)||Yes||Yes*||Yes*||Yes*||No ||'''3.5'''||Yes||Yes||Yes||Yes||Yes||'''Yes''' (recommended)||Yes*||Yes*||Yes* ||'''3.6'''||Yes||Yes||Yes||Yes||Yes||'''Yes'''||'''Yes''' (recommended)||Yes*||Yes* ||'''3.7'''||Yes||Yes||Yes||Yes||Yes||'''Yes'''||'''Yes'''||'''Yes'''||'''Yes''' ||'''3.8*'''||Yes||Yes||Yes||Yes||Yes||'''Yes'''||'''Yes'''||'''Yes'''||'''Yes''' '''Versions of GDAL support for PostGIS''' PostGIS raster functionality (introduced in 2.0) depends on GDAL so to get raster functionality, you'll need to compile with GDAL support and preferably 1.9 or above. Although you can compile PostGIS 2.0 without raster support, you really should rethink that decision, especially if you are a package maintainer (you'll have a lot of pissed off users if you do :)). For PostgreSQL 9.1 extension support, compiling with raster support is ABSOLUTELY required since the postgis extension includes the raster functionality. * Means it currently does or doesn't but may change at release time. ||'''GDAL Version'''||'''Pre - PostGIS 2.0'''||'''PostGIS 2.0'''||'''PostGIS 2.1'''||'''PostGIS 2.2'''||'''PostGIS 2.3'''||'''PostGIS 2.4''' ||'''1.7'''||N/A||Yes (not recommended)||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||No ||'''1.8'''||N/A||Yes (not recommended)||Yes (not recommended)||Yes*||Yes* ||'''1.9'''||N/A||Yes||Yes||Yes||Yes ||'''1.10'''||N/A||Yes||Yes||Yes||Yes||Yes ||'''1.11'''||N/A||Yes||Yes||Yes||Yes||Yes ||'''2.0'''||N/A||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||Yes||Yes||Yes ||'''2.1'''||N/A||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||Yes||Yes||Yes ||'''2.2'''||N/A||[[span(style=color: grey, No)]]||[[span(style=color: grey, No)]]||Yes||Yes||Yes = Packaging status = Thanks https://repology.org/ for badges. ||'''PostGIS''' || '''PostgreSQL''' || '''GEOS''' || '''GDAL''' || '''SFCGAL''' || '''Proj''' || [[Image(https://repology.org/badge/vertical-allrepos/postgis.svg?header=)]] || [[Image(https://repology.org/badge/vertical-allrepos/postgresql.svg?header=)]] || [[Image(https://repology.org/badge/vertical-allrepos/geos.svg?header=)]] || [[Image(https://repology.org/badge/vertical-allrepos/gdal.svg?header=)]] || [[Image(https://repology.org/badge/vertical-allrepos/sfcgal.svg?header=)]] ||[[Image(https://repology.org/badge/vertical-allrepos/proj.svg?header=)]]