# pgRouting Manual (2.5)

## Release Notes

To see the full list of changes check the list of Git commits on Github.

Table of contents

- pgRouting 2.5.2 Release Notes
- pgRouting 2.5.1 Release Notes
- pgRouting 2.5.0 Release Notes
- pgRouting 2.4.2 Release Notes
- pgRouting 2.4.1 Release Notes
- pgRouting 2.4.0 Release Notes
- pgRouting 2.3.2 Release Notes
- pgRouting 2.3.1 Release Notes
- pgRouting 2.3.0 Release Notes
- pgRouting 2.2.4 Release Notes
- pgRouting 2.2.3 Release Notes
- pgRouting 2.2.2 Release Notes
- pgRouting 2.2.1 Release Notes
- pgRouting 2.2.0 Release Notes
- pgRouting 2.1.0 Release Notes
- pgRouting 2.0.1 Release Notes
- pgRouting 2.0.0 Release Notes
- pgRouting 1.x Release Notes

## pgRouting 2.5.2 Release Notes

To see the issues closed by this release see the Git closed milestone for 2.5.2 on Github.

Bug fixes

- Fix for postgresql 10.1: Removed a copiler condition

## pgRouting 2.5.1 Release Notes

To see the issues closed by this release see the Git closed milestone for 2.5.1 on Github.

Bug fixes

- Fixed prerequisite minimum version of: cmake

## pgRouting 2.5.0 Release Notes

To see the issues closed by this release see the Git closed issues for 2.5.0 on Github.

enhancement:

- pgr_version is now on SQL language

Breaking change on:

- pgr_edgeDisjointPaths:
  - Added path_id, cost and agg_cost columns on the result
  - Parameter names changed
  - The many version results are the union of the one to one version

New Signatures:

- pgr_bdAstar(one to one)

New Proposed functions

- pgr_bdAstar(one to many)
- pgr_bdAstar(many to one)
- pgr_bdAstar(many to many)
- pgr_bdAstarCost(one to one)
- pgr_bdAstarCost(one to many)
- pgr_bdAstarCost(many to one)
- pgr_bdAstarCost(many to many)
- pgr_bdAstarCostMatrix
- pgr_bdDijkstra(one to many)
- pgr_bdDijkstra(many to one)
- pgr_bdDijkstra(many to many)
- pgr_bdDijkstraCost(one to one)
- pgr_bdDijkstraCost(one to many)
- pgr_bdDijkstraCost(many to one)
- pgr_bdDijkstraCost(many to many)
- pgr_bdDijkstraCostMatrix
- pgr_lineGraph
- pgr_connectedComponents
- pgr_strongComponents
- pgr_biconnectedComponents
- pgr_articulationPoints
- pgr_bridges

Deprecated Signatures

- pgr_bdastar - use pgr_bdAstar instead

Renamed Functions

- pgr_maxFlowPushRelabel - use pgr_pushRelabel instead
- pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead
- pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead
- pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead

Deprecated function

- pgr_pointToEdgeNode

## pgRouting 2.4.2 Release Notes

To see the issues closed by this release see the Git closed milestone for 2.4.2 on Github.

Improvement

- Works for postgreSQL 10

Bug fixes

- Fixed: Unexpected error column “cname”
- Replace __linux__ with __GLIBC__ for glibc-specific headers and functions

## pgRouting 2.4.1 Release Notes

To see the issues closed by this release see the Git closed milestone for 2.4.1 on Github.

Bug fixes

- Fixed compiling error on macOS
- Condition error on pgr_withPoints

## pgRouting 2.4.0 Release Notes

To see the issues closed by this release see the Git closed issues for 2.4.0 on Github.

New Signatures

- pgr_bdDijkstra

New Proposed Signatures

- pgr_maxFlow
- pgr_astar(one to many)
- pgr_astar(many to one)
- pgr_astar(many to many)
- pgr_astarCost(one to one)
- pgr_astarCost(one to many)
- pgr_astarCost(many to one)
- pgr_astarCost(many to many)
- pgr_astarCostMatrix

Deprecated Signatures

- pgr_bddijkstra - use pgr_bdDijkstra instead

Deprecated Functions

- pgr_pointsToVids

Bug fixes

- Bug fixes on proposed functions
  - pgr_withPointsKSP: fixed ordering
- TRSP original code is used with no changes on the compilation warnings

## pgRouting 2.3.2 Release Notes

To see the issues closed by this release see the Git closed issues for 2.3.2 on Github.

Bug Fixes

- Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck.
- Fixed pgr_trsp:
  - Alternate code is not executed when the point is in reality a vertex
  - Fixed ambiguity on seq

## pgRouting 2.3.1 Release Notes

To see the issues closed by this release see the Git closed issues for 2.3.1 on Github.

Bug Fixes

- Leaks on proposed max_flow functions
- Regression error on pgr_trsp
- Types discrepancy on pgr_createVerticesTable

## pgRouting 2.3.0 Release Notes

To see the issues closed by this release see the Git closed issues for 2.3.0 on Github.

New Signatures

- pgr_TSP
- pgr_aStar

New Functions

- pgr_eucledianTSP

New Proposed functions

- pgr_dijkstraCostMatrix
- pgr_withPointsCostMatrix
- pgr_maxFlowPushRelabel(one to one)
- pgr_maxFlowPushRelabel(one to many)
- pgr_maxFlowPushRelabel(many to one)
- pgr_maxFlowPushRelabel(many to many)
- pgr_maxFlowEdmondsKarp(one to one)
- pgr_maxFlowEdmondsKarp(one to many)
- pgr_maxFlowEdmondsKarp(many to one)
- pgr_maxFlowEdmondsKarp(many to many)
- pgr_maxFlowBoykovKolmogorov (one to one)
- pgr_maxFlowBoykovKolmogorov (one to many)
- pgr_maxFlowBoykovKolmogorov (many to one)
- pgr_maxFlowBoykovKolmogorov (many to many)
- pgr_maximumCardinalityMatching
- pgr_edgeDisjointPaths(one to one)
- pgr_edgeDisjointPaths(one to many)
- pgr_edgeDisjointPaths(many to one)
- pgr_edgeDisjointPaths(many to many)
- pgr_contractGraph

Deprecated Signatures

- pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead
- pgr_astar - use pgr_aStar instead

Deprecated Functions

- pgr_flip_edges
- pgr_vidsToDmatrix
- pgr_pointsToDMatrix
- pgr_textToPoints

## pgRouting 2.2.4 Release Notes

To see the issues closed by this release see the Git closed issues for 2.2.4 on Github.

Bug Fixes

- Bogus uses of extern “C”
- Build error on Fedora 24 + GCC 6.0
- Regression error pgr_nodeNetwork

## pgRouting 2.2.3 Release Notes

To see the issues closed by this release see the Git closed issues for 2.2.3 on Github.

Bug Fixes

- Fixed compatibility issues with PostgreSQL 9.6.

## pgRouting 2.2.2 Release Notes

To see the issues closed by this release see the Git closed issues for 2.2.2 on Github.

Bug Fixes

- Fixed regression error on pgr_drivingDistance

## pgRouting 2.2.1 Release Notes

To see the issues closed by this release see the Git closed issues for 2.2.1 on Github.

Bug Fixes

- Server crash fix on pgr_alphaShape
- Bug fix on With Points family of functions

## pgRouting 2.2.0 Release Notes

To see the issues closed by this release see the Git closed issues for 2.2.0 on Github.

Improvements

- pgr_nodeNetwork
  - Adding a row_where and outall optional parameters
- Signature fix
  - pgr_dijkstra – to match what is documented

New Functions

- pgr_floydWarshall
- pgr_Johnson
- pgr_dijkstraCost(one to one)
- pgr_dijkstraCost(one to many)
- pgr_dijkstraCost(many to one)
- pgr_dijkstraCost(many to many)

Proposed functionality

- pgr_withPoints(one to one)
- pgr_withPoints(one to many)
- pgr_withPoints(many to one)
- pgr_withPoints(many to many)
- pgr_withPointsCost(one to one)
- pgr_withPointsCost(one to many)
- pgr_withPointsCost(many to one)
- pgr_withPointsCost(many to many)
- pgr_withPointsDD(single vertex)
- pgr_withPointsDD(multiple vertices)
- pgr_withPointsKSP
- pgr_dijkstraVia

Deprecated functions:

- pgr_apspWarshall use pgr_floydWarshall instead
- pgr_apspJohnson use pgr_Johnson instead
- pgr_kDijkstraCost use pgr_dijkstraCost instead
- pgr_kDijkstraPath use pgr_dijkstra instead

Renamed and deprecated function

- pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix

## pgRouting 2.1.0 Release Notes

To see the issues closed by this release see the Git closed issues for 2.1.0 on Github.

New Signatures

- pgr_dijkstra(one to many)
- pgr_dijkstra(many to one)
- pgr_dijkstra(many to many)
- pgr_drivingDistance(multiple vertices)

