diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 00000000000..1c483387e8f
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,14 @@
+Checks: >
+ google-*,
+ -google-readability-casting,
+ clang-analyzer-*,
+ clang-diagnostic-*,
+ cppcoreguidelines-avoid-capturing-lambda-coroutines,
+ cppcoreguidelines-avoid-goto,
+ cppcoreguidelines-avoid-non-const-global-variables,
+ cppcoreguidelines-avoid-reference-coroutine-parameters
+
+WarningsAsErrors: ''
+HeaderFilterRegex: './include'
+FormatStyle: none
+InheritParentConfig: true
diff --git a/.github/scripts/tidy-vs-commit.sh b/.github/scripts/tidy-vs-commit.sh
deleted file mode 100755
index ae8328a74ae..00000000000
--- a/.github/scripts/tidy-vs-commit.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-# Runs clang-tidy only on changed files
-
-readonly BASE=$1
-readonly BUILD_DIR=build
-
-MODIFIED_FILES=$(git diff-tree --no-commit-id --diff-filter=d --name-only -r "$BASE" HEAD | grep '\.c')
-MODIFIED_HEADERS=$(git diff-tree --no-commit-id --diff-filter=d --name-only -r "$BASE" HEAD | grep '\.h')
-POSTGRES_SERVER=$(grep -o -m1 '\-isystem .*' "${BUILD_DIR}/compile_commands.json" | head -1 | awk '{print $2}')
-
-echo "POSTGRES_SERVER ${POSTGRES_SERVER}"
-
-CHECKS="-checks=clang-analyzer-*"
-
-if [ -z "${MODIFIED_FILES}" ] && [ -z "${MODIFIED_HEADERS}" ]; then
- echo "No paths modified"
- exit 0
-fi
-
-# C/C++ use the compile command
-if [ ${#MODIFIED_FILES[@]} != 0 ] ; then
- for f in ${MODIFIED_FILES}
- do
- if [ "${f##*.}" == 'conf' ]; then continue; fi
- echo "${f}"
- clang-tidy -p "${BUILD_DIR}" "${CHECKS}" -header-filter="^$(pwd).*" "${f}"
- done
-fi
-
-# H/HPP do not have a compile command
-# workaround: add the includes
-if [ ${#MODIFIED_HEADERS[@]} != 0 ] ; then
- for f in ${MODIFIED_HEADERS}
- do
- echo "${f}"
- clang-tidy "${CHECKS}" -header-filter=.* "${f}" \
- -- -I./include -isystem "${POSTGRES_SERVER}"
- done
-fi
diff --git a/tools/transifex/update_locale.sh b/.github/scripts/update_locale.sh
similarity index 93%
rename from tools/transifex/update_locale.sh
rename to .github/scripts/update_locale.sh
index 95684f7a129..31010017a80 100755
--- a/tools/transifex/update_locale.sh
+++ b/.github/scripts/update_locale.sh
@@ -20,14 +20,13 @@
# ------------------------------------------------------------------------------
-
DIR=$(git rev-parse --show-toplevel)
pushd "${DIR}" > /dev/null || exit 1
mkdir -p build
pushd build > /dev/null || exit 1
-cmake -DWITH_DOC=ON -DCMAKE_BUILD_TYPE=Release -DLOCALE=ON ..
+cmake -DBUILD_HTML=OFF -DBUILD_LOCALE=ON ..
make locale
popd > /dev/null || exit 1
@@ -39,7 +38,9 @@ perl -ne '/\/en\// && print' build/doc/locale_changes_po.txt | \
perl -pe 's/(.*)en\/LC_MESSAGES(.*)/$1pot$2t/' >> build/doc/locale_changes_po_pot.txt # .pot files
# Remove obsolete entries #~ from .po files
-bash tools/transifex/remove_obsolete_entries.sh
+find locale -type f -name '*.po' -exec sh -c '
+ msgattrib --no-obsolete -o "$f" "$f"
+ ' sh {} \;
while read -r f; do git add "$f"; done < build/doc/locale_changes_po_pot.txt
diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml
index 141dc3e6738..0d940b5501a 100644
--- a/.github/workflows/boost_version.yml
+++ b/.github/workflows/boost_version.yml
@@ -36,13 +36,11 @@ on:
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- - './CMakeLists.txt'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
- tags: []
-
pull_request:
paths:
- '.github/workflows/boost_version.yml'
@@ -50,7 +48,7 @@ on:
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- - './CMakeLists.txt'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
@@ -131,5 +129,5 @@ jobs:
sudo service postgresql start
psql -c "CREATE DATABASE ___pgr___test___;"
DIR=$(git rev-parse --show-toplevel)
- bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.8.0"
+ bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "4.0.0"
pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap"
diff --git a/.github/workflows/centos.yml b/.github/workflows/centos.yml
index 76a8beda9da..e3c3af437a2 100644
--- a/.github/workflows/centos.yml
+++ b/.github/workflows/centos.yml
@@ -12,7 +12,7 @@ on:
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- - './CMakeLists.txt'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
diff --git a/.github/workflows/check-files.yml b/.github/workflows/check-files.yml
index 0ee5da26372..452a4bc3f85 100644
--- a/.github/workflows/check-files.yml
+++ b/.github/workflows/check-files.yml
@@ -63,7 +63,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v5
- - name: Install Requirements
+ - name: Checkout cpplint
uses: actions/checkout@v5
with:
repository: 'cpplint/cpplint'
diff --git a/.github/workflows/check-queries.yml b/.github/workflows/check-queries.yml
index 7f86380988a..bc5addea6e4 100644
--- a/.github/workflows/check-queries.yml
+++ b/.github/workflows/check-queries.yml
@@ -26,8 +26,6 @@ on:
branches-ignore:
- 'gh-pages'
- tags: []
-
pull_request:
paths:
- '.github/workflows/check-queries.yml'
@@ -50,7 +48,7 @@ permissions:
jobs:
build:
- name: Check queries
+ name: Build
runs-on: ubuntu-latest
strategy:
@@ -78,6 +76,7 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -y \
+ doxygen graphviz \
libboost-graph-dev \
libtap-parser-sourcehandler-pgtap-perl \
postgresql-${PGVER} \
@@ -91,7 +90,7 @@ jobs:
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
- cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Debug ..
+ cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Debug -DBUILD_DOXY=ON ..
- name: Build
run: |
@@ -121,3 +120,11 @@ jobs:
done
./tools/testers/doc_queries_generator.pl -pgver "${PGVER}"
+
+ - name: Check Developers Documentation
+ run: |
+ cd build
+ make doxy
+ more DOXYLOG
+ [ ! -s DOXYLOG ] || echo "There are Doxygen warnings"
+ [ ! -s DOXYLOG ] || exit 1
diff --git a/.github/workflows/clang.yml b/.github/workflows/clang.yml
index 2a5891b23ea..d3d3317f2b7 100644
--- a/.github/workflows/clang.yml
+++ b/.github/workflows/clang.yml
@@ -19,13 +19,11 @@ on:
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- - './CMakeLists.txt'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
- tags: []
-
pull_request:
paths:
- '.github/workflows/clang.yml'
@@ -33,7 +31,7 @@ on:
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- - './CMakeLists.txt'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
@@ -48,10 +46,13 @@ permissions:
jobs:
Test_clang:
name: Ubuntu clang
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
+ matrix:
+ release: [Debug, Release]
+ os: [ubuntu-latest, ubuntu-22.04]
steps:
- uses: actions/checkout@v5
@@ -64,12 +65,21 @@ jobs:
echo "PGIS=3" >> $GITHUB_ENV
echo "PGPORT=5432" >> $GITHUB_ENV
+ - name: 'Raise Priority for apt.postgresql.org'
+ run: |
+ cat << EOF >> ./pgdg.pref
+ Package: *
+ Pin: release o=apt.postgresql.org
+ Pin-Priority: 600
+ EOF
+ sudo mv ./pgdg.pref /etc/apt/preferences.d/
+ sudo apt update
+
- name: Add PostgreSQL APT repository
run: |
- sudo apt-get install curl ca-certificates gnupg
- curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ \
- $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
+ sudo apt-get -y purge postgresql-*
+ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg-testing main ${PGVER}" > /etc/apt/sources.list.d/pgdg.list'
+ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
- name: Install dependencies
run: |
@@ -84,12 +94,14 @@ jobs:
postgresql-${PGVER}-postgis-${PGIS}-scripts \
postgresql-server-dev-${PGVER}
- - name: Configure
+ - name: Configure for clang
run: |
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
- CXX=clang++ CC=clang cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Debug -DWITH_DOC=OFF ..
+ CXX=clang++ CC=clang cmake -DPOSTGRESQL_VERSION=${PGVER} \
+ -DCMAKE_BUILD_TYPE=${{ matrix.release }} -DBUILD_HTML=OFF -DBUILD_DOXY=OFF \
+ -DUSE_CLANG_TIDY=ON ..
- name: Build
run: |
diff --git a/.github/workflows/doc-check.yml b/.github/workflows/doc-check.yml
index 8fe743a72a8..5cbd97ae19a 100644
--- a/.github/workflows/doc-check.yml
+++ b/.github/workflows/doc-check.yml
@@ -25,8 +25,6 @@ on:
branches-ignore:
- 'gh-pages'
- tags: []
-
pull_request:
paths:
- '.github/workflows/doc-check.yml'
@@ -52,7 +50,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- language: [en,es,zh_Hans]
+ language: [en, es, zh_Hans, sv]
steps:
- uses: actions/checkout@v5
@@ -62,7 +60,7 @@ jobs:
- name: check modified files
id: check_files
run: |
- # allways processing english, no matter what the change was
+ # always processing english, no matter what the change was
if [[ "${{ matrix.language }}" == "en" ]]; then echo "PROCESS=true" >> $GITHUB_ENV; exit 0; fi
# when this file changes all languages are tested
@@ -93,7 +91,7 @@ jobs:
- name: Install python
if: env.PROCESS == 'true'
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
@@ -103,14 +101,11 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
libboost-graph-dev \
+ python3-sphinx \
+ python3-sphinx-bootstrap-theme \
postgresql-${PGVER} \
postgresql-server-dev-${PGVER} \
- graphviz \
- doxygen
- python -m pip install --upgrade pip
- pip install -r requirements.txt
- pip list
-
+ graphviz
- name: Configure
if: env.PROCESS == 'true'
@@ -118,9 +113,9 @@ jobs:
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
- cmake -DLINKCHECK=ON -DWITH_DOC=ON \
- -DES=ON -DZH_HANS=ON -DBUILD_DOXY=ON \
- -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release ..
+ cmake -DBUILD_LINKCHECK=ON \
+ -DSPHINX_FLAGS='-W -v -j auto --keep-going' \
+ -DPOSTGRESQL_VERSION=${PGVER} ..
- name: Check Documentation
if: env.PROCESS == 'true'
@@ -128,13 +123,6 @@ jobs:
cd build
make html-${{ matrix.language }}
- - name: Check Developers Documentation
- if: env.PROCESS == 'true'
- run: |
- cd build
- make doxy
- [ ! -s build/doxygen/LOG ] || exit 1
-
- name: Check Links
if: env.CHK_LINK == 'true'
run: |
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index c3283b5afdb..e43a7254c33 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -12,13 +12,11 @@ on:
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- - './CMakeLists.txt'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
- tags: []
-
pull_request:
paths:
- '.github/workflows/macos.yml'
@@ -26,7 +24,7 @@ on:
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- - './CMakeLists.txt'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 4b0447cdb5a..e7c02369763 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -61,7 +61,7 @@ jobs:
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- name: Install python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
@@ -70,33 +70,26 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
libboost-graph-dev \
+ python3-sphinx \
+ python3-sphinx-bootstrap-theme \
postgresql-${PGVER} \
postgresql-${PGVER}-postgis-${PGIS} \
postgresql-${PGVER}-postgis-${PGIS}-scripts \
postgresql-server-dev-${PGVER} \
graphviz \
doxygen
- python -m pip install --upgrade pip
- pip install Sphinx
- pip install sphinx-bootstrap-theme
- pip install sphinx-collapse
- pip list
- - name: Configure
+ - name: Configure and build
run: |
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
- cmake -DPOSTGRESQL_VERSION=${PGVER} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release \
- -DES=ON -DZH_HANS=ON ..
-
- - name: Build
- run: |
- cd build
+ cmake -DPOSTGRESQL_VERSION=${PGVER} \
+ -DDOC_USE_BOOTSTRAP=ON \
+ -DCMAKE_BUILD_TYPE=Release ..
make doc
- make -j 4
- sudo make install
make doxy
+ sudo make -j 4 install
- name: Update Users Documentation
run: |
@@ -104,7 +97,7 @@ jobs:
git checkout -b gh-pages
PGROUTING_MAJOR_MINOR="${PGROUTING_VERSION%.*}"
rm -rf ${PGROUTING_MAJOR_MINOR}
- cp -r build/doc/html ${PGROUTING_MAJOR_MINOR}
+ cp -r build/doc/_build/html ${PGROUTING_MAJOR_MINOR}
git add ${PGROUTING_MAJOR_MINOR}
git diff-index --quiet HEAD || git commit -m "Update users documentation for ${PGROUTING_VERSION}: commit ${{ env.GIT_HASH }}"
git fetch origin
@@ -136,7 +129,7 @@ jobs:
run: |
cd build/doc
- cp -r html doc-v${PGROUTING_VERSION}
+ cp -r _build/html doc-v${PGROUTING_VERSION}
tar -zcvf doc-v${PGROUTING_VERSION}.tar.gz doc-v${PGROUTING_VERSION}
cd ../..
diff --git a/.github/workflows/tidy-check.yml b/.github/workflows/tidy-check.yml
deleted file mode 100644
index fb43554d5ed..00000000000
--- a/.github/workflows/tidy-check.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-name: clang-tidy check
-
-on:
- workflow_dispatch:
- pull_request:
- branches-ignore:
- - 'gh-pages'
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-jobs:
- check-changelog:
- name: Check for changelog entry
- runs-on: ubuntu-latest
- env:
- PR_BASE: ${{ github.base_ref }}
-
- steps:
-
- - uses: actions/checkout@v5
-
- - name: Get postgres version
- run: |
- sudo service postgresql start
- pgver=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()')
- echo "PGVER=${pgver}" >> $GITHUB_ENV
- echo "PGPORT=5432" >> $GITHUB_ENV
-
- - name: Add PostgreSQL APT repository
- run: |
- sudo apt-get install curl ca-certificates gnupg
- curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ \
- $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
-
- - name: Install dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y \
- libboost-graph-dev \
- postgresql-${PGVER} \
- postgresql-server-dev-${PGVER}
-
- - name: Configure
- run: |
- export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
- mkdir build
- cd build
- cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DWITH_DOC=OFF ..
-
- - name: Add upstream
- run: |
- git remote add upstream https://github.com/pgRouting/pgrouting
- git fetch upstream ${PR_BASE}
-
- - name: do clang-tidy
- run: .github/scripts/tidy-vs-commit.sh "upstream/${PR_BASE}"
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 4cd08f42ef0..329704b063f 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -10,6 +10,11 @@ on:
push:
paths:
- '.github/workflows/ubuntu.yml'
+ - 'src/**'
+ - 'include/**'
+ - 'pgtap/**'
+ - 'tools/testers/**'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
@@ -31,6 +36,7 @@ jobs:
matrix:
psql: [13, 14, 15, 16, 17, 18]
postgis: [3]
+ release: [Debug, Release]
os: [ubuntu-latest, ubuntu-22.04]
steps:
@@ -45,10 +51,10 @@ jobs:
EOF
sudo mv ./pgdg.pref /etc/apt/preferences.d/
sudo apt update
-
+
- name: Add PostgreSQL APT repository
run: |
- sudo apt-get purge postgresql-*
+ sudo apt-get -y purge postgresql-*
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg-testing main ${{ matrix.psql }}" > /etc/apt/sources.list.d/pgdg.list'
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
@@ -69,7 +75,8 @@ jobs:
export PATH=/usr/lib/postgresql/${{ matrix.psql }}/bin:$PATH
mkdir build
cd build
- cmake -DPOSTGRESQL_VERSION=${{ matrix.psql }} -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=OFF ..
+ cmake -DPOSTGRESQL_VERSION=${{ matrix.psql }} \
+ -DCMAKE_BUILD_TYPE=${{ matrix.release }} -DBUILD_HTML=OFF -DBUILD_DOXY=OFF ..
- name: Build
run: |
diff --git a/.github/workflows/update-locale.yml b/.github/workflows/update-locale.yml
index d74cef36547..c94fae3c960 100644
--- a/.github/workflows/update-locale.yml
+++ b/.github/workflows/update-locale.yml
@@ -34,22 +34,18 @@ jobs:
with:
fetch-depth: 0
- - name: Get postgres version
- run: |
- sudo service postgresql start
- PGVER=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()')
- PROJECT_VERSION=$(grep -Po '(?<=project\(PGROUTING VERSION )[^;]+' CMakeLists.txt)
- echo "PGVER=${PGVER}" >> $GITHUB_ENV
- echo "PGPORT=5432" >> $GITHUB_ENV
- echo "PGIS=3" >> $GITHUB_ENV
- echo "PROJECT_VERSION=${PROJECT_VERSION}" >> $GITHUB_ENV
-
- name: Extract branch name and commit hash
run: |
branch=${GITHUB_REF#refs/heads/}
git_hash=$(git rev-parse --short "$GITHUB_SHA")
echo "GIT_HASH=$git_hash" >> $GITHUB_ENV
+ - name: Get postgres version
+ run: |
+ sudo service postgresql start
+ pgver=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()')
+ echo "PGVER=${pgver}" >> $GITHUB_ENV
+
- name: Add PostgreSQL APT repository
run: |
sudo apt-get install curl ca-certificates gnupg
@@ -58,7 +54,7 @@ jobs:
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- name: Install python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
@@ -67,18 +63,12 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
libboost-graph-dev \
+ python3-sphinx \
+ python3-sphinx-bootstrap-theme \
+ sphinx-intl \
postgresql-${PGVER} \
- postgresql-${PGVER}-postgis-${PGIS} \
- postgresql-${PGVER}-postgis-${PGIS}-scripts \
postgresql-server-dev-${PGVER} \
- graphviz \
- doxygen
- python -m pip install --upgrade pip
- pip install Sphinx
- pip install sphinx-bootstrap-theme
- pip install sphinx-intl[transifex]
- pip install sphinx-collapse
- pip list
+ graphviz
- name: Initialize mandatory git config
run: |
@@ -87,7 +77,7 @@ jobs:
- name: Update locale
run: |
- bash tools/transifex/update_locale.sh
+ bash .github/scripts/update_locale.sh
# Add the files, commit and push
git diff --staged --quiet || git commit -m "Update locale: commit ${{ env.GIT_HASH }}"
diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml
index 81df0be5798..94f96b34e46 100644
--- a/.github/workflows/update.yml
+++ b/.github/workflows/update.yml
@@ -8,7 +8,26 @@ on:
workflow_dispatch:
push:
paths:
- - '.github/workflows/update.yml'
+ - '.github/workflows/ubuntu.yml'
+ - 'src/**'
+ - 'include/**'
+ - 'sql/**'
+ - 'pgtap/**'
+ - 'tools/testers/**'
+ - 'CMakeLists.txt'
+
+ branches-ignore:
+ - 'gh-pages'
+
+ pull_request:
+ paths:
+ - '.github/workflows/check-queries.yml'
+ - 'src/**'
+ - 'include/**'
+ - 'sql/**'
+ - 'pgtap/**'
+ - 'tools/testers/**'
+ - 'CMakeLists.txt'
branches-ignore:
- 'gh-pages'
@@ -29,7 +48,7 @@ jobs:
fail-fast: false
matrix:
boost_minor: [56]
- old_pgr: [3.7.3, 3.7.2, 3.7.1, 3.7.0, 3.6.3, 3.6.2, 3.6.1, 3.6.0, 3.5.1, 3.5.0, 3.4.2, 3.4.1, 3.4.0, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1, 3.3.0, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.6, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0, 3.2.1, 3.2.2]
+ old_pgr: [3.8.0, 3.7.3, 3.7.2, 3.7.1, 3.7.0, 3.6.3, 3.6.2, 3.6.1, 3.6.0, 3.5.1, 3.5.0, 3.4.2, 3.4.1, 3.4.0, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1, 3.3.0, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.6, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0, 3.2.1, 3.2.2]
steps:
- uses: actions/checkout@v5
@@ -56,7 +75,7 @@ jobs:
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- name: Install python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
@@ -71,11 +90,8 @@ jobs:
postgresql-${PGVER}-postgis-${PGIS}-scripts \
postgresql-server-dev-${PGVER}
- python -m pip install --upgrade pip
- pip install -r requirements.txt
-
- wget https://sourceforge.net/projects/boost/files/boost/1.${{ matrix.boost_minor }}.0/boost_1_${{ matrix.boost_minor }}_0.tar.bz2
- sudo tar --bzip2 -xf boost_1_${{ matrix.boost_minor }}_0.tar.bz2
+ wget -q https://sourceforge.net/projects/boost/files/boost/1.${{ matrix.boost_minor }}.0/boost_1_${{ matrix.boost_minor }}_0.tar.bz2
+ sudo tar --bzip2 -xf boost_1_${{ matrix.boost_minor }}_0.tar.bz2
sudo mv boost_1_${{ matrix.boost_minor }}_0/boost /usr/include/
- name: get old version
@@ -111,7 +127,7 @@ jobs:
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
- cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=OFF ..
+ cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release ..
make -j 4
sudo make install
@@ -129,6 +145,6 @@ jobs:
run: |
sudo service postgresql start
psql -p "${PGPORT}" -d ___pgr___test___ -c "SELECT * FROM pgr_full_version();"
- psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.8.0';"
+ psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '4.0.0';"
psql -p "${PGPORT}" -d ___pgr___test___ -c "SELECT * FROM pgr_full_version();"
pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap"
diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml
index 021f0260237..46a892461bb 100644
--- a/.github/workflows/website.yml
+++ b/.github/workflows/website.yml
@@ -57,7 +57,7 @@ jobs:
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- name: Install python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
@@ -66,26 +66,23 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
libboost-graph-dev \
+ python3-sphinx \
+ python3-sphinx-bootstrap-theme \
postgresql-${PGVER} \
postgresql-${PGVER}-postgis-${PGIS} \
postgresql-${PGVER}-postgis-${PGIS}-scripts \
postgresql-server-dev-${PGVER} \
graphviz \
doxygen
- python -m pip install --upgrade pip
- pip install Sphinx
- pip install sphinx-bootstrap-theme
- pip install sphinx-intl[transifex]
- pip install sphinx-collapse
- pip list
- name: Configure and build documentation
run: |
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
- cmake -DPOSTGRESQL_VERSION=${PGVER} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON \
- -DCMAKE_BUILD_TYPE=Release -DES=ON -DZH_HANS=ON ..
+ cmake -DPOSTGRESQL_VERSION=${PGVER} \
+ -DDOC_USE_BOOTSTRAP=ON \
+ -DCMAKE_BUILD_TYPE=Release ..
make doc
- name: Initialize mandatory git config
@@ -102,7 +99,7 @@ jobs:
git checkout -b gh-pages
DIRECTORY="${PROJECT_VERSION%.*}"
rm -rf ${DIRECTORY}
- cp -r build/doc/html ${DIRECTORY}
+ cp -r build/doc/_build/html ${DIRECTORY}
git add ${DIRECTORY}
git diff-index --quiet HEAD || git commit -m "Update users documentation for ${PROJECT_VERSION} for develop branch: commit ${{ env.GIT_HASH }}"
git fetch origin
@@ -120,7 +117,7 @@ jobs:
git checkout -b gh-pages
DIRECTORY="main"
rm -rf ${DIRECTORY}
- cp -r build/doc/html ${DIRECTORY}
+ cp -r build/doc/_build/html ${DIRECTORY}
git add ${DIRECTORY}
git diff-index --quiet HEAD || git commit -m "Update users documentation for ${PROJECT_VERSION} for main branch: commit ${{ env.GIT_HASH }}"
git fetch origin
diff --git a/.gitignore b/.gitignore
index 70f98d92739..bc3f78f9cc9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,13 +2,15 @@
build
fix_typos
code_linter
-src/version/version.h
-
-.DS_Store
-.vagrant
+/.DS_Store
+/.vagrant
.directory
-notUsed
*.swp
+/.vscode
+
+# created files during build
+src/version/version.h
-.vscode
-taptest.sh
+# helper files
+/taptest.sh
+/run.sh
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 58a4e0c0f4a..29e7aca6420 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,9 +30,9 @@ include(pgr/BuildType)
#---------------------------------------------
#---------------------------------------------
-project(PGROUTING VERSION 3.8.0
+project(PGROUTING VERSION 4.0.0
LANGUAGES C CXX )
-set(PROJECT_VERSION_DEV "")
+set(PROJECT_VERSION_DEV "-alpha1")
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
include(pgr/GitInfo)
@@ -43,21 +43,16 @@ set(PROJECT_LIB_NAME "${PROJECT_NAME_LOWER}-${PROJECT_LIB_VERSION}")
string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC)
-set(MINORS 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6)
+# uncomment to show the NOTICE/WARNING of deprecated internal C functions
+# add_compile_definitions(SHOWMSG=1)
+
+set(MINORS 4.0 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6)
set(OLD_SIGNATURES
- 3.7.3
- 3.7.2
- 3.7.1
- 3.7.0
- 3.6.3
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.1
- 3.5.0
- 3.4.2
- 3.4.1
- 3.4.0
+ 3.8.0
+ 3.7.3 3.7.2 3.7.1 3.7.0
+ 3.6.3 3.6.2 3.6.1 3.6.0
+ 3.5.1 3.5.0
+ 3.4.2 3.4.1 3.4.0
3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 3.3.0
3.2.2 3.2.1 3.2.0
3.1.4 3.1.3 3.1.2 3.1.1 3.1.0
@@ -78,7 +73,7 @@ include(pgr/Configure)
#---------------------------------------------
set(DOXYGEN_MINIMUM_VERSION "1.7")
set(SPHINX_MINIMUM_VERSION "4.0")
-set(POSTGRESQL_MINIMUM_VERSION "13.0.0")
+set(POSTGRESQL_MINIMUM_VERSION "13")
set(BOOST_MINIMUM_VERSION "1.56.0")
set(POSTGIS_MINIMUM_VERSION "3.0.0")
@@ -94,49 +89,56 @@ if(WIN32 AND MSVC)
set(CMAKE_CXX_FLAGS "")
endif()
-#-----------------------------------------------------------------------------
-#-----------------------------------------------------------------------------
-# C/C++ Compiler requirements
-#-----------------------------------------------------------------------------
-#-----------------------------------------------------------------------------
+#---------------------------------------------
+# Boost
+#---------------------------------------------
find_package(Boost ${BOOST_MINIMUM_VERSION} REQUIRED)
if (NOT Boost_VERSION_MACRO)
set(Boost_VERSION_MACRO ${Boost_VERSION})
endif()
set(BOOST_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
+add_definitions(-DBOOST_ALLOW_DEPRECATED_HEADERS)
-include(CheckCCompilerFlag)
-include(CheckCXXCompilerFlag)
-if (BOOST_VERSION VERSION_LESS "1.75.0")
- CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
- if(COMPILER_SUPPORTS_CXX11)
- set(CMAKE_CXX_STANDARD 11)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_CXX_EXTENSIONS OFF)
+include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
+
+#---------------------------------------------
+# Clang tidy
+#---------------------------------------------
+
+option(USE_CLANG_TIDY "Use clang-tidy." OFF)
+
+if(USE_CLANG_TIDY)
+ find_program(CLANG_TIDY_COMMAND NAMES clang-tidy NO_CACHE)
+ if (CLANG_TIDY_COMMAND)
+ set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND};--config-file=${CMAKE_SOURCE_DIR}/.clang-tidy")
else()
- CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
- if(COMPILER_SUPPORTS_CXX0X)
- add_compile_options("-std=c++0x")
- message(STATUS "Using -std=c++0x.")
- else()
- message(WARNING "The compiler ${CMAKE_CXX_COMPILER} has no C++0x or C++11 flags support.
- Using: callback compiler's standard")
- endif()
+ message(WARNING "Set to use clang-tidy, but not found.")
endif()
-else()
- set(CMAKE_CXX_STANDARD 14)
endif()
-add_definitions(-DBOOST_ALLOW_DEPRECATED_HEADERS)
+#-----------------------------------------------------------------------------
+# C/C++ Compiler requirements
+#-----------------------------------------------------------------------------
+
+include(CheckCCompilerFlag)
+include(CheckCXXCompilerFlag)
+
+set(CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard version to use (minimum requirement is c++17)")
+
set(COMPILER_VERSION "${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}")
+#-----------------------------------------------------------------------------
+# C++ language version and compilation flags
+#-----------------------------------------------------------------------------
+message(STATUS "pgRouting: Require C++${CMAKE_CXX_STANDARD}")
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
#---------------------------------------------
# Windows compiler flags
#---------------------------------------------
-
if(WIN32 AND NOT MSVC)
set(OS_BUILD $ENV{OS_BUILD})
if(NOT OS_BUILD)
@@ -165,37 +167,25 @@ if(WIN32 AND MSVC)
-EHsc)
endif()
-#-----------------------------------------------------------------------------
-#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Finding prerequisites
#-----------------------------------------------------------------------------
-#-----------------------------------------------------------------------------
-#-----------------------------------------------------------------------------
-#---------------------------------------------
-#---------------------------------------------
-# Perl
-#---------------------------------------------
-#---------------------------------------------
-include(FindPerl)
-if(NOT PERL_EXECUTABLE)
- message(FATAL_ERROR "perl NOT FOUND - Please check your Perl installation.")
-endif()
+find_package(Perl REQUIRED)
#---------------------------------------------
#---------------------------------------------
# PostgreSQL
#---------------------------------------------
#---------------------------------------------
-find_package(PostgreSQL "${POSTGRESQL_MINIMUM_VERSION}")
+find_package(PostgreSQL "${POSTGRESQL_MINIMUM_VERSION}" REQUIRED)
# removing type of release on postgres version
# for XbetaY XalphaY XrcY -> X.Y
-string(REGEX REPLACE "([0-9]+)[beta|alpha|rc|devel].*" "\\1.0" POSTGRESQL_VERSION_STRING ${POSTGRESQL_VERSION_STRING})
+string(REGEX REPLACE "([0-9]+)[beta|alpha|rc|devel].*" "\\1.0" POSTGRESQL_VERSION_STRING "${POSTGRESQL_VERSION_STRING}")
message(STATUS "POSTGRESQL_VERSION_STRING=${POSTGRESQL_VERSION_STRING}")
-# calcualte mayor.micro
+# calculate major.minor
STRING(REGEX MATCH "([0-9]+)\.([0-9]+)" POSTGRESQL_VERSION "${POSTGRESQL_VERSION_STRING}")
message(STATUS "POSTGRESQL_VERSION=${POSTGRESQL_VERSION}")
@@ -220,16 +210,6 @@ endif()
add_definitions(-DPGSQL_VERSION=${PGSQL_VERSION})
message(STATUS "PGSQL_VERSION=${PGSQL_VERSION}")
-
-#---------------------------------------------
-#---------------------------------------------
-# Boost
-#---------------------------------------------
-#---------------------------------------------
-
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
-
-
#---------------------------------------------
if (PROJECT_DEBUG)
message(STATUS "PERL_VERSION_STRING = ${PERL_VERSION_STRING}")
@@ -346,7 +326,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
endif()
-
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (PROJECT_DEBUG)
diff --git a/NEWS.md b/NEWS.md
index 1eccbd6ae0d..979ed7f65e9 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,1234 +1,560 @@
To read all history of releases go to the latest [release notes](https://docs.pgrouting.org/latest/en/release_notes.html)
-# pgRouting 3
+# pgRouting 4
-## pgRouting 3.8
+## pgRouting 4.0
-### pgRouting 3.8.0 Release Notes
+pgRouting 4.0.0-alpha1 Release Notes
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.8.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.8.0%22)
+To see all issues & pull requests closed by this release see the
+[#4.0.0](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%204.0.0%22)
-**Promotion to official function of pgRouting.**
-**Metric**
+Build
-* [#2760](https://github.com/pgRouting/pgrouting/issues/2760):
- Promoted to official pgr_degree in version 3.8
+* C++ standard is std17
- * Error messages adjustment.
- * New signature with only Edges SQL.
- * Function promoted to official.
-
-**Utilities**
+ * Using this standard, all supported toolchains across our CI matrix will work.
+ * The code is not yet modified to use std17:
-* [#2772](https://github.com/pgRouting/pgrouting/issues/2772):
- Promoted to official pgr_extractVertices in version 3.8
+ * If needed: ``-DCMAKE_CXX_STANDARD=14`` to lower the standard.
- * Error messages adjustment.
- * Function promoted to official.
+* The user's documentation is built by default.
+* The doxygen documentation is built by default.
-* [#2774](https://github.com/pgRouting/pgrouting/issues/2774):
- Promoted to official pgr_findCloseEdges in version 3.8
+For developers:
- * Error messages adjustment.
- * ``partial`` option is removed.
- * Function promoted to official.
+* Set `-DUSE_CLANG_TIDY=ON` for clang tidy checks.
+* Tidy checks are done on CI.
-* [#2873](https://github.com/pgRouting/pgrouting/issues/2873):
- Promoted to official pgr_separateCrossing in version 3.8
+Documentation build
- * Function promoted to official.
- * Proposed function.
+* The doxygen documentation is built by default
+* The HTML documentation is built by default
+* The translated languages (en, es, sv, zh_Hans) HTML documentation are built by
+ default
+* `WITH-DOC` is not used anymore
-* [#2874](https://github.com/pgRouting/pgrouting/issues/2874):
- Promoted to official pgr_separateTouching in version 3.8
+User Documentation is not built when
- * Function promoted to official.
- * Proposed function.
+* Sphinx is not found
+* When all Sphinx formats are OFF
-**Proposed functions**
+ * To not build HTML default format: `-DBUILD_HTML=OFF`
-**Contraction**
+* When all languages are OFF
-* [#2790](https://github.com/pgRouting/pgrouting/issues/2790):
- pgr_contractionDeadEnd new contraction function
-* [#2791](https://github.com/pgRouting/pgrouting/issues/2791):
- pgr_contractionLinear new contraction function
-* [#2536](https://github.com/pgRouting/pgrouting/issues/2536):
- Support for contraction hierarchies (pgr_contractionHierarchies)
+ * To build only English: `-DES=OFF -DSV=OFF -DZH_HANS=OFF`
-**Utilities**
+* Documentation output location: [`build/doc/_build/](format)`
-* [#2848](https://github.com/pgRouting/pgrouting/issues/2848):
- Create pgr_separateCrossing new utility function
-* [#2849](https://github.com/pgRouting/pgrouting/issues/2849):
- Create of pgr_separateTouching new utility function
+ * For example: for HTML output is on `build/doc/_build/html` directory
-**Official functions changes**
+Developers' Documentation is not built when
-* [#2786](https://github.com/pgRouting/pgrouting/issues/2786):
- pgr_contraction(edges) new signature
+* Doxygen is not found
+* To not build Doxygen documentation: `-DBUILD_DOXY=OFF`
- * New signature:
- * Previously compulsory parameter **Contraction order** is now optional with
- name ``methods``.
- * New name and order of optional parameters.
- * Deprecated signature pgr_contraction(text,bigint[],integer,bigint[],boolean)
+Summary of changes by function
-**C/C++ code enhancements**
+* pgr_aStar
-* [#2802](https://github.com/pgRouting/pgrouting/issues/2802):
- Code reorganization on pgr_contraction
-* Other enhancements:
- [#2869](https://github.com/pgRouting/pgrouting/issues/2869)
+ * Combinations signature promoted to official.
-**SQL code enhancements**
+* pgr_aStarCost
-* [#2850](https://github.com/pgRouting/pgrouting/issues/2850):
- Rewrite pgr_nodeNetwork
+ * Combinations signature promoted to official.
-**Deprecation of SQL functions**
+* pgr_bandwidth
-* [#2749](https://github.com/pgRouting/pgrouting/issues/2749):
- Deprecate pgr_AlphaShape in 3.8
-* [#2750](https://github.com/pgRouting/pgrouting/issues/2750):
- Deprecate pgr_CreateTopology in 3.8
-* [#2753](https://github.com/pgRouting/pgrouting/issues/2753):
- Deprecate pgr_analyzeGraph in 3.8
-* [#2754](https://github.com/pgRouting/pgrouting/issues/2754):
- Deprecate pgr_analyzeOneWay in 3.8
-* [#2826](https://github.com/pgRouting/pgrouting/issues/2826):
- Deprecate pgr_createVerticesTable in 3.8
-* [#2847](https://github.com/pgRouting/pgrouting/issues/2847):
- Deprecate pgr_nodeNetwork in 3.8
+ * New experimental function.
-In the deprecated functions:
+* pgr_bdAstar
-- Migration section is created.
-- The use of the functions is removed in the documentation.
+ * Combinations signature promoted to official.
-## pgRouting 3.7
+* pgr_bdAstarCost
+ * Combinations signature promoted to official.
- pgRouting 3.7.3 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.7.3
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.7.3%22)
-
-* [#2731](https://github.com/pgRouting/pgrouting/pull/2731) Build Failure on Ubuntu 22
-
-
-
- pgRouting 3.7.2 Release Notes
+* pgr_bdDijkstra
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.7.2
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.7.2%22)
+ * Output columns standardized to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
+ * Combinations signature promoted to official.
-**Build**
+* pgr_bdDijkstraCost
-* [#2713](https://github.com/pgRouting/pgrouting/pull/2713) cmake missing
- some policies and min version
+ * Combinations signature promoted to official.
- - Using OLD policies: CMP0148, CMP0144, CMP0167
- - Minimum cmake version 3.12
+* pgr_bellmanFord
-**Bug fixes**
+ * Output columns standardized to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
-* [#2707](https://github.com/pgRouting/pgrouting/pull/2707) Build failure in
- pgRouting 3.7.1 on Alpine
-* [#2706](https://github.com/pgRouting/pgrouting/pull/2706) winnie crashing
- on pgr_betweennessCentrality
-
-
-
- pgRouting 3.7.1 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.7.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.7.1%22)
-
-**Bug fixes**
-
-* [#2680](https://github.com/pgRouting/pgrouting/pull/2680) fails to compile
- under mingw64 gcc 13.2
-* [#2689](https://github.com/pgRouting/pgrouting/pull/2689) When point is a
- vertex, the withPoints family do not return results.
-
-**C/C++ code enhancemet**
-
-* TRSP family
-
-
+* pgr_binaryBreadthFirstSearch
- pgRouting 3.7.0 Release Notes
+ * Output columns standardized to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.7.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.7.0%22)
-
-**Support**
-
-* [#2656](https://github.com/pgRouting/pgrouting/pull/2656) Stop support of
- PostgreSQL12 on pgrouting v3.7
-
- * Stopping support of PostgreSQL 12
- * CI does not test for PostgreSQL 12
-
-**New experimental functions**
-
-* Metrics
-
- * pgr_betweennessCentrality
+* pgr_bipartite
-**Official functions changes**
+ * Output columns standardized to ``(node, color)``
-* [#2605](https://github.com/pgRouting/pgrouting/pull/2605) Standardize
- spanning tree functions output
+* pgr_boykovKolmogorov
- * Functions:
+ * Combinations signature promoted to official.
- * ``pgr_kruskalDD``
- * ``pgr_kruskalDFS``
- * ``pgr_kruskalBFS``
- * ``pgr_primDD``
- * ``pgr_primDFS``
- * ``pgr_primBFS``
+* pgr_breadthFirstSearch
* Standardizing output columns to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)``
- * Added ``pred`` result columns.
-
-**Experimental promoted to proposed.**
-
-* [#2635](https://github.com/pgRouting/pgrouting/pull/2635) pgr_LineGraph
- ignores directed flag and use negative values for identifiers.
-
- * ``pgr_lineGraph``
-
- * Function promoted to proposed.
- * Works for directed and undirected graphs.
-
-**Code enhancement**
-
-* [#2599](https://github.com/pgRouting/pgrouting/pull/2599) Driving distance
- cleanup
-* [#2607](https://github.com/pgRouting/pgrouting/pull/2607) Read postgresql
- data on C++
-* [#2614](https://github.com/pgRouting/pgrouting/pull/2614) Clang tidy does
- not work
-
-
-
-## pgRouting 3.6
-
-
- pgRouting 3.6.3 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.6.3
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.6.3%22)
-
-**Build**
-
-* Explicit minimum requirements:
-
- * postgres 11.0.0
- * postgis 3.0.0
-
-* g++ 13+ is supported
-
-**Code fixes**
-
-* Fix warnings from cpplint.
-* Fix warnings from clang 18.
-
-**CI tests**
-
-* Add a clang tidy test on changed files.
-* Update test not done on versions: 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.1.0, 3.1.1,
- 3.1.2
-
-**Documentation**
-
-* Results of documentation queries adujsted to 1.83.0 version:
-
- * pgr_edgeDisjointPaths
- * pgr_stoerWagner
-
-**pgtap tests**
-
-* bug fixes
-
-
-
-
- pgRouting 3.6.2 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.6.2
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.6.2%22)
-
-**Upgrade fix**
-
-* The upgrade was failing for same minor
-
-**Code fixes**
-
-* Fix warnings from cpplint
-
-**Others**
-
-* Adjust NEWS generator
-
- * Name change to `NEWS.md` for better visualization on GitHub
-
-
-
- pgRouting 3.6.1 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.6.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.6.1%22)
-
-* [#2588](https://github.com/pgRouting/pgrouting/pull/2588) pgrouting 3.6.0
- fails to build on OSX
-
-
-
- pgRouting 3.6.0 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.6.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.6.0%22)
-
-**Official functions changes**
-
-* [#2516](https://github.com/pgRouting/pgrouting/pull/2516) Standardize output
- pgr_aStar
-
- * Standardize output columns to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
-
- * pgr_aStar(One to One) added ``start_vid`` and ``end_vid`` columns.
- * pgr_aStar(One to Many) added ``end_vid`` column.
- * pgr_aStar(Many to One) added ``start_vid`` column.
-
-* [#2523](https://github.com/pgRouting/pgrouting/pull/2523) Standardize output
- pgr_bdAstar
-
- * Standardize output columns to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
- * pgr_bdAstar(One to One) added ``start_vid`` and ``end_vid``
- columns.
- * pgr_bdAstar(One to Many) added ``end_vid`` column.
- * pgr_bdAstar(Many to One) added ``start_vid`` column.
+* pgr_contraction
-* [#2547](https://github.com/pgRouting/pgrouting/pull/2547) Standardize output
- and modifying signature pgr_KSP
+ .. Breaking change
+ * Breaking change, signatures no longer available:
+ * pgr_contraction(text,bigint[],integer,bigint[],boolean)
- * Standardizing output columns to ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
- * pgr_ksp(One to One)
- * Added ``start_vid`` and ``end_vid`` result columns.
- * New proposed signatures:
- * pgr_ksp(One to Many)
- * pgr_ksp(Many to One)
- * pgr_ksp(Many to Many)
- * pgr_ksp(Combinations)
+* pgr_dagShortestPath
-* [#2548](https://github.com/pgRouting/pgrouting/pull/2548) Standardize output
- pgr_drivingDistance
+ * Output columns standardized to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
- * Standardizing output columns to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)``
- * pgr_drivingDistance(Single vertex)
- * Added ``depth`` and ``start_vid`` result columns.
- * pgr_drivingDistance(Multiple vertices)
- * Result column name change: ``from_v`` to ``start_vid``.
- * Added ``depth`` and ``pred`` result columns.
-
-**Proposed functions changes**
-
-* [#2544](https://github.com/pgRouting/pgrouting/pull/2544) Standardize output
- and modifying signature pgr_withPointsDD
+* pgr_depthFirstSearch
- * Signature change: ``driving_side`` parameter changed from named optional to
- unnamed compulsory **driving side**.
- * pgr_withPointsDD(Single vertex)
- * pgr_withPointsDD(Multiple vertices)
* Standardizing output columns to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)``
- * pgr_withPointsDD(Single vertex)
- * Added ``depth``, ``pred`` and ``start_vid`` column.
- * pgr_withPointsDD(Multiple vertices)
- * Added ``depth``, ``pred`` columns.
- * When ``details`` is ``false``:
- * Only points that are visited are removed, that is, points reached within the
- distance are included
- * Deprecated signatures
- * pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)
- * pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)
-
-* [#2546](https://github.com/pgRouting/pgrouting/pull/2546) Standardize output
- and modifying signature pgr_withPointsKSP
-
- * Standardizing output columns to ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
- * pgr_withPointsKSP(One to One)
- * Signature change: ``driving_side`` parameter changed from named optional to
- unnamed compulsory **driving side**.
- * Added ``start_vid`` and ``end_vid`` result columns.
- * New proposed signatures:
- * pgr_withPointsKSP(One to Many)
- * pgr_withPointsKSP(Many to One)
- * pgr_withPointsKSP(Many to Many)
- * pgr_withPointsKSP(Combinations)
- * Deprecated signature
- * pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char,boolean)``
-
-**C/C++ code enhancements**
-
-* [#2504](https://github.com/pgRouting/pgrouting/pull/2504) To C++ pg data get,
- fetch and check.
-
- * Stopping support for compilation with MSVC.
-
-* [#2505](https://github.com/pgRouting/pgrouting/pull/2505) Using namespace.
-* [#2512](https://github.com/pgRouting/pgrouting/pull/2512) [Dijkstra] Removing
- duplicate code on Dijkstra.
-* [#2517](https://github.com/pgRouting/pgrouting/pull/2517) Astar code
- simplification.
-* [#2521](https://github.com/pgRouting/pgrouting/pull/2521) Dijkstra code
- simplification.
-* [#2522](https://github.com/pgRouting/pgrouting/pull/2522) bdAstar code
- simplification.
-
-**Documentation**
-
-* [#2490](https://github.com/pgRouting/pgrouting/pull/2490) Automatic page
- history links.
-
-* ..rubric:: Standardize SQL
-
-* [#2555](https://github.com/pgRouting/pgrouting/pull/2555) Standardize
- deprecated messages
-* On new internal function: do not use named parameters and default parameters.
-
-
-
-## pgRouting 3.5
-
-
- pgRouting 3.5.1 Release Notes
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.5.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.5.1%22)
-
-**Documentation fixes**
-
-Changes on the documentation to the following:
-
-* pgr_degree
* pgr_dijkstra
-* pgr_ksp
-* Automatic page history links
-
- * using bootstrap_version 2 because 3+ does not do dropdowns
-
-**Issue fixes**
-
-* [#2565](https://github.com/pgRouting/pgrouting/issues/2565)
- pgr_lengauerTarjanDominatorTree triggers an assertion
-
-**SQL enhancements**
-
-* [#2561](https://github.com/pgRouting/pgrouting/issues/2561) Not use
- wildcards on SQL
-
-**pgtap tests**
-
-* [#2559](https://github.com/pgRouting/pgrouting/issues/2559) pgtap test using sampledata
-
-**Build fixes**
-
-* Fix winnie build
-
-**Code fixes**
-
-* Fix clang warnings
-
- * Grouping headers of postgres readers
-
-
-
- pgRouting 3.5.0 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.5.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.5.0%22)
-
-**Official functions changes**
-
-* Dijkstra
-
- * Standardize output columns to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
-
- * pgr_dijkstra(One to One) added ``start_vid`` and ``end_vid`` columns.
- * pgr_dijkstra(One to Many) added ``end_vid`` column.
- * pgr_dijkstra(Many to One) added ``start_vid`` column.
-
-
-
-## pgRouting 3.4
-
-
- pgRouting 3.4.2 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.4.2
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.4.2%22)
-
-**Issue fixes**
-
-* [#2394](https://github.com/pgRouting/pgrouting/issues/2394):
- pgr_bdAstar accumulates heuristic cost in visited node cost.
-* [#2427](https://github.com/pgRouting/pgrouting/issues/2427):
- pgr_createVerticesTable & pgr_createTopology, variable should be of type Record.
-
-
-
- pgRouting 3.4.1 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.4.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.4.1%22)
-
-**Issue fixes**
-
-* [#2401](https://github.com/pgRouting/pgrouting/issues/2401):
- pgRouting 3.4.0 do not build docs when sphinx is too low or missing
-* [#2398](https://github.com/pgRouting/pgrouting/issues/2398):
- v3.4.0 does not upgrade from 3.3.3
-
-
-
- pgRouting 3.4.0 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.4.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.4.0%22)
-
-**Issue fixes**
-
-* [#1891](https://github.com/pgRouting/pgrouting/issues/1891):
- pgr_ksp doesn't give all correct shortest path
-
-**New proposed functions.**
-
-* With points
-
- * pgr_withPointsVia(One Via)
-
-* Turn Restrictions
-
- * Via with turn restrictions
-
- * pgr_trspVia(One Via)
- * pgr_trspVia_withPoints(One Via)
-
- * pgr_trsp
-
- * pgr_trsp(One to One)
- * pgr_trsp(One to Many)
- * pgr_trsp(Many to One)
- * pgr_trsp(Many to Many)
- * pgr_trsp(Combinations)
-
- * ``pgr_trsp_withPoints``
-
- * pgr_trsp_withPoints(One to One)
- * pgr_trsp_withPoints(One to Many)
- * pgr_trsp_withPoints(Many to One)
- * pgr_trsp_withPoints(Many to Many)
- * pgr_trsp_withPoints(Combinations)
-
-* Topology
-
- * pgr_degree
-
-* Utilities
-
- * pgr_findCloseEdges(One point)
- * pgr_findCloseEdges(Many points)
-
-**New experimental functions**
-
-* Ordering
- * pgr_cuthillMckeeOrdering
+ * Combinations signature promoted to official.
-* Unclassified
+* pgr_dijkstraCost
- * pgr_hawickCircuits
+ * Combinations signature promoted to official.
-**Official functions changes**
+* pgr_edgeColoring
-* Flow functions
+ * Output columns standardized to ``(edge, color)``
- * pgr_maxCardinalityMatch(text)
+* pgr_edgeDisjointPaths
- * Deprecating: pgr_maxCardinalityMatch(text,boolean)
+ * Output columns standardized to ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
-**Deprecated Functions**
+* pgr_edmondsKarp
-* Turn Restrictions
+ * Combinations signature promoted to official.
- * pgr_trsp(text,integer,integer,boolean,boolean,text)
- * pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)
- * pgr_trspViaVertices(text,anyarray,boolean,boolean,text)
- * pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)
+* pgr_edwardMoore
-
-
-## pgRouting 3.3
-
-
- pgRouting 3.3.5 Release Notes
-
-* [#2401](https://github.com/pgRouting/pgrouting/issues/2401):
- pgRouting 3.4.0 do not build docs when sphinx is too low or missing
-
-
-
- pgRouting 3.3.4 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.3.4
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.3.4%22)
-
-**Issue fixes**
-
-* [#2400](https://github.com/pgRouting/pgrouting/issues/2400):
- pgRouting 3.3.3 does not build in focal
-
-
-
- pgRouting 3.3.3 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.3.3
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.3.3%22)
-
-**Issue fixes**
-
-* [#1891](https://github.com/pgRouting/pgrouting/issues/1891):
- pgr_ksp doesn't give all correct shortest path
-
-**Official functions changes**
-
-* Flow functions
-
- * pgr_maxCardinalityMatch(text,boolean)
-
- * Ignoring optional boolean parameter, as the algorithm works only for
- undirected graphs.
-
-
-
-
- pgRouting 3.3.2 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.3.2
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.3.2%22)
-
-* Revised documentation
-
- * Simplifying table names and table columns, for example:
-
- * ``edges`` instead of ``edge_table``
-
- * Removing unused columns ``category_id`` and ``reverse_category_id``.
-
- * ``combinations`` instead of ``combinations_table``
-
- * Using PostGIS standard for geometry column.
-
- * ``geom`` instead of ``the_geom``
-
- * Avoiding usage of functions that modify indexes, columns etc on tables.
-
- * Using ``pgr_extractVertices`` to create a routing topology
-
- * Restructure of the pgRouting concepts page.
-
-
-**Issue fixes**
-
-* [#2276](https://github.com/pgRouting/pgrouting/issues/2276):
- edgeDisjointPaths issues with start_vid and combinations
-* [#2312](https://github.com/pgRouting/pgrouting/issues/2312):
- pgr_extractVertices error when target is not BIGINT
-* [#2357](https://github.com/pgRouting/pgrouting/issues/2357):
- Apply clang-tidy performance-*
-
-
-
- pgRouting 3.3.1 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.3.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.3.1%22)
-on Github.
-
-**Issue fixes**
-
-* [#2216](https://github.com/pgRouting/pgrouting/issues/2216): Warnings when using clang
-* [#2266](https://github.com/pgRouting/pgrouting/issues/2266): Error processing restrictions
-
-
-
-
- pgRouting 3.3.0 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.3.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.3.0%22)
-on Github.
-
-**Issue fixes**
-
-* [#2057](https://github.com/pgRouting/pgrouting/issues/2057): trspViaEdges columns in different order
-* [#2087](https://github.com/pgRouting/pgrouting/issues/2087): pgr_extractVertices to proposed
-* [#2201](https://github.com/pgRouting/pgrouting/issues/2201): pgr_depthFirstSearch to proposed
-* [#2202](https://github.com/pgRouting/pgrouting/issues/2202): pgr_sequentialVertexColoring to proposed
-* [#2203](https://github.com/pgRouting/pgrouting/issues/2203): pgr_dijkstraNear and pgr_dijkstraNearCost to proposed
-
-**New experimental functions**
-
-* Coloring
-
- * pgr_edgeColoring
-
-**Experimental promoted to Proposed**
-
-* Dijkstra
-
- * pgr_dijkstraNear
-
- * pgr_dijkstraNear(Combinations)
- * pgr_dijkstraNear(Many to Many)
- * pgr_dijkstraNear(Many to One)
- * pgr_dijkstraNear(One to Many)
-
- * pgr_dijkstraNearCost
-
- * pgr_dijkstraNearCost(Combinations)
- * pgr_dijkstraNearCost(Many to Many)
- * pgr_dijkstraNearCost(Many to One)
- * pgr_dijkstraNearCost(One to Many)
-
-* Coloring
-
- * pgr_sequentialVertexColoring
-
-* Topology
-
- * pgr_extractVertices
-
-* Traversal
-
- * pgr_depthFirstSearch(Multiple vertices)
- * pgr_depthFirstSearch(Single vertex)
-
-
-
-## pgRouting 3.2
-
-
- pgRouting 3.2.2 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.2.2
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.2.2%22)
-on Github.
-
-**Issue fixes**
-
-* [#2093](https://github.com/pgRouting/pgrouting/issues/2093): Compilation on Visual Studio
-* [#2189](https://github.com/pgRouting/pgrouting/issues/2189): Build error on RHEL 7
-
-
-
- pgRouting 3.2.1 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.2.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.2.1%22)
-on Github.
-
-**Issue fixes**
-
-* [#1883](https://github.com/pgRouting/pgrouting/issues/1883): pgr_TSPEuclidean crashes connection on Windows
+ * Output columns standardized to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
+ .. rubric:: Version 3.2.0
+ * New experimental signature:
+ * pgr_edwardMoore(Combinations)
+ .. rubric:: Version 3.0.0
+ * New experimental function.
- * The solution is to use Boost::graph::metric_tsp_approx
- * To not break user's code the optional parameters related to the TSP Annaeling are ignored
- * The function with the annaeling optional parameters is deprecated
+* pgr_kingOrdering
+ * New experimental function.
-
-
- pgRouting 3.2.0 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.2.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.2.0%22)
-on Github.
+* pgr_KSP
-**Build**
+ * All signatures promoted to official.
-* [#1850](https://github.com/pgRouting/pgrouting/issues/1850): Change Boost
- min version to 1.56
+* pgr_maxFlow
- * Removing support for Boost v1.53, v1.54 & v1.55
+ * Combinations signature promoted to official.
-**New experimental functions**
-
-* pgr_bellmanFord(Combinations)
-* pgr_binaryBreadthFirstSearch(Combinations)
-* pgr_bipartite
-* pgr_dagShortestPath(Combinations)
-* pgr_depthFirstSearch
-* Dijkstra Near
+* pgr_pushRelabel
- * pgr_dijkstraNear
+ * Combinations signature promoted to official.
- * pgr_dijkstraNear(One to Many)
- * pgr_dijkstraNear(Many to One)
- * pgr_dijkstraNear(Many to Many)
- * pgr_dijkstraNear(Combinations)
+* pgr_sloanOrdering
- * pgr_dijkstraNearCost
-
- * pgr_dijkstraNearCost(One to Many)
- * pgr_dijkstraNearCost(Many to One)
- * pgr_dijkstraNearCost(Many to Many)
- * pgr_dijkstraNearCost(Combinations)
-
-* pgr_edwardMoore(Combinations)
-* pgr_isPlanar
-* pgr_lengauerTarjanDominatorTree
-* pgr_makeConnected
-* Flow
-
- * pgr_maxFlowMinCost(Combinations)
- * pgr_maxFlowMinCost_Cost(Combinations)
+ * New experimental function.
* pgr_sequentialVertexColoring
-**New proposed functions.**
-
-* Astar
-
- * pgr_aStar(Combinations)
- * pgr_aStarCost(Combinations)
-
-* Bidirectional Astar
-
- * pgr_bdAstar(Combinations)
- * pgr_bdAstarCost(Combinations)
-
-* Bidirectional Dijkstra
-
- * pgr_bdDijkstra(Combinations)
- * pgr_bdDijkstraCost(Combinations)
-
-* Flow
-
- * pgr_boykovKolmogorov(Combinations)
- * pgr_edgeDisjointPaths(Combinations)
- * pgr_edmondsKarp(Combinations)
- * pgr_maxFlow(Combinations)
- * pgr_pushRelabel(Combinations)
-
-* pgr_withPoints(Combinations)
-* pgr_withPointsCost(Combinations)
-
-
-
-## pgRouting 3.1
-
-
- pgRouting 3.1.4 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.1.4
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.4%22)
-on Github.
-
-**Issues fixes**
-
-* [#2189](https://github.com/pgRouting/pgrouting/issues/2189): Build error on
- RHEL 7
-
-
-
-
- pgRouting 3.1.3 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.1.3
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.3%22)
-on Github.
-
-**Issues fixes**
-
-* [#1825](https://github.com/pgRouting/pgrouting/issues/1825): Boost versions
- are not honored
-* [#1849](https://github.com/pgRouting/pgrouting/issues/1849): Boost 1.75.0
- geometry "point_xy.hpp" build error on macOS environment
-* [#1861](https://github.com/pgRouting/pgrouting/issues/1861): vrp functions
- crash server
-
-
-
-
- pgRouting 3.1.2 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.1.2
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.2%22)
-on Github.
-
-**Issues fixes**
-
-* [#1304](https://github.com/pgRouting/pgrouting/issues/1304): FreeBSD 12
- 64-bit crashes on pgr_vrOneDepot tests Experimental Function
-* [#1356](https://github.com/pgRouting/pgrouting/issues/1356):
- tools/testers/pg_prove_tests.sh fails when PostgreSQL port is not passed
-* [#1725](https://github.com/pgRouting/pgrouting/issues/1725): Server crash
- on pgr_pickDeliver and pgr_vrpOneDepot on openbsd
-* [#1760](https://github.com/pgRouting/pgrouting/issues/1760): TSP server
- crash on ubuntu 20.04 #1760
-* [#1770](https://github.com/pgRouting/pgrouting/issues/1770): Remove
- warnings when using clang compiler
-
+ * Output columns standardized to ``(node, color)``
-
-
- pgRouting 3.1.1 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.1.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.1%22)
-on Github.
-
-**Issues fixes**
-
-* [#1733](https://github.com/pgRouting/pgrouting/issues/1733): pgr_bdAstar
- fails when source or target vertex does not exist in the graph
-* [#1647](https://github.com/pgRouting/pgrouting/issues/1647): Linear
- Contraction contracts self loops
-* [#1640](https://github.com/pgRouting/pgrouting/issues/1640): pgr_withPoints
- fails when points_sql is empty
-* [#1616](https://github.com/pgRouting/pgrouting/issues/1616): Path
- evaluation on C++ not updated before the results go back to C
-* [#1300](https://github.com/pgRouting/pgrouting/issues/1300):
- pgr_chinesePostman crash on test data
-
-
-
-
-
- pgRouting 3.1.0 Release Notes
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.1.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.0%22)
-on Github.
+* pgr_topologicalSort
-**New proposed functions.**
+ * Standardize output to ``(seq, node)``
-* pgr_dijkstra(combinations)
-* pgr_dijkstraCost(combinations)
+* pgr_transitiveClosure
-**Build changes**
+ * Standardized output to ``(node,targets)``
-* Minimal requirement for Sphinx: version 1.8
+* pgr_trsp
-
+ * Function promoted to official.
+ .. Breaking change
+ * Breaking change, signatures no longer available:
+ * pgr_trsp(text,integer,integer,boolean,boolean,text)
+ * pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
-## pgRouting 3.0
+* pgr_trspVia
+ * Function promoted to official.
+ .. Breaking change
+ * Breaking change, signatures no longer available:
+ * pgr_trspviavertices(text,anyarray,boolean,boolean,text)
- pgRouting 3.0.6 Release Notes
+* pgr_trspVia_withPoints
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.0.6
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.6%22)
-on Github.
+ * Function promoted to official.
+ * **Driving side** parameter is positional unnamed.
+ * Valid values depend on kind of graph
+ * Breaking change, signatures no longer available:
+ * pgr_trspvia_withpoints(text,text,text,anyarray,boolean,boolean,boolean,character,boolean)
+ * pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)
-**Issues fixes**
+* pgr_trsp_withPoints
-* [#2189](https://github.com/pgRouting/pgrouting/issues/2189): Build error on
- RHEL 7
+ * Function promoted to official.
+ * **Driving side** parameter is positional unnamed and compulsory.
+ * Valid values depend on kind of graph
+ * Breaking change, signatures no longer available:
+ * pgr_trsp_withpoints(text,text,text,anyarray,anyarray,boolean,character,boolean)
+ * pgr_trsp_withpoints(text,text,text,anyarray,bigint,boolean,character,boolean)
+ * pgr_trsp_withpoints(text,text,text,bigint,anyarray,boolean,character,boolean)
+ * pgr_trsp_withpoints(text,text,text,bigint,bigint,boolean,character,boolean)
+ * pgr_trsp_withpoints(text,text,text,text,boolean,character,boolean)
+* pgr_turnRestrictedPath
-
+ * Output columns standardized to ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
- pgRouting 3.0.5 Release Notes
+* pgr_withPoints
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.0.5
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.5%22)
-on Github.
+ * Function promoted to official.
+ * **Driving side** parameter is positional unnamed and compulsory.
+ * Valid values depend on kind of graph
+ * Output columns standardized to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
+ .. Breaking change
+ * Breaking change, signatures no longer available:
+ * pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean)
+ * pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean)
+ * pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean)
+ * pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean)
+ * pgr_withpoints(text,text,text,boolean,character,boolean)
+
+* pgr_withPointsCost
-**Backport issue fixes**
+ * Function promoted to official.
+ * **Driving side** parameter is unnamed and compulsory.
+ * Valid values depend on kind of graph
+ * Output columns standardized to ``(start_vid, end_vid, agg_cost)``
+ * Breaking change, signatures no longer available:
+ * pgr_withpointscost(text,text,anyarray,anyarray,boolean,character)
+ * pgr_withpointscost(text,text,anyarray,bigint,boolean,character)
+ * pgr_withpointscost(text,text,bigint,anyarray,boolean,character)
+ * pgr_withpointscost(text,text,bigint,bigint,boolean,character)
+ * pgr_withpointscost(text,text,text,boolean,character)
+
+* pgr_withPointsCostMatrix
-* [#1825](https://github.com/pgRouting/pgrouting/issues/1825): Boost versions
- are not honored
-* [#1849](https://github.com/pgRouting/pgrouting/issues/1849): Boost 1.75.0
- geometry "point_xy.hpp" build error on macOS environment
-* [#1861](https://github.com/pgRouting/pgrouting/issues/1861): vrp functions
- crash server
+ * Function promoted to official.
+ * **Driving side** parameter is positional unnamed and compulsory.
+ * Valid values depend on kind of graph
+ * Output columns standardized to ``(start_vid, end_vid, agg_cost)``
+ * Breaking change, signatures no longer available:
+ * pgr_withpointscostmatrix(text,text,anyarray,boolean,character)
+* pgr_withPointsDD
-
+ * Function promoted to official.
+ .. Breaking change
+ * Breaking change, signatures no longer available:
+ * pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)
+ * pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)
- pgRouting 3.0.4 Release Notes
+* pgr_withPointsKSP
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.0.4
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.4%22)
-on Github.
+ * Function promoted to official.
+ .. Breaking change
+ * Breaking change, signatures no longer available:
+ * pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
-**Backport issue fixes**
+* pgr_withPointsVia
-* [#1304](https://github.com/pgRouting/pgrouting/issues/1304): FreeBSD 12
- 64-bit crashes on pgr_vrOneDepot tests Experimental Function
-* [#1356](https://github.com/pgRouting/pgrouting/issues/1356):
- tools/testers/pg_prove_tests.sh fails when PostgreSQL port is not passed
-* [#1725](https://github.com/pgRouting/pgrouting/issues/1725): Server crash
- on pgr_pickDeliver and pgr_vrpOneDepot on openbsd
-* [#1760](https://github.com/pgRouting/pgrouting/issues/1760): TSP server
- crash on ubuntu 20.04 #1760
-* [#1770](https://github.com/pgRouting/pgrouting/issues/1770): Remove
- warnings when using clang compiler
+ * Function promoted to official.
+ * **Driving side** parameter is positional unnamed and compulsory.
+ * Valid values depend on kind of graph
+ .. Breaking change
+ * Breaking change, signatures no longer available:
+ * pgr_withpointsvia(text,text,anyarray,boolean,boolean,boolean,character,boolean)
+
+Functions promoted to official
+
+* [#2701](https://github.com/pgRouting/pgrouting/issues/2701): pgr_trsp
+* [#2701](https://github.com/pgRouting/pgrouting/issues/2701): pgr_trspVia
+* [#2701](https://github.com/pgRouting/pgrouting/issues/2701): pgr_trspVia_withPoints
+* [#2701](https://github.com/pgRouting/pgrouting/issues/2701): pgr_trsp_withPoints
+* [#2700](https://github.com/pgRouting/pgrouting/issues/2700): pgr_withPoints
+* [#2700](https://github.com/pgRouting/pgrouting/issues/2700): pgr_withPointsCost
+* [#2700](https://github.com/pgRouting/pgrouting/issues/2700): pgr_withPointsCostMatrix
+* [#2700](https://github.com/pgRouting/pgrouting/issues/2700): pgr_withPointsDD
+* [#2700](https://github.com/pgRouting/pgrouting/issues/2700): pgr_withPointsKSP
+* [#2700](https://github.com/pgRouting/pgrouting/issues/2700): pgr_withPointsVia
+
+Signatures promoted to official
+
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_aStar(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_aStarCost(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_bdAstar(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_bdAstarCost(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_bdDijkstra(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_bdDijkstraCost(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_dijkstra(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_dijkstraCost(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_KSP(All signatures)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_boykovKolmogorov(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_edmondsKarp(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_maxFlow(Combinations)
+* [#2718](https://github.com/pgRouting/pgrouting/issues/2718): pgr_pushRelabel(Combinations)
+
+New experimental functions.
+* Metrics
+ * [#2951](https://github.com/pgRouting/pgrouting/issues/2951): pgr_bandwidth
-
+* Ordering
- pgRouting 3.0.3 Release Notes
+ * [#2954](https://github.com/pgRouting/pgrouting/issues/2954): pgr_kingOrdering
+ * [#2955](https://github.com/pgRouting/pgrouting/issues/2955): pgr_sloanOrdering
-**Backport issue fixes**
+SQL signatures and output standardization
-* [#1733](https://github.com/pgRouting/pgrouting/issues/1733): pgr_bdAstar
- fails when source or target vertex does not exist in the graph
-* [#1647](https://github.com/pgRouting/pgrouting/issues/1647): Linear
- Contraction contracts self loops
-* [#1640](https://github.com/pgRouting/pgrouting/issues/1640): pgr_withPoints
- fails when points_sql is empty
-* [#1616](https://github.com/pgRouting/pgrouting/issues/1616): Path
- evaluation on C++ not updated before the results go back to C
-* [#1300](https://github.com/pgRouting/pgrouting/issues/1300):
- pgr_chinesePostman crash on test data
+[#2904](https://github.com/pgRouting/pgrouting/issues/2904): Standardize output columns of functions with different output
+ columns within overloads
+**Standardized to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``**
+* [#2905](https://github.com/pgRouting/pgrouting/issues/2905): pgr_withPoints
+* [#2906](https://github.com/pgRouting/pgrouting/issues/2906): pgr_bdDijkstra
+* [#2907](https://github.com/pgRouting/pgrouting/issues/2907): pgr_bellmanFord
+* [#2908](https://github.com/pgRouting/pgrouting/issues/2908): pgr_binaryBreadthFirstSearch
+* [#2910](https://github.com/pgRouting/pgrouting/issues/2910): pgr_edwardMoore
+* [#2913](https://github.com/pgRouting/pgrouting/issues/2913): pgr_dagShortestPath
-
+**Standardized to ``(start_vid, end_vid, agg_cost)``**
- pgRouting 3.0.2 Release Notes
+* [#2905](https://github.com/pgRouting/pgrouting/issues/2905): pgr_withPointsCost
+* [#2905](https://github.com/pgRouting/pgrouting/issues/2905): pgr_withPointsCostMatrix
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.0.2
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.2%22)
-on Github.
+**Standardized to ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``**
-**Issues fixes**
+* [#2909](https://github.com/pgRouting/pgrouting/issues/2909): pgr_edgeDisjointPaths
+* [#2909](https://github.com/pgRouting/pgrouting/issues/2909): pgr_turnRestrictedPath
-* [#1378](https://github.com/pgRouting/pgrouting/issues/1378): Visual Studio
- build failing
+**Standardized to ``(edge, color)``**
+* [#2924](https://github.com/pgRouting/pgrouting/issues/2924): pgr_edgeColoring
-
+**Standardized to ``(node, color)``**
- pgRouting 3.0.1 Release Notes
+* [#2924](https://github.com/pgRouting/pgrouting/issues/2924): pgr_bipartite
+* [#2927](https://github.com/pgRouting/pgrouting/issues/2927): pgr_sequentialVertexColoring
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.0.1
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.1%22)
-on Github.
+**Standardized to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)``**
-**Issues fixes**
+* [#2931](https://github.com/pgRouting/pgrouting/issues/2931): pgr_breadthFirstSearch
+* [#2931](https://github.com/pgRouting/pgrouting/issues/2931): pgr_depthFirstSearch
-* [#232](https://github.com/pgRouting/pgrouting/issues/232): Honor client
- cancel requests in C /C++ code
+**Standardized to ``(seq, node)``**
+* [#2934](https://github.com/pgRouting/pgrouting/issues/2934): pgr_topologicalSort
-
+**Standardized to ``(node,targets)``**
- pgRouting 3.0.0 Release Notes
-
-
-To see all issues & pull requests closed by this release see the [Git closed
-milestone for 3.0.0
-](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.0%22)
-on Github.
-
-**Fixed Issues**
-
-* [#1153](https://github.com/pgRouting/pgrouting/issues/1153): Renamed
- pgr_eucledianTSP to pgr_TSPeuclidean
-* [#1188](https://github.com/pgRouting/pgrouting/issues/1188): Removed CGAL
- dependency
-* [#1002](https://github.com/pgRouting/pgrouting/issues/1002): Fixed
- contraction issues:
-
- * [#1004](https://github.com/pgRouting/pgrouting/issues/1004): Contracts
- when forbidden vertices do not belong to graph
- * [#1005](https://github.com/pgRouting/pgrouting/issues/1005): Intermideate
- results eliminated
- * [#1006](https://github.com/pgRouting/pgrouting/issues/1006): No loss of
- information
-
-**New Functions**
-
-* Kruskal family
-
- * pgr_kruskal
- * pgr_kruskalBFS
- * pgr_kruskalDD
- * pgr_kruskalDFS
-
-* Prim family
-
- * pgr_prim
- * pgr_primDD
- * pgr_primDFS
- * pgr_primBFS
-
-
-**Proposed moved to official on pgRouting**
-
-* aStar Family
-
- * 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
-
-* bdAstar Family
-
- * 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
-
-* bdDijkstra Family
-
- * 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
-
-* Flow Family
-
- * pgr_pushRelabel(One to One)
- * pgr_pushRelabel(One to Many)
- * pgr_pushRelabel(Many to One)
- * pgr_pushRelabel(Many to Many)
- * pgr_edmondsKarp(One to One)
- * pgr_edmondsKarp(One to Many)
- * pgr_edmondsKarp(Many to One)
- * pgr_edmondsKarp(Many to Many)
- * pgr_boykovKolmogorov (One to One)
- * pgr_boykovKolmogorov (One to Many)
- * pgr_boykovKolmogorov (Many to One)
- * pgr_boykovKolmogorov (Many to Many)
- * pgr_maxCardinalityMatching
- * pgr_maxFlow
- * pgr_edgeDisjointPaths(One to One)
- * pgr_edgeDisjointPaths(One to Many)
- * pgr_edgeDisjointPaths(Many to One)
- * pgr_edgeDisjointPaths(Many to Many)
-
-* Components family
-
- * pgr_connectedComponents
- * pgr_strongComponents
- * pgr_biconnectedComponents
- * pgr_articulationPoints
- * pgr_bridges
-
-* Contraction:
-
- * Removed unnecessary column seq
- * Bug Fixes
-
-
-**New experimental functions**
-
-* pgr_maxFlowMinCost
-* pgr_maxFlowMinCost_Cost
-* pgr_extractVertices
-* pgr_turnRestrictedPath
-* pgr_stoerWagner
-* pgr_dagShortestpath
-* pgr_topologicalSort
-* pgr_transitiveClosure
-* VRP category
+* [#2934](https://github.com/pgRouting/pgrouting/issues/2934): pgr_transitiveClosure
- * pgr_pickDeliverEuclidean
- * pgr_pickDeliver
+Removal of SQL deprecated signatures
-* Chinese Postman family
+* [#2798](https://github.com/pgRouting/pgrouting/issues/2798): pgr_contraction
- * pgr_chinesePostman
- * pgr_chinesePostmanCost
+ * pgr_contraction(text,bigint[],integer,bigint[],boolean)
-* Breadth First Search family
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683): pgr_trsp
- * pgr_breadthFirstSearch
- * pgr_binaryBreadthFirstSearch
+ * pgr_trsp(text,integer,integer,boolean,boolean,text)
+ * pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
-* Bellman Ford family
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683): pgr_trspVia
- * pgr_bellmanFord
- * pgr_edwardMoore
+ * pgr_trspviavertices(text,anyarray,boolean,boolean,text)
-**Moved to legacy**
+* [#2700](https://github.com/pgRouting/pgrouting/issues/2700): pgr_withPointsVia
-* Experimental functions
+ * pgr_withpointsvia(text,text,anyarray,boolean,boolean,boolean,character,boolean)
- * pgr_labelGraph - Use the components family of functions instead.
- * Max flow - functions were renamed on v2.5.0
+* [#2888](https://github.com/pgRouting/pgrouting/issues/2888): pgr_findCloseEdges
- * pgr_maxFlowPushRelabel
- * pgr_maxFlowBoykovKolmogorov
- * pgr_maxFlowEdmondsKarp
- * pgr_maximumcardinalitymatching
+ * pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean)
+ * pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean)
- * VRP
+* [#2890](https://github.com/pgRouting/pgrouting/issues/2890): pgr_withPointsDD
- * pgr_gsoc_vrppdtw
+ * pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)
+ * pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)
-* TSP old signatures
-* pgr_pointsAsPolygon
-* pgr_alphaShape old signature
+* [#2895](https://github.com/pgRouting/pgrouting/issues/2895): pgr_withPointsKSP
+
+ * pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
+
+* [#2899](https://github.com/pgRouting/pgrouting/issues/2899): pgr_maxCardinalityMatch
+
+ * pgr_maxCardinalityMatch(text,boolean)
+
+* [#2901](https://github.com/pgRouting/pgrouting/issues/2901): pgr_TSP
+
+ * pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double
+ precision,double precision,double precision,boolean)
+
+* [#2901](https://github.com/pgRouting/pgrouting/issues/2901): pgr_TSPeuclidean
+
+ * pgr_tspeuclidean(text,bigint,bigint,double precision,integer,integer,
+ integer,double precision,double precision,double precision,boolean)
+
+
+Removal of SQL deprecated functions
+
+* [#2681](https://github.com/pgRouting/pgrouting/issues/2681): pgr_trspViaedges
+* [#2682](https://github.com/pgRouting/pgrouting/issues/2682): pgr_trspViaVertices
+* [#2748](https://github.com/pgRouting/pgrouting/issues/2748): pgr_alphaShape
+* [#2751](https://github.com/pgRouting/pgrouting/issues/2751): pgr_createTopology
+* [#2752](https://github.com/pgRouting/pgrouting/issues/2752): pgr_analyzeGraph
+* [#2755](https://github.com/pgRouting/pgrouting/issues/2755): pgr_analyzeOneWay
+* [#2827](https://github.com/pgRouting/pgrouting/issues/2827): pgr_createVerticesTable
+* [#2886](https://github.com/pgRouting/pgrouting/issues/2886): pgr_nodeNetwork
+
+Removal of SQL deprecated internal functions
+
+* [#2748](https://github.com/pgRouting/pgrouting/issues/2748) _pgr_alphaShape(text,double precision)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_checkVertTab(text,text[],integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_createIndex(text,text,text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_createIndex(text,text,text,text,integer,text)
+* [#2913](https://github.com/pgRouting/pgrouting/issues/2913) _pgr_dagShortestPath(text,anyarray,anyarray,boolean,boolean)
+* [#2913](https://github.com/pgRouting/pgrouting/issues/2913) _pgr_dagShortestPath(text,text,boolean,boolean)
+* [#2730](https://github.com/pgRouting/pgrouting/issues/2730) _pgr_dijkstraNear(text,anyarray,anyarray,bigint,boolean)
+* [#2730](https://github.com/pgRouting/pgrouting/issues/2730) _pgr_dijkstraNear(text,anyarray,bigint,bigint,boolean)
+* [#2730](https://github.com/pgRouting/pgrouting/issues/2730) _pgr_dijkstraNear(text,bigint,anyarray,bigint,boolean)
+* [#2730](https://github.com/pgRouting/pgrouting/issues/2730) _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean,boolean,bigint)
+* [#2730](https://github.com/pgRouting/pgrouting/issues/2730) _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean,boolean,bigint,boolean)
+* [#2730](https://github.com/pgRouting/pgrouting/issues/2730) _pgr_dijkstra(text,text,boolean,boolean,bigint,boolean)
+* [#2730](https://github.com/pgRouting/pgrouting/issues/2730) _pgr_dijkstra(text,text,boolean,boolean,boolean)
+* [#2735](https://github.com/pgRouting/pgrouting/issues/2735) _pgr_drivingDistance(text,anyarray,double precision,boolean,boolean)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_endPoint(geometry)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) __pgr_getColumnName(text,text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) __pgr_getColumnName(text,text,text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) __pgr_getColumnType(text,text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) __pgr_getColumnType(text,text,text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) __pgr_getTableName(text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_isColumnIndexed(text,text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_isColumnIndexed(text,text,text,integer,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_isColumnIntable(text,text)
+* [#2745](https://github.com/pgRouting/pgrouting/issues/2745) _pgr_kruskal(text,anyarray,text,bigint,double precision)
+* [#2897](https://github.com/pgRouting/pgrouting/issues/2897) _pgr_ksp(text,anyarray,anyarray,integer,boolean,boolean,boolean)
+* [#2897](https://github.com/pgRouting/pgrouting/issues/2897) _pgr_ksp(text,bigint,bigint,integer,boolean,boolean)
+* [#2897](https://github.com/pgRouting/pgrouting/issues/2897) _pgr_ksp(text,text,integer,boolean,boolean)
+* [#2899](https://github.com/pgRouting/pgrouting/issues/2899) _pgr_maxCardinalityMatch(text,boolean)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_msg(integer,text,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_onerror(boolean,integer,text,text,text,text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_pointtoid(geometry,double precision,text,integer)
+* [#2743](https://github.com/pgRouting/pgrouting/issues/2743) _pgr_prim(text,anyarray,text,bigint,double precision)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_quote_ident(text)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_startPoint(geometry)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _pgr_trsp(text,text,anyarray,anyarray,boolean)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _pgr_trsp(text,text,anyarray,bigint,boolean)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _pgr_trsp(text,text,bigint,anyarray,boolean)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _pgr_trsp(text,text,bigint,bigint,boolean)
+* [#2682](https://github.com/pgRouting/pgrouting/issues/2682) _pgr_trspViaVertices(text,integer[],boolean,boolean,text)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) _pgr_trspVia_withPoints(text,text,text,anyarray,boolean,boolean,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) _pgr_trsp_withPoints(text,text,text,anyarray,anyarray,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) _pgr_trsp_withPoints(text,text,text,text,boolean,character,boolean)
+* [#2901](https://github.com/pgRouting/pgrouting/issues/2901) _pgr_tspEuclidean(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* [#2901](https://github.com/pgRouting/pgrouting/issues/2901) _pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* [#2861](https://github.com/pgRouting/pgrouting/issues/2861) _pgr_versionLess(text,text)
+* [#2890](https://github.com/pgRouting/pgrouting/issues/2890) _pgr_withPointsDD(text,text,anyarray,double precision,boolean,character,boolean,boolean)
+* [#2895](https://github.com/pgRouting/pgrouting/issues/2895) _pgr_withPointsKSP(text,text,anyarray,anyarray,integer,character,boolean,boolean,boolean,boolean)
+* [#2895](https://github.com/pgRouting/pgrouting/issues/2895) _pgr_withPointsKSP(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
+* [#2895](https://github.com/pgRouting/pgrouting/issues/2895) _pgr_withPointsKSP(text,text,text,integer,character,boolean,boolean,boolean)
+* [#2741](https://github.com/pgRouting/pgrouting/issues/2741) _pgr_withPointsVia(text,bigint[],double precision[],boolean)
+* [#2741](https://github.com/pgRouting/pgrouting/issues/2741) _pgr_withPointsVia(text,text,anyarray,boolean,boolean,boolean,character,boolean)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _trsp(text,text,anyarray,anyarray,boolean)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _v4trsp(text,text,anyarray,anyarray,boolean)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _v4trsp(text,text,text,boolean)
+
+Summary of functions and signatures no longer on pgrouting
+
+* [#2748](https://github.com/pgRouting/pgrouting/issues/2748) pgr_alphashape(geometry,double precision)
+* [#2752](https://github.com/pgRouting/pgrouting/issues/2752) pgr_analyzegraph(text,double precision,text,text,text,text,text)
+* [#2755](https://github.com/pgRouting/pgrouting/issues/2755) pgr_analyzeoneway(text,text[],text[],text[],text[],boolean,text,text,text)
+* [#2798](https://github.com/pgRouting/pgrouting/issues/2798) pgr_contraction(text,bigint[],integer,bigint[],boolean)
+* [#2751](https://github.com/pgRouting/pgrouting/issues/2751) pgr_createtopology(text,double precision,text,text,text,text,text,boolean)
+* [#2827](https://github.com/pgRouting/pgrouting/issues/2827) pgr_createverticestable(text,text,text,text,text)
+* [#2888](https://github.com/pgRouting/pgrouting/issues/2888) pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean)
+* [#2888](https://github.com/pgRouting/pgrouting/issues/2888) pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean)
+* [#2899](https://github.com/pgRouting/pgrouting/issues/2899) pgr_maxCardinalityMatch(text,boolean)
+* [#2886](https://github.com/pgRouting/pgrouting/issues/2886) pgr_nodenetwork(text,double precision,text,text,text,text,boolean)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) pgr_trsp(text,integer,integer,boolean,boolean,text)
+* [#2681](https://github.com/pgRouting/pgrouting/issues/2681) pgr_trspViaedges(text,integer[],double precision[],boolean,boolean,text)
+* [#2682](https://github.com/pgRouting/pgrouting/issues/2682) pgr_trspViaVertices(text,anyarray,boolean,boolean,text)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_trspVia_withPoints(text,text,text,anyarray,boolean,boolean,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_trsp_withPoints(text,text,text,anyarray,anyarray,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_trsp_withPoints(text,text,text,anyarray,bigint,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_trsp_withPoints(text,text,text,bigint,anyarray,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_trsp_withPoints(text,text,text,bigint,bigint,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_trsp_withPoints(text,text,text,text,boolean,character,boolean)
+* [#2901](https://github.com/pgRouting/pgrouting/issues/2901) pgr_tspEuclidean(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* [#2901](https://github.com/pgRouting/pgrouting/issues/2901) pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPointsCostMatrix(text,text,anyarray,boolean,character)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPointsCost(text,text,anyarray,anyarray,boolean,character)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPointsCost(text,text,anyarray,bigint,boolean,character)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPointsCost(text,text,bigint,anyarray,boolean,character)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPointsCost(text,text,bigint,bigint,boolean,character)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPointsCost(text,text,text,boolean,character)
+* [#2890](https://github.com/pgRouting/pgrouting/issues/2890) pgr_withPointsDD(text,text,anyarray,double precision,boolean,character,boolean,boolean)
+* [#2890](https://github.com/pgRouting/pgrouting/issues/2890) pgr_withPointsDD(text,text,bigint,double precision,boolean,character,boolean)
+* [#2895](https://github.com/pgRouting/pgrouting/issues/2895) pgr_withPointsKSP(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPoints(text,text,anyarray,anyarray,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPoints(text,text,anyarray,bigint,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPoints(text,text,bigint,anyarray,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPoints(text,text,bigint,bigint,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPoints(text,text,text,boolean,character,boolean)
+* [#2919](https://github.com/pgRouting/pgrouting/issues/2919) pgr_withPointsVia(text,text,anyarray,boolean,boolean,boolean,character,boolean)
+
+Code enhancements
+
+* Removal of unused C/C++ code
+* Refactor the Script to build the update PostgreSQL file.
+* One process & driver for:
+
+ * allpairs: johnson and Floyd-Warshall
+ * Shortest path: Dijkstra and withPoints using Dijkstra
+
+**Deprecation of internal C/C++ functions**
+
+Deprecated functions are substituted by new function.
+
+* _pgr_drivingDistance => _pgr_drivingDistancev4
+* _pgr_withPointsDD => _pgr_withPointsddv4
+* _pgr_kruskal => _pgr_kruskalv4
+* _pgr_prim => _pgr_primv4
+* _pgr_dijkstra => _pgr_dijkstra_v4
+* _pgr_withPointsKSP => _pgr_withPointsKSP_v4
+* _pgr_trspVia_withPoints => _pgr_trspVia_withPoints_v4
+* _pgr_trsp_withPoints => _pgr_trsp_withPoints_v4
+* _pgr_withPointsVia => _pgr_withPointsvia_v4
+
+**Internal C/C++ functions in legacy**
+
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _trsp
+* [#2683](https://github.com/pgRouting/pgrouting/issues/2683) _v4trsp
+* [#2748](https://github.com/pgRouting/pgrouting/issues/2748) _pgr_alphaShape
+* [#2913](https://github.com/pgRouting/pgrouting/issues/2913) _pgr_dagShortestPath
diff --git a/README.md b/README.md
index e3c85bb1fcc..1f563b4b009 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,6 @@ https://gitter.im/pgRouting/pgrouting](https://badges.gitter.im/Join%20Chat.svg)
[Join discourse](https://discourse.osgeo.org/c/pgrouting/15)
[](https://doi.org/10.5281/zenodo.15004469)
-
## Branches
* The *main* branch has the development of the next micro release
@@ -60,7 +59,7 @@ The latest documentation: https://docs.pgrouting.org/latest
* Not supporting v12 & under
* The Boost Graph Library (BGL) >= 1.56
* CMake >= 3.12
-* 7.0 > Sphinx >= 4.0.0
+* 4.0.0 <= Sphinx < 7.0
### User's requirements
@@ -106,13 +105,13 @@ To cite pgRouting in publications use:
**BibTeX entry**:
```bibtex
-@Manual{,
- title = {{pgRouting: Routing on PostgreSQL}},
- author = {{pgRouting contributors}},
- year = {2025},
- doi = {10.5281/zenodo.15004469},
- url = {https://pgrouting.org/},
-}
+ @Manual{,
+ title = {{pgRouting: Routing on PostgreSQL}},
+ author = {{pgRouting contributors}},
+ year = {2025},
+ doi = {10.5281/zenodo.15004469},
+ url = {https://pgrouting.org/},
+ }
```
## LICENSE
diff --git a/ci/winnie/build_pgrouting.sh b/ci/winnie/build_pgrouting.sh
index bf820df0d74..a9f2018d93e 100644
--- a/ci/winnie/build_pgrouting.sh
+++ b/ci/winnie/build_pgrouting.sh
@@ -73,7 +73,7 @@ if [ $JENKINS_DEBUG -eq 1 ]
then
echo
echo "***************************"
- echo Recived variables used in this script
+ echo Received variables used in this script
echo "**************************"
echo "OS_BUILD ${OS_BUILD}"
diff --git a/configuration.conf b/configuration.conf
index ea4e8bc3f28..cc6da5e29cf 100644
--- a/configuration.conf
+++ b/configuration.conf
@@ -14,12 +14,12 @@ common | Y | Y | N
# Has the command needed to link with prostgresl
#----------------------
dijkstra | Y | Y | Y
+legacy | Y | N | N
allpairs | Y | Y | Y
astar | Y | Y | Y
driving_distance | Y | Y | Y
ksp | Y | Y | Y
tsp | Y | Y | Y
-alpha_shape | Y | Y | Y
bdAstar | Y | Y | Y
bdDijkstra | Y | Y | Y
trsp | Y | Y | Y
@@ -52,5 +52,4 @@ categories | N | N | Y
#----------------------
# SQL only directories
#----------------------
-topology | N | Y | Y
utilities | N | Y | Y
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 9608406041e..f5ca9064e79 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1,163 +1,95 @@
-#
-# Find Sphinx
-# Find Sphinx executable to build documentation
-# Source: https://ericscottbarr.com/blog/2012/03/sphinx-and-cmake-beautiful-documentation-for-c-projects/
-#
-# Daniel Kastl 03/2013
-#
+# Relevant changes from 3.8 to 4.0
-#---------------------------------------------
-# Kind of sphinx output
-#---------------------------------------------
-
-option(WITH_DOC
- "Set ON|OFF (default=OFF) to build Documentation library tree" OFF)
-
-option(LOCALE
- "Set ON|OFF (default=OFF) to build ithe latest pot/po files" OFF)
-
-option(WITH_ALL_DOC
- "Set ON|OFF (default=OFF) to build Documentation library tree" OFF)
-
-#option(PDF
-# "Set ON|OFF (default=OFF) to build Documentation library tree as PDF" OFF)
-
-option(BUILD_LATEX
- "Set ON|OFF (default=OFF) to build Documentation library tree as PDF" OFF)
-
-option(SINGLEHTML
- "Set ON|OFF (default=OFF) to build Documentation library tree as SINGLE HTML" OFF)
-
-option(BUILD_HTML
- "Set ON|OFF (default=OFF) to build Documentation library tree as HTML" ON)
-
-option(BUILD_MAN
- "Set ON|OFF (default=OFF) to build Documentation library tree as MAN page" OFF)
+# WITH-DOC is not used anymore
+# * The HTML documentation is build by default
+# * The translated languages (en, es, zh_Hans) HTML documentation is build by default
-option(LINKCHECK
- "Set ON|OFF (default=OFF) to build Documentation library tree as LINKCHECK page" OFF)
+# Documentation is not build when
+# * Sphinx is not found
+# * When all Sphinx formats are OFF
+# * When all languages are OFF
-option(EPUB
- "Set ON|OFF (default=OFF) to build Documentation library tree as EPUB page" OFF)
+# Output is on build/doc/_build/ directory
-option(DUMMY
- "Set ON|OFF (default=OFF) for debugging purposes" OFF)
-
-if (LOCALE)
- set(WITH_DOC ON)
-endif()
+#---------------------------------------------
+# Checking for prerequisites
+#---------------------------------------------
+find_program(SPHINX_EXECUTABLE
+ NAMES sphinx-build
+ DOC "Sphinx Documentation Builder (sphinx-doc.org)"
+)
-if (NOT WITH_DOC)
- return()
+if (NOT SPHINX_EXECUTABLE)
+ message(WARNING "Sphinx not found.
+ Building without user's documentation")
+ return()
endif()
-foreach(opt BUILD_HTML BUILD_LATEX BUILD_MAN SINGLEHTML EPUB DUMMY LINKCHECK)
- if (${${opt}} OR WITH_ALL_DOC)
- string(TOLOWER ${opt} val)
- string(REPLACE "build_" "" val ${val})
- list(APPEND PROJECT_DOC_TARGETS ${val})
- set(WITH_DOC ON)
- endif()
+set(SPHINX_FLAGS "" CACHE STRING "Flags to pass to sphinx-build")
+separate_arguments(sphinx_flags UNIX_COMMAND "${SPHINX_FLAGS}")
+
+option(BUILD_HTML "Set ON|OFF (default=OFF) to build Documentation library tree as HTML" ON)
+option(BUILD_PDF "Set ON|OFF (default=OFF) to build Documentation library tree as PDF" OFF)
+option(BUILD_LOCALE "Set ON|OFF (default=OFF) to build the locale files" OFF)
+option(BUILD_LINKCHECK "Set ON|OFF (default=OFF) to build Documentation library tree as LINKCHECK page" OFF)
+
+
+# not quite sure how these look
+option(BUILD_LATEX "Set ON|OFF (default=OFF) to build Documentation library tree as PDF" OFF)
+option(BUILD_SINGLEHTML "Set ON|OFF (default=OFF) to build Documentation library tree as SINGLE HTML" OFF)
+option(BUILD_MAN "Set ON|OFF (default=OFF) to build Documentation library tree as MAN page" OFF)
+option(BUILD_EPUB "Set ON|OFF (default=OFF) to build Documentation library tree as EPUB page" OFF)
+option(BUILD_DUMMY "Set ON|OFF (default=OFF) for debugging purposes" OFF)
+
+# get the ON options of the Sphinx formats
+foreach(opt BUILD_HTML BUILD_LATEX BUILD_MAN BUILD_SINGLEHTML BUILD_EPUB BUILD_DUMMY BUILD_LINKCHECK BUILD_LOCALE)
+ if (${${opt}} OR WITH_ALL_DOC)
+ string(TOLOWER ${opt} val)
+ string(REPLACE "build_" "" val ${val})
+ list(APPEND PROJECT_DOC_TARGETS ${val})
+ endif()
endforeach()
+if("${PROJECT_DOC_TARGETS}" STREQUAL "")
+ message(WARNING "No documentation targets found
+ Building without documentation")
+ return()
+endif()
-
-message(STATUS "PROJECT_DOC_TARGETS = ${PROJECT_DOC_TARGETS}")
-
-#---------------------------------------------
-#---------------------------------------------
-#---------------------------------------------
-
-# LANGUAGES SETINGS
-
-#---------------------------------------------
-#---------------------------------------------
-#---------------------------------------------
+add_custom_target(doc ALL COMMENT "Building documentation with Sphinx")
#---------------------------------------------
-# Available Languages
-# English is always built
+# LANGUAGES SETTINGS
#---------------------------------------------
-set(PROJECT_SUPPORTED_LANGUAGES "de" "es" "fr" "it" "ja" "zh_Hans")
-set(PROJECT_ENGLISH "en")
+list(APPEND PROJECT_LANGUAGES_TRANSLATED "EN" "ES" "SV" "ZH_HANS")
+list(APPEND PROJECT_LANGUAGES "de" "en" "es" "ja" "ko" "sv" "zh_Hans")
-#---------------------------------------------
-# Language options
-#---------------------------------------------
-option(WITH_ALL_LANG
- "Set ON|OFF (default=OFF) to build all the supported languages:
- Main Language will always be built:
- ${PROJECT_ENGLISH}
- Optional languages:
- ${PROJECT_SUPPORTED_LANGUAGES}
-
- When OFF and want to build specific optional language, use the language code in capital letters:
- -D ES=ON
- "
- OFF
- )
-
-foreach(lang ${PROJECT_SUPPORTED_LANGUAGES})
- string(TOUPPER ${lang} val)
- option(${val}
- "Set ON|OFF (default=OFF) build ${lang} Documentation" OFF)
+foreach(lang ${PROJECT_LANGUAGES})
+ string(TOUPPER ${lang} val)
+ if ("${val}" IN_LIST PROJECT_LANGUAGES_TRANSLATED)
+ option(${val} "Set ON|OFF (default=ON) build ${lang} Documentation" ON)
+ else()
+ option(${val} "Set ON|OFF (default=OFF) build ${lang} Documentation" OFF)
+ endif()
endforeach()
#---------------------------------------------
# Catching the language options to be build
#---------------------------------------------
-foreach(lang ${PROJECT_SUPPORTED_LANGUAGES})
- string(TOUPPER ${lang} opt)
- if (${opt} OR WITH_ALL_LANG)
- set (langFound "1")
- list(APPEND PROJECT_BUILD_LANGUAGES ${lang})
- endif()
+foreach(lang ${PROJECT_LANGUAGES})
+ string(TOUPPER ${lang} opt)
+ if (${opt})
+ list(APPEND PROJECT_BUILD_LANGUAGES ${lang})
+ endif()
endforeach()
-
-#---------------------------------------------
-# All languages po files are to be generated
-#---------------------------------------------
-
-set (SPHINXINTL_LANGUAGE ${PROJECT_ENGLISH})
-foreach(lang ${PROJECT_BUILD_LANGUAGES})
- set(SPHINXINTL_LANGUAGE "${SPHINXINTL_LANGUAGE},${lang}")
-endforeach()
-
-
-list(APPEND PROJECT_BUILD_LANGUAGES ${PROJECT_ENGLISH})
-message(STATUS "PROJECT_BUILD_LANGUAGES = ${PROJECT_BUILD_LANGUAGES}")
-message(STATUS "SPHINXINTL_LANGUAGE = ${SPHINXINTL_LANGUAGE}")
-
-
-if(NOT WITH_DOC)
- return()
-endif()
-
-option(DOC_USE_BOOTSTRAP
- "Set ON|OFF (default=ON) to build Documentation library with bootstrap" OFF)
-
-#---------------------------------------------
-# Checking for prerequisites
-#---------------------------------------------
-find_package(Sphinx ${SPHINX_MINIMUM_VERSION})
-
-if (NOT SPHINX_FOUND)
- message(WARNING "Sphinx not found.
- building without documentation")
- return()
+if("${PROJECT_BUILD_LANGUAGES}" STREQUAL "")
+ message(WARNING "No documentation languages found
+ Building without documentation")
+ return()
endif()
-if (SPHINX_VERSION VERSION_LESS ${SPHINX_MINIMUM_VERSION})
- message(WARNING "Found Sphinx v${SPHINX_VERSION}!
- This project requires Sphinx at least v${SPHINX_MINIMUM_VERSION}
- building without documentation")
- return()
-endif()
-
-#pip install rst2pdf
-
-
+message(STATUS "PROJECT_BUILD_LANGUAGES = ${PROJECT_BUILD_LANGUAGES}")
#---------------------------------------------
# Kind of "looks"
@@ -198,26 +130,22 @@ else()
set(THEME_HISTORY "")
endif()
-
-
-
# configured documentation tools and intermediate build results
-# TODO for 3.0 Use _build
-# set(PGR_DOCUMENTATION_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build")
-set(PGR_DOCUMENTATION_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+set(PGR_DOCUMENTATION_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build")
set(PGR_DOCUMENTATION_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
message(STATUS "PGR_DOCUMENTATION_BUILD_DIR = ${PGR_DOCUMENTATION_BUILD_DIR}")
+message(STATUS "PGR_DOCUMENTATION_SOURCE_DIR = ${PGR_DOCUMENTATION_SOURCE_DIR}")
#---------------------------------------------
# Adding documentation directories
#---------------------------------------------
foreach (subdir ${PROJECT_DOC_DIRECTORIES} "src")
- add_subdirectory("${subdir}")
- if (EXISTS "../docqueries/${subdir}")
- add_subdirectory("../docqueries/${subdir}" "build/doc/${subdir}")
- endif()
+ add_subdirectory("${subdir}")
+ if (EXISTS "${CMAKE_SOURCE_DIR}/docqueries/${subdir}")
+ add_subdirectory("${CMAKE_SOURCE_DIR}/docqueries/${subdir}" "docqueries/${subdir}")
+ endif()
endforeach()
add_subdirectory("images")
@@ -226,113 +154,73 @@ add_subdirectory("images")
configure_file("../tools/testers/sampledata.sql" "${PGR_DOCUMENTATION_SOURCE_DIR}/sampledata/sampledata.sql")
-#TODO ???
-#add_subdirectory("static")
-#add_subdirectory("themes")
-file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/_static" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}")
-file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/_themes" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}")
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_templates/layout.html"
- "${PGR_DOCUMENTATION_SOURCE_DIR}/_templates/layout.html" @ONLY)
-
+add_subdirectory("_static")
+add_subdirectory("_templates")
-configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in"
- "${PGR_DOCUMENTATION_SOURCE_DIR}/conf.py"
- @ONLY)
+configure_file("conf.py.in" "${PGR_DOCUMENTATION_SOURCE_DIR}/conf.py" @ONLY)
-# Add documentation to targets
+foreach (format ${PROJECT_DOC_TARGETS})
+message(STATUS "format=${format}")
+ if ("${format}" STREQUAL "locale")
-#if (LATEX)
-if (FALSE)
- find_package(LATEX)
- if (NOT LATEX_COMPILER)
- message("Couldn't find Latex, can't build latex docs using Sphinx")
- else()
- message(STATUS "LATEX_COMPILER = ${LATEX_COMPILER}")
- endif()
-endif()
+ find_program(SPHINX_INTL_EXECUTABLE
+ NAMES sphinx-intl
+ DOC "Sphinx Documentation Builder (sphinx-doc.org)"
+ )
-set(ENV{SPHINXINTL_LANGUAGE} ${SPHINXINTL_LANGUAGE})
+ if (SPHINX_INTL_EXECUTABLE)
-if (LOCALE)
- add_custom_target(locale
+ add_custom_target(locale
COMMAND ${SPHINX_EXECUTABLE}
-b gettext
- -j auto
-c "${PGR_DOCUMENTATION_SOURCE_DIR}"
"${PGR_DOCUMENTATION_SOURCE_DIR}"
"${CMAKE_SOURCE_DIR}/locale/pot"
- COMMAND sphinx-intl update -p ${CMAKE_SOURCE_DIR}/locale/pot -d ${CMAKE_SOURCE_DIR}/locale -l en > locale_changes.txt
- #COMMAND sphinx-intl update -p ${CMAKE_SOURCE_DIR}/locale/pot -d ${CMAKE_SOURCE_DIR}/locale --language=${SPHINXINTL_LANGUAGE}
- #COMMAND sphinx-intl update-txconfig-resources --locale-dir ${CMAKE_SOURCE_DIR}/locale --pot-dir ${CMAKE_SOURCE_DIR}/locale/pot --transifex-project-name pgrouting
+ COMMAND ${SPHINX_INTL_EXECUTABLE} update
+ -d ${CMAKE_SOURCE_DIR}/locale
+ -l en > locale_changes.txt
+ COMMENT "Generating POT and PO files"
+ SOURCES ${PROJECT_DOC_FILES})
- COMMENT "Generating POT files ..."
- SOURCES ${PROJECT_DOC_FILES}
- )
-endif()
+ else()
+ message(WARNING "sphinx-intl not found.
+ Not building the pot and po locale files")
-# The doc target will build all documentation targets.
-add_custom_target(doc
- COMMENT "Building documentation with Sphinx")
+ endif()
+ else()
-foreach (target ${PROJECT_DOC_TARGETS})
- add_custom_target("${target}"
- COMMENT "Building ${target} documentation with Sphinx")
+ add_custom_target("${format}"
+ COMMENT "Building ${format} documentation with Sphinx")
configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/forward.html"
- "${PGR_DOCUMENTATION_BUILD_DIR}/${target}/index.html")
+ "${CMAKE_CURRENT_SOURCE_DIR}/forward.html"
+ "${PGR_DOCUMENTATION_BUILD_DIR}/${format}/index.html")
foreach (lang ${PROJECT_BUILD_LANGUAGES})
- add_custom_target(
- "${target}-${lang}"
- COMMAND ${SPHINX_EXECUTABLE}
- #-q # Enable for quiet mode
- #-Q # Enable for even more quiet mode
- -v # increase verbosity
- -n # warn about all missing references
- --color
- -W
- --keep-going
- -j auto
- #-E # don't use a saved environment, always read all file
- #-a # write all files; default is to only write new and changed files
- -b ${target}
- -D language='${lang}'
- -c "${PGR_DOCUMENTATION_SOURCE_DIR}"
- "${PGR_DOCUMENTATION_SOURCE_DIR}"
- "${PGR_DOCUMENTATION_BUILD_DIR}/${target}/${lang}"
-
- COMMENT "Generating ${target}/${lang} documentation ..."
- SOURCES ${PROJECT_DOC_FILES} ${PROJECT_IMG_FILES}
- DEPENDS ${PROJECT_DOC_FILES} ${PROJECT_IMG_FILES}
- )
- add_dependencies(${target} "${target}-${lang}")
-
- endforeach()
- add_dependencies(doc "${target}")
-endforeach()
-
-
-
-if(FALSE)
- # AND ${target} MATCHES "latex" AND LATEX_COMPILER)
- add_custom_target(pdf-${lang}
- COMMENT "Building documentation with Sphinx")
+ add_custom_target(
+ "${format}-${lang}"
+ COMMAND ${SPHINX_EXECUTABLE}
+ -c ${CMAKE_CURRENT_BINARY_DIR}
+ -d ${CMAKE_CURRENT_BINARY_DIR}/doctrees
+ -b ${format}
+ -D language='${lang}'
+ ${sphinx_flags}
+ "${PGR_DOCUMENTATION_SOURCE_DIR}"
+ "${PGR_DOCUMENTATION_BUILD_DIR}/${format}/${lang}"
- add_custom_command(
- TARGET pdf-${lang} POST_BUILD
- #fixes: Underfull \hbox (badness 10000) in paragraph
- #perl -pi -e 's/warning/warning /' pgRoutingDocumentation.tex
- COMMAND pdflatex -interaction=nonstopmode "pgRoutingDocumentation.tex" > /dev/null 2>&1
- WORKING_DIRECTORY "${PGR_DOCUMENTATION_BUILD_DIR}/pdf/${lang}"
- DEPENDS ${target}-${lang}
- COMMENT "Converting Latex to PDF format")
+ COMMENT "Generating ${format}/${lang} documentation"
+ SOURCES ${PROJECT_DOC_FILES} ${PROJECT_IMG_FILES}
+ DEPENDS ${PROJECT_DOC_FILES} ${PROJECT_IMG_FILES}
+ )
+ add_dependencies(${format} "${format}-${lang}")
-endif()
+ endforeach()
+ add_dependencies(doc "${format}")
+ endif()
+endforeach()
diff --git a/doc/_static/CMakeLists.txt b/doc/_static/CMakeLists.txt
new file mode 100644
index 00000000000..cf6f71a2294
--- /dev/null
+++ b/doc/_static/CMakeLists.txt
@@ -0,0 +1,16 @@
+
+set(LOCAL_FILES
+ custom.css
+ page_history.js
+)
+
+foreach (f ${LOCAL_FILES})
+ configure_file(${f} ${f} @ONLY)
+ list(APPEND LOCAL_DOC_FILES ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+configure_file(favicon.ico favicon.ico COPYONLY)
+list(APPEND LOCAL_DOC_FILES ${CMAKE_CURRENT_BINARY_DIR}/favicon.ico)
+
+add_subdirectory(images)
+set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
diff --git a/doc/_static/custom.css b/doc/_static/custom.css
index 19da7b807b1..10b254f4ba0 100644
--- a/doc/_static/custom.css
+++ b/doc/_static/custom.css
@@ -36,6 +36,7 @@ div.note {
div.warning {
background-color: white;
background-image: none;
+ border: 2px solid orange;
}
div.signatures {
diff --git a/doc/_static/images/CMakeLists.txt b/doc/_static/images/CMakeLists.txt
new file mode 100644
index 00000000000..10c96ba90d8
--- /dev/null
+++ b/doc/_static/images/CMakeLists.txt
@@ -0,0 +1,13 @@
+set(LOCAL_FILES
+ ccbysa.png
+ pgrouting.png
+ favicon.ico
+)
+
+foreach (f ${LOCAL_FILES})
+ configure_file(${f} ${f} COPYONLY)
+ list(APPEND LOCAL_IMG_FILES "${CMAKE_CURRENT_BINARY_DIR}/${f}")
+endforeach()
+
+add_subdirectory(developers)
+set(PROJECT_IMG_FILES ${PROJECT_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
diff --git a/doc/_static/images/developers/CMakeLists.txt b/doc/_static/images/developers/CMakeLists.txt
new file mode 100644
index 00000000000..037a5ca92dc
--- /dev/null
+++ b/doc/_static/images/developers/CMakeLists.txt
@@ -0,0 +1,13 @@
+set(LOCAL_FILES
+ "disconnectEdgeDirected.png"
+ "disconnectEdgeUndirected.png"
+ "disconnectVertexDirected.png"
+ "disconnectVertexUndirected.png"
+)
+
+foreach (f ${LOCAL_FILES})
+ configure_file(${f} ${f} COPYONLY)
+ list(APPEND LOCAL_IMG_FILES "${CMAKE_CURRENT_BINARY_DIR}/${f}")
+endforeach()
+
+set(PROJECT_IMG_FILES ${PROJECT_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
diff --git a/doc/_static/images/developers/disconnectEdgeDirected.graphmlz b/doc/_static/images/developers/disconnectEdgeDirected.graphmlz
deleted file mode 100644
index 9b555386d70..00000000000
Binary files a/doc/_static/images/developers/disconnectEdgeDirected.graphmlz and /dev/null differ
diff --git a/doc/_static/images/developers/disconnectEdgeUndirected.graphmlz b/doc/_static/images/developers/disconnectEdgeUndirected.graphmlz
deleted file mode 100644
index d091120c6b9..00000000000
Binary files a/doc/_static/images/developers/disconnectEdgeUndirected.graphmlz and /dev/null differ
diff --git a/doc/_static/images/developers/disconnectVertexDirected.graphmlz b/doc/_static/images/developers/disconnectVertexDirected.graphmlz
deleted file mode 100644
index 80ac5711c73..00000000000
Binary files a/doc/_static/images/developers/disconnectVertexDirected.graphmlz and /dev/null differ
diff --git a/doc/_static/images/developers/disconnectVertexUndirected.graphmlz b/doc/_static/images/developers/disconnectVertexUndirected.graphmlz
deleted file mode 100644
index 2570357cd21..00000000000
Binary files a/doc/_static/images/developers/disconnectVertexUndirected.graphmlz and /dev/null differ
diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js
index 2daf6dc1ce7..6fca23a5c90 100644
--- a/doc/_static/page_history.js
+++ b/doc/_static/page_history.js
@@ -5,16 +5,19 @@ function createInfo(file, newat, altnames = '', removedat = '') {
this.removedat = removedat;
}
-const versionsArr = ['3.8','3.7', '3.6', '3.5', '3.4', '3.3', '3.2', '3.1', '3.0'];
-var unsuportedArr = ['2.6', '2.5', '2.4', '2.3', '2.2', '2.1', '2.0'];
+const versionsArr = ['4.0'];
+var unsuportedArr = ['3.8','3.7', '3.6', '3.5', '3.4', '3.3', '3.2', '3.1', '3.0','2.6', '2.5', '2.4', '2.3', '2.2', '2.1', '2.0'];
var titles = [
{k: 'en', v: ['Supported versions', 'Unsupported versions']},
{k: 'es', v: ['Versiones soportadas', 'Versiones no soportadas']},
+ {k: 'sv', v: ['understödda versioner', 'Viversioner som inte stöds']},
{k: 'zh-Hans', v: ['Supported versions', 'Unsupported versions']},
];
var newpages = [
+ {v: '4.0', pages: ['pgr_bandwidth', 'pgr_kingOrdering', 'pgr_sloanOrdering']},
+
{v: '3.8', pages: ['pgr_contractionDeadEnd', 'pgr_contractionLinear', 'pgr_separateCrossing',
'pgr_separateTouching']},
@@ -207,29 +210,10 @@ var filesArr = [
{ v: '2.1', n: 'src/apsp_johnson/doc/index'},
{ v: '2.3', n: 'src/allpairs/doc/pgr_johnson'}
]),
- new createInfo('pgr_nodeNetwork', '2.0', [
- { v: '2.1', n: 'src/common/doc/functions/node_network'},
- { v: '2.3', n: 'src/topology/doc/pgr_nodeNetwork'} , 3.8,
- ]),
- new createInfo('topology-functions', '2.0', [
+ new createInfo('utilities-family', '2.0', [
{ v: '2.1', n: 'src/common/doc/functions/index'},
{ v: '2.3', n: 'src/topology/doc/topology'},
- ]),
- new createInfo('pgr_createVerticesTable', '2.0', [
- { v: '2.1', n: 'src/common/doc/functions/create_vert_table'},
- { v: '2.3', n: 'src/topology/doc/pgr_createVerticesTable'}, 3.8
- ]),
- new createInfo('pgr_createTopology', '2.0', [
- { v: '2.1', n: 'src/common/doc/functions/create_topology'},
- { v: '2.3', n: 'src/topology/doc/pgr_createTopology'}, 3.8
- ]),
- new createInfo('pgr_analyzeOneWay', '2.0', [
- { v: '2.1', n: 'src/common/doc/functions/analyze_oneway'},
- { v: '2.3', n: 'src/topology/doc/pgr_analyzeOneWay'}, 3.8
- ]),
- new createInfo('pgr_analyzeGraph', '2.0', [
- { v: '2.1', n: 'src/common/doc/functions/analyze_graph'},
- { v: '2.3', n: 'src/topology/doc/pgr_analyzeGraph'},
+ { v: '3.8', n: 'topology-functions'},
]),
new createInfo('pgRouting-concepts', '2.0', [
{ v: '2.3', n: 'doc/src/tutorial/tutorial'},
@@ -260,6 +244,27 @@ var filesArr = [
{ v: '2.1', n: 'src/driving_distance/doc/dd_driving_distance_v3'},
{ v: '2.3', n: 'src/driving_distance/doc/pgr_drivingDistance'}
]),
+
+ new createInfo('pgr_nodeNetwork', '2.0', [
+ { v: '2.1', n: 'src/common/doc/functions/node_network'},
+ { v: '2.3', n: 'src/topology/doc/pgr_nodeNetwork'}, 3.8
+ ]),
+ new createInfo('pgr_createVerticesTable', '2.0', [
+ { v: '2.1', n: 'src/common/doc/functions/create_vert_table'},
+ { v: '2.3', n: 'src/topology/doc/pgr_createVerticesTable'}, 3.8
+ ]),
+ new createInfo('pgr_createTopology', '2.0', [
+ { v: '2.1', n: 'src/common/doc/functions/create_topology'},
+ { v: '2.3', n: 'src/topology/doc/pgr_createTopology'}, 3.8
+ ]),
+ new createInfo('pgr_analyzeOneWay', '2.0', [
+ { v: '2.1', n: 'src/common/doc/functions/analyze_oneway'},
+ { v: '2.3', n: 'src/topology/doc/pgr_analyzeOneWay'}, 3.8
+ ]),
+ new createInfo('pgr_analyzeGraph', '2.0', [
+ { v: '2.1', n: 'src/common/doc/functions/analyze_graph'},
+ { v: '2.3', n: 'src/topology/doc/pgr_analyzeGraph'}, 3.8
+ ]),
new createInfo('pgr_alphaShape', '2.0', [
{ v: '2.1', n: 'src/driving_distance/doc/dd_alphashape'},
{ v: '2.3', n: 'src/alpha_shape/doc/pgr_alphaShape'}, 3.8
@@ -319,9 +324,6 @@ function get_history(name, lang) {
if (versionsArr[i] < data.newat) break;
if (data.removedat != '' && versionsArr[i] > data.newat) break;
- /* for zh-Hans non translated versions use english */
- validlang = (lang == 'zh-Hans' && versionsArr[i] >= '3.7')? 'zh_Hans' : 'en';
-
let link = `${home}${versionsArr[i]}/`
link += get_vdata(data.altnames, versionsArr[i], data.file, validlang);
if (versionsArr[i] == latest) result += '(' + link + ') ';
@@ -338,6 +340,10 @@ function get_history(name, lang) {
/* for spanish non translated versions use english */
validlang = (lang == 'es' && unsuportedArr[i] == '2.0')? 'es' : validlang;
+ /* for zh-Hans non translated versions use english */
+ validlang = (lang == 'zh-Hans' && versionsArr[i] >= '3.7')? 'zh_Hans' : 'en';
+ /* for swedish non translated versions use english */
+ validlang = (lang == 'sv' && versionsArr[i] >= '4.0')? 'sv' : 'en';
if (data.newat > unsuportedArr[i]) break;
var link = home + unsuportedArr[i] + '/';
@@ -347,4 +353,3 @@ function get_history(name, lang) {
}
return result;
}
-
diff --git a/doc/_templates/CMakeLists.txt b/doc/_templates/CMakeLists.txt
new file mode 100644
index 00000000000..38e5ec2c2b0
--- /dev/null
+++ b/doc/_templates/CMakeLists.txt
@@ -0,0 +1,11 @@
+
+set(LOCAL_FILES
+ layout.html
+)
+
+foreach (f ${LOCAL_FILES})
+ configure_file(${f} ${f} @ONLY)
+ list(APPEND LOCAL_DOC_FILES ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
diff --git a/doc/allpairs/CMakeLists.txt b/doc/allpairs/CMakeLists.txt
index 4d36733a41b..402eb9e006e 100644
--- a/doc/allpairs/CMakeLists.txt
+++ b/doc/allpairs/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
allpairs-family.rst
pgr_floydWarshall.rst
pgr_johnson.rst
diff --git a/doc/allpairs/pgr_floydWarshall.rst b/doc/allpairs/pgr_floydWarshall.rst
index c9709d91c2d..8e73e322251 100644
--- a/doc/allpairs/pgr_floydWarshall.rst
+++ b/doc/allpairs/pgr_floydWarshall.rst
@@ -100,7 +100,7 @@ See Also
* :doc:`pgr_johnson`
* :doc:`sampledata`
-* Boost `floyd-Warshall
+* Boost `Floyd-Warshall
`_
.. rubric:: Indices and tables
diff --git a/doc/allpairs/pgr_johnson.rst b/doc/allpairs/pgr_johnson.rst
index a182800b778..e171236004c 100644
--- a/doc/allpairs/pgr_johnson.rst
+++ b/doc/allpairs/pgr_johnson.rst
@@ -17,7 +17,7 @@
===============================================================================
``pgr_johnson`` - Returns the sum of the costs of the shortest path for each
-pair of nodes in the graph using Floyd-Warshall algorithm.
+pair of nodes in the graph using Johnson algorithm.
.. rubric:: Availability
diff --git a/doc/alpha_shape/CMakeLists.txt b/doc/alpha_shape/CMakeLists.txt
deleted file mode 100644
index 313dff3d04b..00000000000
--- a/doc/alpha_shape/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-
-SET(LOCAL_FILES
- pgr_alphaShape.rst
- )
-
-foreach (f ${LOCAL_FILES})
- configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
- list(APPEND LOCAL_DOC_FILES ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
-endforeach()
-
-set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
-
diff --git a/doc/alpha_shape/pgr_alphaShape.rst b/doc/alpha_shape/pgr_alphaShape.rst
deleted file mode 100644
index 4601ef9ec03..00000000000
--- a/doc/alpha_shape/pgr_alphaShape.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-..
- ****************************************************************************
- pgRouting Manual
- Copyright(c) pgRouting Contributors
-
- This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
- ****************************************************************************
-
-
-.. index::
- single: alphaShape
-
-|
-
-``pgr_alphaShape``
-===============================================================================
-
-``pgr_alphaShape`` — Polygon part of an alpha shape.
-
-.. rubric:: Availability
-
-* Version 3.8.0
-
- * Deprecated function.
-
-* Version 3.0.0
-
- * Breaking change on signature
- * Old signature no longer supported
- * **Boost 1.54** & **Boost 1.55** are supported
- * **Boost 1.56+** is preferable
-
- * Boost Geometry is stable on Boost 1.56
-
-* Version 2.1.0
-
- * Added alpha argument with default 0 (use optimal value)
- * Support to return multiple outer/inner ring
-
-* Version 2.0.0
-
- * New official function.
- * Renamed from version 1.x
-
-
-.. include:: migration.rst
- :start-after: migrate_pgr_alphaShape_start
- :end-before: migrate_pgr_alphaShape_end
-
-Description
--------------------------------------------------------------------------------
-
-Returns the polygon part of an alpha shape.
-
-Characteristics
-
-* Input is a *geometry* and returns a *geometry*
-* Uses PostGis ST_DelaunyTriangles
-* Instead of using CGAL's definition of `alpha` it use the ``spoon_radius``
-
- * :math:`spoon\_radius = \sqrt alpha`
-
-* A Triangle area is considered part of the alpha shape when
- :math:`circumcenter\ radius < spoon\_radius`
-* The ``alpha`` parameter is the **spoon radius**
-* When the total number of points is less than 3, returns an EMPTY geometry
-
-
-|Boost| Boost Graph Inside
-
-Signatures
--------------------------------------------------------------------------------
-
-
-.. admonition:: \ \
- :class: signatures
-
- | pgr_alphaShape(**geometry**, [alpha])
-
- | RETURNS ``geometry``
-
-
-:Example: passing a geometry collection with spoon radius :math:`1.5` using the
- return variable ``geom``
-
-.. literalinclude:: alphashape.queries
- :start-after: -- q1
- :end-before: -- q2
-
-
-Parameters
--------------------------------------------------------------------------------
-
-============= ============= ======== ========================================
-Parameter Type Default Description
-============= ============= ======== ========================================
-**geometry** ``geometry`` Geometry with at least :math:`3` points
-``alpha`` ``FLOAT`` 0 The radius of the spoon.
-============= ============= ======== ========================================
-
-Return Value
--------------------------------------------------------------------------------
-
-==================== ========================
-Kind of geometry Description
-==================== ========================
-GEOMETRY COLLECTION A Geometry collection of Polygons
-==================== ========================
-
-See Also
--------------------------------------------------------------------------------
-
-* :doc:`pgr_drivingDistance`
-* :doc:`sampledata`
-* `ST_ConcaveHull `__
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
diff --git a/doc/astar/CMakeLists.txt b/doc/astar/CMakeLists.txt
index f86a6077d90..3d6a2d575da 100644
--- a/doc/astar/CMakeLists.txt
+++ b/doc/astar/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
aStar-family.rst
pgr_aStarCost.rst
pgr_aStarCostMatrix.rst
diff --git a/doc/astar/pgr_aStar.rst b/doc/astar/pgr_aStar.rst
index 4f5baf3a28d..10921d699d9 100644
--- a/doc/astar/pgr_aStar.rst
+++ b/doc/astar/pgr_aStar.rst
@@ -20,41 +20,45 @@
.. rubric:: Availability
-* Version 3.6.0
+.. rubric:: Version 4.0.0
- * Standardizing output columns to |short-generic-result|
+* Combinations signature promoted to official.
- * pgr_aStar(One to One) added ``start_vid`` and ``end_vid`` columns.
- * pgr_aStar(One to Many) added ``end_vid`` column.
- * pgr_aStar(Many to One) added ``start_vid`` column.
+.. rubric:: Version 3.6.0
-* Version 3.2.0
+* Standardizing output columns to |short-generic-result|
- * New proposed signature:
+ * pgr_aStar(One to One) added ``start_vid`` and ``end_vid`` columns.
+ * pgr_aStar(One to Many) added ``end_vid`` column.
+ * pgr_aStar(Many to One) added ``start_vid`` column.
- * pgr_aStar(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_aStar(Combinations)
+
+.. rubric:: Version 3.0.0
+
+* Function promoted to official.
-* Version 2.4.0
+.. rubric:: Version 2.4.0
- * New proposed signatures:
+* New proposed signatures:
- * pgr_aStar(One to Many)
- * pgr_aStar(Many to One)
- * pgr_aStar(Many to Many)
+ * pgr_aStar(One to Many)
+ * pgr_aStar(Many to One)
+ * pgr_aStar(Many to Many)
-* Version 2.3.0
+.. rubric:: Version 2.3.0
- * Signature change on pgr_aStar(One to One)
+* Signature change on pgr_aStar(One to One)
- * Old signature no longer supported
+ * Old signature no longer supported
-* Version 2.0.0
+.. rubric:: Version 2.0.0
- * New official function.
+* New official function.
Description
-------------------------------------------------------------------------------
@@ -184,7 +188,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: aStar ; Combinations - Proposed on v3.2
+ single: aStar ; Combinations
Combinations
...............................................................................
@@ -255,8 +259,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_short_start
- :end-before: return_path_short_end
+ :start-after: return_path_complete_start
+ :end-before: return_path_complete_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/astar/pgr_aStarCost.rst b/doc/astar/pgr_aStarCost.rst
index efc69ccb6e7..f1676ad577a 100644
--- a/doc/astar/pgr_aStarCost.rst
+++ b/doc/astar/pgr_aStarCost.rst
@@ -21,24 +21,28 @@
.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_aStarCost(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_aStarCost(Combinations)
-* Version 2.4.0
+.. rubric:: Version 3.0.0
- * New proposed function.
+* Function promoted to official.
+
+.. rubric:: Version 2.4.0
+
+* New proposed function.
Description
-------------------------------------------------------------------------------
-The ``pgr_aStarCost`` function summarizes of the cost of the shortest path
+The ``pgr_aStarCost`` function summarizes the cost of the shortest path
using the A* algorithm.
**The main characteristics are:**
@@ -171,7 +175,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: aStarCost ; Combinations - Proposed on v3.2
+ single: aStarCost ; Combinations
Combinations
...............................................................................
diff --git a/doc/bdAstar/CMakeLists.txt b/doc/bdAstar/CMakeLists.txt
index 3687a8b4b8f..b37921efc6e 100644
--- a/doc/bdAstar/CMakeLists.txt
+++ b/doc/bdAstar/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
bdAstar-family.rst
pgr_bdAstar.rst
pgr_bdAstarCost.rst
diff --git a/doc/bdAstar/bdAstar-family.rst b/doc/bdAstar/bdAstar-family.rst
index 71086c8d0f8..b0a6e78abe0 100644
--- a/doc/bdAstar/bdAstar-family.rst
+++ b/doc/bdAstar/bdAstar-family.rst
@@ -50,10 +50,10 @@ The main Characteristics are:
:start-after: astar general info start
:end-before: astar general info end
-* For large graphs where there is a path bewtween the starting vertex and ending
+* For large graphs where there is a path between the starting vertex and ending
vertex:
- * It is expected to terminate faster than pgr_aStar
+ * It is expected to terminate faster than doc:`pgr_aStar`
See :ref:`heuristics ` available and :ref:`factor
` handling.
diff --git a/doc/bdAstar/pgr_bdAstar.rst b/doc/bdAstar/pgr_bdAstar.rst
index 8d514c12acc..3d709efab3c 100644
--- a/doc/bdAstar/pgr_bdAstar.rst
+++ b/doc/bdAstar/pgr_bdAstar.rst
@@ -20,39 +20,43 @@
.. rubric:: Availability
-* Version 3.6.0
+.. rubric:: Version 4.0.0
- * Standardizing output columns to |short-generic-result|
+* Combinations signature promoted to official.
- * pgr_bdAstar(One to One) added ``start_vid`` and ``end_vid`` columns.
- * pgr_bdAstar(One to Many) added ``end_vid`` column.
- * pgr_bdAstar(Many to One) added ``start_vid`` column.
+.. rubric:: Version 3.6.0
-* Version 3.2.0
+* Standardizing output columns to |short-generic-result|
- * New proposed signature:
+ * pgr_bdAstar(One to One) added ``start_vid`` and ``end_vid`` columns.
+ * pgr_bdAstar(One to Many) added ``end_vid`` column.
+ * pgr_bdAstar(Many to One) added ``start_vid`` column.
- * pgr_bdAstar(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_bdAstar(Combinations)
+
+.. rubric:: Version 3.0.0
+
+* Function promoted to official.
-* Version 2.5.0
+.. rubric:: Version 2.5.0
- * New proposed signatures:
+* New proposed signatures:
- * pgr_bdAstar(One to Many)
- * pgr_bdAstar(Many to One)
- * pgr_bdAstar(Many to Many)
+ * pgr_bdAstar(One to Many)
+ * pgr_bdAstar(Many to One)
+ * pgr_bdAstar(Many to Many)
- * Signature change on pgr_bdAstar(One to One)
+* Signature change on pgr_bdAstar(One to One)
- * Old signature no longer supported
+ * Old signature no longer supported
-* Version 2.0.0
+.. rubric:: Version 2.0.0
- * New official function.
+* New official function.
Description
-------------------------------------------------------------------------------
@@ -63,8 +67,8 @@ Description
:start-after: astar general info start
:end-before: astar general info end
-* The results are equivalent to the union of the results of the
- pgr_bdAStar(One to One) on the:
+* The results are equivalent to the union of the results of pgr_bdAStar(One to
+ One) on the:
* pgr_bdAstar(One to Many)
* pgr_bdAstar(Many to One)
@@ -182,7 +186,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: bdAstar ; Combinations - Proposed on v3.2
+ single: bdAstar ; Combinations
Combinations
...............................................................................
@@ -253,8 +257,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_short_start
- :end-before: return_path_short_end
+ :start-after: return_path_complete_start
+ :end-before: return_path_complete_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/bdAstar/pgr_bdAstarCost.rst b/doc/bdAstar/pgr_bdAstarCost.rst
index 38d58eb901e..98417c6406c 100644
--- a/doc/bdAstar/pgr_bdAstarCost.rst
+++ b/doc/bdAstar/pgr_bdAstarCost.rst
@@ -21,24 +21,28 @@ A* algorithm.
.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_bdAstarCost(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_bdAstarCost(Combinations)
-* Version 2.4.0
+.. rubric:: Version 3.0.0
- * New proposed function.
+* Function promoted to official.
+
+.. rubric:: Version 2.4.0
+
+* New proposed function.
Description
-------------------------------------------------------------------------------
-The ``pgr_bdAstarCost`` function summarizes of the cost of the shortest path
+The ``pgr_bdAstarCost`` function summarizes the cost of the shortest path
using the bidirectional A* algorithm.
**The main characteristics are:**
@@ -171,7 +175,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: bdAstarCost ; Combinations - Proposed on v3.2
+ single: bdAstarCost ; Combinations
Combinations
...............................................................................
diff --git a/doc/bdAstar/pgr_bdAstarCostMatrix.rst b/doc/bdAstar/pgr_bdAstarCostMatrix.rst
index 8006756656e..eac76c13fce 100644
--- a/doc/bdAstar/pgr_bdAstarCostMatrix.rst
+++ b/doc/bdAstar/pgr_bdAstarCostMatrix.rst
@@ -17,7 +17,7 @@
``pgr_bdAstarCostMatrix``
===============================================================================
-``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using :doc:`pgr_aStar`.
+``pgr_bdAstarCostMatrix`` - Calculates the cost matrix using :doc:`pgr_bdAstar`.
.. rubric:: Availability
@@ -34,7 +34,7 @@ Description
**The main characteristics are:**
-* Using internally the :doc:`pgr_bdAstar` algorithm
+* Internally uses the :doc:`pgr_bdAstar` algorithm.
* Returns a cost matrix.
* No ordering is performed
* let `v` and `u` are nodes on the graph:
diff --git a/doc/bdDijkstra/CMakeLists.txt b/doc/bdDijkstra/CMakeLists.txt
index 77229aec42f..0e9dc82bc84 100644
--- a/doc/bdDijkstra/CMakeLists.txt
+++ b/doc/bdDijkstra/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
bdDijkstra-family.rst
pgr_bdDijkstraCost.rst
pgr_bdDijkstraCostMatrix.rst
diff --git a/doc/bdDijkstra/bdDijkstra-family.rst b/doc/bdDijkstra/bdDijkstra-family.rst
index e2c3dbf8f49..768af33ab5f 100644
--- a/doc/bdDijkstra/bdDijkstra-family.rst
+++ b/doc/bdDijkstra/bdDijkstra-family.rst
@@ -84,6 +84,8 @@ The main Characteristics are:
See Also
-------------------------------------------------------------------------------
+* `Boost `__
+
.. rubric:: Indices and tables
* :ref:`genindex`
diff --git a/doc/bdDijkstra/pgr_bdDijkstra.rst b/doc/bdDijkstra/pgr_bdDijkstra.rst
index 67379e72bdb..d182d006f8d 100644
--- a/doc/bdDijkstra/pgr_bdDijkstra.rst
+++ b/doc/bdDijkstra/pgr_bdDijkstra.rst
@@ -21,33 +21,38 @@ algorithm.
.. rubric:: Availability:
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Output columns standardized to |short-generic-result|
+* Combinations signature promoted to official.
- * pgr_bdDijkstra(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_bdDijkstra(Combinations)
-* Version 2.5.0
+.. rubric:: Version 3.0.0
- * New proposed signatures:
+* Function promoted to official.
- * pgr_bdDijkstra(One to Many)
- * pgr_bdDijkstra(Many to One)
- * pgr_bdDijkstra(Many to Many)
+.. rubric:: Version 2.5.0
-* Version 2.4.0
+* New proposed signatures:
- * Signature change on pgr_bdDijsktra(One to One)
+ * pgr_bdDijkstra(One to Many)
+ * pgr_bdDijkstra(Many to One)
+ * pgr_bdDijkstra(Many to Many)
- * Old signature no longer supported
+.. rubric:: Version 2.4.0
-* Version 2.0.0
+* Signature change on pgr_bdDijkstra(One to One)
- * New official function.
+ * Old signature no longer supported
+
+.. rubric:: Version 2.0.0
+
+* New official function.
Description
@@ -75,7 +80,7 @@ Signatures
| pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])
| pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])
- | Returns set of |old-generic-result|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
.. index::
@@ -89,7 +94,7 @@ One to One
| pgr_bdDijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertex :math:`6` to vertex :math:`10` on a **directed** graph
@@ -109,7 +114,7 @@ One to Many
| pgr_bdDijkstra(`Edges SQL`_, **start vid**, **end vids**, [``directed``])
- | Returns set of |result-1-m|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertex :math:`6` to vertices :math:`\{10, 17\}` on a **directed**
@@ -130,7 +135,7 @@ Many to One
| pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vid**, [``directed``])
- | Returns set of |result-m-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertices :math:`\{6, 1\}` to vertex :math:`17` on a **directed**
@@ -162,7 +167,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: bdDijkstra ; Combinations - Proposed on v3.2
+ single: bdDijkstra ; Combinations
Combinations
...............................................................................
@@ -224,8 +229,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_short_start
- :end-before: return_path_short_end
+ :start-after: return_path_complete_start
+ :end-before: return_path_complete_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/bdDijkstra/pgr_bdDijkstraCost.rst b/doc/bdDijkstra/pgr_bdDijkstraCost.rst
index 2f3384314ae..d63fa3f82fe 100644
--- a/doc/bdDijkstra/pgr_bdDijkstraCost.rst
+++ b/doc/bdDijkstra/pgr_bdDijkstraCost.rst
@@ -21,25 +21,29 @@ Dijkstra algorithm.
.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_bdDijkstraCost(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_bdDijkstraCost(Combinations)
-* Version 2.5.0
+.. rubric:: Version 3.0.0
- * New proposed function.
+* Function promoted to official.
+
+.. rubric:: Version 2.5.0
+
+* New proposed function.
Description
-------------------------------------------------------------------------------
-The ``pgr_bdDijkstraCost`` function summarizes of the cost of the shortest path
+The ``pgr_bdDijkstraCost`` function summarizes the cost of the shortest path
using the bidirectional Dijkstra Algorithm.
.. include:: bdDijkstra-family.rst
@@ -153,7 +157,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: bdDijkstraCost ; Combinations - Proposed on v3.2
+ single: bdDijkstraCost ; Combinations
Combinations
...............................................................................
diff --git a/doc/bellman_ford/CMakeLists.txt b/doc/bellman_ford/CMakeLists.txt
index dc536bd81ea..98483a4f962 100644
--- a/doc/bellman_ford/CMakeLists.txt
+++ b/doc/bellman_ford/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_bellmanFord.rst
pgr_edwardMoore.rst
)
diff --git a/doc/bellman_ford/pgr_bellmanFord.rst b/doc/bellman_ford/pgr_bellmanFord.rst
index 9c185a95a42..2f824be66ec 100644
--- a/doc/bellman_ford/pgr_bellmanFord.rst
+++ b/doc/bellman_ford/pgr_bellmanFord.rst
@@ -22,17 +22,21 @@
:start-after: warning-begin
:end-before: end-warning
-.. rubric:: Availability
+.. rubric:: Availability:
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New experimental signature:
+* Output columns standardized to |short-generic-result|
- * pgr_bellmanFord(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New experimental signature:
- * New experimental function.
+ * pgr_bellmanFord(Combinations)
+
+.. rubric:: Version 3.0.0
+
+* New experimental function.
Description
-------------------------------------------------------------------------------
@@ -87,7 +91,7 @@ Signatures
| pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vids**, [``directed``])
| pgr_bellmanFord(`Edges SQL`_, `Combinations SQL`_, [``directed``])
- | Returns set of |old-generic-result|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
.. index::
@@ -101,7 +105,7 @@ One to One
| pgr_bellmanFord(`Edges SQL`_, **start vid**, **end vid**, [``directed``])
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertex :math:`6` to vertex :math:`10` on a **directed** graph
@@ -121,11 +125,11 @@ One to Many
| pgr_bellmanFord(`Edges SQL`_, **start vid**, **end vids**, [``directed``])
- | Returns set of |result-1-m|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
-:Example: From vertex :math:`6` to vertices :math:`\{ 10, 17\}` on a
- **directed** graph
+:Example: From vertex :math:`6` to vertices :math:`\{10, 17\}` on a directed
+ graph
.. literalinclude:: bellmanFord.queries
:start-after: -- q3
@@ -142,10 +146,10 @@ Many to One
| pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid**, [``directed``])
- | Returns set of |result-m-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
-:Example: From vertices :math:`\{6, 1\}` to vertex :math:`17` on a **directed**
+:Example: From vertices :math:`\{6, 1\}` to vertex :math:`17` on a directed
graph
.. literalinclude:: bellmanFord.queries
@@ -167,7 +171,7 @@ Many to Many
| OR EMPTY SET
:Example: From vertices :math:`\{6, 1\}` to vertices :math:`\{10, 17\}` on an
- **undirected** graph
+ undirected graph
.. literalinclude:: bellmanFord.queries
:start-after: -- q5
@@ -187,7 +191,7 @@ Combinations
| Returns set of |short-generic-result|
| OR EMPTY SET
-:Example: Using a combinations table on an **undirected** graph.
+:Example: Using a combinations table on an undirected graph
The combinations table:
@@ -236,8 +240,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_short_start
- :end-before: return_path_short_end
+ :start-after: return_path_complete_start
+ :end-before: return_path_complete_end
Additional Examples
-------------------------------------------------------------------------------
@@ -267,9 +271,6 @@ See Also
* `Boost: Bellman Ford `__
* https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm
- Boost Graph Inside
-
-
.. rubric:: Indices and tables
* :ref:`genindex`
diff --git a/doc/bellman_ford/pgr_edwardMoore.rst b/doc/bellman_ford/pgr_edwardMoore.rst
index 2073f17bcc5..4e718bc34b0 100644
--- a/doc/bellman_ford/pgr_edwardMoore.rst
+++ b/doc/bellman_ford/pgr_edwardMoore.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
@@ -25,15 +25,19 @@
.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New experimental signature:
+* Output columns standardized to |short-generic-result|
- * pgr_edwardMoore(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New experimental signature:
- * New experimental function.
+ * pgr_edwardMoore(Combinations)
+
+.. rubric:: Version 3.0.0
+
+* New experimental function.
Description
-------------------------------------------------------------------------------
@@ -95,7 +99,7 @@ Signatures
| pgr_edwardMoore(`Edges SQL`_, **start vids**, **end vids**, [``directed``])
| pgr_edwardMoore(`Edges SQL`_, `Combinations SQL`_, [``directed``])
- | Returns set of |old-generic-result|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
.. index::
@@ -109,7 +113,7 @@ One to One
| pgr_edwardMoore(`Edges SQL`_, **start vid**, **end vid**, [``directed``])
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertex :math:`6` to vertex :math:`10` on a **directed** graph
@@ -129,11 +133,11 @@ One to Many
| pgr_edwardMoore(`Edges SQL`_, **start vid**, **end vids**, [``directed``])
- | Returns set of |result-1-m|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
-:Example: From vertex :math:`6` to vertices :math:`\{ 10, 17\}` on a
- **directed** graph
+:Example: From vertex :math:`6` to vertices :math:`\{10, 17\}` on a **directed**
+ graph
.. literalinclude:: edwardMoore.queries
:start-after: -- q3
@@ -150,7 +154,7 @@ Many to One
| pgr_edwardMoore(`Edges SQL`_, **start vids**, **end vid**, [``directed``])
- | Returns set of |result-m-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertices :math:`\{6, 1\}` to vertex :math:`17` on a **directed**
@@ -244,8 +248,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_short_start
- :end-before: return_path_short_end
+ :start-after: return_path_complete_start
+ :end-before: return_path_complete_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/categories/CMakeLists.txt b/doc/categories/CMakeLists.txt
index ccb9af99eea..5001561f921 100644
--- a/doc/categories/CMakeLists.txt
+++ b/doc/categories/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
BFS-category.rst
cost-category.rst
costMatrix-category.rst
diff --git a/doc/categories/KSP-category.rst b/doc/categories/KSP-category.rst
index 8416fcb0b83..5b96d59240f 100644
--- a/doc/categories/KSP-category.rst
+++ b/doc/categories/KSP-category.rst
@@ -17,19 +17,9 @@ K shortest paths - Category
.. official-start
* :doc:`pgr_KSP` - Yen's algorithm based on pgr_dijkstra
-
-.. official-end
-
-.. include:: proposed.rst
- :start-after: warning-begin
- :end-before: end-warning
-
-.. proposed-start
-
* :doc:`pgr_withPointsKSP` - Yen's algorithm based on pgr_withPoints
-.. proposed-end
-
+.. official-end
.. rubric:: Indices and tables
diff --git a/doc/categories/VRP-category.rst b/doc/categories/VRP-category.rst
index a4bef028417..a79164284c1 100644
--- a/doc/categories/VRP-category.rst
+++ b/doc/categories/VRP-category.rst
@@ -65,7 +65,7 @@ Characteristics
locations.
-.. Rubric:: Limitations
+.. rubric:: Limitations
- No multiple time windows for a location.
- Less vehicle used is considered better.
diff --git a/doc/categories/cost-category.rst b/doc/categories/cost-category.rst
index 305cda32776..3f775a3a688 100644
--- a/doc/categories/cost-category.rst
+++ b/doc/categories/cost-category.rst
@@ -22,7 +22,7 @@ Cost - Category
* :doc:`pgr_bdAstarCost`
* :doc:`pgr_dijkstraCost`
* :doc:`pgr_bdDijkstraCost`
-* :doc:`pgr_dijkstraNearCost`
+* :doc:`pgr_withPointsCost`
.. official-end
@@ -32,7 +32,7 @@ Cost - Category
.. proposed-start
-* :doc:`pgr_withPointsCost`
+* :doc:`pgr_dijkstraNearCost`
.. proposed-end
diff --git a/doc/categories/costMatrix-category.rst b/doc/categories/costMatrix-category.rst
index 1ea0a043803..6a934ccb351 100644
--- a/doc/categories/costMatrix-category.rst
+++ b/doc/categories/costMatrix-category.rst
@@ -20,19 +20,9 @@ Cost Matrix - Category
* :doc:`pgr_dijkstraCostMatrix`
* :doc:`pgr_bdAstarCostMatrix`
* :doc:`pgr_bdDijkstraCostMatrix`
-
-.. official-end
-
-
-.. include:: proposed.rst
- :start-after: warning-begin
- :end-before: end-warning
-
-.. proposed-start
-
* :doc:`pgr_withPointsCostMatrix`
-.. proposed-end
+.. official-end
General Information
-------------------------------------------------------------------------------
diff --git a/doc/categories/drivingDistance-category.rst b/doc/categories/drivingDistance-category.rst
index 3439eb3c352..e8b8b88b6f3 100644
--- a/doc/categories/drivingDistance-category.rst
+++ b/doc/categories/drivingDistance-category.rst
@@ -19,27 +19,9 @@ Driving Distance - Category
* :doc:`pgr_drivingDistance` - Driving Distance based on Dijkstra's algorithm
* :doc:`pgr_primDD` - Driving Distance based on Prim's algorithm
* :doc:`pgr_kruskalDD` - Driving Distance based on Kruskal's algorithm
-* Post processing
-
- * :doc:`pgr_alphaShape` - Alpha shape computation
-
-.. official-end
-
-.. include:: proposed.rst
- :start-after: warning-begin
- :end-before: end-warning
-
-.. proposed-start
-
* :doc:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints
-.. proposed-end
-
-.. toctree::
- :hidden:
-
- pgr_alphaShape.rst
-
+.. official-end
Calculate nodes that are within a distance.
@@ -105,53 +87,9 @@ Edges SQL
Result columns
...............................................................................
-.. spantree-result-columns-start
-
-Returns set of |result-spantree|
-
-.. list-table::
- :width: 81
- :widths: auto
- :header-rows: 1
-
- * - Parameter
- - Type
- - Description
- * - ``seq``
- - ``BIGINT``
- - Sequential value starting from :math:`1`.
- * - ``depth``
- - ``BIGINT``
- - Depth of the ``node``.
-
- - :math:`0` when ``node`` = ``start_vid``.
- - :math:`depth-1` is the depth of ``pred``
-
- * - ``start_vid``
- - ``BIGINT``
- - Identifier of the root vertex.
- * - ``pred``
- - ``BIGINT``
- - Predecessor of ``node``.
-
- - When ``node`` = ``start_vid`` then has the value ``node``.
- * - ``node``
- - ``BIGINT``
- - Identifier of ``node`` reached using ``edge``.
- * - ``edge``
- - ``BIGINT``
- - Identifier of the ``edge`` used to arrive from ``pred`` to ``node``.
-
- - :math:`-1` when ``node`` = ``start_vid``.
-
- * - ``cost``
- - ``FLOAT``
- - Cost to traverse ``edge``.
- * - ``agg_cost``
- - ``FLOAT``
- - Aggregate cost from ``start_vid`` to ``node``.
-
-.. spantree-result-columns-end
+.. include:: pgRouting-concepts.rst
+ :start-after: spantree-result-columns-start
+ :end-before: spantree-result-columns-end
See Also
-------------------------------------------------------------------------------
diff --git a/doc/categories/via-category.rst b/doc/categories/via-category.rst
index 6fec87e3d83..65da171f39e 100644
--- a/doc/categories/via-category.rst
+++ b/doc/categories/via-category.rst
@@ -14,18 +14,14 @@
Via - Category
===============================================================================
-.. include:: proposed.rst
- :start-after: warning-begin
- :end-before: end-warning
-
-.. proposed start
+.. official-start
* :doc:`pgr_dijkstraVia`
* :doc:`pgr_withPointsVia`
* :doc:`pgr_trspVia`
* :doc:`pgr_trspVia_withPoints`
-.. proposed end
+.. official-end
General Information
-------------------------------------------------------------------------------
@@ -47,72 +43,34 @@ Parameters
**Used in:**
* :doc:`pgr_dijkstraVia`
-* :doc:`pgr_trspVia`
-.. via_parameters_start
+.. include:: pgr_dijkstraVia.rst
+ :start-after: via_parameters_start
+ :end-before: via_parameters_end
-.. list-table::
- :width: 81
- :widths: 14 20 7 40
- :header-rows: 1
+**Used in:**
- * - Parameter
- - Type
- - Default
- - Description
- * - `Edges SQL`_
- - ``TEXT``
- -
- - SQL query as described.
- * - **via vertices**
- - ``ARRAY`` [ **ANY-INTEGER** ]
- -
- - Array of ordered vertices identifiers that are going to be visited.
+* :doc:`pgr_withPointsVia`
+
+.. include:: pgr_withPointsVia.rst
+ :start-after: via_withPoints_parameters_start
+ :end-before: via_withPoints_parameters_end
-Where:
+**Used in:**
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
+* :doc:`pgr_trspVia`
-.. via_parameters_end
+.. include:: TRSP-family.rst
+ :start-after: via_parameters_start
+ :end-before: via_parameters_end
**Used in:**
-* :doc:`pgr_withPointsVia`
* :doc:`pgr_trspVia_withPoints`
-.. via_withPoints_parameters_start
-
-.. list-table::
- :width: 81
- :widths: 14 20 7 40
- :header-rows: 1
-
- * - Parameter
- - Type
- - Default
- - Description
- * - `Edges SQL`_
- - ``TEXT``
- -
- - SQL query as described.
- * - `Points SQL`_
- - ``TEXT``
- -
- - SQL query as described.
- * - **via vertices**
- - ``ARRAY`` [ **ANY-INTEGER** ]
- -
- - Array of ordered vertices identifiers that are going to be visited.
-
- * When positive it is considered a vertex identifier
- * When negative it is considered a point identifier
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-:ANY-NUMERICAL: SMALLINT, INTEGER, BIGINT, REAL, FLOAT
-
-.. via_withPoints_parameters_end
+.. include:: /pgr_trspVia_withPoints.rst
+ :start-after: trspvia_withPoints_parameters_start
+ :end-before: trspvia_withPoints_parameters_end
Besides the compulsory parameters each function has, there are optional
parameters that exist due to the kind of function.
diff --git a/doc/categories/withPoints-category.rst b/doc/categories/withPoints-category.rst
index 2ed13d18b01..c2edbfc2aed 100644
--- a/doc/categories/withPoints-category.rst
+++ b/doc/categories/withPoints-category.rst
@@ -16,11 +16,7 @@ withPoints - Category
When points are added to the graph.
-.. include:: proposed.rst
- :start-after: warning-begin
- :end-before: end-warning
-
-.. proposed start
+.. official-start
- :doc:`withPoints-family` - Functions based on Dijkstra algorithm.
- From the :doc:`TRSP-family`:
@@ -28,7 +24,7 @@ When points are added to the graph.
- :doc:`pgr_trsp_withPoints` - Vertex/Point routing with restrictions.
- :doc:`pgr_trspVia_withPoints` - Via Vertex/point routing with restrictions.
-.. proposed end
+.. official-end
Introduction
-------------------------------------------------------------------------------
@@ -129,6 +125,32 @@ Parameters
.. withPoints_parameters_end
+.. driving_side_start
+
+.. list-table::
+ :width: 81
+ :widths: 14 14 44
+
+ * - [**driving side**]
+ - ``CHAR``
+ - Value in [``r``, ``R``, ``l``, ``L``, ``b``, ``B``] indicating if the driving side is:
+
+ - For directed graph:
+
+ - [``r``, ``R``] for right driving side
+ - [``l``, ``L``] for left driving side
+
+ - For undirected graph:
+
+ - [``b``, ``B``] for both driving sides
+
+ - Default values when parameter is missing:
+
+ - [``r``, ``R``] for directed graph
+ - [``l``, ``L``] for undirected graph
+
+.. driving_side_end
+
Optional parameters
...............................................................................
@@ -143,18 +165,12 @@ Optional parameters
- Type
- Default
- Description
- * - ``driving_side``
- - ``CHAR``
- - ``r``
- - Value in [``r``, ``l``] indicating if the driving side is:
-
- - ``r`` for right driving side
- - ``l`` for left driving side
- - Any other value will be considered as ``r``
* - ``details``
- ``BOOLEAN``
- ``false``
- - - When ``true`` the results will include the points that are in the path.
+ - For showing points stops.
+
+ - When ``true`` the results will include the points that are in the path.
- When ``false`` the results will not include the points that are in the
path.
@@ -201,7 +217,7 @@ Points SQL
* - ``fraction``
- **ANY-NUMERICAL**
-
- - Value in <0,1> that indicates the relative postition from the first end
+ - Value in <0,1> that indicates the relative position from the first end
point of the edge.
* - ``side``
- ``CHAR``
diff --git a/doc/chinese/CMakeLists.txt b/doc/chinese/CMakeLists.txt
index 8de08a644dd..22aa2f402c4 100644
--- a/doc/chinese/CMakeLists.txt
+++ b/doc/chinese/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
chinesePostmanProblem-family.rst
pgr_chinesePostmanCost.rst
pgr_chinesePostman.rst
diff --git a/doc/circuits/CMakeLists.txt b/doc/circuits/CMakeLists.txt
index 7bfc18eca1a..892f58cabda 100644
--- a/doc/circuits/CMakeLists.txt
+++ b/doc/circuits/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_hawickCircuits.rst
)
diff --git a/doc/circuits/pgr_hawickCircuits.rst b/doc/circuits/pgr_hawickCircuits.rst
index b44cf15428f..742f49202e1 100644
--- a/doc/circuits/pgr_hawickCircuits.rst
+++ b/doc/circuits/pgr_hawickCircuits.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
diff --git a/doc/coloring/CMakeLists.txt b/doc/coloring/CMakeLists.txt
index 41170eb98ef..d09a9651c52 100644
--- a/doc/coloring/CMakeLists.txt
+++ b/doc/coloring/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
coloring-family.rst
pgr_sequentialVertexColoring.rst
pgr_bipartite.rst
diff --git a/doc/coloring/coloring-family.rst b/doc/coloring/coloring-family.rst
index 38014ae0d45..14e2bc1dc52 100644
--- a/doc/coloring/coloring-family.rst
+++ b/doc/coloring/coloring-family.rst
@@ -49,37 +49,37 @@ Coloring - Family of functions
Result columns
-------------------------------------------------------------------------------
-.. result columns start
+.. result-edge-color-start
-Returns set of ``(vertex_id, color_id)``
+Returns set of |result_edge_color|
=============== =========== ======================================
Column Type Description
=============== =========== ======================================
-``vertex_id`` ``BIGINT`` Identifier of the vertex.
-``color_id`` ``BIGINT`` Identifier of the color of the vertex.
+``edge`` ``BIGINT`` Identifier of the edge.
+``color`` ``BIGINT`` Color of the edge.
- The minimum value of color is 1.
=============== =========== ======================================
-.. result columns end
+.. result-edge-color-end
-.. result columns start edgeColoring
+.. result-node-color-start
-Returns set of ``(edge_id, color_id)``
+Returns set of |result_node_color|
-=============== =========== =====================================
+============ =========== =====================================
Column Type Description
-=============== =========== =====================================
-``edge_id`` ``BIGINT`` Identifier of the edge.
-``color_id`` ``BIGINT`` Identifier of the color of the edge.
+============ =========== =====================================
+``node`` ``BIGINT`` Identifier of the node.
+``color`` ``BIGINT`` Color of the node.
- - The minimum value of color is 1.
+ - The minimum value of color is 1.
-=============== =========== =====================================
+============ =========== =====================================
-.. result columns end edgeColoring
+.. result-node-color-end
See Also
-------------------------------------------------------------------------------
diff --git a/doc/coloring/images/CMakeLists.txt b/doc/coloring/images/CMakeLists.txt
index 9f5eb53301e..2392d9d1b1b 100644
--- a/doc/coloring/images/CMakeLists.txt
+++ b/doc/coloring/images/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
bipartite.png
)
diff --git a/doc/coloring/pgr_bipartite.rst b/doc/coloring/pgr_bipartite.rst
index 971b9d0c4bc..9ed9b836958 100644
--- a/doc/coloring/pgr_bipartite.rst
+++ b/doc/coloring/pgr_bipartite.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
@@ -25,9 +25,13 @@ the same set are adjacent.
.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New experimental function.
+* Output columns standardized to |result_node_color|
+
+.. rubric:: Version 3.2.0
+
+* New experimental function.
Description
-------------------------------------------------------------------------------
@@ -56,7 +60,7 @@ Signatures
| pgr_bipartite(`Edges SQL`_)
- | Returns set of |result-node-color|
+ | Returns set of |result_node_color|
| OR EMPTY SET
:Example: When the graph is bipartite
@@ -86,8 +90,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: coloring-family.rst
- :start-after: result columns start
- :end-before: result columns end
+ :start-after: result-node-color-start
+ :end-before: result-node-color-end
Additional Example
--------------------------------------------------------------------------------
diff --git a/doc/coloring/pgr_edgeColoring.rst b/doc/coloring/pgr_edgeColoring.rst
index b4968f9f63b..320c6784524 100644
--- a/doc/coloring/pgr_edgeColoring.rst
+++ b/doc/coloring/pgr_edgeColoring.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
@@ -25,9 +25,13 @@ graphs
.. rubric:: Availability
-* Version 3.3.0
+.. rubric:: Version 4.0.0
- * New experimental function.
+* Output columns standardized to |result_edge_color|
+
+.. rubric:: Version 3.3.0
+
+* New experimental function.
Description
-------------------------------------------------------------------------------
@@ -77,7 +81,7 @@ Signatures
| pgr_edgeColoring(`Edges SQL`_)
- | Returns set of |result-edge-color|
+ | Returns set of |result_edge_color|
| OR EMPTY SET
:Example: Graph coloring of pgRouting :doc:`sampledata`
@@ -109,8 +113,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: coloring-family.rst
- :start-after: result columns start edgeColoring
- :end-before: result columns end edgeColoring
+ :start-after: result-edge-color-start
+ :end-before: result-edge-color-end
See Also
diff --git a/doc/coloring/pgr_sequentialVertexColoring.rst b/doc/coloring/pgr_sequentialVertexColoring.rst
index 6d027eb00dc..caff1580be7 100644
--- a/doc/coloring/pgr_sequentialVertexColoring.rst
+++ b/doc/coloring/pgr_sequentialVertexColoring.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
@@ -25,14 +25,17 @@ graph, using greedy approach.
.. rubric:: Availability
-* Version 3.3.0
+.. rubric:: Version 4.0.0
- * Function promoted to proposed.
+* Output columns standardized to |result_node_color|
-* Version 3.2.0
+.. rubric:: Version 3.3.0
- * New experimental function.
+* Function promoted to proposed.
+.. rubric:: Version 3.2.0
+
+* New experimental function.
Description
-------------------------------------------------------------------------------
@@ -68,7 +71,7 @@ Signatures
| pgr_sequentialVertexColoring(`Edges SQL`_)
- | Returns set of |result-node-color|
+ | Returns set of |result_node_color|
| OR EMPTY SET
:Example: Graph coloring of pgRouting :doc:`sampledata`
@@ -100,8 +103,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: coloring-family.rst
- :start-after: result columns start
- :end-before: result columns end
+ :start-after: result-node-color-start
+ :end-before: result-node-color-end
See Also
diff --git a/doc/components/CMakeLists.txt b/doc/components/CMakeLists.txt
index 1c685b8c22c..23cd91ceb4f 100644
--- a/doc/components/CMakeLists.txt
+++ b/doc/components/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
components-family.rst
pgr_connectedComponents.rst
pgr_strongComponents.rst
diff --git a/doc/components/images/CMakeLists.txt b/doc/components/images/CMakeLists.txt
index 0e859f9b9f3..1c79bf755dd 100644
--- a/doc/components/images/CMakeLists.txt
+++ b/doc/components/images/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
cc_sampledata.png
scc_sampledata.png
bcc_sampledata.png
diff --git a/doc/components/pgr_makeConnected.rst b/doc/components/pgr_makeConnected.rst
index f58c7d762d8..2a95d2ef29f 100644
--- a/doc/components/pgr_makeConnected.rst
+++ b/doc/components/pgr_makeConnected.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
diff --git a/doc/conf.py.in b/doc/conf.py.in
index 4db503d38f8..fc1744da03f 100644
--- a/doc/conf.py.in
+++ b/doc/conf.py.in
@@ -54,7 +54,6 @@ extensions = [
'sphinx.ext.mathjax',
'sphinx.ext.graphviz',
'sphinx.ext.autosectionlabel',
- 'sphinx_collapse',
]
autosectionlabel_prefix_document = True
@@ -333,7 +332,11 @@ linkcheck_ignore = [
r'https://github.com/pgRouting/pgrouting/issues/*', # limit only pgrouting
r'https://github.com/pgRouting/pgrouting/archive/*',
r'https://docs.pgrouting.org/3.8/*',
- r'https://www.overpass-api.de/*'
+ # Currently has a problem
+ 'https://www.boost.org/doc/libs/1_78_0/libs/graph/doc/hawick_circuits.html',
+ r'https://www.overpass-api.de/*',
+ # 403 Client error
+ 'https://gis.stackexchange.com/questions/tagged/pgrouting'
]
linkcheck_timeout = 20
@@ -347,56 +350,38 @@ rst_epilog="""
.. |short-generic-result| replace:: ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
.. |via-result| replace:: ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost, route_agg_cost)``
.. |matrix-result| replace:: ``(start_vid, end_vid, agg_cost)``
-.. |matrix-pid| replace:: ``(start_pid, end_pid, agg_cost)``
.. |ksp-result| replace:: ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``
.. |tsp-result| replace:: ``(seq, node, cost, agg_cost)``
.. |nksp-result| replace:: ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
-.. |old-generic-result| replace:: ``(seq, path_seq, [start_vid], [end_vid], node, edge, cost, agg_cost)``
-.. |old-pid-result| replace:: ``(seq, path_seq, [start_pid], [end_pid], node, edge, cost, agg_cost)``
-.. |pid-1-m| replace:: ``(seq, path_seq, end_pid, node, edge, cost, agg_cost)``
-.. |pid-m-1| replace:: ``(seq, path_seq, start_pid, node, edge, cost, agg_cost)``
-.. |pid-m-m| replace:: ``(seq, path_seq, start_pid, end_pid, node, edge, cost, agg_cost)``
-.. |result-1-1| replace:: ``(seq, path_seq, node, edge, cost, agg_cost)``
-.. |result-1-m| replace:: ``(seq, path_seq, end_vid, node, edge, cost, agg_cost)``
-.. |result-m-1| replace:: ``(seq, path_seq, start_vid, node, edge, cost, agg_cost)``
-.. |result-bfs| replace:: ``(seq, depth, start_vid, node, edge, cost, agg_cost)``
.. |result-spantree| replace:: ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)``
.. |result-mst| replace:: ``(edge, cost)``
.. |result-generic-no-seq| replace:: ``(seq, [start_vid], node, edge, cost, agg_cost)``
.. |result-1-1-no-seq| replace:: ``(seq, node, edge, cost, agg_cost)``
.. |result-m-1-no-seq| replace:: ``(seq, start_vid, node, edge, cost, agg_cost)``
-.. |result-node-color| replace:: ``(vertex_id, color_id)``
-.. |result-edge-color| replace:: ``(edge_id, color_id)``
+.. |result_node_color| replace:: ``(node, color)``
+.. |result_edge_color| replace:: ``(edge, color)``
.. |result-node| replace:: ``(node)``
.. |result-edge| replace:: ``(edge)``
.. |result-separate| replace:: ``(seq,id,sub_id,geom)``
-.. |result-node-order| replace:: ``(seq, node)``
+.. |result_node_order| replace:: ``(seq, node)``
.. |result-degree| replace:: ``(node, degree)``
.. |result-extract| replace:: ``(id, in_edges, out_edges, x, y, geom)``
.. |result-find| replace:: ``(edge_id, fraction, side, distance, geom, edge)``
.. |result-version| replace:: ``(version, build_type, compile_date, library, system, PostgreSQL, compiler, boost, hash)``
-.. |result-toposort| replace:: ``(seq, sorted_v)``
-.. |result-closure| replace:: ``(seq, vid, target_array)``
+.. |result-closure| replace:: ``(node,targets)``
.. |result-component-E| replace:: ``(seq, component, edge)``
.. |result-component-V| replace:: ``(seq, component, node)``
.. |result-component-make| replace:: ``(seq, start_vid, end_vid)``
.. |result-contract| replace:: ``(type, id, contracted_vertices, source, target, cost)``
.. |result-contraction-hierarchies| replace:: ``(type, id, contracted_vertices, source, target, cost, metric, vertex_order)``
.. |result-idom| replace:: ``(seq, vertex_id, idom)``
-.. |result-dij-dd| replace:: ``(seq, [from_v,] node, edge, cost, agg_cost)``
-.. |result-dij-dd-m| replace:: ``(seq, from_v, node, edge, cost, agg_cost)``
.. |result-linegf| replace:: ``(seq, source, target, cost, edge)``
.. |result-lineg| replace:: ``(seq, source, target, cost, reverse_cost)``
.. |result-flow| replace:: ``(seq, edge, start_vid, end_vid, flow, residual_capacity)``
.. |result-flow-mincost| replace:: ``(seq, edge, source, target, flow, residual_capacity, cost, agg_cost)``
-.. |result-disjoint| replace:: ``(seq, path_id, path_seq, [start_vid,] [end_vid,] node, edge, cost, agg_cost)``
-.. |result-disjoint-1-1| replace:: ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``
-.. |result-disjoint-1-m| replace:: ``(seq, path_id, path_seq, end_vid, node, edge, cost, agg_cost)``
-.. |result-disjoint-m-1| replace:: ``(seq, path_id, path_seq, start_vid, node, edge, cost, agg_cost)``
-.. |result-disjoint-m-m| replace:: ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
.. |result-mincut| replace:: ``(seq, edge, cost, mincut)``
.. |result-pickdrop| replace:: ``(seq, vehicle_number, vehicle_id, stop, order_id, stop_type, cargo, travel_time, arrival_time, wait_time, service_time, departure_time)``
-.. |boost| image:: images/boost-inside.jpeg
+.. |Boost| image:: images/boost-inside.jpeg
:target: https://www.boost.org/libs/graph
:alt: Boost Graph inside
:height: 18
diff --git a/doc/contraction/CMakeLists.txt b/doc/contraction/CMakeLists.txt
index 1844f926ea6..84cc196c054 100644
--- a/doc/contraction/CMakeLists.txt
+++ b/doc/contraction/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
contraction-family.rst
pgr_contraction.rst
pgr_contractionDeadEnd.rst
diff --git a/doc/contraction/images/CMakeLists.txt b/doc/contraction/images/CMakeLists.txt
index 1750d2bea91..762cbc7fce5 100644
--- a/doc/contraction/images/CMakeLists.txt
+++ b/doc/contraction/images/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
undirected_sampledata_b.png
undirected_sampledata_c.png
newgraph.png
diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst
index 2f9dcdf430c..999a0122436 100644
--- a/doc/contraction/pgr_contraction.rst
+++ b/doc/contraction/pgr_contraction.rst
@@ -22,6 +22,14 @@ vertices and edges.
.. rubric:: Availability
+.. rubric:: Version 4.0.0
+
+.. Breaking change
+
+* Breaking change, signatures no longer available:
+
+ * pgr_contraction(text,bigint[],integer,bigint[],boolean)
+
.. rubric:: Version 3.8.0
* New signature:
diff --git a/doc/contraction/pgr_contractionHierarchies.rst b/doc/contraction/pgr_contractionHierarchies.rst
index d2e6a63d977..da443c3b7f3 100644
--- a/doc/contraction/pgr_contractionHierarchies.rst
+++ b/doc/contraction/pgr_contractionHierarchies.rst
@@ -23,9 +23,9 @@ shortcut edges created.
.. rubric:: Availability
-* Version 3.8.0
+.. rubric:: Version 3.8.0
- * New **experimental** function
+* New experimental function.
Description
diff --git a/doc/dagShortestPath/CMakeLists.txt b/doc/dagShortestPath/CMakeLists.txt
index a205f3ed92a..c6869bb9507 100644
--- a/doc/dagShortestPath/CMakeLists.txt
+++ b/doc/dagShortestPath/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_dagShortestPath.rst
)
diff --git a/doc/dagShortestPath/pgr_dagShortestPath.rst b/doc/dagShortestPath/pgr_dagShortestPath.rst
index 005799c942a..6f26501b8af 100644
--- a/doc/dagShortestPath/pgr_dagShortestPath.rst
+++ b/doc/dagShortestPath/pgr_dagShortestPath.rst
@@ -27,15 +27,19 @@ In particular, the DAG shortest paths algorithm implemented by Boost.Graph.
.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New experimental function.
+* Output columns standardized to |short-generic-result|
- * pgr_dagShortestPath(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New experimental function.
- * New experimental function.
+ * pgr_dagShortestPath(Combinations)
+
+.. rubric:: Version 3.0.0
+
+* New experimental function.
Description
@@ -93,7 +97,7 @@ Signatures
| pgr_dagShortestPath(`Edges SQL`_, **start vids**, **end vids**)
| pgr_dagShortestPath(`Edges SQL`_, `Combinations SQL`_)
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
@@ -108,7 +112,7 @@ One to One
| pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertex :math:`5` to vertex :math:`11` on a **directed** graph
@@ -128,7 +132,7 @@ One to Many
| pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertex :math:`5` to vertices :math:`\{7, 11\}`
@@ -148,7 +152,7 @@ Many to One
| pgr_dagShortestPath(`Edges SQL`_, **start vids**, **end vid**)
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertices :math:`\{5, 10\}` to vertex :math:`11`
@@ -168,7 +172,7 @@ Many to Many
| pgr_dagShortestPath(`Edges SQL`_, **start vids**, **end vids**)
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: From vertices :math:`\{5, 15\}` to vertices :math:`\{11, 17\}` on an
@@ -189,7 +193,7 @@ Combinations
| pgr_dagShortestPath(`Edges SQL`_, `Combinations SQL`_)
- | Returns set of |result-1-1|
+ | Returns set of |short-generic-result|
| OR EMPTY SET
:Example: Using a combinations table on an **undirected** graph
@@ -234,8 +238,8 @@ Return columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_short_start
- :end-before: return_path_short_end
+ :start-after: return_path_complete_start
+ :end-before: return_path_complete_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/dijkstra/CMakeLists.txt b/doc/dijkstra/CMakeLists.txt
index 6b303ad3a30..76d2ccd3911 100644
--- a/doc/dijkstra/CMakeLists.txt
+++ b/doc/dijkstra/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
dijkstra-family.rst
pgr_dijkstraCostMatrix.rst
pgr_dijkstraCost.rst
diff --git a/doc/dijkstra/pgr_dijkstra.rst b/doc/dijkstra/pgr_dijkstra.rst
index eb6ddaa8b03..1e001559235 100644
--- a/doc/dijkstra/pgr_dijkstra.rst
+++ b/doc/dijkstra/pgr_dijkstra.rst
@@ -21,39 +21,43 @@
.. rubric:: Availability
-* Version 3.5.0
+.. rubric:: Version 4.0.0
- * Standardizing output columns to |short-generic-result|
+* Combinations signature promoted to official.
- * pgr_dijkstra(One to One) added ``start_vid`` and ``end_vid`` columns.
- * pgr_dijkstra(One to Many) added ``end_vid`` column.
- * pgr_dijkstra(Many to One) added ``start_vid`` column.
+.. rubric:: Version 3.5.0
-* Version 3.1.0
+* Standardizing output columns to |short-generic-result|
- * New proposed signature:
+ * pgr_dijkstra(One to One) added ``start_vid`` and ``end_vid`` columns.
+ * pgr_dijkstra(One to Many) added ``end_vid`` column.
+ * pgr_dijkstra(Many to One) added ``start_vid`` column.
- * pgr_dijkstra(Combinations)
+.. rubric:: Version 3.1.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_dijkstra(Combinations)
-* Version 2.2.0
+.. rubric:: Version 3.0.0
- * New proposed signatures:
+* Function promoted to official.
- * pgr_dijkstra(One to Many)
- * pgr_dijkstra(Many to One)
- * pgr_dijkstra(Many to Many)
+.. rubric:: Version 2.2.0
-* Version 2.1.0
+* New proposed signatures:
- * Signature change on pgr_dijkstra(One to One)
+ * pgr_dijkstra(One to Many)
+ * pgr_dijkstra(Many to One)
+ * pgr_dijkstra(Many to Many)
-* Version 2.0.0
+.. rubric:: Version 2.1.0
- * Official function.
+* Signature change on pgr_dijkstra(One to One)
+
+.. rubric:: Version 2.0.0
+
+* Official function.
Description
@@ -86,12 +90,6 @@ Signatures
| Returns set of |short-generic-result|
| OR EMPTY SET
-
-.. Warning:: Breaking change on 3.5.0
-
- Read the :doc:`migration` about how to migrate from the old result columns to
- the new result columns.
-
.. index::
single: dijkstra ; One to One
@@ -175,7 +173,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: dijkstra ; Combinations - Proposed on v3.1
+ single: dijkstra ; Combinations
Combinations
...............................................................................
@@ -237,8 +235,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_short_start
- :end-before: return_path_short_end
+ :start-after: return_path_complete_start
+ :end-before: return_path_complete_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/dijkstra/pgr_dijkstraCost.rst b/doc/dijkstra/pgr_dijkstraCost.rst
index 8c864904558..3d86b3881eb 100644
--- a/doc/dijkstra/pgr_dijkstraCost.rst
+++ b/doc/dijkstra/pgr_dijkstraCost.rst
@@ -23,15 +23,19 @@ algorithm.
.. rubric:: Availability
-* Version 3.1.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_dijkstraCost(Combinations)
+.. rubric:: Version 3.1.0
-* Version 2.2.0
+* New proposed signature:
- * Official function.
+ * pgr_dijkstraCost(Combinations)
+
+.. rubric:: Version 2.2.0
+
+* Official function.
Description
@@ -155,7 +159,7 @@ Many to Many
:end-before: -- q51
.. index::
- single: dijkstraCost ; Combinations - Proposed on v3.1
+ single: dijkstraCost ; Combinations
Combinations
...............................................................................
diff --git a/doc/dijkstra/pgr_dijkstraVia.rst b/doc/dijkstra/pgr_dijkstraVia.rst
index c410b5938cd..6e9fbacccf3 100644
--- a/doc/dijkstra/pgr_dijkstraVia.rst
+++ b/doc/dijkstra/pgr_dijkstraVia.rst
@@ -8,13 +8,13 @@
****************************************************************************
.. index::
- single: Dijkstra Family ; pgr_dijkstraVia - Proposed
- single: Via Category ; pgr_dijkstraVia - Proposed
+ single: Dijkstra Family ; pgr_dijkstraVia
+ single: Via Category ; pgr_dijkstraVia
single: dijkstraVia - Proposed
|
-``pgr_dijkstraVia`` - Proposed
+``pgr_dijkstraVia``
===============================================================================
``pgr_dijkstraVia`` — Route that goes through a list of vertices.
@@ -45,7 +45,7 @@ Signatures
-------------------------------------------------------------------------------
.. index::
- single: dijkstraVia - Proposed ; One Via - Proposed on 2.2
+ single: dijkstraVia ; One Via
One Via
...............................................................................
@@ -69,9 +69,31 @@ One Via
Parameters
-------------------------------------------------------------------------------
-.. include:: via-category.rst
- :start-after: via_parameters_start
- :end-before: via_parameters_end
+.. via_parameters_start
+
+.. list-table::
+ :width: 81
+ :widths: 14 20 7 40
+ :header-rows: 1
+
+ * - Parameter
+ - Type
+ - Default
+ - Description
+ * - `Edges SQL`_
+ - ``TEXT``
+ -
+ - SQL query as described.
+ * - **via vertices**
+ - ``ARRAY`` [ **ANY-INTEGER** ]
+ -
+ - Array of ordered vertices identifiers that are going to be visited.
+
+Where:
+
+:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
+
+.. via_parameters_end
Optional parameters
...............................................................................
diff --git a/doc/dominator/CMakeLists.txt b/doc/dominator/CMakeLists.txt
index 5cdef962ecc..1b13935c865 100644
--- a/doc/dominator/CMakeLists.txt
+++ b/doc/dominator/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_lengauerTarjanDominatorTree.rst
)
diff --git a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst
index e493f336d4d..df27c5ac95f 100644
--- a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst
+++ b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
diff --git a/doc/driving_distance/CMakeLists.txt b/doc/driving_distance/CMakeLists.txt
index 26b87d77974..29d56560e47 100644
--- a/doc/driving_distance/CMakeLists.txt
+++ b/doc/driving_distance/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_drivingDistance.rst
)
diff --git a/doc/images/CMakeLists.txt b/doc/images/CMakeLists.txt
index f691c196b4f..9aa4347b438 100644
--- a/doc/images/CMakeLists.txt
+++ b/doc/images/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
boost-inside.jpeg
Fig1-originalData.png
Fig2-cost.png
diff --git a/doc/ksp/CMakeLists.txt b/doc/ksp/CMakeLists.txt
index 8e15236a2d1..ce8fea491de 100644
--- a/doc/ksp/CMakeLists.txt
+++ b/doc/ksp/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_KSP.rst
)
diff --git a/doc/ksp/pgr_KSP.rst b/doc/ksp/pgr_KSP.rst
index c006f0db08c..3a132f47f8e 100644
--- a/doc/ksp/pgr_KSP.rst
+++ b/doc/ksp/pgr_KSP.rst
@@ -20,6 +20,10 @@
.. rubric:: Availability
+.. rubric:: Version 4.0.0
+
+* All signatures promoted to official.
+
.. rubric:: Version 3.6.0
* Standardizing output columns to |nksp-result|
@@ -93,7 +97,7 @@ One to One
:end-before: --q2
.. index::
- single: KSP ; One to Many - Proposed on 3.6
+ single: KSP ; One to Many
One to Many
...............................................................................
@@ -114,7 +118,7 @@ One to Many
:end-before: --q3
.. index::
- single: KSP ; Many to One - Proposed in 3.6
+ single: KSP ; Many to One
Many to One
...............................................................................
@@ -135,7 +139,7 @@ Many to One
:end-before: --q4
.. index::
- single: KSP ; Many to Many - Proposed in 3.6
+ single: KSP ; Many to Many
Many to Many
...............................................................................
@@ -156,7 +160,7 @@ Many to Many
:end-before: --q5
.. index::
- single: KSP ; Combinations - Proposed in 3.6
+ single: KSP ; Combinations
Combinations
...............................................................................
@@ -269,50 +273,9 @@ Combinations SQL
Result columns
-------------------------------------------------------------------------------
-.. ksp_returns_start
-
-Returns set of |nksp-result|
-
-.. list-table::
- :width: 81
- :widths: auto
- :header-rows: 1
-
- * - Column
- - Type
- - Description
- * - ``seq``
- - ``INTEGER``
- - Sequential value starting from **1**.
- * - ``path_id``
- - ``INTEGER``
- - Path identifier.
-
- * Has value **1** for the first of a path from ``start_vid`` to
- ``end_vid``
- * - ``path_seq``
- - ``INTEGER``
- - Relative position in the path. Has value **1** for the beginning of a
- path.
- * - ``node``
- - ``BIGINT``
- - Identifier of the node in the path from ``start_vid`` to ``end_vid``
- * - ``edge``
- - ``BIGINT``
- - Identifier of the edge used to go from ``node`` to the next node in the
- path sequence. **-1** for the last node of the path.
- * - ``cost``
- - ``FLOAT``
- - Cost to traverse from ``node`` using ``edge`` to the next node in the
- path sequence.
-
- * :math:`0` for the last ``node`` of the path.
- * - ``agg_cost``
- - ``FLOAT``
- - Aggregate cost from **start vid** to ``node``.
-
-.. ksp_returns_end
-
+.. include:: pgRouting-concepts.rst
+ :start-after: return_path_all_columns_start
+ :end-before: return_path_all_columns_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/lineGraph/CMakeLists.txt b/doc/lineGraph/CMakeLists.txt
index 86aa84e5f2f..1c16277a518 100644
--- a/doc/lineGraph/CMakeLists.txt
+++ b/doc/lineGraph/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
transformation-family.rst
pgr_lineGraphFull.rst
pgr_lineGraph.rst
diff --git a/doc/lineGraph/images/CMakeLists.txt b/doc/lineGraph/images/CMakeLists.txt
index e04c520220c..acbf1820648 100644
--- a/doc/lineGraph/images/CMakeLists.txt
+++ b/doc/lineGraph/images/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
transformation.png
original.png
)
diff --git a/doc/max_flow/CMakeLists.txt b/doc/max_flow/CMakeLists.txt
index 56027f2bb1d..42da1fa739e 100644
--- a/doc/max_flow/CMakeLists.txt
+++ b/doc/max_flow/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
flow-family.rst
pgr_maxFlow.rst
pgr_boykovKolmogorov.rst
diff --git a/doc/max_flow/pgr_boykovKolmogorov.rst b/doc/max_flow/pgr_boykovKolmogorov.rst
index 0b82bbe8da0..2bab69ced70 100644
--- a/doc/max_flow/pgr_boykovKolmogorov.rst
+++ b/doc/max_flow/pgr_boykovKolmogorov.rst
@@ -19,26 +19,30 @@
``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that maximizes
the flow from the sources to the targets using Boykov Kolmogorov algorithm.
-.. Rubric:: Availability
+.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_boykovKolmogorov(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_boykovKolmogorov(Combinations)
-* Version 2.5.0
+.. rubric:: Version 3.0.0
- * Renamed from ``pgr_maxFlowBoykovKolmogorov``
- * Function promoted to proposed.
+* Function promoted to official.
-* Version 2.3.0
+.. rubric:: Version 2.5.0
- * New experimental function.
+* Renamed from ``pgr_maxFlowBoykovKolmogorov``
+* Function promoted to proposed.
+
+.. rubric:: Version 2.3.0
+
+* New experimental function.
Description
@@ -150,7 +154,7 @@ Many to Many
:end-before: -- q5
.. index::
- single: boykovKolmogorov ; Combinations - Proposed on v3.2
+ single: boykovKolmogorov ; Combinations
Combinations
...............................................................................
diff --git a/doc/max_flow/pgr_edgeDisjointPaths.rst b/doc/max_flow/pgr_edgeDisjointPaths.rst
index 893c63732f1..97d986cdf1f 100644
--- a/doc/max_flow/pgr_edgeDisjointPaths.rst
+++ b/doc/max_flow/pgr_edgeDisjointPaths.rst
@@ -20,25 +20,29 @@
vertices.
-.. Rubric:: Availability
+.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Output columns standardized to |generic-result|
- * pgr_edgeDisjointPaths(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_edgeDisjointPaths(Combinations)
-* Version 2.5.0
+.. rubric:: Version 3.0.0
- * Function promoted to proposed.
+* Function promoted to official.
-* Version 2.3.0
+.. rubric:: Version 2.5.0
- * New experimental function.
+* Function promoted to proposed.
+
+.. rubric:: Version 2.3.0
+
+* New experimental function.
Description
@@ -69,7 +73,7 @@ Signatures
| pgr_edgeDisjointPaths(`Edges SQL`_, **start vids**, **end vids**, [``directed``])
| pgr_edgeDisjointPaths(`Edges SQL`_, `Combinations SQL`_, [``directed``])
- | Returns set of |result-disjoint|
+ | Returns set of |generic-result|
| OR EMPTY SET
.. index::
@@ -83,7 +87,7 @@ One to One
| pgr_edgeDisjointPaths(`Edges SQL`_, **start vid**, **end vid**, [``directed``])
- | Returns set of |result-disjoint-1-1|
+ | Returns set of |generic-result|
| OR EMPTY SET
:Example: From vertex :math:`11` to vertex :math:`12`
@@ -103,7 +107,7 @@ One to Many
| pgr_edgeDisjointPaths(`Edges SQL`_, **start vid**, **end vids**, [``directed``])
- | Returns set of |result-disjoint-1-m|
+ | Returns set of |generic-result|
| OR EMPTY SET
:Example: From vertex :math:`11` to vertices :math:`\{5, 10, 12\}`
@@ -124,7 +128,7 @@ Many to One
| pgr_edgeDisjointPaths(`Edges SQL`_, **start vids**, **end vid**, [``directed``])
- | Returns set of |result-disjoint-m-1|
+ | Returns set of |generic-result|
| OR EMPTY SET
:Example: From vertices :math:`\{11, 3, 17\}` to vertex :math:`12`
@@ -144,7 +148,7 @@ Many to Many
| pgr_edgeDisjointPaths(`Edges SQL`_, **start vids**, **end vids**, [``directed``])
- | Returns set of |result-disjoint-m-m|
+ | Returns set of |generic-result|
| OR EMPTY SET
:Example: From vertices :math:`\{11, 3, 17\}` to vertices :math:`\{5, 10, 12\}`
@@ -164,7 +168,7 @@ Combinations
| pgr_edgeDisjointPaths(`Edges SQL`_, `Combinations SQL`_, [``directed``])
- | Returns set of |result-disjoint-m-m|
+ | Returns set of |generic-result|
| OR EMPTY SET
:Example: Using a combinations table, equivalent to calculating result from
@@ -218,8 +222,8 @@ Result columns
-------------------------------------------------------------------------------
.. include:: pgRouting-concepts.rst
- :start-after: return_path_start
- :end-before: return_path_end
+ :start-after: return_path_all_columns_start
+ :end-before: return_path_all_columns_end
Additional Examples
-------------------------------------------------------------------------------
diff --git a/doc/max_flow/pgr_edmondsKarp.rst b/doc/max_flow/pgr_edmondsKarp.rst
index 4240cbfe6f1..c1190130b4b 100644
--- a/doc/max_flow/pgr_edmondsKarp.rst
+++ b/doc/max_flow/pgr_edmondsKarp.rst
@@ -19,26 +19,30 @@
``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes the
flow from the sources to the targets using Edmonds Karp Algorithm.
-.. Rubric:: Availability
+.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_edmondsKarp(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_edmondsKarp(Combinations)
-* Version 2.5.0
+.. rubric:: Version 3.0.0
- * Renamed from ``pgr_maxFlowEdmondsKarp``
- * Function promoted to proposed.
+* Function promoted to official.
-* Version 2.3.0
+.. rubric:: Version 2.5.0
- * New experimental function.
+* Renamed from ``pgr_maxFlowEdmondsKarp``
+* Function promoted to proposed.
+
+.. rubric:: Version 2.3.0
+
+* New experimental function.
Description
@@ -150,7 +154,7 @@ Many to Many
:end-before: -- q5
.. index::
- single: edmondsKarp ; Combinations - Proposed on v3.2
+ single: edmondsKarp ; Combinations
Combinations
...............................................................................
diff --git a/doc/max_flow/pgr_maxCardinalityMatch.rst b/doc/max_flow/pgr_maxCardinalityMatch.rst
index 86aac8566ee..b84236964d0 100644
--- a/doc/max_flow/pgr_maxCardinalityMatch.rst
+++ b/doc/max_flow/pgr_maxCardinalityMatch.rst
@@ -19,35 +19,43 @@
``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a
graph.
-.. Rubric:: Availability
+.. rubric:: Availability
-* Version 3.4.0
+.. rubric:: Version 4.0.0
- * Use ``cost`` and ``reverse_cost`` on the inner query
- * Results are ordered
- * Works for undirected graphs.
- * New signature
+.. Breaking change
- * pgr_maxCardinalityMatch(text) returns only ``edge`` column.
+* Breaking change, signatures no longer available:
- * Deprecated signature
+ * pgr_maxCardinalityMatch(text,boolean)
- * pgr_maxCardinalityMatch(text,boolean)
+.. rubric:: Version 3.4.0
- * directed => ``false`` when used.
+* Use ``cost`` and ``reverse_cost`` on the inner query
+* Results are ordered
+* Works for undirected graphs.
+* New signature
-* Version 3.0.0
+ * pgr_maxCardinalityMatch(text) returns only ``edge`` column.
- * Function promoted to official.
+* Deprecated signature
-* Version 2.5.0
+ * pgr_maxCardinalityMatch(text,boolean)
- * Renamed from ``pgr_maximumCardinalityMatching``
- * Function promoted to proposed.
+ * directed => ``false`` when used.
-* Version 2.3.0
+.. rubric:: Version 3.0.0
- * New experimental function.
+* Function promoted to official.
+
+.. rubric:: Version 2.5.0
+
+* Renamed from ``pgr_maximumCardinalityMatching``
+* Function promoted to proposed.
+
+.. rubric:: Version 2.3.0
+
+* New experimental function.
Description
diff --git a/doc/max_flow/pgr_maxFlow.rst b/doc/max_flow/pgr_maxFlow.rst
index 0ecd4e1b2de..0589f176634 100644
--- a/doc/max_flow/pgr_maxFlow.rst
+++ b/doc/max_flow/pgr_maxFlow.rst
@@ -19,21 +19,25 @@
``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the
source(s) to the targets(s) using the Push Relabel algorithm.
-.. Rubric:: Availability
+.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_maxFlow(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_maxFlow(Combinations)
-* Version 2.4.0
+.. rubric:: Version 3.0.0
- * New proposed function.
+* Function promoted to official.
+
+.. rubric:: Version 2.4.0
+
+* New proposed function.
Description
@@ -147,7 +151,7 @@ Many to Many
:end-before: -- q5
.. index::
- single: maxFlow ; Combinations - Proposed on v3.2
+ single: maxFlow ; Combinations
Combinations
...............................................................................
diff --git a/doc/max_flow/pgr_maxFlowMinCost.rst b/doc/max_flow/pgr_maxFlowMinCost.rst
index 4c02e1871cf..95355c528bc 100644
--- a/doc/max_flow/pgr_maxFlowMinCost.rst
+++ b/doc/max_flow/pgr_maxFlowMinCost.rst
@@ -34,7 +34,7 @@ the maximum flow on a graph
Description
-------------------------------------------------------------------------------
-|boost| graph inside.
+|Boost| Boost Graph Inside.
.. include:: flow-family.rst
:start-after: characteristics_start
diff --git a/doc/max_flow/pgr_pushRelabel.rst b/doc/max_flow/pgr_pushRelabel.rst
index 8e9b7d0414a..5b929ed8ced 100644
--- a/doc/max_flow/pgr_pushRelabel.rst
+++ b/doc/max_flow/pgr_pushRelabel.rst
@@ -19,26 +19,30 @@
``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes the
flow from the sources to the targets using Push Relabel Algorithm.
-.. Rubric:: Availability
+.. rubric:: Availability
-* Version 3.2.0
+.. rubric:: Version 4.0.0
- * New proposed signature:
+* Combinations signature promoted to official.
- * pgr_pushRelabel(Combinations)
+.. rubric:: Version 3.2.0
-* Version 3.0.0
+* New proposed signature:
- * Function promoted to official.
+ * pgr_pushRelabel(Combinations)
-* Version 2.5.0
+.. rubric:: Version 3.0.0
- * Renamed from ``pgr_maxFlowPushRelabel``
- * Function promoted to proposed.
+* Function promoted to official.
-* Version 2.3.0
+.. rubric:: Version 2.5.0
- * New experimental function.
+* Renamed from ``pgr_maxFlowPushRelabel``
+* Function promoted to proposed.
+
+.. rubric:: Version 2.3.0
+
+* New experimental function.
Description
@@ -150,7 +154,7 @@ Many to Many
:end-before: -- q5
.. index::
- single: pushRelabel ; Combinations - Proposed on v3.2
+ single: pushRelabel ; Combinations
Combinations
...............................................................................
diff --git a/doc/metrics/CMakeLists.txt b/doc/metrics/CMakeLists.txt
index d668b5a950c..d316a09437a 100644
--- a/doc/metrics/CMakeLists.txt
+++ b/doc/metrics/CMakeLists.txt
@@ -1,8 +1,9 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
metrics-family.rst
pgr_betweennessCentrality.rst
pgr_degree.rst
+ pgr_bandwidth.rst
)
foreach (f ${LOCAL_FILES})
diff --git a/doc/metrics/metrics-family.rst b/doc/metrics/metrics-family.rst
index 5b5ec524d6b..2f8499bafb5 100644
--- a/doc/metrics/metrics-family.rst
+++ b/doc/metrics/metrics-family.rst
@@ -22,17 +22,17 @@ Metrics - Family of functions
.. official-end
-.. collapse:: Experimental
-
- .. include:: experimental.rst
- :start-after: warning-begin
- :end-before: end-warning
+.. include:: experimental.rst
+ :start-after: warning-begin
+ :end-before: end-warning
.. experimental-start
* :doc:`pgr_betweennessCentrality` - Calculates relative betweenness centrality
using Brandes Algorithm
+* :doc:`pgr_bandwidth` - Computes the bandwidth of a graph.
+
.. experimental-end
.. toctree::
@@ -40,6 +40,7 @@ Metrics - Family of functions
pgr_degree
pgr_betweennessCentrality
+ pgr_bandwidth
See Also
-------------------------------------------------------------------------------
diff --git a/doc/metrics/pgr_bandwidth.rst b/doc/metrics/pgr_bandwidth.rst
new file mode 100644
index 00000000000..3b9730c6329
--- /dev/null
+++ b/doc/metrics/pgr_bandwidth.rst
@@ -0,0 +1,165 @@
+..
+ ****************************************************************************
+ pgRouting Manual
+ Copyright(c) pgRouting Contributors
+
+ This documentation is licensed under a Creative Commons Attribution-Share
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
+ ****************************************************************************
+
+.. index::
+ single: Metrics Family ; pgr_bandwidth - Experimental
+ single: bandwidth - Experimental on v4.0
+
+|
+
+``pgr_bandwidth`` - Experimental
+===============================================================================
+
+``pgr_bandwidth`` - Calculates the bandwidth of the graph
+
+.. include:: experimental.rst
+ :start-after: warning-begin
+ :end-before: end-warning
+
+.. rubric:: Availability
+
+.. rubric:: Version 4.0.0
+
+* New experimental function.
+
+Description
+-------------------------------------------------------------------------------
+
+Bandwidth measures how "spread out" the connections are in a graph when vertices
+are arranged in a linear order (like numbering them 1, 2, 3, etc.).
+
+* For each edge in the graph, calculate the distance between the vertex numbers
+ it connects
+* The bandwidth is the maximum of all these distances
+* The implementation is for undirected graphs
+* Run time is 0.160789 seconds
+
+|Boost| Boost Graph Inside
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. rubric:: Summary
+
+.. admonition:: \ \
+ :class: signatures
+
+ pgr_bandwidth(`Edges SQL`_)
+
+ | Returns ``BIGINT``
+
+:Example: For an undirected graph with edges.
+
+.. literalinclude:: bandwidth.queries
+ :start-after: -- q1
+ :end-before: -- q2
+
+Parameters
+-------------------------------------------------------------------------------
+
+.. include:: allpairs-family.rst
+ :start-after: edges_start
+ :end-before: edges_end
+
+Inner Queries
+-------------------------------------------------------------------------------
+
+Edges SQL
+...............................................................................
+
+.. include:: pgRouting-concepts.rst
+ :start-after: basic_edges_sql_start
+ :end-before: basic_edges_sql_end
+
+Result columns
+-------------------------------------------------------------------------------
+
+Returns a bigint ``(pgr_bandwidth)``
+
+================= =========== ==========================================
+Column Type Description
+================= =========== ==========================================
+``pgr_bandwidth`` ``BIGINT`` gives the bandwidth of the graph.
+================= =========== ==========================================
+
+Additional Examples
+-------------------------------------------------------------------------------
+
+:Example: Undirected graph with edges before optimization.
+
+.. graphviz::
+
+ graph G {
+ node [shape=circle, style=filled, fillcolor=white, color=black, fontcolor=black, fontsize=10];
+ edge [color=black, penwidth=1];
+
+ 4 -- 7;
+ 7 -- 9;
+ 7 -- 0;
+ 0 -- 2;
+ 2 -- 5;
+ 5 -- 9;
+ 9 -- 8;
+ 9 -- 1;
+ 5 -- 1;
+ 9 -- 6;
+ 6 -- 3;
+ 1 -- 3;
+
+ {rank=same; 4; 8; 6;}
+ {rank=same; 7; 9; 3;}
+ {rank=same; 0; 2; 5; 1;}
+ }
+
+.. literalinclude:: bandwidth.queries
+ :start-after: -- q2
+ :end-before: -- q5
+
+:Example: Undirected graph with edges after optimization.
+
+.. graphviz::
+
+ graph G {
+ node [shape=circle, style=filled, fillcolor=white, color=black, fontcolor=black, fontsize=12];
+ edge [color=black, penwidth=1];
+
+ 0 -- 1;
+ 1 -- 3;
+ 1 -- 2;
+ 2 -- 4;
+ 4 -- 8;
+ 8 -- 3;
+ 3 -- 5;
+ 3 -- 6;
+ 3 -- 7;
+ 8 -- 7;
+ 6 -- 9;
+ 7 -- 9;
+
+ {rank=same; 0; 5; 6;}
+ {rank=same; 1; 3; 9;}
+ {rank=same; 2; 4; 8; 7;}
+
+ }
+
+.. literalinclude:: bandwidth.queries
+ :start-after: -- q5
+ :end-before: -- q8
+
+See Also
+-------------------------------------------------------------------------------
+
+* :doc:`sampledata`
+* `Boost: bandwidth
+ `_
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/metrics/pgr_degree.rst b/doc/metrics/pgr_degree.rst
index ace7b58820f..434d2933a39 100644
--- a/doc/metrics/pgr_degree.rst
+++ b/doc/metrics/pgr_degree.rst
@@ -73,7 +73,7 @@ Signatures
| OR EMPTY SET
.. index::
- single: degree ; Edges
+ single: degree ; Edges and Vertices
Edges
...............................................................................
@@ -92,9 +92,6 @@ Edges
:start-after: -- q1
:end-before: -- q2
-.. index::
- single: degree ; Edges and Vertices
-
Edges and Vertices
...............................................................................
@@ -119,6 +116,10 @@ Calculate the degree of the nodes:
:start-after: -- q2
:end-before: -- q3
+.. index::
+ single: degree ; Edges
+
+
Parameters
-------------------------------------------------------------------------------
@@ -377,7 +378,7 @@ If there is a vertices table already built using the ``pgr_extractVertices``
See Also
-------------------------------------------------------------------------------
-* :doc:`topology-functions`
+* :doc:`utilities-family`
* :doc:`pgr_extractVertices`
.. rubric:: Indices and tables
diff --git a/doc/mincut/CMakeLists.txt b/doc/mincut/CMakeLists.txt
index bae0edff943..8d5fb9515d1 100644
--- a/doc/mincut/CMakeLists.txt
+++ b/doc/mincut/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_stoerWagner.rst
)
diff --git a/doc/ordering/CMakeLists.txt b/doc/ordering/CMakeLists.txt
index be5034c16e1..776d7de9bba 100644
--- a/doc/ordering/CMakeLists.txt
+++ b/doc/ordering/CMakeLists.txt
@@ -1,7 +1,9 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
ordering-family.rst
pgr_cuthillMckeeOrdering.rst
pgr_topologicalSort.rst
+ pgr_sloanOrdering.rst
+ pgr_kingOrdering.rst
)
foreach (f ${LOCAL_FILES})
diff --git a/doc/ordering/ordering-family.rst b/doc/ordering/ordering-family.rst
index 04cd2677b07..1b97a2adbbe 100644
--- a/doc/ordering/ordering-family.rst
+++ b/doc/ordering/ordering-family.rst
@@ -24,6 +24,8 @@ Ordering - Family of functions
* :doc:`pgr_cuthillMckeeOrdering` - Return reverse Cuthill-McKee ordering of an undirected graph.
* :doc:`pgr_topologicalSort` - Linear ordering of the vertices for directed
acyclic graph.
+* :doc:`pgr_sloanOrdering` - Returns the sloan ordering of an undirected graph.
+* :doc:`pgr_kingOrdering` - Returns the King ordering of an undirected graph.
.. official-end
@@ -32,6 +34,8 @@ Ordering - Family of functions
pgr_cuthillMckeeOrdering
pgr_topologicalSort
+ pgr_sloanOrdering
+ pgr_kingOrdering
See Also
-------------------------------------------------------------------------------
diff --git a/doc/ordering/pgr_cuthillMckeeOrdering.rst b/doc/ordering/pgr_cuthillMckeeOrdering.rst
index a09ed6bbcfb..53e3155a674 100644
--- a/doc/ordering/pgr_cuthillMckeeOrdering.rst
+++ b/doc/ordering/pgr_cuthillMckeeOrdering.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
@@ -63,7 +63,7 @@ Signatures
| pgr_cuthillMckeeOrdering(`Edges SQL`_)
- | Returns set of |result-node-order|
+ | Returns set of |result_node_order|
| OR EMPTY SET
:Example: Graph ordering of pgRouting :doc:`sampledata`
@@ -94,6 +94,8 @@ Edges SQL
Result columns
-------------------------------------------------------------------------------
+.. node_ordering_start
+
Returns set of ``(seq, node)``
=============== =========== ======================================
@@ -103,6 +105,8 @@ Column Type Description
``node`` ``BIGINT`` New ordering in reverse order.
=============== =========== ======================================
+.. node_ordering_end
+
See Also
-------------------------------------------------------------------------------
diff --git a/doc/ordering/pgr_kingOrdering.rst b/doc/ordering/pgr_kingOrdering.rst
new file mode 100644
index 00000000000..16549cf7670
--- /dev/null
+++ b/doc/ordering/pgr_kingOrdering.rst
@@ -0,0 +1,139 @@
+..
+ ****************************************************************************
+ pgRouting Manual
+ Copyright(c) pgRouting Contributors
+
+ This documentation is licensed under a Creative Commons Attribution-Share
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
+ ****************************************************************************
+
+.. index::
+ single: Ordering Family ; pgr_kingOrdering
+ single: kingOrdering - Experimental on v4.0
+
+|
+
+``pgr_kingOrdering`` - Experimental
+===============================================================================
+
+``pgr_kingOrdering`` — Returns the King ordering of an undirected graph.
+
+.. include:: experimental.rst
+ :start-after: warning-begin
+ :end-before: end-warning
+
+.. rubric:: Version 4.0.0
+
+* New experimental function.
+
+Description
+-------------------------------------------------------------------------------
+
+In numerical linear algebra and graph theory, the King ordering algorithm
+is a heuristic designed to reorder the vertices of a graph so as to reduce
+its bandwidth.
+
+The method follows a breadth-first search (BFS) traversal, but with a refinement:
+at each step, the unvisited neighbors of the current vertex are inserted into
+the queue in ascending order of their pseudo-degree, where the pseudo-degree of
+a vertex is the number of edges connecting it to yet-unvisited vertices. This
+prioritization often yields a smaller bandwidth compared to simpler BFS orderings.
+
+**The main characteristics are:**
+
+- The implementation targets undirected graphs.
+- Bandwidth minimization is an NP-complete problem; King ordering provides a practical local minimization approach.
+- The time complexity is: :math:`O(m^2 \log(m)|E|)`
+
+ - where :math:`|E|` is the number of edges,
+ - :math:`m` is the maximum degree among all vertices.
+
+|Boost| Boost Graph Inside
+
+Signatures
+------------------------------------------------------------------------------
+
+.. index::
+ single: kingOrdering - Experimental on v4.0
+
+.. admonition:: \ \
+ :class: signatures
+
+ | pgr_kingOrdering(`Edges SQL`_)
+
+ | Returns set of |result_node_order|
+ | OR EMPTY SET
+
+:Example: Graph ordering of pgRouting :doc:`sampledata`
+
+.. literalinclude:: kingOrdering.queries
+ :start-after: -- q1
+ :end-before: -- q2
+
+Parameters
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+ :start-after: only_edge_param_start
+ :end-before: only_edge_param_end
+
+Inner Queries
+-------------------------------------------------------------------------------
+
+Edges SQL
+...............................................................................
+
+.. include:: pgRouting-concepts.rst
+ :start-after: basic_edges_sql_start
+ :end-before: basic_edges_sql_end
+
+Result columns
+-------------------------------------------------------------------------------
+
+.. include:: pgr_cuthillMckeeOrdering.rst
+ :start-after: node_ordering_start
+ :end-before: node_ordering_end
+
+Additional Examples
+-------------------------------------------------------------------------------
+
+.. graphviz::
+
+ graph G {
+ node [shape=circle, style=filled, fillcolor=white, color=black, fontcolor=black, fontsize=10];
+ edge [color=black, penwidth=1];
+
+ 4 -- 7;
+ 7 -- 9;
+ 7 -- 0;
+ 0 -- 2;
+ 2 -- 5;
+ 5 -- 9;
+ 9 -- 8;
+ 9 -- 1;
+ 5 -- 1;
+ 9 -- 6;
+ 6 -- 3;
+ 1 -- 3;
+
+ {rank=same; 4; 8; 6;}
+ {rank=same; 7; 9; 3;}
+ {rank=same; 0; 2; 5; 1;}
+ }
+
+.. literalinclude:: kingOrdering.queries
+ :start-after: -- q2
+ :end-before: -- q3
+
+See Also
+-------------------------------------------------------------------------------
+
+* :doc:`sampledata`
+* `Boost: King Ordering
+ `__
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/ordering/pgr_sloanOrdering.rst b/doc/ordering/pgr_sloanOrdering.rst
new file mode 100644
index 00000000000..204fd63d39e
--- /dev/null
+++ b/doc/ordering/pgr_sloanOrdering.rst
@@ -0,0 +1,152 @@
+..
+ ****************************************************************************
+ pgRouting Manual
+ Copyright(c) pgRouting Contributors
+
+ This documentation is licensed under a Creative Commons Attribution-Share
+
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
+ ****************************************************************************
+
+.. index::
+ single: Ordering Family ; pgr_sloanOrdering
+ single: pgr_sloanOrdering - Experimental on v4.0
+
+|
+
+``pgr_sloanOrdering`` - Experimental
+===============================================================================
+
+``pgr_sloanOrdering`` — Returns the Sloan ordering of an undirected graph
+
+.. include:: experimental.rst
+ :start-after: warning-begin
+ :end-before: end-warning
+
+.. rubric:: Availability
+
+.. rubric:: Version 4.0.0
+
+* New experimental function.
+
+
+Description
+-------------------------------------------------------------------------------
+
+The Sloan ordering algorithm reorders the vertices of a graph to reduce
+bandwidth, profile, and wavefront properties, which is particularly useful for
+sparse matrix computations and finite element analysis.
+
+* Finds a pseudoperipheral vertex pair to determine good starting points
+* Uses a priority-based algorithm that balances vertex degree and distance from the start vertex.
+* Aims to minimize bandwidth (maximum difference between connected vertex indices.
+* The implementation is for undirected graphs
+* Typically produces better orderings than simple breadth-first approaches.
+* Time complexity: :math:`O(V² + E)` where V is the number of vertices and E is
+ the number of edges.
+
+|Boost| Boost Graph Inside
+
+Signatures
+------------------------------------------------------------------------------
+
+.. index::
+ single: sloanOrdering - Experimental on v4.0
+
+.. admonition:: \ \
+ :class: signatures
+
+ | pgr_sloanOrdering(`Edges SQL`_)
+
+ | Returns set of |result_node_order|
+ | OR EMPTY SET
+
+:Example : Sloan ordering without specifying start vertex
+
+.. literalinclude:: sloanOrdering.queries
+ :start-after: -- q1
+ :end-before: -- q2
+
+.. Parameters, Inner Queries & result columns
+
+Parameters
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+ :start-after: only_edge_param_start
+ :end-before: only_edge_param_end
+
+Inner Queries
+-------------------------------------------------------------------------------
+
+Edges SQL
+...............................................................................
+
+.. include:: pgRouting-concepts.rst
+ :start-after: basic_edges_sql_start
+ :end-before: basic_edges_sql_end
+
+Result columns
+-------------------------------------------------------------------------------
+
+Returns set of ``(seq, node)``
+
+=============== =========== ======================================
+Column Type Description
+=============== =========== ======================================
+``seq`` ``BIGINT`` Sequence of the order starting from 1.
+``node`` ``BIGINT`` New sloan ordering order.
+=============== =========== ======================================
+
+Additional Examples
+
+:Example: Sloan ordering of Original graph from Boost example (vertices 0-9).
+
+.. graphviz::
+
+ graph G{
+ node[shape=circle, style=filled, fillcolor=lightblue, color=black, fontcolor=black, fontsize=12];
+ edge[color=black, penwidth=1.5];
+
+ 0 -- 3;
+ 0 -- 5;
+ 1 -- 2;
+ 1 -- 4;
+ 1 -- 6;
+ 1 -- 9;
+ 2 -- 3;
+ 2 -- 4;
+ 3 -- 5;
+ 3 -- 8;
+ 4 -- 6;
+ 5 -- 6;
+ 5 -- 7;
+ 6 -- 7;
+
+ {rank=same; 0; 8;}
+ {rank=same; 3; 5; 7;}
+ {rank=same; 2; 4; 6;}
+ {rank=same; 1; 9;}
+
+ }
+
+.. literalinclude:: sloanOrdering.queries
+ :start-after: -- q2
+ :end-before: --q3
+
+.. literalinclude:: sloanOrdering.queries
+ :start-after: --q3
+ :end-before: --q4
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :doc:`sampledata`
+* `Boost: Sloan Ordering
+ `__
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/ordering/pgr_topologicalSort.rst b/doc/ordering/pgr_topologicalSort.rst
index c65c30f5347..da5f098b4de 100644
--- a/doc/ordering/pgr_topologicalSort.rst
+++ b/doc/ordering/pgr_topologicalSort.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
@@ -25,9 +25,13 @@ graphs (DAG).
.. rubric:: Availability
-* Version 3.0.0
+.. rubric:: Version 4.0.0
- * New experimental function.
+* Standardize output to |result_node_order|
+
+.. rubric:: Version 3.0.0
+
+* New experimental function.
Description
-------------------------------------------------------------------------------
@@ -60,7 +64,7 @@ Signatures
| pgr_topologicalSort(`Edges SQL`_)
- | Returns set of |result-toposort|
+ | Returns set of |result_node_order|
| OR EMPTY SET
:Example: Topologically sorting the graph
@@ -89,7 +93,7 @@ Edges SQL
Result columns
-------------------------------------------------------------------------------
-Returns set of |result-toposort|
+Returns set of |result_node_order|
.. list-table::
:width: 81
@@ -102,7 +106,7 @@ Returns set of |result-toposort|
* - ``seq``
- ``INTEGER``
- Sequential value starting from :math:`1`
- * - ``sorted_v``
+ * - ``node``
- ``BIGINT``
- Linear topological ordering of the vertices
diff --git a/doc/pickDeliver/CMakeLists.txt b/doc/pickDeliver/CMakeLists.txt
index cfa9258a245..797182ad43c 100644
--- a/doc/pickDeliver/CMakeLists.txt
+++ b/doc/pickDeliver/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_pickDeliverEuclidean.rst
pgr_pickDeliver.rst
pgr_vrpOneDepot.rst
diff --git a/doc/planar/CMakeLists.txt b/doc/planar/CMakeLists.txt
index ad918eb5854..ff24f8e4f4d 100644
--- a/doc/planar/CMakeLists.txt
+++ b/doc/planar/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
pgr_isPlanar.rst
)
diff --git a/doc/planar/images/CMakeLists.txt b/doc/planar/images/CMakeLists.txt
index 330d496d346..9b7491e0fc3 100644
--- a/doc/planar/images/CMakeLists.txt
+++ b/doc/planar/images/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
nonPlanar.png
)
diff --git a/doc/planar/pgr_isPlanar.rst b/doc/planar/pgr_isPlanar.rst
index 8e1654a6bf7..07221afa0a4 100644
--- a/doc/planar/pgr_isPlanar.rst
+++ b/doc/planar/pgr_isPlanar.rst
@@ -4,7 +4,7 @@
Copyright(c) pgRouting Contributors
This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/
****************************************************************************
.. index::
diff --git a/doc/spanningTree/CMakeLists.txt b/doc/spanningTree/CMakeLists.txt
index b209adcc449..57fb9e2c252 100644
--- a/doc/spanningTree/CMakeLists.txt
+++ b/doc/spanningTree/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
#pgr_randomSpanTree.rst
kruskal-family.rst
prim-family.rst
diff --git a/doc/spanningTree/pgr_primDD.rst b/doc/spanningTree/pgr_primDD.rst
index 1cc8866fb7c..827a08d9552 100644
--- a/doc/spanningTree/pgr_primDD.rst
+++ b/doc/spanningTree/pgr_primDD.rst
@@ -125,7 +125,7 @@ Edges SQL
Result columns
-------------------------------------------------------------------------------
-.. include:: drivingDistance-category.rst
+.. include:: pgRouting-concepts.rst
:start-after: spantree-result-columns-start
:end-before: spantree-result-columns-end
diff --git a/doc/spanningTree/pgr_primDFS.rst b/doc/spanningTree/pgr_primDFS.rst
index a0399ef858e..1263359cfc8 100644
--- a/doc/spanningTree/pgr_primDFS.rst
+++ b/doc/spanningTree/pgr_primDFS.rst
@@ -127,7 +127,7 @@ Edges SQL
Result columns
-------------------------------------------------------------------------------
-.. include:: drivingDistance-category.rst
+.. include:: pgRouting-concepts.rst
:start-after: spantree-result-columns-start
:end-before: spantree-result-columns-end
diff --git a/doc/src/CMakeLists.txt b/doc/src/CMakeLists.txt
index 73890a5f0c2..931af5bdafd 100644
--- a/doc/src/CMakeLists.txt
+++ b/doc/src/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
index.rst
pgRouting-concepts.rst
pgRouting-installation.rst
@@ -18,6 +18,19 @@ foreach (f ${LOCAL_FILES})
list(APPEND LOCAL_DOC_FILES ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
endforeach()
+# For the release notes substitution of the links for issues and milestones
+file(READ ${PGR_DOCUMENTATION_SOURCE_DIR}/release_notes.rst FILE_CONTENTS)
+string(REGEX REPLACE
+ ":issue:`([0-9]*)`"
+ "`#\\1 `__"
+ FILE_CONTENTS "${FILE_CONTENTS}")
+string(REGEX REPLACE
+ ":milestone:`([0-9]*\.[0-9]*\.[0-9]*)`"
+ "`Github milestone for \\1 `__"
+ FILE_CONTENTS "${FILE_CONTENTS}")
+file(WRITE ${PGR_DOCUMENTATION_SOURCE_DIR}/release_notes.rst "${FILE_CONTENTS}")
+
+
add_subdirectory(images)
set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
set(PROJECT_IMG_FILES ${PROJECT_IMG_FILES} PARENT_SCOPE)
diff --git a/doc/src/experimental.rst b/doc/src/experimental.rst
index 55493cef255..775f88bde61 100644
--- a/doc/src/experimental.rst
+++ b/doc/src/experimental.rst
@@ -14,11 +14,7 @@ Experimental Functions
.. warning-begin
-.. collapse:: Experimental
-
- .. warning:: Possible server crash
-
- - These functions might create a server crash
+.. admonition:: Experimental
.. warning:: Experimental functions
@@ -30,13 +26,9 @@ Experimental Functions
- Signature might change.
- Functionality might change.
- pgTap tests might be missing.
- - Might need c/c++ coding.
- - May lack documentation.
+ - Might need c/c++ review.
- Documentation if any might need to be rewritten.
- - Documentation examples might need to be automatically generated.
- Might need a lot of feedback from the community.
- - Might depend on a proposed function of pgRouting
- - Might depend on a deprecated function of pgRouting
.. end-warning
diff --git a/doc/src/images/CMakeLists.txt b/doc/src/images/CMakeLists.txt
index 5583fe78984..2803478f259 100644
--- a/doc/src/images/CMakeLists.txt
+++ b/doc/src/images/CMakeLists.txt
@@ -1,5 +1,5 @@
-SET(LOCAL_FILES
+set(LOCAL_FILES
crossing_edges.png
touching_edges.png
Dijkstra_Animation.gif
diff --git a/doc/src/index.rst b/doc/src/index.rst
index 34aa2eb40a4..f240d486cac 100644
--- a/doc/src/index.rst
+++ b/doc/src/index.rst
@@ -91,7 +91,7 @@ Available Functions but not official pgRouting functions
.. include:: release_notes.rst
:start-after: current
- :end-before: pgRouting 3.7
+ :end-before: pgRouting 3
All releases
-------------------------------------------------------------------------------
diff --git a/doc/src/migration.rst b/doc/src/migration.rst
index ec8565a7644..390868664c7 100644
--- a/doc/src/migration.rst
+++ b/doc/src/migration.rst
@@ -10,6 +10,8 @@
|
+.. titles: ==, ++, --, .., ^^
+
Migration guide
===============================================================================
@@ -22,958 +24,1205 @@ Results can be different because of the changes.
All deprecated functions will be removed on next major version 4.0.0
.. contents:: Contents
- :depth: 2
+ :depth: 3
-.. migrate_pgr_alphaShape_start
-Migration of ``pgr_alphaShape``
--------------------------------------------------------------------------------
+Migration to standardized columns
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-Starting from `v3.8.0 `__
+.. |old-pid-result| replace:: ``(seq, path_seq, [start_pid], [end_pid], node, edge, cost, agg_cost)``
+.. |pid-1-m| replace:: ``(seq, path_seq, end_pid, node, edge, cost, agg_cost)``
+.. |pid-m-1| replace:: ``(seq, path_seq, start_pid, node, edge, cost, agg_cost)``
+.. |pid-m-m| replace:: ``(seq, path_seq, start_pid, end_pid, node, edge, cost, agg_cost)``
+
+.. |old-generic-result| replace:: ``(seq, path_seq, [start_vid], [end_vid], node, edge, cost, agg_cost)``
+.. |result-1-1| replace:: ``(seq, path_seq, node, edge, cost, agg_cost)``
+.. |result-1-m| replace:: ``(seq, path_seq, end_vid, node, edge, cost, agg_cost)``
+.. |result-m-1| replace:: ``(seq, path_seq, start_vid, node, edge, cost, agg_cost)``
+
+.. |matrix-pid| replace:: ``(start_pid, end_pid, agg_cost)``
+.. |old-edge-color| replace:: ``(edge_id, color_id)``
+.. |old-node-color| replace:: ``(vertex_id, color_id)``
+
+.. |result-bfs| replace:: ``(seq, depth, start_vid, node, edge, cost, agg_cost)``
+
+.. |result-dij-dd| replace:: ``(seq, [from_v,] node, edge, cost, agg_cost)``
+.. |result-dij-dd-m| replace:: ``(seq, from_v, node, edge, cost, agg_cost)``
+
+.. |result-disjoint| replace:: ``(seq, path_id, path_seq, [start_vid,] [end_vid,] node, edge, cost, agg_cost)``
+.. |result-disjoint-1-m| replace:: ``(seq, path_id, path_seq, end_vid, node, edge, cost, agg_cost)``
+.. |result-disjoint-m-1| replace:: ``(seq, path_id, path_seq, start_vid, node, edge, cost, agg_cost)``
+
+.. |result-toposort| replace:: ``(seq, sorted_v)``
+.. |result-old-closure| replace:: ``(seq, vid, target_array)``
+
+There has been an effort to standardize function output columns names and
+types.
+
+* :ref:`pgRouting-concepts:Result columns for cost functions`
+
+ * |matrix-result|
+
+* :ref:`pgRouting-concepts:Result columns for single path functions`
+
+ * |short-generic-result|
+
+* :ref:`pgRouting-concepts:Result columns for spanning tree functions`
+
+ * |result-spantree|
+
+
+.. list-table::
+ :header-rows: 1
+
+ * - Function
+ - Migration guide
+ * - .. versionchanged:: 3.5.0 :doc:`pgr_dijkstra`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 3.6.0 :doc:`pgr_aStar`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 3.6.0 :doc:`pgr_bdAstar`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 3.6.0 :doc:`pgr_drivingDistance`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 3.6.0 :doc:`pgr_withPointsDD`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 3.7.0 :doc:`pgr_kruskalBFS`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 3.7.0 :doc:`pgr_kruskalDD`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 3.7.0 :doc:`pgr_kruskalDFS`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 3.7.0 :doc:`pgr_primBFS`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 3.7.0 :doc:`pgr_primDD`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 3.7.0 :doc:`pgr_primDFS`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_bdDijkstra`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_bellmanFord`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_binaryBreadthFirstSearch`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_bipartite`
+ - `Migration of output column name change`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_breadthFirstSearch`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_dagShortestPath`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_depthFirstSearch`
+ - `Migration of spanning tree functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_edgeColoring`
+ - `Migration of output column name change`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_edwardMoore`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_edgeDisjointPaths`
+ - `Migration of multiple paths functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_sequentialVertexColoring`
+ - `Migration of output column name change`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_topologicalSort`
+ - `Migration of output column name change`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_withPoints`
+ - `Migration of single path functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_withPointsCost`
+ - `Migration of cost functions`_
+ * - .. versionchanged:: 4.0.0 :doc:`pgr_withPointsCostMatrix`
+ - `Migration of cost functions`_
-**Before Deprecation:** The following was calculated:
+.. contents:: Contents
+ :local:
-* An alphaShape was calculated
+Migration of cost functions
+-------------------------------------------------------------------------------
-**After Deprecation:**
+The standardized :ref:`pgRouting-concepts:Result columns for cost functions` are
+|matrix-result|
-PostGIS has two ways of generating alphaShape.
+The following functions need to be migrated when they are being used in an
+application.
-If you have SFCGAL, which you can install using
+.. list-table::
+ :header-rows: 1
-::
+ * - Function
+ - Version
+ - From
+ * - ``pgr_withPointsCost``
+ - v < 4.0
+ - |matrix-pid|
+ * - ``pgr_withPointsCostMatrix``
+ - v < 4.0
+ - |matrix-pid|
- CREATE EXTENSION postgis_sfcgal
+**to** |matrix-result|
-* Since PostGIS 3.5+ use `CG_AlphaShape `__
-* For PostGIS 3.5+ use the old name ``ST_AlphaShape``
+.. rubric:: Migration of |matrix-pid|
-Other PostGIS options are
-* `ST_ConvexHull `__
-* `ST_ConcaveHull `__
+Signatures to be migrated:
-.. migrate_pgr_alphaShape_end
+* One to One
+* One to Many
+* Many to One
+* Many to Many
+* Combinations
-.. migrate_pgr_nodeNetwork_start
+.. warning:: Breaking change
-Migration of ``pgr_nodeNetwork``
--------------------------------------------------------------------------------
+ If using ``pgr_withPointsCost``: column names must be changed after updating
+ pgRouting
-Starting from `v3.8.0 `__
+New output columns are |matrix-result|
-**Before Deprecation:** A table with `_nodded` was created. with split
-edges.
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
-**Migration**
+.. contents:: Examples
+ :local:
-Use :doc:`pgr_separateTouching` and/or use :doc:`pgr_separateCrossing`
+Examples for One to One for cost functions
+...............................................................................
-.. migrate_pgr_nodeNetwork_end
+.. rubric:: Using ``pgr_withPointsCost``
-.. migrate_pgr_createTopology_start
+Migrating `this v3.8
+`__
+example.
-Migration of ``pgr_createTopology``
--------------------------------------------------------------------------------
+:from: |matrix-pid|
+:to: |matrix-result|
-Starting from `v3.8.0 `__
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-1-to-1
+ :end-before: --withPointsCost-1-to-1-filter
-**Before Deprecation:** The following was calculated:
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
-* A table with `_vertices_pgr` was created.
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-1-to-1-filter
+ :end-before: --withPointsCost-1-to-m
-**After Deprecation:** The user is responsible to create the complete topology.
+.. warning:: Breaking change
-.. include:: pgRouting-concepts.rst
- :start-after: createTopology_start
- :end-before: createTopology_end
+ If using ``pgr_withPointsCost``: column names must be changed after updating
+ pgRouting
-.. migrate_pgr_createTopology_end
+Examples for One to Many for cost functions
+...............................................................................
-.. migrate_pgr_createVerticesTable_start
+.. rubric:: Using ``pgr_withPointsCost``
-Migration of ``pgr_createVerticesTable``
--------------------------------------------------------------------------------
+Migrating `this v3.8
+`__
+example.
-Starting from `v3.8.0 `__
+:from: |matrix-pid|
+:to: |matrix-result|
-**Before Deprecation:** The following was calculated:
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-1-to-m
+ :end-before: --withPointsCost-1-to-m-filter
-* A table with `_vertices_pgr` was created.
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
-**After Deprecation:** The user is responsible to create the vertices table,
-indexes, etc. They may use :doc:`pgr_extractVertices` for that purpose.
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-1-to-m-filter
+ :end-before: --withPointsCost-m-to-1
-.. literalinclude:: sampledata.queries
- :start-after: -- q1
- :end-before: -- q1-1
+.. warning:: Breaking change
-.. migrate_pgr_createVerticesTable_end
+ If using ``pgr_withPointsCost``: column names must be changed after updating
+ pgRouting
-.. migrate_pgr_analyzeOneWay_start
+Examples for Many to One for cost functions
+...............................................................................
-Migration of ``pgr_analyzeOneWay``
--------------------------------------------------------------------------------
+.. rubric:: Using ``pgr_withPointsCost``
-Starting from `v3.8.0 `__
+Migrating `this v3.8
+`__
+example.
-**Before Deprecation:** The following was calculated:
+:from: |matrix-pid|
+:to: |matrix-result|
-* Number of potential problems in directionality
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-m-to-1
+ :end-before: --withPointsCost-m-to-1-filter
-WHERE
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
-Directionality problems were calculated based on codes.
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-m-to-1-filter
+ :end-before: --withPointsCost-m-to-m
-.. rubric:: Dead ends.
+.. warning:: Breaking change
-A routing problem can arise when from a vertex there is only a way on or a way
-out but not both:
+ If using ``pgr_withPointsCost``: column names must be changed after updating
+ pgRouting
-Either saving or using directly :doc:`pgr_extractVertices` get the dead ends
-information and determine if the adjacent edge is one way or not.
+Examples for Many to Many for cost functions
+...............................................................................
-In this example :doc:`pgr_extractVertices` has already been applied.
+.. rubric:: Using ``pgr_withPointsCost``
-.. literalinclude:: migration.queries
- :start-after: --OneWay1
- :end-before: --OneWay2
+Migrating `this v3.8
+`__
+example.
-.. rubric:: Bridges.
+:from: |matrix-pid|
+:to: |matrix-result|
-Another routing problem can arise when there is an edge of an undirected graph
-whose deletion increases its number of connected components, and the bridge is
-only one way.
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-m-to-m
+ :end-before: --withPointsCost-m-to-m-filter
-To determine if the bridges are or not one way.
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
.. literalinclude:: migration.queries
- :start-after: --OneWay2
- :end-before: --OneWay3
+ :start-after: --withPointsCost-m-to-m-filter
+ :end-before: --withPointsCost-c
-.. migrate_pgr_analyzeOneWay_end
+.. rubric:: Using ``pgr_withPointsCost``
-.. migrate_pgr_analyzeGraph_start
+.. warning:: Breaking change
-Migration of ``pgr_analyzeGraph``
--------------------------------------------------------------------------------
+ If using ``pgr_withPointsCost``: column names must be changed after updating
+ pgRouting
-Starting from `v3.8.0 `__
+Examples for Combinations for cost functions
+...............................................................................
-**Before Deprecation:** The following was calculated:
+.. rubric:: Using ``pgr_withPointsCost``
-* Number of isolated segments.
-* Number of dead ends.
-* Number of potential gaps found near dead ends.
-* Number of intersections. (between 2 edges)
+Migrating `this v3.8
+`__
+example.
-WHERE
+:from: |matrix-pid|
+:to: |matrix-result|
-:Graph component: A connected subgraph that is not part of any larger connected
- subgraph.
-:Isolated segment: A graph component with only one segment.
-:Dead ends: A vertex that participates in only one edge.
-:gaps: Space between two geometries.
-:Intersection: Is a topological relationship between two geometries.
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-c
+ :end-before: --withPointsCost-c-filter
-.. rubric:: Migration.
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
-.. rubric:: Components.
+.. literalinclude:: migration.queries
+ :start-after: --withPointsCost-c-filter
+ :end-before: --withPointsCost-END
-Instead of counting only isolated segments, determine all the components of the
-graph.
+.. warning:: Breaking change
-Depending of the final application requirements use:
+ If using ``pgr_withPointsCost``: column names must be changed after updating
+ pgRouting
-* :doc:`pgr_connectedComponents`
-* :doc:`pgr_strongComponents`
-* :doc:`pgr_biconnectedComponents`
+Migration of multiple paths functions
+-------------------------------------------------------------------------------
-For example:
+The standardized :ref:`pgRouting-concepts:Result columns for single path
+functions` are |nksp-result|
-.. literalinclude:: migration.queries
- :start-after: --analysis1
- :end-before: --analysis2
+The following functions need to be migrated when they are being used in an
+application.
-.. rubric:: Dead ends.
+.. list-table::
+ :header-rows: 1
-Instead of counting the dead ends, determine all the dead ends of the graph
-using :doc:`pgr_degree`.
+ * - Function
+ - Version
+ - From
+ * - ``pgr_KSP``
+ - v < 3.6
+ - :ref:`from_ksp_result`
+ * - ``pgr_edgeDisjointPaths``
+ - v < 4.0
+ - :ref:`from_result_disjoint`
-For example:
+.. _from_ksp_result:
-.. literalinclude:: migration.queries
- :start-after: --analysis2
- :end-before: --analysis3
+Migration of |ksp-result|
+...............................................................................
-.. rubric:: Potential gaps near dead ends.
+:to: |nksp-result|
-Instead of counting potential gaps between geometries, determine the geometric
-gaps in the graph using :doc:`pgr_findCloseEdges`.
+Signatures to be migrated:
-For example:
+* One to One
-.. literalinclude:: migration.queries
- :start-after: --analysis3
- :end-before: --analysis4
+Before updating pgRouting, enumerate the |ksp-result|
-.. rubric:: Topological relationships.
+One to One example using ``pgr_KSP``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Instead of counting intersections, determine topological relationships between
-geometries.
+Using
+`this `__
+example.
-Several PostGIS functions can be used:
-`ST_Intersects `__,
-`ST_Crosses `__,
-`ST_Overlaps `__, etc.
+.. literalinclude:: migration.queries
+ :start-after: --ksp1
+ :end-before: --ksp2
-For example:
+Before updating pgRouting, enumerate the |ksp-result|
.. literalinclude:: migration.queries
- :start-after: --analysis4
- :end-before: --analysis5
-
-.. migrate_pgr_analyzeGraph_end
+ :start-after: --ksp2
+ :end-before: --ksp3
-Migration of ``pgr_aStar``
--------------------------------------------------------------------------------
+.. _from_result_disjoint:
-Starting from `v3.6.0 `__
+Migration of |result-disjoint|
+...............................................................................
Signatures to be migrated:
-* ``pgr_aStar`` (`One to One`)
-* ``pgr_aStar`` (`One to Many`)
-* ``pgr_aStar`` (`Many to One`)
+* One to One
+* One to Many
+* Many to One
-.. rubric:: Before Migration
+Before updating pgRouting, enumerate the |result-disjoint|
-* Output columns were |old-generic-result|
+* Skip when applicable, ``start_vid``
+* Skip when applicable, ``end_vid``
- * Depending on the overload used, the columns ``start_vid`` and ``end_vid``
- might be missing:
+One to One example using ``pgr_edgeDisjointPaths``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- * ``pgr_aStar`` (`One to One`) does not have ``start_vid`` and ``end_vid``.
- * ``pgr_aStar`` (`One to Many`) does not have ``start_vid``.
- * ``pgr_aStar`` (`Many to One`) does not have ``end_vid``.
+Migrating `this v3.8
+`__ example.
-:Migration:
+.. literalinclude:: migration.queries
+ :start-after: --EdgeDisjoint1
+ :end-before: --EdgeDisjoint2
-* Be aware of the existence of the additional columns.
+Before updating pgRouting enumerate the columns: |ksp-result|
-* In ``pgr_aStar`` (`One to One`)
+.. literalinclude:: migration.queries
+ :start-after: --EdgeDisjoint2
+ :end-before: --EdgeDisjoint3
- * ``start_vid`` contains the **start vid** parameter value.
- * ``end_vid`` contains the **end vid** parameter value.
+Migration of single path functions
+-------------------------------------------------------------------------------
-.. literalinclude:: migration.queries
- :start-after: --astar1
- :end-before: --astar2
+The standardized :ref:`pgRouting-concepts:Result columns for single path
+functions` are |short-generic-result|
+
+The following functions need to be migrated when they are being used in an
+application.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Function
+ - Version
+ - From
+ * - ``pgr_dijkstra``
+ - v < 3.5
+ - |old-generic-result|
+ * - ``pgr_aStar``
+ - v < 3.6
+ - |old-generic-result|
+ * - ``pgr_bdDijkstra``
+ - v < 4.0
+ - |old-generic-result|
+ * - ``pgr_bellmanFord``
+ - v < 4.0
+ - |old-generic-result|
+ * - ``pgr_dagShortestPath``
+ - v < 4.0
+ - |result-1-1|
+ * - ``pgr_edwardMoore``
+ - v < 4.0
+ - |old-generic-result|
+ * - ``pgr_withPoints``
+ - v < 4.0
+ - |old-pid-result|
+
+:to: |short-generic-result|
+
+.. rubric:: Migration of |old-generic-result|
-* In ``pgr_aStar`` (`One to Many`)
+Signatures to be migrated:
- * ``start_vid`` contains the **start vid** parameter value.
+* One to One
+* One to Many
+* Many to One
-.. literalinclude:: migration.queries
- :start-after: --astar2
- :end-before: --astar3
+Before updating pgRouting, enumerate the corresponding columns of the signature
-* In ``pgr_aStar`` (`Many to One`)
+* Skip when applicable, ``start_vid``
+* Skip when applicable, ``end_vid``
- * ``end_vid`` contains the **end vid** parameter value.
+.. rubric:: Migration of |old-pid-result|
-.. literalinclude:: migration.queries
- :start-after: --astar3
- :end-before: --astar4
+Signatures to be migrated:
-* If needed filter out the added columns, for example:
+* One to One
+* One to Many
+* Many to One
+* Many to Many
+* Combinations
-.. literalinclude:: migration.queries
- :start-after: --astar4
- :end-before: --astar5
+To get the old version column names, depending on the signature:
-* If needed add the new columns, similar to the following example where
- ``pgr_dijkstra`` is used, and the function had to be modified to be able to
- return the new columns:
+* Filter out the columns: ``start_vid`` and/or ``end_vid``
+* Rename the columns:
- * In `v3.0
- `__
- the function ``my_dijkstra`` uses ``pgr_dijkstra``.
- * Starting from `v3.5
- `__
- the function ``my_dijkstra`` returns the new additional columns of
- ``pgr_dijkstra``.
+ * ``start_vid`` to ``start_pid``
+ * ``end_vid`` to ``end_pid``
-Migration of ``pgr_bdAstar``
--------------------------------------------------------------------------------
+.. warning:: Breaking change
-Starting from `v3.6.0 `__
+ If using ``pgr_withPoints``: column names must be changed after updating
+ pgRouting
+
+.. rubric:: Migration of |result-1-1|
Signatures to be migrated:
-* ``pgr_bdAstar`` (`One to One`)
-* ``pgr_bdAstar`` (`One to Many`)
-* ``pgr_bdAstar`` (`Many to One`)
+* One to One
+* One to Many
+* Many to One
+* Many to Many
+* Combinations
-:Before Migration:
+To get the old version column names:
-* Output columns were |old-generic-result|
+* Filter out the columns: ``start_vid`` and ``end_vid``
- * Depending on the overload used, the columns ``start_vid`` and ``end_vid``
- might be missing:
+.. contents:: Examples
+ :local:
- * ``pgr_bdAstar`` (`One to One`) does not have ``start_vid`` and ``end_vid``.
- * ``pgr_bdAstar`` (`One to Many`) does not have ``start_vid``.
- * ``pgr_bdAstar`` (`Many to One`) does not have ``end_vid``.
+Examples with One to One with one route result
+...............................................................................
-:Migration:
+.. rubric:: Using ``pgr_aStar``
-* Be aware of the existence of the additional columns.
+Migrating `this v3.5
+`__
+example.
-* In ``pgr_bdAstar`` (`One to One`)
+.. literalinclude:: migration.queries
+ :start-after: --astar1
+ :end-before: --astar2
- * ``start_vid`` contains the **start vid** parameter value.
- * ``end_vid`` contains the **end vid** parameter value.
+Before updating pgRouting enumerate the columns: |result-1-1|
.. literalinclude:: migration.queries
- :start-after: --bdastar1
- :end-before: --bdastar2
+ :start-after: --astar4
+ :end-before: --astar5
-* In ``pgr_bdAstar`` (`One to Many`)
+.. rubric:: Using ``pgr_bdDijkstra``
- * ``start_vid`` contains the **start vid** parameter value.
+Migrating `this v3.8
+`__
+example.
.. literalinclude:: migration.queries
- :start-after: --bdastar2
- :end-before: --bdastar3
-
-* In ``pgr_bdAstar`` (`Many to One`)
+ :start-after: --bdDijkstra-1-to-1
+ :end-before: --bdDijkstra-1-to-1-filter
- * ``end_vid`` contains the **end vid** parameter value.
+Before updating pgRouting enumerate the columns: |result-1-1|
.. literalinclude:: migration.queries
- :start-after: --bdastar3
- :end-before: --bdastar4
+ :start-after: --bdDijkstra-1-to-1-filter
+ :end-before: --bdDijkstra-1-to-m
-* If needed filter out the added columns, for example:
+.. rubric:: Using ``pgr_DAGshortestPath``
+
+Migrating `this v3.8
+`__
+example.
.. literalinclude:: migration.queries
- :start-after: --bdastar4
- :end-before: --bdastar5
+ :start-after: --DAGshortestPath-1-to-1
+ :end-before: --DAGshortestPath-1-to-1-filter
-* If needed add the new columns, similar to the following example where
- ``pgr_dijkstra`` is used, and the function had to be modified to be able to
- return the new columns:
+Before updating pgRouting enumerate the columns: |result-1-1|
- * In `v3.0 `__
- the function ``my_dijkstra`` uses ``pgr_dijkstra``.
- * Starting from `v3.5 `__
- the function ``my_dijkstra`` returns the new additional columns of
- ``pgr_dijkstra``.
+.. literalinclude:: migration.queries
+ :start-after: --DAGshortestPath-1-to-1-filter
+ :end-before: --DAGshortestPath-END
+.. note:: This applies to all signatures of ``pgr_DAGshortestPath``
-Migration of ``pgr_dijkstra``
--------------------------------------------------------------------------------
+Examples for One to Many with one route result
+...............................................................................
-Starting from `v3.5.0 `__
+.. rubric:: Using ``pgr_bdAstar``
-Signatures to be migrated:
+Migrating `this v3.5
+`__
+example.
-* ``pgr_dijkstra`` (`One to One`)
-* ``pgr_dijkstra`` (`One to Many`)
-* ``pgr_dijkstra`` (`Many to One`)
+.. literalinclude:: migration.queries
+ :start-after: --bdastar2
+ :end-before: --bdastar3
-:Before Migration:
+Before updating pgRouting enumerate the columns: |result-1-m|
-* Output columns were |old-generic-result|
+.. literalinclude:: migration.queries
+ :start-after: --bdastar3
+ :end-before: --bdastar4
- * Depending on the overload used, the columns ``start_vid`` and ``end_vid``
- might be missing:
+.. rubric:: Using ``pgr_withPoints``
- * ``pgr_dijkstra`` (`One to One`) does not have ``start_vid`` and
- ``end_vid``.
- * ``pgr_dijkstra`` (`One to Many`) does not have ``start_vid``.
- * ``pgr_dijkstra`` (`Many to One`) does not have ``end_vid``.
+Migrating `this v3.8
+`__
+example.
-:Migration:
+.. literalinclude:: migration.queries
+ :start-after: --withPoints-1-to-m
+ :end-before: --withPoints-1-to-m-filter
+
+.. warning:: Breaking change
-* Be aware of the existence of the additional columns.
+ If using ``pgr_withPoints``: column names must be changed after updating
+ pgRouting
-* In ``pgr_dijkstra`` (`One to One`)
+ :from: |pid-1-m|
+ :to: |short-generic-result|
- * ``start_vid`` contains the **start vid** parameter value.
- * ``end_vid`` contains the **end vid** parameter value.
+To get the old signature column names: filter out the
+column ``start_vid`` and rename ``end_vid`` to ``end_pid``.
.. literalinclude:: migration.queries
- :start-after: --dijkstra1
- :end-before: --dijkstra2
+ :start-after: --withPoints-1-to-m-filter
+ :end-before: --withPoints-m-to-1
+
+Examples for Many to One with one route result
+...............................................................................
+
+.. rubric:: Using ``pgr_bdDijkstra``
+
+Migrating `this v3.8
+`__
+example.
-* In ``pgr_dijkstra`` (`One to Many`)
+.. literalinclude:: migration.queries
+ :start-after: --bdDijkstra-m-to-1
+ :end-before: --bdDijkstra-m-to-1-filter
- * ``start_vid`` contains the **start vid** parameter value.
+Before updating pgRouting enumerate the columns: |result-m-1|
.. literalinclude:: migration.queries
- :start-after: --dijkstra2
- :end-before: --dijkstra3
+ :start-after: --bdDijkstra-m-to-1-filter
+ :end-before: --bdDijkstra-END
-* In ``pgr_dijkstra`` (`Many to One`)
+.. rubric:: Using ``pgr_dijkstra``
- * ``end_vid`` contains the **end vid** parameter value.
+Migrating `this v3.4
+`__
+example.
.. literalinclude:: migration.queries
:start-after: --dijkstra3
:end-before: --dijkstra4
-* If needed filter out the added columns, for example:
+Before updating pgRouting enumerate the columns: |result-m-1|
.. literalinclude:: migration.queries
:start-after: --dijkstra4
:end-before: --dijkstra5
-* If needed add the new columns, for example:
+Examples for Many to Many with one route result
+...............................................................................
- * In `v3.0 `__
- the function ``my_dijkstra`` uses ``pgr_dijkstra``.
- * Starting from `v3.5 `__
- the function ``my_dijkstra`` returns the new additional columns of
- ``pgr_dijkstra``.
+.. rubric:: Using ``pgr_withPoints``
-Migration of ``pgr_drivingDistance``
--------------------------------------------------------------------------------
+Migrating `this v3.8
+`__
+example.
-Starting from `v3.6.0 `__
-:doc:`pgr_drivingDistance` result columns are being standardized.
+.. literalinclude:: migration.queries
+ :start-after: --withPoints-m-to-m
+ :end-before: --withPoints-m-to-m-filter
-:from: |result-dij-dd|
-:to: |result-spantree|
+.. warning:: Breaking change
-Signatures to be migrated:
+ If using ``pgr_withPoints``: column names must be changed after updating
+ pgRouting
-* pgr_drivingDistance(Single vertex)
-* pgr_drivingDistance(Multiple vertices)
+ :from: |pid-m-m|
+ :to: |short-generic-result|
-:Before Migration:
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
-Output columns were |result-dij-dd|
+.. literalinclude:: migration.queries
+ :start-after: --withPoints-m-to-m-filter
+ :end-before: --withPoints-c
-* pgr_drivingDistance(Single vertex)
+Examples for combinations with one route result
+...............................................................................
- * Does not have ``start_vid`` and ``depth`` result columns.
+.. rubric:: Using ``pgr_withPoints``
-* pgr_drivingDistance(Multiple vertices)
+Migrating `this v3.8
+`this `__
+example.
- * Has ``from_v`` instead of ``start_vid`` result column.
- * does not have ``depth`` result column.
+.. literalinclude:: migration.queries
+ :start-after: --withPoints-c
+ :end-before: --withPoints-c-filter
-:Migration:
+.. warning:: Breaking change
-* Be aware of the existence and name change of the result columns.
+ If using ``pgr_withPoints``: column names must be changed after updating
+ pgRouting
-pgr_drivingDistance(Single vertex)
-...............................................................................
+ :from: |pid-m-m|
+ :to: |short-generic-result|
-Using `this
-`__
-example.
+To get the old version column names: rename ``start_vid`` to ``start_pid`` and
+``end_vid`` to ``end_pid``.
-* ``start_vid`` contains the **start vid** parameter value.
-* ``depth`` contains the depth of the ``node``.
-* ``pred`` contains the predecessor of the ``node``.
+.. literalinclude:: migration.queries
+ :start-after: --withPoints-c-filter
+ :end-before: --withPoints-END
- .. literalinclude:: migration.queries
- :start-after: --drivingdistance1
- :end-before: --drivingdistance2
+Migration of spanning tree functions
+-------------------------------------------------------------------------------
-If needed filter out the added columns, for example, to return the original columns
+The standardized :ref:`pgRouting-concepts:Result columns for spanning tree
+functions` are |result-spantree|
+
+.. list-table::
+ :header-rows: 1
+
+ * - Function
+ - Version
+ - From
+ * - ``pgr_drivingDistance``
+ - v < 3.6
+ - :ref:`from_result_dij_dd`
+ * - ``pgr_withPointsDD``
+ - v < 3.6
+ - :ref:`from_result_generic_no_seq`
+ * - ``pgr_kruskalDD``
+ - v < 3.7
+ - :ref:`from_result_bfs`
+ * - ``pgr_kruskalBFS``
+ - v < 3.7
+ - :ref:`from_result_bfs`
+ * - ``pgr_kruskalDFS``
+ - v < 3.7
+ - :ref:`from_result_bfs`
+ * - ``pgr_primDD``
+ - v < 3.7
+ - :ref:`from_result_bfs`
+ * - ``pgr_primBFS``
+ - v < 3.7
+ - :ref:`from_result_bfs`
+ * - ``pgr_primDFS``
+ - v < 3.7
+ - :ref:`from_result_bfs`
+ * - ``pgr_breadthFisrtSearch``
+ - v < 4.0.0
+ - :ref:`from_result_bfs`
+ * - ``pgr_depthFisrtSearch``
+ - v < 4.0.0
+ - :ref:`from_result_bfs`
+
+
+to |result-spantree|
+
+.. contents:: Examples
+ :local:
-.. literalinclude:: migration.queries
- :start-after: --drivingdistance2
- :end-before: --drivingdistance3
+.. _from_result_bfs:
-pgr_drivingDistance(Multiple vertices)
+Migration from |result-bfs|.
...............................................................................
-Using `this
-`__
-example.
+Signatures to be migrated:
-* The ``from_v`` result column name changes to ``start_vid``.
-* ``depth`` contains the depth of the ``node``.
-* ``pred`` contains the predecessor of the ``node``.
+* Single vertex
+* Multiple vertices
- .. literalinclude:: migration.queries
- :start-after: --drivingdistance3
- :end-before: --drivingdistance4
+Before updating pgRouting enumerate the columns: |result-bfs|
-If needed filter out and rename columns, for example, to return the original
-columns:
+Single vertex example using ``pgr_kruskalDD``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Migrating `this v3.6
+`__ example.
.. literalinclude:: migration.queries
- :start-after: --drivingdistance4
- :end-before: --drivingdistance5
+ :start-after: --kruskalDD1
+ :end-before: --kruskalDD2
-Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``
--------------------------------------------------------------------------------
+Before updating pgRouting enumerate the columns: |result-bfs|.
-Starting from `v3.7.0 `__
-:doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and
-:doc:`pgr_kruskalDFS` result columns are being standardized.
+.. literalinclude:: migration.queries
+ :start-after: --kruskalDD2
+ :end-before: --kruskalDD3
-:from: |result-bfs|
-:to: |result-spantree|
+Multiple vertices example using ``pgr_kruskalDFS``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-* ``pgr_kruskalDD``
+Migrating `this v3.6
+`__
+example.
- * Single vertex
- * Multiple vertices
+.. literalinclude:: migration.queries
+ :start-after: --kruskalDD3
+ :end-before: --kruskalDD4
+
+Before updating pgRouting enumerate the columns: |result-bfs|.
-* ``pgr_kruskalDFS``
+.. literalinclude:: migration.queries
+ :start-after: --kruskalDD4
+ :end-before: --kruskalDD5
- * Single vertex
- * Multiple vertices
+.. _from_result_dij_dd:
-* ``pgr_kruskalBFS``
+Migration from |result-dij-dd|
+.................................................................................
- * Single vertex
- * Multiple vertices
+Signatures to be migrated:
+* Single vertex
+* Multiple vertices
-:Before Migration:
+Migration depends on the signature.
-Output columns were |result-bfs|
+For single vertex:
-* Single vertex and Multiple vertices
+* Before updating pgRouting, enumerate |result-1-1| columns
- * Do not have ``pred`` result column.
+For multiple vertices:
-:Migration:
+.. warning:: Breaking change
-* Be aware of the existence of `pred` result columns.
-* If needed filter out the added columns
+ Changes must be done after updating pgRouting.
-Kruskal single vertex
-...............................................................................
+To get the old version column names |result-dij-dd-m|:
-Using ``pgr_KruskalDD`` as example.
-Migration is similar to al the affected functions.
+* filter out the column ``pred`` and ``depth`` and
+* rename ``start_vid`` to ``from_v``.
-Comparing with `this
-`__ example.
+Single vertex example using ``pgr_drivingDistance``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Now column ``pred`` exists and contains the predecessor of the ``node``.
+Migrating `this v3.5
+`__
+example.
.. literalinclude:: migration.queries
- :start-after: --kruskalDD1
- :end-before: --kruskalDD2
+ :start-after: --drivingdistance1
+ :end-before: --drivingdistance2
-If needed filter out the added columns, for example, to return the original
-columns
+Before updating pgRouting, enumerate |result-1-1-no-seq| columns
.. literalinclude:: migration.queries
- :start-after: --kruskalDD2
- :end-before: --kruskalDD3
-
-Kruskal multiple vertices
-...............................................................................
+ :start-after: --drivingdistance2
+ :end-before: --drivingdistance3
-Using ``pgr_KruskalDD`` as example.
-Migration is similar to al the affected functions.
+Multiple vertices example using ``pgr_drivingDistance``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Comparing with `this
-`__
+Migrating `this v3.5
+`__
example.
-Now column ``pred`` exists and contains the predecessor of the ``node``.
-
.. literalinclude:: migration.queries
- :start-after: --kruskalDD3
- :end-before: --kruskalDD4
+ :start-after: --drivingdistance3
+ :end-before: --drivingdistance4
-If needed filter out the added columns, for example, to return the original
-columns
+To get the old version column names |result-dij-dd-m|: filter out the column
+``pred`` and ``depth`` and rename ``start_vid`` to ``from_v``.
.. literalinclude:: migration.queries
- :start-after: --kruskalDD4
- :end-before: --kruskalDD5
+ :start-after: --drivingdistance4
+ :end-before: --drivingdistance5
-Migration of ``pgr_KSP``
--------------------------------------------------------------------------------
+.. _from_result_generic_no_seq:
-Starting from `v3.6.0 `__
-:doc:`pgr_KSP` result columns are being standardized.
-
-:from: |ksp-result|
-:from: |nksp-result|
+Migration of |result-generic-no-seq|
+.................................................................................
Signatures to be migrated:
-* ``pgr_KSP`` (One to One)
+* Single vertex
+* Multiple vertices
-:Before Migration:
+.. warning:: Breaking change
-* Output columns were |ksp-result|
+ Changes must be done after updating pgRouting.
- * the columns ``start_vid`` and ``end_vid`` do not exist.
+For single vertex:
- * ``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``.
+After updating pgRouting:
-:Migration:
+* Enumerate |result-1-1-no-seq| columns
+* Use an unnamed valid value for **driving side** after the **distance**
+ parameter.
-* Be aware of the existence of the additional columns.
+For multiple vertices:
-``pgr_KSP`` (One to One)
-...............................................................................
+After updating pgRouting:
-Using
-`this `__
-example.
+* Enumerate |result-m-1-no-seq| columns
+* Use an unnamed valid value for **driving side** after the **distance**
+ parameter.
-* ``start_vid`` contains the **start vid** parameter value.
-* ``end_vid`` contains the **end vid** parameter value.
+.. note:: Default value of **driving side** parameter
-.. literalinclude:: migration.queries
- :start-after: --ksp1
- :end-before: --ksp2
+ **driving side** parameter is unnamed, and valid values differ for
+ directed and undirected graphs.
-If needed filter out the added columns, for example, to return the original
-columns:
+ * In directed graph: valid values are [``r``, ``R``, ``l``, ``L``]
-.. literalinclude:: migration.queries
- :start-after: --ksp2
- :end-before: --ksp3
+ * Default value = 'r';
-Migration of ``pgr_maxCardinalityMatch``
--------------------------------------------------------------------------------
+ * In undirected graph: valid values are [``b``, ``B``]
-:doc:`pgr_maxCardinalityMatch` works only for undirected graphs, therefore the
-``directed`` flag has been removed.
+ * Default value = 'b';
-Starting from `v3.4.0 `__
+Single vertex example using ``pgr_withPointsDD``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Signature to be migrated:
+Migrating `this v3.5
+`__
+example.
-.. parsed-literal::
+.. literalinclude:: migration.queries
+ :start-after: --withpointsdd4
+ :end-before: --withpointsdd5
- pgr_maxCardinalityMatch(Edges SQL, [directed])
- RETURNS SETOF (seq, edge, source, target)
+After updating pgRouting:
-Migration is needed, because:
+* Enumerate |result-1-1-no-seq| columns
+* Use an unnamed valid value for **driving side** after the **distance**
+ parameter.
-* Use ``cost`` and ``reverse_cost`` on the inner query
-* Results are ordered
-* Works for undirected graphs.
-* New signature
+.. literalinclude:: migration.queries
+ :start-after: --withpointsdd5
+ :end-before: --withpointsdd6
- * ``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column.
- * The optional flag ``directed`` is removed.
+Multiple vertices example using ``pgr_withPointsDD``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-:Before migration:
+Migrating `this v3.5
+`__
+example.
.. literalinclude:: migration.queries
- :start-after: --maxcard1
- :end-before: --maxcard2
+ :start-after: --withpointsdd6
+ :end-before: --withpointsdd7
-* Columns used are ``going`` and ``coming`` to represent the existence of an
- edge.
-* Flag ``directed`` was used to indicate if it was for a **directed** or
- **undirected** graph.
+After updating pgRouting:
- * The flag ``directed`` is ignored.
+* Enumerate |result-m-1-no-seq| columns
+* Use an unnamed valid value for **driving side** after the **distance**
+ parameter.
- * Regardless of it's value it gives the result considering the graph as
- **undirected**.
+.. literalinclude:: migration.queries
+ :start-after: --withpointsdd7
+ :end-before: --withpointsdd8
-:Migration:
+Migration of output column name change
+-------------------------------------------------------------------------------
-* Use the columns ``cost`` and ``reverse_cost`` to represent the existence of an
- edge.
-* Do not use the flag ``directed``.
-* In the query returns only ``edge`` column.
+The standardized result columns:
-.. literalinclude:: migration.queries
- :start-after: --maxcard2
- :end-before: --maxcard3
+* |result_edge_color|
+* |result_node_color|
+* |result_node_order|
-Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``
--------------------------------------------------------------------------------
+.. warning:: Breaking change
-Starting from `v3.7.0 `__
-:doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns are
-being standardized.
+ Changes on column names must be done after updating pgRouting.
-:from: |result-bfs|
-:to: |result-spantree|
+.. list-table::
+ :header-rows: 1
-* ``pgr_primDD``
+ * - Function
+ - Version
+ - From
+ * - ``pgr_edgeColoring``
+ - v < 4.0.0
+ - :ref:`from_old_edge_color`
+ * - ``pgr_bipartite``
+ - v < 4.0.0
+ - :ref:`from_old_node_color`
+ * - ``pgr_sequentialVertexColoring``
+ - v < 4.0.0
+ - :ref:`from_old_node_color`
+ * - ``pgr_topologicalSort``
+ - v < 4.0.0
+ - :ref:`from_toposort`
+ * - ``pgr_transitiveClosure``
+ - v < 4.0.0
+ - :ref:`from_old_closure`
- * Single vertex
- * Multiple vertices
+.. _from_old_closure:
-* ``pgr_primDFS``
+Migration from |result-old-closure|
+.................................................................................
- * Single vertex
- * Multiple vertices
+Migration to: |result-old-closure|
-* ``pgr_primBFS``
+.. warning:: Breaking change
- * Single vertex
- * Multiple vertices
+ Changes must be done after updating pgRouting.
+After update:
-:Before Migration:
+* Remove column ``seq``
+* Rename ``vid`` to ``node`` and ``target_array`` to ``targets``
-Output columns were |result-bfs|
+.. _from_toposort:
-* Single vertex and Multiple vertices
+Migration from |result-toposort|
+.................................................................................
- * Do not have ``pred`` result column.
+Migration to: |result_node_order|
-:Migration:
+.. warning:: Breaking change
-* Be aware of the existence of `pred` result columns.
-* If needed filter out the added columns
+ Changes must be done after updating pgRouting.
-Prim single vertex
-...............................................................................
+After update:
-Using ``pgr_primDD`` as example.
-Migration is similar to al the affected functions.
+* Rename ``sorted_v`` to ``node``
-Comparing with `this
-`__ example.
+.. _from_old_edge_color:
-Now column ``pred`` exists and contains the predecessor of the ``node``.
+Migration from |old-edge-color|
+.................................................................................
-.. literalinclude:: migration.queries
- :start-after: --primDD1
- :end-before: --primDD2
+Migration to: |result_edge_color|
-If needed filter out the added columns, for example, to return the original
-columns
+.. warning:: Breaking change
-.. literalinclude:: migration.queries
- :start-after: --primDD2
- :end-before: --primDD3
+ Changes must be done after updating pgRouting.
-Prim multiple vertices
-...............................................................................
+After update:
-Using ``pgr_primDD`` as example.
-Migration is similar to al the affected functions.
+* Rename ``edge_id`` to ``edge`` and ``color_id`` to ``color``.
-Comparing with `this
-`__
-example.
+.. _from_old_node_color:
-Now column ``pred`` exists and contains the predecessor of the ``node``.
+Migration from |old-node-color|
+.................................................................................
-.. literalinclude:: migration.queries
- :start-after: --primDD3
- :end-before: --primDD4
+Migration to: |result_node_color|
-If needed filter out the added columns, for example, to return the original
-columns
+.. warning:: Breaking change
-.. literalinclude:: migration.queries
- :start-after: --primDD4
- :end-before: --primDD5
+ Changes must be done after updating pgRouting.
+
+After update:
+
+* Rename ``vertex_id`` to ``node`` and ``color_id`` to ``color``.
-Migration of ``pgr_withPointsDD``
+Migration of deleted functions
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Functions no longer on pgRouting
+
+.. contents:: Contents
+ :local:
+
+Migration of ``pgr_alphaShape``
-------------------------------------------------------------------------------
-Starting from `v3.6.0 `__
-:doc:`pgr_withPointsDD` result columns are being standardized.
+:Deprecated: `v3.8.0 `__
+:Removed: `v4.0.0 `__
-:from: |result-generic-no-seq|
-:to: |result-spantree|
+**Before Deprecation:** The following was calculated:
-And ``driving_side`` parameter changed from named optional to unnamed compulsory
-**driving side** and its validity differ for directed and undirected graphs.
+* An alphaShape was calculated
-Signatures to be migrated:
+**After Deprecation:**
-* ``pgr_withPointsDD`` (Single vertex)
-* ``pgr_withPointsDD`` (Multiple vertices)
+PostGIS has two ways of generating alphaShape.
-:Before Migration:
+If you have SFCGAL, which you can install using
-* ``pgr_withPointsDD`` (Single vertex)
+::
- * Output columns were |result-1-1-no-seq|
- * Does not have ``start_vid``, ``pred`` and ``depth`` result columns.
- * ``driving_side`` parameter was named optional now it is compulsory unnamed.
+ CREATE EXTENSION postgis_sfcgal
-* ``pgr_withPointsDD`` (`Multiple vertices`)
+* Since PostGIS 3.5+ use `CG_AlphaShape `__
+* For PostGIS 3.5+ use the old name ``ST_AlphaShape``
- * Output columns were |result-m-1-no-seq|
- * Does not have ``depth`` and ``pred`` result columns.
- * ``driving_side`` parameter was named optional now it is compulsory unnamed.
+Other PostGIS options are
-.. rubric:: Driving side was optional
+* `ST_ConvexHull `__
+* `ST_ConcaveHull `__
-The default values on this query are:
+Migration of ``pgr_nodeNetwork``
+-------------------------------------------------------------------------------
-:directed: true
-:driving_side: 'b'
-:details: false
+:Deprecated: `v3.8.0 `__
+:Removed: `v4.0.0 `__
-.. literalinclude:: migration.queries
- :start-after: --withpointsdd1
- :end-before: --withpointsdd2
+**Before Deprecation:** A table with `_nodded` was created. with split
+edges.
-.. rubric:: Driving side was named optional
+**Migration**
-The default values on this query are:
+Use :doc:`pgr_separateTouching` and/or use :doc:`pgr_separateCrossing`
-:directed: true
-:details: false
+Migration of ``pgr_createTopology``
+-------------------------------------------------------------------------------
-.. literalinclude:: migration.queries
- :start-after: --withpointsdd2
- :end-before: --withpointsdd3
+:Deprecated: `v3.8.0 `__
+:Removed: `v4.0.0 `__
-.. rubric:: On directed graph ``b`` could be used as **driving side**
+**Before Deprecation:** The following was calculated:
-The default values on this query are:
+* A table with `_vertices_pgr` was created.
-:details: false
+**After Deprecation:** The user is responsible to create the complete topology.
-.. literalinclude:: migration.queries
- :start-after: --withpointsdd3
- :end-before: --withpointsdd4
+.. include:: pgRouting-concepts.rst
+ :start-after: createTopology_start
+ :end-before: createTopology_end
-.. rubric:: On undirected graph ``r`` could be used as **driving side**
+Migration of ``pgr_createVerticesTable``
+-------------------------------------------------------------------------------
-Also ``l`` could be used as **driving side**
+:Deprecated: `v3.8.0 `__
+:Removed: `v4.0.0 `__
-.. literalinclude:: migration.queries
- :start-after: --withpointsdd4
- :end-before: --withpointsdd5
+**Before Deprecation:** The following was calculated:
-:After Migration:
+* A table with `_vertices_pgr` was created.
-* Be aware of the existence of the additional result Columns.
-* New output columns are |result-spantree|
-* **driving side** parameter is unnamed compulsory, and valid values differ for
- directed and undirected graphs.
+**After Deprecation:** The user is responsible to create the vertices table,
+indexes, etc. They may use :doc:`pgr_extractVertices` for that purpose.
- * Does not have a default value.
- * In directed graph: valid values are [``r``, ``R``, ``l``, ``L``]
- * In undirected graph: valid values are [``b``, ``B``]
- * Using an invalid value throws an ``ERROR``.
+.. literalinclude:: sampledata.queries
+ :start-after: -- q1
+ :end-before: -- q1-1
-``pgr_withPointsDD`` (Single vertex)
-...............................................................................
+Migration of ``pgr_analyzeOneWay``
+-------------------------------------------------------------------------------
-Using
-`this `__
-example.
+:Deprecated: `v3.8.0 `__
+:Removed: `v4.0.0 `__
-* |result-spantree|
-* ``start_vid`` contains the **start vid** parameter value.
-* ``depth`` contains the **depth** from the ``start_vid`` vertex to the
- ``node``.
-* ``pred`` contains the predecessor of the ``node``.
+**Before Deprecation:** The following was calculated:
+* Number of potential problems in directionality
-To migrate, use an unnamed valid value for **driving side** after the
-**distance** parameter:
+WHERE
-.. literalinclude:: migration.queries
- :start-after: --withpointsdd4
- :end-before: --withpointsdd5
+Directionality problems were calculated based on codes.
-To get results from previous versions:
+.. rubric:: Dead ends.
-* filter out the additional columns, for example;
-* When ``details => false`` to remove the points use ``WHERE node >= 0 OR cost =
- 0``
+A routing problem can arise when from a vertex there is only a way on or a way
+out but not both:
+
+Either saving or using directly :doc:`pgr_extractVertices` get the dead ends
+information and determine if the adjacent edge is one way or not.
+
+In this example :doc:`pgr_extractVertices` has already been applied.
.. literalinclude:: migration.queries
- :start-after: --withpointsdd5
- :end-before: --withpointsdd6
+ :start-after: --OneWay1
+ :end-before: --OneWay2
-``pgr_withPointsDD`` (Multiple vertices)
-...............................................................................
+.. rubric:: Bridges.
-Using
-`this `__
-example.
+Another routing problem can arise when there is an edge of an undirected graph
+whose deletion increases its number of connected components, and the bridge is
+only one way.
-* |result-spantree|
-* ``depth`` contains the **depth** from the ``start_vid`` vertex to the
- ``node``.
-* ``pred`` contains the predecessor of the ``node``.
+To determine if the bridges are or not one way.
.. literalinclude:: migration.queries
- :start-after: --withpointsdd6
- :end-before: --withpointsdd7
+ :start-after: --OneWay2
+ :end-before: --OneWay3
-To get results from previous versions:
+Migration of ``pgr_analyzeGraph``
+-------------------------------------------------------------------------------
-* Filter out the additional columns
-* When ``details => false`` to remove the points use ``WHERE node >= 0 OR cost =
- 0``
+:Deprecated: `v3.8.0 `__
+:Removed: `v4.0.0 `__
-.. literalinclude:: migration.queries
- :start-after: --withpointsdd7
- :end-before: --withpointsdd8
+**Before Deprecation:** The following was calculated:
+
+* Number of isolated segments.
+* Number of dead ends.
+* Number of potential gaps found near dead ends.
+* Number of intersections. (between 2 edges)
+
+WHERE
+
+:Graph component: A connected subgraph that is not part of any larger connected
+ subgraph.
+:Isolated segment: A graph component with only one segment.
+:Dead ends: A vertex that participates in only one edge.
+:gaps: Space between two geometries.
+:Intersection: Is a topological relationship between two geometries.
-Migration of ``pgr_withPointsKSP``
--------------------------------------------------------------------------------
+.. rubric:: Migration.
-Starting from `v3.6.0 `__
-:doc:`pgr_withPointsKSP` result columns are being standardized.
+.. rubric:: Components.
-:from: |ksp-result|
-:from: |nksp-result|
+Instead of counting only isolated segments, determine all the components of the
+graph.
-And ``driving side`` parameter changed from named optional to unnamed compulsory
-**driving side** and its validity differ for directed and undirected graphs.
+Depending of the final application requirements use:
-Signatures to be migrated:
+* :doc:`pgr_connectedComponents`
+* :doc:`pgr_strongComponents`
+* :doc:`pgr_biconnectedComponents`
-* ``pgr_withPointsKSP`` (`One to One`)
+For example:
-:Before Migration:
+.. literalinclude:: migration.queries
+ :start-after: --analysis1
+ :end-before: --analysis2
-* Output columns were |old-pid-result|
+.. rubric:: Dead ends.
- * the columns ``start_vid`` and ``end_vid`` do not exist.
+Instead of counting the dead ends, determine all the dead ends of the graph
+using :doc:`pgr_degree`.
+For example:
-:Migration:
+.. literalinclude:: migration.queries
+ :start-after: --analysis2
+ :end-before: --analysis3
-* Be aware of the existence of the additional result Columns.
-* New output columns are |nksp-result|
-* **driving side** parameter is unnamed compulsory, and valid values differ for
- directed and undirected graphs.
+.. rubric:: Potential gaps near dead ends.
- * Does not have a default value.
- * In directed graph: valid values are [``r``, ``R``, ``l``, ``L``]
- * In undirected graph: valid values are [``b``, ``B``]
- * Using an invalid value throws an ``ERROR``.
+Instead of counting potential gaps between geometries, determine the geometric
+gaps in the graph using :doc:`pgr_findCloseEdges`.
-``pgr_withPointsKSP`` (`One to One`)
-...............................................................................
+For example:
-Using
-`this `__
-example.
+.. literalinclude:: migration.queries
+ :start-after: --analysis3
+ :end-before: --analysis4
-* ``start_vid`` contains the **start vid** parameter value.
-* ``end_vid`` contains the **end vid** parameter value.
+.. rubric:: Topological relationships.
-.. literalinclude:: migration.queries
- :start-after: --withPointsKSP1
- :end-before: --withPointsKSP2
+Instead of counting intersections, determine topological relationships between
+geometries.
-If needed filter out the additional columns, for example, to return the original
-columns:
+Several PostGIS functions can be used:
+`ST_Intersects `__,
+`ST_Crosses `__,
+`ST_Overlaps `__, etc.
-.. literalinclude:: migration.queries
- :start-after: --withPointsKSP2
- :end-before: --withPointsKSP3
+For example:
+.. literalinclude:: migration.queries
+ :start-after: --analysis4
+ :end-before: --analysis5
Migration of ``pgr_trsp`` (Vertices)
-------------------------------------------------------------------------------
@@ -987,6 +1236,7 @@ Signature:
RETURNS SETOF (seq, id1, id2, cost)
:Deprecated: `v3.4.0 `__
+:Removed: `v4.0.0 `__
.. contents::
:local:
@@ -1047,6 +1297,7 @@ Signature:
RETURNS SETOF (seq, id1, id2, cost)
:Deprecated: `v3.4.0 `__
+:Removed: `v4.0.0 `__
.. contents::
:local:
@@ -1057,42 +1308,6 @@ Signature:
- :doc:`pgr_trsp_withPoints`
- `Migration of restrictions`_
-Use ``pgr_withPoints`` when there are no restrictions.
-...............................................................................
-
-Use :doc:`pgr_withPoints` (One to One) instead.
-
-.. literalinclude:: migration.queries
- :start-after: --edgesv2
- :end-before: --edgesv3
-
-To get the original column names:
-
-.. literalinclude:: migration.queries
- :start-after: --edgesv3
- :end-before: --edgesv4
-
-* ``id1`` is the node
-* ``id2`` is the edge
-
-Use ``pgr_trsp_withPoints`` when there are restrictions.
-...............................................................................
-
-Use :doc:`pgr_trsp_withPoints` instead.
-
-.. literalinclude:: migration.queries
- :start-after: --edgesv5
- :end-before: --edgesv6
-
-To get the original column names:
-
-.. literalinclude:: migration.queries
- :start-after: --edgesv6
- :end-before: --edgesv7
-
-* ``id1`` is the node
-* ``id2`` is the edge
-
Migration of ``pgr_trspViaVertices``
-------------------------------------------------------------------------------
@@ -1106,6 +1321,7 @@ Signature:
RETURNS SETOF (seq, id1, id2, id3, cost)
:Deprecated: `v3.4.0 `__
+:Removed: `v4.0.0 `__
.. contents::
:local:
@@ -1168,6 +1384,7 @@ Signature:
RETURNS SETOF (seq, id1, id2, id3, cost)
:Deprecated: `v3.4.0 `__
+:Removed: `v4.0.0 `__
.. contents::
:local:
@@ -1217,15 +1434,165 @@ To get the original column names:
* ``id2`` is the node
* ``id3`` is the edge
-Migration of restrictions
+Not yet classified migrations
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Migration of ``pgr_withPointsKSP``
+-------------------------------------------------------------------------------
+
+Starting from `v3.6.0 `__
+:doc:`pgr_withPointsKSP` result columns are being standardized.
+
+:from: |ksp-result|
+:to: |generic-result|
+
+And ``driving side`` parameter changed from named optional to unnamed
+**driving side** and its validity differ for directed and undirected graphs.
+
+Signatures to be migrated:
+
+* ``pgr_withPointsKSP`` (`One to One`)
+
+:Before Migration:
+
+* Output columns were |old-pid-result|
+
+ * the columns ``start_vid`` and ``end_vid`` do not exist.
+
+
+:Migration:
+
+* Be aware of the existence of the additional result Columns.
+* New output columns are |generic-result|
+
+.. note:: Default value of **driving side** parameter
+
+ **driving side** parameter is unnamed, and valid values differ for
+ directed and undirected graphs.
+
+ * In directed graph: valid values are [``r``, ``R``, ``l``, ``L``]
+
+ * Default value = 'r';
+
+ * In undirected graph: valid values are [``b``, ``B``]
+
+ * Default value = 'b';
+
+``pgr_withPointsKSP`` (`One to One`)
+...............................................................................
+
+Using
+`this `__
+example.
+
+* ``start_vid`` contains the **start vid** parameter value.
+* ``end_vid`` contains the **end vid** parameter value.
+
+.. literalinclude:: migration.queries
+ :start-after: --withPointsKSP1
+ :end-before: --withPointsKSP2
+
+If needed filter out the additional columns, for example, to return the original
+columns:
+
+.. literalinclude:: migration.queries
+ :start-after: --withPointsKSP2
+ :end-before: --withPointsKSP3
+
+
+Use ``pgr_withPoints`` when there are no restrictions.
+...............................................................................
+
+Use :doc:`pgr_withPoints` (One to One) instead.
+
+.. literalinclude:: migration.queries
+ :start-after: --edgesv2
+ :end-before: --edgesv3
+
+To get the original column names:
+
+.. literalinclude:: migration.queries
+ :start-after: --edgesv3
+ :end-before: --edgesv4
+
+* ``id1`` is the node
+* ``id2`` is the edge
+
+Use ``pgr_trsp_withPoints`` when there are restrictions.
+...............................................................................
+
+Use :doc:`pgr_trsp_withPoints` instead.
+
+.. literalinclude:: migration.queries
+ :start-after: --edgesv5
+ :end-before: --edgesv6
+
+To get the original column names:
+
+.. literalinclude:: migration.queries
+ :start-after: --edgesv6
+ :end-before: --edgesv7
+
+* ``id1`` is the node
+* ``id2`` is the edge
+
+Migration of ``pgr_maxCardinalityMatch``
-------------------------------------------------------------------------------
+:doc:`pgr_maxCardinalityMatch` works only for undirected graphs, therefore the
+``directed`` flag has been removed.
+
+Starting from `v3.4.0 `__
+
+Signature to be migrated:
+
+.. parsed-literal::
+
+ pgr_maxCardinalityMatch(Edges SQL, [directed])
+ RETURNS SETOF (seq, edge, source, target)
+
+Migration is needed, because:
+
+* Use ``cost`` and ``reverse_cost`` on the inner query
+* Results are ordered
+* Works for undirected graphs.
+* New signature
+
+ * ``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column.
+ * The optional flag ``directed`` is removed.
+
+:Before migration:
+
+* Columns used are ``going`` and ``coming`` to represent the existence of an
+ edge.
+* Flag ``directed`` was used to indicate if it was for a **directed** or
+ **undirected** graph.
+
+ * The flag ``directed`` is ignored.
+
+ * Regardless of it's value it gives the result considering the graph as
+ **undirected**.
+
+:Migration:
+
+* Use the columns ``cost`` and ``reverse_cost`` to represent the existence of an
+ edge.
+* Do not use the flag ``directed``.
+* In the query returns only ``edge`` column.
+
+.. literalinclude:: migration.queries
+ :start-after: --maxcard2
+ :end-before: --maxcard3
+
+Migration of restrictions
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
Starting from `v3.4.0 `__
The structure of the restrictions have changed:
Old restrictions structure
-...............................................................................
+-------------------------------------------------------------------------------
On the deprecated signatures:
@@ -1258,7 +1625,7 @@ Old restrictions fill up
:end-before: --rest1
Old restrictions contents
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+...............................................................................
.. literalinclude:: migration.queries
:start-after: --rest1
@@ -1279,7 +1646,7 @@ The restriction with ``rid = 2`` is representing :math:`3 \rightarrow 5
New restrictions structure
-...............................................................................
+-------------------------------------------------------------------------------
* Column ``id`` is ignored
* Column ``path``
@@ -1332,10 +1699,9 @@ The migrated table contents:
See Also
--------------------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-* :doc:`TRSP-family`
-* :doc:`withPoints-category`
+* :doc:`pgRouting-concepts`
.. rubric:: Indices and tables
diff --git a/doc/src/pgRouting-concepts.rst b/doc/src/pgRouting-concepts.rst
index ed471beb9cf..ec504a0b6c0 100644
--- a/doc/src/pgRouting-concepts.rst
+++ b/doc/src/pgRouting-concepts.rst
@@ -1530,136 +1530,26 @@ Result columns
There are several kinds of columns returned are depending of the function.
-Result columns for a path
+Result columns for single path functions
...............................................................................
-.. rubric:: Used in functions that return one path solution
-
-.. return_path_short_start
-
-Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,
-agg_cost)``
-
-.. list-table::
- :width: 81
- :widths: 12 14 60
- :header-rows: 1
-
- * - Column
- - Type
- - Description
- * - ``seq``
- - ``INTEGER``
- - Sequential value starting from **1**.
- * - ``path_seq``
- - ``INTEGER``
- - Relative position in the path. Has value **1** for the beginning of a
- path.
- * - ``start_vid``
- - ``BIGINT``
- - Identifier of the starting vertex.
- Returned when multiple starting vetrices are in the query.
-
- * `Many to One`_
- * `Many to Many`_
- * - ``end_vid``
- - ``BIGINT``
- - Identifier of the ending vertex.
- Returned when multiple ending vertices are in the query.
-
- * `One to Many`_
- * `Many to Many`_
- * - ``node``
- - ``BIGINT``
- - Identifier of the node in the path from ``start_vid`` to ``end_vid``.
- * - ``edge``
- - ``BIGINT``
- - Identifier of the edge used to go from ``node`` to the next node in the
- path sequence. **-1** for the last node of the path.
- * - ``cost``
- - ``FLOAT``
- - Cost to traverse from ``node`` using ``edge`` to the next node in the
- path sequence.
- * - ``agg_cost``
- - ``FLOAT``
- - Aggregate cost from ``start_vid`` to ``node``.
-
-.. return_path_short_end
-
-.. rubric:: Used in functions the following:
-
-* :doc:`pgr_withPoints`
-
-
-.. return_withpoint_path_short_start
-
-Returns set of ``(seq, path_seq [, start_pid] [, end_pid], node, edge, cost,
-agg_cost)``
-
-.. list-table::
- :width: 81
- :widths: 12 14 60
- :header-rows: 1
-
- * - Column
- - Type
- - Description
- * - ``seq``
- - ``INTEGER``
- - Sequential value starting from **1**.
- * - ``path_seq``
- - ``INTEGER``
- - Relative position in the path.
-
- * **1** For the first row of the path.
- * - ``start_pid``
- - ``BIGINT``
- - Identifier of a starting vertex/point of the path.
-
- * When positive is the identifier of the starting vertex.
- * When negative is the identifier of the starting point.
- * Returned on `Many to One`_ and `Many to Many`_
- * - ``end_pid``
- - ``BIGINT``
- - Identifier of an ending vertex/point of the path.
-
- * When positive is the identifier of the ending vertex.
- * When negative is the identifier of the ending point.
- * Returned on `One to Many`_ and `Many to Many`_
- * - ``node``
- - ``BIGINT``
- - Identifier of the node in the path from ``start_pid`` to ``end_pid``.
-
- * When positive is the identifier of the a vertex.
- * When negative is the identifier of the a point.
- * - ``edge``
- - ``BIGINT``
- - Identifier of the edge used to go from ``node`` to the next node in the
- path sequence.
-
- * **-1** for the last row of the path.
- * - ``cost``
- - ``FLOAT``
- - Cost to traverse from ``node`` using ``edge`` to the next node in the
- path sequence.
-
- * **0** For the first row of the path.
- * - ``agg_cost``
- - ``FLOAT``
- - Aggregate cost from ``start_vid`` to ``node``.
-
- * **0** For the first row of the path.
-
-.. return_withpoint_path_short_end
-
-
-.. rubric:: Used in functions the following:
+Used in functions that return one path solution per departure and destination.
+* :doc:`pgr_aStar`
+* :doc:`pgr_bdAstar`
+* :doc:`pgr_bdDijkstra`
+* :doc:`pgr_bellmanFord`
+* :doc:`pgr_binaryBreadthFirstSearch`
+* :doc:`pgr_dijkstra`
* :doc:`pgr_dijkstraNear`
+* :doc:`pgr_edwardMoore`
+* :doc:`pgr_trsp`
+* :doc:`pgr_trsp_withPoints`
+* :doc:`pgr_withPoints`
.. return_path_complete_start
-Returns ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
+Returns |short-generic-result|
.. list-table::
:width: 81
@@ -1699,84 +1589,24 @@ Returns ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``
.. return_path_complete_end
-Multiple paths
-...............................................................................
-
-Selective for multiple paths.
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-The columns depend on the function call.
-
-.. return_path_start
-
-Set of ``(seq, path_id, path_seq [, start_vid] [, end_vid], node, edge, cost,
-agg_cost)``
-
-.. list-table::
- :width: 81
- :widths: 12 14 60
- :header-rows: 1
-
- * - Column
- - Type
- - Description
- * - ``seq``
- - ``INTEGER``
- - Sequential value starting from **1**.
- * - ``path_id``
- - ``INTEGER``
- - Path identifier.
-
- * Has value **1** for the first of a path from ``start_vid`` to
- ``end_vid``.
- * - ``path_seq``
- - ``INTEGER``
- - Relative position in the path. Has value **1** for the beginning of a
- path.
- * - ``start_vid``
- - ``BIGINT``
- - Identifier of the starting vertex.
- Returned when multiple starting vetrices are in the query.
-
- * `Many to One`_
- * `Many to Many`_
- * `Combinations`_
- * - ``end_vid``
- - ``BIGINT``
- - Identifier of the ending vertex.
- Returned when multiple ending vertices are in the query.
-
- * `One to Many`_
- * `Many to Many`_
- * `Combinations`_
- * - ``node``
- - ``BIGINT``
- - Identifier of the node in the path from ``start_vid`` to ``end_vid``.
- * - ``edge``
- - ``BIGINT``
- - Identifier of the edge used to go from ``node`` to the next node in the
- path sequence. **-1** for the last node of the path.
- * - ``cost``
- - ``FLOAT``
- - Cost to traverse from ``node`` using ``edge`` to the next node in the
- path sequence.
- * - ``agg_cost``
- - ``FLOAT``
- - Aggregate cost from ``start_vid`` to ``node``.
+.. Note::
+ When ``start_vid`` or ``end_vid`` columns have negative values, the identifier is for
+ a Point.
-.. return_path_end
+.. return_path_withPoints_end
-Non selective for multiple paths
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Result columns for multiple paths functions
+...............................................................................
-Regardless of the call, al the columns are returned.
+Used in functions that return many paths solutions per departure and destination.
-* :doc:`pgr_trsp`
+* :doc:`pgr_KSP`
+* :doc:`pgr_withPointsKSP`
+* :doc:`pgr_edgeDisjointPaths`
.. return_path_all_columns_start
-Returns set of ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost,
-agg_cost)``
+Returns set of |generic-result|
.. list-table::
:width: 81
@@ -1822,10 +1652,16 @@ agg_cost)``
.. return_path_all_columns_end
+.. Note::
+ When ``start_vid`` or ``end_vid`` columns have negative values, the identifier is for
+ a Point.
+
+.. return_path_all_columns_withPoints_end
+
Result columns for cost functions
...............................................................................
-.. rubric:: Used in the following
+Used by:
* :doc:`cost-category`
* :doc:`costMatrix-category`
@@ -1866,7 +1702,7 @@ Set of |matrix-result|
Result columns for flow functions
...............................................................................
-.. rubric:: Edges SQL for the following
+Used by:
* :doc:`flow-family`
@@ -1885,7 +1721,71 @@ Result columns for flow functions
Result columns for spanning tree functions
...............................................................................
-.. rubric:: Edges SQL for the following
+Used in functions that return a tree solution per departure.
+
+* :doc:`pgr_breadthFirstSearch`
+* :doc:`pgr_depthFirstSearch`
+* :doc:`pgr_drivingDistance`
+* :doc:`pgr_kruskalBFS`
+* :doc:`pgr_kruskalDD`
+* :doc:`pgr_kruskalDFS`
+* :doc:`pgr_primBFS`
+* :doc:`pgr_primDD`
+* :doc:`pgr_primDFS`
+* :doc:`pgr_withPointsDD`
+
+.. spantree-result-columns-start
+
+Returns set of |result-spantree|
+
+.. list-table::
+ :width: 81
+ :widths: auto
+ :header-rows: 1
+
+ * - Parameter
+ - Type
+ - Description
+ * - ``seq``
+ - ``BIGINT``
+ - Sequential value starting from :math:`1`.
+ * - ``depth``
+ - ``BIGINT``
+ - Depth of the ``node``.
+
+ - :math:`0` when ``node`` = ``start_vid``.
+ - :math:`depth-1` is the depth of ``pred``
+
+ * - ``start_vid``
+ - ``BIGINT``
+ - Identifier of the root vertex.
+ * - ``pred``
+ - ``BIGINT``
+ - Predecessor of ``node``.
+
+ - When ``node`` = ``start_vid`` then has the value ``node``.
+ * - ``node``
+ - ``BIGINT``
+ - Identifier of ``node`` reached using ``edge``.
+ * - ``edge``
+ - ``BIGINT``
+ - Identifier of the ``edge`` used to arrive from ``pred`` to ``node``.
+
+ - :math:`-1` when ``node`` = ``start_vid``.
+
+ * - ``cost``
+ - ``FLOAT``
+ - Cost to traverse ``edge``.
+ * - ``agg_cost``
+ - ``FLOAT``
+ - Aggregate cost from ``start_vid`` to ``node``.
+
+.. spantree-result-columns-end
+
+Result columns for simple spanning tree functions
+...............................................................................
+
+Used by:
* :doc:`pgr_prim`
* :doc:`pgr_kruskal`
@@ -1960,7 +1860,8 @@ How to contribute
Consult the `developer's documentation
`__
-
+See also
+----------------------------------------------------------------------
.. rubric:: Indices and tables
diff --git a/doc/src/pgRouting-installation.rst b/doc/src/pgRouting-installation.rst
index c081da0fc4a..405c5a21404 100644
--- a/doc/src/pgRouting-installation.rst
+++ b/doc/src/pgRouting-installation.rst
@@ -15,20 +15,12 @@ Installation
.. rubric:: Table of Contents
-* :ref:`install-short`
-* :ref:`install_get_sources`
-* :ref:`install_enable_db`
-* :ref:`install_dependencies`
-* :ref:`install_configuring`
-* :ref:`install_build`
-* :ref:`install_testing`
-
Instructions for downloading and installing binaries for different operating
systems, additional notes and corrections not included in this documentation can
be found in `Installation wiki
`__
-To use pgRouting PostGIS needs to be installed, please read the information
+To use pgRouting, PostGIS needs to be installed, please read the information
about installation in this `Install Guide
`__
@@ -40,14 +32,14 @@ Short Version
Extracting the tar ball
-.. parsed-literal::
+.. code-block:: shell
tar xvfz pgrouting-${PROJECT_VERSION}.tar.gz
cd pgrouting-${PROJECT_VERSION}
To compile assuming you have all the dependencies in your search path:
-.. parsed-literal::
+.. code-block:: shell
mkdir build
cd build
@@ -58,15 +50,12 @@ To compile assuming you have all the dependencies in your search path:
Once pgRouting is installed, it needs to be enabled in each individual
database you want to use it in.
-.. parsed-literal::
+.. code-block:: shell
createdb routing
- psql routing -c 'CREATE EXTENSION PostGIS'
- psql routing -c 'CREATE EXTENSION pgRouting'
+ psql routing -c 'CREATE EXTENSION pgRouting CASCADE'
-.. _install_get_sources:
-
Get the sources
-------------------------------------------------------------------------------
@@ -75,7 +64,7 @@ https://github.com/pgRouting/pgrouting/releases/latest
To download this release:
-.. parsed-literal::
+.. code-block:: shell
wget -O pgrouting-${PROJECT_VERSION}.tar.gz \
https://github.com/pgRouting/pgrouting/archive/v${PROJECT_VERSION}.tar.gz
@@ -87,7 +76,7 @@ compiling pgRouting.
To download the repository
-.. parsed-literal::
+.. code-block:: shell
git clone git://github.com/pgRouting/pgrouting.git
cd pgrouting
@@ -98,9 +87,6 @@ Go to :ref:`install-short` for more instructions on compiling pgRouting
GitHub).
-
-.. _install_enable_db:
-
Enabling and upgrading in the database
-------------------------------------------------------------------------------
@@ -110,14 +96,14 @@ pgRouting is a PostgreSQL extension and depends on PostGIS to provide
functionalities to end user. Below given code demonstrates enabling PostGIS and
pgRouting in the database.
-.. parsed-literal::
+.. code-block:: sql
CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;
Checking PostGIS and pgRouting version after enabling them in the database.
-.. parsed-literal::
+.. code-block:: sql
SELECT PostGIS_full_version();
SELECT * FROM pgr_version();
@@ -127,8 +113,6 @@ Checking PostGIS and pgRouting version after enabling them in the database.
To upgrade pgRouting in the database to version ${PROJECT_VERSION} use the
following command:
-.. TODO: pumpup release must change this value
-
.. parsed-literal::
ALTER EXTENSION pgrouting UPDATE TO "${PROJECT_VERSION}";
@@ -137,8 +121,6 @@ More information can be found in
https://www.postgresql.org/docs/current/sql-createextension.html
-.. _install_dependencies:
-
Dependencies
-------------------------------------------------------------------------------
@@ -149,26 +131,22 @@ met:
* C and C++0x compilers
- * Compiling with Boost 1.56 up to Boost 1.74 requires C++ Compiler with
- C++03 or C++11 standard support
- * Compiling with Boost 1.75 requires C++ Compiler with C++14 standard
- support
-
-* Postgresql version = Supported versions by PostgreSQL
-* The Boost Graph Library (BGL). Version >= 1.56
-* CMake >= 3.2
+ * Compiling with Boost 1.56 up to Boost 1.74 requires C++ Compiler with
+ C++03 or C++11 standard support
+ * Compiling with Boost 1.75 requires C++ Compiler with C++14 standard
+ support
-
-.. rubric:: optional dependencies
+* Postgresql version >= ${POSTGRESQL_MINIMUM_VERSION}
+* The Boost Graph Library (BGL) >= ${BOOST_MINIMUM_VERSION}
+* CMake >= ${CMAKE_MINIMUM_REQUIRED_VERSION}
For user's documentation
-* Sphinx >= 1.1
-* Latex
+* Sphinx >= ${SPHINX_MINIMUM_VERSION}
For developer's documentation
-* Doxygen >= 1.7
+* Doxygen >= ${DOXYGEN_MINIMUM_VERSION}
For testing
@@ -177,170 +155,72 @@ For testing
For using:
-* PostGIS version >= 2.2
+* PostGIS version >= ${POSTGIS_MINIMUM_VERSION}
.. rubric:: Example: Installing dependencies on linux
Installing the compilation dependencies
-.. rubric:: Database dependencies
-
-.. parsed-literal::
-
- sudo apt install postgresql-15
- sudo apt install postgresql-server-dev-15
- sudo apt install postgresql-15-postgis
-
-.. rubric:: Configuring PostgreSQL
-
-Entering psql console
-
-.. parsed-literal::
-
- sudo systemctl start postgresql.service
- sudo -i -u postgres
- psql
-
-To exit psql console
-
-.. parsed-literal::
-
- \q
-
-Entering psql console directly without switching roles can be done by the
-following commands
-
-.. parsed-literal::
-
- sudo -u postgres psql
-
-Then use the above given method to exit out of the psql console
-
-Checking PostgreSQL version
-
-.. parsed-literal::
-
- psql --version
-
-or
-
-Enter the psql console using above given method and then enter
-
-.. parsed-literal::
-
- SELECT VERSION();
-
-Creating PostgreSQL role
-
-.. parsed-literal::
-
- sudo -i -u postgres
- createuser --interactive
-
-or
-
-.. parsed-literal::
-
- sudo -u postgres createuser --interactive
-
-Default role provided by PostgreSQL is postgres. To create new roles you
-can use the above provided commands. The prompt will ask the user to type
-name of the role and then provide affirmation. Proceed with the steps and
-you will succeed in creating PostgreSQL role successfully.
-
-To add password to the role or change previously created password of the
-role use the following commands
-
-.. parsed-literal::
-
- ALTER USER PASSWORD
-
-To get additional details on the flags associated with ``createuser`` below
-given command can be used
-
-.. parsed-literal::
-
- man createuser
-
-Creating Database in PostgreSQL
-
-.. parsed-literal::
-
- sudo -i -u postgres
- createdb
-
-or
-
-.. parsed-literal::
-
- sudo -u postgres createdb
-
-Connecting to a PostgreSQL Database
-
-Enter the psql console and type the following commands
-
-.. parsed-literal::
-
- \connect
-
.. rubric:: Build dependencies
-.. parsed-literal::
+.. code-block:: bash
- sudo apt install cmake
- sudo apt install g++
- sudo apt install libboost-graph-dev
+ sudo apt install \
+ build-essential \
+ libboost-graph-dev \
+ postgresql-${POSTGRESQL_MINIMUM_VERSION} \
+ postgresql-server-dev-${POSTGRESQL_MINIMUM_VERSION} \
+ postgresql-${POSTGRESQL_MINIMUM_VERSION}-postgis
.. rubric:: Optional dependencies
-For documentation and testing
+For documentation
-.. parsed-literal::
+.. code-block:: bash
- pip install sphinx
- pip install sphinx-bootstrap-theme
- sudo apt install texlive
- sudo apt install doxygen
- sudo apt install libtap-parser-sourcehandler-pgtap-perl
- sudo apt install postgresql-15-pgtap
+ sudo apt-get install -y \
+ python3-sphinx \
+ python3-sphinx-bootstrap-theme \
+ texlive \
+ doxygen
+For testing
-.. _install_configuring:
+.. code-block:: bash
+
+ sudo apt install \
+ libtap-parser-sourcehandler-pgtap-perl
+ postgresql-${POSTGRESQL_MINIMUM_VERSION}-pgtap
Configuring
-------------------------------------------------------------------------------
pgRouting uses the `cmake` system to do the configuration.
-The build directory is different from the source directory
-
-Create the build directory
-
-.. parsed-literal::
-
- $ mkdir build
-
Configurable variables
...............................................................................
.. rubric:: To see the variables that can be configured
-.. parsed-literal::
+.. code-block:: bash
- $ cd build
- $ cmake -L ..
+ mkdir build
+ cd build
+ cmake -L ..
+The build directory is different from the source directory
.. rubric:: Configuring The Documentation
+User and developers documentation are not build if prerequisites are not found.
+
Most of the effort of the documentation has been on the HTML files.
Some variables for building documentation:
================== ========= ============================
Variable Default Comment
================== ========= ============================
-WITH_DOC BOOL=OFF Turn on/off building the documentation
BUILD_HTML BOOL=ON If ON, turn on/off building HTML for user's
documentation
BUILD_DOXY BOOL=ON If ON, turn on/off building HTML for developer's
@@ -349,55 +229,34 @@ BUILD_LATEX BOOL=OFF If ON, turn on/off building PDF
BUILD_MAN BOOL=OFF If ON, turn on/off building MAN pages
DOC_USE_BOOTSTRAP BOOL=OFF If ON, use sphinx-bootstrap for HTML pages of the
users documentation
+EN BOOL=ON if OFF the English documentation will no be built
+ES BOOL=ON if OFF the Spanish documentation will no be built
+SV BOOL=ON if OFF the Swedish documentation will no be built
+ZH_HANS BOOL=ON if OFF the Chinese simplified documentation will no
+ be built
================== ========= ============================
-Configuring cmake to create documentation before building
-pgRouting
-
-.. parsed-literal::
-
- $ cmake -DWITH_DOC=ON -DDOC_USE_BOOTSTRAP=ON ..
-
-.. note:: Most of the effort of the documentation has been on the html files.
-
-
-.. _install_build:
-
Building
-------------------------------------------------------------------------------
Using ``make`` to build the code and the documentation
-The following instructions start from *path/to/pgrouting/build*
+The following instructions start from ``path/to/pgrouting/build``
.. parsed-literal::
- $ make # build the code but not the documentation
+ $ make # default build
$ make doc # build only the user's documentation
- $ make all doc # build both the code and the user's documentation
$ make doxy # build only the developer's documentation
+ $ make all # build both the code and the user's documentation
We have tested on several platforms, For installing or reinstalling all the
steps are needed.
-.. warning::
- The sql signatures are configured and build in the ``cmake`` command.
-
-.. rubric:: MinGW on Windows
-
-.. parsed-literal::
-
- $ mkdir build
- $ cd build
- $ cmake -G"MSYS Makefiles" ..
- $ make
- $ make install
-
-
.. rubric:: Linux
-The following instructions start from *path/to/pgrouting*
+The following instructions start from ``path/to/pgrouting``
.. parsed-literal::
@@ -407,25 +266,14 @@ The following instructions start from *path/to/pgrouting*
make
sudo make install
-To remove the build when the configuration changes, use the following
-code:
-
-.. parsed-literal::
-
- rm -rf build
-
-and start the build process as mentioned previously.
-
-.. _install_testing:
-
Testing
-------------------------------------------------------------------------------
Currently there is no :code:`make test` and testing is done as follows
-The following instructions start from *path/to/pgrouting/*
+The following instructions start from ``path/to/pgrouting``
-.. parsed-literal::
+.. code-block:: bash
tools/testers/doc_queries_generator.pl
createdb -U ___pgr___test___
@@ -439,5 +287,3 @@ See Also
* :ref:`genindex`
* :ref:`search`
-
-
diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst
index e9e2a54d54e..e2f965584dc 100644
--- a/doc/src/pgRouting-introduction.rst
+++ b/doc/src/pgRouting-introduction.rst
@@ -63,11 +63,13 @@ Contributors
This Release Contributors
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-Individuals in this release v3.8.x (in alphabetical order)
+Individuals in this release v4.0.0 (in alphabetical order)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Aurélie Bousquet,
+Bipasha Gayary,
+Fan Wu,
Regina Obe,
+Saloni kumari,
Vicky Vergara
@@ -78,7 +80,18 @@ pgRouting, pgRoutingLayer, workshop.
Translators (in alphabetical order)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Dapeng Wang
+Chinese:
+
+- Dapeng Wang
+
+Spanish:
+
+- Vicky Vergara
+
+Swedish:
+
+- Daniel Nylander
+
Corporate Sponsors in this release (in alphabetical order)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -110,6 +123,7 @@ Aryan Gupta,
Ashraf Hossain,
Ashish Kumar,
Aurélie Bousquet,
+Bipasha Gayary,
Cayetano Benavent,
Christian Gonzalez,
Daniel Kastl,
@@ -119,6 +133,7 @@ David Techer,
Denis Rykov,
Ema Miyawaki,
Esteban Zimanyi,
+Fan Wu,
Florian Thurkow,
Frederic Junod,
Gerald Fenoy,
@@ -145,6 +160,7 @@ Rajat Shinde,
Razequl Islam,
Regina Obe,
Rohith Reddy,
+Saloni Kumari,
Sarthak Agarwal,
Shobhit Chaurasia,
Sourabh Garg,
diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst
index f790b882839..69b58bf4be1 100644
--- a/doc/src/proposed.rst
+++ b/doc/src/proposed.rst
@@ -15,17 +15,14 @@ Proposed Functions
.. warning-begin
-.. collapse:: Proposed
+.. admonition:: Proposed
.. warning:: Proposed functions for next mayor release.
- They are not officially in the current release.
- - They will likely officially be part of the next mayor release:
- - The functions make use of ANY-INTEGER and ANY-NUMERICAL
- - Name might not change. (But still can)
- - Signature might not change. (But still can)
- - Functionality might not change. (But still can)
+ - Code has been reviewed therefore is not experimental.
+ - Name, signature and functionality might not change.
- pgTap tests have being done. But might need more.
- Documentation might need refinement.
@@ -33,29 +30,6 @@ Proposed Functions
.. rubric:: Families
-:doc:`dijkstra-family`
-
-.. include:: dijkstra-family.rst
- :start-after: proposed-start
- :end-before: proposed-end
-
-:doc:`withPoints-family`
-
-.. include:: withPoints-family.rst
- :start-after: proposed-start
- :end-before: proposed-end
-
-:doc:`TRSP-family`
-
-.. include:: TRSP-family.rst
- :start-after: proposed-start
- :end-before: proposed-end
-
-.. toctree::
- :hidden:
-
- TRSP-family
-
:doc:`transformation-family`
.. include:: transformation-family.rst
@@ -77,14 +51,8 @@ Proposed Functions
:doc:`traversal-family`
.. include:: traversal-family.rst
- :start-after: official-start
- :end-before: official-end
-
-.. toctree::
- :hidden:
-
- traversal-family
- coloring-family
+ :start-after: proposed-start
+ :end-before: proposed-end
.. rubric:: categories
@@ -94,44 +62,6 @@ Proposed Functions
:start-after: proposed-start
:end-before: proposed-end
-:doc:`costMatrix-category`
-
-.. include:: costMatrix-category.rst
- :start-after: proposed-start
- :end-before: proposed-end
-
-:doc:`drivingDistance-category`
-
-.. include:: drivingDistance-category.rst
- :start-after: proposed-start
- :end-before: proposed-end
-
-:doc:`KSP-category`
-
-.. include:: KSP-category.rst
- :start-after: proposed-start
- :end-before: proposed-end
-
-:doc:`via-category`
-
-.. include:: via-category.rst
- :start-after: proposed start
- :end-before: proposed end
-
-:doc:`withPoints-category`
-
-.. include:: withPoints-category.rst
- :start-after: proposed start
- :end-before: proposed end
-
-.. toctree::
- :hidden:
-
- withPoints-family
- KSP-category
- via-category
- withPoints-category
-
See Also
-------------------------------------------------------------------------------
diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst
index c06965bea52..3c6028caad9 100644
--- a/doc/src/release_notes.rst
+++ b/doc/src/release_notes.rst
@@ -20,6 +20,618 @@ To see the full list of changes check the list of `Git commits
:local:
:depth: 1
+pgRouting 4
+*******************************************************************************
+
+.. contents:: Minors 4.x
+ :local:
+ :depth: 1
+
+pgRouting 4.0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+.. contents:: Contents
+ :local:
+ :depth: 1
+
+.. current
+
+pgRouting 4.0.0-alpha1 Release Notes
+-------------------------------------------------------------------------------
+
+To see all issues & pull requests closed by this release see the
+:milestone:`4.0.0`
+
+.. contents:: Contents
+ :local:
+ :depth: 1
+
+Build
+...............................................................................
+
+* C++ standard is std17
+
+ * Using this standard, all supported toolchains across our CI matrix will work.
+ * The code is not yet modified to use std17:
+
+ * If needed: ``-DCMAKE_CXX_STANDARD=14`` to lower the standard.
+
+* The user's documentation is built by default.
+* The doxygen documentation is built by default.
+
+For developers:
+
+* Set `-DUSE_CLANG_TIDY=ON` for clang tidy checks.
+* Tidy checks are done on CI.
+
+Documentation build
+...............................................................................
+
+* The doxygen documentation is built by default
+* The HTML documentation is built by default
+* The translated languages (en, es, sv, zh_Hans) HTML documentation are built by
+ default
+* `WITH-DOC` is not used anymore
+
+User Documentation is not built when
+
+* Sphinx is not found
+* When all Sphinx formats are OFF
+
+ * To not build HTML default format: `-DBUILD_HTML=OFF`
+
+* When all languages are OFF
+
+ * To build only English: `-DES=OFF -DSV=OFF -DZH_HANS=OFF`
+
+* Documentation output location: ``build/doc/_build/``
+
+ * For example: for HTML output is on `build/doc/_build/html` directory
+
+Developers' Documentation is not built when
+
+* Doxygen is not found
+* To not build Doxygen documentation: `-DBUILD_DOXY=OFF`
+
+Summary of changes by function
+...............................................................................
+
+* pgr_aStar
+
+ .. include:: pgr_aStar.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_aStarCost
+
+ .. include:: pgr_aStarCost.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_bandwidth
+
+ .. include:: pgr_bandwidth.rst
+ :start-after: Version 4.0.0
+ :end-before: Description
+
+* pgr_bdAstar
+
+ .. include:: pgr_bdAstar.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_bdAstarCost
+
+ .. include:: pgr_bdAstarCost.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_bdDijkstra
+
+ .. include:: pgr_bdDijkstra.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_bdDijkstraCost
+
+ .. include:: pgr_bdDijkstraCost.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_bellmanFord
+
+ .. include:: pgr_bellmanFord.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_binaryBreadthFirstSearch
+
+ .. include:: pgr_binaryBreadthFirstSearch.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_bipartite
+
+ .. include:: pgr_bipartite.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_boykovKolmogorov
+
+ .. include:: pgr_boykovKolmogorov.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_breadthFirstSearch
+
+ .. include:: pgr_breadthFirstSearch.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_contraction
+
+ .. include:: pgr_contraction.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_dagShortestPath
+
+ .. include:: pgr_dagShortestPath.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_depthFirstSearch
+
+ .. include:: pgr_depthFirstSearch.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_dijkstra
+
+ .. include:: pgr_dijkstra.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_dijkstraCost
+
+ .. include:: pgr_dijkstraCost.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_edgeColoring
+
+ .. include:: pgr_edgeColoring.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_edgeDisjointPaths
+
+ .. include:: pgr_edgeDisjointPaths.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_edmondsKarp
+
+ .. include:: pgr_edmondsKarp.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_edwardMoore
+
+ .. include:: pgr_edwardMoore.rst
+ :start-after: Version 4.0.0
+ :end-before: Description
+
+* pgr_kingOrdering
+
+ .. include:: pgr_kingOrdering.rst
+ :start-after: Version 4.0.0
+ :end-before: Description
+
+* pgr_KSP
+
+ .. include:: pgr_KSP.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_maxFlow
+
+ .. include:: pgr_maxFlow.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_pushRelabel
+
+ .. include:: pgr_pushRelabel.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_sloanOrdering
+
+ .. include:: pgr_sloanOrdering.rst
+ :start-after: Version 4.0.0
+ :end-before: Description
+
+* pgr_sequentialVertexColoring
+
+ .. include:: pgr_sequentialVertexColoring.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_topologicalSort
+
+ .. include:: pgr_topologicalSort.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_transitiveClosure
+
+ .. include:: pgr_transitiveClosure.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_trsp
+
+ .. include:: pgr_trsp.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_trspVia
+
+ .. include:: pgr_trspVia.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_trspVia_withPoints
+
+ .. include:: pgr_trspVia_withPoints.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_trsp_withPoints
+
+ .. include:: pgr_trsp_withPoints.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_turnRestrictedPath
+
+ .. include:: pgr_turnRestrictedPath.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_withPoints
+
+ .. include:: pgr_withPoints.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_withPointsCost
+
+ .. include:: pgr_withPointsCost.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_withPointsCostMatrix
+
+ .. include:: pgr_withPointsCostMatrix.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_withPointsDD
+
+ .. include:: pgr_withPointsDD.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_withPointsKSP
+
+ .. include:: pgr_withPointsKSP.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+* pgr_withPointsVia
+
+ .. include:: pgr_withPointsVia.rst
+ :start-after: Version 4.0.0
+ :end-before: .. rubric
+
+Functions promoted to official
+...............................................................................
+
+* :issue:`2701`: pgr_trsp
+* :issue:`2701`: pgr_trspVia
+* :issue:`2701`: pgr_trspVia_withPoints
+* :issue:`2701`: pgr_trsp_withPoints
+* :issue:`2700`: pgr_withPoints
+* :issue:`2700`: pgr_withPointsCost
+* :issue:`2700`: pgr_withPointsCostMatrix
+* :issue:`2700`: pgr_withPointsDD
+* :issue:`2700`: pgr_withPointsKSP
+* :issue:`2700`: pgr_withPointsVia
+
+Signatures promoted to official
+...............................................................................
+
+* :issue:`2718`: pgr_aStar(Combinations)
+* :issue:`2718`: pgr_aStarCost(Combinations)
+* :issue:`2718`: pgr_bdAstar(Combinations)
+* :issue:`2718`: pgr_bdAstarCost(Combinations)
+* :issue:`2718`: pgr_bdDijkstra(Combinations)
+* :issue:`2718`: pgr_bdDijkstraCost(Combinations)
+* :issue:`2718`: pgr_dijkstra(Combinations)
+* :issue:`2718`: pgr_dijkstraCost(Combinations)
+* :issue:`2718`: pgr_KSP(All signatures)
+* :issue:`2718`: pgr_boykovKolmogorov(Combinations)
+* :issue:`2718`: pgr_edmondsKarp(Combinations)
+* :issue:`2718`: pgr_maxFlow(Combinations)
+* :issue:`2718`: pgr_pushRelabel(Combinations)
+
+New experimental functions.
+...............................................................................
+
+* Metrics
+
+ * :issue:`2951`: pgr_bandwidth
+
+* Ordering
+
+ * :issue:`2954`: pgr_kingOrdering
+ * :issue:`2955`: pgr_sloanOrdering
+
+SQL signatures and output standardization
+...............................................................................
+
+:issue:`2904`: Standardize output columns of functions with different output
+ columns within overloads
+
+.. rubric:: Standardized to |short-generic-result|
+
+* :issue:`2905`: pgr_withPoints
+* :issue:`2906`: pgr_bdDijkstra
+* :issue:`2907`: pgr_bellmanFord
+* :issue:`2908`: pgr_binaryBreadthFirstSearch
+* :issue:`2910`: pgr_edwardMoore
+* :issue:`2913`: pgr_dagShortestPath
+
+.. rubric:: Standardized to |matrix-result|
+
+* :issue:`2905`: pgr_withPointsCost
+* :issue:`2905`: pgr_withPointsCostMatrix
+
+.. rubric:: Standardized to |generic-result|
+
+* :issue:`2909`: pgr_edgeDisjointPaths
+* :issue:`2909`: pgr_turnRestrictedPath
+
+.. rubric:: Standardized to |result_edge_color|
+
+* :issue:`2924`: pgr_edgeColoring
+
+.. rubric:: Standardized to |result_node_color|
+
+* :issue:`2924`: pgr_bipartite
+* :issue:`2927`: pgr_sequentialVertexColoring
+
+.. rubric:: Standardized to |result-spantree|
+
+* :issue:`2931`: pgr_breadthFirstSearch
+* :issue:`2931`: pgr_depthFirstSearch
+
+.. rubric:: Standardized to |result_node_order|
+
+* :issue:`2934`: pgr_topologicalSort
+
+.. rubric:: Standardized to |result-closure|
+
+* :issue:`2934`: pgr_transitiveClosure
+
+Removal of SQL deprecated signatures
+...............................................................................
+
+* :issue:`2798`: pgr_contraction
+
+ .. include:: pgr_contraction.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2683`: pgr_trsp
+
+ .. include:: pgr_trsp.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2683`: pgr_trspVia
+
+ .. include:: pgr_trspVia.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2700`: pgr_withPointsVia
+
+ .. include:: pgr_withPointsVia.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2888`: pgr_findCloseEdges
+
+ * pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean)
+ * pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean)
+
+* :issue:`2890`: pgr_withPointsDD
+
+ .. include:: pgr_withPointsDD.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2895`: pgr_withPointsKSP
+
+ .. include:: pgr_withPointsKSP.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2899`: pgr_maxCardinalityMatch
+
+ .. include:: pgr_maxCardinalityMatch.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2901`: pgr_TSP
+
+ .. include:: pgr_TSP.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+* :issue:`2901`: pgr_TSPeuclidean
+
+ .. include:: pgr_TSPeuclidean.rst
+ :start-after: Breaking change
+ :end-before: .. rubric
+
+
+Removal of SQL deprecated functions
+...............................................................................
+
+* :issue:`2681`: pgr_trspViaedges
+* :issue:`2682`: pgr_trspViaVertices
+* :issue:`2748`: pgr_alphaShape
+* :issue:`2751`: pgr_createTopology
+* :issue:`2752`: pgr_analyzeGraph
+* :issue:`2755`: pgr_analyzeOneWay
+* :issue:`2827`: pgr_createVerticesTable
+* :issue:`2886`: pgr_nodeNetwork
+
+Removal of SQL deprecated internal functions
+...............................................................................
+
+* :issue:`2748` _pgr_alphaShape(text,double precision)
+* :issue:`2861` _pgr_checkVertTab(text,text[],integer,text)
+* :issue:`2861` _pgr_createIndex(text,text,text,integer,text)
+* :issue:`2861` _pgr_createIndex(text,text,text,text,integer,text)
+* :issue:`2913` _pgr_dagShortestPath(text,anyarray,anyarray,boolean,boolean)
+* :issue:`2913` _pgr_dagShortestPath(text,text,boolean,boolean)
+* :issue:`2730` _pgr_dijkstraNear(text,anyarray,anyarray,bigint,boolean)
+* :issue:`2730` _pgr_dijkstraNear(text,anyarray,bigint,bigint,boolean)
+* :issue:`2730` _pgr_dijkstraNear(text,bigint,anyarray,bigint,boolean)
+* :issue:`2730` _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean,boolean,bigint)
+* :issue:`2730` _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean,boolean,bigint,boolean)
+* :issue:`2730` _pgr_dijkstra(text,text,boolean,boolean,bigint,boolean)
+* :issue:`2730` _pgr_dijkstra(text,text,boolean,boolean,boolean)
+* :issue:`2735` _pgr_drivingDistance(text,anyarray,double precision,boolean,boolean)
+* :issue:`2861` _pgr_endPoint(geometry)
+* :issue:`2861` __pgr_getColumnName(text,text,integer,text)
+* :issue:`2861` __pgr_getColumnName(text,text,text,integer,text)
+* :issue:`2861` __pgr_getColumnType(text,text,integer,text)
+* :issue:`2861` __pgr_getColumnType(text,text,text,integer,text)
+* :issue:`2861` __pgr_getTableName(text,integer,text)
+* :issue:`2861` _pgr_isColumnIndexed(text,text,integer,text)
+* :issue:`2861` _pgr_isColumnIndexed(text,text,text,integer,text)
+* :issue:`2861` _pgr_isColumnIntable(text,text)
+* :issue:`2745` _pgr_kruskal(text,anyarray,text,bigint,double precision)
+* :issue:`2897` _pgr_ksp(text,anyarray,anyarray,integer,boolean,boolean,boolean)
+* :issue:`2897` _pgr_ksp(text,bigint,bigint,integer,boolean,boolean)
+* :issue:`2897` _pgr_ksp(text,text,integer,boolean,boolean)
+* :issue:`2899` _pgr_maxCardinalityMatch(text,boolean)
+* :issue:`2861` _pgr_msg(integer,text,text)
+* :issue:`2861` _pgr_onerror(boolean,integer,text,text,text,text)
+* :issue:`2861` _pgr_pointtoid(geometry,double precision,text,integer)
+* :issue:`2743` _pgr_prim(text,anyarray,text,bigint,double precision)
+* :issue:`2861` _pgr_quote_ident(text)
+* :issue:`2861` _pgr_startPoint(geometry)
+* :issue:`2683` _pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
+* :issue:`2683` _pgr_trsp(text,text,anyarray,anyarray,boolean)
+* :issue:`2683` _pgr_trsp(text,text,anyarray,bigint,boolean)
+* :issue:`2683` _pgr_trsp(text,text,bigint,anyarray,boolean)
+* :issue:`2683` _pgr_trsp(text,text,bigint,bigint,boolean)
+* :issue:`2682` _pgr_trspViaVertices(text,integer[],boolean,boolean,text)
+* :issue:`2919` _pgr_trspVia_withPoints(text,text,text,anyarray,boolean,boolean,boolean,character,boolean)
+* :issue:`2919` _pgr_trsp_withPoints(text,text,text,anyarray,anyarray,boolean,character,boolean)
+* :issue:`2919` _pgr_trsp_withPoints(text,text,text,text,boolean,character,boolean)
+* :issue:`2901` _pgr_tspEuclidean(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* :issue:`2901` _pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* :issue:`2861` _pgr_versionLess(text,text)
+* :issue:`2890` _pgr_withPointsDD(text,text,anyarray,double precision,boolean,character,boolean,boolean)
+* :issue:`2895` _pgr_withPointsKSP(text,text,anyarray,anyarray,integer,character,boolean,boolean,boolean,boolean)
+* :issue:`2895` _pgr_withPointsKSP(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
+* :issue:`2895` _pgr_withPointsKSP(text,text,text,integer,character,boolean,boolean,boolean)
+* :issue:`2741` _pgr_withPointsVia(text,bigint[],double precision[],boolean)
+* :issue:`2741` _pgr_withPointsVia(text,text,anyarray,boolean,boolean,boolean,character,boolean)
+* :issue:`2683` _trsp(text,text,anyarray,anyarray,boolean)
+* :issue:`2683` _v4trsp(text,text,anyarray,anyarray,boolean)
+* :issue:`2683` _v4trsp(text,text,text,boolean)
+
+Summary of functions and signatures no longer on pgrouting
+...............................................................................
+
+* :issue:`2748` pgr_alphashape(geometry,double precision)
+* :issue:`2752` pgr_analyzegraph(text,double precision,text,text,text,text,text)
+* :issue:`2755` pgr_analyzeoneway(text,text[],text[],text[],text[],boolean,text,text,text)
+* :issue:`2798` pgr_contraction(text,bigint[],integer,bigint[],boolean)
+* :issue:`2751` pgr_createtopology(text,double precision,text,text,text,text,text,boolean)
+* :issue:`2827` pgr_createverticestable(text,text,text,text,text)
+* :issue:`2888` pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean)
+* :issue:`2888` pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean)
+* :issue:`2899` pgr_maxCardinalityMatch(text,boolean)
+* :issue:`2886` pgr_nodenetwork(text,double precision,text,text,text,text,boolean)
+* :issue:`2683` pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
+* :issue:`2683` pgr_trsp(text,integer,integer,boolean,boolean,text)
+* :issue:`2681` pgr_trspViaedges(text,integer[],double precision[],boolean,boolean,text)
+* :issue:`2682` pgr_trspViaVertices(text,anyarray,boolean,boolean,text)
+* :issue:`2919` pgr_trspVia_withPoints(text,text,text,anyarray,boolean,boolean,boolean,character,boolean)
+* :issue:`2919` pgr_trsp_withPoints(text,text,text,anyarray,anyarray,boolean,character,boolean)
+* :issue:`2919` pgr_trsp_withPoints(text,text,text,anyarray,bigint,boolean,character,boolean)
+* :issue:`2919` pgr_trsp_withPoints(text,text,text,bigint,anyarray,boolean,character,boolean)
+* :issue:`2919` pgr_trsp_withPoints(text,text,text,bigint,bigint,boolean,character,boolean)
+* :issue:`2919` pgr_trsp_withPoints(text,text,text,text,boolean,character,boolean)
+* :issue:`2901` pgr_tspEuclidean(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* :issue:`2901` pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+* :issue:`2919` pgr_withPointsCostMatrix(text,text,anyarray,boolean,character)
+* :issue:`2919` pgr_withPointsCost(text,text,anyarray,anyarray,boolean,character)
+* :issue:`2919` pgr_withPointsCost(text,text,anyarray,bigint,boolean,character)
+* :issue:`2919` pgr_withPointsCost(text,text,bigint,anyarray,boolean,character)
+* :issue:`2919` pgr_withPointsCost(text,text,bigint,bigint,boolean,character)
+* :issue:`2919` pgr_withPointsCost(text,text,text,boolean,character)
+* :issue:`2890` pgr_withPointsDD(text,text,anyarray,double precision,boolean,character,boolean,boolean)
+* :issue:`2890` pgr_withPointsDD(text,text,bigint,double precision,boolean,character,boolean)
+* :issue:`2895` pgr_withPointsKSP(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
+* :issue:`2919` pgr_withPoints(text,text,anyarray,anyarray,boolean,character,boolean)
+* :issue:`2919` pgr_withPoints(text,text,anyarray,bigint,boolean,character,boolean)
+* :issue:`2919` pgr_withPoints(text,text,bigint,anyarray,boolean,character,boolean)
+* :issue:`2919` pgr_withPoints(text,text,bigint,bigint,boolean,character,boolean)
+* :issue:`2919` pgr_withPoints(text,text,text,boolean,character,boolean)
+* :issue:`2919` pgr_withPointsVia(text,text,anyarray,boolean,boolean,boolean,character,boolean)
+
+Code enhancements
+...............................................................................
+
+* Removal of unused C/C++ code
+* Refactor the Script to build the update PostgreSQL file.
+* One process & driver for:
+
+ * allpairs: johnson and Floyd-Warshall
+ * Shortest path: Dijkstra and withPoints using Dijkstra
+
+.. rubric:: Deprecation of internal C/C++ functions
+
+Deprecated functions are substituted by new function.
+
+* _pgr_drivingDistance => _pgr_drivingDistancev4
+* _pgr_withPointsDD => _pgr_withPointsddv4
+* _pgr_kruskal => _pgr_kruskalv4
+* _pgr_prim => _pgr_primv4
+* _pgr_dijkstra => _pgr_dijkstra_v4
+* _pgr_withPointsKSP => _pgr_withPointsKSP_v4
+* _pgr_trspVia_withPoints => _pgr_trspVia_withPoints_v4
+* _pgr_trsp_withPoints => _pgr_trsp_withPoints_v4
+* _pgr_withPointsVia => _pgr_withPointsvia_v4
+
+.. rubric:: Internal C/C++ functions in legacy
+
+* :issue:`2683` _trsp
+* :issue:`2683` _v4trsp
+* :issue:`2748` _pgr_alphaShape
+* :issue:`2913` _pgr_dagShortestPath
+
pgRouting 3
*******************************************************************************
@@ -34,21 +646,17 @@ pgRouting 3.8
:local:
:depth: 1
-.. current
-
pgRouting 3.8.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.8.0
-`__
+To see all issues & pull requests closed by this release see the
+:milestone:`3.8.0`
.. rubric:: Promotion to official function of pgRouting.
.. rubric:: Metric
-* `#2760 `__:
- Promoted to official pgr_degree in version 3.8
+* :issue:`2760`: Promoted to official pgr_degree in version 3.8
.. include:: pgr_degree.rst
:start-after: Version 3.8.0
@@ -56,29 +664,25 @@ milestone for 3.8.0
.. rubric:: Utilities
-* `#2772 `__:
- Promoted to official pgr_extractVertices in version 3.8
+* :issue:`2772`: Promoted to official pgr_extractVertices in version 3.8
.. include:: pgr_extractVertices.rst
:start-after: Version 3.8.0
:end-before: .. rubric
-* `#2774 `__:
- Promoted to official pgr_findCloseEdges in version 3.8
+* :issue:`2774`: Promoted to official pgr_findCloseEdges in version 3.8
.. include:: pgr_findCloseEdges.rst
:start-after: Version 3.8.0
:end-before: .. rubric
-* `#2873 `__:
- Promoted to official pgr_separateCrossing in version 3.8
+* :issue:`2873`: Promoted to official pgr_separateCrossing in version 3.8
.. include:: pgr_separateCrossing.rst
:start-after: Version 3.8.0
:end-before: Description
-* `#2874 `__:
- Promoted to official pgr_separateTouching in version 3.8
+* :issue:`2874`: Promoted to official pgr_separateTouching in version 3.8
.. include:: pgr_separateTouching.rst
:start-after: Version 3.8.0
@@ -88,24 +692,18 @@ milestone for 3.8.0
.. rubric:: Contraction
-* `#2790 `__:
- pgr_contractionDeadEnd new contraction function
-* `#2791 `__:
- pgr_contractionLinear new contraction function
-* `#2536 `__:
- Support for contraction hierarchies (pgr_contractionHierarchies)
+* :issue:`2790`: pgr_contractionDeadEnd new contraction function
+* :issue:`2791`: pgr_contractionLinear new contraction function
+* :issue:`2536`: Support for contraction hierarchies (pgr_contractionHierarchies)
.. rubric:: Utilities
-* `#2848 `__:
- Create pgr_separateCrossing new utility function
-* `#2849 `__:
- Create of pgr_separateTouching new utility function
+* :issue:`2848`: Create pgr_separateCrossing new utility function
+* :issue:`2849`: Create of pgr_separateTouching new utility function
.. rubric:: Official functions changes
-* `#2786 `__:
- pgr_contraction(edges) new signature
+* :issue:`2786`: pgr_contraction(edges) new signature
.. include:: pgr_contraction.rst
:start-after: Version 3.8.0
@@ -113,30 +711,22 @@ milestone for 3.8.0
.. rubric:: C/C++ code enhancements
-* `#2802 `__:
- Code reorganization on pgr_contraction
+* :issue:`2802`: Code reorganization on pgr_contraction
* Other enhancements:
- `#2869 `__
+
+ * :issue:`2869`:
.. rubric:: SQL code enhancements
-* `#2850 `__:
- Rewrite pgr_nodeNetwork
+* :issue:`2850`: Rewrite pgr_nodeNetwork
.. rubric:: Deprecation of SQL functions
-* `#2749 `__:
- Deprecate pgr_AlphaShape in 3.8
-* `#2750 `__:
- Deprecate pgr_CreateTopology in 3.8
-* `#2753 `__:
- Deprecate pgr_analyzeGraph in 3.8
-* `#2754 `__:
- Deprecate pgr_analyzeOneWay in 3.8
-* `#2826 `__:
- Deprecate pgr_createVerticesTable in 3.8
-* `#2847 `__:
- Deprecate pgr_nodeNetwork in 3.8
+* :issue:`2749`: Deprecate pgr_AlphaShape in 3.8
+* :issue:`2750`: Deprecate pgr_CreateTopology in 3.8
+* :issue:`2753`: Deprecate pgr_analyzeGraph in 3.8
+* :issue:`2754`: Deprecate pgr_analyzeOneWay in 3.8
+* :issue:`2826`: Deprecate pgr_createVerticesTable in 3.8
In the deprecated functions:
@@ -153,22 +743,20 @@ pgRouting 3.7
pgRouting 3.7.3 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.7.3
-`__
+To see all issues & pull requests closed by this release see the
+:milestone:`3.7.3`
-* `#2731 `__ Build Failure on Ubuntu 22
+* :issue:`2731`: Build Failure on Ubuntu 22
pgRouting 3.7.2 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.7.2
-`__
+To see all issues & pull requests closed by this release see the
+:milestone:`3.7.2`
.. rubric:: Build
-* `#2713 `__ cmake missing
+* :issue:`2713`: cmake missing
some policies and min version
- Using OLD policies: CMP0148, CMP0144, CMP0167
@@ -176,24 +764,20 @@ milestone for 3.7.2
.. rubric:: Bug fixes
-* `#2707 `__ Build failure in
- pgRouting 3.7.1 on Alpine
-* `#2706 `__ winnie crashing
- on pgr_betweennessCentrality
+* :issue:`2707`: Build failure in pgRouting 3.7.1 on Alpine
+* :issue:`2706`: winnie crashing on pgr_betweennessCentrality
pgRouting 3.7.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.7.1
-`__
+To see all issues & pull requests closed by this release see the
+:milestone:`3.7.1`
.. rubric:: Bug fixes
-* `#2680 `__ fails to compile
- under mingw64 gcc 13.2
-* `#2689 `__ When point is a
- vertex, the withPoints family do not return results.
+* :issue:`2680`: fails to compile under mingw64 gcc 13.2
+* :issue:`2689`: When point is a vertex, the withPoints family do not return
+ results.
.. rubric:: C/C++ code enhancemet
@@ -202,19 +786,17 @@ milestone for 3.7.1
pgRouting 3.7.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.7.0
-`__
+To see all issues & pull requests closed by this release see the
+:milestone:`3.7.0`
.. rubric:: Support
-* `#2656 `__ Stop support of
- PostgreSQL12 on pgrouting v3.7
+* :issue:`2656`: Stop support of PostgreSQL12 on pgrouting v3.7
* Stopping support of PostgreSQL 12
* CI does not test for PostgreSQL 12
-.. rubric:: New experimental functions
+.. rubric:: New experimental functions.
* Metrics
@@ -222,8 +804,7 @@ milestone for 3.7.0
.. rubric:: Official functions changes
-* `#2605 `__ Standardize
- spanning tree functions output
+* :issue:`2605`: Standardize spanning tree functions output
* Functions:
@@ -240,8 +821,8 @@ milestone for 3.7.0
.. rubric:: Experimental promoted to proposed.
-* `#2635 `__ pgr_LineGraph
- ignores directed flag and use negative values for identifiers.
+* :issue:`2635`: pgr_LineGraph ignores directed flag and use negative values for
+ identifiers.
* ``pgr_lineGraph``
@@ -251,11 +832,11 @@ milestone for 3.7.0
.. rubric:: Code enhancement
-* `#2599 `__ Driving distance
+* :issue:`2599`: Driving distance
cleanup
-* `#2607 `__ Read postgresql
+* :issue:`2607`: Read postgresql
data on C++
-* `#2614 `__ Clang tidy does
+* :issue:`2614`: Clang tidy does
not work
pgRouting 3.6
@@ -268,9 +849,8 @@ pgRouting 3.6
pgRouting 3.6.3 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.6.3
-`__
+To see all issues & pull requests closed by this release see the
+:milestone:`3.6.3`
.. rubric:: Build
@@ -307,9 +887,8 @@ milestone for 3.6.3
pgRouting 3.6.2 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.6.2
-`__
+To see all issues & pull requests closed by this release see the
+:milestone:`3.6.2`
.. rubric:: Upgrade fix
@@ -328,24 +907,21 @@ milestone for 3.6.2
pgRouting 3.6.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.6.1
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.6.1`
-* `#2588 `__ pgrouting 3.6.0
+* :issue:`2588`: pgrouting 3.6.0
fails to build on OSX
pgRouting 3.6.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.6.0
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.6.0`
.. rubric:: Official functions changes
-* `#2516 `__ Standardize output
- pgr_aStar
+* :issue:`2516`: Standardize output pgr_aStar
* Standardize output columns to |short-generic-result|
@@ -353,25 +929,21 @@ milestone for 3.6.0
* pgr_aStar(One to Many) added ``end_vid`` column.
* pgr_aStar(Many to One) added ``start_vid`` column.
-* `#2523 `__ Standardize output
- pgr_bdAstar
+* :issue:`2523`: Standardize output pgr_bdAstar
* Standardize output columns to |short-generic-result|
- * pgr_bdAstar(One to One) added ``start_vid`` and ``end_vid``
- columns.
+ * pgr_bdAstar(One to One) added ``start_vid`` and ``end_vid`` columns.
* pgr_bdAstar(One to Many) added ``end_vid`` column.
* pgr_bdAstar(Many to One) added ``start_vid`` column.
-* `#2547 `__ Standardize output
- and modifying signature pgr_KSP
+* :issue:`2547`: Standardize output and modifying signature pgr_KSP
.. include:: pgr_KSP.rst
:start-after: Version 3.6.0
:end-before: .. rubric
-* `#2548 `__ Standardize output
- pgr_drivingDistance
+* :issue:`2548`: Standardize output pgr_drivingDistance
.. include:: pgr_drivingDistance.rst
:start-after: Version 3.6.0
@@ -379,15 +951,13 @@ milestone for 3.6.0
.. rubric:: Proposed functions changes
-* `#2544 `__ Standardize output
- and modifying signature pgr_withPointsDD
+* :issue:`2544`: Standardize output and modifying signature pgr_withPointsDD
.. include:: pgr_withPointsDD.rst
:start-after: Version 3.6.0
:end-before: .. rubric
-* `#2546 `__ Standardize output
- and modifying signature pgr_withPointsKSP
+* :issue:`2546`: Standardize output and modifying signature pgr_withPointsKSP
.. include:: pgr_withPointsKSP.rst
:start-after: Version 3.6.0
@@ -395,29 +965,25 @@ milestone for 3.6.0
.. rubric:: C/C++ code enhancements
-* `#2504 `__ To C++ pg data get,
+* :issue:`2504`: To C++ pg data get,
fetch and check.
* Stopping support for compilation with MSVC.
-* `#2505 `__ Using namespace.
-* `#2512 `__ [Dijkstra] Removing
- duplicate code on Dijkstra.
-* `#2517 `__ Astar code
- simplification.
-* `#2521 `__ Dijkstra code
- simplification.
-* `#2522 `__ bdAstar code
- simplification.
+* :issue:`2505`: Using namespace.
+* :issue:`2512`: [Dijkstra] Removing duplicate code on Dijkstra.
+* :issue:`2517`: Astar code simplification.
+* :issue:`2521`: Dijkstra code simplification.
+* :issue:`2522`: bdAstar code simplification.
.. rubric:: Documentation
-* `#2490 `__ Automatic page
+* :issue:`2490`: Automatic page
history links.
* ..rubric:: Standardize SQL
-* `#2555 `__ Standardize
+* :issue:`2555`: Standardize
deprecated messages
* On new internal function: do not use named parameters and default parameters.
@@ -431,9 +997,8 @@ pgRouting 3.5
pgRouting 3.5.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.5.1
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.5.1`
.. rubric:: Documentation fixes
@@ -448,17 +1013,15 @@ Changes on the documentation to the following:
.. rubric:: Issue fixes
-* `#2565 `__
- pgr_lengauerTarjanDominatorTree triggers an assertion
+* :issue:`2565`: pgr_lengauerTarjanDominatorTree triggers an assertion
.. rubric:: SQL enhancements
-* `#2561 `__ Not use
- wildcards on SQL
+* :issue:`2561`: Not use wildcards on SQL
.. rubric:: pgtap tests
-* `#2559 `__ pgtap test using sampledata
+* :issue:`2559`: pgtap test using sampledata
.. rubric:: Build fixes
@@ -473,9 +1036,8 @@ Changes on the documentation to the following:
pgRouting 3.5.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.5.0
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.5.0`
.. rubric:: Official functions changes
@@ -497,42 +1059,34 @@ pgRouting 3.4
pgRouting 3.4.2 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.4.2
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.4.2`
.. rubric:: Issue fixes
-* `#2394 `__:
- pgr_bdAstar accumulates heuristic cost in visited node cost.
-* `#2427 `__:
- pgr_createVerticesTable & pgr_createTopology, variable should be of type Record.
+* :issue:`2394`: pgr_bdAstar accumulates heuristic cost in visited node cost.
+* :issue:`2427`: pgr_createVerticesTable & pgr_createTopology, variable should be of type Record.
pgRouting 3.4.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.4.1
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.4.1`
.. rubric:: Issue fixes
-* `#2401 `__:
- pgRouting 3.4.0 do not build docs when sphinx is too low or missing
-* `#2398 `__:
- v3.4.0 does not upgrade from 3.3.3
+* :issue:`2401`: pgRouting 3.4.0 do not build docs when sphinx is too low or missing
+* :issue:`2398`: v3.4.0 does not upgrade from 3.3.3
pgRouting 3.4.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.4.0
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.4.0`
.. rubric:: Issue fixes
-* `#1891 `__:
- pgr_ksp doesn't give all correct shortest path
+* :issue:`1891`: pgr_ksp doesn't give all correct shortest path
.. rubric:: New proposed functions.
@@ -572,7 +1126,7 @@ milestone for 3.4.0
* pgr_findCloseEdges(One point)
* pgr_findCloseEdges(Many points)
-.. rubric:: New experimental functions
+.. rubric:: New experimental functions.
* Ordering
@@ -609,32 +1163,33 @@ pgRouting 3.3
pgRouting 3.3.5 Release Notes
-------------------------------------------------------------------------------
-* `#2401 `__:
- pgRouting 3.4.0 do not build docs when sphinx is too low or missing
+To see all issues & pull requests closed by this release see the
+:milestone:`3.3.5`
+
+.. rubric:: Documentation
+
+* :issue:`2401`: pgRouting 3.4.0 do not build docs when sphinx is too low or
+ missing
pgRouting 3.3.4 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.3.4
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.3.4`
.. rubric:: Issue fixes
-* `#2400 `__:
- pgRouting 3.3.3 does not build in focal
+* :issue:`2400`: pgRouting 3.3.3 does not build in focal
pgRouting 3.3.3 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.3.3
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.3.3`
.. rubric:: Issue fixes
-* `#1891 `__:
- pgr_ksp doesn't give all correct shortest path
+* :issue:`1891`: pgr_ksp doesn't give all correct shortest path
.. rubric:: Official functions changes
@@ -649,9 +1204,8 @@ milestone for 3.3.3
pgRouting 3.3.2 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.3.2
-`_
+To see all issues & pull requests closed by this release see the
+:milestone:`3.3.2`
* Revised documentation
@@ -676,44 +1230,37 @@ milestone for 3.3.2
.. rubric:: Issue fixes
-* `#2276 `__:
- edgeDisjointPaths issues with start_vid and combinations
-* `#2312 `__:
- pgr_extractVertices error when target is not BIGINT
-* `#2357 `__:
- Apply clang-tidy performance-*
+* :issue:`2276`: edgeDisjointPaths issues with start_vid and combinations
+* :issue:`2312`: pgr_extractVertices error when target is not BIGINT
+* :issue:`2357`: Apply clang-tidy performance-*
pgRouting 3.3.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.3.1
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.3.1`
.. rubric:: Issue fixes
-* `#2216 `__: Warnings when using clang
-* `#2266 `__: Error processing restrictions
+* :issue:`2216`: Warnings when using clang
+* :issue:`2266`: Error processing restrictions
pgRouting 3.3.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.3.0
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.3.0`
.. rubric:: Issue fixes
-* `#2057 `__: trspViaEdges columns in different order
-* `#2087 `__: pgr_extractVertices to proposed
-* `#2201 `__: pgr_depthFirstSearch to proposed
-* `#2202 `__: pgr_sequentialVertexColoring to proposed
-* `#2203 `__: pgr_dijkstraNear and pgr_dijkstraNearCost to proposed
+* :issue:`2057`: trspViaEdges columns in different order
+* :issue:`2087`: pgr_extractVertices to proposed
+* :issue:`2201`: pgr_depthFirstSearch to proposed
+* :issue:`2202`: pgr_sequentialVertexColoring to proposed
+* :issue:`2203`: pgr_dijkstraNear and pgr_dijkstraNearCost to proposed
-.. rubric:: New experimental functions
+.. rubric:: New experimental functions.
* Coloring
@@ -760,49 +1307,44 @@ pgRouting 3.2
pgRouting 3.2.2 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.2.2
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.2.2`
.. rubric:: Issue fixes
-* `#2093 `__: Compilation on Visual Studio
-* `#2189 `__: Build error on RHEL 7
+* :issue:`2093`: Compilation on Visual Studio
+* :issue:`2189`: Build error on RHEL 7
pgRouting 3.2.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.2.1
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.2.1`
.. rubric:: Issue fixes
-* `#1883 `__: pgr_TSPEuclidean crashes connection on Windows
+* :issue:`1883`: pgr_TSPEuclidean crashes connection on Windows
* The solution is to use Boost::graph::metric_tsp_approx
- * To not break user's code the optional parameters related to the TSP Annaeling are ignored
+ * To not break user's code the optional parameters related to the TSP
+ Annaeling are ignored
* The function with the annaeling optional parameters is deprecated
pgRouting 3.2.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.2.0
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.2.0`
.. rubric:: Build
-* `#1850 `__: Change Boost
+* :issue:`1850`: Change Boost
min version to 1.56
* Removing support for Boost v1.53, v1.54 & v1.55
-.. rubric:: New experimental functions
+.. rubric:: New experimental functions.
* pgr_bellmanFord(Combinations)
* pgr_binaryBreadthFirstSearch(Combinations)
@@ -874,87 +1416,67 @@ pgRouting 3.1
pgRouting 3.1.4 Release Notes
--------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.1.4
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.1.4`
.. rubric:: Issues fixes
-* `#2189 `__: Build error on
+* :issue:`2189`: Build error on
RHEL 7
pgRouting 3.1.3 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.1.3
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.1.3`
.. rubric:: Issues fixes
-* `#1825 `__: Boost versions
- are not honored
-* `#1849 `__: Boost 1.75.0
- geometry "point_xy.hpp" build error on macOS environment
-* `#1861 `__: vrp functions
- crash server
+* :issue:`1825`: Boost versions are not honored
+* :issue:`1849`: Boost 1.75.0 geometry "point_xy.hpp" build error on macOS
+ environment
+* :issue:`1861`: vrp functions crash server
pgRouting 3.1.2 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.1.2
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.1.2`
.. rubric:: Issues fixes
-* `#1304 `__: FreeBSD 12
+* :issue:`1304`: FreeBSD 12
64-bit crashes on pgr_vrOneDepot tests Experimental Function
-* `#1356 `__:
- tools/testers/pg_prove_tests.sh fails when PostgreSQL port is not passed
-* `#1725 `__: Server crash
+* :issue:`1356`: tools/testers/pg_prove_tests.sh fails when PostgreSQL port is not passed
+* :issue:`1725`: Server crash
on pgr_pickDeliver and pgr_vrpOneDepot on openbsd
-* `#1760 `__: TSP server
+* :issue:`1760`: TSP server
crash on ubuntu 20.04 #1760
-* `#1770 `__: Remove
+* :issue:`1770`: Remove
warnings when using clang compiler
pgRouting 3.1.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.1.1
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.1.1`
.. rubric:: Issues fixes
-* `#1733 `__: pgr_bdAstar
- fails when source or target vertex does not exist in the graph
-* `#1647 `__: Linear
- Contraction contracts self loops
-* `#1640 `__: pgr_withPoints
- fails when points_sql is empty
-* `#1616 `__: Path
- evaluation on C++ not updated before the results go back to C
-* `#1300 `__:
- pgr_chinesePostman crash on test data
-
-
+* :issue:`1733`: pgr_bdAstar fails when source or target vertex does not exist in the graph
+* :issue:`1647`: Linear Contraction contracts self loops
+* :issue:`1640`: pgr_withPoints fails when points_sql is empty
+* :issue:`1616`: Path evaluation on C++ not updated before the results go back to C
+* :issue:`1300`: pgr_chinesePostman crash on test data
pgRouting 3.1.0 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.1.0
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.1.0`
.. rubric:: New proposed functions.
@@ -975,131 +1497,98 @@ pgRouting 3.0
pgRouting 3.0.6 Release Notes
--------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.0.6
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.0.6`
.. rubric:: Issues fixes
-* `#2189 `__: Build error on
- RHEL 7
+* :issue:`2189`: Build error on RHEL 7
pgRouting 3.0.5 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.0.5
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.0.5`
.. rubric:: Backport issue fixes
-* `#1825 `__: Boost versions
- are not honored
-* `#1849 `__: Boost 1.75.0
- geometry "point_xy.hpp" build error on macOS environment
-* `#1861 `__: vrp functions
- crash server
+* :issue:`1825`: Boost versions are not honored
+* :issue:`1849`: Boost 1.75.0 geometry "point_xy.hpp" build error on macOS environment
+* :issue:`1861`: vrp functions crash server
pgRouting 3.0.4 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.0.4
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.0.4`
.. rubric:: Backport issue fixes
-* `#1304 `__: FreeBSD 12
- 64-bit crashes on pgr_vrOneDepot tests Experimental Function
-* `#1356 `__:
- tools/testers/pg_prove_tests.sh fails when PostgreSQL port is not passed
-* `#1725 `__: Server crash
- on pgr_pickDeliver and pgr_vrpOneDepot on openbsd
-* `#1760 `__: TSP server
- crash on ubuntu 20.04 #1760
-* `#1770 `__: Remove
- warnings when using clang compiler
+* :issue:`1304`: FreeBSD 12 64-bit crashes on pgr_vrOneDepot tests Experimental Function
+* :issue:`1356`: tools/testers/pg_prove_tests.sh fails when PostgreSQL port is not passed
+* :issue:`1725`: Server crash on pgr_pickDeliver and pgr_vrpOneDepot on openbsd
+* :issue:`1760`: TSP server crash on ubuntu 20.04 #1760
+* :issue:`1770`: Remove warnings when using clang compiler
pgRouting 3.0.3 Release Notes
-------------------------------------------------------------------------------
+To see all issues & pull requests closed by this release see the
+:milestone:`3.0.3`
+
.. rubric:: Backport issue fixes
-* `#1733 `__: pgr_bdAstar
- fails when source or target vertex does not exist in the graph
-* `#1647 `__: Linear
- Contraction contracts self loops
-* `#1640 `__: pgr_withPoints
- fails when points_sql is empty
-* `#1616 `__: Path
- evaluation on C++ not updated before the results go back to C
-* `#1300 `__:
- pgr_chinesePostman crash on test data
+* :issue:`1733`: pgr_bdAstar fails when source or target vertex does not exist in the graph
+* :issue:`1647`: Linear Contraction contracts self loops
+* :issue:`1640`: pgr_withPoints fails when points_sql is empty
+* :issue:`1616`: Path evaluation on C++ not updated before the results go back to C
+* :issue:`1300`: pgr_chinesePostman crash on test data
pgRouting 3.0.2 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.0.2
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.0.2`
.. rubric:: Issues fixes
-* `#1378 `__: Visual Studio
+* :issue:`1378`: Visual Studio
build failing
pgRouting 3.0.1 Release Notes
-------------------------------------------------------------------------------
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.0.1
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.0.1`
.. rubric:: Issues fixes
-* `#232 `__: Honor client
+* :issue:`232`: Honor client
cancel requests in C /C++ code
pgRouting 3.0.0 Release Notes
-------------------------------------------------------------------------------
-.. contents:: Contents
- :local:
- :depth: 1
-
-To see all issues & pull requests closed by this release see the `Git closed
-milestone for 3.0.0
-`_
-on Github.
+To see all issues & pull requests closed by this release see the
+:milestone:`3.0.0`
.. rubric:: Fixed Issues
-* `#1153 `__: Renamed
- pgr_eucledianTSP to pgr_TSPeuclidean
-* `#1188