Refactored

- pgr_dijkstra(one to one)
- pgr_ksp
- pgr_drivingDistance(single vertex)

Improvements

- pgr_alphaShape function now can generate better (multi)polygon with holes and alpha parameter.

Proposed functionality

- Proposed functions from Steve Woodbridge, (Classified as Convenience by the author.)
  - pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on closest edge.
  - pgr_flipEdges - flip the edges in an array of geometries so the connect end to end.
  - pgr_textToPoints - convert a string of x,y;x,y;… locations into point geometries.
  - pgr_pointsToVids - convert an array of point geometries into vertex ids.
  - pgr_pointsToDMatrix - Create a distance matrix from an array of points.
  - pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id.
  - pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id.
- Added proposed functions from GSoc Projects:
  - pgr_vrppdtw
  - pgr_vrponedepot

Deprecated functions

- pgr_getColumnName
- pgr_getTableName
- pgr_isColumnCndexed
- pgr_isColumnInTable
- pgr_quote_ident
- pgr_versionless
- pgr_startPoint
- pgr_endPoint
- pgr_pointToId

No longer supported

- Removed the 1.x legacy functions

Bug Fixes

- Some bug fixes in other functions

Refactoring Internal Code

- A C and C++ library for developer was created
  - encapsulates postgreSQL related functions
  - encapsulates Boost.Graph graphs
    - Directed Boost.Graph
    - Undirected Boost.graph.
  - allow any-integer in the id’s
  - allow any-numerical on the cost/reverse_cost columns
- Instead of generating many libraries: - All functions are encapsulated in one library - The library has the prefix 2-1-0

## pgRouting 2.0.1 Release Notes

Minor bug fixes.

Bug Fixes

- No track of the bug fixes were kept.

## pgRouting 2.0.0 Release Notes

To see the issues closed by this release see the Git closed issues for 2.0.0 on Github.

With the release of pgRouting 2.0.0 the library has abandoned backwards compatibility to pgRouting 1.x releases. The main Goals for this release are:

- Major restructuring of pgRouting.
- Standardization of the function naming
- Preparation of the project for future development.

As a result of this effort:

- pgRouting has a simplified structure
- Significant new functionality has being added
- Documentation has being integrated
- Testing has being integrated
- And made it easier for multiple developers to make contributions.

Important Changes

- Graph Analytics - tools for detecting and fixing connection some problems in a graph
- A collection of useful utility functions
- Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)
- Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, pgr_bdDijkstra)
- One to many nodes search (pgr_kDijkstra)
- K alternate paths shortest path (pgr_ksp)
- New TSP solver that simplifies the code and the build process (pgr_tsp), dropped “Gaul Library” dependency
- Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star
- Dropped support for Shooting Star
- Built a test infrastructure that is run before major code changes are checked in
- Tested and fixed most all of the outstanding bugs reported against 1.x that existing in the 2.0-dev code base.
- Improved build process for Windows
- Automated testing on Linux and Windows platforms trigger by every commit
- Modular library design
- Compatibility with PostgreSQL 9.1 or newer
- Compatibility with PostGIS 2.0 or newer
- Installs as PostgreSQL EXTENSION
- Return types re factored and unified
- Support for table SCHEMA in function parameters
- Support for `st_` PostGIS function prefix
- Added `pgr_` prefix to functions and types
- Better documentation: http://docs.pgrouting.org
- shooting_star is discontinued

## pgRouting 1.x Release Notes

To see the issues closed by this release see the Git closed issues for 1.x on Github. The following release notes have been copied from the previous `RELEASE_NOTES` file and are kept as a reference.

### Changes for release 1.05

- Bug fixes

### Changes for release 1.03

- Much faster topology creation
- Bug fixes

### Changes for release 1.02

- Shooting* bug fixes
- Compilation problems solved

### Changes for release 1.01

- Shooting* bug fixes

### Changes for release 1.0

- Core and extra functions are separated
- Cmake build process
- Bug fixes

### Changes for release 1.0.0b

- Additional SQL file with more simple names for wrapper functions
- Bug fixes

### Changes for release 1.0.0a

- Shooting* shortest path algorithm for real road networks
- Several SQL bugs were fixed

### Changes for release 0.9.9

- PostgreSQL 8.2 support
- Shortest path functions return empty result if they could not find any path

### Changes for release 0.9.8

- Renumbering scheme was added to shortest path functions
- Directed shortest path functions were added
- routing_postgis.sql was modified to use dijkstra in TSP search