From b16e9da748e9d78c8b19d2b1db3baeb19c33c6aa Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Fri, 24 Nov 2023 14:26:57 -0800 Subject: [PATCH 001/141] MacOS issues with size_t, closes GH-2588 --- include/c_types/restriction_t.h | 2 +- include/cpp_common/get_check_data.hpp | 2 +- src/cpp_common/get_check_data.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/c_types/restriction_t.h b/include/c_types/restriction_t.h index 516a6c8245..a27a77ace8 100644 --- a/include/c_types/restriction_t.h +++ b/include/c_types/restriction_t.h @@ -40,7 +40,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. struct Restriction_t { double cost; int64_t * via; - uint64_t via_size; + size_t via_size; }; #endif // INCLUDE_C_TYPES_RESTRICTION_T_H_ diff --git a/include/cpp_common/get_check_data.hpp b/include/cpp_common/get_check_data.hpp index 8a277b74b8..8e06ce4ca6 100644 --- a/include/cpp_common/get_check_data.hpp +++ b/include/cpp_common/get_check_data.hpp @@ -59,7 +59,7 @@ char getChar(const HeapTuple, const TupleDesc&, const Column_info_t&, bool, char int64_t* get_array(ArrayType*, size_t*, bool); /** @brief Function returns the values of specified columns in array. */ -int64_t* getBigIntArr(const HeapTuple, const TupleDesc&, const Column_info_t&, uint64_t*); +int64_t* getBigIntArr(const HeapTuple, const TupleDesc&, const Column_info_t&, size_t*); /** @brief Function returns the value of specified column in integer type. */ int64_t getBigInt(const HeapTuple, const TupleDesc&, const Column_info_t&); diff --git a/src/cpp_common/get_check_data.cpp b/src/cpp_common/get_check_data.cpp index c3866d6dae..7ae0500b73 100644 --- a/src/cpp_common/get_check_data.cpp +++ b/src/cpp_common/get_check_data.cpp @@ -354,7 +354,7 @@ int64_t* getBigIntArr( const HeapTuple tuple, const TupleDesc &tupdesc, const Column_info_t &info, - uint64_t *the_size) { + size_t *the_size) { bool is_null = false; Datum raw_array = SPI_getbinval(tuple, tupdesc, info.colNumber, &is_null); From 3676d04de13aff575e966e70cd5787aef5aaead6 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 24 Nov 2023 17:17:37 -0600 Subject: [PATCH 002/141] pumpup to 3.6.1 --- .github/workflows/boost_version.yml | 2 +- .github/workflows/update.yml | 4 ++-- CMakeLists.txt | 3 ++- NEWS | 5 +++++ doc/src/release_notes.rst | 6 ++++++ docqueries/version/doc-full_version.result | 6 +++--- docqueries/version/doc-version.result | 2 +- locale/de/LC_MESSAGES/index.po | 2 +- locale/de/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/en/LC_MESSAGES/index.po | 2 +- locale/en/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/es/LC_MESSAGES/index.po | 2 +- locale/es/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/ja/LC_MESSAGES/index.po | 2 +- locale/ja/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/ko/LC_MESSAGES/index.po | 2 +- locale/ko/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/pot/index.pot | 2 +- locale/pot/pgrouting_doc_strings.pot | 2 +- locale/zh_Hans/LC_MESSAGES/index.po | 2 +- locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- tools/testers/pg_prove_tests.sh | 2 +- 22 files changed, 35 insertions(+), 23 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index f06466567e..4eb30be941 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -133,5 +133,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.6.0" + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.6.1" pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap" diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 502f650c40..9d3b2e84d5 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - old_pgr: [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.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@v4 @@ -122,6 +122,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.6.0';" + psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.6.1';" 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/CMakeLists.txt b/CMakeLists.txt index 7872d9a7fc..8e2953e329 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ include(pgr/BuildType) #--------------------------------------------- #--------------------------------------------- -project(PGROUTING VERSION 3.6.0 +project(PGROUTING VERSION 3.6.1 LANGUAGES C CXX ) set(PROJECT_VERSION_DEV "") string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER) @@ -33,6 +33,7 @@ string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC) set(MINORS 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6) set(OLD_SIGNATURES + 3.6.0 3.5.1 3.5.0 3.4.2 diff --git a/NEWS b/NEWS index 53ba2211a2..af7080659b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +pgRouting 3.6.1 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + pgRouting 3.6.0 Release Notes ------------------------------------------------------------------------------- diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index dc9d432160..9e4ea3c97e 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -19,6 +19,12 @@ To see the full list of changes check the list of `Git commits .. contents:: Contents :local: + +pgRouting 3.6.1 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + pgRouting 3.6.0 Release Notes ------------------------------------------------------------------------------- diff --git a/docqueries/version/doc-full_version.result b/docqueries/version/doc-full_version.result index c66f21a014..4657f16d07 100644 --- a/docqueries/version/doc-full_version.result +++ b/docqueries/version/doc-full_version.result @@ -4,9 +4,9 @@ SET client_min_messages TO NOTICE; SET /* -- q1 */ SELECT version, library FROM pgr_full_version(); - version | library ------------+----------------- - 3.6.0-dev | pgrouting-3.6.0 + version | library +---------+----------------- + 3.6.1 | pgrouting-3.6.1 (1 row) /* -- q2 */ diff --git a/docqueries/version/doc-version.result b/docqueries/version/doc-version.result index f898d1bd25..e59f153e08 100644 --- a/docqueries/version/doc-version.result +++ b/docqueries/version/doc-version.result @@ -6,7 +6,7 @@ SET SELECT pgr_version(); pgr_version ------------- - 3.6.0-dev + 3.6.1 (1 row) /* -- q2 */ diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po index 033872a244..8cd97e14d4 100644 --- a/locale/de/LC_MESSAGES/index.po +++ b/locale/de/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po index 23a8f8d848..e72e650c10 100644 --- a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. msgid "" diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po index d562dd22ec..ba3bdb9369 100644 --- a/locale/en/LC_MESSAGES/index.po +++ b/locale/en/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 2f71b83fc4..44b4c5f438 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po index fa5221b396..9161b02598 100644 --- a/locale/es/LC_MESSAGES/index.po +++ b/locale/es/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po index bf23ba709b..f910203549 100644 --- a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Pedro Jose Rios Vergara , 2022. diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po index a4db89f701..4f43aa81c6 100644 --- a/locale/ja/LC_MESSAGES/index.po +++ b/locale/ja/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po index 5840391d12..111aec1dca 100644 --- a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,6 +1,6 @@ # #-#-#-#-# allpairs-family.po (pgRouting v3.4.0-dev) #-#-#-#-# # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Translators: diff --git a/locale/ko/LC_MESSAGES/index.po b/locale/ko/LC_MESSAGES/index.po index a7caa0d5ce..e3e5aa1cd3 100644 --- a/locale/ko/LC_MESSAGES/index.po +++ b/locale/ko/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po index 6bc39b5dbb..3e53a22a0a 100644 --- a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2022. # Hyung-Gyu Ryoo , 2022. diff --git a/locale/pot/index.pot b/locale/pot/index.pot index 6216f844aa..efe2b97fa4 100644 --- a/locale/pot/index.pot +++ b/locale/pot/index.pot @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index b25cae5c2c..36984ae833 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/zh_Hans/LC_MESSAGES/index.po b/locale/zh_Hans/LC_MESSAGES/index.po index 4bef4323a5..c81ae537e1 100644 --- a/locale/zh_Hans/LC_MESSAGES/index.po +++ b/locale/zh_Hans/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po index 4894e70d50..a7779a281b 100644 --- a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.0-dev +# Copyright (C) pgRouting Contributors - Version v3.6.1 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. # Wangdapeng , 2023. diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh index 63194f7eef..cd78868456 100755 --- a/tools/testers/pg_prove_tests.sh +++ b/tools/testers/pg_prove_tests.sh @@ -37,7 +37,7 @@ echo "$PGPORT" pushd ./tools/testers/ || exit 1 -bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.6.0" +bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.6.1" pg_prove --failures --Q --recurse \ --S client_min_messages=WARNING \ From ba81f5bb2b96bfabc25d9daaad67a3cc35ad4543 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 24 Nov 2023 17:20:08 -0600 Subject: [PATCH 003/141] testing with postgres 16 --- .github/workflows/ubuntu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index f8669227c1..3df30812c4 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - psql: [11,12,13,14,15] + psql: [11,12,13,14,15,16] postgis: [3] os: [ubuntu-latest, ubuntu-20.04] From 746d357bdbfa1258d2bdabb9823272001b375a28 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 24 Nov 2023 17:28:56 -0600 Subject: [PATCH 004/141] :book: documenting fix done for the release 3.6.1 --- NEWS | 7 ++++++- doc/src/release_notes.rst | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index af7080659b..903b5b1271 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,12 @@ pgRouting 3.6.1 Release Notes ------------------------------------------------------------------------------- -No Changes Yet +To see all issues & pull requests closed by this release see the `Git closed +milestone for 3.6.1 +`_ + +* [#2588](https://github.com/pgRouting/pgrouting/pull/2588) pgrouting 3.6.0 + fails to build on OSX pgRouting 3.6.0 Release Notes ------------------------------------------------------------------------------- diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 9e4ea3c97e..b27e6fad93 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -23,7 +23,12 @@ To see the full list of changes check the list of `Git commits pgRouting 3.6.1 Release Notes ------------------------------------------------------------------------------- -No Changes Yet +To see all issues & pull requests closed by this release see the `Git closed +milestone for 3.6.1 +`_ + +* `#2588 `__ pgrouting 3.6.0 + fails to build on OSX pgRouting 3.6.0 Release Notes ------------------------------------------------------------------------------- From df70fd85db343373987f82475c46b0c55b1f2b97 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 24 Nov 2023 17:49:58 -0600 Subject: [PATCH 005/141] Marking as todo a failing test --- pgtap/withPoints/withPointsDD/edge_cases/issue_979.pg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pgtap/withPoints/withPointsDD/edge_cases/issue_979.pg b/pgtap/withPoints/withPointsDD/edge_cases/issue_979.pg index f86f057523..f4ecd013e0 100644 --- a/pgtap/withPoints/withPointsDD/edge_cases/issue_979.pg +++ b/pgtap/withPoints/withPointsDD/edge_cases/issue_979.pg @@ -162,6 +162,7 @@ BEGIN RETURN QUERY SELECT set_eq('q1', 'e1', 'right driving side, DIR'); + PERFORM todo(1, 'Fails on postgres 16'); RETURN QUERY SELECT set_eq('q2', 'e2', 'left driving side, DIR'); @@ -174,6 +175,7 @@ BEGIN RETURN QUERY SELECT set_eq('q1old', 'e1', 'old: right driving side, DIR'); + PERFORM todo(1, 'Fails on postgres 16'); RETURN QUERY SELECT set_eq('q2old', 'e2old', 'old: left driving side, DIR'); From d225458cc50b1a5ff999cbdd581eebcd108b3348 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 24 Nov 2023 18:03:50 -0600 Subject: [PATCH 006/141] Adding automatic test on macos.yml --- .github/workflows/macos.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 3c0825231e..05cce9f198 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -5,6 +5,31 @@ name: Build for macOS on: workflow_dispatch: + push: + paths: + - '.github/workflows/macos.yml' + - 'src/**' + - 'include/**' + - 'pgtap/**' + - 'tools/testers/**' + - './CMakeLists.txt' + + branches-ignore: + - 'gh-pages' + + tags: [] + + pull_request: + paths: + - '.github/workflows/macos.yml' + - 'src/**' + - 'include/**' + - 'pgtap/**' + - 'tools/testers/**' + - './CMakeLists.txt' + + branches-ignore: + - 'gh-pages' concurrency: group: ${{ github.workflow }}-${{ github.ref }} From 3e66f5e2ab03a92f8677f14fa882d65812333e1d Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 24 Nov 2023 18:59:20 -0600 Subject: [PATCH 007/141] Only compilation macos, disable test --- .github/workflows/macos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 05cce9f198..5887eeee78 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -64,6 +64,7 @@ jobs: sudo make install - name: Install pgTAP + if: false run: | git clone https://github.com/theory/pgtap.git pgTapExtension cd pgTapExtension @@ -74,6 +75,7 @@ jobs: sudo ln -s /usr/local/Cellar/perl/5.32.1_1/bin/pg_prove symlink it into /usr/local/bin - name: Test + if: false run: | export PATH=/usr/local/Cellar/perl/$(perl -e 'print substr($^V, 1)')/bin:$PATH pg_ctl -D /usr/local/var/postgres start From d809b26a15519e40ed5f106e8fa62c0edc86547c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 15 Jan 2024 10:16:23 -0600 Subject: [PATCH 008/141] Pump up version to v3.6.2 --- .github/workflows/boost_version.yml | 2 +- .github/workflows/update.yml | 4 ++-- CMakeLists.txt | 3 ++- NEWS | 5 +++++ doc/src/release_notes.rst | 6 ++++++ docqueries/version/doc-full_version.result | 2 +- docqueries/version/doc-version.result | 2 +- locale/de/LC_MESSAGES/index.po | 2 +- locale/de/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/en/LC_MESSAGES/index.po | 2 +- locale/en/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/es/LC_MESSAGES/index.po | 2 +- locale/es/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/ja/LC_MESSAGES/index.po | 2 +- locale/ja/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/ko/LC_MESSAGES/index.po | 2 +- locale/ko/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/pot/index.pot | 2 +- locale/pot/pgrouting_doc_strings.pot | 2 +- locale/zh_Hans/LC_MESSAGES/index.po | 2 +- locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- tools/testers/pg_prove_tests.sh | 2 +- 22 files changed, 33 insertions(+), 21 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 4eb30be941..7f099ca4d9 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -133,5 +133,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.6.1" + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.6.2" pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap" diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 9d3b2e84d5..af4a17de6c 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - old_pgr: [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.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@v4 @@ -122,6 +122,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.6.1';" + psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.6.2';" 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/CMakeLists.txt b/CMakeLists.txt index 8e2953e329..47b2f3d212 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ include(pgr/BuildType) #--------------------------------------------- #--------------------------------------------- -project(PGROUTING VERSION 3.6.1 +project(PGROUTING VERSION 3.6.2 LANGUAGES C CXX ) set(PROJECT_VERSION_DEV "") string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER) @@ -33,6 +33,7 @@ string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC) set(MINORS 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6) set(OLD_SIGNATURES + 3.6.1 3.6.0 3.5.1 3.5.0 diff --git a/NEWS b/NEWS index 903b5b1271..92460d83af 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +pgRouting 3.6.2 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + pgRouting 3.6.1 Release Notes ------------------------------------------------------------------------------- diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index b27e6fad93..ad4c967611 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -20,6 +20,12 @@ To see the full list of changes check the list of `Git commits :local: + +pgRouting 3.6.2 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + pgRouting 3.6.1 Release Notes ------------------------------------------------------------------------------- diff --git a/docqueries/version/doc-full_version.result b/docqueries/version/doc-full_version.result index 4657f16d07..bfe074fa89 100644 --- a/docqueries/version/doc-full_version.result +++ b/docqueries/version/doc-full_version.result @@ -6,7 +6,7 @@ SET SELECT version, library FROM pgr_full_version(); version | library ---------+----------------- - 3.6.1 | pgrouting-3.6.1 + 3.6.2 | pgrouting-3.6.2 (1 row) /* -- q2 */ diff --git a/docqueries/version/doc-version.result b/docqueries/version/doc-version.result index e59f153e08..35f1ff62ca 100644 --- a/docqueries/version/doc-version.result +++ b/docqueries/version/doc-version.result @@ -6,7 +6,7 @@ SET SELECT pgr_version(); pgr_version ------------- - 3.6.1 + 3.6.2 (1 row) /* -- q2 */ diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po index 8cd97e14d4..fbbd7f76fc 100644 --- a/locale/de/LC_MESSAGES/index.po +++ b/locale/de/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po index e72e650c10..d676898a2c 100644 --- a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. msgid "" diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po index ba3bdb9369..ab4d7e5aa7 100644 --- a/locale/en/LC_MESSAGES/index.po +++ b/locale/en/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 44b4c5f438..78d82cd09b 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po index 9161b02598..57acfd3614 100644 --- a/locale/es/LC_MESSAGES/index.po +++ b/locale/es/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po index f910203549..5166400fd7 100644 --- a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Pedro Jose Rios Vergara , 2022. diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po index 4f43aa81c6..a2ba760100 100644 --- a/locale/ja/LC_MESSAGES/index.po +++ b/locale/ja/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po index 111aec1dca..41d96dfa7e 100644 --- a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,6 +1,6 @@ # #-#-#-#-# allpairs-family.po (pgRouting v3.4.0-dev) #-#-#-#-# # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Translators: diff --git a/locale/ko/LC_MESSAGES/index.po b/locale/ko/LC_MESSAGES/index.po index e3e5aa1cd3..5e352574b3 100644 --- a/locale/ko/LC_MESSAGES/index.po +++ b/locale/ko/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po index 3e53a22a0a..efd4fe85e9 100644 --- a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2022. # Hyung-Gyu Ryoo , 2022. diff --git a/locale/pot/index.pot b/locale/pot/index.pot index efe2b97fa4..0efc33fa10 100644 --- a/locale/pot/index.pot +++ b/locale/pot/index.pot @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 36984ae833..24de30f742 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/zh_Hans/LC_MESSAGES/index.po b/locale/zh_Hans/LC_MESSAGES/index.po index c81ae537e1..3f56c7f7d7 100644 --- a/locale/zh_Hans/LC_MESSAGES/index.po +++ b/locale/zh_Hans/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po index a7779a281b..caf07c7f95 100644 --- a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.1 +# Copyright (C) pgRouting Contributors - Version v3.6.2 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. # Wangdapeng , 2023. diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh index cd78868456..f0858eb86d 100755 --- a/tools/testers/pg_prove_tests.sh +++ b/tools/testers/pg_prove_tests.sh @@ -37,7 +37,7 @@ echo "$PGPORT" pushd ./tools/testers/ || exit 1 -bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.6.1" +bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.6.2" pg_prove --failures --Q --recurse \ --S client_min_messages=WARNING \ From a7ee4dea6bf81a8435680251d8572fee9406513b Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 6 Jan 2024 09:03:54 -0600 Subject: [PATCH 009/141] Update notes2news script and applying it (cherry picked from commit 61c9785a0be55c15fbbe2bee9d27fc51ed212dfd) --- NEWS | 1712 +---------------- NEWS.md | 1689 ++++++++++++++++ doc/conf.py.in | 2 +- .../drivingDistance-category.rst | 9 - doc/driving_distance/pgr_drivingDistance.rst | 6 +- doc/src/index.rst | 9 + doc/src/release_notes.rst | 150 +- tools/release-scripts/notes2news.pl | 70 +- 8 files changed, 1893 insertions(+), 1754 deletions(-) create mode 100644 NEWS.md diff --git a/NEWS b/NEWS index 92460d83af..e837ecbb95 100644 --- a/NEWS +++ b/NEWS @@ -1,1711 +1 @@ -pgRouting 3.6.2 Release Notes -------------------------------------------------------------------------------- - -No Changes Yet - -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 -`_ - -* [#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 -`_ - -**Official functions changes** - -* [#2516](https://github.com/pgRouting/pgrouting/pull/2516) Standarize output - pgr_aStar - - * Standarizing output columns to |short-generic-result| - - * ``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) Standarize output - pgr_bdAstar - - * Standarizing output columns to |short-generic-result| - - * ``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](https://github.com/pgRouting/pgrouting/pull/2547) Standarize output - and modifying signature pgr_KSP - - - * Result columns standarized to: |nksp-result| - * ``pgr_ksp`` (One to One) - - * Added ``start_vid`` and ``end_vid`` result columns. - - * New overload functions: - - * ``pgr_ksp`` (One to Many) - * ``pgr_ksp`` (Many to One) - * ``pgr_ksp`` (Many to Many) - * ``pgr_ksp`` (Combinations) - - -* [#2548](https://github.com/pgRouting/pgrouting/pull/2548) Standarize output - pgr_drivingdistance - - - * Standarizing output columns to |result-spantree| - - * ``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) Standarize output - and modifying signature pgr_withPointsDD - - - * Signature change: ``driving_side`` parameter changed from named optional to - unnamed compulsory **driving side**. - - * ``pgr_withPointsDD`` (`Single vertex`) - * ``pgr_withPointsDD`` (`Multiple vertices`) - - * Standarizing output columns to |result-spantree| - - * ``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) Standarize output - and modifying signature pgr_withPointsKSP - - - * Standarizing output columns to |nksp-result| - * ``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 overload functions - - * ``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:: SQL standarization - -* [#2555](https://github.com/pgRouting/pgrouting/pull/2555) standarize - deprecated messages -* On new internal function: do not use named parameters and default parameters. - - -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 -`_ - -**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_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 -`_ - -**Official functions changes** - -* Dijkstra - - * Standarizing output columns to |short-generic-result| - - * ``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.2 Release Notes -------------------------------------------------------------------------------- - -To see all issues & pull requests closed by this release see the `Git closed -milestone for 3.4.2 -`_ - -**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 -`_ - -**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 -`_ - -**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`` - -* Unclassified - - * ``pgr_hawickCircuits`` - -**Official functions changes** - -* Flow functions - - * ``pgr_maxCardinalityMatch(text)`` - - * Deprecating ``pgr_maxCardinalityMatch(text,boolean)`` - -**Deprecated Functions** - -* Turn Restrictions - - * ``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)`` - -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 -`_ - -**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 -`_ - -**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 -`_ - -* 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 -`_ -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 -`_ -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.2 Release Notes -------------------------------------------------------------------------------- - -To see all issues & pull requests closed by this release see the `Git closed -milestone for 3.2.2 -`_ -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 -`_ -on Github. - -**Issue fixes** - -* [#1883](https://github.com/pgRouting/pgrouting/issues/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 - * 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. - -**Build** - -* [#1850](https://github.com/pgRouting/pgrouting/issues/1850): Change Boost - min version to 1.56 - - * Removing support for Boost v1.53, v1.54 & v1.55 - -**New experimental functions** - -* pgr_bellmanFord(Combinations) -* pgr_binaryBreadthFirstSearch(Combinations) -* pgr_bipartite -* pgr_dagShortestPath(Combinations) -* pgr_depthFirstSearch -* Dijkstra Near - - * pgr_dijkstraNear - - * pgr_dijkstraNear(One to Many) - * pgr_dijkstraNear(Many to One) - * pgr_dijkstraNear(Many to Many) - * pgr_dijkstraNear(Combinations) - - * 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) - -* 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.4 Release Notes --------------------------------------------------------------------------------- - -To see all issues & pull requests closed by this release see the `Git closed -milestone for 3.1.4 -`_ -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 -`_ -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 -`_ -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 - - -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. - -**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 -`_ -on Github. - -**New proposed functions** - -* pgr_dijkstra(combinations) -* pgr_dijkstraCost(combinations) - -**Build changes** - -* Minimal requirement for Sphinx: version 1.8 - -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. - -**Issues fixes** - -* [#2189](https://github.com/pgRouting/pgrouting/issues/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. - -**Backport issue 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.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. - -**Backport issue 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 - - - -pgRouting 3.0.3 Release Notes -------------------------------------------------------------------------------- - -**Backport issue 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.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. - -**Issues fixes** - -* [#1378](https://github.com/pgRouting/pgrouting/issues/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. - -**Issues fixes** - -* [#232](https://github.com/pgRouting/pgrouting/issues/232): Honor client - cancel requests in C /C++ code - - -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 -`_ -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(one to one) - * pgr_aStarCostMatrix(one to many) - * pgr_aStarCostMatrix(many to one) - * pgr_aStarCostMatrix(many to many) - -* 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(one to one) - * pgr_bdAstarCostMatrix(one to many) - * pgr_bdAstarCostMatrix(many to one) - * pgr_bdAstarCostMatrix(many to many) - -* 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(one to one) - * pgr_bdDijkstraCostMatrix(one to many) - * pgr_bdDijkstraCostMatrix(many to one) - * pgr_bdDijkstraCostMatrix(many to many) - -* 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 - - * pgr_pickDeliverEuclidean - * pgr_pickDeliver - -* Chinese Postman family - - * pgr_chinesePostman - * pgr_chinesePostmanCost - -* Breadth First Search family - - * pgr_breadthFirstSearch - * pgr_binaryBreadthFirstSearch - -* Bellman Ford family - - * pgr_bellmanFord - * pgr_edwardMoore - -**Moved to legacy** - -* Experimental functions - - * pgr_labelGraph - Use the components family of functions instead. - * Max flow - functions were renamed on v2.5.0 - - * pgr_maxFlowPushRelabel - * pgr_maxFlowBoykovKolmogorov - * pgr_maxFlowEdmondsKarp - * pgr_maximumcardinalitymatching - - * VRP - - * pgr_gsoc_vrppdtw - -* TSP old signatures -* pgr_pointsAsPolygon -* pgr_alphaShape old signature - - - -pgRouting 2.6.3 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.6.3 -`_ -on Github. - -**Bug fixes** - -* [#1219](https://github.com/pgRouting/pgrouting/pull/1219) Implicit cast for - via_path integer to text -* [#1193](https://github.com/pgRouting/pgrouting/pull/1193) Fixed - pgr_pointsAsPolygon breaking when comparing strings in WHERE clause -* [#1185](https://github.com/pgRouting/pgrouting/pull/1185) Improve - FindPostgreSQL.cmake - - - -pgRouting 2.6.2 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.6.2 -`_ -on Github. - -**Bug fixes** - -* [#1152](https://github.com/pgRouting/pgrouting/issues/1152) Fixes driving - distance when vertex is not part of the graph -* [#1098](https://github.com/pgRouting/pgrouting/issues/1098) Fixes windows - test -* [#1165](https://github.com/pgRouting/pgrouting/issues/1165) Fixes build for - python3 and perl5 - - -pgRouting 2.6.1 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.6.1 -`_ -on Github. - -* Fixes server crash on several functions. - - * pgr_floydWarshall - * pgr_johnson - * pgr_astar - * pgr_bdAstar - * pgr_bdDijstra - * pgr_alphashape - * pgr_dijkstraCostMatrix - * pgr_dijkstra - * pgr_dijkstraCost - * pgr_drivingDistance - * pgr_KSP - * pgr_dijkstraVia (proposed) - * pgr_boykovKolmogorov (proposed) - * pgr_edgeDisjointPaths (proposed) - * pgr_edmondsKarp (proposed) - * pgr_maxCardinalityMatch (proposed) - * pgr_maxFlow (proposed) - * pgr_withPoints (proposed) - * pgr_withPointsCost (proposed) - * pgr_withPointsKSP (proposed) - * pgr_withPointsDD (proposed) - * pgr_withPointsCostMatrix (proposed) - * pgr_contractGraph (experimental) - * pgr_pushRelabel (experimental) - * pgr_vrpOneDepot (experimental) - * pgr_gsoc_vrppdtw (experimental) - * Fixes for deprecated functions where also applied but not tested - -* Removed compilation warning for g++8 -* Fixed a fallthrugh on Astar and bdAstar. - - -pgRouting 2.6.0 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.6.0 -`_ -on Github. - - -**New experimental functions** - -* pgr_lineGraphFull - -**Bug fixes** - -* Fix pgr_trsp(text,integer,double precision,integer,double - precision,boolean,boolean[,text]) - - * without restrictions - - * calls pgr_dijkstra when both end points have a fraction IN (0,1) - * calls pgr_withPoints when at least one fraction NOT IN (0,1) - - * with restrictions - - * calls original trsp code - -**Internal code** - -* Cleaned the internal code of trsp(text,integer,integer,boolean,boolean [, - text]) - - * Removed the use of pointers - * Internal code can accept BIGINT - -* Cleaned the internal code of withPoints - - -pgRouting 2.5.5 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.5.5 -`_ -on Github. - -**Bug fixes** - -* Fixes driving distance when vertex is not part of the graph -* Fixes windows test -* Fixes build for python3 and perl5 - - -pgRouting 2.5.4 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the [Git closed milestone for 2.5.4](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.4%22%20) on Github. - -* Fixes server crash on several functions. - - * pgr_floydWarshall - * pgr_johnson - * pgr_astar - * pgr_bdAstar - * pgr_bdDijstra - * pgr_alphashape - * pgr_dijkstraCostMatrix - * pgr_dijkstra - * pgr_dijkstraCost - * pgr_drivingDistance - * pgr_KSP - * pgr_dijkstraVia (proposed) - * pgr_boykovKolmogorov (proposed) - * pgr_edgeDisjointPaths (proposed) - * pgr_edmondsKarp (proposed) - * pgr_maxCardinalityMatch (proposed) - * pgr_maxFlow (proposed) - * pgr_withPoints (proposed) - * pgr_withPointsCost (proposed) - * pgr_withPointsKSP (proposed) - * pgr_withPointsDD (proposed) - * pgr_withPointsCostMatrix (proposed) - * pgr_contractGraph (experimental) - * pgr_pushRelabel (experimental) - * pgr_vrpOneDepot (experimental) - * pgr_gsoc_vrppdtw (experimental) - * Fixes for deprecated functions where also applied but not tested - -* Removed compilation warning for g++8 -* Fixed a fallthrugh on Astar and bdAstar. - - -pgRouting 2.5.3 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.5.3 -`_ -on Github. - -**Bug fixes** - -* Fix for postgresql 11: Removed a compilation error when compiling with - postgreSQL - - -pgRouting 2.5.2 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the [Git closed milestone for 2.5.2](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.2%22%20) on Github. - -**Bug fixes** - -* Fix for postgresql 10.1: Removed a compiler condition - - - -pgRouting 2.5.1 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.5.1 -`_ -on Github. - -**Bug fixes** - -* Fixed prerequisite minimum version of: cmake - - - -pgRouting 2.5.0 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.5.0 -`_ -on Github. - - -**enhancement:** - -* pgr_version is now on SQL language - -**Breaking change on:** - -* pgr_edgeDisjointPaths: - - * Added path_id, cost and agg_cost columns on the result - * Parameter names changed - * The many version results are the union of the one to one version - -**New Signatures** - -* pgr_bdAstar(one to one) - -**New Proposed functions** - -* pgr_bdAstar(one to many) -* pgr_bdAstar(many to one) -* pgr_bdAstar(many to many) -* pgr_bdAstarCost(one to one) -* pgr_bdAstarCost(one to many) -* pgr_bdAstarCost(many to one) -* pgr_bdAstarCost(many to many) -* pgr_bdAstarCostMatrix -* pgr_bdDijkstra(one to many) -* pgr_bdDijkstra(many to one) -* pgr_bdDijkstra(many to many) -* pgr_bdDijkstraCost(one to one) -* pgr_bdDijkstraCost(one to many) -* pgr_bdDijkstraCost(many to one) -* pgr_bdDijkstraCost(many to many) -* pgr_bdDijkstraCostMatrix -* pgr_lineGraph -* pgr_lineGraphFull -* pgr_connectedComponents -* pgr_strongComponents -* pgr_biconnectedComponents -* pgr_articulationPoints -* pgr_bridges - -**Deprecated signatures** - -* pgr_bdastar - use pgr_bdAstar instead - -**Renamed functions** - -* pgr_maxFlowPushRelabel - use pgr_pushRelabel instead -* pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead -* pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead -* pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead - -**Deprecated Function** - -* pgr_pointToEdgeNode - - - -pgRouting 2.4.2 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.4.2 -`_ -on Github. - -**Improvement** - -* Works for postgreSQL 10 - -**Bug fixes** - -* Fixed: Unexpected error column "cname" -* Replace __linux__ with __GLIBC__ for glibc-specific headers and functions - - - - -pgRouting 2.4.1 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed milestone for 2.4.1 -`_ -on Github. - -**Bug fixes** - -* Fixed compiling error on macOS -* Condition error on pgr_withPoints - - -pgRouting 2.4.0 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.4.0 -`_ -on Github. - -**New Signatures** - -* pgr_bdDijkstra - - -**New Proposed Signatures** - -* pgr_maxFlow -* pgr_astar(one to many) -* pgr_astar(many to one) -* pgr_astar(many to many) -* pgr_astarCost(one to one) -* pgr_astarCost(one to many) -* pgr_astarCost(many to one) -* pgr_astarCost(many to many) -* pgr_astarCostMatrix - -**Deprecated signatures** - -* pgr_bddijkstra - use pgr_bdDijkstra instead - -**Deprecated Functions** - -* pgr_pointsToVids - -**Bug fixes** - -* Bug fixes on proposed functions - - * pgr_withPointsKSP: fixed ordering - -* TRSP original code is used with no changes on the compilation warnings - - -pgRouting 2.3.2 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.3.2 -`_ -on Github. - -**Bug Fixes** - -* Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck. -* Fixed pgr_trsp: - - * Alternate code is not executed when the point is in reality a vertex - * Fixed ambiguity on seq - - - -pgRouting 2.3.1 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.3.1 -`_ -on Github. - -**Bug Fixes** - -* Leaks on proposed max_flow functions -* Regression error on pgr_trsp -* Types discrepancy on pgr_createVerticesTable - - - -pgRouting 2.3.0 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.3.0 -`_ -on Github. - -**New Signatures** - -* pgr_TSP -* pgr_aStar - -**New Functions** - -* pgr_eucledianTSP - - -**New Proposed functions** - -* pgr_dijkstraCostMatrix -* pgr_withPointsCostMatrix -* pgr_maxFlowPushRelabel(one to one) -* pgr_maxFlowPushRelabel(one to many) -* pgr_maxFlowPushRelabel(many to one) -* pgr_maxFlowPushRelabel(many to many) -* pgr_maxFlowEdmondsKarp(one to one) -* pgr_maxFlowEdmondsKarp(one to many) -* pgr_maxFlowEdmondsKarp(many to one) -* pgr_maxFlowEdmondsKarp(many to many) -* pgr_maxFlowBoykovKolmogorov (one to one) -* pgr_maxFlowBoykovKolmogorov (one to many) -* pgr_maxFlowBoykovKolmogorov (many to one) -* pgr_maxFlowBoykovKolmogorov (many to many) -* pgr_maximumCardinalityMatching -* pgr_edgeDisjointPaths(one to one) -* pgr_edgeDisjointPaths(one to many) -* pgr_edgeDisjointPaths(many to one) -* pgr_edgeDisjointPaths(many to many) -* pgr_contractGraph - - -**Deprecated signatures** - -* pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead -* pgr_astar - use pgr_aStar instead - - -**Deprecated Functions** - -* pgr_flip_edges -* pgr_vidsToDmatrix -* pgr_pointsToDMatrix -* pgr_textToPoints - - - - -pgRouting 2.2.4 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.2.4 -`_ -on Github. - -**Bug Fixes** - -* Bogus uses of extern "C" -* Build error on Fedora 24 + GCC 6.0 -* Regression error pgr_nodeNetwork - - -pgRouting 2.2.3 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.2.3 -`_ -on Github. - -**Bug Fixes** - -* Fixed compatibility issues with PostgreSQL 9.6. - - -pgRouting 2.2.2 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.2.2 -`_ -on Github. - -**Bug Fixes** - -* Fixed regression error on pgr_drivingDistance - - - -pgRouting 2.2.1 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.2.1 -`_ -on Github. - -**Bug Fixes** - -* Server crash fix on pgr_alphaShape -* Bug fix on With Points family of functions - - - -pgRouting 2.2.0 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.2.0 -`_ -on Github. - - -**Improvements** - -- pgr_nodeNetwork - - - Adding a row_where and outall optional parameters - -- Signature fix - - - pgr_dijkstra -- to match what is documented - - -**New Functions** - -- pgr_floydWarshall -- pgr_Johnson -- pgr_dijkstraCost(one to one) -- pgr_dijkstraCost(one to many) -- pgr_dijkstraCost(many to one) -- pgr_dijkstraCost(many to many) - -**Proposed Functionality** - -- pgr_withPoints(one to one) -- pgr_withPoints(one to many) -- pgr_withPoints(many to one) -- pgr_withPoints(many to many) -- pgr_withPointsCost(one to one) -- pgr_withPointsCost(one to many) -- pgr_withPointsCost(many to one) -- pgr_withPointsCost(many to many) -- pgr_withPointsDD(single vertex) -- pgr_withPointsDD(multiple vertices) -- pgr_withPointsKSP -- pgr_dijkstraVia - - -**Deprecated Functions** - -- pgr_apspWarshall use pgr_floydWarshall instead -- pgr_apspJohnson use pgr_Johnson instead -- pgr_kDijkstraCost use pgr_dijkstraCost instead -- pgr_kDijkstraPath use pgr_dijkstra instead - -**Renamed and Deprecated Function** - -- pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix - - - -pgRouting 2.1.0 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.1.0 -`_ -on Github. - -**New Signatures** - -- pgr_dijkstra(one to many) -- pgr_dijkstra(many to one) -- pgr_dijkstra(many to many) -- pgr_drivingDistance(multiple vertices) - -**Refactored** - -- pgr_dijkstra(one to one) -- pgr_ksp -- pgr_drivingDistance(single vertex) - -**Improvements** - -- pgr_alphaShape function now can generate better (multi)polygon with holes and - alpha parameter. - -**Proposed Functionality** - -- Proposed functions from Steve Woodbridge, (Classified as Convenience by the - author.) - - - pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on - closest edge. - - pgr_flipEdges - flip the edges in an array of geometries so the connect end - to end. - - pgr_textToPoints - convert a string of x,y;x,y;... locations into point - geometries. - - pgr_pointsToVids - convert an array of point geometries into vertex ids. - - pgr_pointsToDMatrix - Create a distance matrix from an array of points. - - pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id. - - pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id. - -- Added proposed functions from GSoc Projects: - - - pgr_vrppdtw - - pgr_vrponedepot - -**Deprecated Functions** - -- pgr_getColumnName -- pgr_getTableName -- pgr_isColumnCndexed -- pgr_isColumnInTable -- pgr_quote_ident -- pgr_versionless -- pgr_startPoint -- pgr_endPoint -- pgr_pointToId - -**No longer supported** - -- Removed the 1.x legacy functions - -**Bug Fixes** - -- Some bug fixes in other functions - - -**Refactoring Internal Code** - -- A C and C++ library for developer was created - - - encapsulates postgreSQL related functions - - encapsulates Boost.Graph graphs - - - Directed Boost.Graph - - Undirected Boost.graph. - - - allow any-integer in the id's - - allow any-numerical on the cost/reverse_cost columns - -- Instead of generating many libraries: - - All functions are encapsulated in one library - - The library has the prefix 2-1-0 - - - -pgRouting 2.0.1 Release Notes -------------------------------------------------------------------------------- - -Minor bug fixes. - -**Bug Fixes** - -* No track of the bug fixes were kept. - - - -pgRouting 2.0.0 Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 2.0.0 -`_ -on Github. - -With the release of pgRouting 2.0.0 the library has abandoned backwards -compatibility to `pgRouting 1.x Release Notes`_ releases. -The main Goals for this release are: - -* Major restructuring of pgRouting. -* Standardization of the function naming -* Preparation of the project for future development. - -As a result of this effort: - -* pgRouting has a simplified structure -* Significant new functionality has being added -* Documentation has being integrated -* Testing has being integrated -* And made it easier for multiple developers to make contributions. - - -**Important Changes** - -* Graph Analytics - tools for detecting and fixing connection some problems in a - graph -* A collection of useful utility functions -* Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall) -* Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, - pgr_bdDijkstra) -* One to many nodes search (pgr_kDijkstra) -* K alternate paths shortest path (pgr_ksp) -* New TSP solver that simplifies the code and the build process (pgr_tsp), - dropped "Gaul Library" dependency -* Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star -* Dropped support for Shooting Star -* Built a test infrastructure that is run before major code changes are checked - in -* Tested and fixed most all of the outstanding bugs reported against 1.x that - existing in the 2.0-dev code base. -* Improved build process for Windows -* Automated testing on Linux and Windows platforms trigger by every commit -* Modular library design -* Compatibility with PostgreSQL 9.1 or newer -* Compatibility with PostGIS 2.0 or newer -* Installs as PostgreSQL EXTENSION -* Return types re factored and unified -* Support for table SCHEMA in function parameters -* Support for ``st_`` PostGIS function prefix -* Added ``pgr_`` prefix to functions and types -* Better documentation: https://docs.pgrouting.org -* shooting_star is discontinued - - - - -pgRouting 1.x Release Notes -------------------------------------------------------------------------------- - -To see the issues closed by this release see the `Git closed issues for 1.x -`_ -on Github. -The following release notes have been copied from the previous ``RELEASE_NOTES`` -file and are kept as a reference. - - -Changes for release 1.05 -............................................................................... - -* Bug fixes - - -Changes for release 1.03 -............................................................................... - -* Much faster topology creation -* Bug fixes - - -Changes for release 1.02 -............................................................................... - -* Shooting* bug fixes -* Compilation problems solved - - -Changes for release 1.01 -............................................................................... - -* Shooting* bug fixes - - -Changes for release 1.0 -............................................................................... - -* Core and extra functions are separated -* Cmake build process -* Bug fixes - - -Changes for release 1.0.0b -............................................................................... - -* Additional SQL file with more simple names for wrapper functions -* Bug fixes - - -Changes for release 1.0.0a -............................................................................... - -* Shooting* shortest path algorithm for real road networks -* Several SQL bugs were fixed - - -Changes for release 0.9.9 -............................................................................... - -* PostgreSQL 8.2 support -* Shortest path functions return empty result if they could not find any path - - -Changes for release 0.9.8 -............................................................................... - -* Renumbering scheme was added to shortest path functions -* Directed shortest path functions were added -* routing_postgis.sql was modified to use dijkstra in TSP search +MOVED TO https://github.com/pgRouting/pgrouting/main/NEWS.md diff --git a/NEWS.md b/NEWS.md new file mode 100644 index 0000000000..271dfc3216 --- /dev/null +++ b/NEWS.md @@ -0,0 +1,1689 @@ +# pgRouting 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 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.6.2%22) + +**Others** + +* Adjust NEWS generator + + * Name change to `NEWS.md` for better visualization on GitHub + +## pgRouting 3.6 + + +### 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) Standarize output + pgr_aStar + + * Standarizing 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) Standarize output + pgr_bdAstar + + * Standarizing 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. + +* [#2547](https://github.com/pgRouting/pgrouting/pull/2547) Standarize output + and modifying signature pgr_KSP + + + * Result columns standarized 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 overload functions: + + * ``pgr_ksp`` (One to Many) + * ``pgr_ksp`` (Many to One) + * ``pgr_ksp`` (Many to Many) + * ``pgr_ksp`` (Combinations) + + +* [#2548](https://github.com/pgRouting/pgrouting/pull/2548) Standarize output + pgr_drivingdistance + + + * Standarizing 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) Standarize output + and modifying signature pgr_withPointsDD + + + * Signature change: ``driving_side`` parameter changed from named optional to + unnamed compulsory **driving side**. + + * ``pgr_withPointsDD`` (`Single vertex`) + * ``pgr_withPointsDD`` (`Multiple vertices`) + + * Standarizing 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) Standarize output + and modifying signature pgr_withPointsKSP + + + * Standarizing 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 overload functions + + * ``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:: SQL standarization + +* [#2555](https://github.com/pgRouting/pgrouting/pull/2555) standarize + 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_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 + + * Standarizing 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`` + +* Unclassified + + * ``pgr_hawickCircuits`` + +**Official functions changes** + +* Flow functions + + * ``pgr_maxCardinalityMatch(text)`` + + * Deprecating ``pgr_maxCardinalityMatch(text,boolean)`` + +**Deprecated Functions** + +* Turn Restrictions + + * ``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)`` + +## 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 + + * 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 + + +### 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. + +**Build** + +* [#1850](https://github.com/pgRouting/pgrouting/issues/1850): Change Boost + min version to 1.56 + + * Removing support for Boost v1.53, v1.54 & v1.55 + +**New experimental functions** + +* pgr_bellmanFord(Combinations) +* pgr_binaryBreadthFirstSearch(Combinations) +* pgr_bipartite +* pgr_dagShortestPath(Combinations) +* pgr_depthFirstSearch +* Dijkstra Near + + * pgr_dijkstraNear + + * pgr_dijkstraNear(One to Many) + * pgr_dijkstraNear(Many to One) + * pgr_dijkstraNear(Many to Many) + * pgr_dijkstraNear(Combinations) + + * 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) + +* 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 + + +### 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. + +**New proposed functions** + +* pgr_dijkstra(combinations) +* pgr_dijkstraCost(combinations) + +**Build changes** + +* Minimal requirement for Sphinx: version 1.8 + +## 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 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.6%22) +on Github. + +**Issues fixes** + +* [#2189](https://github.com/pgRouting/pgrouting/issues/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 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.5%22) +on Github. + +**Backport issue 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.0.4 Release Notes + +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. + +**Backport issue 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 + + + +### pgRouting 3.0.3 Release Notes + +**Backport issue 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.0.2 Release Notes + +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. + +**Issues fixes** + +* [#1378](https://github.com/pgRouting/pgrouting/issues/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 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.1%22) +on Github. + +**Issues fixes** + +* [#232](https://github.com/pgRouting/pgrouting/issues/232): Honor client + cancel requests in C /C++ code + + +### 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(one to one) + * pgr_aStarCostMatrix(one to many) + * pgr_aStarCostMatrix(many to one) + * pgr_aStarCostMatrix(many to many) + +* 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(one to one) + * pgr_bdAstarCostMatrix(one to many) + * pgr_bdAstarCostMatrix(many to one) + * pgr_bdAstarCostMatrix(many to many) + +* 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(one to one) + * pgr_bdDijkstraCostMatrix(one to many) + * pgr_bdDijkstraCostMatrix(many to one) + * pgr_bdDijkstraCostMatrix(many to many) + +* 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 + + * pgr_pickDeliverEuclidean + * pgr_pickDeliver + +* Chinese Postman family + + * pgr_chinesePostman + * pgr_chinesePostmanCost + +* Breadth First Search family + + * pgr_breadthFirstSearch + * pgr_binaryBreadthFirstSearch + +* Bellman Ford family + + * pgr_bellmanFord + * pgr_edwardMoore + +**Moved to legacy** + +* Experimental functions + + * pgr_labelGraph - Use the components family of functions instead. + * Max flow - functions were renamed on v2.5.0 + + * pgr_maxFlowPushRelabel + * pgr_maxFlowBoykovKolmogorov + * pgr_maxFlowEdmondsKarp + * pgr_maximumcardinalitymatching + + * VRP + + * pgr_gsoc_vrppdtw + +* TSP old signatures +* pgr_pointsAsPolygon +* pgr_alphaShape old signature + +# pgRouting 2 + + +## pgRouting 2.6 + + +### pgRouting 2.6.3 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.6.3 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.6.3%22%20) +on Github. + +**Bug fixes** + +* [#1219](https://github.com/pgRouting/pgrouting/pull/1219) Implicit cast for + via_path integer to text +* [#1193](https://github.com/pgRouting/pgrouting/pull/1193) Fixed + pgr_pointsAsPolygon breaking when comparing strings in WHERE clause +* [#1185](https://github.com/pgRouting/pgrouting/pull/1185) Improve + FindPostgreSQL.cmake + + + +### pgRouting 2.6.2 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.6.2 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.6.2%22%20) +on Github. + +**Bug fixes** + +* [#1152](https://github.com/pgRouting/pgrouting/issues/1152) Fixes driving + distance when vertex is not part of the graph +* [#1098](https://github.com/pgRouting/pgrouting/issues/1098) Fixes windows + test +* [#1165](https://github.com/pgRouting/pgrouting/issues/1165) Fixes build for + python3 and perl5 + + +### pgRouting 2.6.1 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.6.1 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.6.1%22%20) +on Github. + +* Fixes server crash on several functions. + + * pgr_floydWarshall + * pgr_johnson + * pgr_astar + * pgr_bdAstar + * pgr_bdDijstra + * pgr_alphashape + * pgr_dijkstraCostMatrix + * pgr_dijkstra + * pgr_dijkstraCost + * pgr_drivingDistance + * pgr_KSP + * pgr_dijkstraVia (proposed) + * pgr_boykovKolmogorov (proposed) + * pgr_edgeDisjointPaths (proposed) + * pgr_edmondsKarp (proposed) + * pgr_maxCardinalityMatch (proposed) + * pgr_maxFlow (proposed) + * pgr_withPoints (proposed) + * pgr_withPointsCost (proposed) + * pgr_withPointsKSP (proposed) + * pgr_withPointsDD (proposed) + * pgr_withPointsCostMatrix (proposed) + * pgr_contractGraph (experimental) + * pgr_pushRelabel (experimental) + * pgr_vrpOneDepot (experimental) + * pgr_gsoc_vrppdtw (experimental) + * Fixes for deprecated functions where also applied but not tested + +* Removed compilation warning for g++8 +* Fixed a fallthrugh on Astar and bdAstar. + + +### pgRouting 2.6.0 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.6.0 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.6.0%22%20) +on Github. + + +**New experimental functions** + +* pgr_lineGraphFull + +**Bug fixes** + +* Fix pgr_trsp(text,integer,double precision,integer,double + precision,boolean,boolean[,text]) + + * without restrictions + + * calls pgr_dijkstra when both end points have a fraction IN (0,1) + * calls pgr_withPoints when at least one fraction NOT IN (0,1) + + * with restrictions + + * calls original trsp code + +**Internal code** + +* Cleaned the internal code of trsp(text,integer,integer,boolean,boolean [, + text]) + + * Removed the use of pointers + * Internal code can accept BIGINT + +* Cleaned the internal code of withPoints + +## pgRouting 2.5 + + +### pgRouting 2.5.5 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.5.5 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.5%22%20) +on Github. + +**Bug fixes** + +* Fixes driving distance when vertex is not part of the graph +* Fixes windows test +* Fixes build for python3 and perl5 + + +### pgRouting 2.5.4 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.5.4](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.4%22%20) on Github. + +* Fixes server crash on several functions. + + * pgr_floydWarshall + * pgr_johnson + * pgr_astar + * pgr_bdAstar + * pgr_bdDijstra + * pgr_alphashape + * pgr_dijkstraCostMatrix + * pgr_dijkstra + * pgr_dijkstraCost + * pgr_drivingDistance + * pgr_KSP + * pgr_dijkstraVia (proposed) + * pgr_boykovKolmogorov (proposed) + * pgr_edgeDisjointPaths (proposed) + * pgr_edmondsKarp (proposed) + * pgr_maxCardinalityMatch (proposed) + * pgr_maxFlow (proposed) + * pgr_withPoints (proposed) + * pgr_withPointsCost (proposed) + * pgr_withPointsKSP (proposed) + * pgr_withPointsDD (proposed) + * pgr_withPointsCostMatrix (proposed) + * pgr_contractGraph (experimental) + * pgr_pushRelabel (experimental) + * pgr_vrpOneDepot (experimental) + * pgr_gsoc_vrppdtw (experimental) + * Fixes for deprecated functions where also applied but not tested + +* Removed compilation warning for g++8 +* Fixed a fallthrugh on Astar and bdAstar. + + +### pgRouting 2.5.3 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.5.3 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.3%22%20) +on Github. + +**Bug fixes** + +* Fix for postgresql 11: Removed a compilation error when compiling with + postgreSQL + + +### pgRouting 2.5.2 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.5.2](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.2%22%20) on Github. + +**Bug fixes** + +* Fix for postgresql 10.1: Removed a compiler condition + + + +### pgRouting 2.5.1 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.5.1 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.1%22%20) +on Github. + +**Bug fixes** + +* Fixed prerequisite minimum version of: cmake + + + +### pgRouting 2.5.0 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.5.0 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed) +on Github. + + +**enhancement:** + +* pgr_version is now on SQL language + +**Breaking change on:** + +* pgr_edgeDisjointPaths: + + * Added path_id, cost and agg_cost columns on the result + * Parameter names changed + * The many version results are the union of the one to one version + +**New Signatures** + +* pgr_bdAstar(one to one) + +**New Proposed functions** + +* pgr_bdAstar(one to many) +* pgr_bdAstar(many to one) +* pgr_bdAstar(many to many) +* pgr_bdAstarCost(one to one) +* pgr_bdAstarCost(one to many) +* pgr_bdAstarCost(many to one) +* pgr_bdAstarCost(many to many) +* pgr_bdAstarCostMatrix +* pgr_bdDijkstra(one to many) +* pgr_bdDijkstra(many to one) +* pgr_bdDijkstra(many to many) +* pgr_bdDijkstraCost(one to one) +* pgr_bdDijkstraCost(one to many) +* pgr_bdDijkstraCost(many to one) +* pgr_bdDijkstraCost(many to many) +* pgr_bdDijkstraCostMatrix +* pgr_lineGraph +* pgr_lineGraphFull +* pgr_connectedComponents +* pgr_strongComponents +* pgr_biconnectedComponents +* pgr_articulationPoints +* pgr_bridges + +**Deprecated signatures** + +* pgr_bdastar - use pgr_bdAstar instead + +**Renamed functions** + +* pgr_maxFlowPushRelabel - use pgr_pushRelabel instead +* pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead +* pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead +* pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead + +**Deprecated Function** + +* pgr_pointToEdgeNode + + +## pgRouting 2.4 + + +### pgRouting 2.4.2 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.4.2 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20) +on Github. + +**Improvement** + +* Works for postgreSQL 10 + +**Bug fixes** + +* Fixed: Unexpected error column "cname" +* Replace __linux__ with __GLIBC__ for glibc-specific headers and functions + + + + +### pgRouting 2.4.1 Release Notes + +To see the issues closed by this release see the [Git closed milestone for 2.4.1 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20) +on Github. + +**Bug fixes** + +* Fixed compiling error on macOS +* Condition error on pgr_withPoints + + +### pgRouting 2.4.0 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.4.0 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed) +on Github. + +**New Signatures** + +* pgr_bdDijkstra + + +**New Proposed Signatures** + +* pgr_maxFlow +* pgr_astar(one to many) +* pgr_astar(many to one) +* pgr_astar(many to many) +* pgr_astarCost(one to one) +* pgr_astarCost(one to many) +* pgr_astarCost(many to one) +* pgr_astarCost(many to many) +* pgr_astarCostMatrix + +**Deprecated signatures** + +* pgr_bddijkstra - use pgr_bdDijkstra instead + +**Deprecated Functions** + +* pgr_pointsToVids + +**Bug fixes** + +* Bug fixes on proposed functions + + * pgr_withPointsKSP: fixed ordering + +* TRSP original code is used with no changes on the compilation warnings + +## pgRouting 2.3 + +### pgRouting 2.3.2 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.3.2 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed) +on Github. + +**Bug Fixes** + +* Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck. +* Fixed pgr_trsp: + + * Alternate code is not executed when the point is in reality a vertex + * Fixed ambiguity on seq + + + +### pgRouting 2.3.1 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.3.1 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed) +on Github. + +**Bug Fixes** + +* Leaks on proposed max_flow functions +* Regression error on pgr_trsp +* Types discrepancy on pgr_createVerticesTable + + + +### pgRouting 2.3.0 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.3.0 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed) +on Github. + +**New Signatures** + +* pgr_TSP +* pgr_aStar + +**New Functions** + +* pgr_eucledianTSP + + +**New Proposed functions** + +* pgr_dijkstraCostMatrix +* pgr_withPointsCostMatrix +* pgr_maxFlowPushRelabel(one to one) +* pgr_maxFlowPushRelabel(one to many) +* pgr_maxFlowPushRelabel(many to one) +* pgr_maxFlowPushRelabel(many to many) +* pgr_maxFlowEdmondsKarp(one to one) +* pgr_maxFlowEdmondsKarp(one to many) +* pgr_maxFlowEdmondsKarp(many to one) +* pgr_maxFlowEdmondsKarp(many to many) +* pgr_maxFlowBoykovKolmogorov (one to one) +* pgr_maxFlowBoykovKolmogorov (one to many) +* pgr_maxFlowBoykovKolmogorov (many to one) +* pgr_maxFlowBoykovKolmogorov (many to many) +* pgr_maximumCardinalityMatching +* pgr_edgeDisjointPaths(one to one) +* pgr_edgeDisjointPaths(one to many) +* pgr_edgeDisjointPaths(many to one) +* pgr_edgeDisjointPaths(many to many) +* pgr_contractGraph + + +**Deprecated signatures** + +* pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead +* pgr_astar - use pgr_aStar instead + + +**Deprecated Functions** + +* pgr_flip_edges +* pgr_vidsToDmatrix +* pgr_pointsToDMatrix +* pgr_textToPoints + +## pgRouting 2.2 + + +### pgRouting 2.2.4 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.2.4 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed) +on Github. + +**Bug Fixes** + +* Bogus uses of extern "C" +* Build error on Fedora 24 + GCC 6.0 +* Regression error pgr_nodeNetwork + + +### pgRouting 2.2.3 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.2.3 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed) +on Github. + +**Bug Fixes** + +* Fixed compatibility issues with PostgreSQL 9.6. + + +### pgRouting 2.2.2 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.2.2 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed) +on Github. + +**Bug Fixes** + +* Fixed regression error on pgr_drivingDistance + + + +### pgRouting 2.2.1 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.2.1 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed) +on Github. + +**Bug Fixes** + +* Server crash fix on pgr_alphaShape +* Bug fix on With Points family of functions + + + +### pgRouting 2.2.0 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.2.0 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed) +on Github. + + +**Improvements** + +- pgr_nodeNetwork + + - Adding a row_where and outall optional parameters + +- Signature fix + + - pgr_dijkstra -- to match what is documented + + +**New Functions** + +- pgr_floydWarshall +- pgr_Johnson +- pgr_dijkstraCost(one to one) +- pgr_dijkstraCost(one to many) +- pgr_dijkstraCost(many to one) +- pgr_dijkstraCost(many to many) + +**Proposed Functionality** + +- pgr_withPoints(one to one) +- pgr_withPoints(one to many) +- pgr_withPoints(many to one) +- pgr_withPoints(many to many) +- pgr_withPointsCost(one to one) +- pgr_withPointsCost(one to many) +- pgr_withPointsCost(many to one) +- pgr_withPointsCost(many to many) +- pgr_withPointsDD(single vertex) +- pgr_withPointsDD(multiple vertices) +- pgr_withPointsKSP +- pgr_dijkstraVia + + +**Deprecated Functions** + +- pgr_apspWarshall use pgr_floydWarshall instead +- pgr_apspJohnson use pgr_Johnson instead +- pgr_kDijkstraCost use pgr_dijkstraCost instead +- pgr_kDijkstraPath use pgr_dijkstra instead + +**Renamed and Deprecated Function** + +- pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix + +## pgRouting 2.1 + + +### pgRouting 2.1.0 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.1.0 +](https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed) +on Github. + +**New Signatures** + +- pgr_dijkstra(one to many) +- pgr_dijkstra(many to one) +- pgr_dijkstra(many to many) +- pgr_drivingDistance(multiple vertices) + +**Refactored** + +- pgr_dijkstra(one to one) +- pgr_ksp +- pgr_drivingDistance(single vertex) + +**Improvements** + +- pgr_alphaShape function now can generate better (multi)polygon with holes and + alpha parameter. + +**Proposed Functionality** + +- Proposed functions from Steve Woodbridge, (Classified as Convenience by the + author.) + + - pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on + closest edge. + - pgr_flipEdges - flip the edges in an array of geometries so the connect end + to end. + - pgr_textToPoints - convert a string of x,y;x,y;... locations into point + geometries. + - pgr_pointsToVids - convert an array of point geometries into vertex ids. + - pgr_pointsToDMatrix - Create a distance matrix from an array of points. + - pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id. + - pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id. + +- Added proposed functions from GSoc Projects: + + - pgr_vrppdtw + - pgr_vrponedepot + +**Deprecated Functions** + +- pgr_getColumnName +- pgr_getTableName +- pgr_isColumnCndexed +- pgr_isColumnInTable +- pgr_quote_ident +- pgr_versionless +- pgr_startPoint +- pgr_endPoint +- pgr_pointToId + +**No longer supported** + +- Removed the 1.x legacy functions + +**Bug Fixes** + +- Some bug fixes in other functions + + +**Refactoring Internal Code** + +- A C and C++ library for developer was created + + - encapsulates postgreSQL related functions + - encapsulates Boost.Graph graphs + + - Directed Boost.Graph + - Undirected Boost.graph. + + - allow any-integer in the id's + - allow any-numerical on the cost/reverse_cost columns + +- Instead of generating many libraries: + - All functions are encapsulated in one library + - The library has the prefix 2-1-0 + + +## pgRouting 2.0 + + +### pgRouting 2.0.1 Release Notes + +Minor bug fixes. + +**Bug Fixes** + +* No track of the bug fixes were kept. + +### pgRouting 2.0.0 Release Notes + +To see the issues closed by this release see the [Git closed issues for 2.0.0 +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed) +on Github. + +With the release of pgRouting 2.0.0 the library has abandoned backwards +compatibility to `pgRouting 1.0`_ releases. +The main Goals for this release are: + +* Major restructuring of pgRouting. +* Standardization of the function naming +* Preparation of the project for future development. + +As a result of this effort: + +* pgRouting has a simplified structure +* Significant new functionality has being added +* Documentation has being integrated +* Testing has being integrated +* And made it easier for multiple developers to make contributions. + + +**Important Changes** + +* Graph Analytics - tools for detecting and fixing connection some problems in a + graph +* A collection of useful utility functions +* Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall) +* Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, + pgr_bdDijkstra) +* One to many nodes search (pgr_kDijkstra) +* K alternate paths shortest path (pgr_ksp) +* New TSP solver that simplifies the code and the build process (pgr_tsp), + dropped "Gaul Library" dependency +* Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star +* Dropped support for Shooting Star +* Built a test infrastructure that is run before major code changes are checked + in +* Tested and fixed most all of the outstanding bugs reported against 1.x that + existing in the 2.0-dev code base. +* Improved build process for Windows +* Automated testing on Linux and Windows platforms trigger by every commit +* Modular library design +* Compatibility with PostgreSQL 9.1 or newer +* Compatibility with PostGIS 2.0 or newer +* Installs as PostgreSQL EXTENSION +* Return types re factored and unified +* Support for table SCHEMA in function parameters +* Support for ``st_`` PostGIS function prefix +* Added ``pgr_`` prefix to functions and types +* Better documentation: https://docs.pgrouting.org +* shooting_star is discontinued + +# pgRouting 1 + +## pgRouting 1.0 + + +To see the issues closed by this release see the [Git closed issues for 1.x +](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed) +on Github. +The following release notes have been copied from the previous ``RELEASE_NOTES`` +file and are kept as a reference. + + +Changes for release 1.05 + +* Bug fixes + + +Changes for release 1.03 + +* Much faster topology creation +* Bug fixes + + +Changes for release 1.02 + +* Shooting* bug fixes +* Compilation problems solved + +Changes for release 1.01 + +* Shooting* bug fixes + + +Changes for release 1.0 + +* Core and extra functions are separated +* Cmake build process +* Bug fixes + + +Changes for release 1.0.0b + +* Additional SQL file with more simple names for wrapper functions +* Bug fixes + + +Changes for release 1.0.0a + +* Shooting* shortest path algorithm for real road networks +* Several SQL bugs were fixed + + +Changes for release 0.9.9 + +* PostgreSQL 8.2 support +* Shortest path functions return empty result if they could not find any path + + +Changes for release 0.9.8 + +* Renumbering scheme was added to shortest path functions +* Directed shortest path functions were added +* routing_postgis.sql was modified to use dijkstra in TSP search diff --git a/doc/conf.py.in b/doc/conf.py.in index 0abac52a3b..14816fa941 100644 --- a/doc/conf.py.in +++ b/doc/conf.py.in @@ -390,7 +390,7 @@ rst_epilog=""" .. |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)`` - +.. |epilog_end| replace:: just a marker for notes2news """ # Create a compressed PDF diff --git a/doc/driving_distance/drivingDistance-category.rst b/doc/driving_distance/drivingDistance-category.rst index e52f978563..08978bef70 100644 --- a/doc/driving_distance/drivingDistance-category.rst +++ b/doc/driving_distance/drivingDistance-category.rst @@ -89,7 +89,6 @@ Parameters Where: -:ANY-INTEGER: ``SMALLINT``, ``INTEGER``, ``BIGINT`` :ANY-NUMERIC: ``SMALLINT``, ``INTEGER``, ``BIGINT``, ``REAL``, ``FLOAT`` .. mst-dd-params_end @@ -153,16 +152,8 @@ Returns set of |result-spantree| - ``FLOAT`` - Aggregate cost from ``start_vid`` to ``node``. -Where: - -:ANY-INTEGER: SMALLINT, INTEGER, BIGINT -:ANY-NUMERIC: SMALLINT, INTEGER, BIGINT, REAL, FLOAT, NUMERIC - .. spantree-result-columns-end -.. NOTE:: Column ``pred`` only applies to :doc:`pgr_drivingDistance` and - :doc:`pgr_withPointsDD`. - See Also ------------------------------------------------------------------------------- diff --git a/doc/driving_distance/pgr_drivingDistance.rst b/doc/driving_distance/pgr_drivingDistance.rst index c9addd4a59..003f563ebb 100644 --- a/doc/driving_distance/pgr_drivingDistance.rst +++ b/doc/driving_distance/pgr_drivingDistance.rst @@ -22,7 +22,7 @@ .. rubric:: Availability -:Version 3.6.0: +.. rubric:: Version 3.6.0 * Standarizing output columns to |result-spantree| @@ -35,12 +35,12 @@ * Result column name change: ``from_v`` to ``start_vid``. * Added ``depth`` and ``pred`` result columns. -:Version 2.1.0: +.. rubric:: Version 2.1.0 * Signature change pgr_drivingDistance(single vertex) * New **Official** pgr_drivingDistance(multiple vertices) -:Version 2.0.0: +.. rubric:: Version 2.0.0 * Official:: pgr_drivingDistance(single vertex) diff --git a/doc/src/index.rst b/doc/src/index.rst index 75e9fa135f..9da7cd4589 100644 --- a/doc/src/index.rst +++ b/doc/src/index.rst @@ -89,6 +89,15 @@ Available Functions but not official pgRouting functions :doc:`release_notes` =============================================================================== +Current release +------------------------------------------------------------------------------- +.. include:: release_notes.rst + :start-after: 0%22>`_ + :end-before: pgRouting 3.6 + +All releases +------------------------------------------------------------------------------- + .. toctree:: :maxdepth: 2 diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index ad4c967611..7ec3c6e8fb 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -16,15 +16,36 @@ Release Notes To see the full list of changes check the list of `Git commits `_ on Github. -.. contents:: Contents +.. contents:: Mayors :local: + :depth: 1 +pgRouting 3 +******************************************************************************* +.. contents:: Minors 3.x + :local: + :depth: 1 pgRouting 3.6.2 Release Notes ------------------------------------------------------------------------------- -No Changes Yet +To see all issues & pull requests closed by this release see the `Git closed +milestone for 3.6.2 +`__ + +.. rubric:: Others + +* Adjust NEWS generator + + * Name change to `NEWS.md` for better visualization on GitHub + +pgRouting 3.6 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 pgRouting 3.6.1 Release Notes ------------------------------------------------------------------------------- @@ -75,8 +96,8 @@ milestone for 3.6.0 pgr_drivingdistance .. include:: pgr_drivingDistance.rst - :start-after: Version 3.6.0: - :end-before: :Version + :start-after: Version 3.6.0 + :end-before: .. rubric .. rubric:: Proposed functions changes @@ -122,6 +143,12 @@ milestone for 3.6.0 deprecated messages * On new internal function: do not use named parameters and default parameters. +pgRouting 3.5 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 pgRouting 3.5.1 Release Notes ------------------------------------------------------------------------------- @@ -182,6 +209,13 @@ milestone for 3.5.0 * ``pgr_dijkstra`` (`One to Many`) added ``end_vid`` column. * ``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column. +pgRouting 3.4 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 + pgRouting 3.4.2 Release Notes ------------------------------------------------------------------------------- @@ -287,6 +321,13 @@ milestone for 3.4.0 * ``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)`` * ``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)`` +pgRouting 3.3 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 + pgRouting 3.3.5 Release Notes ------------------------------------------------------------------------------- @@ -431,6 +472,13 @@ on Github. * pgr_depthFirstSearch(Multiple vertices) * pgr_depthFirstSearch(Single vertex) +pgRouting 3.2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 + pgRouting 3.2.2 Release Notes ------------------------------------------------------------------------------- @@ -538,6 +586,13 @@ on Github. * pgr_withPoints(Combinations) * pgr_withPointsCost(Combinations) +pgRouting 3.1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 + pgRouting 3.1.4 Release Notes -------------------------------------------------------------------------------- @@ -632,6 +687,13 @@ on Github. * Minimal requirement for Sphinx: version 1.8 +pgRouting 3.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 + pgRouting 3.0.6 Release Notes -------------------------------------------------------------------------------- @@ -736,6 +798,10 @@ on Github. 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 `_ @@ -903,7 +969,19 @@ on Github. * pgr_pointsAsPolygon * pgr_alphaShape old signature +pgRouting 2 +******************************************************************************* + +.. contents:: Minors 2.x + :local: + :depth: 1 +pgRouting 2.6 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 pgRouting 2.6.3 Release Notes ------------------------------------------------------------------------------- @@ -1017,6 +1095,12 @@ on Github. * Cleaned the internal code of withPoints +pgRouting 2.5 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 pgRouting 2.5.5 Release Notes ------------------------------------------------------------------------------- @@ -1174,6 +1258,12 @@ on Github. * pgr_pointToEdgeNode +pgRouting 2.4 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 pgRouting 2.4.2 Release Notes ------------------------------------------------------------------------------- @@ -1247,6 +1337,8 @@ on Github. * TRSP original code is used with no changes on the compilation warnings +pgRouting 2.3 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ pgRouting 2.3.2 Release Notes ------------------------------------------------------------------------------- @@ -1334,8 +1426,12 @@ on Github. * pgr_pointsToDMatrix * pgr_textToPoints +pgRouting 2.2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - +.. contents:: Contents + :local: + :depth: 1 pgRouting 2.2.4 Release Notes ------------------------------------------------------------------------------- @@ -1445,7 +1541,12 @@ on Github. - pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix +pgRouting 2.1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +.. contents:: Contents + :local: + :depth: 1 pgRouting 2.1.0 Release Notes ------------------------------------------------------------------------------- @@ -1532,6 +1633,12 @@ on Github. - The library has the prefix 2-1-0 +pgRouting 2.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 pgRouting 2.0.1 Release Notes ------------------------------------------------------------------------------- @@ -1542,8 +1649,6 @@ Minor bug fixes. * No track of the bug fixes were kept. - - pgRouting 2.0.0 Release Notes ------------------------------------------------------------------------------- @@ -1552,7 +1657,7 @@ To see the issues closed by this release see the `Git closed issues for 2.0.0 on Github. With the release of pgRouting 2.0.0 the library has abandoned backwards -compatibility to `pgRouting 1.x Release Notes`_ releases. +compatibility to `pgRouting 1.0`_ releases. The main Goals for this release are: * Major restructuring of pgRouting. @@ -1599,11 +1704,15 @@ As a result of this effort: * Better documentation: https://docs.pgrouting.org * shooting_star is discontinued +pgRouting 1 +******************************************************************************* +pgRouting 1.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -pgRouting 1.x Release Notes -------------------------------------------------------------------------------- +.. contents:: Contents + :local: + :depth: 1 To see the issues closed by this release see the `Git closed issues for 1.x `_ @@ -1613,33 +1722,32 @@ file and are kept as a reference. Changes for release 1.05 -............................................................................... +------------------------------------------------------------------------------- * Bug fixes Changes for release 1.03 -............................................................................... +------------------------------------------------------------------------------- * Much faster topology creation * Bug fixes Changes for release 1.02 -............................................................................... +------------------------------------------------------------------------------- * Shooting* bug fixes * Compilation problems solved - Changes for release 1.01 -............................................................................... +------------------------------------------------------------------------------- * Shooting* bug fixes Changes for release 1.0 -............................................................................... +------------------------------------------------------------------------------- * Core and extra functions are separated * Cmake build process @@ -1647,28 +1755,28 @@ Changes for release 1.0 Changes for release 1.0.0b -............................................................................... +------------------------------------------------------------------------------- * Additional SQL file with more simple names for wrapper functions * Bug fixes Changes for release 1.0.0a -............................................................................... +------------------------------------------------------------------------------- * Shooting* shortest path algorithm for real road networks * Several SQL bugs were fixed Changes for release 0.9.9 -............................................................................... +------------------------------------------------------------------------------- * PostgreSQL 8.2 support * Shortest path functions return empty result if they could not find any path Changes for release 0.9.8 -............................................................................... +------------------------------------------------------------------------------- * Renumbering scheme was added to shortest path functions * Directed shortest path functions were added diff --git a/tools/release-scripts/notes2news.pl b/tools/release-scripts/notes2news.pl index 978d6c4311..8789dc3539 100755 --- a/tools/release-scripts/notes2news.pl +++ b/tools/release-scripts/notes2news.pl @@ -21,14 +21,15 @@ use strict; use warnings; use File::Find; +use Data::Dumper; sub Usage { die "Usage: notes2news.pl (from the root of the repository or pre-commit hook)\n"; } - +my $DEBUG = ''; my $in_file = "doc/src/release_notes.rst"; -my $out_file = "NEWS"; +my $out_file = "NEWS.md"; my $ofh; open($ofh, ">$out_file") || die "ERROR: failed to open '$out_file' for write! : $!\n"; @@ -36,6 +37,10 @@ sub Usage { my $ifh; open($ifh, "$in_file") || die "ERROR: failed to open '$in_file' for read! : $!\n"; +my %conversions = get_substitutions(); +my $check = join '|', keys %conversions; +print Dumper(\%conversions) if $DEBUG; + my $skipping = 1; my $file = ''; @@ -45,6 +50,25 @@ sub Usage { next if $skipping and $line !~ /^pgRouting/; $skipping = 0; + next if $line =~ /contents|:local:|:depth:|\*\*\*\*\*\*\*|\=\=\=\=\=\=\=|\-\-\-\-\-\-\-|\+\+\+\+\+\+\+\+/; + + $line =~ s/[\|]+//g; + $line =~ s/($check)/$conversions{$1}/go; + + # Handling the headers + if ($line =~ m/^pgRouting [0-9]$/i) { + print $ofh "# $line"; + next; + }; + if ($line =~ m/^pgRouting [0-9].[0-9]$/i) { + print $ofh "## $line"; + next; + }; + if ($line =~ m/^pgRouting [0-9].[0-9].[0-9] Release Notes$/i) { + print $ofh "### $line"; + next; + }; + # get include filename if ($line =~ /include/) { $line =~ s/^.*include\:\: (.*)/$1/; @@ -59,10 +83,10 @@ sub Usage { }, "doc" ); foreach(@wanted_files){ - print "wanted: $_\n" + print "wanted: $_\n" if $DEBUG; } $file = $wanted_files[0]; - print "rewanted: $file\n"; + print "rewanted: $file\n" if $DEBUG; next; }; @@ -81,7 +105,7 @@ sub Usage { chomp $line; $line =~ s/^\s+//; $end = $line; - print "---> $file from $start to $end \n"; + print "---> $file from $start to $end \n" if $DEBUG; find_stuff($file, $start, $end); next; } @@ -89,8 +113,10 @@ sub Usage { # convert urls to markdown - $line =~ s/`([^<]+?)\s*<([^>]+)>`__/\[$1\]($2)/g; - $line =~ s/`([^<]+?)\s*<([^>]+)>`_/\[$1\]($2)/g; + $line =~ s/`([^<]+?)\s*<([^>]+)>`_*/\[$1\]($2)/g; + + $line =~ s/`(Git closed)/\[$1/g; + $line =~ s/<([^>]+)>`_*/\]($1)/g; # convert rubric to bold $line =~ s/^\.\. rubric::\s*(.+)$/**$1**/; @@ -106,18 +132,44 @@ sub Usage { sub find_stuff { my ($file, $mstart, $mend) = @_; - print "$file from $mstart to $mend \n"; + print "find_stuff $file from $mstart to $mend \n" if $DEBUG; my $fh; open($fh, "$file") || die "ERROR: failed to open '$file' for read! : $!\n"; - print "different '$mstart'\n" if $mstart ne "Version 3.6.0"; my $skipping = 1; while (my $line = <$fh>) { next if $skipping and $line !~ /$mstart/; $skipping = 0; next if $line =~ /$mstart/; + $line =~ s/[\|]+//g; + $line =~ s/($check)/$conversions{$1}/go; print $ofh " $line" if $line !~ /$mend/; last if $line =~ /$mend/; } close($fh); } + +sub get_substitutions { + my $file = "doc/conf.py.in"; + my $mstart = "rst_epilog"; + my $mend = "epilog_end"; + print "get_substitutions $file from $mstart to $mend \n" if $DEBUG; + my $fh; + open($fh, "$file") || die "ERROR: failed to open '$file' for read! : $!\n"; + my %data; + + my $skipping = 1; + while (my $line = <$fh>) { + next if $skipping and $line !~ /$mstart/; + $skipping = 0; + next if $line =~ /$mstart/; + last if $line =~ /$mend/; + my ($key) = substr($line, 4, index(substr($line, 4), "|")); + my ($value) = substr($line, index($line,"`")); + $value =~ s/\R//g; + $data{$key} = $value; + print "$key $data{$key} \n" if $DEBUG; + } + close($fh); + return %data; +} From 5d8e9379577437f36b9aaf2a7bf920f202addab5 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 6 Jan 2024 11:27:05 -0600 Subject: [PATCH 010/141] [CI] testing NEWS.md instead of NEWS (cherry picked from commit 30046daca7e6dbb8c2b6c1ae83910a7e7bd5b41e) --- .github/workflows/check-files.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-files.yml b/.github/workflows/check-files.yml index 5ba6231e30..98634b9baf 100644 --- a/.github/workflows/check-files.yml +++ b/.github/workflows/check-files.yml @@ -33,8 +33,8 @@ jobs: - name: News file up to date run: | tools/release-scripts/notes2news.pl - if git status | grep 'NEWS'; then echo "NEWS is not up to date"; exit 1; fi - if ! grep -q $(grep -Po '(?<=project\(PGROUTING VERSION )[^;]+' CMakeLists.txt) NEWS; then echo "Missing section in NEWS"; exit 1; fi + if git status | grep 'NEWS.md'; then echo "NEWS.md is not up to date"; exit 1; fi + if ! grep -q $(grep -Po '(?<=project\(PGROUTING VERSION )[^;]+' CMakeLists.txt) NEWS.md; then echo "Missing section in NEWS"; exit 1; fi License_check: runs-on: ubuntu-latest From 68d472c4c150afa1c22f4bb35e91b1f05dbc7688 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 30 Dec 2023 18:21:23 -0600 Subject: [PATCH 011/141] Adjusting variables for the update script (cherry picked from commit 7ea586836d9114e56831e79b6d1f75282a873d8b) --- sql/ksp/ksp.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/ksp/ksp.sql b/sql/ksp/ksp.sql index 7d3d98075f..310778c7ce 100644 --- a/sql/ksp/ksp.sql +++ b/sql/ksp/ksp.sql @@ -56,7 +56,7 @@ ROWS 1000; -- one-to-many --- v3.6 +--v3.6 CREATE FUNCTION pgr_ksp( TEXT, BIGINT, @@ -84,7 +84,7 @@ COST 100 ROWS 1000; -- many-to-one --- v3.6 +--v3.6 CREATE FUNCTION pgr_ksp( TEXT, ANYARRAY, @@ -112,7 +112,7 @@ COST 100 ROWS 1000; -- many-to-many --- v3.6 +--v3.6 CREATE FUNCTION pgr_ksp( TEXT, ANYARRAY, @@ -140,7 +140,7 @@ COST 100 ROWS 1000; -- combinations --- v3.6 +--v3.6 CREATE FUNCTION pgr_ksp( TEXT, TEXT, From 074647e7e9fc8a8b8082e8049ba9710a05c474d7 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 15 Jan 2024 11:27:44 -0600 Subject: [PATCH 012/141] Fixing issue 2602 (#2604) * fix #2302 test fails for pgr_stoerWagner * Fixing test * Updating boost version to test (cherry picked from commit eb76e2f3484039b05c585efc96354a282771589d) --- .github/workflows/boost_version.yml | 12 +++++++----- pgtap/mincut/stoerWagner/compare_components.pg | 8 ++++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 7f099ca4d9..25573ca919 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -18,10 +18,12 @@ name: Boost supported versions # Currently # - boost::geometry has not changed anything we use # -# - boost::graph changed on 1.80 -# - boost::graph 1.75 requires C++14 -# - boost::graph changed on 1.68 -# - 1.56 is the minimum version we ask +# boost::graph +# - 1.84 is failing its own tests (Jul 2022) +# - 1.80 changed on 1.80 (Aug 2022) +# - 1.75 requires C++14 (Dec 2020) +# - 1.68 changed on 1.68 (Aug 2018) +# - 1.56 is the minimum version we ask (Aug 2014) on: push: @@ -65,7 +67,7 @@ jobs: strategy: fail-fast: false matrix: - boost_minor: [56, 68, 75] + boost_minor: [56, 68, 75, 76, 77, 78, 79, 80, 84] steps: - uses: actions/checkout@v4 diff --git a/pgtap/mincut/stoerWagner/compare_components.pg b/pgtap/mincut/stoerWagner/compare_components.pg index e62a0e058e..c67c96c407 100644 --- a/pgtap/mincut/stoerWagner/compare_components.pg +++ b/pgtap/mincut/stoerWagner/compare_components.pg @@ -85,6 +85,7 @@ SELECT * FROM pgr_stoerWagner( ) $$ ); +SELECT set_eq('stoerWagner5', 'stoerWagner6', '5: Mincut of edge 17'); PREPARE stoerWagner7 AS SELECT * @@ -93,8 +94,11 @@ FROM pgr_stoerWagner( FROM edges WHERE id < 17 ORDER BY id' ); -SELECT set_eq('stoerWagner5', 'stoerWagner6', '5: Mincut of edge 17'); -SELECT set_eq('stoerWagner7', 'VALUES (1, 1, 1, 1)', '6: Compare the mincut of subgraph with actual result'); +SELECT CASE WHEN (SELECT boost FROM pgr_full_version()) < '1.80' THEN + collect_tap(set_eq('stoerWagner7', 'VALUES (1, 1, 1, 1)', '6: Compare the mincut of subgraph with actual result')) +ELSE + collect_tap(set_eq('stoerWagner7', 'VALUES (1, 14, 1, 1)', '6: Compare the mincut of subgraph with actual result')) +END CASE; SELECT * FROM finish(); ROLLBACK; From 43f9568328444b857809120fc9491b7b5816c5c7 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 6 Jan 2024 08:54:14 -0600 Subject: [PATCH 013/141] [CI] add boost 1.83 and fix typo, [doc] update README (cherry picked from commit c97515ec8184cbb95561c2a53d0b0023d3995ce2) --- .github/workflows/boost_version.yml | 3 ++- .github/workflows/check-files.yml | 2 +- README.md | 26 ++++++++++---------------- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 25573ca919..11c0df6b28 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -20,6 +20,7 @@ name: Boost supported versions # # boost::graph # - 1.84 is failing its own tests (Jul 2022) +# - 1.83 transitive closure & stoer wagner changed on 83 (Jul 2022) # - 1.80 changed on 1.80 (Aug 2022) # - 1.75 requires C++14 (Dec 2020) # - 1.68 changed on 1.68 (Aug 2018) @@ -67,7 +68,7 @@ jobs: strategy: fail-fast: false matrix: - boost_minor: [56, 68, 75, 76, 77, 78, 79, 80, 84] + boost_minor: [56, 68, 75, 76, 77, 78, 79, 80, 83, 84] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/check-files.yml b/.github/workflows/check-files.yml index 98634b9baf..ee47758591 100644 --- a/.github/workflows/check-files.yml +++ b/.github/workflows/check-files.yml @@ -34,7 +34,7 @@ jobs: run: | tools/release-scripts/notes2news.pl if git status | grep 'NEWS.md'; then echo "NEWS.md is not up to date"; exit 1; fi - if ! grep -q $(grep -Po '(?<=project\(PGROUTING VERSION )[^;]+' CMakeLists.txt) NEWS.md; then echo "Missing section in NEWS"; exit 1; fi + if ! grep -q $(grep -Po '(?<=project\(PGROUTING VERSION )[^;]+' CMakeLists.txt) NEWS.md; then echo "Missing section in NEWS.md"; exit 1; fi License_check: runs-on: ubuntu-latest diff --git a/README.md b/README.md index 9f55c9035f..ce6604abc2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # pgRouting - Routing on PostgreSQL -[![Join the chat at https://gitter.im/pgRouting/pgrouting](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/pgRouting/pgrouting?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Join the chat at +https://gitter.im/pgRouting/pgrouting](https://badges.gitter.im/Join%20Chat.svg)](https://app.gitter.im/#/room/#pgrouting:osgeo.org) +[Join discourse](https://discourse.osgeo.org/c/pgrouting/15) + ## Branches @@ -10,6 +13,9 @@ For the complete list of releases go to: https://github.com/pgRouting/pgrouting/releases +For the release notes go to: https://docs.pgrouting.org/latest/en/release_notes.html + + ## LINKS * https://pgrouting.org/ @@ -27,44 +33,32 @@ pgRouting extends the PostGIS/PostgreSQL geospatial database to provide geospati This library contains the following features: * All Pairs Shortest Path Algorithms - * A-star algorithm - * Bi-directional algorithms - * A variety of applications of Dijkstra algorithms - * Cost functions * With points - * Driving Distance * With points - * Yen's algorithm - * Traveling Sales Person (TSP) and many more. -The latest documentation: http://docs.pgrouting.org/latest +The latest documentation: https://docs.pgrouting.org/latest ## REQUIREMENTS ### Building requirements * perl - * C and C++ 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 = Supported version by PostgreSQL - +* Postgresql = Supported [version](https://www.postgresql.org/support/versioning/) by PostgreSQL * The Boost Graph Library (BGL) >= 1.56 - * CMake >= 3.2 - -* Sphinx >= 4.0.0 +* 7.0 > Sphinx >= 4.0.0 ### User's requirements From c947483b24704943e4b724f2467e88c1881b4fc5 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 4 Feb 2024 14:27:20 -0600 Subject: [PATCH 014/141] (doc) Fixing index page --- NEWS.md | 8 +++++--- doc/src/index.rst | 4 ++-- doc/src/release_notes.rst | 16 +++++++++------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/NEWS.md b/NEWS.md index 271dfc3216..290463bc33 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,11 @@ # pgRouting 3 +## pgRouting 3.6 + + +.. current + ### pgRouting 3.6.2 Release Notes To see all issues & pull requests closed by this release see the [Git closed @@ -13,9 +18,6 @@ milestone for 3.6.2 * Name change to `NEWS.md` for better visualization on GitHub -## pgRouting 3.6 - - ### pgRouting 3.6.1 Release Notes To see all issues & pull requests closed by this release see the [Git closed diff --git a/doc/src/index.rst b/doc/src/index.rst index 9da7cd4589..9703f31e47 100644 --- a/doc/src/index.rst +++ b/doc/src/index.rst @@ -92,8 +92,8 @@ Available Functions but not official pgRouting functions Current release ------------------------------------------------------------------------------- .. include:: release_notes.rst - :start-after: 0%22>`_ - :end-before: pgRouting 3.6 + :start-after: current + :end-before: pgRouting 3.6.1 All releases ------------------------------------------------------------------------------- diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 7ec3c6e8fb..10d4310cd8 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -27,6 +27,15 @@ pgRouting 3 :local: :depth: 1 +pgRouting 3.6 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. contents:: Contents + :local: + :depth: 1 + +.. current + pgRouting 3.6.2 Release Notes ------------------------------------------------------------------------------- @@ -40,13 +49,6 @@ milestone for 3.6.2 * Name change to `NEWS.md` for better visualization on GitHub -pgRouting 3.6 -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -.. contents:: Contents - :local: - :depth: 1 - pgRouting 3.6.1 Release Notes ------------------------------------------------------------------------------- From 22c7535e0f6df2c570a8c0b35be64e6d6282e1f6 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 4 Feb 2024 14:33:09 -0600 Subject: [PATCH 015/141] (lint) Fixing lint errors --- src/cpp_common/get_check_data.cpp | 1 + src/driving_distance/drivedist_driver.cpp | 1 + src/driving_distance/withPoints_dd_driver.cpp | 1 + src/withPoints/withPoints_driver.cpp | 2 ++ 4 files changed, 5 insertions(+) diff --git a/src/cpp_common/get_check_data.cpp b/src/cpp_common/get_check_data.cpp index 7ae0500b73..6d593496cb 100644 --- a/src/cpp_common/get_check_data.cpp +++ b/src/cpp_common/get_check_data.cpp @@ -35,6 +35,7 @@ extern "C" { } #include +#include #include "cpp_common/pgr_alloc.hpp" #include "c_types/info_t.hpp" diff --git a/src/driving_distance/drivedist_driver.cpp b/src/driving_distance/drivedist_driver.cpp index b9500c4c6f..a086152fd7 100644 --- a/src/driving_distance/drivedist_driver.cpp +++ b/src/driving_distance/drivedist_driver.cpp @@ -32,6 +32,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "dijkstra/drivingDist.hpp" diff --git a/src/driving_distance/withPoints_dd_driver.cpp b/src/driving_distance/withPoints_dd_driver.cpp index 3a38abf6cc..5e9ec65822 100644 --- a/src/driving_distance/withPoints_dd_driver.cpp +++ b/src/driving_distance/withPoints_dd_driver.cpp @@ -36,6 +36,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "dijkstra/drivingDist.hpp" #include "withPoints/pgr_withPoints.hpp" diff --git a/src/withPoints/withPoints_driver.cpp b/src/withPoints/withPoints_driver.cpp index ddd0eadbab..76e4c62152 100644 --- a/src/withPoints/withPoints_driver.cpp +++ b/src/withPoints/withPoints_driver.cpp @@ -35,6 +35,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include +#include #include "dijkstra/dijkstra.hpp" From 6432d9ed7b1164c6dbd6f562342b94318e7acbf3 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 4 Feb 2024 14:48:47 -0600 Subject: [PATCH 016/141] (doc) updating changes --- NEWS.md | 8 ++++++++ doc/src/release_notes.rst | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/NEWS.md b/NEWS.md index 290463bc33..ed02453619 100644 --- a/NEWS.md +++ b/NEWS.md @@ -12,6 +12,14 @@ 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 diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 10d4310cd8..53858751b9 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -43,6 +43,14 @@ To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.2 `__ +.. rubric:: Upgrade fix + +* The upgrade was failing for same minor + +.. rubric:: Code fixes + +* Fix warnings from cpplint + .. rubric:: Others * Adjust NEWS generator From 6f6e160f7f0716cb21fdbf8c9512447e0146bf64 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 4 Feb 2024 13:06:37 -0600 Subject: [PATCH 017/141] Update mailing list to discourse --- doc/src/support.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/src/support.rst b/doc/src/support.rst index fca3d2ff45..91bdab74dd 100644 --- a/doc/src/support.rst +++ b/doc/src/support.rst @@ -54,7 +54,9 @@ Mailing List and GIS StackExchange There are two mailing lists for pgRouting hosted on OSGeo mailing list server: * User mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-users -* Developer mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-dev +* Developer mailing list: https://discourse.osgeo.org/c/pgrouting/pgrouting-dev/ + + * Subscribe: https://discourse.osgeo.org/g/pgrouting-dev For general questions and topics about how to use pgRouting, please write to the user mailing list. From 24d25b3e2ebfb1780d9fe92baff446e64fddc8b3 Mon Sep 17 00:00:00 2001 From: Ko Nagase Date: Sat, 16 Mar 2024 02:06:33 +0900 Subject: [PATCH 018/141] Add macos-14 to macos CI (#2619) --- .github/workflows/macos.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 5887eeee78..2386333f2b 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -41,7 +41,12 @@ permissions: jobs: build: name: macos - runs-on: macos-latest + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [macos-latest, macos-14] steps: - name: Checkout repository From 6b9b64869196db6beec7310095ef3df726ec2828 Mon Sep 17 00:00:00 2001 From: Ashish Kumar Date: Sun, 31 Mar 2024 05:56:48 +0200 Subject: [PATCH 019/141] [actions] Update release script to use NEWS.md --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8c439e7e57..f4c79c9b65 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -153,7 +153,7 @@ jobs: tar -zcvf doc-v${PGROUTING_VERSION}-es.tar.gz doc-v${PGROUTING_VERSION}-es cd ../.. - grep -Pzo "(?s)pgRouting ${PGROUTING_VERSION//./\\.} Release Notes.*?(?=pgRouting .\..\.. Release Notes)" NEWS | tr '\0' '\n' > release_body.txt + grep -Pzo "(?s)pgRouting ${PGROUTING_VERSION//./\\.} Release Notes.*?(?=pgRouting .\..\.. Release Notes)" NEWS.md | tr '\0' '\n' > release_body.txt echo "**Attachments**" >> release_body.txt echo "File | Contents" >> release_body.txt echo "| --- | --- |" >> release_body.txt From f3e3ff4ccd8c161125a3de9301c13fe3a6ed956d Mon Sep 17 00:00:00 2001 From: wifi <906717196@qq.com> Date: Tue, 6 Aug 2024 23:07:59 +0800 Subject: [PATCH 020/141] Added wifiBlack to contributors in pgRouting-introduction.rst --- doc/src/pgRouting-introduction.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst index 661c38a9e9..fec62a3fac 100644 --- a/doc/src/pgRouting-introduction.rst +++ b/doc/src/pgRouting-introduction.rst @@ -70,6 +70,8 @@ Individuals in this release v3.7.x (in alphabetical order) Regina Obe, Vicky Vergara +FAN WU + And all the people that give us a little of their time making comments, finding From c89addc82c8e78581a31f2ec1a7c1947733b429b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:59:12 +0000 Subject: [PATCH 021/141] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/centos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/centos.yml b/.github/workflows/centos.yml index 497209954b..d7adcf5ad6 100644 --- a/.github/workflows/centos.yml +++ b/.github/workflows/centos.yml @@ -32,7 +32,7 @@ jobs: - centos-7 gcc-4.8.5 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: get postgres version run: | From 4f6dff8323c8f60fdd3cef687a572686acb06777 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 08:14:50 +0000 Subject: [PATCH 022/141] Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/boost_version.yml | 2 +- .github/workflows/doc-check.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/update-locale.yml | 2 +- .github/workflows/update.yml | 2 +- .github/workflows/website.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 11c0df6b28..09fe7dbd1f 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -95,7 +95,7 @@ jobs: $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' - name: Install python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/.github/workflows/doc-check.yml b/.github/workflows/doc-check.yml index 1593d748c0..33b71d4d32 100644 --- a/.github/workflows/doc-check.yml +++ b/.github/workflows/doc-check.yml @@ -93,7 +93,7 @@ jobs: - name: Install python if: env.PROCESS == 'true' - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f4c79c9b65..12d0dc9e6e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,7 +62,7 @@ jobs: $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' - name: Install python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/.github/workflows/update-locale.yml b/.github/workflows/update-locale.yml index efea648f01..9e93208483 100644 --- a/.github/workflows/update-locale.yml +++ b/.github/workflows/update-locale.yml @@ -55,7 +55,7 @@ jobs: $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' - name: Install python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index af4a17de6c..facb27ce74 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -55,7 +55,7 @@ jobs: $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' - name: Install python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index e653cc8b5a..496fe2f565 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@v4 + uses: actions/setup-python@v5 with: python-version: '3.x' From 3501d701076bc311b3063cfae63f523951051862 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 15:19:30 -0600 Subject: [PATCH 023/141] Pump up version to 3.6.3 --- .github/workflows/boost_version.yml | 2 +- .github/workflows/update.yml | 4 ++-- CMakeLists.txt | 3 ++- NEWS.md | 5 +++++ doc/src/release_notes.rst | 6 ++++++ docqueries/version/doc-full_version.result | 2 +- docqueries/version/doc-version.result | 2 +- locale/de/LC_MESSAGES/index.po | 2 +- locale/de/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/en/LC_MESSAGES/index.po | 2 +- locale/en/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/es/LC_MESSAGES/index.po | 2 +- locale/es/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/ja/LC_MESSAGES/index.po | 2 +- locale/ja/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/ko/LC_MESSAGES/index.po | 2 +- locale/ko/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/pot/index.pot | 2 +- locale/pot/pgrouting_doc_strings.pot | 2 +- locale/zh_Hans/LC_MESSAGES/index.po | 2 +- locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- tools/testers/pg_prove_tests.sh | 2 +- 22 files changed, 33 insertions(+), 21 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 09fe7dbd1f..33e38a5244 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -136,5 +136,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.6.2" + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.6.3" pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap" diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index facb27ce74..27a6a46315 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - old_pgr: [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.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@v4 @@ -122,6 +122,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.6.2';" + psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.6.3';" 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/CMakeLists.txt b/CMakeLists.txt index 47b2f3d212..1c9520f1ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ include(pgr/BuildType) #--------------------------------------------- #--------------------------------------------- -project(PGROUTING VERSION 3.6.2 +project(PGROUTING VERSION 3.6.3 LANGUAGES C CXX ) set(PROJECT_VERSION_DEV "") string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER) @@ -33,6 +33,7 @@ string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC) set(MINORS 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6) set(OLD_SIGNATURES + 3.6.2 3.6.1 3.6.0 3.5.1 diff --git a/NEWS.md b/NEWS.md index ed02453619..37d82c4b16 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,6 +6,11 @@ .. current + +### pgRouting 3.6.3 Release Notes + +No Changes Yet + ### pgRouting 3.6.2 Release Notes To see all issues & pull requests closed by this release see the [Git closed diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 53858751b9..20364d1ae4 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -36,6 +36,12 @@ pgRouting 3.6 .. current + +pgRouting 3.6.3 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + pgRouting 3.6.2 Release Notes ------------------------------------------------------------------------------- diff --git a/docqueries/version/doc-full_version.result b/docqueries/version/doc-full_version.result index bfe074fa89..f7344703cb 100644 --- a/docqueries/version/doc-full_version.result +++ b/docqueries/version/doc-full_version.result @@ -6,7 +6,7 @@ SET SELECT version, library FROM pgr_full_version(); version | library ---------+----------------- - 3.6.2 | pgrouting-3.6.2 + 3.6.3 | pgrouting-3.6.3 (1 row) /* -- q2 */ diff --git a/docqueries/version/doc-version.result b/docqueries/version/doc-version.result index 35f1ff62ca..7884e6eb85 100644 --- a/docqueries/version/doc-version.result +++ b/docqueries/version/doc-version.result @@ -6,7 +6,7 @@ SET SELECT pgr_version(); pgr_version ------------- - 3.6.2 + 3.6.3 (1 row) /* -- q2 */ diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po index fbbd7f76fc..75a717f1b8 100644 --- a/locale/de/LC_MESSAGES/index.po +++ b/locale/de/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po index d676898a2c..6daa68173b 100644 --- a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. msgid "" diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po index ab4d7e5aa7..f7a86f3b21 100644 --- a/locale/en/LC_MESSAGES/index.po +++ b/locale/en/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 78d82cd09b..3aa052d717 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po index 57acfd3614..14f7e1b372 100644 --- a/locale/es/LC_MESSAGES/index.po +++ b/locale/es/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po index 5166400fd7..5c12056be1 100644 --- a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Pedro Jose Rios Vergara , 2022. diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po index a2ba760100..44cf7bd2b9 100644 --- a/locale/ja/LC_MESSAGES/index.po +++ b/locale/ja/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # diff --git a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po index 41d96dfa7e..fd46756a90 100644 --- a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,6 +1,6 @@ # #-#-#-#-# allpairs-family.po (pgRouting v3.4.0-dev) #-#-#-#-# # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Translators: diff --git a/locale/ko/LC_MESSAGES/index.po b/locale/ko/LC_MESSAGES/index.po index 5e352574b3..ab6724874f 100644 --- a/locale/ko/LC_MESSAGES/index.po +++ b/locale/ko/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po index efd4fe85e9..40323bb3c4 100644 --- a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2022. # Hyung-Gyu Ryoo , 2022. diff --git a/locale/pot/index.pot b/locale/pot/index.pot index 0efc33fa10..3e98569d28 100644 --- a/locale/pot/index.pot +++ b/locale/pot/index.pot @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 24de30f742..65c1ee0bd5 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/zh_Hans/LC_MESSAGES/index.po b/locale/zh_Hans/LC_MESSAGES/index.po index 3f56c7f7d7..c35a7d3715 100644 --- a/locale/zh_Hans/LC_MESSAGES/index.po +++ b/locale/zh_Hans/LC_MESSAGES/index.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # diff --git a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po index caf07c7f95..55bbd88ed7 100644 --- a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.6.2 +# Copyright (C) pgRouting Contributors - Version v3.6.3 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. # Wangdapeng , 2023. diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh index f0858eb86d..28c36d3882 100755 --- a/tools/testers/pg_prove_tests.sh +++ b/tools/testers/pg_prove_tests.sh @@ -37,7 +37,7 @@ echo "$PGPORT" pushd ./tools/testers/ || exit 1 -bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.6.2" +bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.6.3" pg_prove --failures --Q --recurse \ --S client_min_messages=WARNING \ From fea7377d913a1f668e7501b2fcd6f38b9f33ee83 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 19:17:10 -0600 Subject: [PATCH 024/141] (build) explicitly require postgres 11 as min version --- CMakeLists.txt | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c9520f1ae..5ffcd8016a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,9 +61,9 @@ include(pgr/Configure) #--------------------------------------------- set(DOXYGEN_MINIMUM_VERSION "1.7") set(SPHINX_MINIMUM_VERSION "4.0") -set(POSTGRESQL_MINIMUM_VERSION "9.2.0") +set(POSTGRESQL_MINIMUM_VERSION "11.0.0") set(BOOST_MINIMUM_VERSION "1.56.0") -set(POSTGIS_MINIMUM_VERSION "2.0.0") +set(POSTGIS_MINIMUM_VERSION "3.0.0") message(STATUS "DOXYGEN_MINIMUM_VERSION=${DOXYGEN_MINIMUM_VERSION}") message(STATUS "SPHINX_MINIMUM_VERSION=${SPHINX_MINIMUM_VERSION}") @@ -172,25 +172,24 @@ endif() # PostgreSQL #--------------------------------------------- #--------------------------------------------- -find_package(PostgreSQL) -if(NOT POSTGRESQL_FOUND OR NOT POSTGRESQL_VERSION_STRING) - message(FATAL_ERROR "PostgreSQL not found - Please check your PostgreSQL installation.") -endif() +find_package(PostgreSQL "${POSTGRESQL_MINIMUM_VERSION}") +# 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}) message(STATUS "POSTGRESQL_VERSION_STRING=${POSTGRESQL_VERSION_STRING}") +# calcualte mayor.micro STRING(REGEX MATCH "([0-9]+)\.([0-9]+)" POSTGRESQL_VERSION "${POSTGRESQL_VERSION_STRING}") message(STATUS "POSTGRESQL_VERSION=${POSTGRESQL_VERSION}") -#for X.Y.Z -> XY Y<10 -string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*" "\\1\\2" PGSQL_VERSION ${POSTGRESQL_VERSION}) -#message(STATUS "PGSQL_VERSION=${PGSQL_VERSION}") +# split mayor minor +string(REPLACE "." ";" VERSION_LIST ${POSTGRESQL_VERSION}) +list(GET VERSION_LIST 0 POSTGRESQL_VERSION_MAYOR) +list(GET VERSION_LIST 1 POSTGRESQL_VERSION_MINOR) -if("${POSTGRESQL_VERSION}" VERSION_LESS "${POSTGRESQL_MINIMUM_VERSION}") - message(FATAL_ERROR " PostgreSQL ${POSTGRESQL_MINIMUM_VERSION} or greater is required.") -endif("${POSTGRESQL_VERSION}" VERSION_LESS "${POSTGRESQL_MINIMUM_VERSION}") +math(EXPR PGSQL_VERSION "${POSTGRESQL_VERSION_MAYOR} * 1000 + ${POSTGRESQL_VERSION_MINOR}") +message(STATUS "PGSQL_VERSION=${PGSQL_VERSION}") #------- include_directories(SYSTEM ${POSTGRESQL_INCLUDE_DIR}) From a454599845fb7f74fa2209929ed07126a3243b00 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 15:47:16 -0600 Subject: [PATCH 025/141] (CI) adding a clang tidy check --- .github/scripts/tidy-vs-commit.sh | 39 ++++++++++++++++++++ .github/workflows/tidy-check.yml | 59 +++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100755 .github/scripts/tidy-vs-commit.sh create mode 100644 .github/workflows/tidy-check.yml diff --git a/.github/scripts/tidy-vs-commit.sh b/.github/scripts/tidy-vs-commit.sh new file mode 100755 index 0000000000..ae8328a74a --- /dev/null +++ b/.github/scripts/tidy-vs-commit.sh @@ -0,0 +1,39 @@ +#!/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/.github/workflows/tidy-check.yml b/.github/workflows/tidy-check.yml new file mode 100644 index 0000000000..58f29867c3 --- /dev/null +++ b/.github/workflows/tidy-check.yml @@ -0,0 +1,59 @@ +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@v4 + + - 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}" From a72816b1e0151001e617f912343c433d225c8a6c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 16:01:56 -0600 Subject: [PATCH 026/141] (lint) removing unused developer tool --- tools/developer/translate.sh | 51 ------------------------------------ 1 file changed, 51 deletions(-) delete mode 100755 tools/developer/translate.sh diff --git a/tools/developer/translate.sh b/tools/developer/translate.sh deleted file mode 100755 index 1d72664024..0000000000 --- a/tools/developer/translate.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# /*PGR-GNU***************************************************************** -# File: translate.sh -# Copyright (c) 2017 pgRouting developers -# Mail: project@pgrouting.org -# ------ -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# ********************************************************************PGR-GNU*/ -set -e - - -cd build/ -rm -rf ./* -cmake -DHTML=ON -DDOC_USE_BOOTSTRAP=ON .. -make doc -cd .. - - -#tools/testers/doc_queries_generator.pl -alg pickDeliver - -#tools/testers/doc_queries_generator.pl -documentation -cd build -#make doc -cd .. - - - -exit 0 - -gource --seconds-per-day 0.1 \ - --auto-skip-seconds 0.3 \ - --max-file-lag 0.1 \ - --logo doc/static/images/pgrouting-logo.png ---date-format "%B %Y" \ - --hide filenames,dirnames \ - --start-position 0.1 \ - --disable-auto-rotate \ - ----file-idle-time 10 \ - -f -1280x720 \ - --output-ppm-stream release-2.4.ppm - -ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i release-2.4.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 release-2.4.mp4 From 09d372eec5b3bca5589a29d53e7e1618b2726d16 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 16:03:28 -0600 Subject: [PATCH 027/141] (CI) Ignore false positive on code checker script --- tools/scripts/code_checker.sh | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/tools/scripts/code_checker.sh b/tools/scripts/code_checker.sh index def08ebbad..6538467513 100755 --- a/tools/scripts/code_checker.sh +++ b/tools/scripts/code_checker.sh @@ -48,15 +48,18 @@ if test -z "$DIRECTORY"; then echo "--------------------" echo "------ *.c ------" echo "--------------------" - code_linter/cpplint/cpplint.py --extensions=c --linelength=120 --filter=-readability/casting src/*/*.c + code_linter/cpplint/cpplint.py --extensions=c --linelength=120 --filter=-readability/casting,-whitespace/newline src/*/*.c echo "--------------------" echo "------ *.cpp ------" echo "--------------------" - code_linter/cpplint/cpplint.py --filter=-runtime/references --linelength=120 src/*/*.cpp + code_linter/cpplint/cpplint.py --linelength=120 \ + --filter=-runtime/references,-whitespace/indent_namespace \ + src/*/*.cpp echo "--------------------" echo "------ HEADERS ------" echo "--------------------" - code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 --filter=-runtime/references \ + code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 \ + --filter=-runtime/references,-whitespace/indent_namespace \ include/*/*.h* \ include/*/*/*.h* @@ -66,7 +69,8 @@ else echo "--------------------" echo "------ IN PLACE HEADERS ------" echo "--------------------" - code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 --filter=-runtime/references \ + code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 \ + --filter=-runtime/references \ include/*/*.h* \ include/*/*/*.h* @@ -74,11 +78,16 @@ else echo "--------------------" echo "------ *.c ------" echo "--------------------" - code_linter/cpplint/cpplint.py --extensions=c --linelength=120 --filter=-readability/casting src/"$DIRECTORY"/*.c + code_linter/cpplint/cpplint.py --extensions=c --linelength=120 \ + --filter=-readability/casting \ + src/"$DIRECTORY"/*.c + echo "--------------------" echo "------ *.cpp ------" echo "--------------------" - code_linter/cpplint/cpplint.py --linelength=120 --filter=-runtime/references src/"$DIRECTORY"/*.cpp + code_linter/cpplint/cpplint.py --linelength=120 \ + --filter=-runtime/references \ + src/"$DIRECTORY"/*.cpp echo "--------------------" echo "------ C HEADER ------" echo "--------------------" @@ -89,11 +98,9 @@ else echo "--------------------" echo "------ C++ HEADER ------" echo "--------------------" - code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp --linelength=120 --filter=-runtime/references include/"$DIRECTORY"/*.h* - echo "--------------------" - echo "------ this shouild fail ------" - echo "--------------------" - code_linter/cpplint/cpplint.py src/"$DIRECTORY"/src/*.h* + code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 \ + --filter=-runtime/references \ + include/"$DIRECTORY"/*.h* fi fi From b7ce3a48848af2f989d8e35a4d870420b3de327a Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 16:06:02 -0600 Subject: [PATCH 028/141] (CI) adding test for ububtu-22.04 --- .github/workflows/ubuntu.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 3df30812c4..d18d17c019 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -31,7 +31,10 @@ jobs: matrix: psql: [11,12,13,14,15,16] postgis: [3] - os: [ubuntu-latest, ubuntu-20.04] + os: [ubuntu-latest, ububtu-22.04, ubuntu-20.04] + exclude: + - os: ubuntu-latest + psql: 11 steps: - uses: actions/checkout@v4 From e0c52b0a6343029f5ecdf9b3ef76a4137091f363 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 16:06:35 -0600 Subject: [PATCH 029/141] (CI) adding workflow_dispatch & some cleanup --- .github/workflows/boost_version.yml | 10 ++-------- .github/workflows/check-queries.yml | 1 + .github/workflows/clang.yml | 1 + 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 33e38a5244..923d9e90d2 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -27,6 +27,7 @@ name: Boost supported versions # - 1.56 is the minimum version we ask (Aug 2014) on: + workflow_dispatch: push: paths: - '.github/workflows/boost_version.yml' @@ -94,11 +95,6 @@ jobs: 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 python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - name: Install dependencies run: | sudo apt-get update @@ -110,8 +106,6 @@ 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 #wget https://dl.bintray.com/boostorg/release/1.${{ matrix.boost_minor }}.0/source/boost_1_${{ matrix.boost_minor }}_0.tar.bz2 sudo tar --bzip2 -xf boost_1_${{ matrix.boost_minor }}_0.tar.bz2 @@ -123,7 +117,7 @@ jobs: export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH mkdir build cd build - cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Debug -DWITH_DOC=OFF .. + cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Debug .. - name: Build run: | diff --git a/.github/workflows/check-queries.yml b/.github/workflows/check-queries.yml index 0e7adb2d27..aa7addeaef 100644 --- a/.github/workflows/check-queries.yml +++ b/.github/workflows/check-queries.yml @@ -12,6 +12,7 @@ name: Check queries # - the latest postgis version on: + workflow_dispatch: push: paths: - '.github/workflows/check-queries.yml' diff --git a/.github/workflows/clang.yml b/.github/workflows/clang.yml index bd3a3611b1..0e6a194d6d 100644 --- a/.github/workflows/clang.yml +++ b/.github/workflows/clang.yml @@ -11,6 +11,7 @@ name: Build for Ubuntu with clang # - postgis 3 on: + workflow_dispatch: push: paths: - '.github/workflows/clang.yml' From e7f3fee1f91e6f6f44419ad4b2bdbe54eef4721a Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 17:08:31 -0600 Subject: [PATCH 030/141] (CI) removing update test from versions that could not compile with g++13 --- .github/workflows/update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 27a6a46315..3227b31b0b 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - old_pgr: [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.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.6, 3.1.3, 3.2.0, 3.2.1, 3.2.2] steps: - uses: actions/checkout@v4 From afb7e210aaaa73bbec1d13aa2149b96ccbfc0ad7 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 17:12:08 -0600 Subject: [PATCH 031/141] (lint) fixing lint errors --- include/c_common/debug_macro.h | 3 +-- include/cpp_common/basic_vertex.h | 8 ++++---- .../max_flow/pgr_maximumcardinalitymatching.hpp | 4 ++-- src/cpp_common/combinations.cpp | 4 +++- src/cpp_common/get_check_data.cpp | 4 ++-- src/max_flow/pgr_maxflow.cpp | 17 ++++++++--------- src/trsp/trspVia_driver.cpp | 4 +++- src/trsp/trspVia_withPoints_driver.cpp | 4 +++- 8 files changed, 26 insertions(+), 22 deletions(-) diff --git a/include/c_common/debug_macro.h b/include/c_common/debug_macro.h index 087d6bc670..b8f9be1d17 100644 --- a/include/c_common/debug_macro.h +++ b/include/c_common/debug_macro.h @@ -1,5 +1,4 @@ /*PGR-GNU***************************************************************** - File: debug_macro.h Copyright (c) 2015 pgRouting developers @@ -37,7 +36,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #define PGR_DBG(...) \ elog(DEBUG3, __VA_ARGS__) #else -#define PGR_DBG(...) do { ; } while (0) +#define PGR_DBG(...) do { ; } while (0) // NOLINT [whitespace/newline] #endif #endif // INCLUDE_C_COMMON_DEBUG_MACRO_H_ diff --git a/include/cpp_common/basic_vertex.h b/include/cpp_common/basic_vertex.h index 8c0ce9fb17..2fe9ab2141 100644 --- a/include/cpp_common/basic_vertex.h +++ b/include/cpp_common/basic_vertex.h @@ -43,17 +43,17 @@ namespace pgrouting { class Basic_vertex { public: Basic_vertex() : - id(0) {} + id(0), vertex_index(0) {} Basic_vertex(const Basic_vertex &v) : - id(v.id) {} + id(v.id), vertex_index(0) {} explicit Basic_vertex(const int64_t _id) : - id(_id) {} + id(_id), vertex_index(0) {} Basic_vertex& operator=(const Basic_vertex&) = default; Basic_vertex(const Edge_t &other, bool is_source) : - id(is_source? other.source : other.target) {} + id(is_source? other.source : other.target), vertex_index(0) {} void cp_members(const Basic_vertex &other) { this->id = other.id; diff --git a/include/max_flow/pgr_maximumcardinalitymatching.hpp b/include/max_flow/pgr_maximumcardinalitymatching.hpp index 5118f979f8..71daa693f2 100644 --- a/include/max_flow/pgr_maximumcardinalitymatching.hpp +++ b/include/max_flow/pgr_maximumcardinalitymatching.hpp @@ -126,9 +126,9 @@ class PgrCardinalityGraph { ++vi) { boost::tie(e, exists) = boost::edge(*vi, mate_map[*vi], boost_graph); - if (((uint64_t)mate_map[*vi] + if ((static_cast(mate_map[*vi]) != boost::graph_traits::null_vertex()) - && (*vi < (uint64_t)mate_map[*vi])) { + && (*vi < static_cast(mate_map[*vi]))) { Only_int_rt matched_couple; matched_couple.source = get_vertex_id(*vi); matched_couple.target = get_vertex_id(mate_map[*vi]); diff --git a/src/cpp_common/combinations.cpp b/src/cpp_common/combinations.cpp index f465336ed2..efe62761f7 100644 --- a/src/cpp_common/combinations.cpp +++ b/src/cpp_common/combinations.cpp @@ -92,7 +92,9 @@ get_combinations( */ bool rule_breaker = true; for (const auto &e : r.precedences()) { - if (*ptr != e) {rule_breaker = false; break;} + if (*ptr != e) { + rule_breaker = false; break; + } ++ptr; } if (rule_breaker) { diff --git a/src/cpp_common/get_check_data.cpp b/src/cpp_common/get_check_data.cpp index 6d593496cb..a4fec03cd3 100644 --- a/src/cpp_common/get_check_data.cpp +++ b/src/cpp_common/get_check_data.cpp @@ -385,10 +385,10 @@ int64_t getBigInt( throw std::string("Unexpected Null value in column ") + info.name; switch (info.type) { case INT2OID: - value = (int64_t) DatumGetInt16(binval); + value = static_cast(DatumGetInt16(binval)); break; case INT4OID: - value = (int64_t) DatumGetInt32(binval); + value = static_cast(DatumGetInt32(binval)); break; case INT8OID: value = DatumGetInt64(binval); diff --git a/src/max_flow/pgr_maxflow.cpp b/src/max_flow/pgr_maxflow.cpp index 553e105aa6..dad55491ed 100644 --- a/src/max_flow/pgr_maxflow.cpp +++ b/src/max_flow/pgr_maxflow.cpp @@ -1,4 +1,5 @@ /*PGR-GNU***************************************************************** +File: pgr_maxflow.cpp Copyright (c) 2015 pgRouting developers Mail: project@pgrouting.org @@ -84,7 +85,7 @@ void PgrFlowGraph::insert_edges_push_relabel( boost::add_edge(v2, v1, graph); E_to_id.insert(std::pair(e1, edge.id)); E_to_id.insert(std::pair(e1_rev, edge.id)); - capacity[e1] = (int64_t) edge.cost; + capacity[e1] = static_cast(edge.cost); capacity[e1_rev] = 0; rev[e1] = e1_rev; rev[e1_rev] = e1; @@ -95,7 +96,7 @@ void PgrFlowGraph::insert_edges_push_relabel( boost::add_edge(v1, v2, graph); E_to_id.insert(std::pair(e2, edge.id)); E_to_id.insert(std::pair(e2_rev, edge.id)); - capacity[e2] = (int64_t) edge.reverse_cost; + capacity[e2] = static_cast(edge.reverse_cost); capacity[e2_rev] = 0; rev[e2] = e2_rev; rev[e2_rev] = e2; @@ -118,9 +119,9 @@ void PgrFlowGraph::insert_edges( boost::add_edge(v2, v1, graph); E_to_id.insert(std::pair(e, edge.id)); E_to_id.insert(std::pair(e_rev, edge.id)); - capacity[e] = edge.cost > 0 ? (int64_t) edge.cost : 0; + capacity[e] = edge.cost > 0 ? static_cast(edge.cost) : 0; capacity[e_rev] = edge.reverse_cost > 0 - ? (int64_t) edge.reverse_cost : 0; + ? static_cast(edge.reverse_cost) : 0; rev[e] = e_rev; rev[e_rev] = e; } @@ -210,7 +211,7 @@ PgrFlowGraph::get_flow_edges() const { if (((capacity[*e] - residual_capacity[*e]) > 0) && ((*e).m_source != supersource) && ((*e).m_target != supersink)) { - Flow_t edge; + Flow_t edge = {}; edge.edge = get_edge_id(*e); edge.source = get_vertex_id((*e).m_source); edge.target = get_vertex_id((*e).m_target); @@ -280,8 +281,7 @@ PgrFlowGraph::get_edge_disjoint_paths( bool exists; size_t j; for (j = 0; j < size - 1; j++) { - Path_rt edge; - edge.seq = static_cast(j + 1); + Path_rt edge = {}; edge.start_id = paths[i][0]; edge.end_id = paths[i][size - 1]; edge.node = paths[i][j]; @@ -291,8 +291,7 @@ PgrFlowGraph::get_edge_disjoint_paths( edge.edge = get_edge_id(e); path_elements.push_back(edge); } - Path_rt edge; - edge.seq = static_cast(j + 1); + Path_rt edge = {}; edge.start_id = paths[i][0]; edge.end_id = paths[i][size - 1]; edge.node = paths[i][j]; diff --git a/src/trsp/trspVia_driver.cpp b/src/trsp/trspVia_driver.cpp index 707fca73e7..4c6a18a3fd 100644 --- a/src/trsp/trspVia_driver.cpp +++ b/src/trsp/trspVia_driver.cpp @@ -57,7 +57,9 @@ post_process_trspvia(std::deque &paths, std::vector vi auto u = via.front(); bool skip = true; for (const auto &v : via) { - if (skip) {skip = false; continue;} + if (skip) { + skip = false; continue; + } /* * look for the path (u,v) */ diff --git a/src/trsp/trspVia_withPoints_driver.cpp b/src/trsp/trspVia_withPoints_driver.cpp index 791fbdbe82..2e4748e08d 100644 --- a/src/trsp/trspVia_withPoints_driver.cpp +++ b/src/trsp/trspVia_withPoints_driver.cpp @@ -55,7 +55,9 @@ post_process_trspvia(std::deque &paths, std::vector vi auto u = via.front(); bool skip = true; for (const auto &v : via) { - if (skip) {skip = false; continue;} + if (skip) { + skip = false; continue; + } /* * look for the path (u,v) */ From 5a4f62d6002efe757b341c7457e16e0114b3b895 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 17:39:56 -0600 Subject: [PATCH 032/141] (CI,docqueries) edgeDisjointPaths results change on 24.04 --- .../max_flow/doc-pgr_edgeDisjointPaths.result | 196 +++++++++--------- 1 file changed, 98 insertions(+), 98 deletions(-) diff --git a/docqueries/max_flow/doc-pgr_edgeDisjointPaths.result b/docqueries/max_flow/doc-pgr_edgeDisjointPaths.result index 7fbb762a49..520a08a30a 100644 --- a/docqueries/max_flow/doc-pgr_edgeDisjointPaths.result +++ b/docqueries/max_flow/doc-pgr_edgeDisjointPaths.result @@ -9,12 +9,12 @@ SELECT * FROM pgr_edgeDisjointPaths( 11, 12); seq | path_id | path_seq | node | edge | cost | agg_cost -----+---------+----------+------+------+------+---------- - 1 | 1 | 1 | 11 | 8 | 1 | 0 - 2 | 1 | 2 | 7 | 10 | 1 | 1 - 3 | 1 | 3 | 8 | 12 | 1 | 2 - 4 | 1 | 4 | 12 | -1 | 0 | 3 - 5 | 2 | 1 | 11 | 11 | 1 | 0 - 6 | 2 | 2 | 12 | -1 | 0 | 1 + 1 | 1 | 1 | 11 | 8 | 1 | 1 + 2 | 1 | 2 | 7 | 10 | 1 | 2 + 3 | 1 | 3 | 8 | 12 | 1 | 3 + 4 | 1 | 4 | 12 | -1 | 0 | 4 + 5 | 2 | 1 | 11 | 11 | 1 | 4 + 6 | 2 | 2 | 12 | -1 | 0 | 5 (6 rows) /* -- q2 */ @@ -24,20 +24,20 @@ SELECT * FROM pgr_edgeDisjointPaths( 11, ARRAY[5, 10, 12]); seq | path_id | path_seq | end_vid | node | edge | cost | agg_cost -----+---------+----------+---------+------+------+------+---------- - 1 | 1 | 1 | 5 | 11 | 8 | 1 | 0 - 2 | 1 | 2 | 5 | 7 | 4 | 1 | 1 - 3 | 1 | 3 | 5 | 6 | 1 | 1 | 2 - 4 | 1 | 4 | 5 | 5 | -1 | 0 | 3 - 5 | 2 | 1 | 10 | 11 | 9 | 1 | 0 - 6 | 2 | 2 | 10 | 16 | 16 | 1 | 1 - 7 | 2 | 3 | 10 | 15 | 3 | 1 | 2 - 8 | 2 | 4 | 10 | 10 | -1 | 0 | 3 - 9 | 3 | 1 | 12 | 11 | 8 | 1 | 0 - 10 | 3 | 2 | 12 | 7 | 10 | 1 | 1 - 11 | 3 | 3 | 12 | 8 | 12 | 1 | 2 - 12 | 3 | 4 | 12 | 12 | -1 | 0 | 3 - 13 | 4 | 1 | 12 | 11 | 11 | 1 | 0 - 14 | 4 | 2 | 12 | 12 | -1 | 0 | 1 + 1 | 1 | 1 | 5 | 11 | 8 | 1 | 1 + 2 | 1 | 2 | 5 | 7 | 4 | 1 | 2 + 3 | 1 | 3 | 5 | 6 | 1 | 1 | 3 + 4 | 1 | 4 | 5 | 5 | -1 | 0 | 4 + 5 | 2 | 1 | 10 | 11 | 9 | 1 | 4 + 6 | 2 | 2 | 10 | 16 | 16 | 1 | 5 + 7 | 2 | 3 | 10 | 15 | 3 | 1 | 6 + 8 | 2 | 4 | 10 | 10 | -1 | 0 | 7 + 9 | 3 | 1 | 12 | 11 | 8 | 1 | 7 + 10 | 3 | 2 | 12 | 7 | 10 | 1 | 8 + 11 | 3 | 3 | 12 | 8 | 12 | 1 | 9 + 12 | 3 | 4 | 12 | 12 | -1 | 0 | 10 + 13 | 4 | 1 | 12 | 11 | 11 | 1 | 10 + 14 | 4 | 2 | 12 | 12 | -1 | 0 | 11 (14 rows) /* -- q3 */ @@ -47,20 +47,20 @@ SELECT * FROM pgr_edgeDisjointPaths( ARRAY[11, 3, 17], 12); seq | path_id | path_seq | start_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+------+------+------+---------- - 1 | 1 | 1 | 3 | 3 | 7 | 1 | 0 - 2 | 1 | 2 | 3 | 7 | 8 | 1 | 1 - 3 | 1 | 3 | 3 | 11 | 11 | 1 | 2 - 4 | 1 | 4 | 3 | 12 | -1 | 0 | 3 - 5 | 2 | 1 | 11 | 11 | 8 | 1 | 0 - 6 | 2 | 2 | 11 | 7 | 10 | 1 | 1 - 7 | 2 | 3 | 11 | 8 | 12 | 1 | 2 - 8 | 2 | 4 | 11 | 12 | -1 | 0 | 3 - 9 | 3 | 1 | 11 | 11 | 11 | 1 | 0 - 10 | 3 | 2 | 11 | 12 | -1 | 0 | 1 - 11 | 4 | 1 | 17 | 17 | 15 | 1 | 0 - 12 | 4 | 2 | 17 | 16 | 9 | 1 | 1 - 13 | 4 | 3 | 17 | 11 | 11 | 1 | 2 - 14 | 4 | 4 | 17 | 12 | -1 | 0 | 3 + 1 | 1 | 1 | 3 | 3 | 7 | 1 | 1 + 2 | 1 | 2 | 3 | 7 | 8 | 1 | 2 + 3 | 1 | 3 | 3 | 11 | 11 | 1 | 3 + 4 | 1 | 4 | 3 | 12 | -1 | 0 | 4 + 5 | 2 | 1 | 11 | 11 | 8 | 1 | 4 + 6 | 2 | 2 | 11 | 7 | 10 | 1 | 5 + 7 | 2 | 3 | 11 | 8 | 12 | 1 | 6 + 8 | 2 | 4 | 11 | 12 | -1 | 0 | 7 + 9 | 3 | 1 | 11 | 11 | 11 | 1 | 7 + 10 | 3 | 2 | 11 | 12 | -1 | 0 | 8 + 11 | 4 | 1 | 17 | 17 | 15 | 1 | 8 + 12 | 4 | 2 | 17 | 16 | 9 | 1 | 9 + 13 | 4 | 3 | 17 | 11 | 11 | 1 | 10 + 14 | 4 | 4 | 17 | 12 | -1 | 0 | 11 (14 rows) /* -- q4 */ @@ -70,48 +70,48 @@ SELECT * FROM pgr_edgeDisjointPaths( ARRAY[11, 3, 17], ARRAY[5, 10, 12]); seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 1 | 3 | 5 | 3 | 7 | 1 | 0 - 2 | 1 | 2 | 3 | 5 | 7 | 4 | 1 | 1 - 3 | 1 | 3 | 3 | 5 | 6 | 1 | 1 | 2 - 4 | 1 | 4 | 3 | 5 | 5 | -1 | 0 | 3 - 5 | 2 | 1 | 3 | 10 | 3 | 7 | 1 | 0 - 6 | 2 | 2 | 3 | 10 | 7 | 8 | 1 | 1 - 7 | 2 | 3 | 3 | 10 | 11 | 9 | 1 | 2 - 8 | 2 | 4 | 3 | 10 | 16 | 16 | 1 | 3 - 9 | 2 | 5 | 3 | 10 | 15 | 3 | 1 | 4 - 10 | 2 | 6 | 3 | 10 | 10 | -1 | 0 | 5 - 11 | 3 | 1 | 3 | 12 | 3 | 7 | 1 | 0 - 12 | 3 | 2 | 3 | 12 | 7 | 8 | 1 | 1 - 13 | 3 | 3 | 3 | 12 | 11 | 11 | 1 | 2 - 14 | 3 | 4 | 3 | 12 | 12 | -1 | 0 | 3 - 15 | 4 | 1 | 11 | 5 | 11 | 8 | 1 | 0 - 16 | 4 | 2 | 11 | 5 | 7 | 4 | 1 | 1 - 17 | 4 | 3 | 11 | 5 | 6 | 1 | 1 | 2 - 18 | 4 | 4 | 11 | 5 | 5 | -1 | 0 | 3 - 19 | 5 | 1 | 11 | 10 | 11 | 9 | 1 | 0 - 20 | 5 | 2 | 11 | 10 | 16 | 16 | 1 | 1 - 21 | 5 | 3 | 11 | 10 | 15 | 3 | 1 | 2 - 22 | 5 | 4 | 11 | 10 | 10 | -1 | 0 | 3 - 23 | 6 | 1 | 11 | 12 | 11 | 8 | 1 | 0 - 24 | 6 | 2 | 11 | 12 | 7 | 10 | 1 | 1 - 25 | 6 | 3 | 11 | 12 | 8 | 12 | 1 | 2 - 26 | 6 | 4 | 11 | 12 | 12 | -1 | 0 | 3 - 27 | 7 | 1 | 11 | 12 | 11 | 11 | 1 | 0 - 28 | 7 | 2 | 11 | 12 | 12 | -1 | 0 | 1 - 29 | 8 | 1 | 17 | 5 | 17 | 15 | 1 | 0 - 30 | 8 | 2 | 17 | 5 | 16 | 16 | 1 | 1 - 31 | 8 | 3 | 17 | 5 | 15 | 3 | 1 | 2 - 32 | 8 | 4 | 17 | 5 | 10 | 2 | 1 | 3 - 33 | 8 | 5 | 17 | 5 | 6 | 1 | 1 | 4 - 34 | 8 | 6 | 17 | 5 | 5 | -1 | 0 | 5 - 35 | 9 | 1 | 17 | 10 | 17 | 15 | 1 | 0 - 36 | 9 | 2 | 17 | 10 | 16 | 16 | 1 | 1 - 37 | 9 | 3 | 17 | 10 | 15 | 3 | 1 | 2 - 38 | 9 | 4 | 17 | 10 | 10 | -1 | 0 | 3 - 39 | 10 | 1 | 17 | 12 | 17 | 15 | 1 | 0 - 40 | 10 | 2 | 17 | 12 | 16 | 9 | 1 | 1 - 41 | 10 | 3 | 17 | 12 | 11 | 11 | 1 | 2 - 42 | 10 | 4 | 17 | 12 | 12 | -1 | 0 | 3 + 1 | 1 | 1 | 3 | 5 | 3 | 7 | 1 | 1 + 2 | 1 | 2 | 3 | 5 | 7 | 4 | 1 | 2 + 3 | 1 | 3 | 3 | 5 | 6 | 1 | 1 | 3 + 4 | 1 | 4 | 3 | 5 | 5 | -1 | 0 | 4 + 5 | 2 | 1 | 3 | 10 | 3 | 7 | 1 | 4 + 6 | 2 | 2 | 3 | 10 | 7 | 8 | 1 | 5 + 7 | 2 | 3 | 3 | 10 | 11 | 9 | 1 | 6 + 8 | 2 | 4 | 3 | 10 | 16 | 16 | 1 | 7 + 9 | 2 | 5 | 3 | 10 | 15 | 3 | 1 | 8 + 10 | 2 | 6 | 3 | 10 | 10 | -1 | 0 | 9 + 11 | 3 | 1 | 3 | 12 | 3 | 7 | 1 | 9 + 12 | 3 | 2 | 3 | 12 | 7 | 8 | 1 | 10 + 13 | 3 | 3 | 3 | 12 | 11 | 11 | 1 | 11 + 14 | 3 | 4 | 3 | 12 | 12 | -1 | 0 | 12 + 15 | 4 | 1 | 11 | 5 | 11 | 8 | 1 | 12 + 16 | 4 | 2 | 11 | 5 | 7 | 4 | 1 | 13 + 17 | 4 | 3 | 11 | 5 | 6 | 1 | 1 | 14 + 18 | 4 | 4 | 11 | 5 | 5 | -1 | 0 | 15 + 19 | 5 | 1 | 11 | 10 | 11 | 9 | 1 | 15 + 20 | 5 | 2 | 11 | 10 | 16 | 16 | 1 | 16 + 21 | 5 | 3 | 11 | 10 | 15 | 3 | 1 | 17 + 22 | 5 | 4 | 11 | 10 | 10 | -1 | 0 | 18 + 23 | 6 | 1 | 11 | 12 | 11 | 8 | 1 | 18 + 24 | 6 | 2 | 11 | 12 | 7 | 10 | 1 | 19 + 25 | 6 | 3 | 11 | 12 | 8 | 12 | 1 | 20 + 26 | 6 | 4 | 11 | 12 | 12 | -1 | 0 | 21 + 27 | 7 | 1 | 11 | 12 | 11 | 11 | 1 | 21 + 28 | 7 | 2 | 11 | 12 | 12 | -1 | 0 | 22 + 29 | 8 | 1 | 17 | 5 | 17 | 15 | 1 | 22 + 30 | 8 | 2 | 17 | 5 | 16 | 16 | 1 | 23 + 31 | 8 | 3 | 17 | 5 | 15 | 3 | 1 | 24 + 32 | 8 | 4 | 17 | 5 | 10 | 2 | 1 | 25 + 33 | 8 | 5 | 17 | 5 | 6 | 1 | 1 | 26 + 34 | 8 | 6 | 17 | 5 | 5 | -1 | 0 | 27 + 35 | 9 | 1 | 17 | 10 | 17 | 15 | 1 | 27 + 36 | 9 | 2 | 17 | 10 | 16 | 16 | 1 | 28 + 37 | 9 | 3 | 17 | 10 | 15 | 3 | 1 | 29 + 38 | 9 | 4 | 17 | 10 | 10 | -1 | 0 | 30 + 39 | 10 | 1 | 17 | 12 | 17 | 15 | 1 | 30 + 40 | 10 | 2 | 17 | 12 | 16 | 9 | 1 | 31 + 41 | 10 | 3 | 17 | 12 | 11 | 11 | 1 | 32 + 42 | 10 | 4 | 17 | 12 | 12 | -1 | 0 | 33 (42 rows) /* -- q5 */ @@ -132,17 +132,17 @@ SELECT * FROM pgr_edgeDisjointPaths( directed => false); seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 0 - 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 1 - 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 0 - 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 0 - 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 1 - 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 2 - 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 3 - 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 4 - 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 0 - 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | -1 - 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | -2 + 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 1 + 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 2 + 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 1 + 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 1 + 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 2 + 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 3 + 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 4 + 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 5 + 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 5 + 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | 4 + 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | 3 (11 rows) /* -- q6 */ @@ -153,17 +153,17 @@ SELECT * FROM pgr_edgeDisjointPaths( directed => false); seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 0 - 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 1 - 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 0 - 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 0 - 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 1 - 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 2 - 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 3 - 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 4 - 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 0 - 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | -1 - 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | -2 + 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 1 + 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 2 + 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 1 + 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 1 + 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 2 + 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 3 + 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 4 + 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 5 + 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 5 + 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | 4 + 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | 3 (11 rows) /* -- q7 */ From 97c1ae530353943795934ff61b8b7c75eccc850e Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 17:41:02 -0600 Subject: [PATCH 033/141] (pgtap) fix syntax error --- pgtap/mincut/stoerWagner/compare_components.pg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pgtap/mincut/stoerWagner/compare_components.pg b/pgtap/mincut/stoerWagner/compare_components.pg index c67c96c407..69062167ea 100644 --- a/pgtap/mincut/stoerWagner/compare_components.pg +++ b/pgtap/mincut/stoerWagner/compare_components.pg @@ -98,7 +98,7 @@ SELECT CASE WHEN (SELECT boost FROM pgr_full_version()) < '1.80' THEN collect_tap(set_eq('stoerWagner7', 'VALUES (1, 1, 1, 1)', '6: Compare the mincut of subgraph with actual result')) ELSE collect_tap(set_eq('stoerWagner7', 'VALUES (1, 14, 1, 1)', '6: Compare the mincut of subgraph with actual result')) -END CASE; +END; SELECT * FROM finish(); ROLLBACK; From c48e2fcf246a2da13c01f0747cfbf4d9f81b8184 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 18:29:18 -0600 Subject: [PATCH 034/141] (clang) fixing clang 18 warnings --- include/chinese/pgr_chinesePostman.hpp | 2 -- include/dijkstra/drivingDist.hpp | 2 +- src/driving_distance/many_to_dist_driving_distance.c | 2 +- src/driving_distance/many_to_dist_withPointsDD.c | 2 +- src/ksp/ksp.c | 4 ++-- src/ksp/withPoints_ksp.c | 4 ++-- src/withPoints/pgr_withPoints.cpp | 2 -- 7 files changed, 7 insertions(+), 11 deletions(-) diff --git a/include/chinese/pgr_chinesePostman.hpp b/include/chinese/pgr_chinesePostman.hpp index a1a40a87e1..45827999bb 100644 --- a/include/chinese/pgr_chinesePostman.hpp +++ b/include/chinese/pgr_chinesePostman.hpp @@ -143,7 +143,6 @@ PgrDirectedChPPGraph::PgrDirectedChPPGraph( // calcu deg & build part of edges std::map deg; - size_t i(0); for (const auto &e : originalEdges) { pgassert(e.cost > 0); /* has out going edge */ @@ -169,7 +168,6 @@ PgrDirectedChPPGraph::PgrDirectedChPPGraph( edge.capacity = (std::numeric_limits::max)(); edge.cost = e.cost; edges.push_back(edge); - ++i; } superSource = deg.rbegin()->first + 1; diff --git a/include/dijkstra/drivingDist.hpp b/include/dijkstra/drivingDist.hpp index a8e16543cc..63894becc2 100644 --- a/include/dijkstra/drivingDist.hpp +++ b/include/dijkstra/drivingDist.hpp @@ -238,7 +238,7 @@ class Pgr_dijkstra { /* The result is empty */ Path p(start_vertex, start_vertex); - p.push_back({start_vertex, -1, 0, 0}); + p.push_back({start_vertex, -1, 0, 0, 0}); return p; } diff --git a/src/driving_distance/many_to_dist_driving_distance.c b/src/driving_distance/many_to_dist_driving_distance.c index 1b4e33beda..03e7300436 100644 --- a/src/driving_distance/many_to_dist_driving_distance.c +++ b/src/driving_distance/many_to_dist_driving_distance.c @@ -163,7 +163,7 @@ _pgr_drivingdistancev4(PG_FUNCTION_ARGS) { for (i = 0; i < numb; ++i) { nulls[i] = false; } - values[0] = Int32GetDatum(funcctx->call_cntr + 1); + values[0] = Int32GetDatum((int32_t)funcctx->call_cntr + 1); values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].depth); values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].from_v); values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].pred); diff --git a/src/driving_distance/many_to_dist_withPointsDD.c b/src/driving_distance/many_to_dist_withPointsDD.c index 66c71405f2..6c97f3c154 100644 --- a/src/driving_distance/many_to_dist_withPointsDD.c +++ b/src/driving_distance/many_to_dist_withPointsDD.c @@ -221,7 +221,7 @@ _pgr_withpointsddv4(PG_FUNCTION_ARGS) { nulls[i] = false; } - values[0] = Int64GetDatum(funcctx->call_cntr + 1); + values[0] = Int64GetDatum((int64_t)funcctx->call_cntr + 1); values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].depth); values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].from_v); values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].pred); diff --git a/src/ksp/ksp.c b/src/ksp/ksp.c index 059099f6b6..113ddc5aaa 100644 --- a/src/ksp/ksp.c +++ b/src/ksp/ksp.c @@ -253,8 +253,8 @@ _pgr_ksp(PG_FUNCTION_ARGS) { } } - values[0] = Int32GetDatum(funcctx->call_cntr + 1); - values[1] = Int32GetDatum(path_id); + values[0] = Int32GetDatum((int32_t)funcctx->call_cntr + 1); + values[1] = Int32GetDatum((int32_t)path_id); values[2] = Int32GetDatum(path[funcctx->call_cntr].seq); if (PG_NARGS() != 6) { values[3] = Int64GetDatum(path[funcctx->call_cntr].start_id); diff --git a/src/ksp/withPoints_ksp.c b/src/ksp/withPoints_ksp.c index 17389ee0a3..554e02e3c9 100644 --- a/src/ksp/withPoints_ksp.c +++ b/src/ksp/withPoints_ksp.c @@ -313,8 +313,8 @@ PGDLLEXPORT Datum _pgr_withpointsksp(PG_FUNCTION_ARGS) { } } - values[0] = Int32GetDatum(funcctx->call_cntr + 1); - values[1] = Int32GetDatum(path_id); + values[0] = Int32GetDatum((int32_t)funcctx->call_cntr + 1); + values[1] = Int32GetDatum((int32_t)path_id); values[2] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq); if (PG_NARGS() != 9) { values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id); diff --git a/src/withPoints/pgr_withPoints.cpp b/src/withPoints/pgr_withPoints.cpp index 84cf9b698a..6443697d9a 100644 --- a/src/withPoints/pgr_withPoints.cpp +++ b/src/withPoints/pgr_withPoints.cpp @@ -341,7 +341,6 @@ Pg_points_graph::create_new_edges() { << point.vertex_id << "\n"; } - int64_t vertex_id = 1; std::vector< Point_on_edge_t > new_points; for (const auto edge : m_edges_of_points) { std::set< Point_on_edge_t, pointCompare> points_on_edge; @@ -400,7 +399,6 @@ Pg_points_graph::create_new_edges() { if (point.fraction > 0 && point.fraction < 1) { log << "vertex_id of the point is " << -point.pid << "\n"; point.vertex_id = -point.pid; - ++vertex_id; } new_points.push_back(point); From 084a843c280d68c5fa71713c339fa6378a1c30e4 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 9 Oct 2024 19:17:32 -0600 Subject: [PATCH 035/141] (doc) updating release notes and NEWS --- NEWS.md | 34 +++++++++++++++++++++++++++++++++- doc/src/release_notes.rst | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index 37d82c4b16..9da7307389 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,7 +9,39 @@ ### pgRouting 3.6.3 Release Notes -No Changes Yet +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 + +**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 boost 1.83.0 version: + + * pgr_edgeDisjointPaths + * pgr_stoerWagner + +**pgtap tests** + +* bug fixes + ### pgRouting 3.6.2 Release Notes diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 20364d1ae4..7167bbb6f5 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -40,7 +40,39 @@ pgRouting 3.6 pgRouting 3.6.3 Release Notes ------------------------------------------------------------------------------- -No Changes Yet +To see all issues & pull requests closed by this release see the `Git closed +milestone for 3.6.3 +`__ + +.. rubric:: Build + +* Explicit minimum requirements: + + * postgres 11.0.0 + * postgis 3.0.0 + +.. rubric:: Code fixes + +* Fix warnings from cpplint. +* Fix warnings from clang 18. + +.. rubric:: 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 + +.. rubric:: Documentation + +* Results of documentation queries adujsted to boost 1.83.0 version: + + * pgr_edgeDisjointPaths + * pgr_stoerWagner + +.. rubric:: pgtap tests + +* bug fixes + pgRouting 3.6.2 Release Notes ------------------------------------------------------------------------------- From 19bde3f39ac6d6bb833268a99547436084e50319 Mon Sep 17 00:00:00 2001 From: vslashg Date: Tue, 3 Oct 2023 21:01:23 +0000 Subject: [PATCH 036/141] Remove the Boost_VERSION_MACRO define from C++ Boost provides a header, , which provides a BOOST_VERSION macro with the same semantics. This change simplifies the build process and makes this project easier to incorporate in other build systems. --- CMakeLists.txt | 1 - include/coloring/pgr_edgeColoring.hpp | 3 ++- include/tsp/tsp.hpp | 3 ++- src/alpha_shape/pgr_alphaShape.cpp | 3 ++- src/tsp/tsp.cpp | 3 ++- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ffcd8016a..32b88573e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,7 +87,6 @@ find_package(Boost ${BOOST_MINIMUM_VERSION} REQUIRED) if (NOT Boost_VERSION_MACRO) set(Boost_VERSION_MACRO ${Boost_VERSION}) endif() -add_definitions(-DBoost_VERSION_MACRO=${Boost_VERSION_MACRO}) set(BOOST_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") include(CheckCCompilerFlag) diff --git a/include/coloring/pgr_edgeColoring.hpp b/include/coloring/pgr_edgeColoring.hpp index b1eaa63717..4e3b412d7a 100644 --- a/include/coloring/pgr_edgeColoring.hpp +++ b/include/coloring/pgr_edgeColoring.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include "c_types/edge_t.h" #include "c_types/ii_t_rt.h" @@ -59,7 +60,7 @@ class Pgr_edgeColoring : public Pgr_messages { Pgr_edgeColoring(Edge_t*, size_t); Pgr_edgeColoring() = delete; -#if Boost_VERSION_MACRO >= 106800 +#if BOOST_VERSION >= 106800 friend std::ostream& operator<<(std::ostream &, const Pgr_edgeColoring&); #endif diff --git a/include/tsp/tsp.hpp b/include/tsp/tsp.hpp index 830fb78c0d..c08c6824b5 100644 --- a/include/tsp/tsp.hpp +++ b/include/tsp/tsp.hpp @@ -37,6 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include "c_types/iid_t_rt.h" #include "c_types/coordinate_t.h" @@ -77,7 +78,7 @@ class TSP : public Pgr_messages { TSP(Coordinate_t *, size_t, bool); TSP() = delete; -#if Boost_VERSION_MACRO >= 106800 +#if BOOST_VERSION >= 106800 friend std::ostream& operator<<(std::ostream &, const TSP&); #endif bool has_vertex(int64_t id) const; diff --git a/src/alpha_shape/pgr_alphaShape.cpp b/src/alpha_shape/pgr_alphaShape.cpp index bde3ff931e..961a0823d3 100644 --- a/src/alpha_shape/pgr_alphaShape.cpp +++ b/src/alpha_shape/pgr_alphaShape.cpp @@ -41,7 +41,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include -#if Boost_VERSION_MACRO >= 107500 +#include +#if BOOST_VERSION >= 107500 # include #else # include diff --git a/src/tsp/tsp.cpp b/src/tsp/tsp.cpp index 2336ea1e92..90a96a707d 100644 --- a/src/tsp/tsp.cpp +++ b/src/tsp/tsp.cpp @@ -38,6 +38,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "cpp_common/identifiers.hpp" #include "cpp_common/pgr_messages.h" @@ -510,7 +511,7 @@ TSP::get_edge_id(E e) const { -#if Boost_VERSION_MACRO >= 106800 +#if BOOST_VERSION >= 106800 std::ostream& operator<<(std::ostream &log, const TSP& data) { log << "Number of Vertices is:" << num_vertices(data.graph) << "\n"; log << "Number of Edges is:" << num_edges(data.graph) << "\n"; From dc46ab1f4ae81129f02f15c3c9ffd561affe26df Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 10 Oct 2024 13:21:35 -0600 Subject: [PATCH 037/141] (doc) Getting changes from develop --- doc/CMakeLists.txt | 2 +- doc/_static/page_history.js | 16 ++++-- doc/astar/pgr_aStarCost.rst | 4 +- doc/bdAstar/pgr_bdAstarCost.rst | 4 +- doc/bdDijkstra/pgr_bdDijkstra.rst | 4 +- doc/bdDijkstra/pgr_bdDijkstraCost.rst | 2 +- doc/bellman_ford/pgr_bellmanFord.rst | 2 +- .../pgr_binaryBreadthFirstSearch.rst | 2 +- doc/coloring/pgr_edgeColoring.rst | 3 +- doc/conf.py.in | 2 + doc/dagShortestPath/pgr_dagShortestPath.rst | 2 +- doc/dijkstra/dijkstra-family.rst | 22 ++++---- doc/dijkstra/pgr_dijkstra.rst | 2 +- doc/dijkstra/pgr_dijkstraCost.rst | 4 +- doc/dijkstra/pgr_dijkstraVia.rst | 2 +- doc/lineGraph/pgr_lineGraph.rst | 54 ++++++++++++++++--- doc/max_flow/flow-family.rst | 11 ++-- doc/max_flow/pgr_maxFlow.rst | 6 +-- doc/max_flow/pgr_maxFlowMinCost_Cost.rst | 4 +- doc/pickDeliver/VRP-category.rst | 4 +- doc/spanningTree/pgr_primBFS.rst | 4 +- doc/spanningTree/pgr_primDD.rst | 4 +- doc/src/costMatrix-category.rst | 3 +- doc/src/migration.rst | 28 +++++----- doc/src/pgRouting-concepts.rst | 4 +- doc/src/pgRouting-installation.rst | 2 - doc/src/pgRouting-introduction.rst | 8 +-- doc/topology/pgr_nodeNetwork.rst | 6 +-- doc/trsp/pgr_trspVia.rst | 2 +- doc/trsp/pgr_trsp_withPoints.rst | 2 +- doc/withPoints/pgr_withPoints.rst | 2 +- doc/withPoints/pgr_withPointsCost.rst | 4 +- 32 files changed, 136 insertions(+), 85 deletions(-) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 238af12653..d32b651da9 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -78,7 +78,7 @@ message(STATUS "PROJECT_DOC_TARGETS = ${PROJECT_DOC_TARGETS}") # Available Languages # English is always built #--------------------------------------------- -set(PROJECT_SUPPORTED_LANGUAGES "de" "es" "fr" "it" "ja" "ru") +set(PROJECT_SUPPORTED_LANGUAGES "de" "es" "fr" "it" "ja" "zh_Hans") set(PROJECT_ENGLISH "en") #--------------------------------------------- diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js index f5a5b65ac8..52eac60685 100644 --- a/doc/_static/page_history.js +++ b/doc/_static/page_history.js @@ -9,6 +9,7 @@ var unsuportedArr = ['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: 'zh-Hans', v: ['Supported versions', 'Unsupported versions']}, ]; @@ -356,20 +357,29 @@ function get_history(name, lang) { result += home + 'latest/' + validlang + '/' + data.file + '.html"> latest '; latest = versionsArr[0]; for (var i = 0; i < versionsArr.length; i++) { + validlang = lang; + if (versionsArr[i] < data.newat) break; + + /* for zh-Hans non translated versions use english */ + validlang = (lang == 'zh-Hans' && versionsArr[i] == '3.7')? lang : 'en'; + var link = home + versionsArr[i] + '/'; link += validlang + '/' + data.file + '.html">' + versionsArr[i] + ''; if (versionsArr[i] == latest) result += '(' + link + ') '; else result += link + ' '; } - result += home + 'main/' + validlang + '/' + data.file + '.html"> main '; - result += home + 'dev/' + validlang + '/' + data.file + '.html"> dev '; + result += home + 'main/' + lang + '/' + data.file + '.html"> main '; + result += home + 'dev/' + lang + '/' + data.file + '.html"> dev '; if (data.newat <= unsuportedArr[0]) { result += '
' + title.v[1] + ':'; for (var i = 0; i < unsuportedArr.length; i++) { + /* basically 2.x has only english */ + validlang = 'en'; + /* for spanish non translated versions use english */ - validlang = (lang == 'es' && unsuportedArr[i] == '2.0')? lang : 'en'; + validlang = (lang == 'es' && unsuportedArr[i] == '2.0')? 'es' : validlang; if (data.newat > unsuportedArr[i]) break; var link = home + unsuportedArr[i] + '/'; diff --git a/doc/astar/pgr_aStarCost.rst b/doc/astar/pgr_aStarCost.rst index 8155a33840..cc77338152 100644 --- a/doc/astar/pgr_aStarCost.rst +++ b/doc/astar/pgr_aStarCost.rst @@ -13,7 +13,7 @@ pgr_aStarCost =============================================================================== -``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* algorithm. +``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm. .. figure:: images/boost-inside.jpeg :target: https://www.boost.org/libs/graph/doc/astar_search.html @@ -39,7 +39,7 @@ pgr_aStarCost Description ------------------------------------------------------------------------------- -The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path(s) +The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path using the A* algorithm. **The main characteristics are:** diff --git a/doc/bdAstar/pgr_bdAstarCost.rst b/doc/bdAstar/pgr_bdAstarCost.rst index 378ce655da..22bb68ded5 100644 --- a/doc/bdAstar/pgr_bdAstarCost.rst +++ b/doc/bdAstar/pgr_bdAstarCost.rst @@ -13,7 +13,7 @@ pgr_bdAstarCost =============================================================================== -``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the bidirectional +``pgr_bdAstarCost`` - Total cost of the shortest path using the bidirectional A* algorithm. .. figure:: images/boost-inside.jpeg @@ -40,7 +40,7 @@ A* algorithm. Description ------------------------------------------------------------------------------- -The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path(s) +The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path using the bidirectional A* algorithm. **The main characteristics are:** diff --git a/doc/bdDijkstra/pgr_bdDijkstra.rst b/doc/bdDijkstra/pgr_bdDijkstra.rst index e100fa3dd8..fd309b2ded 100644 --- a/doc/bdDijkstra/pgr_bdDijkstra.rst +++ b/doc/bdDijkstra/pgr_bdDijkstra.rst @@ -13,7 +13,7 @@ ``pgr_bdDijkstra`` =============================================================================== -``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional Dijkstra +``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra algorithm. .. figure:: images/boost-inside.jpeg @@ -73,7 +73,7 @@ Signatures | pgr_bdDijkstra(`Edges SQL`_, **start vid**, **end vids**, [``directed``]) | pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vid**, [``directed``]) | pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``]) - | pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``]) + | pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``]) | Returns set of |old-generic-result| | OR EMPTY SET diff --git a/doc/bdDijkstra/pgr_bdDijkstraCost.rst b/doc/bdDijkstra/pgr_bdDijkstraCost.rst index 3847e8427e..f0e87ccbc4 100644 --- a/doc/bdDijkstra/pgr_bdDijkstraCost.rst +++ b/doc/bdDijkstra/pgr_bdDijkstraCost.rst @@ -13,7 +13,7 @@ ``pgr_bdDijkstraCost`` =============================================================================== -``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using Bidirectional +``pgr_bdDijkstraCost`` — Returns the shortest path's cost using Bidirectional Dijkstra algorithm. .. figure:: images/boost-inside.jpeg diff --git a/doc/bellman_ford/pgr_bellmanFord.rst b/doc/bellman_ford/pgr_bellmanFord.rst index 5cdf49e9c8..1cf033cbf3 100644 --- a/doc/bellman_ford/pgr_bellmanFord.rst +++ b/doc/bellman_ford/pgr_bellmanFord.rst @@ -13,7 +13,7 @@ ``pgr_bellmanFord - Experimental`` =============================================================================== -``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm. +``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm. .. figure:: images/boost-inside.jpeg :target: https://www.boost.org/libs/graph/doc/bellman_ford_shortest.html diff --git a/doc/breadthFirstSearch/pgr_binaryBreadthFirstSearch.rst b/doc/breadthFirstSearch/pgr_binaryBreadthFirstSearch.rst index 8c260eaf69..efcb51a6b6 100644 --- a/doc/breadthFirstSearch/pgr_binaryBreadthFirstSearch.rst +++ b/doc/breadthFirstSearch/pgr_binaryBreadthFirstSearch.rst @@ -13,7 +13,7 @@ ``pgr_binaryBreadthFirstSearch`` - Experimental =============================================================================== -``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a binary +``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary graph. Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any diff --git a/doc/coloring/pgr_edgeColoring.rst b/doc/coloring/pgr_edgeColoring.rst index 8128da422c..9c48d28ee0 100644 --- a/doc/coloring/pgr_edgeColoring.rst +++ b/doc/coloring/pgr_edgeColoring.rst @@ -126,8 +126,7 @@ See Also * `Boost: Edge Coloring Algorithm documentation `__ -* `Wikipedia: Graph Coloring - `__ +* `Wikipedia: Graph coloring `__ .. see also end diff --git a/doc/conf.py.in b/doc/conf.py.in index 14816fa941..f7848e052d 100644 --- a/doc/conf.py.in +++ b/doc/conf.py.in @@ -57,6 +57,8 @@ extensions = [ ] autosectionlabel_prefix_document = True +graphviz_dot='neato' + # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] diff --git a/doc/dagShortestPath/pgr_dagShortestPath.rst b/doc/dagShortestPath/pgr_dagShortestPath.rst index 373f53a608..62febb3047 100644 --- a/doc/dagShortestPath/pgr_dagShortestPath.rst +++ b/doc/dagShortestPath/pgr_dagShortestPath.rst @@ -13,7 +13,7 @@ pgr_dagShortestPath - Experimental =============================================================================== -``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted directed +``pgr_dagShortestPath`` — Returns the shortest path for weighted directed acyclic graphs(DAG). In particular, the DAG shortest paths algorithm implemented by Boost.Graph. diff --git a/doc/dijkstra/dijkstra-family.rst b/doc/dijkstra/dijkstra-family.rst index 0c5f9f81f7..f90c0a5eb5 100644 --- a/doc/dijkstra/dijkstra-family.rst +++ b/doc/dijkstra/dijkstra-family.rst @@ -200,10 +200,10 @@ The weighted directed graph, :math:`G_d(V,E)`, is definied by: * the set of edges :math:`E` - :math:`E = \begin{cases} - \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \quad \text{if } reverse\_cost = \varnothing \\ - \text{ } \text{ } & \quad \text{ } \\ - \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \quad \text{ } \\ - \cup \{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i>=0 \} & \quad \text{if } reverse\_cost \neq \varnothing \\ + \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \quad \text{if } reverse\_cost = \varnothing \\ + \text{ } \text{ } & \quad \text{ } \\ + \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \quad \text{ } \\ + \cup \{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i>=0 \} & \quad \text{if } reverse\_cost \neq \varnothing \\ \end{cases}` @@ -220,13 +220,13 @@ The weighted undirected graph, :math:`G_u(V,E)`, is definied by: * the set of edges :math:`E` - :math:`E = \begin{cases} - \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \quad \text{ } \\ - \cup \{(target_i, source_i, cost_i) \text{ when } cost >=0 \} & \quad \text{ if } reverse\_cost = \varnothing \\ - \text{ } \text{ } & \text{ } \\ - \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \text{ } \\ - \cup \{(target_i, source_i, cost_i) \text{ when } cost >=0 \} & \text{ } \\ - \cup \{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} & \text{ } \\ - \cup \{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} & \quad \text{ if } reverse\_cost \neq \varnothing \\ + \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \quad \text{ } \\ + \cup \{(target_i, source_i, cost_i) \text{ when } cost >=0 \} & \quad \text{ if } reverse\_cost = \varnothing \\ + \text{ } \text{ } & \text{ } \\ + \text{ } \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \text{ } \\ + \cup \{(target_i, source_i, cost_i) \text{ when } cost >=0 \} & \text{ } \\ + \cup \{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} & \text{ } \\ + \cup \{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} & \quad \text{ if } reverse\_cost \neq \varnothing \\ \end{cases}` diff --git a/doc/dijkstra/pgr_dijkstra.rst b/doc/dijkstra/pgr_dijkstra.rst index 7ee90dfc3a..f5fc67744e 100644 --- a/doc/dijkstra/pgr_dijkstra.rst +++ b/doc/dijkstra/pgr_dijkstra.rst @@ -13,7 +13,7 @@ ``pgr_dijkstra`` =============================================================================== -``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm. +``pgr_dijkstra`` — Shortest path using Dijkstra algorithm. .. figure:: images/boost-inside.jpeg :target: https://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html diff --git a/doc/dijkstra/pgr_dijkstraCost.rst b/doc/dijkstra/pgr_dijkstraCost.rst index 67657df22a..f462f9c37d 100644 --- a/doc/dijkstra/pgr_dijkstraCost.rst +++ b/doc/dijkstra/pgr_dijkstraCost.rst @@ -14,7 +14,7 @@ ``pgr_dijkstraCost`` =============================================================================== -``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra +``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra algorithm. .. figure:: images/boost-inside.jpeg @@ -38,7 +38,7 @@ algorithm. Description ------------------------------------------------------------------------------- -The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path(s) +The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path using Dijkstra Algorithm. .. include:: dijkstra-family.rst diff --git a/doc/dijkstra/pgr_dijkstraVia.rst b/doc/dijkstra/pgr_dijkstraVia.rst index 2a88623d13..729224777c 100644 --- a/doc/dijkstra/pgr_dijkstraVia.rst +++ b/doc/dijkstra/pgr_dijkstraVia.rst @@ -59,7 +59,7 @@ One Via | OR EMPTY SET :Example: Find the route that visits the vertices :math:`\{5, 1, 8\}` in that - order on an **directed** graph. + order on an directed graph. .. literalinclude:: doc-pgr_dijkstraVia.queries :start-after: -- q01 diff --git a/doc/lineGraph/pgr_lineGraph.rst b/doc/lineGraph/pgr_lineGraph.rst index 5a3ed71270..bbef0d027a 100644 --- a/doc/lineGraph/pgr_lineGraph.rst +++ b/doc/lineGraph/pgr_lineGraph.rst @@ -10,7 +10,7 @@ | -``pgr_lineGraph`` - Experimental +pgr_lineGraph - Experimental =============================================================================== ``pgr_lineGraph`` — Transforms the given graph into its corresponding edge-based @@ -35,11 +35,21 @@ graph. Description ------------------------------------------------------------------------------- -Given a graph G, its line graph L(G) is a graph such that: +Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that: -- Each vertex of L(G) represents an edge of G -- Two vertices of L(G) are adjacent if and only if their corresponding edges - share a common endpoint in G. +- Each vertex of :math:`L(G)` represents an edge of :math:`G`. +- Two vertices of :math:`L(G)` are adjacent if and only if their corresponding + edges share a common endpoint in :math:`G` + +**The main characteristics are:** + +- Works for directed and undirected graphs. +- The ``cost`` and ``reverse_cost`` columns of the result represent existence of + the edge. +- When the graph is directed the result is directed. +- When the graph is undirected the result is undirected. + + - The ``reverse_cost`` is always :math:`-1`. .. index:: single: lineGraph - Experimental on v2.5 @@ -55,12 +65,39 @@ Signatures | Returns set of |result-lineg| | OR EMPTY SET -:Example: For a **directed** graph +:Example: For an undirected graph with edges :math:'{2,4,5,8}' .. literalinclude:: doc-pgr_lineGraph.queries :start-after: -- q1 :end-before: -- q2 +.. graphviz:: + + graph G { + + v6 [label=6,shape=circle;style=filled;fixedsize=true;width=.4;color=deepskyblue,pos="0,0!"]; + v7 [label=7,shape=circle;style=filled;fixedsize=true;width=.4;color=deepskyblue,pos="0,2!"]; + v10 [label=10,shape=circle;style=filled;fixedsize=true;width=.4;color=deepskyblue,pos="2,0!"]; + v11 [label=11,shape=circle;style=filled;fixedsize=true;width=.4;color=deepskyblue,pos="2,2!"]; + + v7--v6 [color=blue]; + v7--v11 [color=blue]; + v10--v6 [color=blue]; + v10--v11 [color=blue]; + + s2 [label="2",shape=circle;style=filled;width=.4;color=yellow,pos="1,0!"]; + s4 [label="4",shape=circle;style=filled;width=.4;color=yellow,pos="0,1!"]; + s5 [label="5",shape=circle;style=filled;width=.4;color=yellow,pos="2,1!"]; + s8 [label="8",shape=circle;style=filled;width=.4;color=yellow,pos="1,2!"]; + + s2--s4 [color=red]; + s2--s5 [color=red]; + s4--s8 [color=red]; + s5--s8 [color=red]; + } + + + Parameters ------------------------------------------------------------------------------- @@ -129,8 +166,9 @@ Returns set of |result-lineg| See Also ------------------------------------------------------------------------------- -* https://en.wikipedia.org/wiki/Line_graph -* The queries use the :doc:`sampledata` network. +* wikipedia: `Line Graph `__ +* mathworld: `Line Graph `__ +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/max_flow/flow-family.rst b/doc/max_flow/flow-family.rst index cbb222ce01..b2ce974d73 100644 --- a/doc/max_flow/flow-family.rst +++ b/doc/max_flow/flow-family.rst @@ -70,15 +70,18 @@ Flow Functions General Information - When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned. - - There is no flow when a **source** is the same as a **target**. + - There is no flow when source has the same vaule as target. -- Any duplicated value in the source(s) or target(s) are ignored. +- Any duplicated values in source or target are ignored. - Calculates the flow/residual capacity for each edge. In the output - Edges with zero flow are omitted. -- Creates a **super source** and edges to all the source(s), and a **super - target** and the edges from all the targets(s). +- Creates + + - a **super source** and edges from it to all the sources, + - a **super target** and edges from it to all the targetss. + - The maximum flow through the graph is guaranteed to be the value returned by :doc:`pgr_maxFlow ` when executed with the same parameters and can be calculated: diff --git a/doc/max_flow/pgr_maxFlow.rst b/doc/max_flow/pgr_maxFlow.rst index 07b8d0de43..bcdb1cd2f4 100644 --- a/doc/max_flow/pgr_maxFlow.rst +++ b/doc/max_flow/pgr_maxFlow.rst @@ -44,12 +44,12 @@ Description **The main characteristics are:** - The graph is **directed**. -- Calculates the maximum flow from the `source(s)` to the `target(s)`. +- Calculates the maximum flow from the sources to the targets. - When the maximum flow is **0** then there is no flow and **0** is returned. - - There is no flow when a **source** is the same as a **target**. + - There is no flow when source has the same vaule as target. -- Any duplicated value in the source(s) or target(s) are ignored. +- Any duplicated values in source or target are ignored. - Uses the :doc:`pgr_pushRelabel ` algorithm. * Running time: :math:`O( V ^ 3)` diff --git a/doc/max_flow/pgr_maxFlowMinCost_Cost.rst b/doc/max_flow/pgr_maxFlowMinCost_Cost.rst index f987d16a80..73622df2e0 100644 --- a/doc/max_flow/pgr_maxFlowMinCost_Cost.rst +++ b/doc/max_flow/pgr_maxFlowMinCost_Cost.rst @@ -51,9 +51,9 @@ Description - **The cost value of all input edges must be nonnegative.** - When the maximum flow is 0 then there is no flow and **0** is returned. - - There is no flow when a **source** is the same as a **target**. + - There is no flow when source has the same vaule as target. -- Any duplicated value in the source(s) or target(s) are ignored. +- Any duplicated values in source or target are ignored. - Uses :doc:`pgr_maxFlowMinCost`. * Running time: :math:`O(U * (E + V * logV))` diff --git a/doc/pickDeliver/VRP-category.rst b/doc/pickDeliver/VRP-category.rst index 4366110141..34c656a69a 100644 --- a/doc/pickDeliver/VRP-category.rst +++ b/doc/pickDeliver/VRP-category.rst @@ -677,9 +677,9 @@ at 4:30 pm and the service time duration is 10 minutes with 30 seconds. ============ ========== ================= ===================== ========= Meaning of 0 time units 9:00 am 4:30 pm 10 min 30 secs ============ ========== ================= ===================== ========= -0:00 am hours 9 16.5 :math:`10.5 / 60 = 0.175` +0:00 am hours 9 16.5 :math:`10.5 / 60 = 0.175` 0:00 am minutes :math:`9*60 = 54` :math:`16.5*60 = 990` 10.5 -9:00 am hours 0 7.5 :math:`10.5 / 60 = 0.175` +9:00 am hours 0 7.5 :math:`10.5 / 60 = 0.175` 9:00 am minutes 0 :math:`7.5*60 = 540` 10.5 ============ ========== ================= ===================== ========= diff --git a/doc/spanningTree/pgr_primBFS.rst b/doc/spanningTree/pgr_primBFS.rst index 2557238a61..0d049f45c8 100644 --- a/doc/spanningTree/pgr_primBFS.rst +++ b/doc/spanningTree/pgr_primBFS.rst @@ -32,7 +32,7 @@ Description ------------------------------------------------------------------------------- Visits and extracts the nodes information in Breath First Search ordering -of the Minimum Spanning Tree created with Prims's algorithm. +of the Minimum Spanning Tree created using Prims's algorithm. **The main Characteristics are:** @@ -129,7 +129,7 @@ See Also * :doc:`spanningTree-family` * :doc:`prim-family` -* The queries use the :doc:`sampledata` network. +* :doc:`sampledata` * `Boost: Prim's algorithm documentation `__ * `Wikipedia: Prim's algorithm diff --git a/doc/spanningTree/pgr_primDD.rst b/doc/spanningTree/pgr_primDD.rst index 2f05af5fa1..598197233e 100644 --- a/doc/spanningTree/pgr_primDD.rst +++ b/doc/spanningTree/pgr_primDD.rst @@ -24,13 +24,13 @@ * Version 3.0.0 - * New **Official** function +* New **Official** function Description ------------------------------------------------------------------------------- Using Prim's algorithm, extracts the nodes that have aggregate costs less than -or equal to a **distance** from a **root** vertex (or vertices) within the +or equal to a distance from a root vertex (or vertices) within the calculated minimum spanning tree. **The main Characteristics are:** diff --git a/doc/src/costMatrix-category.rst b/doc/src/costMatrix-category.rst index f05d57fb83..0b50a2615a 100644 --- a/doc/src/costMatrix-category.rst +++ b/doc/src/costMatrix-category.rst @@ -16,9 +16,8 @@ Cost Matrix - Category .. index from here * :doc:`pgr_aStarCostMatrix` -* :doc:`pgr_bdAstarCostMatrix` -* :doc:`pgr_bdDijkstraCostMatrix` * :doc:`pgr_dijkstraCostMatrix` +* :doc:`pgr_bdAstarCostMatrix` * :doc:`pgr_bdDijkstraCostMatrix` .. index to here diff --git a/doc/src/migration.rst b/doc/src/migration.rst index f9eb524fb8..ce0ebbcab9 100644 --- a/doc/src/migration.rst +++ b/doc/src/migration.rst @@ -54,7 +54,7 @@ Signatures to be migrated: :Migration: -* Be aware of the existance of the additional columns. +* Be aware of the existence of the additional columns. * In ``pgr_aStar`` (`One to One`) @@ -123,7 +123,7 @@ Signatures to be migrated: :Migration: -* Be aware of the existance of the additional columns. +* Be aware of the existence of the additional columns. * In ``pgr_bdAstar`` (`One to One`) @@ -192,7 +192,7 @@ Signatures to be migrated: :Migration: -* Be aware of the existance of the additional columns. +* Be aware of the existence of the additional columns. * In ``pgr_dijkstra`` (`One to One`) @@ -237,7 +237,7 @@ Migration of ``pgr_drivingdistance`` ------------------------------------------------------------------------------- Starting from `v3.6.0 `__ -:doc:`pgr_drivingDistance` result columns are being standarized. +:doc:`pgr_drivingDistance` result columns are being standardized. :from: |result-dij-dd| :to: |result-spantree| @@ -262,7 +262,7 @@ Output columns were |result-dij-dd| :Migration: -* Be aware of the existance and name change of the result columns. +* Be aware of the existence and name change of the result columns. ``pgr_drivingdistance`` (Single vertex) ............................................................................... @@ -300,7 +300,7 @@ example. :start-after: --drivingdistance3 :end-before: --drivingdistance4 -If needed filter out and rename colums, for example, to return the original +If needed filter out and rename columns, for example, to return the original columns: .. literalinclude:: migration.queries @@ -312,7 +312,7 @@ Migration of ``pgr_KSP`` ------------------------------------------------------------------------------- Starting from `v3.6.0 `__ -:doc:`pgr_KSP` result columns are being standarized. +:doc:`pgr_KSP` result columns are being standardized. :from: |ksp-result| :from: |nksp-result| @@ -331,7 +331,7 @@ Signatures to be migrated: :Migration: -* Be aware of the existance of the additional columns. +* Be aware of the existence of the additional columns. ``pgr_KSP`` (One to One) ............................................................................... @@ -410,7 +410,7 @@ Migration of ``pgr_withPointsDD`` ------------------------------------------------------------------------------- Starting from `v3.6.0 `__ -:doc:`pgr_withPointsDD` result columns are being standarized. +:doc:`pgr_withPointsDD` result columns are being standardized. :from: |result-generic-no-seq| :to: |result-spantree| @@ -429,13 +429,13 @@ Signatures to be migrated: * 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 unamed. + * ``driving_side`` parameter was named optional now it is compulsory unnamed. * ``pgr_withPointsDD`` (`Multiple vertices`) * 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 unamed. + * ``driving_side`` parameter was named optional now it is compulsory unnamed. .. rubric:: Driving side was optional @@ -480,7 +480,7 @@ Also ``l`` could be used as **driving side** :After Migration: -* Be aware of the existance of the additional result Columns. +* 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. @@ -551,7 +551,7 @@ Migration of ``pgr_withPointsKSP`` ------------------------------------------------------------------------------- Starting from `v3.6.0 `__ -:doc:`pgr_withPointsKSP` result columns are being standarized. +:doc:`pgr_withPointsKSP` result columns are being standardized. :from: |ksp-result| :from: |nksp-result| @@ -572,7 +572,7 @@ Signatures to be migrated: :Migration: -* Be aware of the existance of the additional result Columns. +* 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. diff --git a/doc/src/pgRouting-concepts.rst b/doc/src/pgRouting-concepts.rst index 240a993739..07177a3b5e 100644 --- a/doc/src/pgRouting-concepts.rst +++ b/doc/src/pgRouting-concepts.rst @@ -1010,8 +1010,8 @@ Inner Queries There are several kinds of valid inner queries and also the columns returned are depending of the function. -Which kind of inner query will depend on the function(s) requirements. -To simplify variety of types, **ANY-INTEGER** and **ANY-NUMERICAL** is used. +Which kind of inner query will depend on the function's requirements. +To simplify the variety of types, **ANY-INTEGER** and **ANY-NUMERICAL** is used. .. where_definition_starts diff --git a/doc/src/pgRouting-installation.rst b/doc/src/pgRouting-installation.rst index 88fc487d2c..c081da0fc4 100644 --- a/doc/src/pgRouting-installation.rst +++ b/doc/src/pgRouting-installation.rst @@ -73,8 +73,6 @@ Get the sources The pgRouting latest release can be found in https://github.com/pgRouting/pgrouting/releases/latest -.. rubric:: wget - To download this release: .. parsed-literal:: diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst index dfe2086276..e56bb3fb36 100644 --- a/doc/src/pgRouting-introduction.rst +++ b/doc/src/pgRouting-introduction.rst @@ -91,7 +91,8 @@ Corporate Sponsors in this release (in alphabetical order) These are corporate entities that have contributed developer time, hosting, or direct monetary funding to the pgRouting project: -- `Georepublic `__ +- `OSGeo `__ +- `OSGeo UK `__ - `Google Summer of Code `__ - `Paragon Corporation `__ @@ -171,6 +172,8 @@ direct monetary funding to the pgRouting project: - iMaptools - Leopark - Orkney +- OSGeo +- OSGeo UK - Paragon Corporation - Versaterm Inc. @@ -184,5 +187,4 @@ More Information https://www.postgresql.org. * PostGIS extension at the PostGIS project web site https://postgis.net. * Boost C++ source libraries at https://www.boost.org. -* The Migration guide from 2.6 can be found at - https://github.com/pgRouting/pgrouting/wiki/Migration-Guide. +* :doc:`migration` diff --git a/doc/topology/pgr_nodeNetwork.rst b/doc/topology/pgr_nodeNetwork.rst index 68efeefc87..bc321e160b 100644 --- a/doc/topology/pgr_nodeNetwork.rst +++ b/doc/topology/pgr_nodeNetwork.rst @@ -73,7 +73,7 @@ Parameters The output table will have for ``edge_table_noded`` :id: ``bigint`` Unique identifier for the table -:old_id: ``bigint`` Identifier of the edge in original table +:old_id: ``bigint`` Identifier of the edge in original table :sub_id: ``integer`` Segment number of the original edge :source: ``integer`` Empty source column to be used with :doc:`pgr_createTopology` function @@ -154,13 +154,13 @@ Comparing with the Analysis in the original edge_table, we see that. |Fields | All original fields | Has only basic fields to do a topology analysis | +------------------+-----------------------------------------+--------------------------------------------------------------+ |Dead ends | - Edges with 1 dead end: 1,6,24 | Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2 | -| | - Edges with 2 dead ends 17,18 | | +| | - Edges with 2 dead ends: 17,18 | | | | | | | | Edge 17's right node is a dead end | | | | because there is no other edge sharing | | | | that same node. (cnt=1) | | +------------------+-----------------------------------------+--------------------------------------------------------------+ -|Isolated segments | two isolated segments: 17 and 18 both | No Isolated segments | +|Isolated segments | two isolated segments: 17 and 18 both | No Isolated segments | | | they have 2 dead ends | - Edge 17 now shares a node with edges 14-1 and 14-2 | | | | - Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2 | +------------------+-----------------------------------------+--------------------------------------------------------------+ diff --git a/doc/trsp/pgr_trspVia.rst b/doc/trsp/pgr_trspVia.rst index dfe01b9c18..546eedcbc8 100644 --- a/doc/trsp/pgr_trspVia.rst +++ b/doc/trsp/pgr_trspVia.rst @@ -68,7 +68,7 @@ One Via | Returns set of |via-result| | OR EMPTY SET -:Example: Find the route that visits the vertices :math:`\{ 5, 1, 8\}` in that +:Example: Find the route that visits the vertices :math:`\{5, 1, 8\}` in that order on an directed graph. .. literalinclude:: trspVia.queries diff --git a/doc/trsp/pgr_trsp_withPoints.rst b/doc/trsp/pgr_trsp_withPoints.rst index 7efa75d2e7..2b66b43d6a 100644 --- a/doc/trsp/pgr_trsp_withPoints.rst +++ b/doc/trsp/pgr_trsp_withPoints.rst @@ -40,7 +40,7 @@ Description ------------------------------------------------------------------------------- Modify the graph to include points defined by points_sql. -Using Dijkstra algorithm, find the shortest path(s) +Using Dijkstra algorithm, find the shortest path Characteristics: diff --git a/doc/withPoints/pgr_withPoints.rst b/doc/withPoints/pgr_withPoints.rst index d0101ea917..b2d601c962 100644 --- a/doc/withPoints/pgr_withPoints.rst +++ b/doc/withPoints/pgr_withPoints.rst @@ -41,7 +41,7 @@ Description ------------------------------------------------------------------------------- Modify the graph to include points defined by points_sql. -Using Dijkstra algorithm, find the shortest path(s) +Using Dijkstra algorithm, find the shortest path **The main characteristics are:** diff --git a/doc/withPoints/pgr_withPointsCost.rst b/doc/withPoints/pgr_withPointsCost.rst index 32770a50a8..8da74cfc22 100644 --- a/doc/withPoints/pgr_withPointsCost.rst +++ b/doc/withPoints/pgr_withPointsCost.rst @@ -14,7 +14,7 @@ =============================================================================== ``pgr_withPointsCost`` - Calculates the shortest path and returns only the -aggregate cost of the shortest path(s) found, for the combination of points +aggregate cost of the shortest path found, for the combination of points given. .. include:: proposed.rst @@ -43,7 +43,7 @@ Description ------------------------------------------------------------------------------- Modify the graph to include points defined by points_sql. -Using Dijkstra algorithm, return only the aggregate cost of the shortest path(s) +Using Dijkstra algorithm, return only the aggregate cost of the shortest path found. The main characteristics are: From 9a93fef402c385157f5018fa46e1a4ba9f9731c8 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 10 Oct 2024 14:48:59 -0600 Subject: [PATCH 038/141] (locale) getting latest translations --- locale/de/LC_MESSAGES/index.po | 2 +- .../de/LC_MESSAGES/pgrouting_doc_strings.po | 1119 +++- locale/en/LC_MESSAGES/index.po | 2 +- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 903 ++- locale/es/LC_MESSAGES/index.po | 2 +- .../es/LC_MESSAGES/pgrouting_doc_strings.po | 4077 +++++++------ locale/ja/LC_MESSAGES/index.po | 12 +- .../ja/LC_MESSAGES/pgrouting_doc_strings.po | 1241 ++-- locale/ko/LC_MESSAGES/index.po | 2 +- .../ko/LC_MESSAGES/pgrouting_doc_strings.po | 1227 +++- locale/pot/index.pot | 10 +- locale/pot/pgrouting_doc_strings.pot | 733 ++- locale/zh_Hans/LC_MESSAGES/index.po | 14 +- .../LC_MESSAGES/pgrouting_doc_strings.po | 5403 +++++++++-------- 14 files changed, 8786 insertions(+), 5961 deletions(-) diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po index 75a717f1b8..1ad07fa7b8 100644 --- a/locale/de/LC_MESSAGES/index.po +++ b/locale/de/LC_MESSAGES/index.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po index 6daa68173b..a35ab0143c 100644 --- a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po @@ -4,9 +4,9 @@ # Regina Obe , 2023. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.6.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-19 19:56+0000\n" +"POT-Creation-Date: 2024-10-10 03:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -261,8 +261,8 @@ msgid "" msgstr "" msgid "" -"`Wikipedia: Prim's algorithm `__" +"`Wikipedia: Prim's algorithm `__" msgstr "" msgid "" @@ -1446,7 +1446,7 @@ msgstr "" msgid "16.5" msgstr "" -msgid ":math:`10.5 / 60 = 0.175`" +msgid ":math:`10.5 / 60 = 0.175`" msgstr "" msgid "minutes" @@ -2644,8 +2644,8 @@ msgid "" msgstr "" msgid "" -"The **aggregate cost** the non included values :math:`(u, v)` is :math:`" -"\\infty`" +"The **aggregate cost** the non included values :math:`(u, v)` is :math:" +"`\\infty`" msgstr "" msgid "" @@ -2752,10 +2752,6 @@ msgid "" "graph/doc/edge_coloring.html>`__" msgstr "" -msgid "" -"`Wikipedia: Graph Coloring `__" -msgstr "" - msgid "Components - Family of functions" msgstr "" @@ -3373,13 +3369,13 @@ msgstr "" msgid ":doc:`pgr_aStarCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdAstarCostMatrix`" +msgid ":doc:`pgr_dijkstraCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdDijkstraCostMatrix`" +msgid ":doc:`pgr_bdAstarCostMatrix`" msgstr "" -msgid ":doc:`pgr_dijkstraCostMatrix`" +msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr "" msgid "proposed" @@ -3401,8 +3397,8 @@ msgid "Can be used as input to :doc:`pgr_TSP`." msgstr "" msgid "" -"Use directly when the resulting matrix is symmetric and there is no :math:`" -"\\infty` value." +"Use directly when the resulting matrix is symmetric and there is no :math:" +"`\\infty` value." msgstr "" msgid "It will be the users responsibility to make the matrix symmetric." @@ -3659,11 +3655,11 @@ msgid "the set of edges :math:`E`" msgstr "" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = " -"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " +"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " "\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost " "\\neq \\varnothing \\\\ \\end{cases}`" msgstr "" @@ -3678,17 +3674,16 @@ msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgstr "" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & " -"\\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } " -"cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, " -"reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ " -"\\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse" -"\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\" -"\\ \\end{cases}`" +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " +"target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " +"\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" msgstr "" msgid "The problem" @@ -3712,8 +3707,8 @@ msgid "Then:" msgstr "" msgid "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgstr "" msgid "where:" @@ -3857,11 +3852,6 @@ msgstr "" msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." msgstr "" -msgid "" -"Column ``pred`` only applies to :doc:`pgr_drivingDistance` and :doc:" -"`pgr_withPointsDD`." -msgstr "" - msgid "Experimental Functions" msgstr "" @@ -3886,10 +3876,6 @@ msgstr "" msgid ":doc:`transformation-family`" msgstr "" -msgid "" -":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." -msgstr "" - msgid "" ":doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line " "Graph out of each vertex in the input graph." @@ -3918,6 +3904,14 @@ msgid "" "an undirected graph." msgstr "" +msgid ":doc:`metrics-family`" +msgstr "" + +msgid "" +":doc:`pgr_betweennessCentrality` - Calculates relative betweenness " +"centrality using Brandes Algorithm" +msgstr "" + msgid ":doc:`TRSP-family`" msgstr "" @@ -4007,10 +4001,10 @@ msgid "" "returned." msgstr "" -msgid "There is no flow when a **source** is the same as a **target**." +msgid "There is no flow when source has the same vaule as target." msgstr "" -msgid "Any duplicated value in the source(s) or target(s) are ignored." +msgid "Any duplicated values in source or target are ignored." msgstr "" msgid "Calculates the flow/residual capacity for each edge. In the output" @@ -4019,9 +4013,13 @@ msgstr "" msgid "Edges with zero flow are omitted." msgstr "" -msgid "" -"Creates a **super source** and edges to all the source(s), and a **super " -"target** and the edges from all the targets(s)." +msgid "Creates" +msgstr "" + +msgid "a **super source** and edges from it to all the sources," +msgstr "" + +msgid "a **super target** and edges from it to all the targetss." msgstr "" msgid "" @@ -4172,8 +4170,8 @@ msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" msgstr "" msgid "" -"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse" -"\\_capacity_i)\\}`" +"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " +"reverse\\_capacity_i)\\}`" msgstr "" msgid "Graph definition" @@ -4195,8 +4193,8 @@ msgid "" "\\text{ when } capacity > 0 \\} & \\quad \\text{ if } reverse\\_capacity = " "\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, " "capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse" -"\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " +"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } " +"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " "\\varnothing \\\\ \\end{cases}`" msgstr "" @@ -4377,6 +4375,111 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.7.0 `__" +msgstr "" + +msgid "Support" +msgstr "" + +msgid "" +"`#2656 `__ Stop support of " +"PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + +msgid "New experimental functions" +msgstr "" + +msgid "Metrics" +msgstr "" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "" + +msgid "" +"`#2605 `__ Standarize " +"spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "" + +msgid "``pgr_kruskalDD``" +msgstr "" + +msgid "``pgr_kruskalDFS``" +msgstr "" + +msgid "``pgr_kruskalBFS``" +msgstr "" + +msgid "``pgr_primDD``" +msgstr "" + +msgid "``pgr_primDFS``" +msgstr "" + +msgid "``pgr_primBFS``" +msgstr "" + +msgid "Standarizing output columns to |result-spantree|" +msgstr "" + +msgid "Added ``pred`` result columns." +msgstr "" + +msgid "Experimental promoted to proposed." +msgstr "" + +msgid "" +"`#2635 `__ pgr_LineGraph " +"ignores directed flag and use negative values for identifiers." +msgstr "" + +msgid "``pgr_lineGraph``" +msgstr "" + +msgid "Promoted to **proposed** signature." +msgstr "" + +msgid "Works for directed and undirected graphs." +msgstr "" + +msgid "Code enhancement" +msgstr "" + +msgid "" +"`#2599 `__ Driving " +"distance cleanup" +msgstr "" + +msgid "" +"`#2607 `__ Read postgresql " +"data on C++" +msgstr "" + +msgid "" +"`#2614 `__ Clang tidy does " +"not work" +msgstr "" + +msgid "All releases" +msgstr "" + msgid "Kruskal - Family of functions" msgstr "" @@ -4398,6 +4501,9 @@ msgstr "" msgid "Kruskal's running time: :math:`O(E * log E)`" msgstr "" +msgid "Metrics - Family of functions" +msgstr "" + msgid "Migration guide" msgstr "" @@ -4461,7 +4567,7 @@ msgstr "" msgid "Migration" msgstr "" -msgid "Be aware of the existance of the additional columns." +msgid "Be aware of the existence of the additional columns." msgstr "" msgid "In ``pgr_aStar`` (`One to One`)" @@ -4575,7 +4681,7 @@ msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_drivingDistance` result columns are being standarized." +"doc:`pgr_drivingDistance` result columns are being standardized." msgstr "" msgid "from" @@ -4608,7 +4714,7 @@ msgstr "" msgid "does not have ``depth`` result column." msgstr "" -msgid "Be aware of the existance and name change of the result columns." +msgid "Be aware of the existence and name change of the result columns." msgstr "" msgid "" @@ -4636,16 +4742,75 @@ msgid "The ``from_v`` result column name changes to ``start_vid``." msgstr "" msgid "" -"If needed filter out and rename colums, for example, to return the original " +"If needed filter out and rename columns, for example, to return the original " "columns:" msgstr "" +msgid "" +"Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :doc:`pgr_kruskalDFS` result " +"columns are being standardized." +msgstr "" + +msgid "|result-bfs|" +msgstr "" + +msgid "Single vertex" +msgstr "" + +msgid "Multiple vertices" +msgstr "" + +msgid "Output columns were |result-bfs|" +msgstr "" + +msgid "Single vertex and Multiple vertices" +msgstr "" + +msgid "Do not have ``pred`` result column." +msgstr "" + +msgid "Be aware of the existence of `pred` result columns." +msgstr "" + +msgid "If needed filter out the added columns" +msgstr "" + +msgid "Kruskal single vertex" +msgstr "" + +msgid "" +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + +msgid "" +"Now column ``pred`` exists and contains the predecessor of the ``node``." +msgstr "" + +msgid "Kruskal multiple vertices" +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + msgid "Migration of ``pgr_KSP``" msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_KSP` result columns are being standarized." +"doc:`pgr_KSP` result columns are being standardized." msgstr "" msgid "|ksp-result|" @@ -4744,12 +4909,42 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns " +"are being standardized." +msgstr "" + +msgid "Prim single vertex" +msgstr "" + +msgid "" +"Using ``pgr_primDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + +msgid "Prim multiple vertices" +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + msgid "Migration of ``pgr_withPointsDD``" msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsDD` result columns are being standarized." +"doc:`pgr_withPointsDD` result columns are being standardized." msgstr "" msgid "|result-generic-no-seq|" @@ -4774,7 +4969,7 @@ msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." msgstr "" msgid "" -"``driving_side`` parameter was named optional now it is compulsory unamed." +"``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "" msgid "``pgr_withPointsDD`` (`Multiple vertices`)" @@ -4825,7 +5020,7 @@ msgstr "" msgid "After Migration" msgstr "" -msgid "Be aware of the existance of the additional result Columns." +msgid "Be aware of the existence of the additional result Columns." msgstr "" msgid "New output columns are |result-spantree|" @@ -4887,7 +5082,7 @@ msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsKSP` result columns are being standarized." +"doc:`pgr_withPointsKSP` result columns are being standardized." msgstr "" msgid "" @@ -5473,8 +5668,8 @@ msgstr "" msgid "" ":math:`E = \\begin{split} \\begin{align} & {\\{(source_{id}, target_{id}, " "cost_{id}) \\text{ when } cost_{id} >=0 \\}} \\\\ & \\cup \\\\ & " -"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } reverse" -"\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" +"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } " +"reverse\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" msgstr "" msgid "" @@ -6348,8 +6543,8 @@ msgstr "" msgid "" "There are several kinds of valid inner queries and also the columns returned " "are depending of the function. Which kind of inner query will depend on the " -"function(s) requirements. To simplify variety of types, **ANY-INTEGER** and " -"**ANY-NUMERICAL** is used." +"function's requirements. To simplify the variety of types, **ANY-INTEGER** " +"and **ANY-NUMERICAL** is used." msgstr "" msgid "Edges SQL for" @@ -6776,9 +6971,6 @@ msgid "" "pgrouting/releases/latest" msgstr "" -msgid "wget" -msgstr "" - msgid "To download this release:" msgstr "" @@ -6819,7 +7011,7 @@ msgid "Upgrading the database" msgstr "" msgid "" -"To upgrade pgRouting in the database to version 3.6.0 use the following " +"To upgrade pgRouting in the database to version 3.7.0 use the following " "command:" msgstr "" @@ -7153,13 +7345,13 @@ msgstr "" msgid "This Release Contributors" msgstr "" -msgid "Individuals in this release (in alphabetical order)" +msgid "Individuals in this release v3.7.x (in alphabetical order)" msgstr "" -msgid "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, " -"Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, " -"Virginia Vergara, Yige Huang" +msgid "(Alphabetical order)" +msgstr "" + +msgid "Regina Obe, Vicky Vergara" msgstr "" msgid "" @@ -7176,7 +7368,10 @@ msgid "" "or direct monetary funding to the pgRouting project:" msgstr "" -msgid "`Georepublic `__" +msgid "`OSGeo `__" +msgstr "" + +msgid "`OSGeo UK `__" msgstr "" msgid "`Google Summer of Code `__" @@ -7230,6 +7425,12 @@ msgstr "" msgid "Orkney" msgstr "" +msgid "OSGeo" +msgstr "" + +msgid "OSGeo UK" +msgstr "" + msgid "Paragon Corporation" msgstr "" @@ -7255,9 +7456,7 @@ msgstr "" msgid "Boost C++ source libraries at https://www.boost.org." msgstr "" -msgid "" -"The Migration guide from 2.6 can be found at https://github.com/pgRouting/" -"pgrouting/wiki/Migration-Guide." +msgid ":doc:`migration`" msgstr "" msgid "pgr_KSP" @@ -7881,8 +8080,7 @@ msgid "pgr_aStarCost" msgstr "" msgid "" -"``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* " -"algorithm." +"``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm." msgstr "" msgid "``pgr_aStarCost`` (`Combinations`_)" @@ -7892,7 +8090,7 @@ msgid "New **proposed** function" msgstr "" msgid "" -"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path(s) " +"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path " "using the A* algorithm." msgstr "" @@ -8008,9 +8206,6 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" -msgid "Support" -msgstr "" - msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -8608,7 +8803,7 @@ msgid "pgr_bdAstarCost" msgstr "" msgid "" -"``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the " +"``pgr_bdAstarCost`` - Total cost of the shortest path using the " "bidirectional A* algorithm." msgstr "" @@ -8616,8 +8811,8 @@ msgid "``pgr_bdAstarCost`` (`Combinations`_)" msgstr "" msgid "" -"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest " -"path(s) using the bidirectional A* algorithm." +"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path " +"using the bidirectional A* algorithm." msgstr "" msgid "" @@ -8657,8 +8852,8 @@ msgid "``pgr_bdDijkstra``" msgstr "" msgid "" -"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional " -"Dijkstra algorithm." +"``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra " +"algorithm." msgstr "" msgid "pgr_bdDijkstra(`Combinations`_)" @@ -8698,7 +8893,7 @@ msgid "" "pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" msgid "Returns set of |old-generic-result|" @@ -8730,15 +8925,12 @@ msgid "" "**undirected** graph" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "" - msgid "Using a combinations table on an **undirected** graph" msgstr "" msgid "" -"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP" -"%20shortest%20path%20algorithms.pdf" +"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/" +"EPP%20shortest%20path%20algorithms.pdf" msgstr "" msgid "https://en.wikipedia.org/wiki/Bidirectional_search" @@ -8748,7 +8940,7 @@ msgid "``pgr_bdDijkstraCost``" msgstr "" msgid "" -"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using " +"``pgr_bdDijkstraCost`` — Returns the shortest path's cost using " "Bidirectional Dijkstra algorithm." msgstr "" @@ -8810,7 +9002,7 @@ msgstr "" msgid "``pgr_bellmanFord - Experimental``" msgstr "" -msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" msgid "New **experimental** signature:" @@ -8909,6 +9101,96 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "" +msgid "``pgr_betweennessCentrality``" +msgstr "" + +msgid "" +"``pgr_betweennessCentrality`` - Calculates the relative betweeness " +"centrality using Brandes Algorithm" +msgstr "" + +msgid "Version 3.7.0" +msgstr "" + +msgid "New **experimental** function:" +msgstr "" + +msgid "" +"The Brandes Algorithm takes advantage of the sparse graphs for evaluating " +"the betweenness centrality score of all vertices." +msgstr "" + +msgid "" +"Betweenness centrality measures the extent to which a vertex lies on the " +"shortest paths between all other pairs of vertices. Vertices with a high " +"betweenness centrality score may have considerable influence in a network by " +"the virtue of their control over the shortest paths passing between them." +msgstr "" + +msgid "" +"The removal of these vertices will affect the network by disrupting the it, " +"as most of the shortest paths between vertices pass through them." +msgstr "" + +msgid "This implementation work for both directed and undirected graphs." +msgstr "" + +msgid "Running time: :math:`\\Theta(VE)`" +msgstr "" + +msgid "Running space: :math:`\\Theta(VE)`" +msgstr "" + +msgid "Throws when there are no edges in the graph" +msgstr "" + +msgid "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" +msgstr "" + +msgid "Returns set of ``(vid, centrality)``" +msgstr "" + +msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." +msgstr "" + +msgid "Explanation" +msgstr "" + +msgid "The betweenness centrality are between parenthesis." +msgstr "" + +msgid "The leaf vertices have betweenness centrality :math:`0`." +msgstr "" + +msgid "" +"Betweenness centrality of vertex :math:`6` is higher than of vertex :math:" +"`10`." +msgstr "" + +msgid "Removing vertex :math:`6` will create three graph components." +msgstr "" + +msgid "Removing vertex :math:`10` will create two graph components." +msgstr "" + +msgid "``vid``" +msgstr "" + +msgid "``centrality``" +msgstr "" + +msgid "" +"Relative betweenness centrality score of the vertex (will be in range [0,1])" +msgstr "" + +msgid "" +"Boost's `betweenness_centrality `_" +msgstr "" + +msgid "Queries use the :doc:`sampledata` network." +msgstr "" + msgid "``pgr_biconnectedComponents``" msgstr "" @@ -8974,7 +9256,7 @@ msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "" msgid "" -"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a binary " +"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary " "graph." msgstr "" @@ -9113,8 +9395,9 @@ msgid "The odd length cyclic graph can not be bipartite." msgstr "" msgid "" -"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:`" -"\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 vertices." +"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:" +"`\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 " +"vertices." msgstr "" msgid "Edges in blue represent odd length cycle subgraph." @@ -9228,17 +9511,11 @@ msgstr "" msgid "Returns set of |result-bfs|" msgstr "" -msgid "Single vertex" -msgstr "" - msgid "" "From root vertex :math:`6` on a **directed** graph with edges in ascending " "order of ``id``" msgstr "" -msgid "Multiple vertices" -msgstr "" - msgid "" "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with " "**depth** :math:`<= 2` and edges in ascending order of ``id``" @@ -10005,22 +10282,19 @@ msgid "" msgstr "" msgid "" -"`Wikipedia: Cuthill-McKee Ordering `__" +"`Wikipedia: Cuthill-McKee Ordering `__" msgstr "" msgid "pgr_dagShortestPath - Experimental" msgstr "" msgid "" -"``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted directed " +"``pgr_dagShortestPath`` — Returns the shortest path for weighted directed " "acyclic graphs(DAG). In particular, the DAG shortest paths algorithm " "implemented by Boost.Graph." msgstr "" -msgid "New **experimental** function:" -msgstr "" - msgid "pgr_dagShortestPath(Combinations)" msgstr "" @@ -10288,7 +10562,7 @@ msgstr "" msgid "``pgr_dijkstra``" msgstr "" -msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." +msgid "``pgr_dijkstra`` — Shortest path using Dijkstra algorithm." msgstr "" msgid "Version 3.5.0" @@ -10524,7 +10798,7 @@ msgid "``pgr_dijkstraCost``" msgstr "" msgid "" -"``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra " +"``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra " "algorithm." msgstr "" @@ -10532,8 +10806,8 @@ msgid "``pgr_dijkstraCost`` (`Combinations`_)" msgstr "" msgid "" -"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest " -"path(s) using Dijkstra Algorithm." +"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path " +"using Dijkstra Algorithm." msgstr "" msgid "" @@ -10923,7 +11197,7 @@ msgstr "" msgid "" "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that order " -"on an **directed** graph." +"on an directed graph." msgstr "" msgid "Via optional parameters" @@ -10985,9 +11259,6 @@ msgid "" "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "" -msgid "Standarizing output columns to |result-spantree|" -msgstr "" - msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "" @@ -12189,9 +12460,6 @@ msgstr "" msgid "Minimum spanning forest" msgstr "" -msgid "``pgr_kruskalBFS``" -msgstr "" - msgid "" "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "breadth First Search ordering." @@ -12222,9 +12490,6 @@ msgid "" "`depth \\leq 3`" msgstr "" -msgid "``pgr_kruskalDD``" -msgstr "" - msgid "``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm." msgstr "" @@ -12256,9 +12521,6 @@ msgid "" "`distance \\leq 3.5`" msgstr "" -msgid "``pgr_kruskalDFS``" -msgstr "" - msgid "" "``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "Depth First Search ordering." @@ -12345,7 +12607,7 @@ msgid "" "Dominator_(graph_theory)>`__" msgstr "" -msgid "``pgr_lineGraph`` - Experimental" +msgid "pgr_lineGraph - Proposed" msgstr "" msgid "" @@ -12353,15 +12615,35 @@ msgid "" "based graph." msgstr "" -msgid "Given a graph G, its line graph L(G) is a graph such that:" +msgid "" +"Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" msgstr "" -msgid "Each vertex of L(G) represents an edge of G" +msgid "Each vertex of :math:`L(G)` represents an edge of :math:`G`." msgstr "" msgid "" -"Two vertices of L(G) are adjacent if and only if their corresponding edges " -"share a common endpoint in G." +"Two vertices of :math:`L(G)` are adjacent if and only if their corresponding " +"edges share a common endpoint in :math:`G`" +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` columns of the result represent existence " +"of the edge." +msgstr "" + +msgid "When the graph is directed the result is directed." +msgstr "" + +msgid "" +"To get the complete Line Graph use unique identifiers on the double way " +"edges (See `Additional Examples`_)." +msgstr "" + +msgid "When the graph is undirected the result is undirected." +msgstr "" + +msgid "The ``reverse_cost`` is always :math:`-1`." msgstr "" msgid "pgr_lineGraph(`Edges SQL`_, [``directed``])" @@ -12370,7 +12652,7 @@ msgstr "" msgid "Returns set of |result-lineg|" msgstr "" -msgid "For a **directed** graph" +msgid "For an undirected graph with edges :math:'{2,4,5,8}'" msgstr "" msgid "Gives a local identifier for the edge" @@ -12404,7 +12686,132 @@ msgid "" "it’s not part of the graph." msgstr "" -msgid "https://en.wikipedia.org/wiki/Line_graph" +msgid "Given the following directed graph" +msgstr "" + +msgid "" +":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2 " +"\\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " +"\\rightarrow 3\\})`" +msgstr "" + +msgid "Representation as directed with shared edge identifiers" +msgstr "" + +msgid "" +"For the simplicity, the design of the edges table on the database, has the " +"edge's identifiers are represented with 3 digits:" +msgstr "" + +msgid "hundreds" +msgstr "" + +msgid "the source vertex" +msgstr "" + +msgid "tens" +msgstr "" + +msgid "always 0, acts as a separator" +msgstr "" + +msgid "units" +msgstr "" + +msgid "the target vertex" +msgstr "" + +msgid "In this image," +msgstr "" + +msgid "" +"Single or double head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "The numbers in the yellow shadow are the edge identifiers." +msgstr "" + +msgid "" +"Two pair of edges share the same identifier when the ``reverse_cost`` column " +"is used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with one " +"edge row with :math:`id=203`." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with one " +"edge row with :math:`id=304`." +msgstr "" + +msgid "The graph can be created as follows:" +msgstr "" + +msgid "Line Graph of a directed graph represented with shared edges" +msgstr "" + +msgid "The result is a directed graph." +msgstr "" + +msgid "" +"For :math:`seq=4` from :math:`203 \\leftrightarrow 304` represent two edges" +msgstr "" + +msgid "For all the other values of ``seq`` represent one edge." +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` values represent the existence of the edge." +msgstr "" + +msgid "When positive: the edge exists." +msgstr "" + +msgid "When negative: the edge does not exist." +msgstr "" + +msgid "Representation as directed with unique edge identifiers" +msgstr "" + +msgid "Single head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "There are no double head arrows" +msgstr "" + +msgid "" +"Two pair of edges share the same ending nodes and the ``reverse_cost`` " +"column is not used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with two " +"edges :math:`id=203` and :math:`id=302` respectively." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with two " +"edges :math:`id=304` and :math:`id=403` respectively." +msgstr "" + +msgid "Line Graph of a directed graph represented with unique edges" +msgstr "" + +msgid "" +"For :math:`seq=7` from :math:`203 \\leftrightarrow 302` represent two edges." +msgstr "" + +msgid "" +"For :math:`seq=8` from :math:`304 \\leftrightarrow 403` represent two edges." +msgstr "" + +msgid "wikipedia: `Line Graph `__" +msgstr "" + +msgid "" +"mathworld: `Line Graph `__" msgstr "" msgid "``pgr_lineGraphFull`` - Experimental" @@ -12651,6 +13058,9 @@ msgstr "" msgid "Routing from :math:`5` to :math:`1`" msgstr "" +msgid "https://en.wikipedia.org/wiki/Line_graph" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Complete_graph" msgstr "" @@ -12758,9 +13168,6 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "" -msgid ":doc:`migration`" -msgstr "" - msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" msgstr "" @@ -12784,7 +13191,7 @@ msgstr "" msgid "New **Proposed** function" msgstr "" -msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." +msgid "Calculates the maximum flow from the sources to the targets." msgstr "" msgid "" @@ -12986,7 +13393,7 @@ msgstr "" msgid "old_id" msgstr "" -msgid "``bigint`` Identifier of the edge in original table" +msgid "``bigint`` Identifier of the edge in original table" msgstr "" msgid "sub_id" @@ -13081,7 +13488,7 @@ msgstr "" msgid "Edges with 1 dead end: 1,6,24" msgstr "" -msgid "Edges with 2 dead ends 17,18" +msgid "Edges with 2 dead ends: 17,18" msgstr "" msgid "" @@ -13095,7 +13502,7 @@ msgstr "" msgid "Isolated segments" msgstr "" -msgid "two isolated segments: 17 and 18 both they have 2 dead ends" +msgid "two isolated segments: 17 and 18 both they have 2 dead ends" msgstr "" msgid "No Isolated segments" @@ -13406,9 +13813,6 @@ msgid "" "prim_minimum_spanning_tree.html>`__" msgstr "" -msgid "``pgr_primBFS``" -msgstr "" - msgid "" "``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth " "First Search ordering." @@ -13416,7 +13820,7 @@ msgstr "" msgid "" "Visits and extracts the nodes information in Breath First Search ordering of " -"the Minimum Spanning Tree created with Prims's algorithm." +"the Minimum Spanning Tree created using Prims's algorithm." msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -13425,16 +13829,13 @@ msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "``pgr_primDD``" -msgstr "" - msgid "``pgr_primDD`` — Catchament nodes using Prim's algorithm." msgstr "" msgid "" "Using Prim's algorithm, extracts the nodes that have aggregate costs less " -"than or equal to a **distance** from a **root** vertex (or vertices) within " -"the calculated minimum spanning tree." +"than or equal to a distance from a root vertex (or vertices) within the " +"calculated minimum spanning tree." msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vid**, **distance**)" @@ -13443,9 +13844,6 @@ msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" msgstr "" -msgid "``pgr_primDFS``" -msgstr "" - msgid "" "``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth First " "Search ordering." @@ -13765,9 +14163,6 @@ msgstr "" msgid "Rechability of a subgraph" msgstr "" -msgid "``vid``" -msgstr "" - msgid "Identifier of the source of the edges" msgstr "" @@ -13942,11 +14337,6 @@ msgid "" "[**options**])" msgstr "" -msgid "" -"Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that order " -"on an directed graph." -msgstr "" - msgid "" "All this examples are about the route that visits the vertices :math:`\\{5, " "7, 1, 8, 15\\}` in that order on a directed graph." @@ -14193,7 +14583,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, find the shortest path(s)" +"algorithm, find the shortest path" msgstr "" msgid "Characteristics:" @@ -14538,7 +14928,7 @@ msgstr "" msgid "" "``pgr_withPointsCost`` - Calculates the shortest path and returns only the " -"aggregate cost of the shortest path(s) found, for the combination of points " +"aggregate cost of the shortest path found, for the combination of points " "given." msgstr "" @@ -14547,7 +14937,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, return only the aggregate cost of the shortest path(s) found." +"algorithm, return only the aggregate cost of the shortest path found." msgstr "" msgid "" @@ -15066,8 +15456,8 @@ msgid "" msgstr "" msgid "" -"Wikipedia: `Prim's algorithm `__" +"Wikipedia: `Prim's algorithm `__" msgstr "" msgid "Proposed Functions" @@ -15104,6 +15494,10 @@ msgid "" "table information." msgstr "" +msgid "" +":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." +msgstr "" + msgid ":doc:`pgr_withPointsVia`" msgstr "" @@ -15136,16 +15530,128 @@ msgid "" "github.com/pgRouting/pgrouting/commits>`_ on Github." msgstr "" -msgid "pgRouting 3.6.0 Release Notes" +msgid "Mayors" +msgstr "" + +msgid "pgRouting 3" +msgstr "" + +msgid "Minors 3.x" +msgstr "" + +msgid "pgRouting 3.7" +msgstr "" + +msgid "pgRouting 3.6" +msgstr "" + +msgid "pgRouting 3.6.3 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.6.0 `_" +"milestone for 3.6.3 `__" msgstr "" -msgid "Official functions changes" +msgid "Build" +msgstr "" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +msgid "postgis 3.0.0" +msgstr "" + +msgid "Code fixes" +msgstr "" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "" +"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" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "" + +msgid "pgr_stoerWagner" +msgstr "" + +msgid "pgtap tests" +msgstr "" + +msgid "bug fixes" +msgstr "" + +msgid "pgRouting 3.6.2 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.2 `__" +msgstr "" + +msgid "Upgrade fix" +msgstr "" + +msgid "The upgrade was failing for same minor" +msgstr "" + +msgid "Fix warnings from cpplint" +msgstr "" + +msgid "Others" +msgstr "" + +msgid "Adjust NEWS generator" +msgstr "" + +msgid "Name change to `NEWS.md` for better visualization on GitHub" +msgstr "" + +msgid "pgRouting 3.6.1 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.1 `_" +msgstr "" + +msgid "" +"`#2588 `__ pgrouting 3.6.0 " +"fails to build on OSX" +msgstr "" + +msgid "pgRouting 3.6.0 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.0 `_" msgstr "" msgid "" @@ -15236,9 +15742,6 @@ msgid "" "simplification." msgstr "" -msgid "Documentation" -msgstr "" - msgid "" "`#2490 `__ Automatic page " "history links." @@ -15256,13 +15759,16 @@ msgid "" "On new internal function: do not use named parameters and default parameters." msgstr "" +msgid "pgRouting 3.5" +msgstr "" + msgid "pgRouting 3.5.1 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.1 `_" +"milestone for 3.5.1 `_" msgstr "" msgid "Documentation fixes" @@ -15302,9 +15808,6 @@ msgid "" "wildcards on SQL" msgstr "" -msgid "pgtap tests" -msgstr "" - msgid "" "`#2559 `__ pgtap test " "using sampledata" @@ -15316,9 +15819,6 @@ msgstr "" msgid "Fix winnie build" msgstr "" -msgid "Code fixes" -msgstr "" - msgid "Fix clang warnings" msgstr "" @@ -15330,8 +15830,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.0 `_" +"milestone for 3.5.0 `_" msgstr "" msgid "Dijkstra" @@ -15347,13 +15847,16 @@ msgstr "" msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." msgstr "" +msgid "pgRouting 3.4" +msgstr "" + msgid "pgRouting 3.4.2 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.2 `_" +"milestone for 3.4.2 `_" msgstr "" msgid "" @@ -15372,8 +15875,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.1 `_" +"milestone for 3.4.1 `_" msgstr "" msgid "" @@ -15391,8 +15894,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.0 `_" +"milestone for 3.4.0 `_" msgstr "" msgid "" @@ -15469,9 +15972,6 @@ msgstr "" msgid "``pgr_findCloseEdges`` (Many points)" msgstr "" -msgid "New experimental functions" -msgstr "" - msgid "Ordering" msgstr "" @@ -15496,6 +15996,9 @@ msgstr "" msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" msgstr "" +msgid "pgRouting 3.3" +msgstr "" + msgid "pgRouting 3.3.5 Release Notes" msgstr "" @@ -15504,8 +16007,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.4 `_" +"milestone for 3.3.4 `_" msgstr "" msgid "" @@ -15518,8 +16021,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.3 `_" +"milestone for 3.3.3 `_" msgstr "" msgid "" @@ -15532,8 +16035,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.2 `_" +"milestone for 3.3.2 `_" msgstr "" msgid "Revised documentation" @@ -15586,8 +16089,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.1 `_ on Github." +"milestone for 3.3.1 `_ on Github." msgstr "" msgid "" @@ -15605,8 +16108,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.0 `_ on Github." +"milestone for 3.3.0 `_ on Github." msgstr "" msgid "" @@ -15688,13 +16191,16 @@ msgstr "" msgid "pgr_depthFirstSearch(Single vertex)" msgstr "" +msgid "pgRouting 3.2" +msgstr "" + msgid "pgRouting 3.2.2 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.2 `_ on Github." +"milestone for 3.2.2 `_ on Github." msgstr "" msgid "" @@ -15712,8 +16218,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.1 `_ on Github." +"milestone for 3.2.1 `_ on Github." msgstr "" msgid "" @@ -15737,11 +16243,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.0 `_ on Github." -msgstr "" - -msgid "Build" +"milestone for 3.2.0 `_ on Github." msgstr "" msgid "" @@ -15824,13 +16327,16 @@ msgstr "" msgid "pgr_pushRelabel(Combinations)" msgstr "" +msgid "pgRouting 3.1" +msgstr "" + msgid "pgRouting 3.1.4 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.4 `_ on Github." +"milestone for 3.1.4 `_ on Github." msgstr "" msgid "Issues fixes" @@ -15841,8 +16347,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.3 `_ on Github." +"milestone for 3.1.3 `_ on Github." msgstr "" msgid "" @@ -15865,8 +16371,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.2 `_ on Github." +"milestone for 3.1.2 `_ on Github." msgstr "" msgid "" @@ -15899,8 +16405,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.1 `_ on Github." +"milestone for 3.1.1 `_ on Github." msgstr "" msgid "" @@ -15933,8 +16439,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.0 `_ on Github." +"milestone for 3.1.0 `_ on Github." msgstr "" msgid "pgr_dijkstra(combinations)" @@ -15949,13 +16455,16 @@ msgstr "" msgid "Minimal requirement for Sphinx: version 1.8" msgstr "" +msgid "pgRouting 3.0" +msgstr "" + msgid "pgRouting 3.0.6 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.6 `_ on Github." +"milestone for 3.0.6 `_ on Github." msgstr "" msgid "pgRouting 3.0.5 Release Notes" @@ -15963,8 +16472,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.5 `_ on Github." +"milestone for 3.0.5 `_ on Github." msgstr "" msgid "Backport issue fixes" @@ -15975,8 +16484,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.4 `_ on Github." +"milestone for 3.0.4 `_ on Github." msgstr "" msgid "pgRouting 3.0.3 Release Notes" @@ -15987,8 +16496,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.2 `_ on Github." +"milestone for 3.0.2 `_ on Github." msgstr "" msgid "" @@ -16001,8 +16510,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.1 `_ on Github." +"milestone for 3.0.1 `_ on Github." msgstr "" msgid "" @@ -16015,8 +16524,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.0 `_ on Github." +"milestone for 3.0.0 `_ on Github." msgstr "" msgid "Fixed Issues" @@ -16286,9 +16795,6 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" -msgid "pgr_stoerWagner" -msgstr "" - msgid "pgr_dagShortestpath" msgstr "" @@ -16370,13 +16876,22 @@ msgstr "" msgid "pgr_alphaShape old signature" msgstr "" +msgid "pgRouting 2" +msgstr "" + +msgid "Minors 2.x" +msgstr "" + +msgid "pgRouting 2.6" +msgstr "" + msgid "pgRouting 2.6.3 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.3 `_ on Github." +"2.6.3 `_ on Github." msgstr "" msgid "" @@ -16399,8 +16914,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.2 `_ on Github." +"2.6.2 `_ on Github." msgstr "" msgid "" @@ -16423,8 +16938,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.1 `_ on Github." +"2.6.1 `_ on Github." msgstr "" msgid "Fixes server crash on several functions." @@ -16516,8 +17031,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.0 `_ on Github." +"2.6.0 `_ on Github." msgstr "" msgid "pgr_lineGraphFull" @@ -16560,13 +17075,16 @@ msgstr "" msgid "Cleaned the internal code of withPoints" msgstr "" +msgid "pgRouting 2.5" +msgstr "" + msgid "pgRouting 2.5.5 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.5 `_ on Github." +"2.5.5 `_ on Github." msgstr "" msgid "Fixes driving distance when vertex is not part of the graph" @@ -16583,8 +17101,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.4 `_ on Github." +"2.5.4 `_ on Github." msgstr "" msgid "pgRouting 2.5.3 Release Notes" @@ -16592,8 +17110,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.3 `_ on Github." +"2.5.3 `_ on Github." msgstr "" msgid "" @@ -16606,8 +17124,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.2 `_ on Github." +"2.5.2 `_ on Github." msgstr "" msgid "Fix for postgresql 10.1: Removed a compiler condition" @@ -16618,8 +17136,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.1 `_ on Github." +"2.5.1 `_ on Github." msgstr "" msgid "Fixed prerequisite minimum version of: cmake" @@ -16630,8 +17148,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.5.0 `_ on Github." +"2.5.0 `_ on Github." msgstr "" msgid "enhancement:" @@ -16697,13 +17215,16 @@ msgstr "" msgid "pgr_pointToEdgeNode" msgstr "" +msgid "pgRouting 2.4" +msgstr "" + msgid "pgRouting 2.4.2 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.2 `_ on Github." +"2.4.2 `_ on Github." msgstr "" msgid "Improvement" @@ -16724,8 +17245,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.1 `_ on Github." +"2.4.1 `_ on Github." msgstr "" msgid "Fixed compiling error on macOS" @@ -16739,8 +17260,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.4.0 `_ on Github." +"2.4.0 `_ on Github." msgstr "" msgid "pgr_bdDijkstra" @@ -16788,13 +17309,16 @@ msgstr "" msgid "TRSP original code is used with no changes on the compilation warnings" msgstr "" +msgid "pgRouting 2.3" +msgstr "" + msgid "pgRouting 2.3.2 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.2 `_ on Github." +"2.3.2 `_ on Github." msgstr "" msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck." @@ -16814,8 +17338,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.1 `_ on Github." +"2.3.1 `_ on Github." msgstr "" msgid "Leaks on proposed max_flow functions" @@ -16832,8 +17356,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.0 `_ on Github." +"2.3.0 `_ on Github." msgstr "" msgid "pgr_TSP" @@ -16911,13 +17435,16 @@ msgstr "" msgid "pgr_textToPoints" msgstr "" +msgid "pgRouting 2.2" +msgstr "" + msgid "pgRouting 2.2.4 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.4 `_ on Github." +"2.2.4 `_ on Github." msgstr "" msgid "Bogus uses of extern \"C\"" @@ -16934,8 +17461,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.3 `_ on Github." +"2.2.3 `_ on Github." msgstr "" msgid "Fixed compatibility issues with PostgreSQL 9.6." @@ -16946,8 +17473,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.2 `_ on Github." +"2.2.2 `_ on Github." msgstr "" msgid "Fixed regression error on pgr_drivingDistance" @@ -16958,8 +17485,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.1 `_ on Github." +"2.2.1 `_ on Github." msgstr "" msgid "Server crash fix on pgr_alphaShape" @@ -16973,8 +17500,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.0 `_ on Github." +"2.2.0 `_ on Github." msgstr "" msgid "Improvements" @@ -17061,13 +17588,16 @@ msgstr "" msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix" msgstr "" +msgid "pgRouting 2.1" +msgstr "" + msgid "pgRouting 2.1.0 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.1.0 `_ on Github." +"2.1.0 `_ on Github." msgstr "" msgid "pgr_dijkstra(one to many)" @@ -17201,6 +17731,9 @@ msgid "" "one library - The library has the prefix 2-1-0" msgstr "" +msgid "pgRouting 2.0" +msgstr "" + msgid "pgRouting 2.0.1 Release Notes" msgstr "" @@ -17215,14 +17748,14 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.0.0 `_ on Github." +"2.0.0 `_ on Github." msgstr "" msgid "" "With the release of pgRouting 2.0.0 the library has abandoned backwards " -"compatibility to `pgRouting 1.x Release Notes`_ releases. The main Goals for " -"this release are:" +"compatibility to `pgRouting 1.0`_ releases. The main Goals for this release " +"are:" msgstr "" msgid "Major restructuring of pgRouting." @@ -17336,13 +17869,16 @@ msgstr "" msgid "shooting_star is discontinued" msgstr "" -msgid "pgRouting 1.x Release Notes" +msgid "pgRouting 1" +msgstr "" + +msgid "pgRouting 1.0" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for 1.x " -"`_ on Github. The following release notes have been copied " +"`_ on Github. The following release notes have been copied " "from the previous ``RELEASE_NOTES`` file and are kept as a reference." msgstr "" @@ -17717,8 +18253,11 @@ msgid "" msgstr "" msgid "" -"Developer mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-" -"dev" +"Developer mailing list: https://discourse.osgeo.org/c/pgrouting/pgrouting-" +"dev/" +msgstr "" + +msgid "Subscribe: https://discourse.osgeo.org/g/pgrouting-dev" msgstr "" msgid "" @@ -17799,7 +18338,7 @@ msgstr "" msgid "Additional functions to analyze a graph:" msgstr "" -msgid "Transformation - Family of functions (Experimental)" +msgid "Transformation - Family of functions" msgstr "" msgid "" diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po index f7a86f3b21..f271d04f43 100644 --- a/locale/en/LC_MESSAGES/index.po +++ b/locale/en/LC_MESSAGES/index.po @@ -6,7 +6,7 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 3aa052d717..c869f7a385 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -6,16 +6,16 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.6.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-19 19:56+0000\n" +"POT-Creation-Date: 2024-10-10 03:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.13.0\n" +"Generated-By: Babel 2.16.0\n" msgid "BFS - Category" msgstr "" @@ -1448,7 +1448,7 @@ msgstr "" msgid "16.5" msgstr "" -msgid ":math:`10.5 / 60 = 0.175`" +msgid ":math:`10.5 / 60 = 0.175`" msgstr "" msgid "minutes" @@ -2757,11 +2757,6 @@ msgid "" "`__" msgstr "" -msgid "" -"`Wikipedia: Graph Coloring " -"`__" -msgstr "" - msgid "Components - Family of functions" msgstr "" @@ -3380,13 +3375,13 @@ msgstr "" msgid ":doc:`pgr_aStarCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdAstarCostMatrix`" +msgid ":doc:`pgr_dijkstraCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdDijkstraCostMatrix`" +msgid ":doc:`pgr_bdAstarCostMatrix`" msgstr "" -msgid ":doc:`pgr_dijkstraCostMatrix`" +msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr "" msgid "proposed" @@ -3663,13 +3658,13 @@ msgid "the set of edges :math:`E`" msgstr "" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = " -"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ }" -" \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " -"\\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } " -"reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" +"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " +"\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) \\text{ " +"when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq " +"\\varnothing \\\\ \\end{cases}`" msgstr "" msgid "Undirected graph" @@ -3682,17 +3677,17 @@ msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgstr "" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & " -"\\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } " -"cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, " -"source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & " -"\\text{ } \\\\ \\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ " -"when } reverse\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost " -"\\neq \\varnothing \\\\ \\end{cases}`" +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost " +">=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup " +"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i" +" >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ " +"\\end{cases}`" msgstr "" msgid "The problem" @@ -3865,11 +3860,6 @@ msgstr "" msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." msgstr "" -msgid "" -"Column ``pred`` only applies to :doc:`pgr_drivingDistance` and " -":doc:`pgr_withPointsDD`." -msgstr "" - msgid "Experimental Functions" msgstr "" @@ -3894,11 +3884,6 @@ msgstr "" msgid ":doc:`transformation-family`" msgstr "" -msgid "" -":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line " -"Graph." -msgstr "" - msgid "" ":doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line" " Graph out of each vertex in the input graph." @@ -3928,6 +3913,14 @@ msgid "" "of an undirected graph." msgstr "" +msgid ":doc:`metrics-family`" +msgstr "" + +msgid "" +":doc:`pgr_betweennessCentrality` - Calculates relative betweenness " +"centrality using Brandes Algorithm" +msgstr "" + msgid ":doc:`TRSP-family`" msgstr "" @@ -4017,10 +4010,10 @@ msgid "" "returned." msgstr "" -msgid "There is no flow when a **source** is the same as a **target**." +msgid "There is no flow when source has the same vaule as target." msgstr "" -msgid "Any duplicated value in the source(s) or target(s) are ignored." +msgid "Any duplicated values in source or target are ignored." msgstr "" msgid "Calculates the flow/residual capacity for each edge. In the output" @@ -4029,9 +4022,13 @@ msgstr "" msgid "Edges with zero flow are omitted." msgstr "" -msgid "" -"Creates a **super source** and edges to all the source(s), and a **super " -"target** and the edges from all the targets(s)." +msgid "Creates" +msgstr "" + +msgid "a **super source** and edges from it to all the sources," +msgstr "" + +msgid "a **super target** and edges from it to all the targetss." msgstr "" msgid "" @@ -4389,6 +4386,113 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.0 " +"`__" +msgstr "" + +msgid "Support" +msgstr "" + +msgid "" +"`#2656 `__ Stop support" +" of PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + +msgid "New experimental functions" +msgstr "" + +msgid "Metrics" +msgstr "" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "" + +msgid "" +"`#2605 `__ Standarize " +"spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "" + +msgid "``pgr_kruskalDD``" +msgstr "" + +msgid "``pgr_kruskalDFS``" +msgstr "" + +msgid "``pgr_kruskalBFS``" +msgstr "" + +msgid "``pgr_primDD``" +msgstr "" + +msgid "``pgr_primDFS``" +msgstr "" + +msgid "``pgr_primBFS``" +msgstr "" + +msgid "Standarizing output columns to |result-spantree|" +msgstr "" + +msgid "Added ``pred`` result columns." +msgstr "" + +msgid "Experimental promoted to proposed." +msgstr "" + +msgid "" +"`#2635 `__ " +"pgr_LineGraph ignores directed flag and use negative values for " +"identifiers." +msgstr "" + +msgid "``pgr_lineGraph``" +msgstr "" + +msgid "Promoted to **proposed** signature." +msgstr "" + +msgid "Works for directed and undirected graphs." +msgstr "" + +msgid "Code enhancement" +msgstr "" + +msgid "" +"`#2599 `__ Driving " +"distance cleanup" +msgstr "" + +msgid "" +"`#2607 `__ Read " +"postgresql data on C++" +msgstr "" + +msgid "" +"`#2614 `__ Clang tidy " +"does not work" +msgstr "" + +msgid "All releases" +msgstr "" + msgid "Kruskal - Family of functions" msgstr "" @@ -4410,6 +4514,9 @@ msgstr "" msgid "Kruskal's running time: :math:`O(E * log E)`" msgstr "" +msgid "Metrics - Family of functions" +msgstr "" + msgid "Migration guide" msgstr "" @@ -4473,7 +4580,7 @@ msgstr "" msgid "Migration" msgstr "" -msgid "Be aware of the existance of the additional columns." +msgid "Be aware of the existence of the additional columns." msgstr "" msgid "In ``pgr_aStar`` (`One to One`)" @@ -4591,7 +4698,7 @@ msgstr "" msgid "" "Starting from `v3.6.0 " "`__ " -":doc:`pgr_drivingDistance` result columns are being standarized." +":doc:`pgr_drivingDistance` result columns are being standardized." msgstr "" msgid "from" @@ -4624,7 +4731,7 @@ msgstr "" msgid "does not have ``depth`` result column." msgstr "" -msgid "Be aware of the existance and name change of the result columns." +msgid "Be aware of the existence and name change of the result columns." msgstr "" msgid "" @@ -4652,17 +4759,77 @@ msgid "The ``from_v`` result column name changes to ``start_vid``." msgstr "" msgid "" -"If needed filter out and rename colums, for example, to return the " +"If needed filter out and rename columns, for example, to return the " "original columns:" msgstr "" +msgid "Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 " +"`__ " +":doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :doc:`pgr_kruskalDFS` " +"result columns are being standardized." +msgstr "" + +msgid "|result-bfs|" +msgstr "" + +msgid "Single vertex" +msgstr "" + +msgid "Multiple vertices" +msgstr "" + +msgid "Output columns were |result-bfs|" +msgstr "" + +msgid "Single vertex and Multiple vertices" +msgstr "" + +msgid "Do not have ``pred`` result column." +msgstr "" + +msgid "Be aware of the existence of `pred` result columns." +msgstr "" + +msgid "If needed filter out the added columns" +msgstr "" + +msgid "Kruskal single vertex" +msgstr "" + +msgid "" +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the " +"affected functions." +msgstr "" + +msgid "" +"Comparing with `this " +"`__ " +"example." +msgstr "" + +msgid "Now column ``pred`` exists and contains the predecessor of the ``node``." +msgstr "" + +msgid "Kruskal multiple vertices" +msgstr "" + +msgid "" +"Comparing with `this " +"`__" +" example." +msgstr "" + msgid "Migration of ``pgr_KSP``" msgstr "" msgid "" "Starting from `v3.6.0 " "`__ :doc:`pgr_KSP` " -"result columns are being standarized." +"result columns are being standardized." msgstr "" msgid "|ksp-result|" @@ -4762,13 +4929,44 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 " +"`__ :doc:`pgr_primDD`, " +":doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns are being " +"standardized." +msgstr "" + +msgid "Prim single vertex" +msgstr "" + +msgid "" +"Using ``pgr_primDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + +msgid "Prim multiple vertices" +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + msgid "Migration of ``pgr_withPointsDD``" msgstr "" msgid "" "Starting from `v3.6.0 " "`__ " -":doc:`pgr_withPointsDD` result columns are being standarized." +":doc:`pgr_withPointsDD` result columns are being standardized." msgstr "" msgid "|result-generic-no-seq|" @@ -4792,7 +4990,9 @@ msgstr "" msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." msgstr "" -msgid "``driving_side`` parameter was named optional now it is compulsory unamed." +msgid "" +"``driving_side`` parameter was named optional now it is compulsory " +"unnamed." msgstr "" msgid "``pgr_withPointsDD`` (`Multiple vertices`)" @@ -4843,7 +5043,7 @@ msgstr "" msgid "After Migration" msgstr "" -msgid "Be aware of the existance of the additional result Columns." +msgid "Be aware of the existence of the additional result Columns." msgstr "" msgid "New output columns are |result-spantree|" @@ -4906,7 +5106,7 @@ msgstr "" msgid "" "Starting from `v3.6.0 " "`__ " -":doc:`pgr_withPointsKSP` result columns are being standarized." +":doc:`pgr_withPointsKSP` result columns are being standardized." msgstr "" msgid "" @@ -6368,7 +6568,7 @@ msgstr "" msgid "" "There are several kinds of valid inner queries and also the columns " "returned are depending of the function. Which kind of inner query will " -"depend on the function(s) requirements. To simplify variety of types, " +"depend on the function's requirements. To simplify the variety of types, " "**ANY-INTEGER** and **ANY-NUMERICAL** is used." msgstr "" @@ -6796,9 +6996,6 @@ msgid "" "https://github.com/pgRouting/pgrouting/releases/latest" msgstr "" -msgid "wget" -msgstr "" - msgid "To download this release:" msgstr "" @@ -6840,7 +7037,7 @@ msgid "Upgrading the database" msgstr "" msgid "" -"To upgrade pgRouting in the database to version 3.6.0 use the following " +"To upgrade pgRouting in the database to version 3.7.0 use the following " "command:" msgstr "" @@ -7178,13 +7375,13 @@ msgstr "" msgid "This Release Contributors" msgstr "" -msgid "Individuals in this release (in alphabetical order)" +msgid "Individuals in this release v3.7.x (in alphabetical order)" msgstr "" -msgid "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel " -"Kastl, Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, " -"Swapnil Joshi, Virginia Vergara, Yige Huang" +msgid "(Alphabetical order)" +msgstr "" + +msgid "Regina Obe, Vicky Vergara" msgstr "" msgid "" @@ -7201,7 +7398,10 @@ msgid "" "hosting, or direct monetary funding to the pgRouting project:" msgstr "" -msgid "`Georepublic `__" +msgid "`OSGeo `__" +msgstr "" + +msgid "`OSGeo UK `__" msgstr "" msgid "`Google Summer of Code `__" @@ -7256,6 +7456,12 @@ msgstr "" msgid "Orkney" msgstr "" +msgid "OSGeo" +msgstr "" + +msgid "OSGeo UK" +msgstr "" + msgid "Paragon Corporation" msgstr "" @@ -7281,9 +7487,7 @@ msgstr "" msgid "Boost C++ source libraries at https://www.boost.org." msgstr "" -msgid "" -"The Migration guide from 2.6 can be found at " -"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide." +msgid ":doc:`migration`" msgstr "" msgid "pgr_KSP" @@ -7905,7 +8109,7 @@ msgid "pgr_aStarCost" msgstr "" msgid "" -"``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* " +"``pgr_aStarCost`` - Total cost of the shortest path using the A* " "algorithm." msgstr "" @@ -7916,8 +8120,8 @@ msgid "New **proposed** function" msgstr "" msgid "" -"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest " -"path(s) using the A* algorithm." +"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path" +" using the A* algorithm." msgstr "" msgid "" @@ -8031,9 +8235,6 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" -msgid "Support" -msgstr "" - msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -8632,7 +8833,7 @@ msgid "pgr_bdAstarCost" msgstr "" msgid "" -"``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the " +"``pgr_bdAstarCost`` - Total cost of the shortest path using the " "bidirectional A* algorithm." msgstr "" @@ -8641,7 +8842,7 @@ msgstr "" msgid "" "The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest " -"path(s) using the bidirectional A* algorithm." +"path using the bidirectional A* algorithm." msgstr "" msgid "pgr_bdAstarCost(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -8677,7 +8878,7 @@ msgid "``pgr_bdDijkstra``" msgstr "" msgid "" -"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional " +"``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional " "Dijkstra algorithm." msgstr "" @@ -8714,7 +8915,7 @@ msgstr "" msgid "pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" msgid "Returns set of |old-generic-result|" @@ -8747,9 +8948,6 @@ msgid "" "**undirected** graph" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "" - msgid "Using a combinations table on an **undirected** graph" msgstr "" @@ -8764,7 +8962,7 @@ msgid "``pgr_bdDijkstraCost``" msgstr "" msgid "" -"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using " +"``pgr_bdDijkstraCost`` — Returns the shortest path's cost using " "Bidirectional Dijkstra algorithm." msgstr "" @@ -8829,7 +9027,7 @@ msgstr "" msgid "``pgr_bellmanFord - Experimental``" msgstr "" -msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" msgid "New **experimental** signature:" @@ -8926,6 +9124,98 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "" +msgid "``pgr_betweennessCentrality``" +msgstr "" + +msgid "" +"``pgr_betweennessCentrality`` - Calculates the relative betweeness " +"centrality using Brandes Algorithm" +msgstr "" + +msgid "Version 3.7.0" +msgstr "" + +msgid "New **experimental** function:" +msgstr "" + +msgid "" +"The Brandes Algorithm takes advantage of the sparse graphs for evaluating" +" the betweenness centrality score of all vertices." +msgstr "" + +msgid "" +"Betweenness centrality measures the extent to which a vertex lies on the " +"shortest paths between all other pairs of vertices. Vertices with a high " +"betweenness centrality score may have considerable influence in a network" +" by the virtue of their control over the shortest paths passing between " +"them." +msgstr "" + +msgid "" +"The removal of these vertices will affect the network by disrupting the " +"it, as most of the shortest paths between vertices pass through them." +msgstr "" + +msgid "This implementation work for both directed and undirected graphs." +msgstr "" + +msgid "Running time: :math:`\\Theta(VE)`" +msgstr "" + +msgid "Running space: :math:`\\Theta(VE)`" +msgstr "" + +msgid "Throws when there are no edges in the graph" +msgstr "" + +msgid "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" +msgstr "" + +msgid "Returns set of ``(vid, centrality)``" +msgstr "" + +msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." +msgstr "" + +msgid "Explanation" +msgstr "" + +msgid "The betweenness centrality are between parenthesis." +msgstr "" + +msgid "The leaf vertices have betweenness centrality :math:`0`." +msgstr "" + +msgid "" +"Betweenness centrality of vertex :math:`6` is higher than of vertex " +":math:`10`." +msgstr "" + +msgid "Removing vertex :math:`6` will create three graph components." +msgstr "" + +msgid "Removing vertex :math:`10` will create two graph components." +msgstr "" + +msgid "``vid``" +msgstr "" + +msgid "``centrality``" +msgstr "" + +msgid "" +"Relative betweenness centrality score of the vertex (will be in range " +"[0,1])" +msgstr "" + +msgid "" +"Boost's `betweenness_centrality " +"`_" +msgstr "" + +msgid "Queries use the :doc:`sampledata` network." +msgstr "" + msgid "``pgr_biconnectedComponents``" msgstr "" @@ -8991,8 +9281,8 @@ msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "" msgid "" -"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a " -"binary graph." +"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary " +"graph." msgstr "" msgid "" @@ -9245,17 +9535,11 @@ msgstr "" msgid "Returns set of |result-bfs|" msgstr "" -msgid "Single vertex" -msgstr "" - msgid "" "From root vertex :math:`6` on a **directed** graph with edges in " "ascending order of ``id``" msgstr "" -msgid "Multiple vertices" -msgstr "" - msgid "" "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with " "**depth** :math:`<= 2` and edges in ascending order of ``id``" @@ -10037,12 +10321,9 @@ msgid "pgr_dagShortestPath - Experimental" msgstr "" msgid "" -"``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted " -"directed acyclic graphs(DAG). In particular, the DAG shortest paths " -"algorithm implemented by Boost.Graph." -msgstr "" - -msgid "New **experimental** function:" +"``pgr_dagShortestPath`` — Returns the shortest path for weighted directed" +" acyclic graphs(DAG). In particular, the DAG shortest paths algorithm " +"implemented by Boost.Graph." msgstr "" msgid "pgr_dagShortestPath(Combinations)" @@ -10313,7 +10594,7 @@ msgstr "" msgid "``pgr_dijkstra``" msgstr "" -msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." +msgid "``pgr_dijkstra`` — Shortest path using Dijkstra algorithm." msgstr "" msgid "Version 3.5.0" @@ -10551,7 +10832,7 @@ msgid "``pgr_dijkstraCost``" msgstr "" msgid "" -"``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra " +"``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra " "algorithm." msgstr "" @@ -10560,7 +10841,7 @@ msgstr "" msgid "" "The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest " -"path(s) using Dijkstra Algorithm." +"path using Dijkstra Algorithm." msgstr "" msgid "pgr_dijkstraCost(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -10953,7 +11234,7 @@ msgstr "" msgid "" "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that " -"order on an **directed** graph." +"order on an directed graph." msgstr "" msgid "Via optional parameters" @@ -11014,9 +11295,6 @@ msgstr "" msgid "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "" -msgid "Standarizing output columns to |result-spantree|" -msgstr "" - msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "" @@ -12217,9 +12495,6 @@ msgstr "" msgid "Minimum spanning forest" msgstr "" -msgid "``pgr_kruskalBFS``" -msgstr "" - msgid "" "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "breadth First Search ordering." @@ -12250,9 +12525,6 @@ msgid "" ":math:`depth \\leq 3`" msgstr "" -msgid "``pgr_kruskalDD``" -msgstr "" - msgid "``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm." msgstr "" @@ -12284,9 +12556,6 @@ msgid "" ":math:`distance \\leq 3.5`" msgstr "" -msgid "``pgr_kruskalDFS``" -msgstr "" - msgid "" "``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "Depth First Search ordering." @@ -12372,7 +12641,7 @@ msgid "" "`__" msgstr "" -msgid "``pgr_lineGraph`` - Experimental" +msgid "pgr_lineGraph - Proposed" msgstr "" msgid "" @@ -12380,15 +12649,34 @@ msgid "" "edge-based graph." msgstr "" -msgid "Given a graph G, its line graph L(G) is a graph such that:" +msgid "Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" msgstr "" -msgid "Each vertex of L(G) represents an edge of G" +msgid "Each vertex of :math:`L(G)` represents an edge of :math:`G`." msgstr "" msgid "" -"Two vertices of L(G) are adjacent if and only if their corresponding " -"edges share a common endpoint in G." +"Two vertices of :math:`L(G)` are adjacent if and only if their " +"corresponding edges share a common endpoint in :math:`G`" +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` columns of the result represent " +"existence of the edge." +msgstr "" + +msgid "When the graph is directed the result is directed." +msgstr "" + +msgid "" +"To get the complete Line Graph use unique identifiers on the double way " +"edges (See `Additional Examples`_)." +msgstr "" + +msgid "When the graph is undirected the result is undirected." +msgstr "" + +msgid "The ``reverse_cost`` is always :math:`-1`." msgstr "" msgid "pgr_lineGraph(`Edges SQL`_, [``directed``])" @@ -12397,7 +12685,7 @@ msgstr "" msgid "Returns set of |result-lineg|" msgstr "" -msgid "For a **directed** graph" +msgid "For an undirected graph with edges :math:'{2,4,5,8}'" msgstr "" msgid "Gives a local identifier for the edge" @@ -12431,7 +12719,134 @@ msgid "" "it’s not part of the graph." msgstr "" -msgid "https://en.wikipedia.org/wiki/Line_graph" +msgid "Given the following directed graph" +msgstr "" + +msgid "" +":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2" +" \\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " +"\\rightarrow 3\\})`" +msgstr "" + +msgid "Representation as directed with shared edge identifiers" +msgstr "" + +msgid "" +"For the simplicity, the design of the edges table on the database, has " +"the edge's identifiers are represented with 3 digits:" +msgstr "" + +msgid "hundreds" +msgstr "" + +msgid "the source vertex" +msgstr "" + +msgid "tens" +msgstr "" + +msgid "always 0, acts as a separator" +msgstr "" + +msgid "units" +msgstr "" + +msgid "the target vertex" +msgstr "" + +msgid "In this image," +msgstr "" + +msgid "Single or double head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "The numbers in the yellow shadow are the edge identifiers." +msgstr "" + +msgid "" +"Two pair of edges share the same identifier when the ``reverse_cost`` " +"column is used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with " +"one edge row with :math:`id=203`." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with " +"one edge row with :math:`id=304`." +msgstr "" + +msgid "The graph can be created as follows:" +msgstr "" + +msgid "Line Graph of a directed graph represented with shared edges" +msgstr "" + +msgid "The result is a directed graph." +msgstr "" + +msgid "" +"For :math:`seq=4` from :math:`203 \\leftrightarrow 304` represent two " +"edges" +msgstr "" + +msgid "For all the other values of ``seq`` represent one edge." +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` values represent the existence of the " +"edge." +msgstr "" + +msgid "When positive: the edge exists." +msgstr "" + +msgid "When negative: the edge does not exist." +msgstr "" + +msgid "Representation as directed with unique edge identifiers" +msgstr "" + +msgid "Single head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "There are no double head arrows" +msgstr "" + +msgid "" +"Two pair of edges share the same ending nodes and the ``reverse_cost`` " +"column is not used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with " +"two edges :math:`id=203` and :math:`id=302` respectively." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with " +"two edges :math:`id=304` and :math:`id=403` respectively." +msgstr "" + +msgid "Line Graph of a directed graph represented with unique edges" +msgstr "" + +msgid "" +"For :math:`seq=7` from :math:`203 \\leftrightarrow 302` represent two " +"edges." +msgstr "" + +msgid "" +"For :math:`seq=8` from :math:`304 \\leftrightarrow 403` represent two " +"edges." +msgstr "" + +msgid "wikipedia: `Line Graph `__" +msgstr "" + +msgid "mathworld: `Line Graph `__" msgstr "" msgid "``pgr_lineGraphFull`` - Experimental" @@ -12680,6 +13095,9 @@ msgstr "" msgid "Routing from :math:`5` to :math:`1`" msgstr "" +msgid "https://en.wikipedia.org/wiki/Line_graph" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Complete_graph" msgstr "" @@ -12785,9 +13203,6 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "" -msgid ":doc:`migration`" -msgstr "" - msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" msgstr "" @@ -12812,7 +13227,7 @@ msgstr "" msgid "New **Proposed** function" msgstr "" -msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." +msgid "Calculates the maximum flow from the sources to the targets." msgstr "" msgid "" @@ -13013,7 +13428,7 @@ msgstr "" msgid "old_id" msgstr "" -msgid "``bigint`` Identifier of the edge in original table" +msgid "``bigint`` Identifier of the edge in original table" msgstr "" msgid "sub_id" @@ -13108,7 +13523,7 @@ msgstr "" msgid "Edges with 1 dead end: 1,6,24" msgstr "" -msgid "Edges with 2 dead ends 17,18" +msgid "Edges with 2 dead ends: 17,18" msgstr "" msgid "" @@ -13122,7 +13537,7 @@ msgstr "" msgid "Isolated segments" msgstr "" -msgid "two isolated segments: 17 and 18 both they have 2 dead ends" +msgid "two isolated segments: 17 and 18 both they have 2 dead ends" msgstr "" msgid "No Isolated segments" @@ -13432,9 +13847,6 @@ msgid "" "`__" msgstr "" -msgid "``pgr_primBFS``" -msgstr "" - msgid "" "``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth " "First Search ordering." @@ -13442,7 +13854,7 @@ msgstr "" msgid "" "Visits and extracts the nodes information in Breath First Search ordering" -" of the Minimum Spanning Tree created with Prims's algorithm." +" of the Minimum Spanning Tree created using Prims's algorithm." msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -13451,16 +13863,13 @@ msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "``pgr_primDD``" -msgstr "" - msgid "``pgr_primDD`` — Catchament nodes using Prim's algorithm." msgstr "" msgid "" "Using Prim's algorithm, extracts the nodes that have aggregate costs less" -" than or equal to a **distance** from a **root** vertex (or vertices) " -"within the calculated minimum spanning tree." +" than or equal to a distance from a root vertex (or vertices) within the " +"calculated minimum spanning tree." msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vid**, **distance**)" @@ -13469,9 +13878,6 @@ msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" msgstr "" -msgid "``pgr_primDFS``" -msgstr "" - msgid "" "``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth " "First Search ordering." @@ -13798,9 +14204,6 @@ msgstr "" msgid "Rechability of a subgraph" msgstr "" -msgid "``vid``" -msgstr "" - msgid "Identifier of the source of the edges" msgstr "" @@ -13981,11 +14384,6 @@ msgid "" "[**options**])" msgstr "" -msgid "" -"Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that " -"order on an directed graph." -msgstr "" - msgid "" "All this examples are about the route that visits the vertices " ":math:`\\{5, 7, 1, 8, 15\\}` in that order on a directed graph." @@ -14235,7 +14633,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, find the shortest path(s)" +"algorithm, find the shortest path" msgstr "" msgid "Characteristics:" @@ -14579,7 +14977,7 @@ msgstr "" msgid "" "``pgr_withPointsCost`` - Calculates the shortest path and returns only " -"the aggregate cost of the shortest path(s) found, for the combination of " +"the aggregate cost of the shortest path found, for the combination of " "points given." msgstr "" @@ -14588,7 +14986,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, return only the aggregate cost of the shortest path(s) found." +"algorithm, return only the aggregate cost of the shortest path found." msgstr "" msgid "" @@ -15147,6 +15545,11 @@ msgid "" "edge table information." msgstr "" +msgid "" +":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line " +"Graph." +msgstr "" + msgid ":doc:`pgr_withPointsVia`" msgstr "" @@ -15179,6 +15582,124 @@ msgid "" "`_ on Github." msgstr "" +msgid "Mayors" +msgstr "" + +msgid "pgRouting 3" +msgstr "" + +msgid "Minors 3.x" +msgstr "" + +msgid "pgRouting 3.7" +msgstr "" + +msgid "pgRouting 3.6" +msgstr "" + +msgid "pgRouting 3.6.3 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.6.3 " +"`__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +msgid "postgis 3.0.0" +msgstr "" + +msgid "Code fixes" +msgstr "" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "" +"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" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "" + +msgid "pgr_stoerWagner" +msgstr "" + +msgid "pgtap tests" +msgstr "" + +msgid "bug fixes" +msgstr "" + +msgid "pgRouting 3.6.2 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.6.2 " +"`__" +msgstr "" + +msgid "Upgrade fix" +msgstr "" + +msgid "The upgrade was failing for same minor" +msgstr "" + +msgid "Fix warnings from cpplint" +msgstr "" + +msgid "Others" +msgstr "" + +msgid "Adjust NEWS generator" +msgstr "" + +msgid "Name change to `NEWS.md` for better visualization on GitHub" +msgstr "" + +msgid "pgRouting 3.6.1 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.6.1 " +"`_" +msgstr "" + +msgid "" +"`#2588 `__ pgrouting " +"3.6.0 fails to build on OSX" +msgstr "" + msgid "pgRouting 3.6.0 Release Notes" msgstr "" @@ -15189,9 +15710,6 @@ msgid "" "`_" msgstr "" -msgid "Official functions changes" -msgstr "" - msgid "" "`#2516 `__ Standarize " "output pgr_aStar" @@ -15281,9 +15799,6 @@ msgid "" " simplification." msgstr "" -msgid "Documentation" -msgstr "" - msgid "" "`#2490 `__ Automatic " "page history links." @@ -15302,6 +15817,9 @@ msgid "" "parameters." msgstr "" +msgid "pgRouting 3.5" +msgstr "" + msgid "pgRouting 3.5.1 Release Notes" msgstr "" @@ -15349,9 +15867,6 @@ msgid "" "wildcards on SQL" msgstr "" -msgid "pgtap tests" -msgstr "" - msgid "" "`#2559 `__ pgtap test" " using sampledata" @@ -15363,9 +15878,6 @@ msgstr "" msgid "Fix winnie build" msgstr "" -msgid "Code fixes" -msgstr "" - msgid "Fix clang warnings" msgstr "" @@ -15396,6 +15908,9 @@ msgstr "" msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." msgstr "" +msgid "pgRouting 3.4" +msgstr "" + msgid "pgRouting 3.4.2 Release Notes" msgstr "" @@ -15521,9 +16036,6 @@ msgstr "" msgid "``pgr_findCloseEdges`` (Many points)" msgstr "" -msgid "New experimental functions" -msgstr "" - msgid "Ordering" msgstr "" @@ -15548,6 +16060,9 @@ msgstr "" msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" msgstr "" +msgid "pgRouting 3.3" +msgstr "" + msgid "pgRouting 3.3.5 Release Notes" msgstr "" @@ -15747,6 +16262,9 @@ msgstr "" msgid "pgr_depthFirstSearch(Single vertex)" msgstr "" +msgid "pgRouting 3.2" +msgstr "" + msgid "pgRouting 3.2.2 Release Notes" msgstr "" @@ -15806,9 +16324,6 @@ msgid "" " on Github." msgstr "" -msgid "Build" -msgstr "" - msgid "" "`#1850 `__: Change " "Boost min version to 1.56" @@ -15889,6 +16404,9 @@ msgstr "" msgid "pgr_pushRelabel(Combinations)" msgstr "" +msgid "pgRouting 3.1" +msgstr "" + msgid "pgRouting 3.1.4 Release Notes" msgstr "" @@ -16025,6 +16543,9 @@ msgstr "" msgid "Minimal requirement for Sphinx: version 1.8" msgstr "" +msgid "pgRouting 3.0" +msgstr "" + msgid "pgRouting 3.0.6 Release Notes" msgstr "" @@ -16374,9 +16895,6 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" -msgid "pgr_stoerWagner" -msgstr "" - msgid "pgr_dagShortestpath" msgstr "" @@ -16458,6 +16976,15 @@ msgstr "" msgid "pgr_alphaShape old signature" msgstr "" +msgid "pgRouting 2" +msgstr "" + +msgid "Minors 2.x" +msgstr "" + +msgid "pgRouting 2.6" +msgstr "" + msgid "pgRouting 2.6.3 Release Notes" msgstr "" @@ -16656,6 +17183,9 @@ msgstr "" msgid "Cleaned the internal code of withPoints" msgstr "" +msgid "pgRouting 2.5" +msgstr "" + msgid "pgRouting 2.5.5 Release Notes" msgstr "" @@ -16804,6 +17334,9 @@ msgstr "" msgid "pgr_pointToEdgeNode" msgstr "" +msgid "pgRouting 2.4" +msgstr "" + msgid "pgRouting 2.4.2 Release Notes" msgstr "" @@ -16899,6 +17432,9 @@ msgstr "" msgid "TRSP original code is used with no changes on the compilation warnings" msgstr "" +msgid "pgRouting 2.3" +msgstr "" + msgid "pgRouting 2.3.2 Release Notes" msgstr "" @@ -17025,6 +17561,9 @@ msgstr "" msgid "pgr_textToPoints" msgstr "" +msgid "pgRouting 2.2" +msgstr "" + msgid "pgRouting 2.2.4 Release Notes" msgstr "" @@ -17180,6 +17719,9 @@ msgstr "" msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix" msgstr "" +msgid "pgRouting 2.1" +msgstr "" + msgid "pgRouting 2.1.0 Release Notes" msgstr "" @@ -17319,6 +17861,9 @@ msgid "" " one library - The library has the prefix 2-1-0" msgstr "" +msgid "pgRouting 2.0" +msgstr "" + msgid "pgRouting 2.0.1 Release Notes" msgstr "" @@ -17340,8 +17885,8 @@ msgstr "" msgid "" "With the release of pgRouting 2.0.0 the library has abandoned backwards " -"compatibility to `pgRouting 1.x Release Notes`_ releases. The main Goals " -"for this release are:" +"compatibility to `pgRouting 1.0`_ releases. The main Goals for this " +"release are:" msgstr "" msgid "Major restructuring of pgRouting." @@ -17455,7 +18000,10 @@ msgstr "" msgid "shooting_star is discontinued" msgstr "" -msgid "pgRouting 1.x Release Notes" +msgid "pgRouting 1" +msgstr "" + +msgid "pgRouting 1.0" msgstr "" msgid "" @@ -17843,8 +18391,11 @@ msgid "" msgstr "" msgid "" -"Developer mailing list: https://lists.osgeo.org/mailman/listinfo" -"/pgrouting-dev" +"Developer mailing list: https://discourse.osgeo.org/c/pgrouting" +"/pgrouting-dev/" +msgstr "" + +msgid "Subscribe: https://discourse.osgeo.org/g/pgrouting-dev" msgstr "" msgid "" @@ -17926,7 +18477,7 @@ msgstr "" msgid "Additional functions to analyze a graph:" msgstr "" -msgid "Transformation - Family of functions (Experimental)" +msgid "Transformation - Family of functions" msgstr "" msgid "" diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po index 14f7e1b372..94f36a7898 100644 --- a/locale/es/LC_MESSAGES/index.po +++ b/locale/es/LC_MESSAGES/index.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-09-29 16:37+0000\n" diff --git a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po index 5c12056be1..733f8e5ca6 100644 --- a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po @@ -4,14 +4,15 @@ # FIRST AUTHOR , 2022. # Pedro Jose Rios Vergara , 2022. # Celia Virginia Vergara Castillo , 2022. -# Celia Virginia Vergara Castillo , 2023. +# Celia Virginia Vergara Castillo , 2023, 2024. +# DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-13 18:09+0000\n" -"PO-Revision-Date: 2023-10-21 03:23+0000\n" -"Last-Translator: Celia Virginia Vergara Castillo \n" +"POT-Creation-Date: 2024-10-10 03:40+0000\n" +"PO-Revision-Date: 2024-10-10 19:43+0000\n" +"Last-Translator: DeepL \n" "Language-Team: Spanish \n" "Language: es\n" @@ -19,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0\n" +"X-Generator: Weblate 5.4.3\n" "Generated-By: Babel 2.10.3\n" msgid "BFS - Category" @@ -204,11 +205,13 @@ msgstr "FLOTANTES" msgid "``SMALLINT``, ``INTEGER``, ``BIGINT``, ``REAL``, ``FLOAT``" msgstr "``SMALLINT``, ``INTEGER``, ``BIGINT``, ``REAL``, ``FLOAT``" -msgid "Result Columns" -msgstr "Columnas de Resultados" +msgid "Result columns" +msgstr "Columnas de resultados" -msgid "Returns SET OF ``(seq, depth, start_vid, node, edge, cost, agg_cost)``" -msgstr "Regresa ``SET OF (seq, depth, start_vid, node, edge, cost, agg_cost)``" +msgid "Returns set of ``(seq, depth, start_vid, node, edge, cost, agg_cost)``" +msgstr "" +"Devuelve el conjunto de ``(seq, depth, start_vid, node, edge, cost, " +"agg_cost)``" msgid "``seq``" msgstr "``seq``" @@ -276,11 +279,11 @@ msgstr "" "kruskal_min_spanning_tree.html>`__" msgid "" -"`Wikipedia: Prim's algorithm `__" +"`Wikipedia: Prim's algorithm `__" msgstr "" -"`Wikipedia: algoritmo de Prim `__" +"`Wikipedia: algoritmo de Prim `__" msgid "" "`Wikipedia: Kruskal's algorithm `__" -msgid "" -"`Wikipedia: Graph Coloring `__" -msgstr "" -"`Wikipedia: Coloración de grafos `__" - msgid "Components - Family of functions" msgstr "Componentes - Familia de funciones" @@ -3339,10 +3329,10 @@ msgid "The vertex :math:`w` is removed from the graph" msgstr "El vértice :math:`w` se elimina del grafo" msgid "" -"The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are removed " +"The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are removed " "from the graph." msgstr "" -"Los aristas :math:`v \\rightarrow w` y :math:`w \\rightarrow z` fueron " +"Los aristas :math:`v \\rightarrow w` y :math:`w \\rightarrow z` fueron " "eliminados del grafo." msgid "" @@ -3358,10 +3348,10 @@ msgid "The vertex :math:`v` is removed from the graph" msgstr "El vértice :math:`v` se elimina del grafo" msgid "" -"The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are removed " +"The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are removed " "from the graph." msgstr "" -"Los aristas :math:`u \\rightarrow v` y :math:`v \\rightarrow z` son " +"Los aristas :math:`u \\rightarrow v` y :math:`v \\rightarrow z` son " "removidos del grafo." msgid "" @@ -3736,8 +3726,9 @@ msgstr "" "simétricos." msgid "" -"The **aggregate cost** of :math:`(u, v)` is the same as for :math:`(v, u)`." -msgstr "El **costo agregado** de `(u, v)` es el mismo que para `(v, u)`." +"The **aggregate cost** of :math:`(u, v)` is the same as for :math:`(v, u)`." +msgstr "" +"El **costo agregado** de :math:`(u, v)` es el mismo que para :math:`(v, u)`." msgid "" "Any duplicated value in the start or end vertex identifiers are ignored." @@ -3760,15 +3751,15 @@ msgstr "Cost Matrix - Categoría" msgid ":doc:`pgr_aStarCostMatrix`" msgstr ":doc:`pgr_aStarCostMatrix`" +msgid ":doc:`pgr_dijkstraCostMatrix`" +msgstr ":doc:`pgr_dijkstraCostMatrix`" + msgid ":doc:`pgr_bdAstarCostMatrix`" msgstr ":doc:`pgr_bdAstarCostMatrix`" msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr ":doc:`pgr_bdDijkstraCostMatrix`" -msgid ":doc:`pgr_dijkstraCostMatrix`" -msgstr ":doc:`pgr_dijkstraCostMatrix`" - msgid "proposed" msgstr "propuesta" @@ -3791,8 +3782,8 @@ msgid "Can be used as input to :doc:`pgr_TSP`." msgstr "Se puede utilizar como entrada para :doc:`pgr_TSP`." msgid "" -"Use directly when the resulting matrix is symmetric and there is no :math:`" -"\\infty` value." +"Use directly when the resulting matrix is symmetric and there is no :math:" +"`\\infty` value." msgstr "" "Usar directamente cuando la matriz resultante es simétrica y no hay valor :" "math:`\\infty`." @@ -3822,8 +3813,8 @@ msgstr "" msgid "It is also the users responsibility to fix an :math:`\\infty` value." msgstr "" -"También es responsabilidad de los usuarios para fijar un valor :math:`" -"\\infty`." +"También es responsabilidad de los usuarios para fijar un valor :math:" +"`\\infty`." msgid "" "Returns the sum of the costs of the shortest path for pair combination of " @@ -4039,7 +4030,7 @@ msgid "Combinations SQL" msgstr "SQL Combinaciones" msgid "Identifier of the departure vertex." -msgstr "Identificador del vértice de salida." +msgstr "Identificador del vértice de partida." msgid "Identifier of the arrival vertex." msgstr "Identificador del vértice de llegada." @@ -4054,8 +4045,8 @@ msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)" msgstr "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)" msgid "" -"where :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse" -"\\_cost_i)\\}`" +"where :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}" +"`" msgstr "" "Donde :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}" "`" @@ -4078,8 +4069,8 @@ msgstr "Grafo dirigido" msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:" msgstr "El gráfico dirigido ponderado, :math:`G_d(V,E)`, se define por:" -msgid "the set of vertices :math:`V`" -msgstr "Conjunto de vértices :math:`V`" +msgid "the set of vertices :math:`V`" +msgstr "el conjunto de vértices :math:`V`" msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup {end_{vid}}`" msgstr ":math:`V = source \\cup target \\cup {start_{vid}} \\cup {end_{vid}}`" @@ -4088,11 +4079,11 @@ msgid "the set of edges :math:`E`" msgstr "El conjunto de aristas :math:`E`" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = " -"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " +"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " "\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost " "\\neq \\varnothing \\\\ \\end{cases}`" msgstr "" @@ -4114,25 +4105,24 @@ msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgstr ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & " -"\\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } " -"cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, " -"reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ " -"\\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse" -"\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\" -"\\ \\end{cases}`" +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " +"target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " +"\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" msgstr "" ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " -"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } reverse" -"\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ \\text{ } " -"\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ " -"\\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " "target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " "\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" @@ -4160,11 +4150,11 @@ msgid "Then:" msgstr "Entonces:" msgid "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgstr "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgid "where:" msgstr "donde:" @@ -4213,7 +4203,7 @@ msgstr "" msgid "" "In other words: The algorithm returns a the shortest path between :math:" "`start_{vid}` and :math:`end_{vid}`, if it exists, in terms of a sequence of " -"nodes and of edges," +"nodes and of edges," msgstr "" "En otras palabras: El algoritmo devuelve la ruta más corta entre :math:" "`start_{vid}` y :math:`end_{vid}`, si es que existe, en términos de una " @@ -4313,6 +4303,26 @@ msgstr "**distancia**" msgid "Upper limit for the inclusion of a node in the result." msgstr "Límite superior para la inclusión del nodo en el resultado." +msgid "Returns set of |result-spantree|" +msgstr "Regresa el conjunto de |result-spantree|" + +msgid ":math:`depth-1` is the depth of ``pred``" +msgstr ":math:`depth-1` es la profundidad de ``pred``" + +msgid "``pred``" +msgstr "``pred``" + +msgid "Predecessor of ``node``." +msgstr "Presdecesor de ``node``." + +msgid "When ``node`` = ``start_vid`` then has the value ``node``." +msgstr "Cuando ``node`` = ``start_vid`` entonces tiene el valor ``node``." + +msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." +msgstr "" +"Identificador del ``edge`` utilizado para llegar desde ``pred`` hasta " +"``node``." + msgid "Experimental Functions" msgstr "Funciones Experimentales" @@ -4338,12 +4348,6 @@ msgstr ":doc:`coloring-family`" msgid ":doc:`transformation-family`" msgstr ":doc:`transformation-family`" -msgid "" -":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." -msgstr "" -":doc:`pgr_lineGraph` - Algoritmo de transformación para generar un grafo de " -"líneas." - msgid "" ":doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line " "Graph out of each vertex in the input graph." @@ -4379,6 +4383,16 @@ msgstr "" ":doc:`pgr_cuthillMckeeOrdering` - Ordenamiento Cuthill-McKee de grafo sin no " "dirigido." +msgid ":doc:`metrics-family`" +msgstr ":doc:`metrics-family`" + +msgid "" +":doc:`pgr_betweennessCentrality` - Calculates relative betweenness " +"centrality using Brandes Algorithm" +msgstr "" +":doc:`pgr_betweennessCentrality` - Calcula la centralidad intermedia " +"relativa mediante el algoritmo de Brandes" + msgid ":doc:`TRSP-family`" msgstr ":doc:`TRSP-family`" @@ -4388,7 +4402,7 @@ msgstr "Categorías" msgid ":doc:`VRP-category`" msgstr ":doc:`VRP-category`" -msgid "Not classified" +msgid "Unclassified" msgstr "No clasificado" msgid ":doc:`pgr_bellmanFord`" @@ -4482,14 +4496,11 @@ msgstr "" "Cuando el flujo máximo es 0 entonces no hay flujo, se devolverá: **EMPTY " "SET**." -msgid "There is no flow when a **source** is the same as a **target**." -msgstr "" -"No hay ningún flujo cuando el **orígen** es el mismo que el **destino**." +msgid "There is no flow when source has the same vaule as target." +msgstr "No hay flujo cuando el origen tiene el mismo valor que el destino." -msgid "Any duplicated value in the source(s) or target(s) are ignored." -msgstr "" -"Cualquier valor duplicado en el/los orígen(es) o en el/los destino(s) será " -"ignorado." +msgid "Any duplicated values in source or target are ignored." +msgstr "Los valores duplicados en origen o destino se ignoran." msgid "Calculates the flow/residual capacity for each edge. In the output" msgstr "Calcula la capacidad de flujo/residuo para cada arista. En la salida" @@ -4497,12 +4508,14 @@ msgstr "Calcula la capacidad de flujo/residuo para cada arista. En la salida" msgid "Edges with zero flow are omitted." msgstr "Se omiten las aristas con flujo cero." -msgid "" -"Creates a **super source** and edges to all the source(s), and a **super " -"target** and the edges from all the targets(s)." -msgstr "" -"Crea una **súper origen**, con aristas para todos las fuentes(es), y un " -"**súper destino** con aristas para todos los destino(s)." +msgid "Creates" +msgstr "Crea" + +msgid "a **super source** and edges from it to all the sources," +msgstr "una **super fuente** y aristas desde ella a todas las fuentes," + +msgid "a **super target** and edges from it to all the targetss." +msgstr "un **super objetivo** y aristas desde él a todos los objetivos." msgid "" "The maximum flow through the graph is guaranteed to be the value returned " @@ -4552,13 +4565,13 @@ msgstr ":doc:`pgr_maxFlowMinCost`" msgid ":doc:`pgr_maxFlowMinCost_Cost`" msgstr ":doc:`pgr_maxFlowMinCost_Cost`" -msgid "Capacity of the edge (``source``, ``target``)" +msgid "Capacity of the edge (``source``, ``target``)" msgstr "Capacidad de la arista (``source``, ``target``)" msgid "Capacity of the edge (``target``, ``source``)" msgstr "Capacidad de la arista (``target``, ``source``)" -msgid "Weight of the edge (``source``, ``target``) if it exist" +msgid "Weight of the edge (``source``, ``target``) if it exist" msgstr "Peso de la arista (``source``, ``target``) si existe" msgid "Weight of the edge (``target``, ``source``) if it exist" @@ -4672,11 +4685,11 @@ msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" msgstr "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" msgid "" -"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse" -"\\_capacity_i)\\}`" +"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " +"reverse\\_capacity_i)\\}`" msgstr "" -"donde: :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse" -"\\_capacity_i)\\}`" +"donde: :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " +"reverse\\_capacity_i)\\}`" msgid "Graph definition" msgstr "Definición de grafo" @@ -4684,6 +4697,9 @@ msgstr "Definición de grafo" msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:" msgstr "El grafo ponderado dirigido, :math:`G(V,E)`, se define como:" +msgid "the set of vertices :math:`V`" +msgstr "Conjunto de vértices :math:`V`" + msgid "" ":math:`source\\_vertex \\cup sink\\_vertex \\bigcup source_i \\bigcup " "target_i`" @@ -4696,16 +4712,16 @@ msgid "" "\\text{ when } capacity > 0 \\} & \\quad \\text{ if } reverse\\_capacity = " "\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, " "capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse" -"\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " +"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } " +"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " "\\varnothing \\\\ \\end{cases}`" msgstr "" ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) " "\\text{ when } capacity > 0 \\} & \\quad \\text{ if } reverse\\_capacity = " "\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, " "capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse" -"\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " +"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } " +"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " "\\varnothing \\\\ \\end{cases}`" msgid "Maximum flow problem" @@ -4845,9 +4861,9 @@ msgstr "" "el usuario debe tener permisos especiales otorgados por un administrador " "para usarlos." -msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." +msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." msgstr "" -":doc:`pgr_createTopology` - para crear una topología basada en la geometría." +":doc:`pgr_createTopology` - crear una topología basada en la geometría." msgid "" ":doc:`pgr_createVerticesTable` - reconstruct the vertices table based on the " @@ -4857,7 +4873,7 @@ msgstr "" "la información de origen y destino." msgid "" -":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge " +":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge " "table." msgstr "" ":doc:`pgr_analyzeGraph` - para analizar los bordes y vértices de la tabla de " @@ -4867,8 +4883,9 @@ msgid ":doc:`pgr_analyzeOneWay` - to analyze directionality of the edges." msgstr "" ":doc:`pgr_analyzeOneWay` - para analizar la direccionalidad de las aristas." -msgid ":doc:`pgr_nodeNetwork` -to create nodes to a not noded edge table." -msgstr ":doc:`pgr_nodeNetwork` - para crear nodos en una tabla de aristas." +msgid ":doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table." +msgstr "" +":doc:`pgr_nodeNetwork` - para crear nodos a una tabla de aristas sin nodos." msgid ":doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP)" msgstr ":doc:`pgr_trsp` - Camino más corto con restricción de giros (TRSP)" @@ -4909,6 +4926,126 @@ msgstr ":doc:`experimental`" msgid ":doc:`release_notes`" msgstr ":doc:`release_notes`" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "Notas de la versión de pgRouting 3.7.0" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.7.0 `__" +msgstr "" +"Para ver todos los problemas y solicitudes de extracción cerrados para ésta " +"versión, consulte la `meta cerrada 3.7.0 `_" + +msgid "Support" +msgstr "Soporte" + +msgid "" +"`#2656 `__ Stop support of " +"PostgreSQL12 on pgrouting v3.7" +msgstr "" +"`#2656 `__ PostgreSQL 12 " +"no se apya en pgrouting v3.7" + +msgid "Stopping support of PostgreSQL 12" +msgstr "PostgreSQL 12 ya no es soportado" + +msgid "CI does not test for PostgreSQL 12" +msgstr "CI no hace pruebas con PostgreSQL 12" + +msgid "New experimental functions" +msgstr "Nuevas funciones experimentales" + +msgid "Metrics" +msgstr "Métricas" + +msgid "pgr_betweennessCentrality" +msgstr "pgr_betweennessCentrality" + +msgid "Official functions changes" +msgstr "Cambios en las funciones oficiales" + +msgid "" +"`#2605 `__ Standarize " +"spanning tree functions output" +msgstr "" +"`#2605 `__ Estandarización " +"de las salida de las funciones de árbol de expansión" + +msgid "Functions:" +msgstr "Funciones:" + +msgid "``pgr_kruskalDD``" +msgstr "``pgr_kruskalDD``" + +msgid "``pgr_kruskalDFS``" +msgstr "``pgr_kruskalDFS``" + +msgid "``pgr_kruskalBFS``" +msgstr "``pgr_kruskalBFS``" + +msgid "``pgr_primDD``" +msgstr "``pgr_primDD``" + +msgid "``pgr_primDFS``" +msgstr "``pgr_primDFS``" + +msgid "``pgr_primBFS``" +msgstr "``pgr_primBFS``" + +msgid "Standarizing output columns to |result-spantree|" +msgstr "Estandarización de columnas de resultados a |result-spantree|" + +msgid "Added ``pred`` result columns." +msgstr "Agregado columna de resultados ``pred``." + +msgid "Experimental promoted to proposed." +msgstr "Experimental promovido a propuesto." + +msgid "" +"`#2635 `__ pgr_LineGraph " +"ignores directed flag and use negative values for identifiers." +msgstr "" +"`#2635 `__ pgr_LineGraph " +"ignora la bandera directed y usa valores negatives para identificadores." + +msgid "``pgr_lineGraph``" +msgstr "``pgr_lineGraph``" + +msgid "Promoted to **proposed** signature." +msgstr "Promovido a firma **propuesta**." + +msgid "Works for directed and undirected graphs." +msgstr "Funciona para grafos dirigidos y no dirigidos." + +msgid "Code enhancement" +msgstr "Mejora del código" + +msgid "" +"`#2599 `__ Driving " +"distance cleanup" +msgstr "" +"`#2599 `__ Limpieza de la " +"distancia de conducción" + +msgid "" +"`#2607 `__ Read postgresql " +"data on C++" +msgstr "" +"`#2607 `__ Leer datos " +"postgresql en C++" + +msgid "" +"`#2614 `__ Clang tidy does " +"not work" +msgstr "" +"`#2614 `__ Clang tidy no " +"funciona" + +msgid "All releases" +msgstr "Todas las versiones" + msgid "Kruskal - Family of functions" msgstr "Kruskal - Familia de funciones" @@ -4933,6 +5070,9 @@ msgstr "Se minimiza el peso total de todos los bordes del árbol o bosque." msgid "Kruskal's running time: :math:`O(E * log E)`" msgstr "Tiempo de ejecución de Kruskal: :math:`O(E * log E)`" +msgid "Metrics - Family of functions" +msgstr "Métricas - Familia de funciones" + msgid "Migration guide" msgstr "Guía de migración" @@ -5003,7 +5143,7 @@ msgstr "``pgr_aStar`` (`Muchos a Uno`) no tiene ``end_vid``." msgid "Migration" msgstr "Migración" -msgid "Be aware of the existance of the additional columns." +msgid "Be aware of the existence of the additional columns." msgstr "Tener en cuenta la existencia de las columnas adicionales." msgid "In ``pgr_aStar`` (`One to One`)" @@ -5128,9 +5268,9 @@ msgstr "Migración de ``pgr_drivingDistance``" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_drivingDistance` result columns are being standarized." +"doc:`pgr_drivingDistance` result columns are being standardized." msgstr "" -"A partir de `v3.6.0 `__, " +"A partir de `v3.6.0 `__, " "las columnas resultantes de :doc:`pgr_drivingDistance` son estandarizadas." msgid "from" @@ -5142,9 +5282,8 @@ msgstr "|result-dij-dd|" msgid "to" msgstr "a" -#, fuzzy -msgid "|result-bfs|" -msgstr "Resultados" +msgid "|result-spantree|" +msgstr "|result-spantree|" msgid "``pgr_drivingdistance`` (Single vertex)" msgstr "``pgr_drivingDistance`` (Vértice único)" @@ -5164,7 +5303,7 @@ msgstr "Tiene la columa de resultados ``from_v`` en vez de ``start_vid``." msgid "does not have ``depth`` result column." msgstr "no tiene la columna ``depth`` en los resultados." -msgid "Be aware of the existance and name change of the result columns." +msgid "Be aware of the existence and name change of the result columns." msgstr "" "Tener en cuenta la existencia y el cambio de nombre de las columnas de " "resultados." @@ -5179,6 +5318,9 @@ msgstr "" msgid "``depth`` contains the depth of the ``node``." msgstr "``depth`` contiene la profundidad del ``node``." +msgid "``pred`` contains the predecessor of the ``node``." +msgstr "``pred`` contiene el predecesor del ``nodo``." + msgid "" "If needed filter out the added columns, for example, to return the original " "columns" @@ -5198,21 +5340,91 @@ msgstr "" "El nombre de la columna de resultados ``from_v`` cambia a ``start_vid``." msgid "" -"If needed filter out and rename colums, for example, to return the original " +"If needed filter out and rename columns, for example, to return the original " "columns:" msgstr "" "Si es necesario, filtrar y cambiar el nombre de las columnas, por ejemplo, " "para devolver las columnas originales:" +msgid "" +"Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" +msgstr "" +"Migración de ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :doc:`pgr_kruskalDFS` result " +"columns are being standardized." +msgstr "" +"A partir de `v3.6.0 `__, " +"Las columnas resultantes de :doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :" +"doc:`pgr_kruskalDFS` son estandarizadas." + +msgid "|result-bfs|" +msgstr "|result-bfs|" + +msgid "Single vertex" +msgstr "Vértice único" + +msgid "Multiple vertices" +msgstr "Múltiples vértices" + +msgid "Output columns were |result-bfs|" +msgstr "Las columnas de salida fueron |result-bfs|" + +msgid "Single vertex and Multiple vertices" +msgstr "Vértice único y vértices múltiples" + +msgid "Do not have ``pred`` result column." +msgstr "No tiene columna de resultados ``pred``." + +msgid "Be aware of the existence of `pred` result columns." +msgstr "Tenga en cuenta la existencia de columnas de resultados `pred`." + +msgid "If needed filter out the added columns" +msgstr "Si es necesario, filtrar las columnas añadidas" + +msgid "Kruskal single vertex" +msgstr "Kruskal vértice único" + +msgid "" +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" +"Usar ``pgr_KruskalDD`` como ejemplo. La migración es similar a todas las " +"funciones afectadas." + +msgid "" +"Comparing with `this `__ example." +msgstr "" +"Comparación con `este ejemplo `__." + +msgid "" +"Now column ``pred`` exists and contains the predecessor of the ``node``." +msgstr "" +"Ahora la columna ``pred`` existe y contiene el predecesor del ``node``." + +msgid "Kruskal multiple vertices" +msgstr "Kruskal vértices múltiples" + +msgid "" +"Comparing with `this `__ example." +msgstr "" +"Comparación con `este ejemplo `__." + msgid "Migration of ``pgr_KSP``" msgstr "Migración de ``pgr_KSP``" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_KSP` result columns are being standarized." +"doc:`pgr_KSP` result columns are being standardized." msgstr "" -"A partir de `v3.6.0 `__ " -"las columnas resultantes de :doc:`pgr_KSP` son estandarizadas." +"A partir de `v3.6.0 `__ " +"En :doc:`pgr_KSP` las columnas de resultados están siendo estandarizadas." msgid "|ksp-result|" msgstr "|ksp-result|" @@ -5326,15 +5538,55 @@ msgstr "No use la bandera ``directed``." msgid "In the query returns only ``edge`` column." msgstr "En la consulta solo devuelve la columna ``edge``." +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgstr "Migración de ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns " +"are being standardized." +msgstr "" +"A partir de `v3.7.0 `__ se " +"estandarizan las columnas de resultados :doc:`pgr_primDD`, :doc:" +"`pgr_primBFS` y :doc:`pgr_primDFS`." + +msgid "Prim single vertex" +msgstr "Prim vértice único" + +msgid "" +"Using ``pgr_primDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" +"Usando ``pgr_primDD`` como ejemplo. La migración es similar para todas las " +"funciones afectadas." + +msgid "" +"Comparing with `this `__ example." +msgstr "" +"Comparación con `este ejemplo `__." + +msgid "Prim multiple vertices" +msgstr "Prim vértices múltiples" + +msgid "" +"Comparing with `this `__ example." +msgstr "" +"Comparación con `este ejemplo `__." + msgid "Migration of ``pgr_withPointsDD``" msgstr "Migración de ``pgr_withPointsDD``" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsDD` result columns are being standarized." +"doc:`pgr_withPointsDD` result columns are being standardized." msgstr "" "A partir de `v3.6.0 `__ " -"las columnas resultantes de :doc:`pgr_withPointsDD` son estandarizadas." +"En :doc:`pgr_withPointsDD` las columnas de resultados están siendo " +"estandarizadas." msgid "|result-generic-no-seq|" msgstr "|result-generic-no-seq|" @@ -5357,8 +5609,11 @@ msgstr "``pgr_withPointsDD`` (Múltiples vértices)" msgid "Output columns were |result-1-1-no-seq|" msgstr "Las columnas de resultados eran |result-1-1-no-seq|" +msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." +msgstr "No tiene columnas de resultados ``start_vid``, ``pred`` y ``depth``." + msgid "" -"``driving_side`` parameter was named optional now it is compulsory unamed." +"``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "" "El parámetro ``driving_side`` era opcional ahora es obligatorio sin nombre." @@ -5368,9 +5623,8 @@ msgstr "``pgr_withPointsDD`` (`Vértices múltiples`)" msgid "Output columns were |result-m-1-no-seq|" msgstr "Las columnas de salida eran |result-m-1-no-seq|" -#, fuzzy -msgid "Does not have ``depth`` result column." -msgstr "No tiene un valor de facto." +msgid "Does not have ``depth`` and ``pred`` result columns." +msgstr "No tiene columnas de resultados ``depth`` y ``pred``." msgid "Driving side was optional" msgstr "El lado de manejo era opcional" @@ -5382,7 +5636,7 @@ msgid "directed" msgstr "dirigido" msgid "true" -msgstr "``true``" +msgstr "verdadero" msgid "driving_side" msgstr "driving_side" @@ -5405,20 +5659,18 @@ msgstr "En un grafo dirigido ``b`` podía usarse como **lado de manejo**" msgid "On undirected graph ``r`` could be used as **driving side**" msgstr "En un grafo no dirigido ``r`` podía usarse como **lado de manejo**" -#, fuzzy -msgid "Also ``l`` could be used as **driving side**" -msgstr "``l`` para el manejo del lado izquierdo" +msgid "Also ``l`` could be used as **driving side**" +msgstr "También `` l`` podía usarse como \"lado de manejo\"" msgid "After Migration" msgstr "Después de la migración" -msgid "Be aware of the existance of the additional return columns." +msgid "Be aware of the existence of the additional result Columns." msgstr "" -"Tener en cuenta la existencia de las columnas de adicionales de resultados." - -#, fuzzy -msgid "New output columns are |result-bfs|" -msgstr "REGRESA CONJUNTO DE |old-generic-result|" +"Tener en cuenta la existencia de las columnas adicionales de resultados." + +msgid "New output columns are |result-spantree|" +msgstr "Las nuevas columnas de salida son |result-spantree|" msgid "" "**driving side** parameter is unnamed compulsory, and valid values differ " @@ -5489,10 +5741,11 @@ msgstr "Migración de ``pgr_withPointsKSP``" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsKSP` result columns are being standarized." +"doc:`pgr_withPointsKSP` result columns are being standardized." msgstr "" -"A partir de `v3.6.0 `__ " -"las columnas resultantes de :doc:`pgr_withPointsKSP` son estandarizadas." +"A partir de `v3.6.0 `__ " +"en :doc:`pgr_withPointsKSP` las columnas de resultados están siendo " +"estandarizadas." msgid "" "And ``driving side`` parameter changed from named optional to unnamed " @@ -5830,7 +6083,7 @@ msgid "Migrating ``pgr_trsp`` (Edges) using ``pgr_withPoints``" msgstr "Migrando ``pgr_trsp`` (Aristas) usando ``pgr_withPoints``" msgid "Use :doc:`pgr_withPoints` instead." -msgstr "Utiliza en su lugar :doc:`pgr_withPoints`." +msgstr "Utilizar en su lugar :doc:`pgr_withPoints`." msgid "Do not show details, as the deprecated function does not show details." msgstr "No enseña detalles, pues las funciones obsoletas no enseñan detalles." @@ -6108,10 +6361,10 @@ msgstr "" "`source_{id} \\leftrightarrow target_{id}`" msgid "" -"Edge :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) is not part of the " +"Edge :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) is not part of the " "graph." msgstr "" -"Arista :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) no es parte del " +"Arista :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) no es parte del " "grafo." msgid "Graph with ``cost`` and ``reverse_cost``" @@ -6129,13 +6382,13 @@ msgstr "El conjunto de aristas :math:`E`:" msgid "" ":math:`E = \\begin{split} \\begin{align} & {\\{(source_{id}, target_{id}, " "cost_{id}) \\text{ when } cost_{id} >=0 \\}} \\\\ & \\cup \\\\ & " -"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } reverse" -"\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" +"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } " +"reverse\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" msgstr "" ":math:`E = \\begin{split} \\begin{align} & {\\{(source_{id}, target_{id}, " "cost_{id}) \\text{ when } cost_{id} >=0 \\}} \\\\ & \\cup \\\\ & " -"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } reverse" -"\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" +"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } " +"reverse\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" msgid "" "Edges :math:`(source \\rightarrow target)` where ``cost`` is non negative " @@ -6151,8 +6404,8 @@ msgstr "" "Aristas :math:`(target \\rightarrow source)` donde ``reverse_cost`` es no " "negativo son parte del grafo." -msgid "The set of vertices :math:`V`:" -msgstr "El conjunto de aristas :math:`V`:" +msgid "The set of vertices :math:`V`:" +msgstr "El conjunto de vértices :math:`V`:" msgid "In a directed graph both edges have directionality" msgstr "En un grafo dirigido ambas aristas tiene direccionalidad" @@ -6174,10 +6427,10 @@ msgstr "" msgid "Edges not part of the graph:" msgstr "Aristas no son parte del grafo:" -msgid ":math:`2` (:math:`1 \\rightarrow 3`)" +msgid ":math:`2` (:math:`1 \\rightarrow 3`)" msgstr ":math:`2` (:math:`1 \\rightarrow 3`)" -msgid ":math:`3` (:math:`3 \\rightarrow 2`)" +msgid ":math:`3` (:math:`3 \\rightarrow 2`)" msgstr ":math:`3` (:math:`3 \\rightarrow 2`)" msgid "In a directed graph both edges do not have directionality" @@ -6206,18 +6459,18 @@ msgstr ":math:`source_i \\leftrightarrow target_i`" msgid ":math:`target_i \\leftrightarrow source_i`" msgstr ":math:`target_i \\leftrightarrow source_i`" -msgid ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" -msgstr ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" +msgid ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" +msgstr ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" -msgid ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" -msgstr ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" +msgid ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" +msgstr ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" msgid "Graphs without geometries" msgstr "Grafos sin geometrías" msgid "" "Personal relationships, genealogy, file dependency problems can be solved " -"using pgRouting. Those problems, normally, do not come with geometries " +"using pgRouting. Those problems, normally, do not come with geometries " "associated with the graph." msgstr "" "Relaciones personales, genealogía, problemas de dependencia de archivos " @@ -6348,8 +6601,10 @@ msgstr "Creando manualmente la base de datos." msgid "`Graphs without geometries`_" msgstr "`Grafos sin geometrías`_" -msgid ":doc:`sampledata`: a small graph used on the documentation examples" -msgstr ":doc:`sampledata`: un grafo chico usado para ejemplos de documentación" +msgid ":doc:`sampledata`: a small graph used in the documentation examples" +msgstr "" +":doc:`sampledata`: un pequeño grafo utilizado en los ejemplos de la " +"documentación" msgid "" "Using `osm2pgrouting (`Inner queries`_, **parameters**, [ ``Optional parameters``)" msgstr "" +"pgr_(`Consultas internas`_, **parámetros**, [ ``Parámetros " +"opcionales``)" msgid "" "`Inner queries`_: Are compulsory parameters that are ``TEXT`` strings " "containing SQL queries." msgstr "" +"`Consultas internas`_: Son parámetros obligatorios que son ``TEXT`` que " +"contienen consultas SQL." msgid "" "**parameters**: Additional compulsory parameters needed by the function." msgstr "" +"**Parámetros**: Parámetros obligatorios adicionales que necesita la función." msgid "" "``Optional parameters``: Are non compulsory **named** parameters that have a " "default value when omitted." msgstr "" +"``Parámetros opcionales``: Son parámetros **nombrados** no obligatorios que " +"tienen un valor por defecto cuando se omiten." msgid "" "The compulsory parameters are positional parameters, the optional parameters " "are named parameters." msgstr "" +"Los parámetros obligatorios son parámetros de posición, los parámetros " +"opcionales son parámetros nombrados." msgid "For example, for this :doc:`pgr_dijkstra` signature:" -msgstr "" +msgstr "Por ejemplo, para esta firma :doc:`pgr_dijkstra`:" msgid "" -"pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid** [, ``directed``])" +"pgr_dijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgstr "" -"pgr_dijkstra(`SQL de aristas`_, **salida**, **destino**, [``directed``])" +"pgr_dijkstra(`SQL de aristas`_, **salidas**, **destinos**, [``directed``])" msgid "`Edges SQL`_:" msgstr "`SQL de aristas`_:" msgid "Is the first parameter." -msgstr "" +msgstr "Es el primer parámetro." msgid "It is compulsory." -msgstr "" +msgstr "Es obligatorio." msgid "It is an inner query." -msgstr "" +msgstr "Es una consulta interna." msgid "" "It has no name, so **Edges SQL** gives an idea of what kind of inner query " "needs to be used" msgstr "" +"No tiene nombre, por lo que **SQL de aristas** da una idea del tipo de " +"consulta interna que hay que utilizar" msgid "**start vid**:" msgstr "**vid inical**:" @@ -7043,34 +7333,41 @@ msgid "" "It has no name, so **start vid** gives an idea of what the second " "parameter's value should contain." msgstr "" +"No tiene nombre, por lo que **salida** da una idea de lo que debe contener " +"el valor del segundo parámetro." msgid "Is the third parameter." -msgstr "" +msgstr "Es el tercer parámetro." msgid "" "It has no name, so **end vid** gives an idea of what the third parameter's " "value should contain" msgstr "" +"No tiene nombre, por lo que **destino** da una idea de lo que debe contener " +"el valor del tercer parámetro" msgid "Is the fourth parameter." -msgstr "" +msgstr "Es el cuarto parámetro." msgid "It is optional." -msgstr "" +msgstr "Es opcional." msgid "It has a name." -msgstr "" +msgstr "Tiene un nombre." msgid "" "The full description of the parameters are found on the `Parameters`_ " "section of each function." msgstr "" +"La descripción completa de los parámetros se encuentra en la sección " +"`Parámetros`_ de cada función." msgid "Function's overloads" -msgstr "" +msgstr "Sobrecargas de funciones" msgid "A function might have different overloads. The most common are called:" msgstr "" +"Una función puede tener diferentes sobrecargas. Las más comunes se llaman:" msgid "`One to One`_" msgstr "`Uno a Uno`_" @@ -7091,15 +7388,17 @@ msgid "Depending on the overload the parameters types change." msgstr "Dependiendo de la sobrecarga, los tipos de los parámetros cambian." msgid "**One**: **ANY-INTEGER**" -msgstr "" +msgstr "**Uno**: **CUALQUIER-ENTERO**" msgid "**Many**: ``ARRAY`` [**ANY-INTEGER**]" -msgstr "" +msgstr "**Muchos**: ``ARRAY`` [**CUALQUIER-ENTERO**]" msgid "" "Depending of the function the overloads may vary. But the concept of " "parameter type change remains the same." msgstr "" +"Dependiendo de la función, las sobrecargas pueden variar. Pero el concepto " +"de cambio de tipo de parámetro sigue siendo el mismo." msgid "One to One" msgstr "Uno a Uno" @@ -7149,13 +7448,13 @@ msgstr "Necesita una `SQL de combinaciones`_" msgid "" "There are several kinds of valid inner queries and also the columns returned " "are depending of the function. Which kind of inner query will depend on the " -"function(s) requirements. To simplify variety of types, **ANY-INTEGER** and " -"**ANY-NUMERICAL** is used." +"function's requirements. To simplify the variety of types, **ANY-INTEGER** " +"and **ANY-NUMERICAL** is used." msgstr "" -"Hay varios tipos de consultas internas válidas y también las columnas " +"Existen varios tipos de consultas internas válidas y también las columnas " "devueltas dependen de la función. El tipo de consulta interna dependerá de " -"los requisitos de las funcion(es). Para simplificar la variedad de tipos, se " -"utiliza **ENTEROS** y **FLOTANTES**." +"los requisitos de la función. Para simplificar la variedad de tipos, se " +"utiliza **ANY-INTEGER** y **ANY-NUMERICAL**." msgid "Edges SQL for" msgstr "SQL de aristas para" @@ -7164,13 +7463,13 @@ msgid ":doc:`withPoints-family`" msgstr ":doc:`withPoints-family`" msgid "Some uncategorised functions" -msgstr "" +msgstr "Algunas funciones no categorizadas" msgid "General without ``id``" -msgstr "" +msgstr "General sin ``id``" msgid "General with (X,Y)" -msgstr "" +msgstr "General con (X,Y)" msgid "" "When negative: edge (``source``, ``target``) does not exist, therefore it's " @@ -7210,13 +7509,13 @@ msgid "Flow" msgstr "Flujo" msgid "Edges SQL for :doc:`flow-family`" -msgstr "" +msgstr "SQL de aristas para :doc:`flow-family`" msgid "Edges SQL for the following functions of :doc:`flow-family`" -msgstr "" +msgstr "SQL de aristas para las siguientes funciones de :doc:`flow-family`" -msgid "Used on combination signatures" -msgstr "" +msgid "Used in combination signatures" +msgstr "Utilizado en combinación firmas" msgid "Points SQL for" msgstr "SQL de puntos para" @@ -7225,17 +7524,24 @@ msgid "" "The main parameter of the majority of the pgRouting functions is a query " "that selects the edges of the graph." msgstr "" +"El parámetro principal de la mayoría de las funciones pgRouting es una " +"consulta que selecciona las aristas del grafo." msgid "" "Depending on the family or category of a function it will have additional " "parameters, some of them are compulsory and some are optional." msgstr "" +"Dependiendo de la familia o categoría de una función tendrá parámetros " +"adicionales, algunos de ellos son obligatorios y otros opcionales." msgid "" "The compulsory parameters are nameless and must be given in the required " "order. The optional parameters are named parameters and will have a default " "value." msgstr "" +"Los parámetros obligatorios no tienen nombre y deben indicarse en el orden " +"requerido. Los parámetros opcionales son parámetros con nombre y tendrán un " +"valor por defecto." msgid "Parameters for the Via functions" msgstr "Párametros para las funciones Via" @@ -7271,7 +7577,7 @@ msgstr "``U_turn_on_edge``" msgid "" "When ``true`` departing from a visited vertex will not try to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " +"the edge used to reach it. In other words, U turn using the edge with same " "identifier is allowed." msgstr "" "Cuando ``true`` saliendo de un vértice visitado no intentará evitar el uso " @@ -7280,7 +7586,7 @@ msgstr "" msgid "" "When ``false`` when a departing from a visited vertex tries to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " +"the edge used to reach it. In other words, U turn using the edge with same " "identifier is used when no other path is found." msgstr "" "Cuando ``false`` al salir de un vértice visitado intenta evitar el uso de la " @@ -7301,11 +7607,11 @@ msgid "" "There are several kinds of columns returned are depending of the function." msgstr "Hay varios tipos de columnas devueltas que dependen de la función." -msgid "Return columns for a path" -msgstr "Columnas devueltas para una trayectoria" +msgid "Result columns for a path" +msgstr "Columnas de resultados para una ruta" -msgid "Used on functions that return one path solution" -msgstr "" +msgid "Used in functions that return one path solution" +msgstr "Se utiliza en funciones que devuelven una solución de ruta" msgid "" "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, " @@ -7354,8 +7660,8 @@ msgstr "" "Costo para atravesar desde ``node`` usando ``edge`` hasta el siguiente nodo " "en la secuencia de la ruta." -msgid "Used on functions the following:" -msgstr "" +msgid "Used in functions the following:" +msgstr "Se utiliza en las funciones siguientes:" msgid ":doc:`pgr_withPoints`" msgstr ":doc:`pgr_withPoints`" @@ -7385,7 +7691,7 @@ msgstr "Cunado positivo, es el identificador del vértice inicial." msgid "When negative is the identifier of the starting point." msgstr "Cuando negativo, es el identificador del punto inicial." -msgid "Returned on `Many to One`_ and `Many to Many`_" +msgid "Returned on `Many to One`_ and `Many to Many`_" msgstr "Regresado en `Muchos a Uno`_ y `Muchos a Muchos`_" msgid "``end_pid``" @@ -7440,13 +7746,13 @@ msgid "Identifier of the ending vertex of the current path." msgstr "Identificador del vértice final de la ruta actual." msgid "Multiple paths" -msgstr "" +msgstr "Varias rutas" msgid "Selective for multiple paths." -msgstr "" +msgstr "Selectivo para múltiples rutas." msgid "The columns depend on the function call." -msgstr "" +msgstr "Las columnas dependen de la llamada a la función." msgid "" "Set of ``(seq, path_id, path_seq [, start_vid] [, end_vid], node, edge, " @@ -7467,10 +7773,10 @@ msgstr "" "Tiene valor **1** para el primero de la ruta de ``start_vid`` a ``end_vid``." msgid "Non selective for multiple paths" -msgstr "" +msgstr "No selectivo para rutas múltiples" msgid "Regardless of the call, al the columns are returned." -msgstr "" +msgstr "Independientemente de la llamada, se devuelven todas las columnas." msgid "" "Returns set of ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, " @@ -7479,11 +7785,11 @@ msgstr "" "Devuelve el conjunto de ``(seq, path_id, path_seq, start_vid, end_vid, node, " "edge, cost, agg_cost)``" -msgid "Return columns for cost functions" -msgstr "Columnas devueltas para funciones de costo" +msgid "Result columns for cost functions" +msgstr "Columnas de resultados de las funciones de costes" msgid "Used in the following" -msgstr "" +msgstr "Se utiliza en" msgid "" "When start_vid or end_vid columns have negative values, the identifier is " @@ -7492,17 +7798,17 @@ msgstr "" "Cuando las columnas del vértice inicial o del destino continen valores " "negativos, el identificador es para un Punto." -msgid "Return columns for flow functions" -msgstr "Columnas devueltas para funciones de flujo" +msgid "Result columns for flow functions" +msgstr "Columnas de resultados para funciones de flujo" msgid "Edges SQL for the following" -msgstr "" +msgstr "SQL de aristas para lo siguiente" -msgid "Return columns for spanning tree functions" -msgstr "" +msgid "Result columns for spanning tree functions" +msgstr "Columnas de resultados para funciones de árbol de expansión" -msgid "Returns SET OF ``(edge, cost)``" -msgstr "Devuelve CONJUNTO DE ``(edge, cost)``" +msgid "Returns set of ``(edge, cost)``" +msgstr "Regresa el conjunto de ``(edge, cost)``" msgid "Cost to traverse the edge." msgstr "Coste para atravezar el borde." @@ -7533,7 +7839,7 @@ msgid "Wiki" msgstr "Wiki" msgid "" -"Edit an existing `pgRouting Wiki `__ page." msgstr "" "Edita una página existente `Wiki de pgRouting `__" msgstr "" +"Las instrucciones para descargar e instalar los binarios para diferentes " +"sistemas operativos, notas adicionales y correcciones no incluidas en esta " +"documentación se pueden encontrar en `Installation wiki `__" msgid "" "To use pgRouting PostGIS needs to be installed, please read the information " @@ -7637,9 +7948,6 @@ msgstr "" "La última versión de pgRouting se puede encontrar en https://github.com/" "pgRouting/pgrouting/releases/latest" -msgid "wget" -msgstr "Wget" - msgid "To download this release:" msgstr "Para descargar esta versión:" @@ -7661,6 +7969,9 @@ msgid "" "(there is no tar ball involved while downloading pgRouting repository from " "GitHub)." msgstr "" +"Ir a :ref:`install-short` para más instrucciones sobre la compilación de " +"pgRouting (no hay bola tar involucrada al descargar el repositorio pgRouting " +"desde GitHub)." msgid "Enabling and upgrading in the database" msgstr "Habilitación y actualización en la base de datos" @@ -7673,19 +7984,24 @@ msgid "" "functionalities to end user. Below given code demonstrates enabling PostGIS " "and pgRouting in the database." msgstr "" +"pgRouting es una extensión de PostgreSQL y depende de PostGIS para " +"proporcionar funcionalidades al usuario final. A continuación se muestra el " +"código demuestra que permite PostGIS y pgRouting en la base de datos." msgid "" "Checking PostGIS and pgRouting version after enabling them in the database." msgstr "" +"Comprobación de la versión de PostGIS y pgRouting después de habilitarlos en " +"la base de datos." msgid "Upgrading the database" msgstr "Actualización de la base de datos" msgid "" -"To upgrade pgRouting in the database to version 3.6.0 use the following " +"To upgrade pgRouting in the database to version 3.7.0 use the following " "command:" msgstr "" -"Para actualizar pgRouting en la base de datos a la versión 3.6.0 utilice el " +"Para actualizar pgRouting en la base de datos a la versión 3.7.0 utilice el " "siguiente comando:" msgid "" @@ -7709,7 +8025,7 @@ msgstr "" "dependencias:" msgid "C and C++0x compilers" -msgstr "" +msgstr "Compiladores C y C++0x" msgid "" "Compiling with Boost 1.56 up to Boost 1.74 requires C++ Compiler with C++03 " @@ -7721,6 +8037,8 @@ msgstr "" msgid "" "Compiling with Boost 1.75 requires C++ Compiler with C++14 standard support" msgstr "" +"La compilación con Boost 1.75 requiere un compilador de C++ compatible con " +"el estándar C++14" msgid "Postgresql version = Supported versions by PostgreSQL" msgstr "Versión postgresql = Versiones compatibles por PostgreSQL" @@ -7777,30 +8095,33 @@ msgid "Configuring PostgreSQL" msgstr "Configurar PostgreSQL" msgid "Entering psql console" -msgstr "" +msgstr "Entrar en la consola psql" msgid "To exit psql console" -msgstr "" +msgstr "Para salir de la consola psql" msgid "" "Entering psql console directly without switching roles can be done by the " "following commands" msgstr "" +"Se puede entrar directamente en la consola psql sin cambiar de rol mediante " +"los siguientes comandos" msgid "Then use the above given method to exit out of the psql console" msgstr "" +"A continuación, utilizar el método anterior para salir de la consola psql" msgid "Checking PostgreSQL version" -msgstr "" +msgstr "Comprobación de la versión de PostgreSQL" msgid "or" -msgstr "" +msgstr "o" msgid "Enter the psql console using above given method and then enter" -msgstr "" +msgstr "Entrar a la consola psql usando el método anterior e introducir" msgid "Creating PostgreSQL role" -msgstr "" +msgstr "Creación del rol PostgreSQL" msgid "" "Default role provided by PostgreSQL is postgres. To create new roles you can " @@ -7808,25 +8129,33 @@ msgid "" "of the role and then provide affirmation. Proceed with the steps and you " "will succeed in creating PostgreSQL role successfully." msgstr "" +"El rol por defecto proporcionado por PostgreSQL es postgres. Para crear " +"nuevos roles puede utilizar los comandos proporcionados anteriromente. El " +"prompt le pedirá al usuario que escibir el nombre del rol y confirmarlo. " +"Proceder con los pasos y tendrá éxito en la creación de rol PostgreSQL." msgid "" "To add password to the role or change previously created password of the " "role use the following commands" msgstr "" +"Para añadir una contraseña a un rol o cambiar una contraseña previamente " +"creada utilizar los siguientes comandos" msgid "" "To get additional details on the flags associated with ``createuser`` below " "given command can be used" msgstr "" +"Para obtener detalles adicionales sobre las banderas asociadas con " +"``createuser`` se puede utilizar el siguiente comando" msgid "Creating Database in PostgreSQL" -msgstr "" +msgstr "Crear una base de datos en PostgreSQL" msgid "Connecting to a PostgreSQL Database" -msgstr "" +msgstr "Conexión a una base de datos PostgreSQL" msgid "Enter the psql console and type the following commands" -msgstr "" +msgstr "Entrar en la consola psql y escribir los siguientes comandos" msgid "Build dependencies" msgstr "Construir dependencias" @@ -7921,6 +8250,7 @@ msgstr "" msgid "Configuring cmake to create documentation before building pgRouting" msgstr "" +"Configuración de cmake para crear documentación antes de compilar pgRouting" msgid "Most of the effort of the documentation has been on the html files." msgstr "" @@ -7958,6 +8288,8 @@ msgstr "Las siguientes instrucciones comienzan desde *path/to/pgrouting*" msgid "" "To remove the build when the configuration changes, use the following code:" msgstr "" +"Para eliminar la compilación cuando se cambie la configuración, utilizar el " +"siguiente código:" msgid "and start the build process as mentioned previously." msgstr "e iniciar el proceso de compilación como se mencionó anteriormente." @@ -8061,25 +8393,22 @@ msgstr "Colaboradores" msgid "This Release Contributors" msgstr "Colaboradores de esta Versión" -msgid "Individuals in this release (in alphabetical order)" -msgstr "Personas en este lanzamiento (en orden alfabético)" +msgid "Individuals in this release v3.7.x (in alphabetical order)" +msgstr "Elementos de esta versión v3.7.x (por orden alfabético)" -msgid "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, " -"Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, " -"Virginia Vergara, Yige Huang" -msgstr "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, " -"Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, " -"Virginia Vergara, Yige Huang" +msgid "(Alphabetical order)" +msgstr "(Orden alfabético)" + +msgid "Regina Obe, Vicky Vergara" +msgstr "Regina Obe, Vicky Vergara" msgid "" "And all the people that give us a little of their time making comments, " -"finding issues, making pull requests etc. in any of our products: " +"finding issues, making pull requests etc. in any of our products: " "osm2pgrouting, pgRouting, pgRoutingLayer, workshop." msgstr "" -"Y todas las personas que nos dan un poco de su tiempo haciendo comentarios, " -"encontrando problemas, haciendo pull request, etc. en cualquiera de nuestros " +"Y a toda la gente que nos regala un poco de su tiempo haciendo comentarios, " +"encontrando problemas, haciendo pull requests etc. en cualquiera de nuestros " "productos: osm2pgrouting, pgRouting, pgRoutingLayer, workshop." msgid "Corporate Sponsors in this release (in alphabetical order)" @@ -8093,8 +8422,11 @@ msgstr "" "desarrollo, alojamiento, o financiamiento monetario directo al proyecto de " "pgRouting:" -msgid "`Georepublic `__" -msgstr "`Georepublic `__" +msgid "`OSGeo `__" +msgstr "`OSGeo `__" + +msgid "`OSGeo UK `__" +msgstr "`OSGeo UK `__" msgid "`Google Summer of Code `__" msgstr "`Google Summer of Code `__" @@ -8122,6 +8454,18 @@ msgid "" "Swapnil Joshi, Sylvain Housseman, Sylvain Pasche, Veenit Kumar, Vidhan Jain, " "Virginia Vergara, Yige Huang" msgstr "" +"Aasheesh Tiwari, Abhinav Jain, Aditya Pratap Singh, Adrien Berchet, Akio " +"Takubo, Andrea Nardelli, Anthony Tasca, Anton Patrushev, Aryan Gupta, Ashraf " +"Hossain, Ashish Kumar, Cayetano Benavent, Christian Gonzalez, Daniel Kastl, " +"Dave Potts, David Techer, Denis Rykov, Ema Miyawaki, Esteban Zimanyi, " +"Florian Thurkow, Frederic Junod, Gerald Fenoy, Gudesa Venkata Sai Akhil, " +"Hang Wu, Himanshu Raj, Imre Samu, Jay Mahadeokar, Jinfu Leng, Kai Behncke, " +"Kishore Kumar, Ko Nagase, Mahmoud Sakr, Manikata Kondeti, Mario Basa, Martin " +"Wiesenhaan, Maxim Dubinin, Maoguang Wang, Mohamed Bakli, Mohamed Zia, Mukul " +"Priya, Nitish Chauhan, Rajat Shinde, Razequl Islam, Regina Obe, Rohith " +"Reddy, Sarthak Agarwal, Shobhit Chaurasia, Sourabh Garg, Stephen Woodbridge, " +"Swapnil Joshi, Sylvain Housseman, Sylvain Pasche, Veenit Kumar, Vidhan Jain, " +"Virginia Vergara, Yige Huang" msgid "Corporate Sponsors (in alphabetical order)" msgstr "Patrocinadores corporativos (en orden alfabético)" @@ -8147,6 +8491,12 @@ msgstr "Leopark" msgid "Orkney" msgstr "Orkney" +msgid "OSGeo" +msgstr "OSGeo" + +msgid "OSGeo UK" +msgstr "OSGeo UK" + msgid "Paragon Corporation" msgstr "Paragon Corporation" @@ -8177,12 +8527,8 @@ msgstr "" msgid "Boost C++ source libraries at https://www.boost.org." msgstr "Bibliotecas de código Boost C++ en https://www.boost.org." -msgid "" -"The Migration guide from 2.6 can be found at https://github.com/pgRouting/" -"pgrouting/wiki/Migration-Guide." -msgstr "" -"La guía de Migración de 2.6 se puede encontrar en https://github.com/" -"pgRouting/pgrouting/wiki/Migration-Guide." +msgid ":doc:`migration`" +msgstr ":doc:`migration`" msgid "pgr_KSP" msgstr "pgr_KSP" @@ -8196,8 +8542,8 @@ msgstr "Disponibilidad" msgid "Version 3.6.0" msgstr "Versión 3.6.0" -msgid "Return columns standarized to: |nksp-result|" -msgstr "Devolver columnas estandarizadas a: |nksp-result|" +msgid "Result columns standarized to: |nksp-result|" +msgstr "Columnas de resultados estandarizadas a: |nksp-result|" msgid "``pgr_ksp`` (One to One)" msgstr "``pgr_ksp`` (Uno a Uno)" @@ -8274,11 +8620,11 @@ msgstr "" msgid "**options:** ``[directed, heap_paths]``" msgstr "**opcionales:** ``[directed, heap_paths]``" -msgid "RETURNS SET OF |nksp-result|" +msgid "Returns set of |nksp-result|" msgstr "Regresa conjunto de |nksp-result|" msgid "OR EMPTY SET" -msgstr "" +msgstr "O CONJUNTO VACÍO" msgid "Example" msgstr "Ejemplo" @@ -8347,9 +8693,6 @@ msgstr "" "contendrán aproximadamente ``N * K`` rutas para valores pequeños de ``K`` y " "``K > 5``." -msgid "Returns set of |nksp-result|" -msgstr "Regresa conjunto de |nksp-result|" - msgid "" "Has value **1** for the first of a path from ``start_vid`` to ``end_vid``" msgstr "" @@ -8511,9 +8854,9 @@ msgstr "" msgid "" "The minimum value of the ``agg_cost`` all instances of edge `(u, v)` is " -"going to be considered as the ``agg_cost`` of edge `(u, v)`" +"going to be considered as the ``agg_cost`` of edge `(u, v)`" msgstr "" -"El valor mínimo de ``agg_cost`` en todas las instancias del segmento `(u, " +"El valor mínimo de ``agg_cost`` en todas las instancias de la arista `(u, " "v)` se considera como el ``agg_cost`` de la arista `(u, v)`" msgid "" @@ -8533,11 +8876,11 @@ msgstr "" msgid "pgr_TSP(`Matrix SQL`_, ``[start_id, end_id]``)" msgstr "pgr_TSP(`SQL de martiz`_, ``[start_id, end_id]``)" -msgid "RETURNS SET OF |tsp-result|" -msgstr "REGRESA CONJUNTO DE |tsp-result|" +msgid "Returns set of |tsp-result|" +msgstr "Regresa el conjunto de |nksp-result|" msgid "OR EMTPY SET" -msgstr "" +msgstr "O CONJUNTO VACÍO" msgid "Using :doc:`pgr_dijkstraCostMatrix` to generate the matrix information" msgstr "" @@ -8698,7 +9041,7 @@ msgstr "" "ejemplo:" msgid "pgr_TSPeuclidean(`Coordinates SQL`_, ``[start_id, end_id]``)" -msgstr "" +msgstr "pgr_TSPeuclidean(`SQL de Coordenadas`_, ``[start_id, end_id]``)" msgid "With default values" msgstr "Con valores predeterminados" @@ -8762,11 +9105,11 @@ msgstr "Resultados visuales" msgid "" "Visualy, The first image is the `optimal solution `__ and the second image is the solution " +"uwaterloo.ca/tsp/world/witour.html>`__ and the second image is the solution " "obtained with ``pgr_TSPeuclidean``." msgstr "" -"Visualmente, la primera imagen es la 'solución óptima'`__ y la segunda imagen es la solución " +"Visualmente, la primera imagen es la `solución óptima `__ y la segunda imagen es la solución " "obtenida con ``pgr_TSPeuclidean``." msgid ":doc:`sampledata` network." @@ -8779,7 +9122,7 @@ msgid "``pgr_aStar`` — Shortest path using the A* algorithm." msgstr "``pgr_aStar`` — La ruta más corta utilizando el algoritmo A*." msgid "Standarizing output columns to |short-generic-result|" -msgstr "" +msgstr "Estandarización de las columnas de salida a |short-generic-result|" msgid "" "``pgr_aStar`` (`One to One`_) added ``start_vid`` and ``end_vid`` columns." @@ -8830,18 +9173,6 @@ msgstr "" "Los resultados son equivalentes a la unión de los resultados de " "pgr_aStar( `Uno a Uno`_ ) en:" -msgid "`pgr_aStar(` `One to Many`_ `)`" -msgstr "`pgr_aStar(` `Uno a Muchos`_ `)`" - -msgid "`pgr_aStar(` `Many to One`_ `)`" -msgstr "`pgr_aStar(` `Muchos a Uno`_ `)`" - -msgid "`pgr_aStar(` `Many to Many`_ `)`" -msgstr "`pgr_aStar(` `Muchos a Muchos`_ `)`" - -msgid "`pgr_aStar(` `Combinations`_ `)`" -msgstr "``pgr_aStar`` (`Combinaciones`_)" - msgid "pgr_aStar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" msgstr "" "pgr_aStar(`SQL de aristas`_, **salida**, **destino**, **K**, [**opciones**])" @@ -8865,8 +9196,8 @@ msgstr "pgr_aStar(`SQL de aristas`_, `SQL de combinaciones`_, [**opciones**])" msgid "**options:** ``[directed, heuristic, factor, epsilon]``" msgstr "**opcionales:** ``[directed, heuristic, factor, epsilon]``" -msgid "RETURNS SET OF |short-generic-result|" -msgstr "" +msgid "Returns set of |short-generic-result|" +msgstr "Regresa el conjunto de |short-generic-result|" msgid "Optional parameters are `named parameters` and have a default value." msgstr "" @@ -8929,10 +9260,10 @@ msgid "pgr_aStarCost" msgstr "pgr_aStarCost" msgid "" -"``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* " -"algorithm." +"``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm." msgstr "" -"``pgr_aStarCost`` —Costo total de la ruta más corta usando el algoritmo :A*." +"``pgr_aStarCost`` - Coste total del camino más corto utilizando el algoritmo " +"A*." msgid "``pgr_aStarCost`` (`Combinations`_)" msgstr "``pgr_aStarCost`` (`Combinaciones`_)" @@ -8941,10 +9272,10 @@ msgid "New **proposed** function" msgstr "Nueva función **propuesta**" msgid "" -"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path(s) " +"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path " "using the A* algorithm." msgstr "" -"La función ``pgr_aStarCost`` sumarisa el costo de la ruta más corta usando " +"La función ``pgr_aStarCost`` suma el coste del camino más corto utilizando " "el algoritmo A*." msgid "" @@ -8987,8 +9318,8 @@ msgid "pgr_aStarCost(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgstr "" "pgr_aStarCost(`SQL de aristas`_, `SQL de combinaciones`_, [**opciones**])" -msgid "RETURNS SET OF |matrix-result|" -msgstr "Regresa conjunto de |matrix-result|" +msgid "Returns set of |matrix-result|" +msgstr "Regresa el conjunto de |matrix-result|" msgid "pgr_aStarCost(`Edges SQL`_, **start vids**, **end vids**, [options])" msgstr "" @@ -9072,9 +9403,6 @@ msgstr "Soporte para devolver múltiples anillos exteriores/interiores" msgid "Renamed from version 1.x" msgstr "Renombrado desde la versión 1.x" -msgid "Support" -msgstr "Soporte" - msgid "Returns the polygon part of an alpha shape." msgstr "Devuelve la parte poligonal de una forma alfa." @@ -9176,21 +9504,21 @@ msgid "**options:** ``[the_geom, id, source, target, rows_where]``" msgstr "**opcionales:** ``[the_geom, id, source, target, rows_where]``" msgid "RETURNS ``VARCHAR``" -msgstr "" +msgstr "DEVUELVE ``VARCHAR``" msgid "Prerequisites" msgstr "Pre-requisitos" msgid "" -"The edge table to be analyzed must contain a source column and a target " +"The edge table to be analyzed must contain a source column and a target " "column filled with id's of the vertices of the segments and the " "corresponding vertices table _vertices_pgr that stores the " "vertices information." msgstr "" -"La tabla de bordes debe ser analizada debe contener una columna de origen y " -"una columna de destino llena con los identificadores de los vértices de los " -"segmentos y los vértices correspondientes de la tabla " -"_vertices_pgr que almacena la información de los vértices." +"La tabla de aristas a analizar debe contener una columna origen y una " +"columna destino rellenas con identificadores de los vértices de los " +"segmentos y la correspondiente tabla de vértices _vertices_pgr " +"que almacena la información de los vértices." msgid "Use :doc:`pgr_createVerticesTable` to create the vertices table." msgstr "Use :doc:`pgr_createVerticesTable` para crear la tabla de vértices." @@ -9221,21 +9549,21 @@ msgid "the_geom" msgstr "the_geom" msgid "" -"``text`` Geometry column name of the network table. Default value is " +"``text`` Geometry column name of the network table. Default value is " "``the_geom``." msgstr "" -"``text`` nombre de la columna de la geometría en la tabla de la red. El " -"valor por defecto es ``the_geom``." +"``text`` nombre de la columna de la geometría en la tabla de la red. El " +"valor por defecto es `the_geom``." msgid "id" msgstr "id" msgid "" -"``text`` Primary key column name of the network table. Default value is " +"``text`` Primary key column name of the network table. Default value is " "``id``." msgstr "" "``text``Nombre de la columna de la clave principal de la tabla de red. Valor " -"por defecto es ``id``." +"por defecto es ``id``'." msgid "source" msgstr "source" @@ -9251,20 +9579,20 @@ msgid "target" msgstr "target" msgid "" -"``text`` Target column name of the network table. Default value is " +"``text`` Target column name of the network table. Default value is " "``target``." msgstr "" -"``text`` El nombre de la columna del nodo de llegada del segmento. El valor " -"por defecto es ``target``." +"``text`` El nombre de la columna del destino del segmento. El valor por " +"defecto es ``target``." msgid "rows_where" msgstr "rows_where" msgid "" -"``text`` Condition to select a subset or rows. Default value is ``true`` " -"to indicate all rows." +"``text`` Condition to select a subset or rows. Default value is ``true`` to " +"indicate all rows." msgstr "" -"``text`` condición para seleccionar un subconjunto o filas. Valor " +"``text`` Condición para seleccionar un subconjunto o filas. Valor " "predeterminado es ``true`` para indicar todas las filas." msgid "Uses the vertices table: _vertices_pgr." @@ -9275,7 +9603,7 @@ msgstr "" "Llena totalmente las columnas ``cnt`` y ``chk`` de la tabla de vértices." msgid "" -"Returns the analysis of the section of the network defined by ``rows_where``" +"Returns the analysis of the section of the network defined by ``rows_where``" msgstr "" "Devuelve el análisis de la sección de la red definida por ``rows_where``" @@ -9326,8 +9654,8 @@ msgstr "" msgid "chk" msgstr "chk" -msgid "``integer`` Indicator that the vertex might have a problem." -msgstr "``integer`` indicador que el vértice podría tener un problema." +msgid "``integer`` Indicator that the vertex might have a problem." +msgstr "``integer`` Indicador de que el vértice puede tener un problema." msgid "ein" msgstr "ein" @@ -9553,12 +9881,14 @@ msgid "" "pgr_analyzeOneWay(**geom_table**, **s_in_rules**, **s_out_rules**, " "**t_in_rules**, **t_out_rules**, [**options**])" msgstr "" +"pgr_analyzeOneWay(**geom_table**, **s_in_rules**, **s_out_rules**, " +"**t_in_rules**, **t_out_rules**, [**opciones**])" msgid "**options:** ``[oneway, source, target, two_way_if_null]``" msgstr "**opcionales:** ``[oneway, source, target, two_way_if_null]``" msgid "RETURNS ``TEXT``" -msgstr "" +msgstr "DEVUELVE ``TEXT``" msgid "s_in_rules" msgstr "s_in_rules" @@ -9598,11 +9928,11 @@ msgid "two_way_if_null" msgstr "two_way_if_null" msgid "" -"``boolean`` flag to treat oneway NULL values as bi-directional. Default " +"``boolean`` flag to treat oneway NULL values as bi-directional. Default " "value is ``true``." msgstr "" "``boolean`` bandera para tratar los valores NULL de oneway como " -"bidireccional. Valor predeterminado es``true``." +"bidireccional. Valor predeterminado es``true``." msgid "" "It is strongly recommended to use the named notation. See :doc:" @@ -9644,10 +9974,10 @@ msgstr "" "vértice. Consulte :doc:`pgr_analyzeGgraph `." msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" +"``integer`` Indicator that the vertex might have a problem. See :doc:" "`pgr_analyzeGraph `." msgstr "" -"``integer`` Indicador de que el vértice podría tener un problema. Consulte :" +"``integer`` Indicador de que el vértice podría tener un problema. Consulte :" "doc:`pgr_analyzeGraph `." msgid "" @@ -9677,8 +10007,8 @@ msgstr "" "``pgr_articulationPoints`` - Devuelve los puntos de articulación de un grafo " "no dirigido." -msgid "Return columns change: ``seq`` is removed" -msgstr "Cambio de columnas de retorno: ``seq`` se elimina" +msgid "Result columns change: ``seq`` is removed" +msgstr "Cambio de columnas de resultados: ``seq`` se elimina" msgid "Version 2.5.0" msgstr "Versión 2.5.0" @@ -9710,8 +10040,8 @@ msgstr "Tiempo de ejecución: :math:`O(V + E)`" msgid "pgr_articulationPoints(`Edges SQL`_)" msgstr "pgr_articulationPoints(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-node|" -msgstr "REGRESA CONJUNTO DE |result-node|" +msgid "Returns set of |result-node|" +msgstr "Regresa conjunto de |result-node|" msgid "The articulation points of the graph" msgstr "Los puntos de articulación del grafo" @@ -9719,9 +10049,6 @@ msgstr "Los puntos de articulación del grafo" msgid "Nodes in red are the articulation points." msgstr "Nodos en rojo son los puntos de articulación." -msgid "Returns set of |result-node|" -msgstr "Regresa conjunto de |result-node|" - msgid "" "Boost: `Biconnected components & articulation points `__" @@ -9781,18 +10108,6 @@ msgstr "" "Los resultados son equivalentes a la unión de los resultados de " "`pgr_bdAStar(` `Uno a Uno`_ `)` en:" -msgid "`pgr_bdAstar(` `One to Many`_ `)`" -msgstr "`pgr_bdAstar(` `Uno a Muchos`_ `)`" - -msgid "`pgr_bdAstar(` `Many to One`_ `)`" -msgstr "`pgr_bdAstar(` `Muchos a Uno`_ `)`" - -msgid "`pgr_bdAstar(` `Many to Many`_ `)`" -msgstr "`pgr_bdAstar(` `Muchos a Muchos`_ `)`" - -msgid "`pgr_bdAstar(` `Combinations`_ `)`" -msgstr "``pgr_bdAstar`` (`Combinaciones`_)" - msgid "pgr_bdAstar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" msgstr "" "pgr_bdAstar(`SQL de aristas`_, **salida**, **destino**, [**opciones**])" @@ -9817,21 +10132,21 @@ msgid "pgr_bdAstarCost" msgstr "pgr_bdAstarCost" msgid "" -"``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the " +"``pgr_bdAstarCost`` - Total cost of the shortest path using the " "bidirectional A* algorithm." msgstr "" -"``pgr_bdAstarCost`` - Devuelve el costo agregado de la ruta más corta usando " -"el algoritmo bidireccional A*." +"``pgr_bdAstarCost`` - Coste total del camino más corto utilizando el " +"algoritmo bidireccional A*." msgid "``pgr_bdAstarCost`` (`Combinations`_)" msgstr "``pgr_bdAstarCost`` (`Combinaciones`_)" msgid "" -"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest " -"path(s) using the bidirectional A* algorithm." +"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path " +"using the bidirectional A* algorithm." msgstr "" -"La función ``pgr_bdAstarCost`` Sumariza el costo del camino más corto " -"utilizando el algoritmo bidireccional A*." +"La función ``pgr_bdAstarCost`` suma el coste del camino más corto utilizando " +"el algoritmo bidireccional A*." msgid "" "pgr_bdAstarCost(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -9877,11 +10192,11 @@ msgid "``pgr_bdDijkstra``" msgstr "``pgr_bdDijkstra``" msgid "" -"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional " -"Dijkstra algorithm." +"``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra " +"algorithm." msgstr "" -"``pgr_bdDijkstra`` — Devuelve la(s) rutas más cortas mediante el algoritmo " -"Bidirectional Dijkstra." +"``pgr_bdDijkstra`` - Devuelve el camino más corto utilizando el algoritmo " +"Bidireccional de Dijkstra." msgid "pgr_bdDijkstra(`Combinations`_)" msgstr "pgr_bdDijkstra(`Combinaciones`_)" @@ -9924,21 +10239,21 @@ msgid "" msgstr "" "pgr_bdDijkstra(`SQL de aristas`_, **salidas**, **destinos**, [``directed``])" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" "pgr_bdDijkstra(`SQL de aristas`_, `SQL de combinaciones`_, [``directed``])" -msgid "RETURNS SET OF |old-generic-result|" -msgstr "REGRESA CONJUNTO DE |old-generic-result|" +msgid "Returns set of |old-generic-result|" +msgstr "Regresa el conjunto de |old-generic-result|" -msgid "RETURNS SET OF |result-1-1|" -msgstr "REGRESA CONJUNTO DE |result-1-1|" +msgid "Returns set of |result-1-1|" +msgstr "Regresa el conjunto de |result-1-1|" -msgid "From vertex :math:`6` to vertex :math:`10` on a **directed** graph" +msgid "From vertex :math:`6` to vertex :math:`10` on a **directed** graph" msgstr "Del vértice :math:`6` al vértice :math:`10` en un grafo **dirigido**" -msgid "RETURNS SET OF |result-1-m|" -msgstr "REGRESA CONJUNTO DE |result-1-m|" +msgid "Returns set of |result-1-m|" +msgstr "Regresa el conjunto de |result-1-m|" msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 17\\}` on a **directed** " @@ -9947,8 +10262,8 @@ msgstr "" "Del vértice :math:`6` a los vértices :math:`\\{10, 17\\}` en un grafo " "**dirigido**" -msgid "RETURNS SET OF |result-m-1|" -msgstr "REGRESA CONJUNTO DE |result-m-1|" +msgid "Returns set of |result-m-1|" +msgstr "Regresa el conjunto de |result-m-1|" msgid "" "From vertices :math:`\\{6, 1\\}` to vertex :math:`17` on a **directed** graph" @@ -9963,19 +10278,15 @@ msgstr "" "De los vértices :math:`\\{6, 1\\}` a los vértices :math:`\\{10, 17\\}` en un " "grafo **no dirigido**" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "" -"pgr_bdDijkstra(`SQL de aristas`_, `SQL de combinaciones`_, [``directed``])" - msgid "Using a combinations table on an **undirected** graph" msgstr "Usando una tabla de combinaciones en un grafo **no dirigido**" msgid "" -"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP" -"%20shortest%20path%20algorithms.pdf" +"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/" +"EPP%20shortest%20path%20algorithms.pdf" msgstr "" -"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP" -"%20shortest%20path%20algorithms.pdf" +"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/" +"EPP%20shortest%20path%20algorithms.pdf" msgid "https://en.wikipedia.org/wiki/Bidirectional_search" msgstr "https://en.wikipedia.org/wiki/Bidirectional_search" @@ -9984,11 +10295,11 @@ msgid "``pgr_bdDijkstraCost``" msgstr "``pgr_bdDijkstraCost``" msgid "" -"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using " +"``pgr_bdDijkstraCost`` — Returns the shortest path's cost using " "Bidirectional Dijkstra algorithm." msgstr "" -"``pgr_bdDijkstraCost`` — Devuelve la ruta(s) más corta utilizando el " -"algoritmo de Dijkstra Bidireccional." +"``pgr_bdDijkstraCost`` - Devuelve el coste del camino más corto utilizando " +"el algoritmo Bidireccional de Dijkstra." msgid "``pgr_bdDijkstraCost`` (`Combinations`_)" msgstr "``pgr_bdDijkstraCost`` (`Combinaciones`_)" @@ -10029,7 +10340,7 @@ msgstr "" msgid "pgr_bdDijkstraCost(`Edges SQL`_, `Combinations SQL`_, [ ``directed``])" msgstr "" "pgr_bdDijkstraCost(`SQL de aristas`_, `SQL de combinaciones`_, " -"[``directed``])" +"[ ``directed``])" msgid "pgr_bdDijkstraCost(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" @@ -10069,9 +10380,10 @@ msgstr "Usar con :doc:`pgr_TSP`." msgid "``pgr_bellmanFord - Experimental``" msgstr "``pgr_bellmanFord`` - Experimental" -msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" -"``pgr_bellmanFord`` —Camino m+as corto usando el algoritmo de Bellman-Ford." +"``pgr_bellmanFord`` - Camino más corto utilizando el algoritmo de Bellman-" +"Ford." msgid "New **experimental** signature:" msgstr "Nueva firma **experimental**:" @@ -10173,7 +10485,7 @@ msgstr "" "pgr_bellmanFord(`SQL de aristas`_, **salida**, **destinos**, [``directed``])" msgid "" -"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid** , [``directed``])" +"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" msgstr "" "pgr_bellmanFord(`SQL de aristas`_, **salidas**, **destino**, [``directed``])" @@ -10186,9 +10498,6 @@ msgid "pgr_bellmanFord(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" "pgr_bellmanFord(`SQL de aristas`_, `SQL de combinaciones`_, [``directed``])" -msgid "From vertex :math:`6` to vertex :math:`10` on a **directed** graph" -msgstr "Del vértice :math:`6` al vértice :math:`10` en un grafo **dirigido**" - msgid "" "From vertex :math:`6` to vertices :math:`\\{ 10, 17\\}` on a **directed** " "graph" @@ -10196,72 +10505,172 @@ msgstr "" "Desde el vértice :math:`6` a los vértices :math:`\\{ 10, 17\\}` en un grafo " "**dirigido**" -msgid "" -"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" -msgstr "" -"pgr_bellmanFord(`SQL de aristas`_, **salidas**, **destino**, [``directed``])" - msgid "Using a combinations table on an **undirected** graph." msgstr "Uso de una tabla de combinaciones en un grafo **no dirigido**." msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" -msgid "``pgr_biconnectedComponents``" -msgstr "``pgr_biconnectedComponents``" +msgid "``pgr_betweennessCentrality``" +msgstr "``pgr_betweennessCentrality``" msgid "" -"``pgr_biconnectedComponents`` — Biconnected components of an undirected " -"graph." +"``pgr_betweennessCentrality`` - Calculates the relative betweeness " +"centrality using Brandes Algorithm" msgstr "" -"``pgr_biconnectedComponents`` — Componentes biconectados de un grafo no " -"dirigido." +"``pgr_betweennessCentrality`` - Calcula la centralidad intermedia relativa " +"mediante el algoritmo de Brandes" -msgid "Return columns change:" -msgstr "Las columnas de retorno cambian:" +msgid "Version 3.7.0" +msgstr "Versión 3.7.0" -msgid "``n_seq`` is removed" -msgstr "``n_seq`` se elimina" +msgid "New **experimental** function:" +msgstr "Nueva función **experimental**:" -msgid "``seq`` changed type to ``BIGINT``" -msgstr "``seq`` cambió el tipo a ``BIGINT``'" +msgid "" +"The Brandes Algorithm takes advantage of the sparse graphs for evaluating " +"the betweenness centrality score of all vertices." +msgstr "" +"El algoritmo Brandes aprovecha los grafos dispersos para evaluar la " +"puntuación de centralidad intermedia de todos los vértices." msgid "" -"The biconnected components of an undirected graph are the maximal subsets of " -"vertices such that the removal of a vertex from particular component will " -"not disconnect the component. Unlike connected components, vertices may " -"belong to multiple biconnected components. Vertices can be present in " -"multiple biconnected components, but each edge can only be contained in a " -"single biconnected component." +"Betweenness centrality measures the extent to which a vertex lies on the " +"shortest paths between all other pairs of vertices. Vertices with a high " +"betweenness centrality score may have considerable influence in a network by " +"the virtue of their control over the shortest paths passing between them." msgstr "" -"Los componentes biconectados de un grafo no dirigido son los subconjuntos " -"máximos de vértices de modo que la eliminación de un vértice de un " -"componente determinado no desconectará el mismo. A diferencia de los " -"componentes conectados, los vértices pueden pertenecer a varios componentes " -"biconectados. Los vértices pueden estar presentes en varios componentes " -"biconectados, pero cada arista solo puede estar contenida en un único " -"componente biconectado." +"La centralidad de interrelación mide hasta qué punto un vértice se encuentra " +"en las rutas más cortas entre todos los demás pares de vértices. Los " +"vértices con una alta centralidad entre pares pueden tener una influencia " +"considerable en una red gracias a su control sobre los caminos más cortos " +"que pasan entre ellos." -msgid "Components are described by edges." -msgstr "Los componentes se describen mediante aristas." +msgid "" +"The removal of these vertices will affect the network by disrupting the it, " +"as most of the shortest paths between vertices pass through them." +msgstr "" +"La eliminación de estos vértices afectará a la red al perturbarla, ya que la " +"mayoría de los caminos más cortos entre vértices pasan por ellos." -msgid "``component`` ascending." -msgstr "``componente`` ascendente." +msgid "This implementation work for both directed and undirected graphs." +msgstr "" +"Esta implementación funciona tanto para grafos dirigidos como no dirigidos." -msgid "``edge`` ascending." -msgstr "``edge`` ascendente." +msgid "Running time: :math:`\\Theta(VE)`" +msgstr "Tiempo de ejecución: :math:`\\Theta(VE)`" -msgid "pgr_biconnectedComponents(`Edges SQL`_)" -msgstr "pgr_biconnectedComponents(`SQL de aristas`_)" +msgid "Running space: :math:`\\Theta(VE)`" +msgstr "Espacio de ejecución: :math:`\\Theta(VE)`" -msgid "RETURNS SET OF |result-component-E|" -msgstr "REGRESA CONJUNTO DE |result-component-E|" +msgid "Throws when there are no edges in the graph" +msgstr "Lanza cuando no hay aristas en el grafo" -msgid "The biconnected components of the graph" -msgstr "Los componentes biconectados del grafo" +msgid "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" +msgstr "pgr_betweennessCentrality(`SQL de aristas`_, [``directed``])" -msgid "Returns set of |result-component-E|" -msgstr "Regresa conjunto de |result-component-E|" +msgid "Returns set of ``(vid, centrality)``" +msgstr "Regresa el conjunto de ``(vid, centrality)``" + +msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." +msgstr "Para un grafo dirigido con aristas :math:`\\{1, 2, 3, 4\\}`." + +msgid "Explanation" +msgstr "Explicación" + +msgid "The betweenness centrality are between parenthesis." +msgstr "La centralidad intermedia está entre paréntesis." + +msgid "The leaf vertices have betweenness centrality :math:`0`." +msgstr "Los vértices de las hojas tienen una centralidad intermedia :math:`0`." + +msgid "" +"Betweenness centrality of vertex :math:`6` is higher than of vertex :math:" +"`10`." +msgstr "" +"La centralidad de entrecruzamiento del vértice :math:`6` es mayor que la del " +"vértice :math:`10`." + +msgid "Removing vertex :math:`6` will create three graph components." +msgstr "Al eliminar el vértice :math:`6` se crearían tres componentes." + +msgid "Removing vertex :math:`10` will create two graph components." +msgstr "" +"Al eliminar el vértice :math:`10` se crearán dos componentes del grafo." + +msgid "``vid``" +msgstr "``vid``" + +msgid "``centrality``" +msgstr "``centrality``" + +msgid "" +"Relative betweenness centrality score of the vertex (will be in range [0,1])" +msgstr "" +"Puntuación relativa de centralidad entre vértices (estará en el rango [0,1])" + +msgid "" +"Boost's `betweenness_centrality `_" +msgstr "" +"`Boost: Centralidad de intermediación `__" + +msgid "Queries use the :doc:`sampledata` network." +msgstr "Las consultas utilizan la red :doc:`sampledata`." + +msgid "``pgr_biconnectedComponents``" +msgstr "``pgr_biconnectedComponents``" + +msgid "" +"``pgr_biconnectedComponents`` — Biconnected components of an undirected " +"graph." +msgstr "" +"``pgr_biconnectedComponents`` — Componentes biconectados de un grafo no " +"dirigido." + +msgid "Result columns change:" +msgstr "Las columnas de resultados cambian:" + +msgid "``n_seq`` is removed" +msgstr "``n_seq`` se elimina" + +msgid "``seq`` changed type to ``BIGINT``" +msgstr "``seq`` cambió el tipo a ``BIGINT``'" + +msgid "" +"The biconnected components of an undirected graph are the maximal subsets of " +"vertices such that the removal of a vertex from particular component will " +"not disconnect the component. Unlike connected components, vertices may " +"belong to multiple biconnected components. Vertices can be present in " +"multiple biconnected components, but each edge can only be contained in a " +"single biconnected component." +msgstr "" +"Los componentes biconectados de un grafo no dirigido son los subconjuntos " +"máximos de vértices de modo que la eliminación de un vértice de un " +"componente determinado no desconectará el mismo. A diferencia de los " +"componentes conectados, los vértices pueden pertenecer a varios componentes " +"biconectados. Los vértices pueden estar presentes en varios componentes " +"biconectados, pero cada arista solo puede estar contenida en un único " +"componente biconectado." + +msgid "Components are described by edges." +msgstr "Los componentes se describen mediante aristas." + +msgid "``component`` ascending." +msgstr "``componente`` ascendente." + +msgid "``edge`` ascending." +msgstr "``edge`` ascendente." + +msgid "pgr_biconnectedComponents(`Edges SQL`_)" +msgstr "pgr_biconnectedComponents(`SQL de aristas`_)" + +msgid "Returns set of |result-component-E|" +msgstr "Regresa conjunto de |result-component-E|" + +msgid "The biconnected components of the graph" +msgstr "Los componentes biconectados del grafo" msgid "``component``" msgstr "``component``" @@ -10286,11 +10695,11 @@ msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "``pgr_binaryBreadthFirstSearch`` - Experimental" msgid "" -"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a binary " +"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary " "graph." msgstr "" -"``pgr_binaryBreadthFirstSearch`` — Regresa los caminos más cortos en un " -"grafo binario." +"``pgr_binaryBreadthFirstSearch`` - Devuelve el camino más corto en un grafo " +"binario." msgid "" "Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any non-" @@ -10321,17 +10730,17 @@ msgid "" "you need to traverse from the source to another vertex. We can interpret " "such a graph also as a weighted graph, where every edge has the weight :math:" "`1`. If not alledges in graph have the same weight, that we need a more " -"general algorithm, like Dijkstra's Algorithm which runs in :math:`O(|E|log|" +"general algorithm, like Dijkstra's Algorithm which runs in :math:`O(|E|log|" "V|)` time." msgstr "" -"Es bien sabido que las rutas más cortas entre una sola fuente y todos los " -"demás vértices se pueden encontrar usando Breadth First Search en :math:`O(|" -"E|)` en un grafo no ponderado, es decir, la distancia es el número mínimo de " -"aristas que necesita atravesar desde el origen a otro vértice. Podemos " -"interpretar tal grafo también como un grafo ponderado, donde cada arista " -"tiene el peso 1. Si no todas las aristas del grafo tienen el mismo peso, que " -"necesitamos un algoritmo más general, como el Algoritmo de Dijkstra que se " -"ejecuta en :math:`O(|E|log|V|)` tiempo." +"Es bien sabido que los caminos más cortos entre un único origen y todos los " +"demás vértices se pueden encontrar utilizando la búsqueda rápida en :math:" +"`O(|E|)` en un grafo no ponderado, es decir, la distancia es el número " +"mínimo de aristas que hay que recorrer desde el origen hasta otro vértice. " +"Podemos interpretar este grafo también como un grafo ponderado, en el que " +"cada arista tiene el peso :math:`1`. Si no todas las aristas del grafo " +"tienen el mismo peso, necesitaremos un algoritmo más general, como el " +"Algoritmo de Dijkstra, que se ejecuta en tiempo :math:`O(|E|log|V|)`." msgid "" "However if the weights are more constrained, we can use a faster algorithm. " @@ -10403,9 +10812,6 @@ msgstr "" "**Nota:** Usando la red de :doc:`sampledata` como todos los pesos son los " "mismos (i.e :math:`1``)" -msgid "Optional Parameters" -msgstr "Parámetros Opcionales" - msgid "https://cp-algorithms.com/graph/01_bfs.html" msgstr "https://cp-algorithms.com/graph/01_bfs.html" @@ -10446,12 +10852,12 @@ msgstr "Los valores devueltos no están ordenados." msgid "" "The algorithm checks graph is bipartite or not. If it is bipartite then it " -"returns the node along with two colors `0` and `1` which represents two " +"returns the node along with two colors `0` and `1` which represents two " "different sets." msgstr "" -"El algoritmo comprueba si el grafo es bi-partido o no. Si es bipartido, " -"devuelve el nodo junto con dos colores `0` y `1` que representan dos " -"conjuntos diferentes." +"El algoritmo comprueba si el grafo es bipartito o no. Si es bipartito " +"entonces devuelve el nodo junto con dos colores `0` y `1` que representan " +"dos conjuntos diferentes." msgid "If graph is not bipartite then algorithm returns empty set." msgstr "Si el grafo no es bipartito, el algoritmo devuelve un conjunto vacío." @@ -10459,8 +10865,8 @@ msgstr "Si el grafo no es bipartito, el algoritmo devuelve un conjunto vacío." msgid "pgr_bipartite(`Edges SQL`_)" msgstr "pgr_bipartite(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-node-color|" -msgstr "REGRESA CONJUNTO DE |result-node-color|" +msgid "Returns set of |result-node-color|" +msgstr "Regresa el conjunto de |result-node-color|" msgid "When the graph is bipartite" msgstr "Cuando el grafo es bi-partido" @@ -10472,11 +10878,12 @@ msgid "The odd length cyclic graph can not be bipartite." msgstr "El gráfico cíclico de longitud impar no puede ser bipartito." msgid "" -"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:`" -"\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 vertices." +"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:" +"`\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 " +"vertices." msgstr "" -"La arista :math:`5 \\rightarrow 1` hace que el sub-grafo con vértices:math:`" -"\\{1, 3, 7, 6, 5\\}` se un grafo de ciclo impar, ya que ciclo tiene 5 " +"La arista :math:`5 \\rightarrow 1` hace que el sub-grafo con vértices:math:" +"`\\{1, 3, 7, 6, 5\\}` se un grafo de ciclo impar, ya que ciclo tiene 5 " "vértices." msgid "Edges in blue represent odd length cycle subgraph." @@ -10527,8 +10934,8 @@ msgstr "pgr_boykovKolmogorov(`SQL de aristas`_, **salidas**, **destinos**)" msgid "pgr_boykovKolmogorov(`Edges SQL`_, `Combinations SQL`_)" msgstr "pgr_boykovKolmogorov(`SQL de aristas`_, `SQL de combinaciones`_)" -msgid "RETURNS SET OF |result-flow|" -msgstr "REGRESA CONJUNTO DE |result-flow|" +msgid "Returns set of |result-flow|" +msgstr "Regresa el conjunto de |result-flow|" msgid "From vertex :math:`11` to vertex :math:`12`" msgstr "Del vértice :math:`11` al vértice :math:`12`" @@ -10600,11 +11007,8 @@ msgstr "pgr_breadthFirstSearch(`SQL de aristas`_, **raices**, [**options**])" msgid "**options:** ``[max_depth, directed]``" msgstr "**opcionales:** ``[max_depth, directed]``" -msgid "RETURNS SET OF |result-bfs|" -msgstr "REGRESA CONJUNTO DE |result-bfs|" - -msgid "Single vertex" -msgstr "Vértice único" +msgid "Returns set of |result-bfs|" +msgstr "Regresa el conjunto de |result-bfs|" msgid "" "From root vertex :math:`6` on a **directed** graph with edges in ascending " @@ -10613,9 +11017,6 @@ msgstr "" "Desde el vértice raíz :math:`6` en un grafo **dirigido** con aristas en " "orden ascendente de ``id``" -msgid "Multiple vertices" -msgstr "Múltiples vértices" - msgid "" "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with " "**depth** :math:`<= 2` and edges in ascending order of ``id``" @@ -10691,15 +11092,12 @@ msgstr "Tiempo de ejecución: :math:`O(E * (V + E))`" msgid "pgr_bridges(`Edges SQL`_)" msgstr "pgr_bridges(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-edge|" -msgstr "REGRESA CONJUNTO DE |result-edge|" +msgid "Returns set of |result-edge|" +msgstr "Regresa conjunto de |result-edge|" msgid "The bridges of the graph" msgstr "Los puentes del grafo" -msgid "Returns set of |result-edge|" -msgstr "Regresa conjunto de |result-edge|" - msgid "Identifier of the edge that is a bridge." msgstr "Identificador del borde que es un puente." @@ -10725,8 +11123,8 @@ msgstr "Devuelve ``EMPTY SET`` en un grafo desconectado" msgid "pgr_chinesePostman(`Edges SQL`_)" msgstr "pgr_chinesePostman(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-1-1-no-seq|" -msgstr "REGRESA CONJUNTO DE |result-1-1-no-seq|" +msgid "Returns set of |result-1-1-no-seq|" +msgstr "Regresa el conjunto de |result-1-1-no-seq|" msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``" msgstr "Devuelve un conjunto de ``(seq, node, edge, cost, agg_cost)``" @@ -10763,7 +11161,7 @@ msgid "pgr_chinesePostmanCost(`Edges SQL`_)" msgstr "pgr_chinesePostmanCost(`SQL de aristas`_)" msgid "RETURNS ``FLOAT``" -msgstr "" +msgstr "DEVUELVE ``FLOAT``" msgid "``pgr_chinesepostmancost``" msgstr "``pgr_chinesepostmancost``" @@ -10797,15 +11195,12 @@ msgstr "``component`` ascendente" msgid "pgr_connectedComponents(`Edges SQL`_)" msgstr "pgr_connectedComponents(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-component-V|" -msgstr "REGRESA CONJUNTO DE |result-component-V|" +msgid "Returns set of |result-component-V|" +msgstr "Regresa conjunto de |result-component-V|" msgid "The connected components of the graph" msgstr "Los componentes conectados del grafo" -msgid "Returns set of |result-component-V|" -msgstr "Regresa conjunto de |result-component-V|" - msgid "Has the value of the minimum node identifier in the component." msgstr "Continene le valor mínimo de identificador de nodo en el componente." @@ -10898,8 +11293,8 @@ msgstr "" msgid "**options:** ``[ max_cycles, forbidden_vertices, directed]``" msgstr "**opcionales:** ``[ max_cycles, forbidden_vertices, directed]``" -msgid "RETURNS SET OF |result-contract|" -msgstr "REGRESA CONJUNTO DE |result-contract|" +msgid "Returns set of |result-contract|" +msgstr "Regresa conjunto de |result-contract|" msgid "" "Making a dead end and linear contraction in that order on an undirected " @@ -10942,9 +11337,6 @@ msgstr "" "Número de veces que se realizarán las operaciones de contracción en el orden " "``contraction_order``." -msgid "Returns set of |result-contract|" -msgstr "" - msgid "The function returns a single row. The columns of the row are:" msgstr "La función devuelve una sola fila. Las columnas de la fila son:" @@ -11042,7 +11434,7 @@ msgstr "" "``FAIL`` cuando el la red topológica no se no se completó debido a un error." msgid "pgr_createTopology(edge_table, tolerance, [**options**])" -msgstr "" +msgstr "pgr_createTopology(tabla_borde, tolerancia, [**opciones**])" msgid "**options:** ``[the_geom, id, source, target, rows_where, clean]``" msgstr "**opcionales:** ``[the_geom, id, source, target, rows_where, clean]``" @@ -11051,24 +11443,21 @@ msgid "The topology creation function accepts the following parameters:" msgstr "" "La función de creación de topología requiere los siguientes parámetros:" -msgid "``text`` Network table name. (may contain the schema name AS well)" -msgstr "``text`` La tabla de la red. (puede contener el nombre del esquema)" - msgid "" -"``text`` Condition to SELECT a subset or rows. Default value is ``true`` " -"to indicate all rows that where ``source`` or ``target`` have a null value, " +"``text`` Condition to SELECT a subset or rows. Default value is ``true`` to " +"indicate all rows that where ``source`` or ``target`` have a null value, " "otherwise the condition is used." msgstr "" -"``text`` Condición para SELECCIONAR un subconjunto de filas. El valor " +"``text`` Condición para SELECCIONAR un subconjunto de filas. El valor " "predeterminado es ``true`` para indicar todas las filas donde ``source`` o " "``target`` tienen un valor nulo, de lo contrario se utiliza la condición." msgid "clean" msgstr "limpio" -msgid "``boolean`` Clean any previous topology. Default value is ``false``." +msgid "``boolean`` Clean any previous topology. Default value is ``false``." msgstr "" -"``boolean`` Limpie cualquier topología previa. El valor predeterminado es " +"``boolean`` Limpia cualquier topología anterior. El valor por defecto es " "``false``." msgid "The ``edge_table`` will be affected" @@ -11124,11 +11513,11 @@ msgstr "" "vértice. Ver :doc:`pgr_analyzeGraph`." msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" +"``integer`` Indicator that the vertex might have a problem. See :doc:" "`pgr_analyzeGraph`." msgstr "" -"``integer`` Indicador de que el vértice podría tener un problema. Consulte :" -"doc:`pgr_analyzeGraph`." +"``integer`` Indicador de que el vértice puede tener un problema. Véase :doc:" +"`pgr_analyzeGraph`." msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " @@ -11147,13 +11536,13 @@ msgstr "" msgid "The simplest way to use pgr_createTopology is:" msgstr "La forma más sencilla de utilizar pgr_createTopology es:" -msgid "When the arguments are given in the order described:" +msgid "When the arguments are given in the order described in the parameters:" msgstr "" "Cuando los argumentos se escriben en el orden descrito en los parámetros:" -msgid "We get the same result AS the simplest way to use the function." +msgid "We get the sameresult as the simplest way to use the function." msgstr "" -"Obtenemos el mismo resultado que la forma más sencilla de utilizar la " +"Se obtiene el mismo resultado que la forma más sencilla de utilizar la " "función." msgid "" @@ -11223,6 +11612,8 @@ msgid "" "An alternate method to create a routing topology use :doc:" "`pgr_extractVertices`" msgstr "" +"Un método alternativo para crear una topología de ruteo es utilizar :doc:" +"`pgr_extractVertices`" msgid "Make sure the database does not have the ``vertices_table``" msgstr "Asegurarse de que la base de datos no tiene ``vertices_table``" @@ -11236,15 +11627,17 @@ msgstr "Crear la tabla de vértices" msgid "" "When the ``LINESTRING`` has a SRID then use ``geom::geometry(POINT, )``" msgstr "" +"Cuando ``LINESTRING`` tiene un SRID entonces usa ``geom::geometry(POINT, " +")``" msgid "For big edge tables that are been prepared," -msgstr "" +msgstr "Para grandes tablas de aristas que han sido preparadas," msgid "Create it as ``UNLOGGED`` and" -msgstr "" +msgstr "Crearlo como ``UNLOGGED`` y" msgid "After the table is created ``ALTER TABLE .. SET LOGGED``" -msgstr "" +msgstr "Después de crear la tabla ``ALTER TABLE .. SET LOGGED``" msgid "Inspect the vertices table" msgstr "Inspeccionar la tabla de vértices" @@ -11298,19 +11691,21 @@ msgid "" "pgr_createVerticesTable(edge_table, [``the_geom, source, target, " "rows_where``])" msgstr "" +"pgr_createVerticesTable(edge_table, [``the_geom, source, target, " +"rows_where``])" msgid "" -"The reconstruction of the vertices table function accepts the following " +"The reconstruction of the vertices table function accepts the following " "parameters:" msgstr "" -"La función para la reconstrucción de la tabla mesa vértices acepta los " -"siguientes parámetros:" +"La función de reconstrucción de la tabla de vértices acepta los siguientes " +"parámetros:" msgid "" -"``text`` Condition to SELECT a subset or rows. Default value is ``true`` " -"to indicate all rows." +"``text`` Condition to SELECT a subset or rows. Default value is ``true`` to " +"indicate all rows." msgstr "" -"``text`` condición para seleccionar un subconjunto o filas. Valor " +"``text`` condición para seleccionar un subconjunto o filas. Valor " "predeterminado es ``true`` para indicar todas las filas." msgid "" @@ -11323,13 +11718,6 @@ msgstr "" msgid "The names of source, target are the same." msgstr "Los nombres de los campos de origen y destino son las mismos." -msgid "" -"The vertices table is a requierment of the :doc:`pgr_analyzeGraph` and the :" -"doc:`pgr_analyzeOneWay` functions." -msgstr "" -"La tabla de vértices es un requerimiento de las funciones :doc:" -"`pgr_analyzeGraph` y :doc:`pgr_analyzeOneWay`." - msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "as incoming. See :doc:`pgr_analyzeOneWay`." @@ -11347,10 +11735,6 @@ msgstr "" msgid "The simplest way to use pgr_createVerticesTable" msgstr "La forma más sencilla de utilizar pgr_createVerticesTable" -msgid "When the arguments are given in the order described in the parameters:" -msgstr "" -"Cuando los argumentos se escriben en el orden descrito en los parámetros:" - msgid "" "An error would occur when the arguments are not given in the appropriate " "order: In this example, the column source column ``source`` of the table " @@ -11446,11 +11830,11 @@ msgid "Example 17" msgstr "Ejemplo 17" msgid "" -":doc:`topology-functions` for an overview of a topology for routing " +":doc:`topology-functions` for an overview of a topology for routing " "algorithms." msgstr "" -":doc:`topology-functions` para obtener una visión general de una topología " -"para algoritmos de ruteo." +":doc:`topology-functions` para una visión general de una topología para " +"algoritmos de enrutamiento." msgid "" ":doc:`pgr_createTopology` ` to create a topology based " @@ -11488,12 +11872,19 @@ msgid "" "matrix that has a symmetric sparsity pattern into a band matrix form with a " "small bandwidth." msgstr "" +"En álgebra lineal numérica, el algoritmo Cuthill-McKee (CM), llamado así por " +"Elizabeth Cuthill y James McKee, es un algoritmo para permutar una matriz " +"dispersa que tiene un patrón de dispersidad simétrico en una forma de matriz " +"de banda con un ancho de banda pequeño." msgid "" "The vertices are basically assigned a breadth-first search order, except " "that at each step, the adjacent vertices are placed in the queue in order of " "increasing degree." msgstr "" +"Básicamente, se asigna a los vértices un orden de búsqueda breadth-first, " +"con la salvedad de que, en cada paso, los vértices adyacentes se colocan en " +"la cola por orden creciente de grado." msgid "The implementation is for **undirected** graphs." msgstr "La implementación es para grafos **no dirigidos**." @@ -11501,6 +11892,8 @@ msgstr "La implementación es para grafos **no dirigidos**." msgid "" "The bandwidth minimization problems are considered NP-complete problems." msgstr "" +"Los problemas de minimización del ancho de banda se consideran problemas NP-" +"completos." msgid "The running time complexity is: :math:`O(m log(m)|V|)`" msgstr "Tiempo de ejecución es: :math:`O(m log(m)|V|)`" @@ -11514,14 +11907,14 @@ msgstr ":math:`m` es el grado máximo de los vértices en el grafo." msgid "pgr_cuthillMckeeOrdering(`Edges SQL`_)" msgstr "pgr_cuthillMckeeOrdering(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-node-order|" -msgstr "REGRESA CONJUNTO DE |result-node-order|" +msgid "Returns set of |result-node-order|" +msgstr "Regresa el conjunto de |result-node-order|" msgid "Graph ordering of pgRouting :doc:`sampledata`" msgstr "Ordenamiento del grafo de los :doc:`sampledata` de pgRouting" -msgid "Returns SET OF ``(seq, node)``" -msgstr "Regresa conjunto de ``(seq, node)``" +msgid "Returns set of ``(seq, node)``" +msgstr "Regresa el conjunto de ``(seq, node)``" msgid "Sequence of the order starting from 1." msgstr "Valor secuencial a partir de 1." @@ -11537,26 +11930,23 @@ msgstr "" "cuthill_mckee_ordering.html>`__" msgid "" -"`Wikipedia: Cuthill-McKee Ordering `__" +"`Wikipedia: Cuthill-McKee Ordering `__" msgstr "" -"`Wikipedia: Ordenamiento Cuthill-McKee `__" +"`Wikipedia: Ordenamiento Cuthill-McKee `__" msgid "pgr_dagShortestPath - Experimental" msgstr "pgr_dagShortestPath - Experimental" msgid "" -"``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted directed " +"``pgr_dagShortestPath`` — Returns the shortest path for weighted directed " "acyclic graphs(DAG). In particular, the DAG shortest paths algorithm " "implemented by Boost.Graph." msgstr "" -"``pgr_dagShortestPath`` — Devuelve la(s) rutas más cortas para los grafos " -"acíclicos dirigidos ponderados (DAG). En particular, el algoritmo de rutas " -"más cortas de DAG implementado por Boost.Graph." - -msgid "New **experimental** function:" -msgstr "Nueva función **experimental**:" +"``pgr_dagShortestPath`` - Devuelve el camino más corto para grafos acíclicos " +"dirigidos ponderados (DAG). En particular, el algoritmo de caminos más " +"cortos DAG implementado por Boost.Graph." msgid "pgr_dagShortestPath(Combinations)" msgstr "pgr_dagShortestPath(Combinaciones)" @@ -11605,10 +11995,10 @@ msgstr "" msgid "Running time: :math:`O(| start\\_vids | * (V + E))`" msgstr "Tiempo de ejecución: :math:`O(| start\\_vids | * (V + E))`" -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" +msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" msgstr "pgr_dagShortestPath(`SQL de aristas`_, **salida**, **destino**)" -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" +msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" msgstr "pgr_dagShortestPath(`SQL de aristas`_, **salida**, **destinos**)" msgid "pgr_dagShortestPath(`Edges SQL`_, **start vids**, **end vid**)" @@ -11620,9 +12010,8 @@ msgstr "pgr_dagShortestPath(`SQL de aristas`_, **salidas**, **destinos**)" msgid "pgr_dagShortestPath(`Edges SQL`_, `Combinations SQL`_)" msgstr "pgr_dagShortestPath(`SQL de aristas`_, `SQL de combinaciones`_)" -msgid "From vertex :math:`5` to vertex :math:`11` on a **directed** graph" -msgstr "" -"Desde el vértice :math:`5` al vértice :math:`11` en un grafo **dirigido**" +msgid "From vertex :math:`5` to vertex :math:`11` on a **directed** graph" +msgstr "Del vértice :math:`5` al vértice :math:`11` en un grafo **dirigido**" msgid "From vertex :math:`5` to vertices :math:`\\{7, 11\\}`" msgstr "Desde el vértice :math:`5` a los vértices :math:`\\{ 7, 11\\}`" @@ -11637,8 +12026,8 @@ msgstr "" "Desde los vértices :math:`\\{5, 15\\}` a los vértices :math:`\\{11, 17\\}` " "en un grafo **no dirigido**" -msgid "Resturn Columns" -msgstr "Columnas de resultados" +msgid "Return columns" +msgstr "Columnas de Resultados" msgid "Making **start_vids** the same as **end_vids**" msgstr "Haciendo **vértices de salida** igual que **vértices destino**" @@ -11647,15 +12036,17 @@ msgid "https://en.wikipedia.org/wiki/Topological_sorting" msgstr "https://en.wikipedia.org/wiki/Topological_sorting" msgid "``pgr_degree`` -- Proposed" -msgstr "" +msgstr "``pgr_degree`` -- Propuesto" msgid "" "``pgr_degree`` — For each vertex in an undirected graph, return the count of " "edges incident to the vertex." msgstr "" +"``pgr_degree`` - Para cada vértice de un grafo no dirigido, devuelve el " +"número de aristas incidentes en el vértice." msgid "Calculates the degree of the vertices of an **undirected** graph" -msgstr "" +msgstr "Calcula el grado de los vértices de un grafo **no dirigido**" msgid "pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``])" msgstr "pgr_degree(`SQL de aristas`_ , `SQL de vértices`_, [``dryrun``])" @@ -11672,9 +12063,13 @@ msgid "" "best to prep your vertices table before hand and use that vertices table for " "pgr_degree calls." msgstr "" +"pgr_degree puede utilizar la salida de `pgr_extractVertices` o puede tener " +"`pgr_extractVertices` incrustado en la llamada. Para redes de tamaño " +"decente, lo mejor es preparar la tabla de vértices de antemano y utilizar " +"esa tabla de vértices para las llamadas pgr_degree." msgid "`Vertex SQL`_" -msgstr "" +msgstr "`SQL de vértices`_" msgid "`Vertex SQL`_ as described below" msgstr "`Vertex SQL`_ como se describe abajo" @@ -11687,7 +12082,7 @@ msgstr "" "Cuando verdadero, no procesar y recibir un AVISO de la consulta resultante." msgid "Vertex SQL" -msgstr "" +msgstr "SQL de vértices" msgid "``in_edges``" msgstr "``in_edges``" @@ -11703,7 +12098,7 @@ msgstr "" "*primer punto final*." msgid "When missing, ``out_edges`` must exist." -msgstr "" +msgstr "Si falta, ``out_edges`` debe existir." msgid "``out_edges``" msgstr "``out_edges``" @@ -11716,19 +12111,19 @@ msgstr "" "*segundo punto final*." msgid "When missing, ``in_edges`` must exist." -msgstr "" +msgstr "Si falta, ``in_edges`` debe existir." msgid "Vertex identifier" msgstr "Identificador de vértice" msgid "``degree``" -msgstr "" +msgstr "``degree``" msgid "Number of edges that are incident to the vertex ``id``" -msgstr "" +msgstr "Número de aristas incidentes al vértice ``id``" msgid "Degree of a sub graph" -msgstr "" +msgstr "Grado de un subgrafo" msgid "Dry run execution" msgstr "Ejecución de prueba" @@ -11741,20 +12136,24 @@ msgstr "" "vértices, utilizar ``dryrun := true``." msgid "" -"The results can be used as base code to make a refinement based on the back " -"end development needs." +"The results can be used as base code to make a refinement based on the " +"backend development needs." msgstr "" "Los resultados se pueden usar como código base para realizar un refinamiento " "basado en las necesidades de desarrollo de back-end." msgid "Degree from an existing table" -msgstr "" +msgstr "Grado a partir de una tabla existente" msgid "" "If you have a vertices table already built using ``pgr_extractVertices`` and " "want the degree of the whole graph rather than a subset, you can forgo using " "pgr_degree and work with the ``in_edges`` and ``out_edges`` columns directly." msgstr "" +"Si se tiene una tabla de vértices ya construida usando " +"``pgr_extractVertices`` y se quiere el grado de todo el grafo en lugar de un " +"subconjunto, se puede trabajar con las columnas ``in_edges`` y ``out_edges`` " +"directamente." msgid ":doc:`pgr_extractVertices`" msgstr ":doc:`pgr_extractVertices`" @@ -11873,8 +12272,9 @@ msgstr "" msgid "``pgr_dijkstra``" msgstr "``pgr_dijkstra``" -msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." -msgstr "``pgr_dijkstra`` — Ruta(s) más corta(s) usando el algoritmo Dijkstra." +msgid "``pgr_dijkstra`` — Shortest path using Dijkstra algorithm." +msgstr "" +"``pgr_dijkstra`` - Camino más corto utilizando el algoritmo de Dijkstra." msgid "Version 3.5.0" msgstr "Versión 3.5.0" @@ -11934,11 +12334,6 @@ msgid "pgr_dijkstra(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" msgstr "" "pgr_dijkstra(`SQL de aristas`_, **salidas**, **destino**, [``directed``])" -msgid "" -"pgr_dijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" -msgstr "" -"pgr_dijkstra(`SQL de aristas`_, **salidas**, **destinos**, [``directed``])" - msgid "pgr_dijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" "pgr_dijkstra(`SQL de aristas`_, `SQL de combinaciones`_, [``directed``])" @@ -12145,21 +12540,21 @@ msgid "``pgr_dijkstraCost``" msgstr "``pgr_dijkstraCost``" msgid "" -"``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra " +"``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra " "algorithm." msgstr "" -"``pgr_dijkstraCost`` - Costo total de los caminos más cortos usando el " +"``pgr_dijkstraCost`` - Coste total del camino más corto utilizando el " "algoritmo de Dijkstra." msgid "``pgr_dijkstraCost`` (`Combinations`_)" msgstr "``pgr_dijkstraCost`` (`Combinaciones`_)" msgid "" -"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest " -"path(s) using Dijkstra Algorithm." +"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path " +"using Dijkstra Algorithm." msgstr "" -"La función ``pgr_dijkstraCost`` function sumarizes el costo de los caminos " -"más cortos usando el algoritmo de Dijkstra." +"La función ``pgr_dijkstraCost`` suma el coste del camino más corto " +"utilizando el Algoritmo de Dijkstra." msgid "" "pgr_dijkstraCost(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -12293,10 +12688,10 @@ msgstr "" "B**])" msgid "**options A:** ``[directed, cap]``" -msgstr "" +msgstr "**opciones A:** ``[directed, cap]``" msgid "**options B:** ``[directed, cap, global]``" -msgstr "" +msgstr "**opciones B:** ``[directed, cap, global]``" msgid "" "pgr_dijkstraNear(`Edges SQL`_, **start vid**, **end vids**, [**options**])" @@ -12317,8 +12712,8 @@ msgstr "Usando un grafo **dirigido** para el ruteo de automóviles." msgid "" "The subway stations are on the following vertices :math:`\\{1, 10, 11\\}`" msgstr "" -"Las estaciones de metro se encuentran en los siguientes vértices :math:`" -"\\{1, 10, 11\\}`" +"Las estaciones de metro se encuentran en los siguientes vértices :math:" +"`\\{1, 10, 11\\}`" msgid "The defaults used:" msgstr "Los valores predeterminados utilizados:" @@ -12346,12 +12741,6 @@ msgstr "" "Saliendo en coche desde una estación de metro encontrar las **dos** " "estaciones más cercanas al vértice :math:`2`" -msgid "" -"The subway stations are on the following vertices :math:`\\{ 1, 10, 11\\}`" -msgstr "" -"Las estaciones de metro se encuentran en los siguientes vértices :math:`" -"\\{1, 10, 11\\}`" - msgid "On line `4`: using the positional parameter: `directed` set to ``true``" msgstr "" "En la línea `4`: utilizando el parámetro posicional: `directed` configurado " @@ -12616,13 +13005,16 @@ msgid "``pgr_dijkstraVia`` - Proposed" msgstr "``pgr_dijkstraVia`` - Propuesto" msgid "``pgr_dijkstraVia`` — Route that goes through a list of vertices." -msgstr "" +msgstr "``pgr_dijkstraVia`` - Ruta que recorre una lista de vértices." msgid "" "Given a list of vertices and a graph, this function is equivalent to finding " "the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :" "math:`i < size\\_of(via\\;vertices)`." msgstr "" +"Dada una lista de vértices y un grafo, esta función equivale a encontrar el " +"camino más corto entre :math:`vértice_i` y :math:`vértice_{i+1}` para todo :" +"math:`i < tamaño\\_de(vía\\;vértices)`." msgid "Route" msgstr "Ruta" @@ -12631,13 +13023,13 @@ msgid "is a sequence of paths." msgstr "es una secuencia de trayectorias." msgid "Path" -msgstr "" +msgstr "Ruta" msgid "is a section of the route." -msgstr "" +msgstr "es una sección de la ruta." msgid "One Via" -msgstr "" +msgstr "Una Vía" msgid "pgr_dijkstraVia(`Edges SQL`_, **via vertices**, [**options**])" msgstr "pgr_dijkstraVia(`SQL de aristas`_, **vértices**, [**opciones**])" @@ -12645,13 +13037,15 @@ msgstr "pgr_dijkstraVia(`SQL de aristas`_, **vértices**, [**opciones**])" msgid "**options:** ``[directed, strict, U_turn_on_edge]``" msgstr "**opcionales:** ``[directed, strict, U_turn_on_edge]``" -msgid "RETURNS SET OF |via-result|" -msgstr "REGRESA CONJUNTO DE |via-result|" +msgid "Returns set of |via-result|" +msgstr "Regresa el conjunto de |via-result|" msgid "" "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that order " -"on an **directed** graph." +"on an directed graph." msgstr "" +"Encontrar la ruta que visita los vértices :math:`{5, 1, 8\\}` en ese orden " +"en un grafo dirigido." msgid "Via optional parameters" msgstr "Parámetros opcionales Vía" @@ -12687,7 +13081,7 @@ msgstr "" "7, 1, 8, 15\\}` en ese orden, en un grafo **dirigido**." msgid "The main query" -msgstr "" +msgstr "La consulta principal" msgid "Aggregate cost of the third path." msgstr "Costo agregado de la tercera ruta." @@ -12702,13 +13096,13 @@ msgid "The aggregate costs of the route when the visited vertices are reached." msgstr "Costo agregado de la ruta al llegar a los vértices visitados." msgid "Status of \"passes in front\" or \"visits\" of the nodes." -msgstr "" +msgstr "Estado de \"pasa enfrente\" o \"visita\" los nodos." msgid ":doc:`via-category`." -msgstr "" +msgstr ":doc:`via-category`." msgid ":doc:`dijkstra-family`." -msgstr "" +msgstr ":doc:`dijkstra-family`." msgid "``pgr_drivingDistance``" msgstr "``pgr_drivingDistance``" @@ -12719,17 +13113,15 @@ msgstr "" "``pgr_drivingDistance`` - Devuelve la distancia de manejo desde un nodo de " "inicio." -msgid "Standarizing output columns to |result-bfs|" -msgstr "" - msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "Agregado las columnas de resultados``depth`` y ``start_vid``." msgid "Result column name change: ``from_v`` to ``start_vid``." msgstr "" +"Cambio de nombre en la columna de resultados: ``from_v`` a ``start_vid``." -msgid "Added ``depth`` result column." -msgstr "" +msgid "Added ``depth`` and ``pred`` result columns." +msgstr "Agregado las columnas de resultados``depth`` y ``pred``." msgid "Signature change pgr_drivingDistance(single vertex)" msgstr "Cambio de firma pgr_drivingDistance(vértice único)" @@ -12743,15 +13135,14 @@ msgstr "Oficial:: pgr_drivingDistance(vértice único)" msgid "" "Using the Dijkstra algorithm, extracts all the nodes that have costs less " "than or equal to the value ``distance``. The edges extracted will conform to " -"the corresponding spanning tree." +"the corresponding spaning tree." msgstr "" "Usando el algoritmo Dijkstra, se extraen todos los nodos que tienen costes " "menores o iguales al valor ``distance``. Los bordes extraídos se ajustarán " "al árbol de expansión correspondiente." msgid "" -"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, " -"[``directed``])" +"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, [``directed``])" msgstr "" "pgr_drivingDistance(`SQL de aristas`_, **Raíz**, **distancia**, " "[``directed``])" @@ -12855,12 +13246,12 @@ msgstr "" msgid "" "the chromatic number :math:`x'(G)` (minimum number of colors needed for " -"proper edge coloring of graph) is equal to the degree :math:`\\Delta + 1` " -"of the graph, (:math:`x'(G) = \\Delta`)" +"proper edge coloring of graph) is equal to the degree :math:`\\Delta + 1` of " +"the graph, (:math:`x'(G) = \\Delta`)" msgstr "" -"El número cromático :math:`x'(G)` (mínima cantidad de colores necesitados " -"para colorear apropiadamentnte las aristas de un grafo) es igual al grado :" -"math:`\\Delta + 1` del grafo, (:math:`x'(G) = \\Delta`)" +"el número cromático :math:`x'(G)` (número mínimo de colores necesarios para " +"colorear correctamente las aristas del grafo) es igual al grado :math:" +"`\\Delta + 1` del grafo, (:math:`x'(G) = \\Delta`)" msgid "The algorithm tries to assign the least possible color to every edge." msgstr "El algoritmo trata de asignar el menor color a cada arista." @@ -12889,8 +13280,8 @@ msgstr ":math:`|V|` es la cantidad de vertices del grafo." msgid "pgr_edgeColoring(`Edges SQL`_)" msgstr "pgr_edgeColoring(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-edge-color|" -msgstr "Regresa conjunto de |result-edge-color|" +msgid "Returns set of |result-edge-color|" +msgstr "Regresa el conjunto de |result-edge-color|" msgid "Graph coloring of pgRouting :doc:`sampledata`" msgstr "Coloración de grafos de pgRouting :doc:`sampledata`" @@ -12973,20 +13364,20 @@ msgstr "" "pgr_edgeDisjointPaths(`SQL de aristas`_, `SQL de combinaciones`_, " "[``directed``])" -msgid "RETURNS SET OF |result-disjoint|" -msgstr "" +msgid "Returns set of |result-disjoint|" +msgstr "Regresa el conjunto de |result-disjoint|" -msgid "RETURNS SET OF |result-disjoint-1-1|" -msgstr "" +msgid "Returns set of |result-disjoint-1-1|" +msgstr "Regresa el conjunto de |result-disjoint-1-1|" -msgid "RETURNS SET OF |result-disjoint-1-m|" -msgstr "" +msgid "Returns set of |result-disjoint-1-m|" +msgstr "Regresa el conjunto de |result-disjoint-1-m|" -msgid "RETURNS SET OF |result-disjoint-m-1|" -msgstr "" +msgid "Returns set of |result-disjoint-m-1|" +msgstr "Regresa el conjunto de |result-disjoint-m-1|" -msgid "RETURNS SET OF |result-disjoint-m-m|" -msgstr "" +msgid "Returns set of |result-disjoint-m-m|" +msgstr "Regresa el conjunto de |result-disjoint-m-m|" msgid "" "Using a combinations table, equivalent to calculating result from vertices :" @@ -13046,8 +13437,7 @@ msgid "``pgr_edwardMoore - Experimental``" msgstr "``pgr_edwardMoore`` - Experimental" msgid "" -"``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore " -"algorithm." +"``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore algorithm." msgstr "" "``pgr_edwardMoore`` — Devuelve la ruta más cortas usando el algoritmo Edward-" "Moore." @@ -13059,13 +13449,13 @@ msgid "``pgr_edwardMoore`` (`One to One`_)" msgstr "``pgr_edwardMoore`` (`Uno a Uno`_)" msgid "``pgr_edwardMoore`` (`One to Many`_)" -msgstr "" +msgstr "``pgr_edwardMoore`` (`Uno a Muchos`_)" msgid "``pgr_edwardMoore`` (`Many to One`_)" -msgstr "" +msgstr "``pgr_edwardMoore`` (`Muchos a Uno`_)" msgid "``pgr_edwardMoore`` (`Many to Many`_)" -msgstr "" +msgstr "``pgr_edwardMoore`` (`Muchos a Muchos`_)" msgid "" "Edward Moore’s Algorithm is an improvement of the Bellman-Ford Algorithm. It " @@ -13111,20 +13501,14 @@ msgstr "" "Para fines de optimización, se omite cualquier valor duplicado en " "`start_vids` o `end_vids`." -msgid "`start vid` ascending" -msgstr "`start vid` ascendente" - -msgid "`end vid` ascending" -msgstr "`end_vid` ascendente" - msgid "Running time:" -msgstr "" +msgstr "Tiempo de ejecución:" msgid "Worst case: :math:`O(| V | * | E |)`" -msgstr "" +msgstr "Peor caso: :math:`O(| V | * | E |)`" msgid "Average case: :math:`O( | E | )`" -msgstr "" +msgstr "Caso promedio: :math:`O( | E | )`" msgid "" "pgr_edwardMoore(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -13263,9 +13647,6 @@ msgstr "``NULL`` Cuando no se proporciona geometría" msgid "Geometry of the point" msgstr "Geometría del punto" -msgid "Dryrun execution" -msgstr "Ejecución de prueba" - msgid "" "To get the query generated used to get the vertex information, use ``dryrun :" "= true``." @@ -13273,44 +13654,45 @@ msgstr "" "Para obtener la consulta generada que se usa para obtener la información de " "vértices, utilice ``dryrun := true``." -msgid "" -"The results can be used as base code to make a refinement based on the " -"backend development needs." -msgstr "" -"Los resultados se pueden usar como código base para realizar un refinamiento " -"basado en las necesidades de desarrollo de back-end." - msgid "``pgr_findCloseEdges``" -msgstr "" +msgstr "``pgr_findCloseEdges``" msgid "``pgr_findCloseEdges`` - Finds the close edges to a point geometry." msgstr "" +"``pgr_findCloseEdges`` - Encuentra las aristas cercanas a una geometría " +"puntual." msgid "New **proposed** signatures:" -msgstr "" +msgstr "Nuevas firmas **propuestas**:" msgid "``pgr_findCloseEdges`` (`One point`_)" -msgstr "" +msgstr "``pgr_findCloseEdges`` (`Un punto`_)" msgid "``pgr_findCloseEdges`` (`Many points`_)" -msgstr "" +msgstr "``pgr_findCloseEdges`` (`Muchos puntos`_)" msgid "" "``pgr_findCloseEdges`` - An utility function that finds the closest edge to " "a point geometry." msgstr "" +"``pgr_findCloseEdges`` - Función de utilidad que encuentra la arista más " +"cercana a una geometría de puntos." msgid "" "The geometries must be in the same coordinate system (have the same SRID)." msgstr "" +"Las geometrías deben estar en el mismo sistema de coordenadas (tener el " +"mismo SRID)." msgid "" "The code to do the calculations can be obtained for further specific " "adjustments needed by the application." msgstr "" +"El código para realizar los cálculos puede obtenerse para realizar los " +"ajustes específicos que necesite la aplicación." msgid "``EMTPY SET`` is returned on dryrun executions" -msgstr "" +msgstr "``EMTPY SET`` se devuelve en ejecuciones en seco" msgid "" "pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**])" @@ -13325,386 +13707,446 @@ msgstr "" msgid "**options:** ``[cap, partial, dryrun]``" msgstr "**opcionales:** ``[cap, partial, dryrun]``" -msgid "RETURNS SET OF |result-find|" -msgstr "REGRESA CONJUNTO DE |result-find|" +msgid "Returns set of |result-find|" +msgstr "Regresa conjunto de |result-find|" msgid "One point" -msgstr "" +msgstr "Un punto" msgid "Default: ``cap => 1``" -msgstr "" +msgstr "Por defecto: ``cap => 1``" msgid "Maximum one row answer." -msgstr "" +msgstr "Respuesta de una fila como máximo." msgid "Default: ``partial => true``" -msgstr "" +msgstr "Por defecto: ``partial => true``" msgid "With less calculations as possible." -msgstr "" +msgstr "Con menos cálculos posibles." msgid "Default: ``dryrun => false``" -msgstr "" +msgstr "Por defecto: ``dryrun => false``" msgid "Process query" -msgstr "" +msgstr "Consulta del proceso" msgid "Returns" -msgstr "" +msgstr "Devuelve" msgid "values on ``edge_id``, ``fraction``, ``side`` columns." -msgstr "" +msgstr "valores en las columnas ``edge_id``, ``fraction``, ``side``." msgid "``NULL`` on ``distance``, ``geom``, ``edge`` columns." -msgstr "" +msgstr "``NULL`` en las columnas ``distance``, ``geom``, ``edge``." msgid "Many points" -msgstr "" +msgstr "Muchos puntos" msgid "" "Find at most :math:`2` edges close to all vertices on the points of interest " "table." msgstr "" +"Encuentra como máximo :math:`2` aristas cercanas a todos los vértices de la " +"tabla de puntos de interés." msgid "One answer per point, as small as possible." -msgstr "" +msgstr "Una respuesta por punto, lo más pequeña posible." msgid "" "Columns ``edge_id``, ``fraction``, ``side`` and ``geom`` are returned with " "values." msgstr "" +"Las columnas ``edge_id``, ``fraction``, ``side`` y ``geom`` se devuelven con " +"valores." msgid "" "``geom`` contains the original point geometry to assist on deterpartialing " "to which point geometry the row belongs to." msgstr "" +"``geom`` contiene la geometría de puntos original para ayudar a determinar a " +"qué geometría de puntos pertenece la fila." msgid "**point**" msgstr "**punto**" msgid "The point geometry" -msgstr "" +msgstr "La geometría del punto" msgid "**points**" msgstr "**puntos**" msgid "``POINT[]``" -msgstr "" +msgstr "``POINT``" msgid "An array of point geometries" -msgstr "" +msgstr "Una matriz de geometrías de puntos" msgid "**tolerance**" msgstr "**tolerancia**" msgid "Max distance between geometries" -msgstr "" +msgstr "Distancia máxima entre geometrías" msgid "Limit output rows" -msgstr "" +msgstr "Limitar las filas de salida" msgid "``partial``" -msgstr "" +msgstr "``parcial``" msgid "" "When ``true`` only columns needed for :doc:`withPoints-category` are " "calculated." msgstr "" +"Cuando ``true`` sólo se calculan las columnas necesarias para :doc:" +"`withPoints-category`." msgid "When ``false`` all columns are calculated" -msgstr "" +msgstr "Cuando ``false`` se calculan todas las columnas" msgid "When ``false`` calculations are performed." -msgstr "" +msgstr "Cuando ``false`` se realizan los cálculos." msgid "" "When ``true`` calculations are not performed and the query to do the " "calculations is exposed in a PostgreSQL ``NOTICE``." msgstr "" +"Cuando ``true`` los cálculos no se realizan y la consulta para hacer los " +"cálculos se expone en un ``NOTICE`` de PostgreSQL." msgid "The ``LINESTRING`` geometry of the edge." -msgstr "" - -msgid "Returns set of |result-find|" -msgstr "Regresa conjunto de |result-find|" +msgstr "La geometría ``LINESTRING`` de la arista." msgid "When :math:`cap = 1`, it is the closest edge." -msgstr "" +msgstr "Cuando :math:`cap = 1`, es la arista más cercana." msgid "" "Value in <0,1> that indicates the relative postition from the first end-" "point of the edge." msgstr "" +"El valor entre <0,1> indica la posición relativa desde el primer punto de la " +"arista." msgid "Value in ``[r, l]`` indicating if the point is:" -msgstr "" +msgstr "Valor en ``[r, l]`` que indica si el punto es:" msgid "In the right ``r``." -msgstr "" +msgstr "A la derecha ``r``." msgid "In the left ``l``." -msgstr "" +msgstr "A la izquierda ``l``." msgid "When the point is on the line it is considered to be on the right." -msgstr "" +msgstr "Cuando el punto está en la línea se considera que está a la derecha." msgid "``distance``" -msgstr "" +msgstr "``distancia``" msgid "Distance from point to edge." -msgstr "" +msgstr "Distancia del punto a la arista." msgid "``NULL`` when ``cap = 1`` on the `One point`_ signature" -msgstr "" +msgstr "``NULL`` cuando ``cap = 1`` en la firma de `Un punto`_" msgid "``POINT`` geometry" -msgstr "" +msgstr "geometría ``POINT``" msgid "" "`One Point`_: Contains the point on the edge that is ``fraction`` away from " "the starting point of the edge." msgstr "" +"`Un Punto`_: Contiene el punto de la arista que está a ``fraction`` del " +"punto inicial de la arista." msgid "`Many Points`_: Contains the corresponding **original point**" -msgstr "" +msgstr "`Muchos Puntos`_: Contiene el **punto original** correspondiente" msgid "" "``LINESTRING`` geometry from the **original point** to the closest point of " "the edge with identifier ``edge_id``" msgstr "" +"Geometría ``LINESTRING`` desde el **punto original** hasta el punto más " +"cercano de la arista con identificador ``edge_id``" msgid "One point results" -msgstr "" +msgstr "Resultados de un punto" msgid "The green nodes is the **original point**" -msgstr "" +msgstr "Los nodos verdes son el **punto original**" msgid "" "The geometry ``geom`` is a point on the :math:`sp \\rightarrow ep` edge." msgstr "" +"La geometría ``geom`` es un punto en la arista :math:`sp \\rightarrow ep`." msgid "" "The geometry ``edge`` is a line that connects the **original point** with " "``geom``" msgstr "" +"La geometría ``edge`` es una línea que conecta el **punto original** con " +"``geom``" msgid "Many point results" -msgstr "" +msgstr "Resultados de muchos puntos" msgid "The green nodes are the **original points**" -msgstr "" +msgstr "Los nodos verdes son los **puntos originales**" msgid "" -"The geometry ``geom``, marked as **g1** and **g2** are the **original " +"The geometry ``geom``, marked as **g1** and **g2** are the **original " "points**" msgstr "" +"La geometría ``geom``, marcada como **g1** y **g2** son los **puntos " +"originales**" msgid "" "The geometry ``edge``, marked as **edge1** and **edge2** is a line that " "connects the **original point** with the closest point on the :math:`sp " "\\rightarrow ep` edge." msgstr "" +"La geometría ``edge``, marcada como **edge1** y **edge2** es una línea que " +"conecta el **punto original** con el punto más cercano de la arista :math:" +"`sp \\rightarrow ep`." msgid "One point examples" -msgstr "" +msgstr "Ejemplos de un punto" msgid "At most two answers" -msgstr "" +msgstr "Como máximo dos respuestas" msgid "``cap => 2``" -msgstr "" +msgstr "``cap => 2``" msgid "Maximum two row answer." -msgstr "" +msgstr "Respuesta de dos filas como máximo." msgid "Understanding the result" -msgstr "" +msgstr "Comprendiendo el resultado" msgid "``NULL`` on ``geom``, ``edge``" -msgstr "" +msgstr "``NULL`` en ``geom``, ``edge``" msgid "``edge_id`` identifier of the edge close to the **original point**" -msgstr "" +msgstr "``edge_id`` identificador de la arista cercana al **punto original**" msgid "" "Two edges are withing :math:`0.5` distance units from the **original " "point**: :math:`{5, 8}`" msgstr "" +"Dos aristas están a menos de :math:`0.5` unidades de distancia del **punto " +"original**: :math:`{5, 8}`" msgid "For edge :math:`5`:" -msgstr "" +msgstr "Para la arista :math:`5`:" msgid "" "``fraction``: The closest point from the **original point** is at the :math:" "`0.8` fraction of the edge :math:`5`." msgstr "" +"``fraction``: El punto más cercano desde el **punto original** está en la " +"fracción :math:`0.8` del borde :math:`5`." msgid "" "``side``: The **original point** is located to the left side of edge :math:" "`5`." msgstr "" +"``side``: El **punto original** está situado a la izquierda de la arista :" +"math:`5`." msgid "" "``distance``: The **original point** is located :math:`0.1` length units " "from edge :math:`5`." msgstr "" +"``distance``: El **punto original** está situado a :math:`0.1` unidades de " +"longitud de la arista :math:`5`." msgid "For edge :math:`8`:" -msgstr "" +msgstr "Para la arista :math:`8`:" msgid "" "``fraction``: The closest point from the **original point** is at the :math:" "`0.89..` fraction of the edge :math:`8`." msgstr "" +"``fraction``: El punto más cercano desde el **punto original** está en la " +"fracción :math:`0.89..` del borde :math:`8`." msgid "" "``side``: The **original point** is located to the right side of edge :math:" "`8`." msgstr "" +"``side``: El **punto original** está situado a la derecha de la arista :math:" +"`8`." msgid "" "``distance``: The **original point** is located :math:`0.19..` length units " "from edge :math:`8`." msgstr "" +"``distance``: El **punto original** se encuentra a :math:`0.19..` unidades " +"de longitud de la arista :math:`8`." msgid "One answer, all columns" -msgstr "" +msgstr "Una respuesta, todas las columnas" msgid "``partial => false``" -msgstr "" +msgstr "``partial => false``" msgid "Calculate all columns" -msgstr "" +msgstr "Calcular todas las columnas" msgid "" "``edge_id`` identifier of the edge **closest** to the **original point**" msgstr "" +"``edge_id`` identificador de la arista **más cercana** al **punto original**" msgid "" "From all edges within :math:`0.5` distance units from the **original " "point**: :math:`{5}` is the closest one." msgstr "" +"De todos los bordes dentro de :math:`0.5` unidades de distancia desde el " +"**punto original**: :math:`{5}` es el más cercano." msgid "" "``geom``: Contains the geometry of the closest point on edge :math:`5` from " "the **original point**." msgstr "" +"``geom``: Contiene la geometría del punto más cercano de la arista :math:`5` " +"desde el **punto original**." msgid "" "``edge``: Contains the ``LINESTRING`` geometry of the **original point** to " "the closest point on on edge :math:`5` ``geom``" msgstr "" +"``edge``: Contiene la geometría ``LINESTRING`` del **punto original** al " +"punto más cercano de la arista :math:`5` ``geom``" msgid "At most two answers with all columns" -msgstr "" +msgstr "Como máximo dos respuestas con todas las columnas" msgid "Understanding the result:" -msgstr "" +msgstr "Comprender el resultado:" msgid "" "``geom``: Contains the geometry of the closest point on edge :math:`8` from " "the **original point**." msgstr "" +"``geom``: Contiene la geometría del punto más cercano de la arista :math:`8` " +"desde el **punto original**." msgid "" "``edge``: Contains the ``LINESTRING`` geometry of the **original point** to " "the closest point on on edge :math:`8` ``geom``" msgstr "" +"``borde``: Contiene la geometría ``LINESTRING`` del **punto original** al " +"punto más cercano de la arista :math:`8` ``geom``" msgid "One point dry run execution" -msgstr "" +msgstr "Ejecución en seco de un punto" msgid "Returns ``EMPTY SET``." -msgstr "" +msgstr "Devuelve ``CONJUNTO VACÍO``." msgid "``partial => true``" -msgstr "" +msgstr "``partial => true``" msgid "Is ignored" -msgstr "" +msgstr "Se ignora" msgid "" "Because it is a **dry run** excecution, the code for all calculations are " "shown on the PostgreSQL ``NOTICE``." msgstr "" +"Dado que se trata de una ejecución **dry run**, el código de todos los " +"cálculos se muestra en el ``NOTICE`` de PostgreSQL." msgid "``dryrun => true``" -msgstr "" +msgstr "``dryrun => true``" msgid "Do not process query" -msgstr "" +msgstr "No procesar la consulta" msgid "" "Generate a PostgreSQL ``NOTICE`` with the code used to calculate all columns" msgstr "" +"Generar un ``NOTICE`` de PostgreSQL con el código utilizado para calcular " +"todas las columnas" msgid "``cap`` and **original point** are used in the code" -msgstr "" +msgstr "``cap`` y **punto original** se utilizan en el código" msgid "Many points examples" -msgstr "" +msgstr "Ejemplos de muchos puntos" msgid "At most two answers per point" -msgstr "" +msgstr "Un máximo de dos respuestas por punto" msgid "``NULL`` on ``edge``" -msgstr "" +msgstr "``NULL`` en ``edge``" msgid "" "``edge_id`` identifier of the edge close to a **original point** (``geom``)" msgstr "" +"``edge_id`` identificador de la arista cercana a un **punto original** " +"(``geom``)" msgid "" "Two edges at most withing :math:`0.5` distance units from each of the " "**original points**:" msgstr "" +"Dos aristas a un máximo de :math:`0.5` unidades de distancia de cada uno de " +"los **puntos originales**:" msgid "For ``POINT(1.8 0.4)`` and ``POINT(0.3 1.8)`` only one edge was found." msgstr "" +"Para ``POINT(1.8 0.4)`` y ``POINT(0.3 1.8)`` sólo se encontró una arista." msgid "For the rest of the points two edges were found." -msgstr "" +msgstr "Para el resto de los puntos se encontraron dos aristas." msgid "For point ``POINT(2.9 1.8)``" -msgstr "" +msgstr "Para el punto ``POINT(2.9 1.8)``" msgid "" "Edge :math:`5` is before :math:`8` therefore edge :math:`5` has the shortest " "distance to ``POINT(2.9 1.8)``." msgstr "" +"La arista :math:`5` está antes que la arista :math:`8` por lo tanto la " +"arista :math:`5` tiene la distancia más corta a ``POINT(2.9 1.8)``." msgid "One answer per point, all columns" -msgstr "" +msgstr "Una respuesta por punto, todas las columnas" msgid "For the **original point** ``POINT(2.9 1.8)``" -msgstr "" +msgstr "Para el **punto original** ``POINT(2.9 1.8)``" msgid "Edge :math:`5` is the closest edge to the **original point**" -msgstr "" +msgstr "La arista :math:`5` es la más cercana al **punto original**" msgid "" "``geom``: Contains the geometry of the **original point** ``POINT(2.9 1.8)``" msgstr "" +"``geom``: Contiene la geometría del **punto original** ``POINT(2.9 1.8)``" msgid "" "``edge``: Contains the ``LINESTRING`` geometry of the **original point** " "(``geom``) to the closest point on on edge." msgstr "" +"``edge``: Contiene la geometría ``LINESTRING`` del **punto original** " +"(``geom``) al punto más cercano en el borde." msgid "Many points dry run execution" -msgstr "" +msgstr "Ejecución en seco de muchos puntos" msgid "Find at most two routes to a given point" -msgstr "" +msgstr "Encontrar como máximo dos rutas a un punto dado" msgid "Using :doc:`pgr_withPoints`" -msgstr "" +msgstr "Usando :doc:`pgr_withPoints`" msgid "A point of interest table" -msgstr "" +msgstr "Una tabla de puntos de interés" msgid "Handling points outside the graph." -msgstr "" +msgstr "Manejo de puntos fuera del gráfico." msgid "Points of interest" msgstr "Puntos de interés" @@ -13714,59 +14156,51 @@ msgid "" "that is not a vertex in the graph. Those locations, in pgRrouting are called " "points of interest." msgstr "" +"Algunas veces las aplicaciones trabajan \"sobre la marcha\" comenzando desde " +"una localización que no es un vértice en el grafo. Esas localizaciones, en " +"pgRrouting se llaman puntos de interés." msgid "" "The information needed in the points of interest is ``pid``, ``edge_id``, " "``side``, ``fraction``." msgstr "" +"La información necesaria en los puntos de interés es ``pid``, ``edge_id``, " +"``side``, ``fraction``." msgid "" "On this documentation there will be some 6 fixed points of interest and they " "will be stored on a table." msgstr "" +"En esta documentación habrá unos 6 puntos de interés fijos y se almacenarán " +"en una tabla." msgid "A unique identifier." -msgstr "" +msgstr "Un identificador único." msgid "" "Identifier of the edge nearest edge that allows an arrival to the point." msgstr "" +"Identificador de la arista más cercana que permite una llegada al punto." msgid "Is it on the left, right or both sides of the segment ``edge_id``" msgstr "" +"Está a la izquierda, a la derecha o a ambos lados del segmento ``edge_id``" msgid "Where in the segment is the point located." -msgstr "" +msgstr "En qué parte del segmento se encuentra el punto." msgid "The geometry of the points." -msgstr "" +msgstr "La geometría de los puntos." msgid "``newPoint``" -msgstr "" +msgstr "``newPoint``" msgid "The geometry of the points moved on top of the segment." -msgstr "" - -msgid "Points of interest geometry" -msgstr "Geometría de los puntos de interés" - -msgid "Inserting the data of the points of interest:" -msgstr "" +msgstr "La geometría de los puntos desplazados sobre el segmento." msgid "Points of interest fillup" msgstr "LLenado de puntos de interés" -msgid "" -"Using :doc:`pgr_findCloseEdges` Calculating for visual purposes the points " -"over the graph." -msgstr "" - -msgid "A special case to arrive from both sides of the edge." -msgstr "" - -msgid "Points of interest data" -msgstr "Datos de puntos de interés" - msgid "``pgr_floydWarshall``" msgstr "``pgr_floydWarshall``" @@ -13886,7 +14320,7 @@ msgid "``pgr_hawickCircuits - Experimental``" msgstr "``pgr_hawickCircuits - Experimental``" msgid "" -"``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits " +"``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits " "algorithm." msgstr "" "``pgr_hawickCircuits`` — Enumeración de los circuitos usando el algoritmo de " @@ -13903,6 +14337,12 @@ msgid "" "performance im-plementation. It is an extension of Johnson's Algorithm of " "finding all the elementary circuits of a directed graph." msgstr "" +"El algoritmo Hawick Circuit fue publicado en 2008 por Ken Hawick y Health A. " +"James. Este algoritmo resuelve el problema de detectar y enumerar circuitos " +"en grafos. Es capaz de enumerar circuitos en grafos con arcos dirigidos, " +"arcos múltiples y autoarcos con una implementación eficiente en memoria y de " +"alto rendimiento. Es una extensión del Algoritmo de Johnson para encontrar " +"todos los circuitos elementales de un grafo dirigido." msgid "" "There are 2 variations defined in the Boost Graph Library. Here, we have " @@ -13912,18 +14352,25 @@ msgid "" "you want to count the no. of circuits.Maybe in future, we will also " "implemenent this variation." msgstr "" +"Hay 2 variaciones definidas en la librería Boost Graph. Aquí hemos " +"implementado sólo la segunda, ya que es la más adecuada y práctica. En esta " +"variación obtenemos los circuitos después de filtrar los circuitos causados " +"por aristas paralelas. Los circuitos de aristas paralelas tienen más casos " +"de uso cuando se quiere contar el número de circuitos." msgid "The algorithm implementation works only for directed graph" msgstr "La implementación del algoritmo sirve solo para grafos dirigidos" msgid "It is a variation of Johnson's algorithm for circuit enumeration." msgstr "" +"Es una variación del algoritmo de Johnson para la enumeración de circuitos." msgid "The algorithm outputs the distinct circuits present in the graph." msgstr "" +"El algoritmo da como resultado los distintos circuitos presentes en el grafo." msgid "Time Complexity: :math:`O((V + E) (c + 1))`" -msgstr "" +msgstr "Complejidad temporal: :math:`O((V + E) (c + 1))`" msgid ":math:`|c|` is the number of circuts in the graph." msgstr ":math:`|c|` es la cantidad de vertices del grafo." @@ -13931,8 +14378,8 @@ msgstr ":math:`|c|` es la cantidad de vertices del grafo." msgid "pgr_hawickCircuits(`Edges SQL`_)" msgstr "pgr_hawickCircuits(`SQL de aristas`_)" -msgid "RETURNS SET OF |generic-result|" -msgstr "" +msgid "Returns set of |generic-result|" +msgstr "Regresa el conjunto de |generic-result|" msgid "Circuits present in the pgRouting :doc:`sampledata`" msgstr "Circuitos dentro de los :doc:`sampledata` de pgRouting" @@ -14005,7 +14452,7 @@ msgid "pgr_isPlanar(`Edges SQL`)" msgstr "pgr_isPlanar(`SQL de aristas`)" msgid "RETURNS ``BOOLEAN``" -msgstr "" +msgstr "DEVUELVE ``BOOLEAN``" msgid "Returns a boolean ``(pgr_isplanar)``" msgstr "Devuelve un valor boolean ``(pgr_isplanar)``" @@ -14089,15 +14536,12 @@ msgstr "EMPTY SET es regresado cuando no hay aristas en el grafo." msgid "pgr_kruskal(`Edges SQL`_)" msgstr "pgr_kruskal(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-mst|" -msgstr "" +msgid "Returns set of |result-mst|" +msgstr "Regresa el conjunto de |result-mst|" msgid "Minimum spanning forest" msgstr "Bosque de expansión mínimo" -msgid "``pgr_kruskalBFS``" -msgstr "``pgr_kruskalBFS``" - msgid "" "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "breadth First Search ordering." @@ -14137,9 +14581,6 @@ msgstr "" "El Árbol de Expansión Mínimo que comienza en los vértices :math:`\\{9, 6\\}` " "con ::math:`depth \\leq 3`" -msgid "``pgr_kruskalDD``" -msgstr "``pgr_kruskalDD``" - msgid "``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm." msgstr "" "``pgr_kruskalDD`` — Nodos de captación utilizando el algoritmo de Kruskal." @@ -14181,9 +14622,6 @@ msgstr "" "El árbol de expansión mínimo que comienza en los vértices :math:`\\{9, 6\\}` " "con :math:`distance \\leq 3.5`" -msgid "``pgr_kruskalDFS``" -msgstr "``pgr_kruskalDFS``" - msgid "" "``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "Depth First Search ordering." @@ -14248,8 +14686,8 @@ msgstr "Tiempo de ejecución: :math:`O((V+E)log(V+E))`" msgid "pgr_lengauerTarjanDominatorTree(`Edges SQL`_, **root vertex**)" msgstr "pgr_lengauerTarjanDominatorTree(`SQL de aristas`_, **raíz**)" -msgid "RETURNS SET OF |result-idom|" -msgstr "REGRESA CONJUNTO DE |result-idom|" +msgid "Returns set of |result-idom|" +msgstr "Regresa el conjunto de |result-idom|" msgid "The dominator tree with root vertex :math:`5`" msgstr "El árbol dominante con vértice raíz :math:`5`" @@ -14289,8 +14727,8 @@ msgstr "" "'Wikipedia: árbol de dominador' `__" -msgid "``pgr_lineGraph`` - Experimental" -msgstr "``pgr_lineGraph`` - Experimental" +msgid "pgr_lineGraph - Proposed" +msgstr "pgr_lineGraph - Propuesto" msgid "" "``pgr_lineGraph`` — Transforms the given graph into its corresponding edge-" @@ -14299,27 +14737,52 @@ msgstr "" "``pgr_lineGraph`` — Transforma un grafo dado en su grafo correspondiente " "basado en aristas." -msgid "Given a graph G, its line graph L(G) is a graph such that:" -msgstr "Dado un grafo G, su grafo de líneas L(G) es un grafo de tal forma que:" +msgid "" +"Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" +msgstr "" +"Dado un grafo :math:`G`, su grafo lineal :math:`L(G)` es un grafo tal que:" + +msgid "Each vertex of :math:`L(G)` represents an edge of :math:`G`." +msgstr "Cada vértice de :math:`L(G)` representa una arista de :math:`G`." + +msgid "" +"Two vertices of :math:`L(G)` are adjacent if and only if their corresponding " +"edges share a common endpoint in :math:`G`" +msgstr "" +"Dos vértices de :math:`L(G)` son adyacentes si y sólo si sus aristas " +"correspondientes comparten un punto final común en :math:`G`" + +msgid "" +"The ``cost`` and ``reverse_cost`` columns of the result represent existence " +"of the edge." +msgstr "" +"Las columnas ``cost`` y ``reverse_cost`` del resultado representan la " +"existencia de la arista." -msgid "Each vertex of L(G) represents an edge of G" -msgstr "Cada vértice de L(G) representa una arista de G" +msgid "When the graph is directed the result is directed." +msgstr "Cuando el grafo es dirigido el resultado es dirigido." msgid "" -"Two vertices of L(G) are adjacent if and only if their corresponding edges " -"share a common endpoint in G." +"To get the complete Line Graph use unique identifiers on the double way " +"edges (See `Additional Examples`_)." msgstr "" -"Dos vértices de L(G) son adyacentes si y sólo si sus aristas " -"correspondientes comparten un punto final común en G." +"Para obtener el Grafo lineal completo utilizar identificadores únicos en las " +"aristas de doble sentido (Ver `Ejemplos Adicionales`_)." + +msgid "When the graph is undirected the result is undirected." +msgstr "Cuando el grafo es no dirigido el resultado es no dirigido." + +msgid "The ``reverse_cost`` is always :math:`-1`." +msgstr "El ``reverse_cost`` es siempre :math:`-1`." msgid "pgr_lineGraph(`Edges SQL`_, [``directed``])" msgstr "pgr_lineGraph(`SQL de aristas`_, [``directed``])" -msgid "RETURNS SET OF |result-lineg|" -msgstr "" +msgid "Returns set of |result-lineg|" +msgstr "Regresa el conjunto de |result-lineg|" -msgid "For a **directed** graph" -msgstr "Para un grafo **dirigido**" +msgid "For an undirected graph with edges :math:'{2,4,5,8}'" +msgstr "Para un grafo no dirigido con aristas :math:'{2,4,5,8}'" msgid "Gives a local identifier for the edge" msgstr "Da un identificador local de la arista" @@ -14358,8 +14821,159 @@ msgstr "" "Cuando `negative`: la arista (``target``, ``source``) no existe, por lo " "tanto no es parte del grafo." -msgid "https://en.wikipedia.org/wiki/Line_graph" -msgstr "https://en.wikipedia.org/wiki/Line_graph" +msgid "Given the following directed graph" +msgstr "Dado el siguente grafo dirigido" + +msgid "" +":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2 " +"\\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " +"\\rightarrow 3\\})`" +msgstr "" +":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2 " +"\\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " +"\\rightarrow 3})`" + +msgid "Representation as directed with shared edge identifiers" +msgstr "Representación como dirigida con identificadores de arista compartidos" + +msgid "" +"For the simplicity, the design of the edges table on the database, has the " +"edge's identifiers are represented with 3 digits:" +msgstr "" + +msgid "hundreds" +msgstr "cientos" + +msgid "the source vertex" +msgstr "el vértice de origen" + +msgid "tens" +msgstr "decenas" + +msgid "always 0, acts as a separator" +msgstr "siempre 0, actúa como separador" + +msgid "units" +msgstr "unidades" + +msgid "the target vertex" +msgstr "el vértice de destino" + +msgid "In this image," +msgstr "En esta imagen," + +msgid "" +"Single or double head arrows represent one edge (row) on the edges table." +msgstr "" +"Las puntas de flechas simples o dobles representan una arista (fila) en la " +"tabla de aristas." + +msgid "The numbers in the yellow shadow are the edge identifiers." +msgstr "" +"Los números en la sombra amarilla son los identificadores de las aristas." + +msgid "" +"Two pair of edges share the same identifier when the ``reverse_cost`` column " +"is used." +msgstr "" +"Dos pares de aristas comparten el mismo identificador cuando se utiliza la " +"columna ``reverse_cost``." + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with one " +"edge row with :math:`id=203`." +msgstr "" +"Las aristas :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` se representan con " +"una fila de aristas con :math:`id=203`." + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with one " +"edge row with :math:`id=304`." +msgstr "" +"Las aristas :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` se representan con " +"una fila de aristas con :math:`id=304`." + +msgid "The graph can be created as follows:" +msgstr "El grafo puede crearse del siguiente modo:" + +msgid "Line Graph of a directed graph represented with shared edges" +msgstr "Grafo lineal de un grafo dirigido representado con aristas compartidas" + +msgid "The result is a directed graph." +msgstr "El resultado es un grafo dirigido." + +msgid "" +"For :math:`seq=4` from :math:`203 \\leftrightarrow 304` represent two edges" +msgstr "" +"Para :math:`seq=4` desde :math:`203 \\leftrightarrow 304` representa dos " +"arsitas" + +msgid "For all the other values of ``seq`` represent one edge." +msgstr "Todos los demás valores de ``seq`` representan una arista." + +msgid "" +"The ``cost`` and ``reverse_cost`` values represent the existence of the edge." +msgstr "" +"Los valores ``cost`` y ``reverse_cost`` representan la existencia de la " +"arista." + +msgid "When positive: the edge exists." +msgstr "Cuando es positivo: la arista existe." + +msgid "When negative: the edge does not exist." +msgstr "Cuando es negativo: la arista no existe." + +msgid "Representation as directed with unique edge identifiers" +msgstr "Representación dirigida con identificadores de arista únicos" + +msgid "Single head arrows represent one edge (row) on the edges table." +msgstr "" +"Las flechas de una cabeza representan una arista (fila) en la tabla de " +"aristas." + +msgid "There are no double head arrows" +msgstr "No hay flechas de doble punta" + +msgid "" +"Two pair of edges share the same ending nodes and the ``reverse_cost`` " +"column is not used." +msgstr "" +"Dos pares de aristas comparten los mismos nodos finales y no se utiliza la " +"columna ``reverse_cost``." + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with two " +"edges :math:`id=203` and :math:`id=302` respectively." +msgstr "" +"Las aristas :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` se representan con " +"dos aristas :math:`id=203` y :math:`id=302` respectivamente." + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with two " +"edges :math:`id=304` and :math:`id=403` respectively." +msgstr "" + +msgid "Line Graph of a directed graph represented with unique edges" +msgstr "Gráfico lineal de un grafo dirigido representado con aristas únicas" + +msgid "" +"For :math:`seq=7` from :math:`203 \\leftrightarrow 302` represent two edges." +msgstr "" +"Para :math:`seq=7` desde :math:`203 \\leftrightarrow 302` representan dos " +"aristas." + +msgid "" +"For :math:`seq=8` from :math:`304 \\leftrightarrow 403` represent two edges." +msgstr "" +"Para :math:`seq=8` desde :math:`304 \\leftrightarrow 403` representan dos " +"aristas." + +msgid "wikipedia: `Line Graph `__" +msgstr "wikipedia: `Grafo lineal `__" + +msgid "" +"mathworld: `Line Graph `__" +msgstr "" msgid "``pgr_lineGraphFull`` - Experimental" msgstr "``pgr_lineGraphFull`` - Experimental" @@ -14432,8 +15046,8 @@ msgstr "Tiempo de ejecución: TBD" msgid "pgr_lineGraphFull(`Edges SQL`_)" msgstr "pgr_lineGraphFull(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-linegf|" -msgstr "" +msgid "Returns set of |result-linegf|" +msgstr "Regresa el conjunto de |result-linegf|" msgid "Full line graph of subgraph of edges :math:`\\{4, 7, 8, 10\\}`" msgstr "" @@ -14638,6 +15252,9 @@ msgstr "" msgid "Routing from :math:`5` to :math:`1`" msgstr "" +msgid "https://en.wikipedia.org/wiki/Line_graph" +msgstr "https://en.wikipedia.org/wiki/Line_graph" + msgid "https://en.wikipedia.org/wiki/Complete_graph" msgstr "https://en.wikipedia.org/wiki/Complete_graph" @@ -14678,8 +15295,8 @@ msgstr "El algoritmo no considera la topología geométrica en los cálculos." msgid "pgr_makeConnected(`Edges SQL`_)" msgstr "pgr_makeConnected(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-component-make|" -msgstr "REGRESA CONJUNTO DE |result-component-make|" +msgid "Returns set of |result-component-make|" +msgstr "Regresa conjunto de |result-component-make|" msgid "" "Query done on :doc:`sampledata` network gives the list of edges that are " @@ -14688,9 +15305,6 @@ msgstr "" "La consulta realizada en la red de :doc:`sampledata` proporciona la lista de " "aristas que se necesitan en el grafo para conectarlo." -msgid "Returns set of |result-component-make|" -msgstr "Regresa conjunto de |result-component-make|" - msgid "https://www.boost.org/libs/graph/doc/make_connected.html" msgstr "https://www.boost.org/libs/graph/doc/make_connected.html" @@ -14771,9 +15385,6 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "Identificador de la arista en la consulta original." -msgid ":doc:`migration`" -msgstr "" - msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" msgstr "https://www.boost.org/libs/graph/doc/maximum_matching.html" @@ -14799,8 +15410,8 @@ msgstr "``pgr_maxFlow`` (`Combinaciones`_)" msgid "New **Proposed** function" msgstr "Nueva función **Propuesta**" -msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." -msgstr "Calcula el flujo máximo desde `source(s)` a `target(s)`." +msgid "Calculates the maximum flow from the sources to the targets." +msgstr "Calcula el flujo máximo de las fuentes a los objetivos." msgid "" "When the maximum flow is **0** then there is no flow and **0** is returned." @@ -14899,8 +15510,8 @@ msgstr "pgr_maxFlowMinCost(`SQL de aristas`_, **salidas** , **destinos**)" msgid "pgr_maxFlowMinCost(`Edges SQL`_, `Combinations SQL`_)" msgstr "pgr_maxFlowMinCost(`SQL de aristas`_, `SQL de combinaciones`_)" -msgid "RETURNS SET OF |result-flow-mincost|" -msgstr "" +msgid "Returns set of |result-flow-mincost|" +msgstr "Regresa el conjunto de |result-flow-mincost|" msgid "" "https://www.boost.org/libs/graph/doc/" @@ -15022,20 +15633,6 @@ msgstr "" "``float8`` tolerancia para puntos de coincidencia (en la unidad de " "proyección)" -msgid "" -"``text`` Primary key column name of the network table. Default value is " -"``id``." -msgstr "" -"``text``Nombre de la columna de la clave principal de la tabla de red. Valor " -"por defecto es ``id``'." - -msgid "" -"``text`` Geometry column name of the network table. Default value is " -"``the_geom``." -msgstr "" -"``text`` nombre de la columna de la geometría en la tabla de la red. El " -"valor por defecto es `the_geom``." - msgid "table_ending" msgstr "table_ending" @@ -15043,8 +15640,8 @@ msgid "``text`` Suffix for the new table's. Default value is ``noded``." msgstr "" "``text`` sufijo para la nueva tabla. El valor predeterminado es ``noded``." -msgid "The output table will have for ``edge_table_noded``" -msgstr "La tabla de salida tendrá para ``edge_table_noded``" +msgid "The output table will have for ``edge_table_noded``" +msgstr "La tabla de salida que tendrá para ``edge_table_noded``" msgid "``bigint`` Unique identifier for the table" msgstr "``bigint`` identificador único del vértice" @@ -15052,8 +15649,8 @@ msgstr "``bigint`` identificador único del vértice" msgid "old_id" msgstr "old_id" -msgid "``bigint`` Identifier of the edge in original table" -msgstr "``bigint`` identificador del borde en la tabla original" +msgid "``bigint`` Identifier of the edge in original table" +msgstr "``bigint`` Identificador de la arista en la tabla original" msgid "sub_id" msgstr "sub_id" @@ -15116,14 +15713,14 @@ msgstr "Imágenes" msgid "Before Image" msgstr "Imágen del Antes" -msgid "before image" -msgstr "Imágen del Antes" +msgid "Before image" +msgstr "Imágen del antes" msgid "After Image" msgstr "Imágen del Después" -msgid "after image" -msgstr "Imágen del Después" +msgid "After image" +msgstr "Imágen del después" msgid "Comparing the results" msgstr "Comparando los resultados" @@ -15155,8 +15752,8 @@ msgstr "Tiene solamente campos básicos para hacer un análisis de topología" msgid "Edges with 1 dead end: 1,6,24" msgstr "Los bordes con 1 callejón sin salida: 1,6,24" -msgid "Edges with 2 dead ends 17,18" -msgstr "Bordes con 2 callejones sin salida 17,18" +msgid "Edges with 2 dead ends: 17,18" +msgstr "Aristas con 2 callejones sin salida: 17,18" msgid "" "Edge 17's right node is a dead end because there is no other edge sharing " @@ -15171,8 +15768,8 @@ msgstr "Los bordes con 1 callejón sin salida: 1-1, 6-1,14-2, 18-1-17-1 18-2" msgid "Isolated segments" msgstr "Segmentos aislados" -msgid "two isolated segments: 17 and 18 both they have 2 dead ends" -msgstr "dos aislados segmentos: 17 y 18 ambos tienen 2 callejones sin salida" +msgid "two isolated segments: 17 and 18 both they have 2 dead ends" +msgstr "dos segmentos aislados: 17 y 18 ambos tienen 2 callejones sin salida" msgid "No Isolated segments" msgstr "Segmentos no aislados" @@ -15359,8 +15956,8 @@ msgstr "" msgid "**options:** ``[factor, max_cycles, initial_sol]``" msgstr "**opcionales:** ``[factor, max_cycles, initial_sol]``" -msgid "RETURNS SET OF |result-pickdrop|" -msgstr "REGRESA CONJUNTO DE |result-pickdrop|" +msgid "Returns set of |result-pickdrop|" +msgstr "Regresa el conjunto de |result-pickdrop|" msgid "Solve the following problem" msgstr "" @@ -15524,9 +16121,6 @@ msgstr "" "`Boost: algoritmo de Prim `__" -msgid "``pgr_primBFS``" -msgstr "``pgr_primBFS``" - msgid "" "``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth " "First Search ordering." @@ -15536,10 +16130,10 @@ msgstr "" msgid "" "Visits and extracts the nodes information in Breath First Search ordering of " -"the Minimum Spanning Tree created with Prims's algorithm." +"the Minimum Spanning Tree created using Prims's algorithm." msgstr "" -"Visita y extrae la información de los nodos en el orden de búsqueda de " -"Primera Búsqueda de Respiración del Árbol de Expansión Mínimo creado con el " +"Visita y extrae la información de los nodos en el ordenamiento de la primera " +"búsqueda de amplitud del árbol de expansión mínima creado mediante el " "algoritmo de Prim." msgid "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -15548,20 +16142,17 @@ msgstr "pgr_primBFS(`SQL de aristas`_, **Raíz**, [``max_depth``])" msgid "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "pgr_primBFS(`SQL de aristas`_, **Raíces**, [``max_depth``])" -msgid "``pgr_primDD``" -msgstr "``pgr_primDD``" - msgid "``pgr_primDD`` — Catchament nodes using Prim's algorithm." msgstr "``pgr_primDD`` — Nodos de captación mediante el algoritmo de Prim." msgid "" "Using Prim's algorithm, extracts the nodes that have aggregate costs less " -"than or equal to a **distance** from a **root** vertex (or vertices) within " -"the calculated minimum spanning tree." +"than or equal to a distance from a root vertex (or vertices) within the " +"calculated minimum spanning tree." msgstr "" -"Mediante el algoritmo Prim, se extraen los nodos que tienen costes agregados " -"menores o iguales que el valor de la **Distancia** desde un vértice (o " -"vértices) raíz dentro del árbol de expansión mínimo calculado." +"Mediante el algoritmo de Prim, extrae los nodos que tienen costes agregados " +"inferiores o iguales a una distancia desde un vértice raíz (o vértices) " +"dentro del árbol de expansión mínimo calculado." msgid "pgr_primDD(`Edges SQL`_, **root vid**, **distance**)" msgstr "pgr_primDD(`SQL de aristas`_, **raíz**, **distancia**)" @@ -15569,9 +16160,6 @@ msgstr "pgr_primDD(`SQL de aristas`_, **raíz**, **distancia**)" msgid "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" msgstr "pgr_primDD(`SQL de aristas`_, **raices**, **distancia**)" -msgid "``pgr_primDFS``" -msgstr "``pgr_primDFS``" - msgid "" "``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth First " "Search ordering." @@ -15772,8 +16360,8 @@ msgstr "Tiempo de ejecución: :math:`O(V*E + V^2*log V)`." msgid "pgr_stoerWagner(`Edges SQL`_)" msgstr "pgr_stoerWagner(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-mincut|" -msgstr "" +msgid "Returns set of |result-mincut|" +msgstr "Regresa el conjunto de |result-mincut|" msgid "min cut of the main subgraph" msgstr "corte mínimo de el subgrafo principal" @@ -15887,15 +16475,12 @@ msgstr "Los valores devueltos se ordenan en orden topológico:" msgid "pgr_topologicalSort(`Edges SQL`_)" msgstr "pgr_topologicalSort(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-toposort|" +msgid "Returns set of |result-toposort|" msgstr "" msgid "Topologically sorting the graph" msgstr "" -msgid "Returns set of |result-toposort|" -msgstr "" - msgid "Sequential value starting from :math:`1`" msgstr "Valor secuencial a partir de :math:`1`" @@ -15951,15 +16536,12 @@ msgstr "La función pgr_transitiveClosure tiene la siguiente firma:" msgid "pgr_transitiveClosure(`Edges SQL`_)" msgstr "pgr_transitiveClosure(`SQL de aristas`_)" -msgid "RETURNS SET OF |result-closure|" -msgstr "REGRESA CONJUNTO DE |result-closure|" +msgid "Returns set of |result-closure|" +msgstr "Regresa el conjunto de |result-closure|" msgid "Rechability of a subgraph" msgstr "" -msgid "``vid``" -msgstr "" - msgid "Identifier of the source of the edges" msgstr "Identificador del nodo inicial de las aristas" @@ -15982,8 +16564,8 @@ msgstr "" msgid "``pgr_trsp`` - routing vertices with restrictions." msgstr "``pgr_trsp`` - Ruteo con restricciones." -msgid "New proposed signatures:" -msgstr "" +msgid "New proposed signatures" +msgstr "Nuevas firmas propuestas" msgid "``pgr_trsp`` (`One to One`_)" msgstr "``pgr_trsp`` (`Uno a Uno`_)" @@ -16000,8 +16582,8 @@ msgstr "" msgid "``pgr_trsp`` (`Combinations`_)" msgstr "" -msgid "Deprecated signatures:" -msgstr "" +msgid "Deprecated signatures" +msgstr "Firmas obsoletas" msgid "``pgr_trsp(text,integer,integer,boolean,boolean,text)``" msgstr "``pgr_trsp(text,integer,integer,boolean,boolean,text)``" @@ -16016,8 +16598,8 @@ msgid "" "``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" msgstr "" -msgid "New prototypes:" -msgstr "Nuevos prototipos:" +msgid "New prototypes" +msgstr "Nuevos prototipos" msgid "``pgr_trspViaVertices``" msgstr "``pgr_trspViaVertices``" @@ -16082,8 +16664,8 @@ msgstr "" "pgr_trsp(`SQL de aristas`_, `SQL de restricciones`_, `SQL de " "combinaciones`_, [``directed``])" -msgid "From vertex :math:`6` to vertex :math:`10` on an undirected graph." -msgstr "" +msgid "From vertex :math:`6` to vertex :math:`10` on an undirected graph." +msgstr "Del vértice :math:`6` al vértice :math:`10` en un grafo no dirigido." msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 1\\}` on an undirected graph." @@ -16147,13 +16729,6 @@ msgstr "" "pgr_trsp(`SQL de aristas`_, `SQL de restricciones`_,**vértices**, " "[``directed``])" -msgid "" -"Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that order " -"on an directed graph." -msgstr "" -"Encontrar la ruta que visita los vértices :math:`\\{ 5, 1, 8\\}` en ese " -"orden, en un grafo dirigido." - msgid "" "All this examples are about the route that visits the vertices :math:`\\{5, " "7, 1, 8, 15\\}` in that order on a directed graph." @@ -16321,12 +16896,12 @@ msgid "" msgstr "" msgid "" -"Point :math:`-1` corresponds to the closest edge from point `(2.9,1.8)`." +"Point :math:`-1` corresponds to the closest edge from point `(2.9, 1.8)`." msgstr "" "Punto :math:`-1` corresponde a la arista más cercana al punto `(2.9, 1.8)`." msgid "" -"Point :math:`-2` corresponds to the next close edge from point `(2.9,1.8)`." +"Point :math:`-2` corresponds to the next close edge from point `(2.9, 1.8)`." msgstr "" "Punto :math:`-2` corresponde a la segunda arista más cercana al punto `(2.9, " "1.8)`." @@ -16392,6 +16967,9 @@ msgstr "" msgid "``pgr_trsp_withPoints`` Routing Vertex/Point with restrictions." msgstr "" +msgid "New proposed signatures:" +msgstr "" + msgid "``pgr_trsp_withPoints`` (`One to One`_)" msgstr "``pgr_trsp_withPoints`` (`Uno a Uno`_)" @@ -16409,10 +16987,10 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, find the shortest path(s)" +"algorithm, find the shortest path" msgstr "" -"Modificar el grafo para incluir puntos definidos por points_sql. Usando el " -"algoritmo Dijkstra, busar la o las rutas más cortas" +"Modificar el grafo para incluir los puntos definidos por points_sql. " +"Utilizando el algoritmo de Dijkstra, encontrar el camino más corto" msgid "Characteristics:" msgstr "Características:" @@ -16529,17 +17107,6 @@ msgstr "" "Wncontrar las rutas desde el vértice :math:`1` a las dos ubicaciones más " "cercanas en el grafo al punto`(2.9, 1.8)`." -msgid "" -"Point :math:`-1` corresponds to the closest edge from point `(2.9, 1.8)`." -msgstr "" -"Punto :math:`-1` corresponde a la arista más cercana al punto `(2.9, 1.8)`." - -msgid "" -"Point :math:`-2` corresponds to the next close edge from point `(2.9, 1.8)`." -msgstr "" -"Punto :math:`-2` corresponde a la segunda arista más cercana al punto `(2.9, " -"1.8)`." - msgid "Pass in front or visits." msgstr "" @@ -16587,11 +17154,11 @@ msgstr "" msgid "**options:** ``[directed, heap_paths, stop_on_first, strict]``" msgstr "**opcionales:** ``[directed, heap_paths, stop_on_first, strict]``" -msgid "RETURNS SET OF |ksp-result|" -msgstr "REGRESA CONJUNTO DE |ksp-result|" +msgid "Returns set of |ksp-result|" +msgstr "Regresa el conjunto de |ksp-result|" -msgid "From vertex :math:`3` to vertex :math:`8` on a directed graph" -msgstr "" +msgid "From vertex :math:`3` to vertex :math:`8` on a directed graph" +msgstr "Del vértice :math:`3` al vértice :math:`8` en un grafo dirigido" msgid "Special optional parameters" msgstr "" @@ -16618,11 +17185,11 @@ msgstr "" msgid "No results because the only path available follows a restriction." msgstr "" -msgid "From vertex :math:`3` to vertex :math:`8` on an undirected graph" -msgstr "" +msgid "From vertex :math:`3` to vertex :math:`8` on an undirected graph" +msgstr "Del vértice :math:`3` al vértice :math:`8` en un grafo no dirigido" -msgid "From vertex :math:`3` to vertex :math:`8` with more alternatives" -msgstr "" +msgid "From vertex :math:`3` to vertex :math:`8` with more alternatives" +msgstr "Del vértice :math:`3` al vértice :math:`8` con más alternativas" msgid "``pgr_version``" msgstr "``pgr_version``" @@ -16726,8 +17293,8 @@ msgstr "" msgid "**options:** ``[directed, driving_side, details])``" msgstr "**opcionales:** ``[directed, driving_side, details])``" -msgid "RETURNS SET OF |old-pid-result|" -msgstr "REGRESA CONJUNTO DE |old-pid-result|" +msgid "Returns set of |old-pid-result|" +msgstr "Regresa el conjunto de |old-pid-result|" msgid "**options:** [directed, driving_side, details])" msgstr "**opcionales:** [directed, driving_side, details])" @@ -16735,8 +17302,8 @@ msgstr "**opcionales:** [directed, driving_side, details])" msgid "From point :math:`1` to vertex :math:`10` with details" msgstr "Del punto :math:`1` al vértice :math:`10` con detalles" -msgid "RETURNS SET OF |pid-1-m|" -msgstr "REGRESA CONJUNTO DE |pid-1-m|" +msgid "Returns set of |pid-1-m|" +msgstr "Regresa el conjunto de |pid-1-m|" msgid "" "From point :math:`1` to point :math:`3` and vertex :math:`7` on an " @@ -16745,21 +17312,22 @@ msgstr "" "Desde el punto :math:`1` al punto :math:`3` y al vértice :math:`7` en un " "grafo no dirigido" -msgid "RETURNS SET OF |pid-m-1|" -msgstr "REGRESA CONJUNTO DE |pid-m-1|" +msgid "Returns set of |pid-m-1|" +msgstr "Regresa el conjunto de |pid-m-1|" msgid "From point :math:`1` and vertex :math:`6` to point :math:`3`" msgstr "Desde el punto :math:`1` y el vértice :math:`6` al punto :math:`3`" -msgid "RETURNS SET OF |pid-m-m|" -msgstr "REGRESA CONJUNTO DE |pid-m-m|" +msgid "Returns set of |pid-m-m|" +msgstr "Regresa el conjunto de |pid-m-m|" +# | msgid "From point :math:`1` to point :math:`3` and vertex :math:`5`." msgid "" -"From point :math:`1` and vertex :math:`6` to point :math:`3` and vertex :" +"From point :math:`1` and vertex :math:`6` to point :math:`3` and vertex :" "math:`1`" msgstr "" -"Desde el punto :math:`1` y el vértice :math:`6` al punto :math:`3` y al " -"vértice :math:`1`" +"Desde el punto :math:`1` y vértice :math:`6` al punto :math:`3` y vértice :" +"math:`1`" msgid "Two combinations" msgstr "Dos combinaciones" @@ -16835,23 +17403,23 @@ msgstr "``pgr_withPointsCost`` - Propuesto" msgid "" "``pgr_withPointsCost`` - Calculates the shortest path and returns only the " -"aggregate cost of the shortest path(s) found, for the combination of points " +"aggregate cost of the shortest path found, for the combination of points " "given." msgstr "" -"``pgr_withPointsCost`` - Calcula la ruta más corta y devuelve solo el costo " -"agregado de la(s) rutas más cortas encontradas, para la combinación de " -"puntos dados." +"``pgr_withPointsCost`` - Calcula el camino más corto y devuelve sólo el " +"coste agregado del camino más corto encontrado, para la combinación de " +"puntos dada." msgid "pgr_withPointsCost(Combinations)" msgstr "pgr_withPointsCost(Combinaciones)" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, return only the aggregate cost of the shortest path(s) found." +"algorithm, return only the aggregate cost of the shortest path found." msgstr "" -"Modifica el grafo para incluir puntos definidos por points_sql. Con el " -"algoritmo Dijkstra, devuelva solo el costo agregado de la(s) rutas más " -"cortas encontradas." +"Modificar el grafo para incluir los puntos definidos por points_sql. " +"Utilizando el algoritmo de Dijkstra, devolver sólo el coste agregado del " +"camino más corto encontrado." msgid "" "Returns the sum of the costs of the shortest path for pair combination of " @@ -16890,9 +17458,6 @@ msgstr "" "Para fines de optimización, se omite cualquier valor duplicado en " "`start_vids` o `end_vids` ." -msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`" -msgstr "Tiempo de ejecución: :math:`O(| start\\_vids | * (V \\log V + E))`" - msgid "" "pgr_withPointsCost(`Edges SQL`_, 'Points SQL`_, **start vid**, **end vid**, " "[**options**])" @@ -16928,11 +17493,11 @@ msgstr "" "pgr_withPointsCost(`SQL de aristas`_, 'SQL de puntos`_, `SQL de " "combinaciones`_, [**opciones**])" -msgid "**options:** ``[directed, driving_side]``" -msgstr "**opcionales:** ``[directed, driving_side]``" +msgid "**options:** ``[directed, driving_side]``" +msgstr "**opciones:** ``[directed, driving_side]``" -msgid "RETURNS SET OF |matrix-pid|" -msgstr "REGRESA CONJUNTO DE |matrix-pid|" +msgid "Returns set of |matrix-pid|" +msgstr "Regresa el conjunto de |matrix-pid|" msgid "" "There is no **details** flag, unlike the other members of the withPoints " @@ -16966,11 +17531,11 @@ msgstr "" "**destinos**, [**opciones**])" msgid "" -"From point :math:`15` and vertex :math:`6` to point :math:`3` and vertex :" +"From point :math:`15` and vertex :math:`6` to point :math:`3` and vertex :" "math:`1`" msgstr "" -"Desde el punto :math:`15` y vértice :math:`6` al punto :math:`3` y vértice :" -"math:`1`" +"Del punto :math:`15` y vértice :math:`6` al punto :math:`3` y vértice :math:" +"`1`" msgid "" "pgr_withPointsCost(`Edges SQL`_, `Points SQL`_, `Combinations SQL`_, " @@ -17075,12 +17640,11 @@ msgstr "" msgid "``pgr_withPointsDD`` (`Single vertex`)" msgstr "``pgr_withPointsDD`` (`Vértice único`)" -#, fuzzy -msgid "Added ``depth`` and ``start_vid`` column." -msgstr "``pgr_dijkstra`` (`Uno a Muchos`) no tiene ``start_vid``." +msgid "Added ``depth``, ``pred`` and ``start_vid`` column." +msgstr "Agregado las columnas ``depth``, ``pred`` y ``start_vid``." -msgid "Added ``depth`` column." -msgstr "" +msgid "Added ``depth``, ``pred`` columns." +msgstr "Agregado las columnas ``depth`` y ``pred``." msgid "When ``details`` is ``false``:" msgstr "Cuando ``details`` es ``false``:" @@ -17208,15 +17772,15 @@ msgstr "" "grafo del punto `(2.8, 1.8)`." msgid "" -"Point :math:`-1` corresponds to the closest edge from point :math:" -"`(2.9,1.8)`." +"Point :math:`-1` corresponds to the closest edge from point :math:`(2.9, " +"1.8)`." msgstr "" "El punto :math:`-1` corresponde a la arista más cercana al punto `(2.9, " "1.8)`." msgid "" -"Point :math:`-2` corresponds to the next close edge from point :math:" -"`(2.9,1.8)`." +"Point :math:`-2` corresponds to the next close edge from point :math:`(2.9, " +"1.8)`." msgstr "" "El punto :math:`-2` corresponde a la segunda arista más cercana al punto " "`(2.9, 1.8)`." @@ -17249,6 +17813,9 @@ msgstr "" msgid "``pgr_withPointsKSP`` (One to One)" msgstr "``pgr_withPointsKSP`` (Uno a Uno)" +msgid "New overload functions" +msgstr "Nuevas funciones de sobrecarga" + msgid "``pgr_withPointsKSP`` (One to Many)" msgstr "``pgr_withPointsKSP`` (Uno a Muchos)" @@ -17261,9 +17828,6 @@ msgstr "``pgr_withPointsKSP`` (Muchos a Muchos)" msgid "``pgr_withPointsKSP`` (Combinations)" msgstr "``pgr_withPointsKSP`` (Combinaciones)" -msgid "Deprecated signature:" -msgstr "Firma obsoleta:" - msgid "" "``pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char," "boolean)``" @@ -17313,8 +17877,8 @@ msgstr "" "pgr_withPointsKSP(`SQL de aristas`_, `SQL de puntos`_, `SQL de " "combinaciones`_, **K**, **lado de manejo**, [**opciones**])" -msgid "**options:** ``[directed, heap_paths, details]``" -msgstr "**opcionales:** ``[directed, heap_paths, details]``" +msgid "**options:** ``[directed, heap_paths, details]``" +msgstr "**opciones:** ``[directed, heap_paths, details]``" msgid "" "Get 2 paths from Point :math:`1` to point :math:`2` on a directed graph with " @@ -17508,11 +18072,11 @@ msgstr "" "prim_minimum_spanning_tree.html>`__" msgid "" -"Wikipedia: `Prim's algorithm `__" +"Wikipedia: `Prim's algorithm `__" msgstr "" -"Wikipedia: `Algoritmo de Prim `__" +"Wikipedia: `Algoritmo de Prim `__" msgid "Proposed Functions" msgstr "Funciones propuestas" @@ -17551,6 +18115,12 @@ msgstr "" ":doc:`pgr_extractVertices` - Extrae información de vértices basada en la " "tabla de aristas." +msgid "" +":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." +msgstr "" +":doc:`pgr_lineGraph` - Algoritmo de transformación para generar un grafo de " +"líneas." + msgid ":doc:`pgr_withPointsVia`" msgstr ":doc:`pgr_withPointsVia`" @@ -17585,21 +18155,144 @@ msgstr "" "Para ver la lista completa de cambios, consulte la lista de `Git commits " "`_ en Github." +msgid "Mayors" +msgstr "" + +msgid "pgRouting 3" +msgstr "pgRouting 3" + +msgid "Minors 3.x" +msgstr "" + +msgid "pgRouting 3.7" +msgstr "pgRouting 3.7" + +msgid "pgRouting 3.6" +msgstr "pgRouting 3.6" + +msgid "pgRouting 3.6.3 Release Notes" +msgstr "Notas de la versión de pgRouting 3.6.3" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.3 `__" +msgstr "" +"Para ver todas las incidencias y pull requests cerrados por esta versión, " +"consulte `Git closed milestone for 3.6.3 `__" + +msgid "Build" +msgstr "Construir" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +msgid "postgis 3.0.0" +msgstr "postgis 3.0.0" + +msgid "Code fixes" +msgstr "Corrección de código" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "Pruebas CI" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "" +"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" +msgstr "" + +msgid "Documentation" +msgstr "Documentación" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "pgr_edgeDisjointPaths" + +msgid "pgr_stoerWagner" +msgstr "pgr_stoerWagner" + +msgid "pgtap tests" +msgstr "Pruebas pgtap" + +msgid "bug fixes" +msgstr "corrección de errores" + +msgid "pgRouting 3.6.2 Release Notes" +msgstr "Notas de la versión de pgRouting 3.6.2" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.2 `__" +msgstr "" +"Para ver todas las incidencias y pull requests cerrados por esta versión, " +"consulte `Git closed milestone for 3.6.2 `__" + +msgid "Upgrade fix" +msgstr "" + +msgid "The upgrade was failing for same minor" +msgstr "" + +msgid "Fix warnings from cpplint" +msgstr "" + +msgid "Others" +msgstr "Otros" + +msgid "Adjust NEWS generator" +msgstr "Ajustar el generador NEWS" + +msgid "Name change to `NEWS.md` for better visualization on GitHub" +msgstr "Cambio de nombre a `NEWS.md` para una mejor visualización en GitHub" + +msgid "pgRouting 3.6.1 Release Notes" +msgstr "Notas de la versión 3.6.1 de pgRouting" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.1 `_" +msgstr "" +"Para ver todos los problemas y solicitudes de extracción cerrados para ésta " +"versión, consulte la `meta cerrada 3.6.1 `_" + +msgid "" +"`#2588 `__ pgrouting 3.6.0 " +"fails to build on OSX" +msgstr "" +"`#2588 `__ pgrouting 3.6.0 " +"no construye en OSX" + msgid "pgRouting 3.6.0 Release Notes" msgstr "Notas de la versión 3.6.0 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.6.0 `_" +"milestone for 3.6.0 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados para ésta " "versión, consulte la `meta cerrada 3.6.0 `_" -msgid "Official functions changes" -msgstr "" - msgid "" "`#2516 `__ Standarize " "output pgr_aStar" @@ -17716,9 +18409,6 @@ msgstr "" "`#2522 `__ Simplificación " "del código de bdAstar." -msgid "Documentation" -msgstr "Documentación" - msgid "" "`#2490 `__ Automatic page " "history links." @@ -17736,13 +18426,20 @@ msgstr "" "`#2555 `__ Estandarización " "de mesajes de depreciación" +msgid "" +"On new internal function: do not use named parameters and default parameters." +msgstr "" + +msgid "pgRouting 3.5" +msgstr "pgRouting 3.5" + msgid "pgRouting 3.5.1 Release Notes" msgstr "Notas de la versión 3.5.1 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.1 `_" +"milestone for 3.5.1 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados para ésta " "versión, consulte la `meta cerrada 3.5.1 `__ " +"pgr_pgr_lengauerTarjanDominatorTree triggers an assertion" +msgstr "" +"`#2565 `__ " +"pgr_pgr_lengauerTarjanDominatorTree genera un error de afirmación" + +msgid "SQL enhancements" +msgstr "Mejoras SQL" + +msgid "" +"`#2561 `__ Not use " +"wildcards on SQL" +msgstr "" +"`#2561 `__ No usar " +"comodines en SQL" + +msgid "" +"`#2559 `__ pgtap test " +"using sampledata" +msgstr "" +"`#2559 `__ pruebas pgtap " +"test usando datos muestra" + msgid "Build fixes" msgstr "Correcciones de construcción" msgid "Fix winnie build" msgstr "" -msgid "Code fixes" -msgstr "Corrección de código" - msgid "Fix clang warnings" msgstr "" @@ -17789,8 +18510,8 @@ msgstr "Notas de la versión 3.5.0 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.0 `_" +"milestone for 3.5.0 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados para ésta " "versión, consulte la `meta cerrada 3.5.0 `_" +"milestone for 3.4.2 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados para esta " "versión, consulte la `meta cerrada 3.4.2 `_" -msgid "Issue fixes" -msgstr "Corrección de problemas" - msgid "" "`#2394 `__: pgr_bdAstar " "accumulates heuristic cost in visited node cost." @@ -17847,8 +18568,8 @@ msgstr "Notas de la versión 3.4.1 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.1 `_" +"milestone for 3.4.1 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada 3.4.1 `_" +"milestone for 3.4.0 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados para ésta " "versión, consulte la `meta cerrada 3.3.0 `_" +"milestone for 3.3.4 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada de 3.3.4 `_" +"milestone for 3.3.3 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada 3.3.3 `_" +"milestone for 3.3.2 `_" msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada de 3.3.2 `_ on Github." +"milestone for 3.3.1 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada para 3.3.1 `_ on Github." +"milestone for 3.3.0 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada de 3.3.0 `_ on Github." +"milestone for 3.2.2 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada 3.2.2 `_ en " "Github." -msgid "Issues" -msgstr "Corrección de problemas" - msgid "" "`#2093 `__: Compilation " "on Visual Studio" @@ -18244,8 +18962,8 @@ msgstr "Notas de la Versión 3.2.1 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.1 `_ on Github." +"milestone for 3.2.1 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada 3.2.1 `_ on Github." +"milestone for 3.2.0 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerradas por esta " "versión, consulte el hito de cierre de Git para 3.2.0 `_ en Github." - -msgid "Build" -msgstr "Construir" +"pgRouting/pgrouting/issues?" +"utf8=%E2%9C%93&q=milestone%3A%22Release%203.2.0%22>`_ en Github." msgid "" "`#1850 `__: Change Boost " @@ -18372,13 +19087,16 @@ msgstr "pgr_maxFlow(Combinaciones)" msgid "pgr_pushRelabel(Combinations)" msgstr "pgr_pushRelabel(Combinaciones)" +msgid "pgRouting 3.1" +msgstr "pgRouting 3.1" + msgid "pgRouting 3.1.4 Release Notes" msgstr "Notas de la Versión 3.1.4 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.4 `_ on Github." +"milestone for 3.1.4 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada de 3.1.4 `_ on Github." +"milestone for 3.1.3 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerradas por esta " "versión, consulte el hito de cierre de Git para 3.1.3 `_ en Github." +"pgRouting/pgrouting/issues?" +"utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.3%22>`_ en Github." msgid "" "`#1825 `__: Boost " @@ -18428,13 +19146,13 @@ msgstr "Notas de la Versión pgRouting 3.1.2" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.2 `_ on Github." +"milestone for 3.1.2 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerradas por esta " "versión, consulte el `hito cerrado de Git para 3.1.2 `_ en Github." +"pgRouting/pgrouting/issues?" +"utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.2%22>`_ en Github." msgid "" "`#1304 `__: FreeBSD 12 " @@ -18476,12 +19194,12 @@ msgstr "pgRouting 3.1.1 Notas de la Versión" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.1 `_ on Github." +"milestone for 3.1.1 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta vers 3.1.1 `_ on Github." +"pgRouting/pgrouting/issues?" +"utf8=%E2%9C%93&q=milestone%3A%22Release%203.1.1%22>`_ on Github." msgid "" "`#1733 `__: pgr_bdAstar " @@ -18524,12 +19242,12 @@ msgstr "Notas de la Versión pgRouting 3.1.0" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.0 `_ on Github." +"milestone for 3.1.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `hito cerrado " -"de Git para 3.1.0 `_ en Github." +"de Git para 3.1.0 `_ en Github." msgid "pgr_dijkstra(combinations)" msgstr "pgr_dijkstra(combinaciones)" @@ -18543,13 +19261,16 @@ msgstr "Crear cambios" msgid "Minimal requirement for Sphinx: version 1.8" msgstr "Requerimientos mínimos para Sphinx: versión 1.8" +msgid "pgRouting 3.0" +msgstr "pgRouting 3.0" + msgid "pgRouting 3.0.6 Release Notes" msgstr "Notas de la Versión 3.0.6 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.6 `_ on Github." +"milestone for 3.0.6 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerrados pora ésta " "versión, consulte la `meta cerrada de 3.0.6 `_ on Github." +"milestone for 3.0.5 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerradas por esta " "versión, consulte el hito de cierre de Git para 3.0.5 `_ en Github." +"pgRouting/pgrouting/issues?" +"utf8=%E2%9C%93&q=milestone%3A%22Release%203.0.5%22>`_ en Github." -msgid "Backport issues fixes" -msgstr "Corrección de problemas de Backport" +msgid "Backport issue fixes" +msgstr "Corrección de problemas atrasados" msgid "pgRouting 3.0.4 Release Notes" msgstr "Notas de la Versión pgRouting 3.0.4" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.4 `_ on Github." +"milestone for 3.0.4 `_ on Github." msgstr "" "Para ver todos los problemas y solicitudes de extracción cerradas por esta " "versión, consulte la `meta cerrada para 3.0.4 `_ on Github." +"milestone for 3.0.2 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte en Github la " -"`meta cerrada para 3.0.2 `_ en Github." +"`meta cerrada para 3.0.2 `_ en Github." msgid "" "`#1378 `__: Visual " @@ -18612,31 +19333,31 @@ msgstr "Notas de la versión 3.0.1 de pgRouting" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.1 `_ on Github." +"milestone for 3.0.1 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Hito cerrado " -"de Git para 3.0.1 `_ en Github." +"de Git para 3.0.1 `_ en Github." msgid "" -"`#232 `__: Honor client " +"`#232 `__: Honor client " "cancel requests in C /C++ code" msgstr "" -"`#232 `__: Cliente " -"honorable cliente cancela las solicitudes de código C /C++" +"`#232 `__: Honrar " +"cancelación de las solicitudes de código C /C++" msgid "pgRouting 3.0.0 Release Notes" msgstr "Notas de la versión de pgRouting 3.0.0" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.0 `_ on Github." +"milestone for 3.0.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `hito cerrado " -"de Git para 3.0.0 `_ en Github." +"de Git para 3.0.0 `_ en Github." msgid "Fixed Issues" msgstr "Problemas solucionados" @@ -18801,13 +19522,13 @@ msgid "pgr_bdDijkstra(many to one)" msgstr "pgr_bdDijkstra(muchos a uno)" msgid "pgr_bdDijkstra(many to many)" -msgstr "pgr_bdDijkstra(muchos to muchos)" +msgstr "pgr_bdDijkstra(muchos a muchos)" msgid "pgr_bdDijkstraCost(one to one)" -msgstr "pgr_bdDijkstraCost(Uno a Uno)" +msgstr "pgr_bdDijkstraCost(uno a uno)" msgid "pgr_bdDijkstraCost(one to many)" -msgstr "pgr_bdDijkstraCost(Uno a Muchos)" +msgstr "pgr_bdDijkstraCost(uno a muchos)" msgid "pgr_bdDijkstraCost(many to one)" msgstr "pgr_bdDijkstraCost(muchos a uno)" @@ -18816,10 +19537,10 @@ msgid "pgr_bdDijkstraCost(many to many)" msgstr "pgr_bdDijkstraCost(muchos a muchos)" msgid "pgr_bdDijkstraCostMatrix(one to one)" -msgstr "pgr_bdDijkstraCostMatrix(Uno a Uno)" +msgstr "pgr_bdDijkstraCostMatrix(uno a uno)" msgid "pgr_bdDijkstraCostMatrix(one to many)" -msgstr "pgr_bdDijkstraCostMatrix(Uno a Muchos)" +msgstr "pgr_bdDijkstraCostMatrix(uno a muchos)" msgid "pgr_bdDijkstraCostMatrix(many to one)" msgstr "pgr_bdDijkstraCostMatrix(muchos a uno)" @@ -18908,9 +19629,6 @@ msgstr "Se ha eliminado la innecesaria columna seq" msgid "Bug Fixes" msgstr "Corrección de errores" -msgid "New Experimental functions" -msgstr "Nuevas funciones experimentales" - msgid "pgr_maxFlowMinCost" msgstr "pgr_maxFlowMinCost" @@ -18920,9 +19638,6 @@ msgstr "pgr_maxFlowMinCost_Cost" msgid "pgr_turnRestrictedPath" msgstr "pgr_turnRestrictedPath" -msgid "pgr_stoerWagner" -msgstr "pgr_stoerWagner" - msgid "pgr_dagShortestpath" msgstr "pgr_dagShortestpath" @@ -18971,9 +19686,8 @@ msgstr "pgr_edwardMoore" msgid "Moved to legacy" msgstr "Se trasladó al legado" -msgid "pgr_labelGraph - Use the components family of functions instead." -msgstr "" -"pgr_labelGraph - Utilice la familia de componentes de funciones en su lugar." +msgid "pgr_labelGraph - Use the components family of functions instead." +msgstr "pgr_labelGraph - Utilizar la familia de componentes en su lugar." msgid "Max flow - functions were renamed on v2.5.0" msgstr "Max flow - las funciones fueron renombradas en v2.5.0" @@ -19005,17 +19719,26 @@ msgstr "pgr_pointsAsPolygon" msgid "pgr_alphaShape old signature" msgstr "pgr_alphaShape firma antigua" +msgid "pgRouting 2" +msgstr "pgRouting 2" + +msgid "Minors 2.x" +msgstr "" + +msgid "pgRouting 2.6" +msgstr "pgRouting 2.6" + msgid "pgRouting 2.6.3 Release Notes" msgstr "pgRouting 2.6.3 Notas de la Versión" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.3 `_ on Github." +"2.6.3 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte `Git closed " -"milestone for 2.6.3 `_ en Github." +"milestone for 2.6.3 `_ en Github." msgid "" "`#1219 `__ Implicit cast " @@ -19039,12 +19762,12 @@ msgstr "pgRouting 2.6.2 Notas de la versión" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.2 `_ on Github." +"2.6.2 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte en Github la " -"`meta cerrada para 2.6.2 `_." +"`meta cerrada para 2.6.2 `_." msgid "" "`#1152 `__ Fixes driving " @@ -19072,12 +19795,12 @@ msgstr "Notas de la versión de pgRouting 2.6.1" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.1 `_ on Github." +"2.6.1 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"milestone for 2.6.1 `_ en Github." +"milestone for 2.6.1 `_ en Github." msgid "Fixes server crash on several functions." msgstr "Corrige el bloqueo del servidor en varias funciones." @@ -19170,12 +19893,12 @@ msgstr "Notas de la versión de pgRouting 2.6.0" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.0 `_ on Github." +"2.6.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte la `meta cerrada " -"para 2.6.0 `_ en Github." +"para 2.6.0 `_ en Github." msgid "pgr_lineGraphFull" msgstr "pgr_lineGraphFull" @@ -19222,17 +19945,20 @@ msgstr "El código interno puede aceptar BIGINT" msgid "Cleaned the internal code of withPoints" msgstr "Limpiado el código interno de withPoints" +msgid "pgRouting 2.5" +msgstr "pgRouting 2.5" + msgid "pgRouting 2.5.5 Release Notes" msgstr "Notas de la versión de PgRouting 2.5.5" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.5 `_ on Github." +"2.5.5 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"milestone for 2.5.5 `_ en Github." +"milestone for 2.5.5 `_ en Github." msgid "Fixes driving distance when vertex is not part of the graph" msgstr "" @@ -19249,24 +19975,24 @@ msgstr "Notas de la versión de pgRouting 2.5.4" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.4 `_ on Github." +"2.5.4 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"milestone for 2.5.4 `_ en Github." +"milestone for 2.5.4 `_ en Github." msgid "pgRouting 2.5.3 Release Notes" msgstr "Notas de la versión de pgRouting 2.5.3" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.3 `_ on Github." +"2.5.3 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"milestone for 2.5.3 `_ en Github." +"milestone for 2.5.3 `_ en Github." msgid "" "Fix for postgresql 11: Removed a compilation error when compiling with " @@ -19280,12 +20006,12 @@ msgstr "Notas de la versión de pgRouting 2.5.2" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.2 `_ on Github." +"2.5.2 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el`Git closed " -"milestone for 2.5.2 `_ en Github." +"milestone for 2.5.2 `_ en Github." msgid "Fix for postgresql 10.1: Removed a compiler condition" msgstr "" @@ -19296,12 +20022,12 @@ msgstr "Notas de la versión de pgRouting 2.5.1" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.1 `_ on Github." +"2.5.1 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"milestone for 2.5.1 `_ en Github." +"milestone for 2.5.1 `_ en Github." msgid "Fixed prerequisite minimum version of: cmake" msgstr "Prerrequisito fijo versión mínima de: cmake" @@ -19311,12 +20037,12 @@ msgstr "Notas de la versión de pgRouting 2.5.0" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.5.0 `_ on Github." +"2.5.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.5.0 `_ en Github." +"issues for 2.5.0 `_ en Github." msgid "enhancement:" msgstr "mejora:" @@ -19340,8 +20066,8 @@ msgid "The many version results are the union of the one to one version" msgstr "" "Los muchos resultados de la versión son la unión de la versión uno a uno" -msgid "New Signatures:" -msgstr "Nuevas Firmas:" +msgid "New Signatures" +msgstr "Nuevas Firmas" msgid "pgr_bdAstar(one to one)" msgstr "pgr_bdAstar(Uno a Uno)" @@ -19358,14 +20084,11 @@ msgstr "pgr_bdDijkstraCostMatrix" msgid "pgr_lineGraph" msgstr "pgr_lineGraph" -msgid "Deprecated Signatures" -msgstr "Firmas Obsoletas" - msgid "pgr_bdastar - use pgr_bdAstar instead" msgstr "pgr_bdastar - utilice pgr_bdAstar en su lugar" -msgid "Renamed Functions" -msgstr "Funciones Renombradas" +msgid "Renamed functions" +msgstr "Funciones renombradas" msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead" msgstr "pgr_maxFlowPushRelabel - utilice pgr_pushRelabel en su lugar" @@ -19380,23 +20103,26 @@ msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead" msgstr "" "pgr_maximumCardinalityMatching - utilice pgr_maxCardinalityMatch en su lugar" -msgid "Deprecated function" -msgstr "Función Obsoleta" +msgid "Deprecated Function" +msgstr "Funcion Obsoleta" msgid "pgr_pointToEdgeNode" msgstr "pgr_pointToEdgeNode" +msgid "pgRouting 2.4" +msgstr "pgRouting 2.4" + msgid "pgRouting 2.4.2 Release Notes" msgstr "Notas de la versión de pgRouting 2.4.2" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.2 `_ on Github." +"2.4.2 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"milestone for 2.4.2 `_ en Github." +"milestone for 2.4.2 `_ en Github." msgid "Improvement" msgstr "Mejora" @@ -19418,12 +20144,12 @@ msgstr "Notas de la versión de pgRouting 2.4.1" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.1 `_ on Github." +"2.4.1 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"milestone for 2.4.1 `_ on Github." +"milestone for 2.4.1 `_ on Github." msgid "Fixed compiling error on macOS" msgstr "Corregido error de compilación en macOS" @@ -19436,15 +20162,12 @@ msgstr "Notas de la versión de pgRouting 2.4.0" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.4.0 `_ on Github." +"2.4.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte el `Git closed " -"issues for 2.4.0 `_ on Github." - -msgid "New Signatures" -msgstr "Nuevas Firmas" +"issues for 2.4.0 `_ on Github." msgid "pgr_bdDijkstra" msgstr "pgr_bdDijkstra" @@ -19477,10 +20200,7 @@ msgid "pgr_astarCostMatrix" msgstr "pgr_astarCostMatrix" msgid "pgr_bddijkstra - use pgr_bdDijkstra instead" -msgstr "pgr_bddijkstra - utilice pgr_bdDijkstra en su lugar" - -msgid "Deprecated Functions" -msgstr "Funciones obsoletas" +msgstr "pgr_bddijkstra - utilizar pgr_bdDijkstra en su lugar" msgid "pgr_pointsToVids" msgstr "pgr_pointsToVids" @@ -19496,17 +20216,20 @@ msgstr "" "El código original de TRSP se utiliza sin cambios en las advertencias de " "compilación" +msgid "pgRouting 2.3" +msgstr "pgRouting 2.3" + msgid "pgRouting 2.3.2 Release Notes" msgstr "Notas de la versión de pgRouting 2.3.2" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.2 `_ on Github." +"2.3.2 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.3.2 `_ en Github." +"issues for 2.3.2 `_ en Github." msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck." msgstr "" @@ -19528,12 +20251,12 @@ msgstr "Notas de la versión de pgRouting 2.3.1" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.1 `_ on Github." +"2.3.1 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.3.1 `_ on Github." +"issues for 2.3.1 `_ on Github." msgid "Leaks on proposed max_flow functions" msgstr "Fugas en las funciones max_flow propuestas" @@ -19549,12 +20272,12 @@ msgstr "Notas de la versión de pgRouting 2.3.0" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.0 `_ on Github." +"2.3.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.3.0 `_ en Github." +"issues for 2.3.0 `_ en Github." msgid "pgr_TSP" msgstr "pgr_TSP" @@ -19631,17 +20354,20 @@ msgstr "pgr_pointsToDMatrix" msgid "pgr_textToPoints" msgstr "pgr_textToPoints" +msgid "pgRouting 2.2" +msgstr "pgRouting 2.2" + msgid "pgRouting 2.2.4 Release Notes" msgstr "Notas de la versión de pgRouting 2.2.4" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.4 `_ on Github." +"2.2.4 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.2.4 `_ on Github." +"issues for 2.2.4 `_ on Github." msgid "Bogus uses of extern \"C\"" msgstr "Bogus usos de extern \"C\"" @@ -19657,12 +20383,12 @@ msgstr "Notas de la versión de pgRouting 2.2.3" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.3 `_ on Github." +"2.2.3 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.2.3 `_ en Github." +"issues for 2.2.3 `_ en Github." msgid "Fixed compatibility issues with PostgreSQL 9.6." msgstr "Problemas de compatibilidad con PostgreSQL 9.6 corregidos." @@ -19672,12 +20398,12 @@ msgstr "Notas de la versión de pgRouting 2.2.2" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.2 `_ on Github." +"2.2.2 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte la `meta cerrada " -"para 2.2.2 `_ en Github." +"para 2.2.2 `_ en Github." msgid "Fixed regression error on pgr_drivingDistance" msgstr "Corregido error de regresión en pgr_drivingDistance" @@ -19687,12 +20413,12 @@ msgstr "Notas de la versión de pgRouting 2.2.1" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.1 `_ on Github." +"2.2.1 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.2.1 `_ en Github." +"issues for 2.2.1 `_ en Github." msgid "Server crash fix on pgr_alphaShape" msgstr "Corrección de bloqueo del servidor en pgr_alphaShape" @@ -19705,12 +20431,12 @@ msgstr "Notas de la versión de pgRouting 2.2.0" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.0 `_ on Github." +"2.2.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.2.0 `_ on Github." +"issues for 2.2.0 `_ on Github." msgid "Improvements" msgstr "Mejoras" @@ -19721,8 +20447,8 @@ msgstr "Adición de un row_where y todos los parámetros opcionales" msgid "Signature fix" msgstr "Corrección de firma" -msgid "pgr_dijkstra -- to match what is documented" -msgstr "pgr_dijkstra - para que coincida con lo que está documentado" +msgid "pgr_dijkstra -- to match what is documented" +msgstr "pgr_dijkstra -- para que coincida con lo documentado" msgid "pgr_Johnson" msgstr "pgr_Johnson" @@ -19739,8 +20465,8 @@ msgstr "pgr_dijkstraCost(muchos a uno)" msgid "pgr_dijkstraCost(many to many)" msgstr "pgr_dijkstraCost(muchos a muchos)" -msgid "Proposed functionality" -msgstr "Funcionalidad propuesta" +msgid "Proposed Functionality" +msgstr "Funcionalidad Propuesta" msgid "pgr_withPoints(one to one)" msgstr "pgr_withPoints(Uno a Uno)" @@ -19778,14 +20504,11 @@ msgstr "pgr_withPointsKSP" msgid "pgr_dijkstraVia" msgstr "pgr_dijkstraVia" -msgid "Deprecated functions:" -msgstr "Funciones obsoletas:" - -msgid "pgr_apspWarshall use pgr_floydWarshall instead" -msgstr "pgr_apspWarshall utilice pgr_floydWarshall en su lugar" +msgid "pgr_apspWarshall use pgr_floydWarshall instead" +msgstr "pgr_apspWarshall utilizar pgr_floydWarshall en su lugar" -msgid "pgr_apspJohnson use pgr_Johnson instead" -msgstr "pgr_apspJohnson utilice pgr_Johnson en su lugar" +msgid "pgr_apspJohnson use pgr_Johnson instead" +msgstr "pgr_apspJohnson utilizar pgr_Johnson en su lugar" msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead" msgstr "pgr_kDijkstraCost utilice pgr_dijkstraCost en su lugar" @@ -19793,23 +20516,26 @@ msgstr "pgr_kDijkstraCost utilice pgr_dijkstraCost en su lugar" msgid "pgr_kDijkstraPath use pgr_dijkstra instead" msgstr "pgr_kDijkstraPath utilice pgr_dijkstra en su lugar" -msgid "Renamed and deprecated function" -msgstr "Función renombrada y obsoleta" +msgid "Renamed and Deprecated Function" +msgstr "Función Renombrada y Obsoleta" msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix" msgstr "pgr_makeDistanceMatrix renombrado a _pgr_makeDistanceMatrix" +msgid "pgRouting 2.1" +msgstr "pgRouting 2.1" + msgid "pgRouting 2.1.0 Release Notes" msgstr "Notas de la versión de pgRouting 2.1.0" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.1.0 `_ on Github." +"2.1.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.1.0 `_ en Github." +"issues for 2.1.0 `_ en Github." msgid "pgr_dijkstra(one to many)" msgstr "pgr_dijkstra(uno a muchos)" @@ -19961,6 +20687,9 @@ msgstr "" "En lugar de generar muchas bibliotecas: - Todas las funciones están " "encapsuladas en una biblioteca - La biblioteca tiene el prefijo 2-1-0" +msgid "pgRouting 2.0" +msgstr "pgRouting 2.0" + msgid "pgRouting 2.0.1 Release Notes" msgstr "Notas de la versión de pgRouting 2.0.1" @@ -19975,21 +20704,21 @@ msgstr "Notas de la versión de pgRouting 2.0.0" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.0.0 `_ on Github." +"2.0.0 `_ on Github." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 2.0.0 `_ on Github." +"issues for 2.0.0 `_ on Github." msgid "" "With the release of pgRouting 2.0.0 the library has abandoned backwards " -"compatibility to `pgRouting 1.x Release Notes`_ releases. The main Goals for " -"this release are:" +"compatibility to `pgRouting 1.0`_ releases. The main Goals for this release " +"are:" msgstr "" "Con la versión de pgRouting 2.0.0, la biblioteca ha abandonado la " -"compatibilidad con versiones anteriores a las versiones `pgRouting 1.x " -"Release Notes`_. Los principales objetivos de esta versión son:" +"compatibilidad con versiones anteriores a las versiones `pgRouting 1.0`_. " +"Los principales objetivos de esta versión son:" msgid "Major restructuring of pgRouting." msgstr "Mayor reestructuración de pgRouting." @@ -20118,20 +20847,23 @@ msgstr "Mejor documentación: https://docs.pgrouting.org" msgid "shooting_star is discontinued" msgstr "shooting_star está descontinuado" -msgid "pgRouting 1.x Release Notes" -msgstr "Notas de versión de pgRouting 1.x" +msgid "pgRouting 1" +msgstr "pgRouting 1" + +msgid "pgRouting 1.0" +msgstr "pgRouting 1.0" msgid "" "To see the issues closed by this release see the `Git closed issues for 1.x " -"`_ on Github. The following release notes have been copied " +"`_ on Github. The following release notes have been copied " "from the previous ``RELEASE_NOTES`` file and are kept as a reference." msgstr "" "Para ver los problemas cerrados por esta versión, consulte los `Git closed " -"issues for 1.x `_ on Github. The following release notes have " -"been copied from the previous ``RELEASE_NOTES`` file and are kept as a " -"reference." +"issues for 1.x `_ on Github. The following " +"release notes have been copied from the previous ``RELEASE_NOTES`` file and " +"are kept as a reference." msgid "Changes for release 1.05" msgstr "Cambios para la versión 1.05" @@ -20293,8 +21025,8 @@ msgstr "" msgid "The geometry of the segments." msgstr "" -msgid "Starting on PostgreSQL 12::" -msgstr "" +msgid "Starting on PostgreSQL 12::" +msgstr "A partir de PostgreSQL 12::" msgid "" "Optionally indexes on different columns can be created. The recomendation is " @@ -20553,11 +21285,14 @@ msgstr "" "pgrouting-users" msgid "" -"Developer mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-" -"dev" +"Developer mailing list: https://discourse.osgeo.org/c/pgrouting/pgrouting-" +"dev/" msgstr "" -"Lista de correo para desarroladores: https://lists.osgeo.org/mailman/" -"listinfo/pgrouting-dev" +"Lista de correo para desarrolladores: https://discourse.osgeo.org/c/" +"pgrouting/pgrouting-dev/" + +msgid "Subscribe: https://discourse.osgeo.org/g/pgrouting-dev" +msgstr "Suscríbase: https://discourse.osgeo.org/g/pgrouting-dev" msgid "" "For general questions and topics about how to use pgRouting, please write to " @@ -20649,8 +21384,8 @@ msgstr "" msgid "Additional functions to analyze a graph:" msgstr "" -msgid "Transformation - Family of functions (Experimental)" -msgstr "Transformation - Familia de funciones (Experimental)" +msgid "Transformation - Family of functions" +msgstr "Transformación - Familia de funciones" msgid "" "This family of functions is used for transforming a given input graph :math:" @@ -20697,7 +21432,7 @@ msgstr "ruta" msgid "is a sequence of **paths**" msgstr "es una secuencia de **caminos**" -msgid "**Used on:**" +msgid "**Used in:**" msgstr "**Usado en:**" msgid "" @@ -20707,16 +21442,13 @@ msgstr "" "Ademas de los parámetros obligatorios que tiene cada función, hay parámetros " "opcionales que existen dado el tipo de función." -msgid "Used on all Via functions" +msgid "Used in all Via functions" msgstr "Usado en todas las funciones Via" msgid "Depending on the function one or more inner queries are needed." msgstr "" "Dependiendo de la función, serán necesarias una o mas consultas internas." -msgid "Used on" -msgstr "Usado en" - msgid "withPoints - Category" msgstr "withPoints- Categoría" @@ -21095,761 +21827,168 @@ msgstr "pgr_withPointsDD es pgr_drivingDistance **con puntos**" msgid "pgr_withPointsvia is pgr_dijkstraVia **with points**" msgstr "pgr_withPoints es pgr_dijkstraVia **con puntos**" -msgid "Returns SET OF |result-spantree|" -msgstr "Regresa conjunto de |result-spantree|" - -msgid ":math:`depth-1` is the depth of ``pred``" -msgstr ":math:`depth-1` es la profundidad de ``pred``" - -msgid "``pred``" -msgstr "``pred``" - -msgid "Predecessor of ``node``." -msgstr "Presdecesor de ``node``." - -msgid "When ``node`` = ``start_vid`` then has the value ``node``." -msgstr "Cuando ``node`` = ``start_vid`` entonces tiene el valor ``node``." - -msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." -msgstr "" -"Identificador del ``edge`` utilizado para llegar desde ``pred`` hasta " -"``node``." - -msgid "" -"Column ``pred`` only applies to :doc:`pgr_drivingDistance` and :doc:" -"`pgr_withPointsDD`." -msgstr "" -"La columna ``pred`` sólo se aplica a :doc:`pgr_drivingDistance` y :doc:" -"`pgr_withPointsDD`." - -msgid "|result-spantree|" -msgstr "|result-spantree|" - -msgid "``pred`` contains the predecessor of the ``node``." -msgstr "``pred`` contiene el predecesor del ``nodo``." - -msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." -msgstr "No tiene columnas de resultados ``start_vid``, ``pred`` y ``depth``." - -msgid "Does not have ``depth`` and ``pred`` result columns." -msgstr "No tiene columnas de resultados ``depth`` y ``pred``." - -msgid "New output columns are |result-spantree|" -msgstr "Las nuevas columnas de salida son |result-spantree|" - -msgid "Standarizing output columns to |result-spantree|" -msgstr "Estandarización de columnas de resultados a |result-spantree|" - -msgid "Added ``depth`` and ``pred`` result columns." -msgstr "Agregado las columnas de resultados``depth`` y ``pred``." - -msgid "" -"Using the Dijkstra algorithm, extracts all the nodes that have costs less " -"than or equal to the value ``distance``. The edges extracted will conform to " -"the corresponding spaning tree." -msgstr "" -"Usando el algoritmo Dijkstra, se extraen todos los nodos que tienen costes " -"menores o iguales al valor ``distance``. Los bordes extraídos se ajustarán " -"al árbol de expansión correspondiente." - -msgid "RETURNS SET OF |result-spantree|" -msgstr "Regresa conjunto de |result-spantree|" - -msgid "Added ``depth``, ``pred`` and ``start_vid`` column." -msgstr "Agregado las columnas ``depth``, ``pred`` y ``start_vid``." - -msgid "Added ``depth``, ``pred`` columns." -msgstr "Agregado las columnas ``depth`` y ``pred``." - -msgid "" -"On new internal function: do not use named parameters and default parameters." -msgstr "" - -msgid "" -"`#2565 `__ " -"pgr_pgr_lengauerTarjanDominatorTree triggers an assertion" -msgstr "" -"`#2565 `__ " -"pgr_pgr_lengauerTarjanDominatorTree genera un error de afirmación" - -msgid "SQL enhancements" -msgstr "Mejoras SQL" - -msgid "" -"`#2561 `__ Not use " -"wildcards on SQL" -msgstr "" -"`#2561 `__ No usar " -"comodines en SQL" - -msgid "pgtap tests" -msgstr "Pruebas pgtap" - -msgid "" -"`#2559 `__ pgtap test " -"using sampledata" -msgstr "" -"`#2559 `__ pruebas pgtap " -"test usando datos muestra" - -msgid "" -"A discussion about the work of Hamilton & Kirkman can be found in the book " -"**Graph Theory (Biggs et al. 1976)**." -msgstr "" -"Una discusión sobre el trabajo de Hamilton & Kirkman se puede encontrar en " -"el libro **Graph Theory (Biggs et al. 1976)**." - -msgid "And :math:`n-2` choices for the third city, etc." -msgstr "Y :math:`n-2` opciones para la tercera ciudad, etc." - -msgid "Multiplying these together we get :math:`(n-1)! = (n-1) (n-2) . . 1`." -msgstr "Al multiplicarlas obtenemos :math:`(n-1)! = (n-1) (n-2) . . 1`." - -msgid "" -"To handle problems like: 10 (equal dimension) boxes of apples and 5 kg of " -"feathers that are to be transported (not packed in boxes)." -msgstr "" -"Para manejar problemas como: 10 cajas de manzanas de dimesiones iguales y 5 " -"kg de plumas que se van a transportar (no embaladas en cajas)." - -msgid "" -"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor " -"= 1 (no need to change units)" -msgstr "" -"Trabajando con coste/coste_inverso como longitud en grados, x/y en lat/lon: " -"Factor = 1 (no es necesario cambiar las unidades)" - -msgid "" -"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor = " -"would depend on the location of the points:" -msgstr "" -"Trabajando con coste/coste_inverso como longitud en metros, x/y en lat/lon: " -"Factor = dependería de la ubicación de los puntos:" - -msgid "1 longitude degree is 78846.81 m" -msgstr "1 grado de longitud son 78846.81 m" - -msgid "The `agg_cost` of `(u, v)` is the same as for `(v, u)`." -msgstr "El `agg_cost` de `(u, v)` es el mismo que para `(v, u)`." - -msgid "When `start_vid` = `end_vid`, the `agg_cost` = 0." -msgstr "Cuando `start_vid` = `end_vid`, el `agg_cost` = 0." - -msgid "" -":doc:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm to create " -"a matrix of costs of the shortest paths." -msgstr "" -":doc:`pgr_bdDijkstraCostMatrix` - Algoritmo bidireccional de Dijkstra para " -"crear una matriz de costes de las rutas más cortas." - -msgid "" -"The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are removed " -"from the graph." -msgstr "" -"Los aristas :math:`v \\rightarrow w` y :math:`w \\rightarrow z` fueron " -"eliminados del grafo." - -msgid "" -"The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are removed " -"from the graph." -msgstr "" -"Los aristas :math:`u \\rightarrow v` y :math:`v \\rightarrow z` son " -"removidos del grafo." - -msgid "" -"The **aggregate cost** of :math:`(u, v)` is the same as for :math:`(v, u)`." -msgstr "" -"El **costo agregado** de :math:`(u, v)` es el mismo que para :math:`(v, u)`." - -msgid "" -"where :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}" -"`" -msgstr "" -"Donde :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}" -"`" - -msgid "the set of vertices :math:`V`" -msgstr "El conjunto de vértices :math:`V`" - -msgid "" -"In other words: The algorithm returns a the shortest path between :math:" -"`start_{vid}` and :math:`end_{vid}`, if it exists, in terms of a sequence of " -"nodes and of edges," -msgstr "" -"En otras palabras: El algoritmo devuelve la ruta más corta entre :math:" -"`start_{vid}` y :math:`end_{vid}`, si es que existe, en términos de una " -"secuencia de nodos y de aristas," - -msgid "Capacity of the edge (``source``, ``target``)" -msgstr "Capacidad de la arista (``source``, ``target``)" - -msgid "Weight of the edge (``source``, ``target``) if it exist" -msgstr "Peso de la arista (``source``, ``target``) si existe" - -msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." -msgstr "" -":doc:`pgr_createTopology` - crear una topología basada en la geometría." - -msgid "" -":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge " -"table." -msgstr "" -":doc:`pgr_analyzeGraph` - para analizar los bordes y vértices de la tabla de " -"aristas." - -msgid ":doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table." -msgstr "" -":doc:`pgr_nodeNetwork` - para crear nodos a una tabla de aristas sin nodos." - -msgid "Also ``l`` could be used as **driving side**" -msgstr "También `` l`` podía usarse como \"lado de manejo\"" - -msgid "" -"Edge :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) is not part of the " -"graph." -msgstr "" -"Arista :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) no es parte del " -"grafo." - -msgid "The set of vertices :math:`V`:" -msgstr "El conjunto de vértices :math:`V`:" - -msgid ":math:`2` (:math:`1 \\rightarrow 3`)" -msgstr ":math:`2` (:math:`1 \\rightarrow 3`)" - -msgid ":math:`3` (:math:`3 \\rightarrow 2`)" -msgstr ":math:`3` (:math:`3 \\rightarrow 2`)" - -msgid ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" -msgstr ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" - -msgid ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" -msgstr ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" - -msgid "" -"Personal relationships, genealogy, file dependency problems can be solved " -"using pgRouting. Those problems, normally, do not come with geometries " -"associated with the graph." -msgstr "" -"Relaciones personales, genealogía, problemas de dependencia de archivos " -"puede ser resueltos usando pgRouting. Esos problemas, normalmente, no vienen " -"con las geometrías asociadas con el grafo." - -msgid "pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid** [, ``directed``])" -msgstr "" -"pgr_dijkstra(`SQL de aristas`_, **salida**, **destino**, [``directed``])" - -msgid "" -"When ``true`` departing from a visited vertex will not try to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " -"identifier is allowed." -msgstr "" -"Cuando ``true`` saliendo de un vértice visitado no intentará evitar el uso " -"de la arista utilizada para alcanzarlo. En otras palabras, se permite la " -"vuelta en U usando la arista con el mismo identificador." - -msgid "" -"When ``false`` when a departing from a visited vertex tries to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " -"identifier is used when no other path is found." -msgstr "" -"Cuando ``false`` al salir de un vértice visitado intenta evitar el uso de la " -"arista utilizada para alcanzarlo. En otras palabras, se utiliza la vuelta en " -"U utilizando la arista con el mismo identificador cuando no se encuentra " -"ninguna otra ruta." - -msgid "Returned on `Many to One`_ and `Many to Many`_" -msgstr "Regresado en `Muchos a Uno`_ y `Muchos a Muchos`_" - -msgid "" -"Edit an existing `pgRouting Wiki `__ page." -msgstr "" -"Edita una página existente `Wiki de pgRouting `_." - -msgid "" -"And all the people that give us a little of their time making comments, " -"finding issues, making pull requests etc. in any of our products: " -"osm2pgrouting, pgRouting, pgRoutingLayer, workshop." -msgstr "" -"Y a toda la gente que nos regala un poco de su tiempo haciendo comentarios, " -"encontrando problemas, haciendo pull requests etc. en cualquiera de nuestros " -"productos: osm2pgrouting, pgRouting, pgRoutingLayer, workshop." - -msgid "" -"The minimum value of the ``agg_cost`` all instances of edge `(u, v)` is " -"going to be considered as the ``agg_cost`` of edge `(u, v)`" -msgstr "" -"El valor mínimo de ``agg_cost`` en todas las instancias de la arista `(u, " -"v)` se considera como el ``agg_cost`` de la arista `(u, v)`" - -msgid "" -"Visualy, The first image is the `optimal solution `__ and the second image is the solution " -"obtained with ``pgr_TSPeuclidean``." -msgstr "" -"Visualmente, la primera imagen es la `solución óptima `__ y la segunda imagen es la solución " -"obtenida con ``pgr_TSPeuclidean``." - -msgid "" -"The edge table to be analyzed must contain a source column and a target " -"column filled with id's of the vertices of the segments and the " -"corresponding vertices table _vertices_pgr that stores the " -"vertices information." -msgstr "" -"La tabla de aristas a analizar debe contener una columna origen y una " -"columna destino rellenas con identificadores de los vértices de los " -"segmentos y la correspondiente tabla de vértices _vertices_pgr " -"que almacena la información de los vértices." - -msgid "" -"``text`` Target column name of the network table. Default value is " -"``target``." -msgstr "" -"``text`` El nombre de la columna del destino del segmento. El valor por " -"defecto es ``target``." - -msgid "" -"``text`` Condition to select a subset or rows. Default value is ``true`` to " -"indicate all rows." -msgstr "" -"``text`` Condición para seleccionar un subconjunto o filas. Valor " -"predeterminado es ``true`` para indicar todas las filas." - -msgid "" -"Returns the analysis of the section of the network defined by ``rows_where``" -msgstr "" -"Devuelve el análisis de la sección de la red definida por ``rows_where``" - -msgid "``integer`` Indicator that the vertex might have a problem." -msgstr "``integer`` Indicador de que el vértice puede tener un problema." - -msgid "" -"``boolean`` flag to treat oneway NULL values as bi-directional. Default " -"value is ``true``." -msgstr "" -"``boolean`` bandera para tratar los valores NULL de oneway como " -"bidireccional. Valor predeterminado es``true``." - -msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" -"`pgr_analyzeGraph `." -msgstr "" -"``integer`` Indicador de que el vértice podría tener un problema. Consulte :" -"doc:`pgr_analyzeGraph `." - -msgid "" -"It is well-known that the shortest paths between a single source and all " -"other vertices can be found using Breadth First Search in :math:`O(|E|)` in " -"an unweighted graph, i.e. the distance is the minimal number of edges that " -"you need to traverse from the source to another vertex. We can interpret " -"such a graph also as a weighted graph, where every edge has the weight :math:" -"`1`. If not alledges in graph have the same weight, that we need a more " -"general algorithm, like Dijkstra's Algorithm which runs in :math:`O(|E|log|" -"V|)` time." -msgstr "" -"Es bien sabido que los caminos más cortos entre un único origen y todos los " -"demás vértices se pueden encontrar utilizando la búsqueda rápida en :math:" -"`O(|E|)` en un grafo no ponderado, es decir, la distancia es el número " -"mínimo de aristas que hay que recorrer desde el origen hasta otro vértice. " -"Podemos interpretar este grafo también como un grafo ponderado, en el que " -"cada arista tiene el peso :math:`1`. Si no todas las aristas del grafo " -"tienen el mismo peso, necesitaremos un algoritmo más general, como el " -"Algoritmo de Dijkstra, que se ejecuta en tiempo :math:`O(|E|log|V|)`." - -msgid "" -"The algorithm checks graph is bipartite or not. If it is bipartite then it " -"returns the node along with two colors `0` and `1` which represents two " -"different sets." -msgstr "" -"El algoritmo comprueba si el grafo es bipartito o no. Si es bipartito " -"entonces devuelve el nodo junto con dos colores `0` y `1` que representan " -"dos conjuntos diferentes." - -msgid "Returns set of |result-contract|" -msgstr "Regresa conjunto de |result-contract|" - -msgid "" -"``text`` Condition to SELECT a subset or rows. Default value is ``true`` to " -"indicate all rows that where ``source`` or ``target`` have a null value, " -"otherwise the condition is used." -msgstr "" -"``text`` Condición para SELECCIONAR un subconjunto de filas. El valor " -"predeterminado es ``true`` para indicar todas las filas donde ``source`` o " -"``target`` tienen un valor nulo, de lo contrario se utiliza la condición." - -msgid "``boolean`` Clean any previous topology. Default value is ``false``." -msgstr "" -"``boolean`` Limpia cualquier topología anterior. El valor por defecto es " -"``false``." - -msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" -"`pgr_analyzeGraph`." -msgstr "" -"``integer`` Indicador de que el vértice puede tener un problema. Véase :doc:" -"`pgr_analyzeGraph`." - -msgid "" -"The reconstruction of the vertices table function accepts the following " -"parameters:" -msgstr "" -"La función de reconstrucción de la tabla de vértices acepta los siguientes " -"parámetros:" - -msgid "" -"``text`` Condition to SELECT a subset or rows. Default value is ``true`` to " -"indicate all rows." -msgstr "" -"``text`` condición para seleccionar un subconjunto o filas. Valor " -"predeterminado es ``true`` para indicar todas las filas." - -msgid "" -":doc:`topology-functions` for an overview of a topology for routing " -"algorithms." -msgstr "" -":doc:`topology-functions` para una visión general de una topología para " -"algoritmos de enrutamiento." - -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" -msgstr "pgr_dagShortestPath(`SQL de aristas`_, **salida**, **destino**)" - -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" -msgstr "pgr_dagShortestPath(`SQL de aristas`_, **salida**, **destinos**)" - -msgid "From vertex :math:`5` to vertex :math:`11` on a **directed** graph" -msgstr "Del vértice :math:`5` al vértice :math:`11` en un grafo **dirigido**" - -msgid "" -"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, [``directed``])" -msgstr "" -"pgr_drivingDistance(`SQL de aristas`_, **Raíz**, **distancia**, " -"[``directed``])" - -msgid "" -"the chromatic number :math:`x'(G)` (minimum number of colors needed for " -"proper edge coloring of graph) is equal to the degree :math:`\\Delta + 1` of " -"the graph, (:math:`x'(G) = \\Delta`)" -msgstr "" -"el número cromático :math:`x'(G)` (número mínimo de colores necesarios para " -"colorear correctamente las aristas del grafo) es igual al grado :math:`" -"\\Delta + 1` del grafo, (:math:`x'(G) = \\Delta`)" - -msgid "" -"``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore algorithm." -msgstr "" -"``pgr_edwardMoore`` — Devuelve la ruta más cortas usando el algoritmo Edward-" -"Moore." - -msgid "" -"The geometry ``geom``, marked as **g1** and **g2** are the **original " -"points**" -msgstr "" - -msgid "" -"``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits " -"algorithm." -msgstr "" -"``pgr_hawickCircuits`` — Enumeración de los circuitos usando el algoritmo de " -"circutos de Hawick." - -msgid "The output table will have for ``edge_table_noded``" -msgstr "La tabla de salida que tendrá para ``edge_table_noded``" - -msgid "From vertex :math:`6` to vertex :math:`10` on an undirected graph." -msgstr "Del vértice :math:`6` al vértice :math:`10` en un grafo no dirigido." - -msgid "From vertex :math:`3` to vertex :math:`8` on a directed graph" -msgstr "Del vértice :math:`3` al vértice :math:`8` en un grafo dirigido" - -msgid "From vertex :math:`3` to vertex :math:`8` on an undirected graph" -msgstr "Del vértice :math:`3` al vértice :math:`8` en un grafo no dirigido" - -msgid "From vertex :math:`3` to vertex :math:`8` with more alternatives" -msgstr "Del vértice :math:`3` al vértice :math:`8` con más alternativas" - -# | msgid "From point :math:`1` to point :math:`3` and vertex :math:`5`." -msgid "" -"From point :math:`1` and vertex :math:`6` to point :math:`3` and vertex :" -"math:`1`" -msgstr "" -"Desde el punto :math:`1` y vértice :math:`6` al punto :math:`3` y vértice :" -"math:`1`" - -msgid "**options:** ``[directed, driving_side]``" -msgstr "**opciones:** ``[directed, driving_side]``" - -msgid "" -"From point :math:`15` and vertex :math:`6` to point :math:`3` and vertex :" -"math:`1`" -msgstr "" -"Del punto :math:`15` y vértice :math:`6` al punto :math:`3` y vértice :math:" -"`1`" - -msgid "**options:** ``[directed, heap_paths, details]``" -msgstr "**opciones:** ``[directed, heap_paths, details]``" - -msgid "" -"`#232 `__: Honor client " -"cancel requests in C /C++ code" -msgstr "" -"`#232 `__: Honrar " -"cancelación de las solicitudes de código C /C++" - -msgid "pgr_labelGraph - Use the components family of functions instead." -msgstr "pgr_labelGraph - Utilizar la familia de componentes en su lugar." - -msgid "pgr_dijkstra -- to match what is documented" -msgstr "pgr_dijkstra -- para que coincida con lo documentado" - -msgid "pgr_apspWarshall use pgr_floydWarshall instead" -msgstr "pgr_apspWarshall utilizar pgr_floydWarshall en su lugar" - -msgid "pgr_apspJohnson use pgr_Johnson instead" -msgstr "pgr_apspJohnson utilizar pgr_Johnson en su lugar" - -msgid "Starting on PostgreSQL 12::" -msgstr "A partir de PostgreSQL 12::" - -msgid "Result columns" -msgstr "Columnas de resultados" - -msgid "Returns set of ``(seq, depth, start_vid, node, edge, cost, agg_cost)``" -msgstr "" -"Devuelve el conjunto de ``(seq, depth, start_vid, node, edge, cost, " -"agg_cost)``" - -msgid "aStar optional parameters" -msgstr "Parámetros opcionales de aStar" - -msgid "Returns set of ``(vertex_id, color_id)``" -msgstr "Regresa el conjunto de ``(vertex_id, color_id)``" - -msgid "Returns set of ``(edge_id, color_id)``" -msgstr "Regresa el conjunto de ``(edge_id, color_id)``" - -msgid "Returns set of |result-spantree|" -msgstr "Regresa el conjunto de |result-spantree|" - -msgid "Be aware of the existance of the additional result Columns." -msgstr "" -"Tener en cuenta la existencia de las columnas de adicionales de resultados." - -msgid ":doc:`sampledata`: a small graph used in the documentation examples" -msgstr "" -":doc:`sampledata`: un pequeño grafo utilizado en los ejemplos de la " -"documentación" - -msgid "" -"Capacity information, used in the :doc:`flow-family` functions does not need " -"to change when splitting edges." -msgstr "" -"La información de capacidad, utilizada en las funciones :doc:`flow-family` " -"no necesita cambiar al dividir aristas." - -msgid "Used in combination signatures" -msgstr "Utilizado en combinación firmas" - -msgid "Result columns for a path" -msgstr "Columnas de resultados para una ruta" - -msgid "Used in functions that return one path solution" -msgstr "" - -msgid "Used in functions the following:" -msgstr "Se utiliza en las funciones siguientes:" - -msgid "Result columns for cost functions" -msgstr "Columnas de resultados de las funciones de costes" - -msgid "Result columns for flow functions" -msgstr "Columnas de resultados para funciones de flujo" - -msgid "Result columns for spanning tree functions" -msgstr "Columnas de resultados para funciones de árbol de expansión" - -msgid "Returns set of ``(edge, cost)``" -msgstr "Regresa el conjunto de ``(edge, cost)``" - -msgid "Result columns standarized to: |nksp-result|" -msgstr "Columnas de resultados estandarizadas a: |nksp-result|" - -msgid "Returns set of |tsp-result|" -msgstr "Regresa el conjunto de |nksp-result|" - -msgid "Returns set of |short-generic-result|" -msgstr "Regresa el conjunto de |short-generic-result|" - -msgid "Returns set of |matrix-result|" -msgstr "Regresa el conjunto de |matrix-result|" - -msgid "Result columns change: ``seq`` is removed" -msgstr "Cambio de columnas de resultados: ``seq`` se elimina" - -msgid "Returns set of |old-generic-result|" -msgstr "Regresa el conjunto de |old-generic-result|" - -msgid "Returns set of |result-1-1|" -msgstr "Regresa el conjunto de |result-1-1|" - -msgid "Returns set of |result-1-m|" -msgstr "Regresa el conjunto de |result-1-m|" - -msgid "Returns set of |result-m-1|" -msgstr "Regresa el conjunto de |result-m-1|" - -msgid "Result columns change:" -msgstr "Las columnas de resultados cambian:" - -msgid "Returns set of |result-node-color|" -msgstr "Regresa el conjunto de |result-node-color|" - -msgid "Returns set of |result-flow|" -msgstr "Regresa el conjunto de |result-flow|" - -msgid "Returns set of |result-bfs|" -msgstr "Regresa el conjunto de |result-bfs|" - -msgid "Returns set of |result-1-1-no-seq|" -msgstr "Regresa el conjunto de |result-1-1-no-seq|" - -msgid "We get the sameresult as the simplest way to use the function." -msgstr "" -"Se obtiene el mismo resultado que la forma más sencilla de utilizar la " -"función." - -msgid "Returns set of |result-node-order|" -msgstr "Regresa el conjunto de |result-node-order|" - -msgid "Returns set of ``(seq, node)``" -msgstr "Regresa el conjunto de ``(seq, node)``" - -msgid "Returns set of |via-result|" -msgstr "Regresa el conjunto de |via-result|" - -msgid "Returns set of |result-edge-color|" -msgstr "Regresa el conjunto de |result-edge-color|" - -msgid "Returns set of |result-disjoint|" -msgstr "Regresa el conjunto de |result-disjoint|" - -msgid "Returns set of |result-disjoint-1-1|" -msgstr "Regresa el conjunto de |result-disjoint-1-1|" - -msgid "Returns set of |result-disjoint-1-m|" -msgstr "Regresa el conjunto de |result-disjoint-1-m|" - -msgid "Returns set of |result-disjoint-m-1|" -msgstr "Regresa el conjunto de |result-disjoint-m-1|" - -msgid "Returns set of |result-disjoint-m-m|" -msgstr "Regresa el conjunto de |result-disjoint-m-m|" - -msgid "Returns set of |generic-result|" -msgstr "Regresa el conjunto de |generic-result|" - -msgid "Returns set of |result-mst|" -msgstr "Regresa el conjunto de |result-mst|" - -msgid "Returns set of |result-idom|" -msgstr "Regresa el conjunto de |result-idom|" - -msgid "Returns set of |result-lineg|" -msgstr "Regresa el conjunto de |result-lineg|" - -msgid "Returns set of |result-linegf|" -msgstr "Regresa el conjunto de |result-linegf|" - -msgid "Returns set of |result-flow-mincost|" -msgstr "Regresa el conjunto de |result-flow-mincost|" - -msgid "Before image" -msgstr "Imágen del antes" - -msgid "After image" -msgstr "Imágen del después" - -msgid "Returns set of |result-pickdrop|" -msgstr "Regresa el conjunto de |result-pickdrop|" - -msgid "Returns set of |result-mincut|" -msgstr "Regresa el conjunto de |result-mincut|" - -msgid "Returns set of |result-closure|" -msgstr "Regresa el conjunto de |result-closure|" - -msgid "New proposed signatures" -msgstr "Nuevas firmas propuestas" - -msgid "Deprecated signatures" -msgstr "Firmas obsoletas" - -msgid "New prototypes" -msgstr "Nuevos prototipos" - -msgid "Returns set of |ksp-result|" -msgstr "Regresa el conjunto de |ksp-result|" - -msgid "Returns set of |old-pid-result|" -msgstr "Regresa el conjunto de |old-pid-result|" - -msgid "Returns set of |pid-1-m|" -msgstr "Regresa el conjunto de |pid-1-m|" - -msgid "Returns set of |pid-m-1|" -msgstr "Regresa el conjunto de |pid-m-1|" - -msgid "Returns set of |pid-m-m|" -msgstr "Regresa el conjunto de |pid-m-m|" - -msgid "Returns set of |matrix-pid|" -msgstr "Regresa el conjunto de |matrix-pid|" - -msgid "" -"Point :math:`-1` corresponds to the closest edge from point :math:`(2.9, " -"1.8)`." -msgstr "" -"El punto :math:`-1` corresponde a la arista más cercana al punto `(2.9, " -"1.8)`." - -msgid "" -"Point :math:`-2` corresponds to the next close edge from point :math:`(2.9, " -"1.8)`." -msgstr "" -"El punto :math:`-2` corresponde a la segunda arista más cercana al punto " -"`(2.9, 1.8)`." - -msgid "New overload functions" -msgstr "Nuevas funciones de sobrecarga" - -msgid "Backport issue fixes" -msgstr "Corrección de problemas atrasados" - -msgid "Renamed functions" -msgstr "Funciones renombradas" - -msgid "Deprecated Function" -msgstr "Funcion Obsoleta" - -msgid "Proposed Functionality" -msgstr "Funcionalidad Propuesta" - -msgid "Renamed and Deprecated Function" -msgstr "Función Renombrada y Obsoleta" - -msgid "**Used in:**" -msgstr "**Usado en:**" - -msgid "Used in all Via functions" -msgstr "Usado en todas las funciones Via" - -msgid "" -"That information is correct, for example, when in terms of vehicles, is it a " -"tunnel or bridge crossing over another road." -msgstr "" -"Esa información es correcta, por ejemplo, cuando en términos de vehículos, " -"es un túnel o puente cruczando sobre otra carretera." - -#, fuzzy +#~ msgid "" +#~ "`Wikipedia: Graph Coloring `__" +#~ msgstr "" +#~ "`Wikipedia: Coloración de grafos `__" + +#~ msgid "There is no flow when a **source** is the same as a **target**." +#~ msgstr "" +#~ "No hay ningún flujo cuando el **orígen** es el mismo que el **destino**." + +#~ msgid "Any duplicated value in the source(s) or target(s) are ignored." +#~ msgstr "" +#~ "Cualquier valor duplicado en el/los orígen(es) o en el/los destino(s) " +#~ "será ignorado." + +#~ msgid "" +#~ "Creates a **super source** and edges to all the source(s), and a **super " +#~ "target** and the edges from all the targets(s)." +#~ msgstr "" +#~ "Crea una **súper origen**, con aristas para todos las fuentes(es), y un " +#~ "**súper destino** con aristas para todos los destino(s)." + +#~ msgid "" +#~ "There are several kinds of valid inner queries and also the columns " +#~ "returned are depending of the function. Which kind of inner query will " +#~ "depend on the function(s) requirements. To simplify variety of types, " +#~ "**ANY-INTEGER** and **ANY-NUMERICAL** is used." +#~ msgstr "" +#~ "Hay varios tipos de consultas internas válidas y también las columnas " +#~ "devueltas dependen de la función. El tipo de consulta interna dependerá " +#~ "de los requisitos de las funcion(es). Para simplificar la variedad de " +#~ "tipos, se utiliza **ENTEROS** y **FLOTANTES**." + +#~ msgid "wget" +#~ msgstr "wget" + +#~ msgid "" +#~ "``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* " +#~ "algorithm." +#~ msgstr "" +#~ "``pgr_aStarCost`` —Costo total de la ruta más corta usando el algoritmo :" +#~ "A*." + +#~ msgid "" +#~ "The ``pgr_aStarCost`` function sumarizes of the cost of the shortest " +#~ "path(s) using the A* algorithm." +#~ msgstr "" +#~ "La función ``pgr_aStarCost`` sumarisa el costo de la ruta más corta " +#~ "usando el algoritmo A*." + +#~ msgid "" +#~ "``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the " +#~ "bidirectional A* algorithm." +#~ msgstr "" +#~ "``pgr_bdAstarCost`` - Devuelve el costo agregado de la ruta más corta " +#~ "usando el algoritmo bidireccional A*." + +#~ msgid "" +#~ "The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest " +#~ "path(s) using the bidirectional A* algorithm." +#~ msgstr "" +#~ "La función ``pgr_bdAstarCost`` Sumariza el costo del camino más corto " +#~ "utilizando el algoritmo bidireccional A*." + +#~ msgid "" +#~ "``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional " +#~ "Dijkstra algorithm." +#~ msgstr "" +#~ "``pgr_bdDijkstra`` — Devuelve la(s) rutas más cortas mediante el " +#~ "algoritmo Bidirectional Dijkstra." + +#~ msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +#~ msgstr "" +#~ "pgr_bdDijkstra(`SQL de aristas`_, `SQL de combinaciones`_, [``directed``])" + +#~ msgid "" +#~ "``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using " +#~ "Bidirectional Dijkstra algorithm." +#~ msgstr "" +#~ "``pgr_bdDijkstraCost`` — Devuelve la ruta(s) más corta utilizando el " +#~ "algoritmo de Dijkstra Bidireccional." + +#~ msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +#~ msgstr "" +#~ "``pgr_bellmanFord`` —Camino m+as corto usando el algoritmo de Bellman-" +#~ "Ford." + +#~ msgid "Identifier of the vertex" +#~ msgstr "Identificador del vértice" + +#~ msgid "" +#~ "``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a " +#~ "binary graph." +#~ msgstr "" +#~ "``pgr_binaryBreadthFirstSearch`` — Regresa los caminos más cortos en un " +#~ "grafo binario." + +#~ msgid "" +#~ "``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted " +#~ "directed acyclic graphs(DAG). In particular, the DAG shortest paths " +#~ "algorithm implemented by Boost.Graph." +#~ msgstr "" +#~ "``pgr_dagShortestPath`` — Devuelve la(s) rutas más cortas para los grafos " +#~ "acíclicos dirigidos ponderados (DAG). En particular, el algoritmo de " +#~ "rutas más cortas de DAG implementado por Boost.Graph." + +#~ msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." +#~ msgstr "" +#~ "``pgr_dijkstra`` — Ruta(s) más corta(s) usando el algoritmo Dijkstra." + +#~ msgid "" +#~ "``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra " +#~ "algorithm." +#~ msgstr "" +#~ "``pgr_dijkstraCost`` - Costo total de los caminos más cortos usando el " +#~ "algoritmo de Dijkstra." + +#~ msgid "" +#~ "The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest " +#~ "path(s) using Dijkstra Algorithm." +#~ msgstr "" +#~ "La función ``pgr_dijkstraCost`` function sumarizes el costo de los " +#~ "caminos más cortos usando el algoritmo de Dijkstra." + +#~ msgid "" +#~ "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that " +#~ "order on an **directed** graph." +#~ msgstr "" +#~ "Encontrar la ruta que visita los vértices :math:`\\{ 5, 1, 8\\}` en ese " +#~ "orden, en un grafo dirigido." + +#~ msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." +#~ msgstr "Calcula el flujo máximo desde `source(s)` a `target(s)`." + +#~ msgid "" +#~ "Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that " +#~ "order on an directed graph." +#~ msgstr "" +#~ "Encontrar la ruta que visita los vértices :math:`\\{ 5, 1, 8\\}` en ese " +#~ "orden, en un grafo dirigido." + +#~ msgid "" +#~ "Modify the graph to include points defined by points_sql. Using Dijkstra " +#~ "algorithm, find the shortest path(s)" +#~ msgstr "" +#~ "Modificar el grafo para incluir puntos definidos por points_sql. Usando " +#~ "el algoritmo Dijkstra, busar la o las rutas más cortas" + +#~ msgid "" +#~ "``pgr_withPointsCost`` - Calculates the shortest path and returns only " +#~ "the aggregate cost of the shortest path(s) found, for the combination of " +#~ "points given." +#~ msgstr "" +#~ "``pgr_withPointsCost`` - Calcula la ruta más corta y devuelve solo el " +#~ "costo agregado de la(s) rutas más cortas encontradas, para la combinación " +#~ "de puntos dados." + +#~ msgid "" +#~ "Modify the graph to include points defined by points_sql. Using Dijkstra " +#~ "algorithm, return only the aggregate cost of the shortest path(s) found." +#~ msgstr "" +#~ "Modifica el grafo para incluir puntos definidos por points_sql. Con el " +#~ "algoritmo Dijkstra, devuelva solo el costo agregado de la(s) rutas más " +#~ "cortas encontradas." diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po index 44cf7bd2b9..23de982c4f 100644 --- a/locale/ja/LC_MESSAGES/index.po +++ b/locale/ja/LC_MESSAGES/index.po @@ -5,11 +5,11 @@ # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" -"PO-Revision-Date: 2022-09-29 15:27+0000\n" -"Last-Translator: Celia Virginia Vergara Castillo \n" +"PO-Revision-Date: 2024-05-01 03:45+0000\n" +"Last-Translator: Celia Virginia Vergara Castillo \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 5.4.3\n" "Generated-By: Babel 2.9.1\n" #: ../../build/doc/index.rst:12 @@ -283,7 +283,7 @@ msgstr "" #: ../../build/doc/BFS-category.rst:3 ../../build/doc/kruskal-family.rst:4 msgid ":doc:`pgr_kruskalBFS`" -msgstr "" +msgstr ":doc:`pgr_kruskalBFS`" #: ../../build/doc/kruskal-family.rst:5 msgid ":doc:`pgr_kruskalDD`" @@ -304,7 +304,7 @@ msgstr "" #: ../../build/doc/BFS-category.rst:4 ../../build/doc/prim-family.rst:4 msgid ":doc:`pgr_primBFS`" -msgstr "" +msgstr ":doc:`pgr_primBFS`" #: ../../build/doc/prim-family.rst:5 msgid ":doc:`pgr_primDD`" diff --git a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po index fd46756a90..2483eefa9c 100644 --- a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po @@ -16,14 +16,14 @@ # Jin Igarashi , 2021 # Ko Nagase , 2021 # Celia Virginia Vergara Castillo , 2022. -# +# Celia Virginia Vergara Castillo , 2024. msgid "" msgstr "" -"Project-Id-Version: PROJECT VERSION\n" +"Project-Id-Version: PROJECT VERSION 3.6.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-19 19:56+0000\n" -"PO-Revision-Date: 2022-09-29 19:13+0000\n" -"Last-Translator: Celia Virginia Vergara Castillo \n" +"POT-Creation-Date: 2024-10-10 03:40+0000\n" +"PO-Revision-Date: 2024-09-23 01:16+0000\n" +"Last-Translator: Celia Virginia Vergara Castillo \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -31,23 +31,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 5.4.3\n" "Generated-By: Babel 2.10.3\n" msgid "BFS - Category" -msgstr "" +msgstr "BFS - カテゴリ" msgid ":doc:`pgr_kruskalBFS`" -msgstr "" +msgstr ":doc:`pgr_kruskalBFS`" msgid ":doc:`pgr_primBFS`" -msgstr "" +msgstr ":doc:`pgr_primBFS`" msgid "Traversal using breadth first search." msgstr "" msgid "It's implementation is only on **undirected** graph." -msgstr "" +msgstr "実装は**undirected**グラフのみです。" msgid "Process is done only on edges with positive costs." msgstr "" @@ -282,8 +282,8 @@ msgid "" msgstr "" msgid "" -"`Wikipedia: Prim's algorithm `__" +"`Wikipedia: Prim's algorithm `__" msgstr "" msgid "" @@ -1481,7 +1481,7 @@ msgstr "" msgid "16.5" msgstr "" -msgid ":math:`10.5 / 60 = 0.175`" +msgid ":math:`10.5 / 60 = 0.175`" msgstr "" msgid "minutes" @@ -2681,8 +2681,8 @@ msgid "" msgstr "" msgid "" -"The **aggregate cost** the non included values :math:`(u, v)` is :math:`" -"\\infty`" +"The **aggregate cost** the non included values :math:`(u, v)` is :math:" +"`\\infty`" msgstr "" msgid "" @@ -2789,10 +2789,6 @@ msgid "" "graph/doc/edge_coloring.html>`__" msgstr "" -msgid "" -"`Wikipedia: Graph Coloring `__" -msgstr "" - msgid "Components - Family of functions" msgstr "" @@ -3410,13 +3406,13 @@ msgstr "" msgid ":doc:`pgr_aStarCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdAstarCostMatrix`" +msgid ":doc:`pgr_dijkstraCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdDijkstraCostMatrix`" +msgid ":doc:`pgr_bdAstarCostMatrix`" msgstr "" -msgid ":doc:`pgr_dijkstraCostMatrix`" +msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr "" msgid "proposed" @@ -3438,8 +3434,8 @@ msgid "Can be used as input to :doc:`pgr_TSP`." msgstr "" msgid "" -"Use directly when the resulting matrix is symmetric and there is no :math:`" -"\\infty` value." +"Use directly when the resulting matrix is symmetric and there is no :math:" +"`\\infty` value." msgstr "" msgid "It will be the users responsibility to make the matrix symmetric." @@ -3706,12 +3702,13 @@ msgstr ":math:`V = source \\cup target \\cup {start_{vid}} \\cup {end_{vid}}`" msgid "the set of edges :math:`E`" msgstr "エッジのセット:math:`E`" +#, fuzzy msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = " -"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " +"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " "\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost " "\\neq \\varnothing \\\\ \\end{cases}`" msgstr "" @@ -3732,26 +3729,26 @@ msgstr "重みづけされた無向グラフ :math:'G_u(V,E)''は、次のよう msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgstr ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" +#, fuzzy msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & " -"\\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } " -"cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, " -"reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ " -"\\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse" -"\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\" -"\\ \\end{cases}`" +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " +"target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " +"\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" msgstr "" ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " -"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } reverse" -"\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ \\text{ } " -"\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ " -"\\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " "target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " "\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" @@ -3779,11 +3776,11 @@ msgid "Then:" msgstr "その次に:" msgid "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgstr "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgid "where:" msgstr "どこに:" @@ -3938,11 +3935,6 @@ msgstr "" msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." msgstr "start_vid から end_vid まで行くのにかかるコスト" -msgid "" -"Column ``pred`` only applies to :doc:`pgr_drivingDistance` and :doc:" -"`pgr_withPointsDD`." -msgstr "" - msgid "Experimental Functions" msgstr "" @@ -3967,10 +3959,6 @@ msgstr "" msgid ":doc:`transformation-family`" msgstr "" -msgid "" -":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." -msgstr "" - msgid "" ":doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line " "Graph out of each vertex in the input graph." @@ -3999,6 +3987,15 @@ msgid "" "an undirected graph." msgstr "" +#, fuzzy +msgid ":doc:`metrics-family`" +msgstr ":doc:`ordering-family`" + +msgid "" +":doc:`pgr_betweennessCentrality` - Calculates relative betweenness " +"centrality using Brandes Algorithm" +msgstr "" + msgid ":doc:`TRSP-family`" msgstr "" @@ -4088,10 +4085,10 @@ msgid "" "returned." msgstr "" -msgid "There is no flow when a **source** is the same as a **target**." +msgid "There is no flow when source has the same vaule as target." msgstr "" -msgid "Any duplicated value in the source(s) or target(s) are ignored." +msgid "Any duplicated values in source or target are ignored." msgstr "" msgid "Calculates the flow/residual capacity for each edge. In the output" @@ -4100,9 +4097,13 @@ msgstr "" msgid "Edges with zero flow are omitted." msgstr "" -msgid "" -"Creates a **super source** and edges to all the source(s), and a **super " -"target** and the edges from all the targets(s)." +msgid "Creates" +msgstr "" + +msgid "a **super source** and edges from it to all the sources," +msgstr "" + +msgid "a **super target** and edges from it to all the targetss." msgstr "" msgid "" @@ -4253,8 +4254,8 @@ msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" msgstr "" msgid "" -"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse" -"\\_capacity_i)\\}`" +"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " +"reverse\\_capacity_i)\\}`" msgstr "" msgid "Graph definition" @@ -4276,8 +4277,8 @@ msgid "" "\\text{ when } capacity > 0 \\} & \\quad \\text{ if } reverse\\_capacity = " "\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, " "capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse" -"\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " +"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } " +"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " "\\varnothing \\\\ \\end{cases}`" msgstr "" @@ -4458,6 +4459,112 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.7.0 `__" +msgstr "" + +msgid "Support" +msgstr "サポート" + +msgid "" +"`#2656 `__ Stop support of " +"PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + +msgid "New experimental functions" +msgstr "" + +msgid "Metrics" +msgstr "" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "" + +msgid "" +"`#2605 `__ Standarize " +"spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "" + +msgid "``pgr_kruskalDD``" +msgstr "" + +msgid "``pgr_kruskalDFS``" +msgstr "" + +msgid "``pgr_kruskalBFS``" +msgstr "" + +msgid "``pgr_primDD``" +msgstr "" + +msgid "``pgr_primDFS``" +msgstr "" + +msgid "``pgr_primBFS``" +msgstr "" + +msgid "Standarizing output columns to |result-spantree|" +msgstr "" + +msgid "Added ``pred`` result columns." +msgstr "" + +msgid "Experimental promoted to proposed." +msgstr "" + +msgid "" +"`#2635 `__ pgr_LineGraph " +"ignores directed flag and use negative values for identifiers." +msgstr "" + +msgid "``pgr_lineGraph``" +msgstr "" + +msgid "Promoted to **proposed** signature." +msgstr "" + +#, fuzzy +msgid "Works for directed and undirected graphs." +msgstr "導かれないグラフ。" + +msgid "Code enhancement" +msgstr "" + +msgid "" +"`#2599 `__ Driving " +"distance cleanup" +msgstr "" + +msgid "" +"`#2607 `__ Read postgresql " +"data on C++" +msgstr "" + +msgid "" +"`#2614 `__ Clang tidy does " +"not work" +msgstr "" + +msgid "All releases" +msgstr "" + msgid "Kruskal - Family of functions" msgstr "" @@ -4479,6 +4586,10 @@ msgstr "" msgid "Kruskal's running time: :math:`O(E * log E)`" msgstr "" +#, fuzzy +msgid "Metrics - Family of functions" +msgstr "ダイクストラ関連機能" + msgid "Migration guide" msgstr "" @@ -4544,7 +4655,7 @@ msgstr "" msgid "Migration" msgstr "" -msgid "Be aware of the existance of the additional columns." +msgid "Be aware of the existence of the additional columns." msgstr "" msgid "In ``pgr_aStar`` (`One to One`)" @@ -4658,7 +4769,7 @@ msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_drivingDistance` result columns are being standarized." +"doc:`pgr_drivingDistance` result columns are being standardized." msgstr "" msgid "from" @@ -4691,7 +4802,7 @@ msgstr "" msgid "does not have ``depth`` result column." msgstr "" -msgid "Be aware of the existance and name change of the result columns." +msgid "Be aware of the existence and name change of the result columns." msgstr "" msgid "" @@ -4721,16 +4832,77 @@ msgid "The ``from_v`` result column name changes to ``start_vid``." msgstr "" msgid "" -"If needed filter out and rename colums, for example, to return the original " +"If needed filter out and rename columns, for example, to return the original " "columns:" msgstr "" +msgid "" +"Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :doc:`pgr_kruskalDFS` result " +"columns are being standardized." +msgstr "" + +msgid "|result-bfs|" +msgstr "" + +msgid "Single vertex" +msgstr "" + +msgid "Multiple vertices" +msgstr "" + +msgid "Output columns were |result-bfs|" +msgstr "" + +msgid "Single vertex and Multiple vertices" +msgstr "" + +msgid "Do not have ``pred`` result column." +msgstr "" + +msgid "Be aware of the existence of `pred` result columns." +msgstr "" + +msgid "If needed filter out the added columns" +msgstr "" + +msgid "Kruskal single vertex" +msgstr "" + +msgid "" +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + +#, fuzzy +msgid "" +"Now column ``pred`` exists and contains the predecessor of the ``node``." +msgstr "" +":math:'agg\\_cost' は、:math:'start_{vid}' からノードまでのコストです。" + +msgid "Kruskal multiple vertices" +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + msgid "Migration of ``pgr_KSP``" msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_KSP` result columns are being standarized." +"doc:`pgr_KSP` result columns are being standardized." msgstr "" msgid "|ksp-result|" @@ -4830,12 +5002,42 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns " +"are being standardized." +msgstr "" + +msgid "Prim single vertex" +msgstr "" + +msgid "" +"Using ``pgr_primDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + +msgid "Prim multiple vertices" +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + msgid "Migration of ``pgr_withPointsDD``" msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsDD` result columns are being standarized." +"doc:`pgr_withPointsDD` result columns are being standardized." msgstr "" msgid "|result-generic-no-seq|" @@ -4860,7 +5062,7 @@ msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." msgstr "" msgid "" -"``driving_side`` parameter was named optional now it is compulsory unamed." +"``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "" msgid "``pgr_withPointsDD`` (`Multiple vertices`)" @@ -4913,7 +5115,7 @@ msgstr "" msgid "After Migration" msgstr "もっと詳しく知る" -msgid "Be aware of the existance of the additional result Columns." +msgid "Be aware of the existence of the additional result Columns." msgstr "" msgid "New output columns are |result-spantree|" @@ -4977,7 +5179,7 @@ msgstr "" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsKSP` result columns are being standarized." +"doc:`pgr_withPointsKSP` result columns are being standardized." msgstr "" msgid "" @@ -5565,8 +5767,8 @@ msgstr "" msgid "" ":math:`E = \\begin{split} \\begin{align} & {\\{(source_{id}, target_{id}, " "cost_{id}) \\text{ when } cost_{id} >=0 \\}} \\\\ & \\cup \\\\ & " -"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } reverse" -"\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" +"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } " +"reverse\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" msgstr "" msgid "" @@ -5579,9 +5781,8 @@ msgid "" "negative are part of the graph." msgstr "" -#, fuzzy msgid "The set of vertices :math:`V`:" -msgstr "ノードのセット :math:`V`" +msgstr "ノードのセット :math:`V`:" msgid "In a directed graph both edges have directionality" msgstr "" @@ -6442,8 +6643,8 @@ msgstr "" msgid "" "There are several kinds of valid inner queries and also the columns returned " "are depending of the function. Which kind of inner query will depend on the " -"function(s) requirements. To simplify variety of types, **ANY-INTEGER** and " -"**ANY-NUMERICAL** is used." +"function's requirements. To simplify the variety of types, **ANY-INTEGER** " +"and **ANY-NUMERICAL** is used." msgstr "" msgid "Edges SQL for" @@ -6872,9 +7073,6 @@ msgid "" "pgrouting/releases/latest" msgstr "" -msgid "wget" -msgstr "" - msgid "To download this release:" msgstr "" @@ -6915,7 +7113,7 @@ msgid "Upgrading the database" msgstr "" msgid "" -"To upgrade pgRouting in the database to version 3.6.0 use the following " +"To upgrade pgRouting in the database to version 3.7.0 use the following " "command:" msgstr "" @@ -7250,13 +7448,15 @@ msgstr "貢献者" msgid "This Release Contributors" msgstr "このリリースに対する貢献者" -msgid "Individuals in this release (in alphabetical order)" -msgstr "" +#, fuzzy +msgid "Individuals in this release v3.7.x (in alphabetical order)" +msgstr "個人(アルファベット順)" -msgid "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, " -"Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, " -"Virginia Vergara, Yige Huang" +#, fuzzy +msgid "(Alphabetical order)" +msgstr "個人(アルファベット順)" + +msgid "Regina Obe, Vicky Vergara" msgstr "" msgid "" @@ -7275,7 +7475,10 @@ msgstr "" "これらは、デベロッパーが開発に要する時間、ホスティング、また pgRoutingプロ" "ジェクトへ直接資金を支援してくださっているスポンサー企業です。" -msgid "`Georepublic `__" +msgid "`OSGeo `__" +msgstr "" + +msgid "`OSGeo UK `__" msgstr "" msgid "`Google Summer of Code `__" @@ -7329,6 +7532,12 @@ msgstr "" msgid "Orkney" msgstr "" +msgid "OSGeo" +msgstr "" + +msgid "OSGeo UK" +msgstr "" + msgid "Paragon Corporation" msgstr "" @@ -7356,9 +7565,7 @@ msgstr "" msgid "Boost C++ source libraries at https://www.boost.org." msgstr "" -msgid "" -"The Migration guide from 2.6 can be found at https://github.com/pgRouting/" -"pgrouting/wiki/Migration-Guide." +msgid ":doc:`migration`" msgstr "" msgid "pgr_KSP" @@ -7383,9 +7590,8 @@ msgstr "" msgid "Added ``start_vid`` and ``end_vid`` result columns." msgstr "" -#, fuzzy msgid "New overload functions:" -msgstr "新しい **公式** 機能" +msgstr "新しい **公式** 機能:" msgid "``pgr_ksp`` (One to Many)" msgstr "" @@ -7991,10 +8197,10 @@ msgstr "" msgid "pgr_aStarCost" msgstr "" +#, fuzzy msgid "" -"``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* " -"algorithm." -msgstr "" +"``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm." +msgstr ":doc:`pgr_dijkstraCost` - 最短経路の総コストを集計します。" msgid "``pgr_aStarCost`` (`Combinations`_)" msgstr "" @@ -8003,7 +8209,7 @@ msgid "New **proposed** function" msgstr "" msgid "" -"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path(s) " +"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path " "using the A* algorithm." msgstr "" @@ -8119,9 +8325,6 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" -msgid "Support" -msgstr "サポート" - msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -8719,7 +8922,7 @@ msgid "pgr_bdAstarCost" msgstr "" msgid "" -"``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the " +"``pgr_bdAstarCost`` - Total cost of the shortest path using the " "bidirectional A* algorithm." msgstr "" @@ -8727,8 +8930,8 @@ msgid "``pgr_bdAstarCost`` (`Combinations`_)" msgstr "" msgid "" -"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest " -"path(s) using the bidirectional A* algorithm." +"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path " +"using the bidirectional A* algorithm." msgstr "" msgid "" @@ -8768,8 +8971,8 @@ msgid "``pgr_bdDijkstra``" msgstr "" msgid "" -"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional " -"Dijkstra algorithm." +"``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra " +"algorithm." msgstr "" msgid "pgr_bdDijkstra(`Combinations`_)" @@ -8809,7 +9012,7 @@ msgid "" "pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" msgid "Returns set of |old-generic-result|" @@ -8841,15 +9044,12 @@ msgid "" "**undirected** graph" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "" - msgid "Using a combinations table on an **undirected** graph" msgstr "" msgid "" -"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP" -"%20shortest%20path%20algorithms.pdf" +"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/" +"EPP%20shortest%20path%20algorithms.pdf" msgstr "" msgid "https://en.wikipedia.org/wiki/Bidirectional_search" @@ -8859,7 +9059,7 @@ msgid "``pgr_bdDijkstraCost``" msgstr "" msgid "" -"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using " +"``pgr_bdDijkstraCost`` — Returns the shortest path's cost using " "Bidirectional Dijkstra algorithm." msgstr "" @@ -8921,7 +9121,7 @@ msgstr "" msgid "``pgr_bellmanFord - Experimental``" msgstr "" -msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" msgid "New **experimental** signature:" @@ -9020,61 +9220,156 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "" -msgid "``pgr_biconnectedComponents``" +msgid "``pgr_betweennessCentrality``" msgstr "" msgid "" -"``pgr_biconnectedComponents`` — Biconnected components of an undirected " -"graph." +"``pgr_betweennessCentrality`` - Calculates the relative betweeness " +"centrality using Brandes Algorithm" msgstr "" #, fuzzy -msgid "Result columns change:" -msgstr "結果として返却されるカラム" +msgid "Version 3.7.0" +msgstr "バージョン 3.0.0" -msgid "``n_seq`` is removed" +msgid "New **experimental** function:" msgstr "" -msgid "``seq`` changed type to ``BIGINT``" +msgid "" +"The Brandes Algorithm takes advantage of the sparse graphs for evaluating " +"the betweenness centrality score of all vertices." msgstr "" msgid "" -"The biconnected components of an undirected graph are the maximal subsets of " -"vertices such that the removal of a vertex from particular component will " -"not disconnect the component. Unlike connected components, vertices may " -"belong to multiple biconnected components. Vertices can be present in " -"multiple biconnected components, but each edge can only be contained in a " -"single biconnected component." +"Betweenness centrality measures the extent to which a vertex lies on the " +"shortest paths between all other pairs of vertices. Vertices with a high " +"betweenness centrality score may have considerable influence in a network by " +"the virtue of their control over the shortest paths passing between them." msgstr "" -msgid "Components are described by edges." +msgid "" +"The removal of these vertices will affect the network by disrupting the it, " +"as most of the shortest paths between vertices pass through them." msgstr "" -msgid "``component`` ascending." +#, fuzzy +msgid "This implementation work for both directed and undirected graphs." +msgstr "導かれないグラフ。" + +msgid "Running time: :math:`\\Theta(VE)`" msgstr "" -msgid "``edge`` ascending." +msgid "Running space: :math:`\\Theta(VE)`" msgstr "" -msgid "pgr_biconnectedComponents(`Edges SQL`_)" +msgid "Throws when there are no edges in the graph" msgstr "" -msgid "Returns set of |result-component-E|" +#, fuzzy +msgid "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" +msgstr "p" + +#, fuzzy +msgid "Returns set of ``(vid, centrality)``" +msgstr "``(seq, node, cost, agg_cost)`` の1セットを返却します" + +msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." msgstr "" -msgid "The biconnected components of the graph" +msgid "Explanation" msgstr "" -msgid "``component``" +msgid "The betweenness centrality are between parenthesis." msgstr "" -msgid "Component identifier." +msgid "The leaf vertices have betweenness centrality :math:`0`." msgstr "" -msgid "Has the value of the minimum edge identifier in the component." +msgid "" +"Betweenness centrality of vertex :math:`6` is higher than of vertex :math:" +"`10`." msgstr "" -msgid "Identifier of the edge that belongs to the ``component``." +msgid "Removing vertex :math:`6` will create three graph components." +msgstr "" + +msgid "Removing vertex :math:`10` will create two graph components." +msgstr "" + +msgid "``vid``" +msgstr "" + +msgid "``centrality``" +msgstr "" + +msgid "" +"Relative betweenness centrality score of the vertex (will be in range [0,1])" +msgstr "" + +msgid "" +"Boost's `betweenness_centrality `_" +msgstr "" + +#, fuzzy +msgid "Queries use the :doc:`sampledata` network." +msgstr "クエリは :doc:`sampledata` ネットワークを使用します。" + +msgid "``pgr_biconnectedComponents``" +msgstr "" + +msgid "" +"``pgr_biconnectedComponents`` — Biconnected components of an undirected " +"graph." +msgstr "" + +#, fuzzy +msgid "Result columns change:" +msgstr "結果として返却されるカラム" + +msgid "``n_seq`` is removed" +msgstr "" + +msgid "``seq`` changed type to ``BIGINT``" +msgstr "" + +msgid "" +"The biconnected components of an undirected graph are the maximal subsets of " +"vertices such that the removal of a vertex from particular component will " +"not disconnect the component. Unlike connected components, vertices may " +"belong to multiple biconnected components. Vertices can be present in " +"multiple biconnected components, but each edge can only be contained in a " +"single biconnected component." +msgstr "" + +msgid "Components are described by edges." +msgstr "" + +msgid "``component`` ascending." +msgstr "" + +msgid "``edge`` ascending." +msgstr "" + +msgid "pgr_biconnectedComponents(`Edges SQL`_)" +msgstr "" + +msgid "Returns set of |result-component-E|" +msgstr "" + +msgid "The biconnected components of the graph" +msgstr "" + +msgid "``component``" +msgstr "" + +msgid "Component identifier." +msgstr "" + +msgid "Has the value of the minimum edge identifier in the component." +msgstr "" + +msgid "Identifier of the edge that belongs to the ``component``." msgstr "" msgid "" @@ -9086,7 +9381,7 @@ msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "" msgid "" -"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a binary " +"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary " "graph." msgstr "" @@ -9225,8 +9520,9 @@ msgid "The odd length cyclic graph can not be bipartite." msgstr "" msgid "" -"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:`" -"\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 vertices." +"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:" +"`\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 " +"vertices." msgstr "" msgid "Edges in blue represent odd length cycle subgraph." @@ -9340,17 +9636,11 @@ msgstr "" msgid "Returns set of |result-bfs|" msgstr "" -msgid "Single vertex" -msgstr "" - msgid "" "From root vertex :math:`6` on a **directed** graph with edges in ascending " "order of ``id``" msgstr "" -msgid "Multiple vertices" -msgstr "" - msgid "" "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with " "**depth** :math:`<= 2` and edges in ascending order of ``id``" @@ -10119,22 +10409,19 @@ msgid "" msgstr "" msgid "" -"`Wikipedia: Cuthill-McKee Ordering `__" +"`Wikipedia: Cuthill-McKee Ordering `__" msgstr "" msgid "pgr_dagShortestPath - Experimental" msgstr "" msgid "" -"``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted directed " +"``pgr_dagShortestPath`` — Returns the shortest path for weighted directed " "acyclic graphs(DAG). In particular, the DAG shortest paths algorithm " "implemented by Boost.Graph." msgstr "" -msgid "New **experimental** function:" -msgstr "" - msgid "pgr_dagShortestPath(Combinations)" msgstr "" @@ -10405,7 +10692,7 @@ msgstr "" msgid "``pgr_dijkstra``" msgstr "" -msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." +msgid "``pgr_dijkstra`` — Shortest path using Dijkstra algorithm." msgstr "" #, fuzzy @@ -10644,18 +10931,20 @@ msgstr "" msgid "``pgr_dijkstraCost``" msgstr "" +#, fuzzy msgid "" -"``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra " +"``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra " "algorithm." -msgstr "" +msgstr ":doc:`pgr_dijkstraCost` - 最短経路の総コストを集計します。" msgid "``pgr_dijkstraCost`` (`Combinations`_)" msgstr "" +#, fuzzy msgid "" -"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest " -"path(s) using Dijkstra Algorithm." -msgstr "" +"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path " +"using Dijkstra Algorithm." +msgstr ":doc:`pgr_dijkstraCost` - 最短経路の総コストを集計します。" #, fuzzy msgid "" @@ -11046,7 +11335,7 @@ msgstr "" msgid "" "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that order " -"on an **directed** graph." +"on an directed graph." msgstr "" msgid "Via optional parameters" @@ -11108,9 +11397,6 @@ msgid "" "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "" -msgid "Standarizing output columns to |result-spantree|" -msgstr "" - msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "" @@ -12316,9 +12602,6 @@ msgstr "" msgid "Minimum spanning forest" msgstr "" -msgid "``pgr_kruskalBFS``" -msgstr "" - msgid "" "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "breadth First Search ordering." @@ -12349,9 +12632,6 @@ msgid "" "`depth \\leq 3`" msgstr "" -msgid "``pgr_kruskalDD``" -msgstr "" - msgid "``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm." msgstr "" @@ -12383,9 +12663,6 @@ msgid "" "`distance \\leq 3.5`" msgstr "" -msgid "``pgr_kruskalDFS``" -msgstr "" - msgid "" "``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "Depth First Search ordering." @@ -12472,7 +12749,7 @@ msgid "" "Dominator_(graph_theory)>`__" msgstr "" -msgid "``pgr_lineGraph`` - Experimental" +msgid "pgr_lineGraph - Proposed" msgstr "" msgid "" @@ -12480,15 +12757,35 @@ msgid "" "based graph." msgstr "" -msgid "Given a graph G, its line graph L(G) is a graph such that:" +msgid "" +"Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" +msgstr "" + +msgid "Each vertex of :math:`L(G)` represents an edge of :math:`G`." +msgstr "" + +msgid "" +"Two vertices of :math:`L(G)` are adjacent if and only if their corresponding " +"edges share a common endpoint in :math:`G`" +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` columns of the result represent existence " +"of the edge." msgstr "" -msgid "Each vertex of L(G) represents an edge of G" +msgid "When the graph is directed the result is directed." msgstr "" msgid "" -"Two vertices of L(G) are adjacent if and only if their corresponding edges " -"share a common endpoint in G." +"To get the complete Line Graph use unique identifiers on the double way " +"edges (See `Additional Examples`_)." +msgstr "" + +msgid "When the graph is undirected the result is undirected." +msgstr "" + +msgid "The ``reverse_cost`` is always :math:`-1`." msgstr "" msgid "pgr_lineGraph(`Edges SQL`_, [``directed``])" @@ -12497,7 +12794,7 @@ msgstr "" msgid "Returns set of |result-lineg|" msgstr "" -msgid "For a **directed** graph" +msgid "For an undirected graph with edges :math:'{2,4,5,8}'" msgstr "" msgid "Gives a local identifier for the edge" @@ -12531,7 +12828,138 @@ msgid "" "it’s not part of the graph." msgstr "" -msgid "https://en.wikipedia.org/wiki/Line_graph" +#, fuzzy +msgid "Given the following directed graph" +msgstr "次のクエリを実行します。" + +msgid "" +":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2 " +"\\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " +"\\rightarrow 3\\})`" +msgstr "" + +msgid "Representation as directed with shared edge identifiers" +msgstr "" + +msgid "" +"For the simplicity, the design of the edges table on the database, has the " +"edge's identifiers are represented with 3 digits:" +msgstr "" + +msgid "hundreds" +msgstr "" + +msgid "the source vertex" +msgstr "" + +msgid "tens" +msgstr "" + +msgid "always 0, acts as a separator" +msgstr "" + +msgid "units" +msgstr "" + +msgid "the target vertex" +msgstr "" + +msgid "In this image," +msgstr "" + +msgid "" +"Single or double head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "The numbers in the yellow shadow are the edge identifiers." +msgstr "" + +msgid "" +"Two pair of edges share the same identifier when the ``reverse_cost`` column " +"is used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with one " +"edge row with :math:`id=203`." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with one " +"edge row with :math:`id=304`." +msgstr "" + +#, fuzzy +msgid "The graph can be created as follows:" +msgstr "グラフは次のように定義されます:" + +msgid "Line Graph of a directed graph represented with shared edges" +msgstr "" + +#, fuzzy +msgid "The result is a directed graph." +msgstr "導かれないグラフ。" + +msgid "" +"For :math:`seq=4` from :math:`203 \\leftrightarrow 304` represent two edges" +msgstr "" + +msgid "For all the other values of ``seq`` represent one edge." +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` values represent the existence of the edge." +msgstr "" + +msgid "When positive: the edge exists." +msgstr "" + +msgid "When negative: the edge does not exist." +msgstr "" + +msgid "Representation as directed with unique edge identifiers" +msgstr "" + +msgid "Single head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "There are no double head arrows" +msgstr "" + +msgid "" +"Two pair of edges share the same ending nodes and the ``reverse_cost`` " +"column is not used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with two " +"edges :math:`id=203` and :math:`id=302` respectively." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with two " +"edges :math:`id=304` and :math:`id=403` respectively." +msgstr "" + +msgid "Line Graph of a directed graph represented with unique edges" +msgstr "" + +msgid "" +"For :math:`seq=7` from :math:`203 \\leftrightarrow 302` represent two edges." +msgstr "" + +msgid "" +"For :math:`seq=8` from :math:`304 \\leftrightarrow 403` represent two edges." +msgstr "" + +#, fuzzy +msgid "wikipedia: `Line Graph `__" +msgstr "" +"`Wikipedia: 巡回セールスマン問題 `__" + +msgid "" +"mathworld: `Line Graph `__" msgstr "" msgid "``pgr_lineGraphFull`` - Experimental" @@ -12778,6 +13206,9 @@ msgstr "" msgid "Routing from :math:`5` to :math:`1`" msgstr "" +msgid "https://en.wikipedia.org/wiki/Line_graph" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Complete_graph" msgstr "" @@ -12885,9 +13316,6 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "" -msgid ":doc:`migration`" -msgstr "" - msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" msgstr "" @@ -12911,7 +13339,7 @@ msgstr "" msgid "New **Proposed** function" msgstr "" -msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." +msgid "Calculates the maximum flow from the sources to the targets." msgstr "" msgid "" @@ -13113,8 +13541,9 @@ msgstr "" msgid "old_id" msgstr "" -msgid "``bigint`` Identifier of the edge in original table" -msgstr "" +#, fuzzy +msgid "``bigint`` Identifier of the edge in original table" +msgstr "終了ノードの識別子。" msgid "sub_id" msgstr "" @@ -13210,7 +13639,7 @@ msgstr "" msgid "Edges with 1 dead end: 1,6,24" msgstr "" -msgid "Edges with 2 dead ends 17,18" +msgid "Edges with 2 dead ends: 17,18" msgstr "" msgid "" @@ -13224,7 +13653,7 @@ msgstr "" msgid "Isolated segments" msgstr "" -msgid "two isolated segments: 17 and 18 both they have 2 dead ends" +msgid "two isolated segments: 17 and 18 both they have 2 dead ends" msgstr "" msgid "No Isolated segments" @@ -13535,9 +13964,6 @@ msgid "" "prim_minimum_spanning_tree.html>`__" msgstr "" -msgid "``pgr_primBFS``" -msgstr "" - msgid "" "``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth " "First Search ordering." @@ -13545,7 +13971,7 @@ msgstr "" msgid "" "Visits and extracts the nodes information in Breath First Search ordering of " -"the Minimum Spanning Tree created with Prims's algorithm." +"the Minimum Spanning Tree created using Prims's algorithm." msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -13554,16 +13980,13 @@ msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "``pgr_primDD``" -msgstr "" - msgid "``pgr_primDD`` — Catchament nodes using Prim's algorithm." msgstr "" msgid "" "Using Prim's algorithm, extracts the nodes that have aggregate costs less " -"than or equal to a **distance** from a **root** vertex (or vertices) within " -"the calculated minimum spanning tree." +"than or equal to a distance from a root vertex (or vertices) within the " +"calculated minimum spanning tree." msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vid**, **distance**)" @@ -13572,9 +13995,6 @@ msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" msgstr "" -msgid "``pgr_primDFS``" -msgstr "" - msgid "" "``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth First " "Search ordering." @@ -13895,9 +14315,6 @@ msgstr "" msgid "Rechability of a subgraph" msgstr "" -msgid "``vid``" -msgstr "" - msgid "Identifier of the source of the edges" msgstr "" @@ -14072,11 +14489,6 @@ msgid "" "[**options**])" msgstr "" -msgid "" -"Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that order " -"on an directed graph." -msgstr "" - msgid "" "All this examples are about the route that visits the vertices :math:`\\{5, " "7, 1, 8, 15\\}` in that order on a directed graph." @@ -14323,7 +14735,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, find the shortest path(s)" +"algorithm, find the shortest path" msgstr "" msgid "Characteristics:" @@ -14670,7 +15082,7 @@ msgstr "" msgid "" "``pgr_withPointsCost`` - Calculates the shortest path and returns only the " -"aggregate cost of the shortest path(s) found, for the combination of points " +"aggregate cost of the shortest path found, for the combination of points " "given." msgstr "" @@ -14679,7 +15091,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, return only the aggregate cost of the shortest path(s) found." +"algorithm, return only the aggregate cost of the shortest path found." msgstr "" msgid "" @@ -15209,8 +15621,8 @@ msgid "" msgstr "" msgid "" -"Wikipedia: `Prim's algorithm `__" +"Wikipedia: `Prim's algorithm `__" msgstr "" msgid "Proposed Functions" @@ -15247,6 +15659,10 @@ msgid "" "table information." msgstr "" +msgid "" +":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." +msgstr "" + msgid ":doc:`pgr_withPointsVia`" msgstr "" @@ -15280,16 +15696,129 @@ msgid "" "github.com/pgRouting/pgrouting/commits>`_ on Github." msgstr "" -msgid "pgRouting 3.6.0 Release Notes" +msgid "Mayors" +msgstr "" + +msgid "pgRouting 3" +msgstr "" + +msgid "Minors 3.x" +msgstr "" + +msgid "pgRouting 3.7" +msgstr "" + +msgid "pgRouting 3.6" +msgstr "" + +msgid "pgRouting 3.6.3 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.6.0 `_" +"milestone for 3.6.3 `__" msgstr "" -msgid "Official functions changes" +msgid "Build" +msgstr "" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +#, fuzzy +msgid "postgis 3.0.0" +msgstr "バージョン 3.0.0" + +msgid "Code fixes" +msgstr "" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "" +"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" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "" + +msgid "pgr_stoerWagner" +msgstr "" + +msgid "pgtap tests" +msgstr "" + +msgid "bug fixes" +msgstr "" + +msgid "pgRouting 3.6.2 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.2 `__" +msgstr "" + +msgid "Upgrade fix" +msgstr "" + +msgid "The upgrade was failing for same minor" +msgstr "" + +msgid "Fix warnings from cpplint" +msgstr "" + +msgid "Others" +msgstr "" + +msgid "Adjust NEWS generator" +msgstr "" + +msgid "Name change to `NEWS.md` for better visualization on GitHub" +msgstr "" + +msgid "pgRouting 3.6.1 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.1 `_" +msgstr "" + +msgid "" +"`#2588 `__ pgrouting 3.6.0 " +"fails to build on OSX" +msgstr "" + +msgid "pgRouting 3.6.0 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.0 `_" msgstr "" msgid "" @@ -15381,9 +15910,6 @@ msgid "" "simplification." msgstr "" -msgid "Documentation" -msgstr "" - msgid "" "`#2490 `__ Automatic page " "history links." @@ -15401,13 +15927,16 @@ msgid "" "On new internal function: do not use named parameters and default parameters." msgstr "" +msgid "pgRouting 3.5" +msgstr "" + msgid "pgRouting 3.5.1 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.1 `_" +"milestone for 3.5.1 `_" msgstr "" #, fuzzy @@ -15448,9 +15977,6 @@ msgid "" "wildcards on SQL" msgstr "" -msgid "pgtap tests" -msgstr "" - msgid "" "`#2559 `__ pgtap test " "using sampledata" @@ -15462,9 +15988,6 @@ msgstr "" msgid "Fix winnie build" msgstr "" -msgid "Code fixes" -msgstr "" - msgid "Fix clang warnings" msgstr "" @@ -15476,8 +15999,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.0 `_" +"milestone for 3.5.0 `_" msgstr "" msgid "Dijkstra" @@ -15493,13 +16016,16 @@ msgstr "" msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." msgstr "" +msgid "pgRouting 3.4" +msgstr "" + msgid "pgRouting 3.4.2 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.2 `_" +"milestone for 3.4.2 `_" msgstr "" msgid "" @@ -15518,8 +16044,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.1 `_" +"milestone for 3.4.1 `_" msgstr "" msgid "" @@ -15537,8 +16063,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.0 `_" +"milestone for 3.4.0 `_" msgstr "" msgid "" @@ -15615,9 +16141,6 @@ msgstr "" msgid "``pgr_findCloseEdges`` (Many points)" msgstr "" -msgid "New experimental functions" -msgstr "" - msgid "Ordering" msgstr "" @@ -15642,6 +16165,9 @@ msgstr "" msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" msgstr "" +msgid "pgRouting 3.3" +msgstr "" + msgid "pgRouting 3.3.5 Release Notes" msgstr "" @@ -15650,8 +16176,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.4 `_" +"milestone for 3.3.4 `_" msgstr "" msgid "" @@ -15664,8 +16190,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.3 `_" +"milestone for 3.3.3 `_" msgstr "" msgid "" @@ -15678,8 +16204,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.2 `_" +"milestone for 3.3.2 `_" msgstr "" msgid "Revised documentation" @@ -15732,8 +16258,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.1 `_ on Github." +"milestone for 3.3.1 `_ on Github." msgstr "" msgid "" @@ -15751,8 +16277,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.0 `_ on Github." +"milestone for 3.3.0 `_ on Github." msgstr "" msgid "" @@ -15834,13 +16360,16 @@ msgstr "" msgid "pgr_depthFirstSearch(Single vertex)" msgstr "" +msgid "pgRouting 3.2" +msgstr "" + msgid "pgRouting 3.2.2 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.2 `_ on Github." +"milestone for 3.2.2 `_ on Github." msgstr "" msgid "" @@ -15858,8 +16387,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.1 `_ on Github." +"milestone for 3.2.1 `_ on Github." msgstr "" msgid "" @@ -15883,11 +16412,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.0 `_ on Github." -msgstr "" - -msgid "Build" +"milestone for 3.2.0 `_ on Github." msgstr "" msgid "" @@ -15970,13 +16496,16 @@ msgstr "" msgid "pgr_pushRelabel(Combinations)" msgstr "" +msgid "pgRouting 3.1" +msgstr "" + msgid "pgRouting 3.1.4 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.4 `_ on Github." +"milestone for 3.1.4 `_ on Github." msgstr "" msgid "Issues fixes" @@ -15987,8 +16516,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.3 `_ on Github." +"milestone for 3.1.3 `_ on Github." msgstr "" msgid "" @@ -16011,8 +16540,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.2 `_ on Github." +"milestone for 3.1.2 `_ on Github." msgstr "" msgid "" @@ -16045,8 +16574,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.1 `_ on Github." +"milestone for 3.1.1 `_ on Github." msgstr "" msgid "" @@ -16079,8 +16608,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.0 `_ on Github." +"milestone for 3.1.0 `_ on Github." msgstr "" msgid "pgr_dijkstra(combinations)" @@ -16095,13 +16624,16 @@ msgstr "" msgid "Minimal requirement for Sphinx: version 1.8" msgstr "" +msgid "pgRouting 3.0" +msgstr "" + msgid "pgRouting 3.0.6 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.6 `_ on Github." +"milestone for 3.0.6 `_ on Github." msgstr "" msgid "pgRouting 3.0.5 Release Notes" @@ -16109,8 +16641,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.5 `_ on Github." +"milestone for 3.0.5 `_ on Github." msgstr "" msgid "Backport issue fixes" @@ -16121,8 +16653,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.4 `_ on Github." +"milestone for 3.0.4 `_ on Github." msgstr "" msgid "pgRouting 3.0.3 Release Notes" @@ -16133,8 +16665,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.2 `_ on Github." +"milestone for 3.0.2 `_ on Github." msgstr "" msgid "" @@ -16147,8 +16679,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.1 `_ on Github." +"milestone for 3.0.1 `_ on Github." msgstr "" msgid "" @@ -16161,8 +16693,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.0 `_ on Github." +"milestone for 3.0.0 `_ on Github." msgstr "" msgid "Fixed Issues" @@ -16432,9 +16964,6 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" -msgid "pgr_stoerWagner" -msgstr "" - msgid "pgr_dagShortestpath" msgstr "" @@ -16516,13 +17045,22 @@ msgstr "" msgid "pgr_alphaShape old signature" msgstr "" +msgid "pgRouting 2" +msgstr "" + +msgid "Minors 2.x" +msgstr "" + +msgid "pgRouting 2.6" +msgstr "" + msgid "pgRouting 2.6.3 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.3 `_ on Github." +"2.6.3 `_ on Github." msgstr "" msgid "" @@ -16545,8 +17083,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.2 `_ on Github." +"2.6.2 `_ on Github." msgstr "" msgid "" @@ -16569,8 +17107,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.1 `_ on Github." +"2.6.1 `_ on Github." msgstr "" msgid "Fixes server crash on several functions." @@ -16662,8 +17200,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.0 `_ on Github." +"2.6.0 `_ on Github." msgstr "" msgid "pgr_lineGraphFull" @@ -16706,13 +17244,16 @@ msgstr "" msgid "Cleaned the internal code of withPoints" msgstr "" +msgid "pgRouting 2.5" +msgstr "" + msgid "pgRouting 2.5.5 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.5 `_ on Github." +"2.5.5 `_ on Github." msgstr "" msgid "Fixes driving distance when vertex is not part of the graph" @@ -16729,8 +17270,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.4 `_ on Github." +"2.5.4 `_ on Github." msgstr "" msgid "pgRouting 2.5.3 Release Notes" @@ -16738,8 +17279,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.3 `_ on Github." +"2.5.3 `_ on Github." msgstr "" msgid "" @@ -16752,8 +17293,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.2 `_ on Github." +"2.5.2 `_ on Github." msgstr "" msgid "Fix for postgresql 10.1: Removed a compiler condition" @@ -16764,8 +17305,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.1 `_ on Github." +"2.5.1 `_ on Github." msgstr "" msgid "Fixed prerequisite minimum version of: cmake" @@ -16776,8 +17317,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.5.0 `_ on Github." +"2.5.0 `_ on Github." msgstr "" msgid "enhancement:" @@ -16844,13 +17385,16 @@ msgstr "" msgid "pgr_pointToEdgeNode" msgstr "" +msgid "pgRouting 2.4" +msgstr "" + msgid "pgRouting 2.4.2 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.2 `_ on Github." +"2.4.2 `_ on Github." msgstr "" msgid "Improvement" @@ -16871,8 +17415,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.1 `_ on Github." +"2.4.1 `_ on Github." msgstr "" msgid "Fixed compiling error on macOS" @@ -16886,8 +17430,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.4.0 `_ on Github." +"2.4.0 `_ on Github." msgstr "" msgid "pgr_bdDijkstra" @@ -16935,13 +17479,16 @@ msgstr "" msgid "TRSP original code is used with no changes on the compilation warnings" msgstr "" +msgid "pgRouting 2.3" +msgstr "" + msgid "pgRouting 2.3.2 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.2 `_ on Github." +"2.3.2 `_ on Github." msgstr "" msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck." @@ -16961,8 +17508,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.1 `_ on Github." +"2.3.1 `_ on Github." msgstr "" msgid "Leaks on proposed max_flow functions" @@ -16979,8 +17526,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.0 `_ on Github." +"2.3.0 `_ on Github." msgstr "" msgid "pgr_TSP" @@ -17058,13 +17605,16 @@ msgstr "" msgid "pgr_textToPoints" msgstr "" +msgid "pgRouting 2.2" +msgstr "" + msgid "pgRouting 2.2.4 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.4 `_ on Github." +"2.2.4 `_ on Github." msgstr "" msgid "Bogus uses of extern \"C\"" @@ -17081,8 +17631,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.3 `_ on Github." +"2.2.3 `_ on Github." msgstr "" msgid "Fixed compatibility issues with PostgreSQL 9.6." @@ -17093,8 +17643,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.2 `_ on Github." +"2.2.2 `_ on Github." msgstr "" msgid "Fixed regression error on pgr_drivingDistance" @@ -17105,8 +17655,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.1 `_ on Github." +"2.2.1 `_ on Github." msgstr "" msgid "Server crash fix on pgr_alphaShape" @@ -17120,8 +17670,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.0 `_ on Github." +"2.2.0 `_ on Github." msgstr "" msgid "Improvements" @@ -17209,13 +17759,16 @@ msgstr "" msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix" msgstr "" +msgid "pgRouting 2.1" +msgstr "" + msgid "pgRouting 2.1.0 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.1.0 `_ on Github." +"2.1.0 `_ on Github." msgstr "" msgid "pgr_dijkstra(one to many)" @@ -17349,6 +17902,9 @@ msgid "" "one library - The library has the prefix 2-1-0" msgstr "" +msgid "pgRouting 2.0" +msgstr "" + msgid "pgRouting 2.0.1 Release Notes" msgstr "" @@ -17363,14 +17919,14 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.0.0 `_ on Github." +"2.0.0 `_ on Github." msgstr "" msgid "" "With the release of pgRouting 2.0.0 the library has abandoned backwards " -"compatibility to `pgRouting 1.x Release Notes`_ releases. The main Goals for " -"this release are:" +"compatibility to `pgRouting 1.0`_ releases. The main Goals for this release " +"are:" msgstr "" msgid "Major restructuring of pgRouting." @@ -17484,13 +18040,16 @@ msgstr "" msgid "shooting_star is discontinued" msgstr "" -msgid "pgRouting 1.x Release Notes" +msgid "pgRouting 1" +msgstr "" + +msgid "pgRouting 1.0" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for 1.x " -"`_ on Github. The following release notes have been copied " +"`_ on Github. The following release notes have been copied " "from the previous ``RELEASE_NOTES`` file and are kept as a reference." msgstr "" @@ -17865,8 +18424,11 @@ msgid "" msgstr "" msgid "" -"Developer mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-" -"dev" +"Developer mailing list: https://discourse.osgeo.org/c/pgrouting/pgrouting-" +"dev/" +msgstr "" + +msgid "Subscribe: https://discourse.osgeo.org/g/pgrouting-dev" msgstr "" msgid "" @@ -17947,8 +18509,9 @@ msgstr "" msgid "Additional functions to analyze a graph:" msgstr "" -msgid "Transformation - Family of functions (Experimental)" -msgstr "" +#, fuzzy +msgid "Transformation - Family of functions" +msgstr "ダイクストラ関連機能" msgid "" "This family of functions is used for transforming a given input graph :math:" @@ -18347,5 +18910,3 @@ msgstr "" msgid "pgr_withPointsvia is pgr_dijkstraVia **with points**" msgstr "" - -#, fuzzy diff --git a/locale/ko/LC_MESSAGES/index.po b/locale/ko/LC_MESSAGES/index.po index ab6724874f..40e5852c3a 100644 --- a/locale/ko/LC_MESSAGES/index.po +++ b/locale/ko/LC_MESSAGES/index.po @@ -5,7 +5,7 @@ # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-11-15 15:30+0000\n" diff --git a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po index 40323bb3c4..e782d1d807 100644 --- a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po @@ -5,9 +5,9 @@ # Hyung-Gyu Ryoo , 2022. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-19 19:56+0000\n" +"POT-Creation-Date: 2024-10-10 03:40+0000\n" "PO-Revision-Date: 2022-12-13 12:30+0000\n" "Last-Translator: Hyung-Gyu Ryoo \n" "Language-Team: Korean `__" +"`Wikipedia: Prim's algorithm `__" msgstr "" msgid "" @@ -1451,7 +1451,7 @@ msgstr "" msgid "16.5" msgstr "" -msgid ":math:`10.5 / 60 = 0.175`" +msgid ":math:`10.5 / 60 = 0.175`" msgstr "" msgid "minutes" @@ -2657,8 +2657,8 @@ msgid "" msgstr "" msgid "" -"The **aggregate cost** the non included values :math:`(u, v)` is :math:`" -"\\infty`" +"The **aggregate cost** the non included values :math:`(u, v)` is :math:" +"`\\infty`" msgstr "" msgid "" @@ -2765,10 +2765,6 @@ msgid "" "graph/doc/edge_coloring.html>`__" msgstr "" -msgid "" -"`Wikipedia: Graph Coloring `__" -msgstr "" - msgid "Components - Family of functions" msgstr "" @@ -3386,15 +3382,15 @@ msgstr "" msgid ":doc:`pgr_aStarCostMatrix`" msgstr ":doc:`pgr_aStarCostMatrix`" +msgid ":doc:`pgr_dijkstraCostMatrix`" +msgstr ":doc:`pgr_dijkstraCostMatrix`" + msgid ":doc:`pgr_bdAstarCostMatrix`" msgstr ":doc:`pgr_bdAstarCostMatrix`" msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr ":doc:`pgr_bdDijkstraCostMatrix`" -msgid ":doc:`pgr_dijkstraCostMatrix`" -msgstr ":doc:`pgr_dijkstraCostMatrix`" - msgid "proposed" msgstr "" @@ -3414,8 +3410,8 @@ msgid "Can be used as input to :doc:`pgr_TSP`." msgstr "" msgid "" -"Use directly when the resulting matrix is symmetric and there is no :math:`" -"\\infty` value." +"Use directly when the resulting matrix is symmetric and there is no :math:" +"`\\infty` value." msgstr "" msgid "It will be the users responsibility to make the matrix symmetric." @@ -3673,11 +3669,11 @@ msgid "the set of edges :math:`E`" msgstr "" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = " -"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " +"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " "\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost " "\\neq \\varnothing \\\\ \\end{cases}`" msgstr "" @@ -3692,17 +3688,16 @@ msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgstr "" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & " -"\\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } " -"cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, " -"reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ " -"\\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse" -"\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\" -"\\ \\end{cases}`" +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " +"target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " +"\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" msgstr "" msgid "The problem" @@ -3726,8 +3721,8 @@ msgid "Then:" msgstr "" msgid "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgstr "" msgid "where:" @@ -3871,11 +3866,6 @@ msgstr "" msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." msgstr "" -msgid "" -"Column ``pred`` only applies to :doc:`pgr_drivingDistance` and :doc:" -"`pgr_withPointsDD`." -msgstr "" - msgid "Experimental Functions" msgstr "" @@ -3900,10 +3890,6 @@ msgstr ":doc:`coloring-family`" msgid ":doc:`transformation-family`" msgstr ":doc:`transformation-family`" -msgid "" -":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." -msgstr "" - msgid "" ":doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line " "Graph out of each vertex in the input graph." @@ -3932,6 +3918,15 @@ msgid "" "an undirected graph." msgstr "" +#, fuzzy +msgid ":doc:`metrics-family`" +msgstr ":doc:`prim-family`" + +msgid "" +":doc:`pgr_betweennessCentrality` - Calculates relative betweenness " +"centrality using Brandes Algorithm" +msgstr "" + msgid ":doc:`TRSP-family`" msgstr ":doc:`TRSP-family`" @@ -4021,10 +4016,10 @@ msgid "" "returned." msgstr "" -msgid "There is no flow when a **source** is the same as a **target**." +msgid "There is no flow when source has the same vaule as target." msgstr "" -msgid "Any duplicated value in the source(s) or target(s) are ignored." +msgid "Any duplicated values in source or target are ignored." msgstr "" msgid "Calculates the flow/residual capacity for each edge. In the output" @@ -4033,9 +4028,13 @@ msgstr "" msgid "Edges with zero flow are omitted." msgstr "" -msgid "" -"Creates a **super source** and edges to all the source(s), and a **super " -"target** and the edges from all the targets(s)." +msgid "Creates" +msgstr "" + +msgid "a **super source** and edges from it to all the sources," +msgstr "" + +msgid "a **super target** and edges from it to all the targetss." msgstr "" msgid "" @@ -4186,8 +4185,8 @@ msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" msgstr "" msgid "" -"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse" -"\\_capacity_i)\\}`" +"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " +"reverse\\_capacity_i)\\}`" msgstr "" msgid "Graph definition" @@ -4209,8 +4208,8 @@ msgid "" "\\text{ when } capacity > 0 \\} & \\quad \\text{ if } reverse\\_capacity = " "\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, " "capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse" -"\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " +"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } " +"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " "\\varnothing \\\\ \\end{cases}`" msgstr "" @@ -4396,6 +4395,114 @@ msgstr ":doc:`experimental`" msgid ":doc:`release_notes`" msgstr ":doc:`release_notes`" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.7.0 `__" +msgstr "" + +msgid "Support" +msgstr "" + +msgid "" +"`#2656 `__ Stop support of " +"PostgreSQL12 on pgrouting v3.7" +msgstr "" + +#, fuzzy +msgid "Stopping support of PostgreSQL 12" +msgstr "PostgreSQL 설정" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + +msgid "New experimental functions" +msgstr "" + +msgid "Metrics" +msgstr "" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "" + +msgid "" +"`#2605 `__ Standarize " +"spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "" + +msgid "``pgr_kruskalDD``" +msgstr "" + +msgid "``pgr_kruskalDFS``" +msgstr "" + +msgid "``pgr_kruskalBFS``" +msgstr "" + +msgid "``pgr_primDD``" +msgstr "" + +msgid "``pgr_primDFS``" +msgstr "" + +msgid "``pgr_primBFS``" +msgstr "" + +msgid "Standarizing output columns to |result-spantree|" +msgstr "" + +msgid "Added ``pred`` result columns." +msgstr "" + +msgid "Experimental promoted to proposed." +msgstr "" + +msgid "" +"`#2635 `__ pgr_LineGraph " +"ignores directed flag and use negative values for identifiers." +msgstr "" + +#, fuzzy +msgid "``pgr_lineGraph``" +msgstr ":doc:`pgr_analyzeGraph`" + +msgid "Promoted to **proposed** signature." +msgstr "" + +#, fuzzy +msgid "Works for directed and undirected graphs." +msgstr ":doc:`pgr_bridges` - 무방향 그래프의 브릿지." + +msgid "Code enhancement" +msgstr "" + +msgid "" +"`#2599 `__ Driving " +"distance cleanup" +msgstr "" + +msgid "" +"`#2607 `__ Read postgresql " +"data on C++" +msgstr "" + +msgid "" +"`#2614 `__ Clang tidy does " +"not work" +msgstr "" + +msgid "All releases" +msgstr "" + msgid "Kruskal - Family of functions" msgstr "" @@ -4417,6 +4524,10 @@ msgstr "" msgid "Kruskal's running time: :math:`O(E * log E)`" msgstr "" +#, fuzzy +msgid "Metrics - Family of functions" +msgstr ":doc:`pgr_withPoints`" + msgid "Migration guide" msgstr "" @@ -4482,7 +4593,7 @@ msgstr "" msgid "Migration" msgstr "" -msgid "Be aware of the existance of the additional columns." +msgid "Be aware of the existence of the additional columns." msgstr "" msgid "In ``pgr_aStar`` (`One to One`)" @@ -4597,7 +4708,7 @@ msgstr ":doc:`pgr_withPoints`" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_drivingDistance` result columns are being standarized." +"doc:`pgr_drivingDistance` result columns are being standardized." msgstr "" msgid "from" @@ -4631,7 +4742,7 @@ msgstr "" msgid "does not have ``depth`` result column." msgstr "" -msgid "Be aware of the existance and name change of the result columns." +msgid "Be aware of the existence and name change of the result columns." msgstr "" msgid "" @@ -4659,17 +4770,76 @@ msgid "The ``from_v`` result column name changes to ``start_vid``." msgstr "" msgid "" -"If needed filter out and rename colums, for example, to return the original " +"If needed filter out and rename columns, for example, to return the original " "columns:" msgstr "" +msgid "" +"Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :doc:`pgr_kruskalDFS` result " +"columns are being standardized." +msgstr "" + +msgid "|result-bfs|" +msgstr "" + +msgid "Single vertex" +msgstr "" + +msgid "Multiple vertices" +msgstr "" + +msgid "Output columns were |result-bfs|" +msgstr "" + +msgid "Single vertex and Multiple vertices" +msgstr "" + +msgid "Do not have ``pred`` result column." +msgstr "" + +msgid "Be aware of the existence of `pred` result columns." +msgstr "" + +msgid "If needed filter out the added columns" +msgstr "" + +msgid "Kruskal single vertex" +msgstr "" + +msgid "" +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + +msgid "" +"Now column ``pred`` exists and contains the predecessor of the ``node``." +msgstr "" + +msgid "Kruskal multiple vertices" +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + #, fuzzy msgid "Migration of ``pgr_KSP``" msgstr ":doc:`pgr_withPoints`" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_KSP` result columns are being standarized." +"doc:`pgr_KSP` result columns are being standardized." msgstr "" msgid "|ksp-result|" @@ -4769,13 +4939,44 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns " +"are being standardized." +msgstr "" + +msgid "Prim single vertex" +msgstr "" + +msgid "" +"Using ``pgr_primDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + +#, fuzzy +msgid "Prim multiple vertices" +msgstr ":doc:`pgr_withPointsCostMatrix`" + +msgid "" +"Comparing with `this `__ example." +msgstr "" + #, fuzzy msgid "Migration of ``pgr_withPointsDD``" msgstr ":doc:`pgr_withPoints`" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsDD` result columns are being standarized." +"doc:`pgr_withPointsDD` result columns are being standardized." msgstr "" msgid "|result-generic-no-seq|" @@ -4802,7 +5003,7 @@ msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." msgstr "" msgid "" -"``driving_side`` parameter was named optional now it is compulsory unamed." +"``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "" msgid "``pgr_withPointsDD`` (`Multiple vertices`)" @@ -4853,7 +5054,7 @@ msgstr "" msgid "After Migration" msgstr "" -msgid "Be aware of the existance of the additional result Columns." +msgid "Be aware of the existence of the additional result Columns." msgstr "" msgid "New output columns are |result-spantree|" @@ -4916,7 +5117,7 @@ msgstr ":doc:`pgr_withPoints`" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsKSP` result columns are being standarized." +"doc:`pgr_withPointsKSP` result columns are being standardized." msgstr "" msgid "" @@ -5502,8 +5703,8 @@ msgstr "" msgid "" ":math:`E = \\begin{split} \\begin{align} & {\\{(source_{id}, target_{id}, " "cost_{id}) \\text{ when } cost_{id} >=0 \\}} \\\\ & \\cup \\\\ & " -"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } reverse" -"\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" +"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } " +"reverse\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" msgstr "" msgid "" @@ -6378,8 +6579,8 @@ msgstr "" msgid "" "There are several kinds of valid inner queries and also the columns returned " "are depending of the function. Which kind of inner query will depend on the " -"function(s) requirements. To simplify variety of types, **ANY-INTEGER** and " -"**ANY-NUMERICAL** is used." +"function's requirements. To simplify the variety of types, **ANY-INTEGER** " +"and **ANY-NUMERICAL** is used." msgstr "" msgid "Edges SQL for" @@ -6807,9 +7008,6 @@ msgid "" "pgrouting/releases/latest" msgstr "" -msgid "wget" -msgstr "wget" - msgid "To download this release:" msgstr "" @@ -6850,7 +7048,7 @@ msgid "Upgrading the database" msgstr "데이터베이스 업그레이드" msgid "" -"To upgrade pgRouting in the database to version 3.6.0 use the following " +"To upgrade pgRouting in the database to version 3.7.0 use the following " "command:" msgstr "" @@ -7184,13 +7382,13 @@ msgstr "" msgid "This Release Contributors" msgstr "" -msgid "Individuals in this release (in alphabetical order)" +msgid "Individuals in this release v3.7.x (in alphabetical order)" msgstr "" -msgid "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, " -"Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, " -"Virginia Vergara, Yige Huang" +msgid "(Alphabetical order)" +msgstr "" + +msgid "Regina Obe, Vicky Vergara" msgstr "" msgid "" @@ -7207,7 +7405,10 @@ msgid "" "or direct monetary funding to the pgRouting project:" msgstr "" -msgid "`Georepublic `__" +msgid "`OSGeo `__" +msgstr "" + +msgid "`OSGeo UK `__" msgstr "" msgid "`Google Summer of Code `__" @@ -7261,6 +7462,12 @@ msgstr "" msgid "Orkney" msgstr "" +msgid "OSGeo" +msgstr "" + +msgid "OSGeo UK" +msgstr "" + msgid "Paragon Corporation" msgstr "" @@ -7286,10 +7493,8 @@ msgstr "" msgid "Boost C++ source libraries at https://www.boost.org." msgstr "" -msgid "" -"The Migration guide from 2.6 can be found at https://github.com/pgRouting/" -"pgrouting/wiki/Migration-Guide." -msgstr "" +msgid ":doc:`migration`" +msgstr ":doc:`migration`" msgid "pgr_KSP" msgstr "" @@ -7916,10 +8121,10 @@ msgstr "" msgid "pgr_aStarCost" msgstr "" +#, fuzzy msgid "" -"``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* " -"algorithm." -msgstr "" +"``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm." +msgstr ":doc:`pgr_aStarCost` - 최단 경로의 집계 비용 반환." msgid "``pgr_aStarCost`` (`Combinations`_)" msgstr "" @@ -7927,10 +8132,11 @@ msgstr "" msgid "New **proposed** function" msgstr "" +#, fuzzy msgid "" -"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path(s) " +"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path " "using the A* algorithm." -msgstr "" +msgstr ":doc:`pgr_aStarCost` - 최단 경로의 집계 비용 반환." msgid "" "Let be the case the values returned are stored in a table, so the unique " @@ -8044,9 +8250,6 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" -msgid "Support" -msgstr "" - msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -8644,7 +8847,7 @@ msgid "pgr_bdAstarCost" msgstr "" msgid "" -"``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the " +"``pgr_bdAstarCost`` - Total cost of the shortest path using the " "bidirectional A* algorithm." msgstr "" @@ -8652,8 +8855,8 @@ msgid "``pgr_bdAstarCost`` (`Combinations`_)" msgstr "" msgid "" -"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest " -"path(s) using the bidirectional A* algorithm." +"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path " +"using the bidirectional A* algorithm." msgstr "" msgid "" @@ -8692,10 +8895,11 @@ msgstr "" msgid "``pgr_bdDijkstra``" msgstr "" +#, fuzzy msgid "" -"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional " -"Dijkstra algorithm." -msgstr "" +"``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra " +"algorithm." +msgstr ":doc:`pgr_bdDijkstra` - 최단 경로를 위한 양방향 다익스트라 알고리즘." msgid "pgr_bdDijkstra(`Combinations`_)" msgstr "" @@ -8734,7 +8938,7 @@ msgid "" "pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" msgid "Returns set of |old-generic-result|" @@ -8766,15 +8970,12 @@ msgid "" "**undirected** graph" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "" - msgid "Using a combinations table on an **undirected** graph" msgstr "" msgid "" -"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP" -"%20shortest%20path%20algorithms.pdf" +"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/" +"EPP%20shortest%20path%20algorithms.pdf" msgstr "" msgid "https://en.wikipedia.org/wiki/Bidirectional_search" @@ -8784,7 +8985,7 @@ msgid "``pgr_bdDijkstraCost``" msgstr "" msgid "" -"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using " +"``pgr_bdDijkstraCost`` — Returns the shortest path's cost using " "Bidirectional Dijkstra algorithm." msgstr "" @@ -8846,7 +9047,7 @@ msgstr "" msgid "``pgr_bellmanFord - Experimental``" msgstr "" -msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" msgid "New **experimental** signature:" @@ -8945,99 +9146,190 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "" -msgid "``pgr_biconnectedComponents``" +msgid "``pgr_betweennessCentrality``" msgstr "" msgid "" -"``pgr_biconnectedComponents`` — Biconnected components of an undirected " -"graph." +"``pgr_betweennessCentrality`` - Calculates the relative betweeness " +"centrality using Brandes Algorithm" msgstr "" -#, fuzzy -msgid "Result columns change:" -msgstr "결과 컬럼" +msgid "Version 3.7.0" +msgstr "" -msgid "``n_seq`` is removed" +msgid "New **experimental** function:" msgstr "" -msgid "``seq`` changed type to ``BIGINT``" +msgid "" +"The Brandes Algorithm takes advantage of the sparse graphs for evaluating " +"the betweenness centrality score of all vertices." msgstr "" msgid "" -"The biconnected components of an undirected graph are the maximal subsets of " -"vertices such that the removal of a vertex from particular component will " -"not disconnect the component. Unlike connected components, vertices may " -"belong to multiple biconnected components. Vertices can be present in " -"multiple biconnected components, but each edge can only be contained in a " -"single biconnected component." +"Betweenness centrality measures the extent to which a vertex lies on the " +"shortest paths between all other pairs of vertices. Vertices with a high " +"betweenness centrality score may have considerable influence in a network by " +"the virtue of their control over the shortest paths passing between them." msgstr "" -msgid "Components are described by edges." +msgid "" +"The removal of these vertices will affect the network by disrupting the it, " +"as most of the shortest paths between vertices pass through them." msgstr "" -msgid "``component`` ascending." +#, fuzzy +msgid "This implementation work for both directed and undirected graphs." +msgstr ":doc:`pgr_bridges` - 무방향 그래프의 브릿지." + +msgid "Running time: :math:`\\Theta(VE)`" msgstr "" -msgid "``edge`` ascending." +msgid "Running space: :math:`\\Theta(VE)`" msgstr "" -msgid "pgr_biconnectedComponents(`Edges SQL`_)" +msgid "Throws when there are no edges in the graph" msgstr "" -msgid "Returns set of |result-component-E|" +msgid "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" msgstr "" -msgid "The biconnected components of the graph" +msgid "Returns set of ``(vid, centrality)``" msgstr "" -msgid "``component``" +msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." msgstr "" -msgid "Component identifier." +msgid "Explanation" msgstr "" -msgid "Has the value of the minimum edge identifier in the component." +msgid "The betweenness centrality are between parenthesis." msgstr "" -msgid "Identifier of the edge that belongs to the ``component``." +msgid "The leaf vertices have betweenness centrality :math:`0`." msgstr "" msgid "" -"Boost: `Biconnected components `__" +"Betweenness centrality of vertex :math:`6` is higher than of vertex :math:" +"`10`." msgstr "" -msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" +msgid "Removing vertex :math:`6` will create three graph components." msgstr "" -msgid "" -"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a binary " -"graph." +msgid "Removing vertex :math:`10` will create two graph components." msgstr "" -msgid "" -"Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any non-" -"negative integer, is termed as a 'binary graph'." +msgid "``vid``" msgstr "" -msgid "pgr_binaryBreadthFirstSearch(`Combinations`_)" +msgid "``centrality``" msgstr "" -msgid "pgr_binaryBreadthFirstSearch(`One to One`_)" +msgid "" +"Relative betweenness centrality score of the vertex (will be in range [0,1])" msgstr "" -msgid "pgr_binaryBreadthFirstSearch(`One to Many`_)" +msgid "" +"Boost's `betweenness_centrality `_" msgstr "" -msgid "pgr_binaryBreadthFirstSearch(`Many to One`_)" +msgid "Queries use the :doc:`sampledata` network." msgstr "" -msgid "pgr_binaryBreadthFirstSearch(`Many to Many`_)" +msgid "``pgr_biconnectedComponents``" msgstr "" msgid "" -"It is well-known that the shortest paths between a single source and all " -"other vertices can be found using Breadth First Search in :math:`O(|E|)` in " +"``pgr_biconnectedComponents`` — Biconnected components of an undirected " +"graph." +msgstr "" + +#, fuzzy +msgid "Result columns change:" +msgstr "결과 컬럼" + +msgid "``n_seq`` is removed" +msgstr "" + +msgid "``seq`` changed type to ``BIGINT``" +msgstr "" + +msgid "" +"The biconnected components of an undirected graph are the maximal subsets of " +"vertices such that the removal of a vertex from particular component will " +"not disconnect the component. Unlike connected components, vertices may " +"belong to multiple biconnected components. Vertices can be present in " +"multiple biconnected components, but each edge can only be contained in a " +"single biconnected component." +msgstr "" + +msgid "Components are described by edges." +msgstr "" + +msgid "``component`` ascending." +msgstr "" + +msgid "``edge`` ascending." +msgstr "" + +msgid "pgr_biconnectedComponents(`Edges SQL`_)" +msgstr "" + +msgid "Returns set of |result-component-E|" +msgstr "" + +msgid "The biconnected components of the graph" +msgstr "" + +msgid "``component``" +msgstr "" + +msgid "Component identifier." +msgstr "" + +msgid "Has the value of the minimum edge identifier in the component." +msgstr "" + +msgid "Identifier of the edge that belongs to the ``component``." +msgstr "" + +msgid "" +"Boost: `Biconnected components `__" +msgstr "" + +msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" +msgstr "" + +msgid "" +"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary " +"graph." +msgstr "" + +msgid "" +"Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any non-" +"negative integer, is termed as a 'binary graph'." +msgstr "" + +msgid "pgr_binaryBreadthFirstSearch(`Combinations`_)" +msgstr "" + +msgid "pgr_binaryBreadthFirstSearch(`One to One`_)" +msgstr "" + +msgid "pgr_binaryBreadthFirstSearch(`One to Many`_)" +msgstr "" + +msgid "pgr_binaryBreadthFirstSearch(`Many to One`_)" +msgstr "" + +msgid "pgr_binaryBreadthFirstSearch(`Many to Many`_)" +msgstr "" + +msgid "" +"It is well-known that the shortest paths between a single source and all " +"other vertices can be found using Breadth First Search in :math:`O(|E|)` in " "an unweighted graph, i.e. the distance is the minimal number of edges that " "you need to traverse from the source to another vertex. We can interpret " "such a graph also as a weighted graph, where every edge has the weight :math:" @@ -9150,8 +9442,9 @@ msgid "The odd length cyclic graph can not be bipartite." msgstr "" msgid "" -"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:`" -"\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 vertices." +"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:" +"`\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 " +"vertices." msgstr "" msgid "Edges in blue represent odd length cycle subgraph." @@ -9265,17 +9558,11 @@ msgstr "" msgid "Returns set of |result-bfs|" msgstr "" -msgid "Single vertex" -msgstr "" - msgid "" "From root vertex :math:`6` on a **directed** graph with edges in ascending " "order of ``id``" msgstr "" -msgid "Multiple vertices" -msgstr "" - msgid "" "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with " "**depth** :math:`<= 2` and edges in ascending order of ``id``" @@ -10043,22 +10330,19 @@ msgid "" msgstr "" msgid "" -"`Wikipedia: Cuthill-McKee Ordering `__" +"`Wikipedia: Cuthill-McKee Ordering `__" msgstr "" msgid "pgr_dagShortestPath - Experimental" msgstr "" msgid "" -"``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted directed " +"``pgr_dagShortestPath`` — Returns the shortest path for weighted directed " "acyclic graphs(DAG). In particular, the DAG shortest paths algorithm " "implemented by Boost.Graph." msgstr "" -msgid "New **experimental** function:" -msgstr "" - msgid "pgr_dagShortestPath(Combinations)" msgstr "" @@ -10327,7 +10611,7 @@ msgstr "" msgid "``pgr_dijkstra``" msgstr "" -msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." +msgid "``pgr_dijkstra`` — Shortest path using Dijkstra algorithm." msgstr "" msgid "Version 3.5.0" @@ -10562,18 +10846,22 @@ msgstr "" msgid "``pgr_dijkstraCost``" msgstr "" +#, fuzzy msgid "" -"``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra " +"``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra " "algorithm." -msgstr "" +msgstr ":doc:`pgr_aStarCost` - 최단 경로의 집계 비용 반환." msgid "``pgr_dijkstraCost`` (`Combinations`_)" msgstr "" +#, fuzzy msgid "" -"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest " -"path(s) using Dijkstra Algorithm." +"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path " +"using Dijkstra Algorithm." msgstr "" +":doc:`pgr_bdDijkstraCost` - 최단 경로의 비용을 계산하기 위한 양방향 다익스트" +"라 알고리즘" msgid "" "pgr_dijkstraCost(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -10962,7 +11250,7 @@ msgstr "" msgid "" "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that order " -"on an **directed** graph." +"on an directed graph." msgstr "" msgid "Via optional parameters" @@ -11024,9 +11312,6 @@ msgid "" "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "" -msgid "Standarizing output columns to |result-spantree|" -msgstr "" - msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "" @@ -12228,9 +12513,6 @@ msgstr "" msgid "Minimum spanning forest" msgstr "" -msgid "``pgr_kruskalBFS``" -msgstr "" - msgid "" "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "breadth First Search ordering." @@ -12261,9 +12543,6 @@ msgid "" "`depth \\leq 3`" msgstr "" -msgid "``pgr_kruskalDD``" -msgstr "" - msgid "``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm." msgstr "" @@ -12295,9 +12574,6 @@ msgid "" "`distance \\leq 3.5`" msgstr "" -msgid "``pgr_kruskalDFS``" -msgstr "" - msgid "" "``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "Depth First Search ordering." @@ -12384,7 +12660,7 @@ msgid "" "Dominator_(graph_theory)>`__" msgstr "" -msgid "``pgr_lineGraph`` - Experimental" +msgid "pgr_lineGraph - Proposed" msgstr "" msgid "" @@ -12392,15 +12668,35 @@ msgid "" "based graph." msgstr "" -msgid "Given a graph G, its line graph L(G) is a graph such that:" +msgid "" +"Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" +msgstr "" + +msgid "Each vertex of :math:`L(G)` represents an edge of :math:`G`." msgstr "" -msgid "Each vertex of L(G) represents an edge of G" +msgid "" +"Two vertices of :math:`L(G)` are adjacent if and only if their corresponding " +"edges share a common endpoint in :math:`G`" +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` columns of the result represent existence " +"of the edge." +msgstr "" + +msgid "When the graph is directed the result is directed." msgstr "" msgid "" -"Two vertices of L(G) are adjacent if and only if their corresponding edges " -"share a common endpoint in G." +"To get the complete Line Graph use unique identifiers on the double way " +"edges (See `Additional Examples`_)." +msgstr "" + +msgid "When the graph is undirected the result is undirected." +msgstr "" + +msgid "The ``reverse_cost`` is always :math:`-1`." msgstr "" msgid "pgr_lineGraph(`Edges SQL`_, [``directed``])" @@ -12409,7 +12705,7 @@ msgstr "" msgid "Returns set of |result-lineg|" msgstr "" -msgid "For a **directed** graph" +msgid "For an undirected graph with edges :math:'{2,4,5,8}'" msgstr "" msgid "Gives a local identifier for the edge" @@ -12443,7 +12739,133 @@ msgid "" "it’s not part of the graph." msgstr "" -msgid "https://en.wikipedia.org/wiki/Line_graph" +msgid "Given the following directed graph" +msgstr "" + +msgid "" +":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2 " +"\\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " +"\\rightarrow 3\\})`" +msgstr "" + +msgid "Representation as directed with shared edge identifiers" +msgstr "" + +msgid "" +"For the simplicity, the design of the edges table on the database, has the " +"edge's identifiers are represented with 3 digits:" +msgstr "" + +msgid "hundreds" +msgstr "" + +#, fuzzy +msgid "the source vertex" +msgstr "소스 가져오기" + +msgid "tens" +msgstr "" + +msgid "always 0, acts as a separator" +msgstr "" + +msgid "units" +msgstr "" + +msgid "the target vertex" +msgstr "" + +msgid "In this image," +msgstr "" + +msgid "" +"Single or double head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "The numbers in the yellow shadow are the edge identifiers." +msgstr "" + +msgid "" +"Two pair of edges share the same identifier when the ``reverse_cost`` column " +"is used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with one " +"edge row with :math:`id=203`." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with one " +"edge row with :math:`id=304`." +msgstr "" + +msgid "The graph can be created as follows:" +msgstr "" + +msgid "Line Graph of a directed graph represented with shared edges" +msgstr "" + +msgid "The result is a directed graph." +msgstr "" + +msgid "" +"For :math:`seq=4` from :math:`203 \\leftrightarrow 304` represent two edges" +msgstr "" + +msgid "For all the other values of ``seq`` represent one edge." +msgstr "" + +msgid "" +"The ``cost`` and ``reverse_cost`` values represent the existence of the edge." +msgstr "" + +msgid "When positive: the edge exists." +msgstr "" + +msgid "When negative: the edge does not exist." +msgstr "" + +msgid "Representation as directed with unique edge identifiers" +msgstr "" + +msgid "Single head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "There are no double head arrows" +msgstr "" + +msgid "" +"Two pair of edges share the same ending nodes and the ``reverse_cost`` " +"column is not used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with two " +"edges :math:`id=203` and :math:`id=302` respectively." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with two " +"edges :math:`id=304` and :math:`id=403` respectively." +msgstr "" + +msgid "Line Graph of a directed graph represented with unique edges" +msgstr "" + +msgid "" +"For :math:`seq=7` from :math:`203 \\leftrightarrow 302` represent two edges." +msgstr "" + +msgid "" +"For :math:`seq=8` from :math:`304 \\leftrightarrow 403` represent two edges." +msgstr "" + +msgid "wikipedia: `Line Graph `__" +msgstr "" + +msgid "" +"mathworld: `Line Graph `__" msgstr "" msgid "``pgr_lineGraphFull`` - Experimental" @@ -12690,6 +13112,9 @@ msgstr "" msgid "Routing from :math:`5` to :math:`1`" msgstr "" +msgid "https://en.wikipedia.org/wiki/Line_graph" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Complete_graph" msgstr "" @@ -12797,9 +13222,6 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "" -msgid ":doc:`migration`" -msgstr ":doc:`migration`" - msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" msgstr "" @@ -12823,7 +13245,7 @@ msgstr "" msgid "New **Proposed** function" msgstr "" -msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." +msgid "Calculates the maximum flow from the sources to the targets." msgstr "" msgid "" @@ -13025,7 +13447,7 @@ msgstr "" msgid "old_id" msgstr "" -msgid "``bigint`` Identifier of the edge in original table" +msgid "``bigint`` Identifier of the edge in original table" msgstr "" msgid "sub_id" @@ -13120,7 +13542,7 @@ msgstr "" msgid "Edges with 1 dead end: 1,6,24" msgstr "" -msgid "Edges with 2 dead ends 17,18" +msgid "Edges with 2 dead ends: 17,18" msgstr "" msgid "" @@ -13134,7 +13556,7 @@ msgstr "" msgid "Isolated segments" msgstr "" -msgid "two isolated segments: 17 and 18 both they have 2 dead ends" +msgid "two isolated segments: 17 and 18 both they have 2 dead ends" msgstr "" msgid "No Isolated segments" @@ -13445,9 +13867,6 @@ msgid "" "prim_minimum_spanning_tree.html>`__" msgstr "" -msgid "``pgr_primBFS``" -msgstr "" - msgid "" "``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth " "First Search ordering." @@ -13455,7 +13874,7 @@ msgstr "" msgid "" "Visits and extracts the nodes information in Breath First Search ordering of " -"the Minimum Spanning Tree created with Prims's algorithm." +"the Minimum Spanning Tree created using Prims's algorithm." msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -13464,16 +13883,13 @@ msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "``pgr_primDD``" -msgstr "" - msgid "``pgr_primDD`` — Catchament nodes using Prim's algorithm." msgstr "" msgid "" "Using Prim's algorithm, extracts the nodes that have aggregate costs less " -"than or equal to a **distance** from a **root** vertex (or vertices) within " -"the calculated minimum spanning tree." +"than or equal to a distance from a root vertex (or vertices) within the " +"calculated minimum spanning tree." msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vid**, **distance**)" @@ -13482,9 +13898,6 @@ msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" msgstr "" -msgid "``pgr_primDFS``" -msgstr "" - msgid "" "``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth First " "Search ordering." @@ -13804,9 +14217,6 @@ msgstr "" msgid "Rechability of a subgraph" msgstr "" -msgid "``vid``" -msgstr "" - msgid "Identifier of the source of the edges" msgstr "" @@ -13981,11 +14391,6 @@ msgid "" "[**options**])" msgstr "" -msgid "" -"Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that order " -"on an directed graph." -msgstr "" - msgid "" "All this examples are about the route that visits the vertices :math:`\\{5, " "7, 1, 8, 15\\}` in that order on a directed graph." @@ -14232,7 +14637,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, find the shortest path(s)" +"algorithm, find the shortest path" msgstr "" msgid "Characteristics:" @@ -14577,7 +14982,7 @@ msgstr "" msgid "" "``pgr_withPointsCost`` - Calculates the shortest path and returns only the " -"aggregate cost of the shortest path(s) found, for the combination of points " +"aggregate cost of the shortest path found, for the combination of points " "given." msgstr "" @@ -14586,7 +14991,7 @@ msgstr "" msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, return only the aggregate cost of the shortest path(s) found." +"algorithm, return only the aggregate cost of the shortest path found." msgstr "" msgid "" @@ -15110,8 +15515,8 @@ msgid "" msgstr "" msgid "" -"Wikipedia: `Prim's algorithm `__" +"Wikipedia: `Prim's algorithm `__" msgstr "" msgid "Proposed Functions" @@ -15148,6 +15553,10 @@ msgid "" "table information." msgstr "" +msgid "" +":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." +msgstr "" + msgid ":doc:`pgr_withPointsVia`" msgstr ":doc:`pgr_withPointsVia`" @@ -15180,16 +15589,130 @@ msgid "" "github.com/pgRouting/pgrouting/commits>`_ on Github." msgstr "" -msgid "pgRouting 3.6.0 Release Notes" +msgid "Mayors" +msgstr "" + +msgid "pgRouting 3" +msgstr "" + +msgid "Minors 3.x" +msgstr "" + +msgid "pgRouting 3.7" +msgstr "" + +msgid "pgRouting 3.6" +msgstr "" + +msgid "pgRouting 3.6.3 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.6.0 `_" +"milestone for 3.6.3 `__" msgstr "" -msgid "Official functions changes" +msgid "Build" +msgstr "" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +msgid "postgis 3.0.0" +msgstr "" + +msgid "Code fixes" +msgstr "" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "" +"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" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +#, fuzzy +msgid "pgr_edgeDisjointPaths" +msgstr ":doc:`pgr_edgeDisjointPaths`" + +msgid "pgr_stoerWagner" +msgstr "" + +msgid "pgtap tests" +msgstr "" + +#, fuzzy +msgid "bug fixes" +msgstr "빌드" + +msgid "pgRouting 3.6.2 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.2 `__" +msgstr "" + +msgid "Upgrade fix" +msgstr "" + +msgid "The upgrade was failing for same minor" +msgstr "" + +msgid "Fix warnings from cpplint" +msgstr "" + +msgid "Others" +msgstr "" + +msgid "Adjust NEWS generator" +msgstr "" + +msgid "Name change to `NEWS.md` for better visualization on GitHub" +msgstr "" + +msgid "pgRouting 3.6.1 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.1 `_" +msgstr "" + +msgid "" +"`#2588 `__ pgrouting 3.6.0 " +"fails to build on OSX" +msgstr "" + +msgid "pgRouting 3.6.0 Release Notes" +msgstr "" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.0 `_" msgstr "" msgid "" @@ -15280,9 +15803,6 @@ msgid "" "simplification." msgstr "" -msgid "Documentation" -msgstr "" - msgid "" "`#2490 `__ Automatic page " "history links." @@ -15300,13 +15820,16 @@ msgid "" "On new internal function: do not use named parameters and default parameters." msgstr "" +msgid "pgRouting 3.5" +msgstr "" + msgid "pgRouting 3.5.1 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.1 `_" +"milestone for 3.5.1 `_" msgstr "" msgid "Documentation fixes" @@ -15346,9 +15869,6 @@ msgid "" "wildcards on SQL" msgstr "" -msgid "pgtap tests" -msgstr "" - msgid "" "`#2559 `__ pgtap test " "using sampledata" @@ -15361,9 +15881,6 @@ msgstr "빌드" msgid "Fix winnie build" msgstr "" -msgid "Code fixes" -msgstr "" - msgid "Fix clang warnings" msgstr "" @@ -15375,8 +15892,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.0 `_" +"milestone for 3.5.0 `_" msgstr "" msgid "Dijkstra" @@ -15392,13 +15909,16 @@ msgstr "" msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." msgstr "" +msgid "pgRouting 3.4" +msgstr "" + msgid "pgRouting 3.4.2 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.2 `_" +"milestone for 3.4.2 `_" msgstr "" msgid "" @@ -15417,8 +15937,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.1 `_" +"milestone for 3.4.1 `_" msgstr "" msgid "" @@ -15436,8 +15956,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.0 `_" +"milestone for 3.4.0 `_" msgstr "" msgid "" @@ -15514,9 +16034,6 @@ msgstr "" msgid "``pgr_findCloseEdges`` (Many points)" msgstr "" -msgid "New experimental functions" -msgstr "" - msgid "Ordering" msgstr "" @@ -15541,6 +16058,9 @@ msgstr "" msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" msgstr "" +msgid "pgRouting 3.3" +msgstr "" + msgid "pgRouting 3.3.5 Release Notes" msgstr "" @@ -15549,8 +16069,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.4 `_" +"milestone for 3.3.4 `_" msgstr "" msgid "" @@ -15563,8 +16083,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.3 `_" +"milestone for 3.3.3 `_" msgstr "" msgid "" @@ -15577,8 +16097,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.2 `_" +"milestone for 3.3.2 `_" msgstr "" msgid "Revised documentation" @@ -15631,8 +16151,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.1 `_ on Github." +"milestone for 3.3.1 `_ on Github." msgstr "" msgid "" @@ -15650,8 +16170,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.0 `_ on Github." +"milestone for 3.3.0 `_ on Github." msgstr "" msgid "" @@ -15733,13 +16253,16 @@ msgstr "" msgid "pgr_depthFirstSearch(Single vertex)" msgstr "" +msgid "pgRouting 3.2" +msgstr "" + msgid "pgRouting 3.2.2 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.2 `_ on Github." +"milestone for 3.2.2 `_ on Github." msgstr "" msgid "" @@ -15757,8 +16280,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.1 `_ on Github." +"milestone for 3.2.1 `_ on Github." msgstr "" msgid "" @@ -15782,11 +16305,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.0 `_ on Github." -msgstr "" - -msgid "Build" +"milestone for 3.2.0 `_ on Github." msgstr "" msgid "" @@ -15869,13 +16389,16 @@ msgstr "" msgid "pgr_pushRelabel(Combinations)" msgstr "" +msgid "pgRouting 3.1" +msgstr "" + msgid "pgRouting 3.1.4 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.4 `_ on Github." +"milestone for 3.1.4 `_ on Github." msgstr "" msgid "Issues fixes" @@ -15886,8 +16409,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.3 `_ on Github." +"milestone for 3.1.3 `_ on Github." msgstr "" msgid "" @@ -15910,8 +16433,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.2 `_ on Github." +"milestone for 3.1.2 `_ on Github." msgstr "" msgid "" @@ -15944,8 +16467,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.1 `_ on Github." +"milestone for 3.1.1 `_ on Github." msgstr "" msgid "" @@ -15978,8 +16501,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.0 `_ on Github." +"milestone for 3.1.0 `_ on Github." msgstr "" msgid "pgr_dijkstra(combinations)" @@ -15994,13 +16517,16 @@ msgstr "" msgid "Minimal requirement for Sphinx: version 1.8" msgstr "" +msgid "pgRouting 3.0" +msgstr "" + msgid "pgRouting 3.0.6 Release Notes" msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.6 `_ on Github." +"milestone for 3.0.6 `_ on Github." msgstr "" msgid "pgRouting 3.0.5 Release Notes" @@ -16008,8 +16534,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.5 `_ on Github." +"milestone for 3.0.5 `_ on Github." msgstr "" msgid "Backport issue fixes" @@ -16020,8 +16546,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.4 `_ on Github." +"milestone for 3.0.4 `_ on Github." msgstr "" msgid "pgRouting 3.0.3 Release Notes" @@ -16032,8 +16558,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.2 `_ on Github." +"milestone for 3.0.2 `_ on Github." msgstr "" msgid "" @@ -16046,8 +16572,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.1 `_ on Github." +"milestone for 3.0.1 `_ on Github." msgstr "" msgid "" @@ -16060,8 +16586,8 @@ msgstr "" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.0 `_ on Github." +"milestone for 3.0.0 `_ on Github." msgstr "" msgid "Fixed Issues" @@ -16331,9 +16857,6 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" -msgid "pgr_stoerWagner" -msgstr "" - msgid "pgr_dagShortestpath" msgstr "" @@ -16415,13 +16938,22 @@ msgstr "" msgid "pgr_alphaShape old signature" msgstr "" +msgid "pgRouting 2" +msgstr "" + +msgid "Minors 2.x" +msgstr "" + +msgid "pgRouting 2.6" +msgstr "" + msgid "pgRouting 2.6.3 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.3 `_ on Github." +"2.6.3 `_ on Github." msgstr "" msgid "" @@ -16444,8 +16976,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.2 `_ on Github." +"2.6.2 `_ on Github." msgstr "" msgid "" @@ -16468,8 +17000,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.1 `_ on Github." +"2.6.1 `_ on Github." msgstr "" msgid "Fixes server crash on several functions." @@ -16561,8 +17093,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.0 `_ on Github." +"2.6.0 `_ on Github." msgstr "" msgid "pgr_lineGraphFull" @@ -16605,13 +17137,16 @@ msgstr "" msgid "Cleaned the internal code of withPoints" msgstr "" +msgid "pgRouting 2.5" +msgstr "" + msgid "pgRouting 2.5.5 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.5 `_ on Github." +"2.5.5 `_ on Github." msgstr "" msgid "Fixes driving distance when vertex is not part of the graph" @@ -16628,8 +17163,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.4 `_ on Github." +"2.5.4 `_ on Github." msgstr "" msgid "pgRouting 2.5.3 Release Notes" @@ -16637,8 +17172,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.3 `_ on Github." +"2.5.3 `_ on Github." msgstr "" msgid "" @@ -16651,8 +17186,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.2 `_ on Github." +"2.5.2 `_ on Github." msgstr "" msgid "Fix for postgresql 10.1: Removed a compiler condition" @@ -16663,8 +17198,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.1 `_ on Github." +"2.5.1 `_ on Github." msgstr "" msgid "Fixed prerequisite minimum version of: cmake" @@ -16675,8 +17210,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.5.0 `_ on Github." +"2.5.0 `_ on Github." msgstr "" msgid "enhancement:" @@ -16743,13 +17278,16 @@ msgstr "" msgid "pgr_pointToEdgeNode" msgstr "" +msgid "pgRouting 2.4" +msgstr "" + msgid "pgRouting 2.4.2 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.2 `_ on Github." +"2.4.2 `_ on Github." msgstr "" msgid "Improvement" @@ -16770,8 +17308,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.1 `_ on Github." +"2.4.1 `_ on Github." msgstr "" msgid "Fixed compiling error on macOS" @@ -16785,8 +17323,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.4.0 `_ on Github." +"2.4.0 `_ on Github." msgstr "" msgid "pgr_bdDijkstra" @@ -16834,13 +17372,16 @@ msgstr "" msgid "TRSP original code is used with no changes on the compilation warnings" msgstr "" +msgid "pgRouting 2.3" +msgstr "" + msgid "pgRouting 2.3.2 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.2 `_ on Github." +"2.3.2 `_ on Github." msgstr "" msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck." @@ -16860,8 +17401,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.1 `_ on Github." +"2.3.1 `_ on Github." msgstr "" msgid "Leaks on proposed max_flow functions" @@ -16878,8 +17419,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.0 `_ on Github." +"2.3.0 `_ on Github." msgstr "" msgid "pgr_TSP" @@ -16957,13 +17498,16 @@ msgstr "" msgid "pgr_textToPoints" msgstr "" +msgid "pgRouting 2.2" +msgstr "" + msgid "pgRouting 2.2.4 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.4 `_ on Github." +"2.2.4 `_ on Github." msgstr "" msgid "Bogus uses of extern \"C\"" @@ -16980,8 +17524,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.3 `_ on Github." +"2.2.3 `_ on Github." msgstr "" msgid "Fixed compatibility issues with PostgreSQL 9.6." @@ -16992,8 +17536,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.2 `_ on Github." +"2.2.2 `_ on Github." msgstr "" msgid "Fixed regression error on pgr_drivingDistance" @@ -17004,8 +17548,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.1 `_ on Github." +"2.2.1 `_ on Github." msgstr "" msgid "Server crash fix on pgr_alphaShape" @@ -17019,8 +17563,8 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.0 `_ on Github." +"2.2.0 `_ on Github." msgstr "" msgid "Improvements" @@ -17107,13 +17651,16 @@ msgstr "" msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix" msgstr "" +msgid "pgRouting 2.1" +msgstr "" + msgid "pgRouting 2.1.0 Release Notes" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.1.0 `_ on Github." +"2.1.0 `_ on Github." msgstr "" msgid "pgr_dijkstra(one to many)" @@ -17247,6 +17794,9 @@ msgid "" "one library - The library has the prefix 2-1-0" msgstr "" +msgid "pgRouting 2.0" +msgstr "" + msgid "pgRouting 2.0.1 Release Notes" msgstr "" @@ -17261,14 +17811,14 @@ msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.0.0 `_ on Github." +"2.0.0 `_ on Github." msgstr "" msgid "" "With the release of pgRouting 2.0.0 the library has abandoned backwards " -"compatibility to `pgRouting 1.x Release Notes`_ releases. The main Goals for " -"this release are:" +"compatibility to `pgRouting 1.0`_ releases. The main Goals for this release " +"are:" msgstr "" msgid "Major restructuring of pgRouting." @@ -17382,13 +17932,16 @@ msgstr "" msgid "shooting_star is discontinued" msgstr "" -msgid "pgRouting 1.x Release Notes" +msgid "pgRouting 1" +msgstr "" + +msgid "pgRouting 1.0" msgstr "" msgid "" "To see the issues closed by this release see the `Git closed issues for 1.x " -"`_ on Github. The following release notes have been copied " +"`_ on Github. The following release notes have been copied " "from the previous ``RELEASE_NOTES`` file and are kept as a reference." msgstr "" @@ -17764,8 +18317,11 @@ msgid "" msgstr "" msgid "" -"Developer mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-" -"dev" +"Developer mailing list: https://discourse.osgeo.org/c/pgrouting/pgrouting-" +"dev/" +msgstr "" + +msgid "Subscribe: https://discourse.osgeo.org/g/pgrouting-dev" msgstr "" msgid "" @@ -17846,8 +18402,9 @@ msgstr "" msgid "Additional functions to analyze a graph:" msgstr "" -msgid "Transformation - Family of functions (Experimental)" -msgstr "" +#, fuzzy +msgid "Transformation - Family of functions" +msgstr ":doc:`pgr_withPoints`" msgid "" "This family of functions is used for transforming a given input graph :math:" diff --git a/locale/pot/index.pot b/locale/pot/index.pot index 3e98569d28..4d0ccec4d3 100644 --- a/locale/pot/index.pot +++ b/locale/pot/index.pot @@ -6,7 +6,7 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -117,7 +117,7 @@ msgid ":doc:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost msgstr "" #: ../../build/doc/bdDijkstra-family.rst:7 -msgid ":doc:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm to create a matrix of costs of the shortest paths." +msgid ":doc:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm to create a matrix of costs of the shortest paths." msgstr "" #: ../../build/doc/routingFunctions.rst:29 @@ -275,7 +275,7 @@ msgid "The following functions modify the database directly therefore the user m msgstr "" #: ../../build/doc/topology-functions.rst:6 -msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." +msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." msgstr "" #: ../../build/doc/topology-functions.rst:7 @@ -283,7 +283,7 @@ msgid ":doc:`pgr_createVerticesTable` - reconstruct the vertices table based on msgstr "" #: ../../build/doc/topology-functions.rst:9 -msgid ":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge table." +msgid ":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge table." msgstr "" #: ../../build/doc/topology-functions.rst:11 @@ -291,7 +291,7 @@ msgid ":doc:`pgr_analyzeOneWay` - to analyze directionality of the edges." msgstr "" #: ../../build/doc/topology-functions.rst:12 -msgid ":doc:`pgr_nodeNetwork` -to create nodes to a not noded edge table." +msgid ":doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table." msgstr "" #: ../../build/doc/routingFunctions.rst:77 diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 65c1ee0bd5..5dfcc5f82c 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.6.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-19 19:56+0000\n" +"POT-Creation-Date: 2024-10-10 03:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1330,7 +1330,7 @@ msgstr "" msgid "16.5" msgstr "" -msgid ":math:`10.5 / 60 = 0.175`" +msgid ":math:`10.5 / 60 = 0.175`" msgstr "" msgid "minutes" @@ -2548,9 +2548,6 @@ msgstr "" msgid "`Boost: Edge Coloring Algorithm documentation `__" msgstr "" -msgid "`Wikipedia: Graph Coloring `__" -msgstr "" - msgid "Components - Family of functions" msgstr "" @@ -3076,13 +3073,13 @@ msgstr "" msgid ":doc:`pgr_aStarCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdAstarCostMatrix`" +msgid ":doc:`pgr_dijkstraCostMatrix`" msgstr "" -msgid ":doc:`pgr_bdDijkstraCostMatrix`" +msgid ":doc:`pgr_bdAstarCostMatrix`" msgstr "" -msgid ":doc:`pgr_dijkstraCostMatrix`" +msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr "" msgid "proposed" @@ -3331,7 +3328,7 @@ msgstr "" msgid "the set of edges :math:`E`" msgstr "" -msgid ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" +msgid ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" msgstr "" msgid "Undirected graph" @@ -3343,7 +3340,7 @@ msgstr "" msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgstr "" -msgid ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" +msgid ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" msgstr "" msgid "The problem" @@ -3490,9 +3487,6 @@ msgstr "" msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." msgstr "" -msgid "Column ``pred`` only applies to :doc:`pgr_drivingDistance` and :doc:`pgr_withPointsDD`." -msgstr "" - msgid "Experimental Functions" msgstr "" @@ -3517,9 +3511,6 @@ msgstr "" msgid ":doc:`transformation-family`" msgstr "" -msgid ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." -msgstr "" - msgid ":doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line Graph out of each vertex in the input graph." msgstr "" @@ -3541,6 +3532,12 @@ msgstr "" msgid ":doc:`pgr_cuthillMckeeOrdering` - Return reverse Cuthill-McKee ordering of an undirected graph." msgstr "" +msgid ":doc:`metrics-family`" +msgstr "" + +msgid ":doc:`pgr_betweennessCentrality` - Calculates relative betweenness centrality using Brandes Algorithm" +msgstr "" + msgid ":doc:`TRSP-family`" msgstr "" @@ -3616,10 +3613,10 @@ msgstr "" msgid "When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned." msgstr "" -msgid "There is no flow when a **source** is the same as a **target**." +msgid "There is no flow when source has the same vaule as target." msgstr "" -msgid "Any duplicated value in the source(s) or target(s) are ignored." +msgid "Any duplicated values in source or target are ignored." msgstr "" msgid "Calculates the flow/residual capacity for each edge. In the output" @@ -3628,7 +3625,13 @@ msgstr "" msgid "Edges with zero flow are omitted." msgstr "" -msgid "Creates a **super source** and edges to all the source(s), and a **super target** and the edges from all the targets(s)." +msgid "Creates" +msgstr "" + +msgid "a **super source** and edges from it to all the sources," +msgstr "" + +msgid "a **super target** and edges from it to all the targetss." msgstr "" msgid "The maximum flow through the graph is guaranteed to be the value returned by :doc:`pgr_maxFlow ` when executed with the same parameters and can be calculated:" @@ -3934,6 +3937,96 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.0 `__" +msgstr "" + +msgid "Support" +msgstr "" + +msgid "`#2656 `__ Stop support of PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + +msgid "New experimental functions" +msgstr "" + +msgid "Metrics" +msgstr "" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "" + +msgid "`#2605 `__ Standarize spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "" + +msgid "``pgr_kruskalDD``" +msgstr "" + +msgid "``pgr_kruskalDFS``" +msgstr "" + +msgid "``pgr_kruskalBFS``" +msgstr "" + +msgid "``pgr_primDD``" +msgstr "" + +msgid "``pgr_primDFS``" +msgstr "" + +msgid "``pgr_primBFS``" +msgstr "" + +msgid "Standarizing output columns to |result-spantree|" +msgstr "" + +msgid "Added ``pred`` result columns." +msgstr "" + +msgid "Experimental promoted to proposed." +msgstr "" + +msgid "`#2635 `__ pgr_LineGraph ignores directed flag and use negative values for identifiers." +msgstr "" + +msgid "``pgr_lineGraph``" +msgstr "" + +msgid "Promoted to **proposed** signature." +msgstr "" + +msgid "Works for directed and undirected graphs." +msgstr "" + +msgid "Code enhancement" +msgstr "" + +msgid "`#2599 `__ Driving distance cleanup" +msgstr "" + +msgid "`#2607 `__ Read postgresql data on C++" +msgstr "" + +msgid "`#2614 `__ Clang tidy does not work" +msgstr "" + +msgid "All releases" +msgstr "" + msgid "Kruskal - Family of functions" msgstr "" @@ -3952,6 +4045,9 @@ msgstr "" msgid "Kruskal's running time: :math:`O(E * log E)`" msgstr "" +msgid "Metrics - Family of functions" +msgstr "" + msgid "Migration guide" msgstr "" @@ -4009,7 +4105,7 @@ msgstr "" msgid "Migration" msgstr "" -msgid "Be aware of the existance of the additional columns." +msgid "Be aware of the existence of the additional columns." msgstr "" msgid "In ``pgr_aStar`` (`One to One`)" @@ -4108,7 +4204,7 @@ msgstr "" msgid "Migration of ``pgr_drivingdistance``" msgstr "" -msgid "Starting from `v3.6.0 `__ :doc:`pgr_drivingDistance` result columns are being standarized." +msgid "Starting from `v3.6.0 `__ :doc:`pgr_drivingDistance` result columns are being standardized." msgstr "" msgid "from" @@ -4141,7 +4237,7 @@ msgstr "" msgid "does not have ``depth`` result column." msgstr "" -msgid "Be aware of the existance and name change of the result columns." +msgid "Be aware of the existence and name change of the result columns." msgstr "" msgid "Using `this `__ example." @@ -4162,13 +4258,61 @@ msgstr "" msgid "The ``from_v`` result column name changes to ``start_vid``." msgstr "" -msgid "If needed filter out and rename colums, for example, to return the original columns:" +msgid "If needed filter out and rename columns, for example, to return the original columns:" +msgstr "" + +msgid "Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" +msgstr "" + +msgid "Starting from `v3.7.0 `__ :doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :doc:`pgr_kruskalDFS` result columns are being standardized." +msgstr "" + +msgid "|result-bfs|" +msgstr "" + +msgid "Single vertex" +msgstr "" + +msgid "Multiple vertices" +msgstr "" + +msgid "Output columns were |result-bfs|" +msgstr "" + +msgid "Single vertex and Multiple vertices" +msgstr "" + +msgid "Do not have ``pred`` result column." +msgstr "" + +msgid "Be aware of the existence of `pred` result columns." +msgstr "" + +msgid "If needed filter out the added columns" +msgstr "" + +msgid "Kruskal single vertex" +msgstr "" + +msgid "Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected functions." +msgstr "" + +msgid "Comparing with `this `__ example." +msgstr "" + +msgid "Now column ``pred`` exists and contains the predecessor of the ``node``." +msgstr "" + +msgid "Kruskal multiple vertices" +msgstr "" + +msgid "Comparing with `this `__ example." msgstr "" msgid "Migration of ``pgr_KSP``" msgstr "" -msgid "Starting from `v3.6.0 `__ :doc:`pgr_KSP` result columns are being standarized." +msgid "Starting from `v3.6.0 `__ :doc:`pgr_KSP` result columns are being standardized." msgstr "" msgid "|ksp-result|" @@ -4252,10 +4396,31 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgstr "" + +msgid "Starting from `v3.7.0 `__ :doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns are being standardized." +msgstr "" + +msgid "Prim single vertex" +msgstr "" + +msgid "Using ``pgr_primDD`` as example. Migration is similar to al the affected functions." +msgstr "" + +msgid "Comparing with `this `__ example." +msgstr "" + +msgid "Prim multiple vertices" +msgstr "" + +msgid "Comparing with `this `__ example." +msgstr "" + msgid "Migration of ``pgr_withPointsDD``" msgstr "" -msgid "Starting from `v3.6.0 `__ :doc:`pgr_withPointsDD` result columns are being standarized." +msgid "Starting from `v3.6.0 `__ :doc:`pgr_withPointsDD` result columns are being standardized." msgstr "" msgid "|result-generic-no-seq|" @@ -4276,7 +4441,7 @@ msgstr "" msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." msgstr "" -msgid "``driving_side`` parameter was named optional now it is compulsory unamed." +msgid "``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "" msgid "``pgr_withPointsDD`` (`Multiple vertices`)" @@ -4327,7 +4492,7 @@ msgstr "" msgid "After Migration" msgstr "" -msgid "Be aware of the existance of the additional result Columns." +msgid "Be aware of the existence of the additional result Columns." msgstr "" msgid "New output columns are |result-spantree|" @@ -4375,7 +4540,7 @@ msgstr "" msgid "Migration of ``pgr_withPointsKSP``" msgstr "" -msgid "Starting from `v3.6.0 `__ :doc:`pgr_withPointsKSP` result columns are being standarized." +msgid "Starting from `v3.6.0 `__ :doc:`pgr_withPointsKSP` result columns are being standardized." msgstr "" msgid "And ``driving side`` parameter changed from named optional to unnamed compulsory **driving side** and its validity differ for directed and undirected graphs." @@ -5614,7 +5779,7 @@ msgstr "" msgid "Needs a `Combinations SQL`_" msgstr "" -msgid "There are several kinds of valid inner queries and also the columns returned are depending of the function. Which kind of inner query will depend on the function(s) requirements. To simplify variety of types, **ANY-INTEGER** and **ANY-NUMERICAL** is used." +msgid "There are several kinds of valid inner queries and also the columns returned are depending of the function. Which kind of inner query will depend on the function's requirements. To simplify the variety of types, **ANY-INTEGER** and **ANY-NUMERICAL** is used." msgstr "" msgid "Edges SQL for" @@ -5980,9 +6145,6 @@ msgstr "" msgid "The pgRouting latest release can be found in https://github.com/pgRouting/pgrouting/releases/latest" msgstr "" -msgid "wget" -msgstr "" - msgid "To download this release:" msgstr "" @@ -6013,7 +6175,7 @@ msgstr "" msgid "Upgrading the database" msgstr "" -msgid "To upgrade pgRouting in the database to version 3.6.0 use the following command:" +msgid "To upgrade pgRouting in the database to version 3.7.0 use the following command:" msgstr "" msgid "More information can be found in https://www.postgresql.org/docs/current/sql-createextension.html" @@ -6304,10 +6466,13 @@ msgstr "" msgid "This Release Contributors" msgstr "" -msgid "Individuals in this release (in alphabetical order)" +msgid "Individuals in this release v3.7.x (in alphabetical order)" +msgstr "" + +msgid "(Alphabetical order)" msgstr "" -msgid "Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, Virginia Vergara, Yige Huang" +msgid "Regina Obe, Vicky Vergara" msgstr "" msgid "And all the people that give us a little of their time making comments, finding issues, making pull requests etc. in any of our products: osm2pgrouting, pgRouting, pgRoutingLayer, workshop." @@ -6319,7 +6484,10 @@ msgstr "" msgid "These are corporate entities that have contributed developer time, hosting, or direct monetary funding to the pgRouting project:" msgstr "" -msgid "`Georepublic `__" +msgid "`OSGeo `__" +msgstr "" + +msgid "`OSGeo UK `__" msgstr "" msgid "`Google Summer of Code `__" @@ -6361,6 +6529,12 @@ msgstr "" msgid "Orkney" msgstr "" +msgid "OSGeo" +msgstr "" + +msgid "OSGeo UK" +msgstr "" + msgid "Paragon Corporation" msgstr "" @@ -6382,7 +6556,7 @@ msgstr "" msgid "Boost C++ source libraries at https://www.boost.org." msgstr "" -msgid "The Migration guide from 2.6 can be found at https://github.com/pgRouting/pgrouting/wiki/Migration-Guide." +msgid ":doc:`migration`" msgstr "" msgid "pgr_KSP" @@ -6922,7 +7096,7 @@ msgstr "" msgid "pgr_aStarCost" msgstr "" -msgid "``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* algorithm." +msgid "``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm." msgstr "" msgid "``pgr_aStarCost`` (`Combinations`_)" @@ -6931,7 +7105,7 @@ msgstr "" msgid "New **proposed** function" msgstr "" -msgid "The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path(s) using the A* algorithm." +msgid "The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path using the A* algorithm." msgstr "" msgid "Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`" @@ -7039,9 +7213,6 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" -msgid "Support" -msgstr "" - msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -7525,13 +7696,13 @@ msgstr "" msgid "pgr_bdAstarCost" msgstr "" -msgid "``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the bidirectional A* algorithm." +msgid "``pgr_bdAstarCost`` - Total cost of the shortest path using the bidirectional A* algorithm." msgstr "" msgid "``pgr_bdAstarCost`` (`Combinations`_)" msgstr "" -msgid "The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path(s) using the bidirectional A* algorithm." +msgid "The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path using the bidirectional A* algorithm." msgstr "" msgid "pgr_bdAstarCost(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -7564,7 +7735,7 @@ msgstr "" msgid "``pgr_bdDijkstra``" msgstr "" -msgid "``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional Dijkstra algorithm." +msgid "``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra algorithm." msgstr "" msgid "pgr_bdDijkstra(`Combinations`_)" @@ -7600,7 +7771,7 @@ msgstr "" msgid "pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" msgid "Returns set of |old-generic-result|" @@ -7627,9 +7798,6 @@ msgstr "" msgid "From vertices :math:`\\{6, 1\\}` to vertices :math:`\\{10, 17\\}` on an **undirected** graph" msgstr "" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "" - msgid "Using a combinations table on an **undirected** graph" msgstr "" @@ -7642,7 +7810,7 @@ msgstr "" msgid "``pgr_bdDijkstraCost``" msgstr "" -msgid "``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using Bidirectional Dijkstra algorithm." +msgid "``pgr_bdDijkstraCost`` — Returns the shortest path's cost using Bidirectional Dijkstra algorithm." msgstr "" msgid "``pgr_bdDijkstraCost`` (`Combinations`_)" @@ -7690,7 +7858,7 @@ msgstr "" msgid "``pgr_bellmanFord - Experimental``" msgstr "" -msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" msgid "New **experimental** signature:" @@ -7762,6 +7930,81 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "" +msgid "``pgr_betweennessCentrality``" +msgstr "" + +msgid "``pgr_betweennessCentrality`` - Calculates the relative betweeness centrality using Brandes Algorithm" +msgstr "" + +msgid "Version 3.7.0" +msgstr "" + +msgid "New **experimental** function:" +msgstr "" + +msgid "The Brandes Algorithm takes advantage of the sparse graphs for evaluating the betweenness centrality score of all vertices." +msgstr "" + +msgid "Betweenness centrality measures the extent to which a vertex lies on the shortest paths between all other pairs of vertices. Vertices with a high betweenness centrality score may have considerable influence in a network by the virtue of their control over the shortest paths passing between them." +msgstr "" + +msgid "The removal of these vertices will affect the network by disrupting the it, as most of the shortest paths between vertices pass through them." +msgstr "" + +msgid "This implementation work for both directed and undirected graphs." +msgstr "" + +msgid "Running time: :math:`\\Theta(VE)`" +msgstr "" + +msgid "Running space: :math:`\\Theta(VE)`" +msgstr "" + +msgid "Throws when there are no edges in the graph" +msgstr "" + +msgid "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" +msgstr "" + +msgid "Returns set of ``(vid, centrality)``" +msgstr "" + +msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." +msgstr "" + +msgid "Explanation" +msgstr "" + +msgid "The betweenness centrality are between parenthesis." +msgstr "" + +msgid "The leaf vertices have betweenness centrality :math:`0`." +msgstr "" + +msgid "Betweenness centrality of vertex :math:`6` is higher than of vertex :math:`10`." +msgstr "" + +msgid "Removing vertex :math:`6` will create three graph components." +msgstr "" + +msgid "Removing vertex :math:`10` will create two graph components." +msgstr "" + +msgid "``vid``" +msgstr "" + +msgid "``centrality``" +msgstr "" + +msgid "Relative betweenness centrality score of the vertex (will be in range [0,1])" +msgstr "" + +msgid "Boost's `betweenness_centrality `_" +msgstr "" + +msgid "Queries use the :doc:`sampledata` network." +msgstr "" + msgid "``pgr_biconnectedComponents``" msgstr "" @@ -7816,7 +8059,7 @@ msgstr "" msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "" -msgid "``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a binary graph." +msgid "``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary graph." msgstr "" msgid "Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any non-negative integer, is termed as a 'binary graph'." @@ -8014,15 +8257,9 @@ msgstr "" msgid "Returns set of |result-bfs|" msgstr "" -msgid "Single vertex" -msgstr "" - msgid "From root vertex :math:`6` on a **directed** graph with edges in ascending order of ``id``" msgstr "" -msgid "Multiple vertices" -msgstr "" - msgid "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with **depth** :math:`<= 2` and edges in ascending order of ``id``" msgstr "" @@ -8665,10 +8902,7 @@ msgstr "" msgid "pgr_dagShortestPath - Experimental" msgstr "" -msgid "``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted directed acyclic graphs(DAG). In particular, the DAG shortest paths algorithm implemented by Boost.Graph." -msgstr "" - -msgid "New **experimental** function:" +msgid "``pgr_dagShortestPath`` — Returns the shortest path for weighted directed acyclic graphs(DAG). In particular, the DAG shortest paths algorithm implemented by Boost.Graph." msgstr "" msgid "pgr_dagShortestPath(Combinations)" @@ -8887,7 +9121,7 @@ msgstr "" msgid "``pgr_dijkstra``" msgstr "" -msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." +msgid "``pgr_dijkstra`` — Shortest path using Dijkstra algorithm." msgstr "" msgid "Version 3.5.0" @@ -9115,13 +9349,13 @@ msgstr "" msgid "``pgr_dijkstraCost``" msgstr "" -msgid "``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra algorithm." +msgid "``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra algorithm." msgstr "" msgid "``pgr_dijkstraCost`` (`Combinations`_)" msgstr "" -msgid "The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path(s) using Dijkstra Algorithm." +msgid "The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path using Dijkstra Algorithm." msgstr "" msgid "pgr_dijkstraCost(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -9442,7 +9676,7 @@ msgstr "" msgid "Returns set of |via-result|" msgstr "" -msgid "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that order on an **directed** graph." +msgid "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that order on an directed graph." msgstr "" msgid "Via optional parameters" @@ -9499,9 +9733,6 @@ msgstr "" msgid "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "" -msgid "Standarizing output columns to |result-spantree|" -msgstr "" - msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "" @@ -10501,9 +10732,6 @@ msgstr "" msgid "Minimum spanning forest" msgstr "" -msgid "``pgr_kruskalBFS``" -msgstr "" - msgid "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with breadth First Search ordering." msgstr "" @@ -10528,9 +10756,6 @@ msgstr "" msgid "The Minimum Spanning Tree starting on vertices :math:`\\{9, 6\\}` with :math:`depth \\leq 3`" msgstr "" -msgid "``pgr_kruskalDD``" -msgstr "" - msgid "``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm." msgstr "" @@ -10555,9 +10780,6 @@ msgstr "" msgid "The Minimum Spanning Tree starting on vertices :math:`\\{9, 6\\}` with :math:`distance \\leq 3.5`" msgstr "" -msgid "``pgr_kruskalDFS``" -msgstr "" - msgid "``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with Depth First Search ordering." msgstr "" @@ -10630,19 +10852,34 @@ msgstr "" msgid "`Wikipedia: dominator tree `__" msgstr "" -msgid "``pgr_lineGraph`` - Experimental" +msgid "pgr_lineGraph - Proposed" msgstr "" msgid "``pgr_lineGraph`` — Transforms the given graph into its corresponding edge-based graph." msgstr "" -msgid "Given a graph G, its line graph L(G) is a graph such that:" +msgid "Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" +msgstr "" + +msgid "Each vertex of :math:`L(G)` represents an edge of :math:`G`." +msgstr "" + +msgid "Two vertices of :math:`L(G)` are adjacent if and only if their corresponding edges share a common endpoint in :math:`G`" +msgstr "" + +msgid "The ``cost`` and ``reverse_cost`` columns of the result represent existence of the edge." msgstr "" -msgid "Each vertex of L(G) represents an edge of G" +msgid "When the graph is directed the result is directed." msgstr "" -msgid "Two vertices of L(G) are adjacent if and only if their corresponding edges share a common endpoint in G." +msgid "To get the complete Line Graph use unique identifiers on the double way edges (See `Additional Examples`_)." +msgstr "" + +msgid "When the graph is undirected the result is undirected." +msgstr "" + +msgid "The ``reverse_cost`` is always :math:`-1`." msgstr "" msgid "pgr_lineGraph(`Edges SQL`_, [``directed``])" @@ -10651,7 +10888,7 @@ msgstr "" msgid "Returns set of |result-lineg|" msgstr "" -msgid "For a **directed** graph" +msgid "For an undirected graph with edges :math:'{2,4,5,8}'" msgstr "" msgid "Gives a local identifier for the edge" @@ -10681,7 +10918,109 @@ msgstr "" msgid "When `negative`: edge (``target``, ``source``) does not exist, therefore it’s not part of the graph." msgstr "" -msgid "https://en.wikipedia.org/wiki/Line_graph" +msgid "Given the following directed graph" +msgstr "" + +msgid ":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2 \\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 \\rightarrow 3\\})`" +msgstr "" + +msgid "Representation as directed with shared edge identifiers" +msgstr "" + +msgid "For the simplicity, the design of the edges table on the database, has the edge's identifiers are represented with 3 digits:" +msgstr "" + +msgid "hundreds" +msgstr "" + +msgid "the source vertex" +msgstr "" + +msgid "tens" +msgstr "" + +msgid "always 0, acts as a separator" +msgstr "" + +msgid "units" +msgstr "" + +msgid "the target vertex" +msgstr "" + +msgid "In this image," +msgstr "" + +msgid "Single or double head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "The numbers in the yellow shadow are the edge identifiers." +msgstr "" + +msgid "Two pair of edges share the same identifier when the ``reverse_cost`` column is used." +msgstr "" + +msgid "Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with one edge row with :math:`id=203`." +msgstr "" + +msgid "Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with one edge row with :math:`id=304`." +msgstr "" + +msgid "The graph can be created as follows:" +msgstr "" + +msgid "Line Graph of a directed graph represented with shared edges" +msgstr "" + +msgid "The result is a directed graph." +msgstr "" + +msgid "For :math:`seq=4` from :math:`203 \\leftrightarrow 304` represent two edges" +msgstr "" + +msgid "For all the other values of ``seq`` represent one edge." +msgstr "" + +msgid "The ``cost`` and ``reverse_cost`` values represent the existence of the edge." +msgstr "" + +msgid "When positive: the edge exists." +msgstr "" + +msgid "When negative: the edge does not exist." +msgstr "" + +msgid "Representation as directed with unique edge identifiers" +msgstr "" + +msgid "Single head arrows represent one edge (row) on the edges table." +msgstr "" + +msgid "There are no double head arrows" +msgstr "" + +msgid "Two pair of edges share the same ending nodes and the ``reverse_cost`` column is not used." +msgstr "" + +msgid "Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with two edges :math:`id=203` and :math:`id=302` respectively." +msgstr "" + +msgid "Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with two edges :math:`id=304` and :math:`id=403` respectively." +msgstr "" + +msgid "Line Graph of a directed graph represented with unique edges" +msgstr "" + +msgid "For :math:`seq=7` from :math:`203 \\leftrightarrow 302` represent two edges." +msgstr "" + +msgid "For :math:`seq=8` from :math:`304 \\leftrightarrow 403` represent two edges." +msgstr "" + +msgid "wikipedia: `Line Graph `__" +msgstr "" + +msgid "mathworld: `Line Graph `__" msgstr "" msgid "``pgr_lineGraphFull`` - Experimental" @@ -10879,6 +11218,9 @@ msgstr "" msgid "Routing from :math:`5` to :math:`1`" msgstr "" +msgid "https://en.wikipedia.org/wiki/Line_graph" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Complete_graph" msgstr "" @@ -10963,9 +11305,6 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "" -msgid ":doc:`migration`" -msgstr "" - msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" msgstr "" @@ -10987,7 +11326,7 @@ msgstr "" msgid "New **Proposed** function" msgstr "" -msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." +msgid "Calculates the maximum flow from the sources to the targets." msgstr "" msgid "When the maximum flow is **0** then there is no flow and **0** is returned." @@ -11164,7 +11503,7 @@ msgstr "" msgid "old_id" msgstr "" -msgid "``bigint`` Identifier of the edge in original table" +msgid "``bigint`` Identifier of the edge in original table" msgstr "" msgid "sub_id" @@ -11251,7 +11590,7 @@ msgstr "" msgid "Edges with 1 dead end: 1,6,24" msgstr "" -msgid "Edges with 2 dead ends 17,18" +msgid "Edges with 2 dead ends: 17,18" msgstr "" msgid "Edge 17's right node is a dead end because there is no other edge sharing that same node. (cnt=1)" @@ -11263,7 +11602,7 @@ msgstr "" msgid "Isolated segments" msgstr "" -msgid "two isolated segments: 17 and 18 both they have 2 dead ends" +msgid "two isolated segments: 17 and 18 both they have 2 dead ends" msgstr "" msgid "No Isolated segments" @@ -11533,13 +11872,10 @@ msgstr "" msgid "`Boost: Prim's algorithm documentation `__" msgstr "" -msgid "``pgr_primBFS``" -msgstr "" - msgid "``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth First Search ordering." msgstr "" -msgid "Visits and extracts the nodes information in Breath First Search ordering of the Minimum Spanning Tree created with Prims's algorithm." +msgid "Visits and extracts the nodes information in Breath First Search ordering of the Minimum Spanning Tree created using Prims's algorithm." msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -11548,13 +11884,10 @@ msgstr "" msgid "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "``pgr_primDD``" -msgstr "" - msgid "``pgr_primDD`` — Catchament nodes using Prim's algorithm." msgstr "" -msgid "Using Prim's algorithm, extracts the nodes that have aggregate costs less than or equal to a **distance** from a **root** vertex (or vertices) within the calculated minimum spanning tree." +msgid "Using Prim's algorithm, extracts the nodes that have aggregate costs less than or equal to a distance from a root vertex (or vertices) within the calculated minimum spanning tree." msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vid**, **distance**)" @@ -11563,9 +11896,6 @@ msgstr "" msgid "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" msgstr "" -msgid "``pgr_primDFS``" -msgstr "" - msgid "``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth First Search ordering." msgstr "" @@ -11833,9 +12163,6 @@ msgstr "" msgid "Rechability of a subgraph" msgstr "" -msgid "``vid``" -msgstr "" - msgid "Identifier of the source of the edges" msgstr "" @@ -11983,9 +12310,6 @@ msgstr "" msgid "pgr_trspVia(`Edges SQL`_, `Restrictions SQL`_, **via vertices**, [**options**])" msgstr "" -msgid "Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that order on an directed graph." -msgstr "" - msgid "All this examples are about the route that visits the vertices :math:`\\{5, 7, 1, 8, 15\\}` in that order on a directed graph." msgstr "" @@ -12178,7 +12502,7 @@ msgstr "" msgid "``pgr_trsp_withPoints`` (`Combinations`_)" msgstr "" -msgid "Modify the graph to include points defined by points_sql. Using Dijkstra algorithm, find the shortest path(s)" +msgid "Modify the graph to include points defined by points_sql. Using Dijkstra algorithm, find the shortest path" msgstr "" msgid "Characteristics:" @@ -12457,13 +12781,13 @@ msgstr "" msgid "``pgr_withPointsCost`` - Proposed" msgstr "" -msgid "``pgr_withPointsCost`` - Calculates the shortest path and returns only the aggregate cost of the shortest path(s) found, for the combination of points given." +msgid "``pgr_withPointsCost`` - Calculates the shortest path and returns only the aggregate cost of the shortest path found, for the combination of points given." msgstr "" msgid "pgr_withPointsCost(Combinations)" msgstr "" -msgid "Modify the graph to include points defined by points_sql. Using Dijkstra algorithm, return only the aggregate cost of the shortest path(s) found." +msgid "Modify the graph to include points defined by points_sql. Using Dijkstra algorithm, return only the aggregate cost of the shortest path found." msgstr "" msgid "Returns the sum of the costs of the shortest path for pair combination of vertices in the modified graph." @@ -12877,6 +13201,9 @@ msgstr "" msgid ":doc:`pgr_extractVertices` - Extracts vertex information based on the edge table information." msgstr "" +msgid ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." +msgstr "" + msgid ":doc:`pgr_withPointsVia`" msgstr "" @@ -12907,13 +13234,112 @@ msgstr "" msgid "To see the full list of changes check the list of `Git commits `_ on Github." msgstr "" -msgid "pgRouting 3.6.0 Release Notes" +msgid "Mayors" msgstr "" -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.0 `_" +msgid "pgRouting 3" msgstr "" -msgid "Official functions changes" +msgid "Minors 3.x" +msgstr "" + +msgid "pgRouting 3.7" +msgstr "" + +msgid "pgRouting 3.6" +msgstr "" + +msgid "pgRouting 3.6.3 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.3 `__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +msgid "postgis 3.0.0" +msgstr "" + +msgid "Code fixes" +msgstr "" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "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" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "" + +msgid "pgr_stoerWagner" +msgstr "" + +msgid "pgtap tests" +msgstr "" + +msgid "bug fixes" +msgstr "" + +msgid "pgRouting 3.6.2 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.2 `__" +msgstr "" + +msgid "Upgrade fix" +msgstr "" + +msgid "The upgrade was failing for same minor" +msgstr "" + +msgid "Fix warnings from cpplint" +msgstr "" + +msgid "Others" +msgstr "" + +msgid "Adjust NEWS generator" +msgstr "" + +msgid "Name change to `NEWS.md` for better visualization on GitHub" +msgstr "" + +msgid "pgRouting 3.6.1 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.1 `_" +msgstr "" + +msgid "`#2588 `__ pgrouting 3.6.0 fails to build on OSX" +msgstr "" + +msgid "pgRouting 3.6.0 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.0 `_" msgstr "" msgid "`#2516 `__ Standarize output pgr_aStar" @@ -12979,9 +13405,6 @@ msgstr "" msgid "`#2522 `__ bdAstar code simplification." msgstr "" -msgid "Documentation" -msgstr "" - msgid "`#2490 `__ Automatic page history links." msgstr "" @@ -12994,6 +13417,9 @@ msgstr "" msgid "On new internal function: do not use named parameters and default parameters." msgstr "" +msgid "pgRouting 3.5" +msgstr "" + msgid "pgRouting 3.5.1 Release Notes" msgstr "" @@ -13033,9 +13459,6 @@ msgstr "" msgid "`#2561 `__ Not use wildcards on SQL" msgstr "" -msgid "pgtap tests" -msgstr "" - msgid "`#2559 `__ pgtap test using sampledata" msgstr "" @@ -13045,9 +13468,6 @@ msgstr "" msgid "Fix winnie build" msgstr "" -msgid "Code fixes" -msgstr "" - msgid "Fix clang warnings" msgstr "" @@ -13072,6 +13492,9 @@ msgstr "" msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." msgstr "" +msgid "pgRouting 3.4" +msgstr "" + msgid "pgRouting 3.4.2 Release Notes" msgstr "" @@ -13174,9 +13597,6 @@ msgstr "" msgid "``pgr_findCloseEdges`` (Many points)" msgstr "" -msgid "New experimental functions" -msgstr "" - msgid "Ordering" msgstr "" @@ -13201,6 +13621,9 @@ msgstr "" msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" msgstr "" +msgid "pgRouting 3.3" +msgstr "" + msgid "pgRouting 3.3.5 Release Notes" msgstr "" @@ -13354,6 +13777,9 @@ msgstr "" msgid "pgr_depthFirstSearch(Single vertex)" msgstr "" +msgid "pgRouting 3.2" +msgstr "" + msgid "pgRouting 3.2.2 Release Notes" msgstr "" @@ -13390,9 +13816,6 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.2.0 `_ on Github." msgstr "" -msgid "Build" -msgstr "" - msgid "`#1850 `__: Change Boost min version to 1.56" msgstr "" @@ -13471,6 +13894,9 @@ msgstr "" msgid "pgr_pushRelabel(Combinations)" msgstr "" +msgid "pgRouting 3.1" +msgstr "" + msgid "pgRouting 3.1.4 Release Notes" msgstr "" @@ -13555,6 +13981,9 @@ msgstr "" msgid "Minimal requirement for Sphinx: version 1.8" msgstr "" +msgid "pgRouting 3.0" +msgstr "" + msgid "pgRouting 3.0.6 Release Notes" msgstr "" @@ -13858,9 +14287,6 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" -msgid "pgr_stoerWagner" -msgstr "" - msgid "pgr_dagShortestpath" msgstr "" @@ -13942,6 +14368,15 @@ msgstr "" msgid "pgr_alphaShape old signature" msgstr "" +msgid "pgRouting 2" +msgstr "" + +msgid "Minors 2.x" +msgstr "" + +msgid "pgRouting 2.6" +msgstr "" + msgid "pgRouting 2.6.3 Release Notes" msgstr "" @@ -14104,6 +14539,9 @@ msgstr "" msgid "Cleaned the internal code of withPoints" msgstr "" +msgid "pgRouting 2.5" +msgstr "" + msgid "pgRouting 2.5.5 Release Notes" msgstr "" @@ -14221,6 +14659,9 @@ msgstr "" msgid "pgr_pointToEdgeNode" msgstr "" +msgid "pgRouting 2.4" +msgstr "" + msgid "pgRouting 2.4.2 Release Notes" msgstr "" @@ -14302,6 +14743,9 @@ msgstr "" msgid "TRSP original code is used with no changes on the compilation warnings" msgstr "" +msgid "pgRouting 2.3" +msgstr "" + msgid "pgRouting 2.3.2 Release Notes" msgstr "" @@ -14416,6 +14860,9 @@ msgstr "" msgid "pgr_textToPoints" msgstr "" +msgid "pgRouting 2.2" +msgstr "" + msgid "pgRouting 2.2.4 Release Notes" msgstr "" @@ -14551,6 +14998,9 @@ msgstr "" msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix" msgstr "" +msgid "pgRouting 2.1" +msgstr "" + msgid "pgRouting 2.1.0 Release Notes" msgstr "" @@ -14674,6 +15124,9 @@ msgstr "" msgid "Instead of generating many libraries: - All functions are encapsulated in one library - The library has the prefix 2-1-0" msgstr "" +msgid "pgRouting 2.0" +msgstr "" + msgid "pgRouting 2.0.1 Release Notes" msgstr "" @@ -14689,7 +15142,7 @@ msgstr "" msgid "To see the issues closed by this release see the `Git closed issues for 2.0.0 `_ on Github." msgstr "" -msgid "With the release of pgRouting 2.0.0 the library has abandoned backwards compatibility to `pgRouting 1.x Release Notes`_ releases. The main Goals for this release are:" +msgid "With the release of pgRouting 2.0.0 the library has abandoned backwards compatibility to `pgRouting 1.0`_ releases. The main Goals for this release are:" msgstr "" msgid "Major restructuring of pgRouting." @@ -14791,7 +15244,10 @@ msgstr "" msgid "shooting_star is discontinued" msgstr "" -msgid "pgRouting 1.x Release Notes" +msgid "pgRouting 1" +msgstr "" + +msgid "pgRouting 1.0" msgstr "" msgid "To see the issues closed by this release see the `Git closed issues for 1.x `_ on Github. The following release notes have been copied from the previous ``RELEASE_NOTES`` file and are kept as a reference." @@ -15100,7 +15556,10 @@ msgstr "" msgid "User mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-users" msgstr "" -msgid "Developer mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-dev" +msgid "Developer mailing list: https://discourse.osgeo.org/c/pgrouting/pgrouting-dev/" +msgstr "" + +msgid "Subscribe: https://discourse.osgeo.org/g/pgrouting-dev" msgstr "" msgid "For general questions and topics about how to use pgRouting, please write to the user mailing list." @@ -15163,7 +15622,7 @@ msgstr "" msgid "Additional functions to analyze a graph:" msgstr "" -msgid "Transformation - Family of functions (Experimental)" +msgid "Transformation - Family of functions" msgstr "" msgid "This family of functions is used for transforming a given input graph :math:`G(V,E)` into a new graph :math:`G'(V',E')`." diff --git a/locale/zh_Hans/LC_MESSAGES/index.po b/locale/zh_Hans/LC_MESSAGES/index.po index c35a7d3715..d6ff27efd5 100644 --- a/locale/zh_Hans/LC_MESSAGES/index.po +++ b/locale/zh_Hans/LC_MESSAGES/index.po @@ -5,11 +5,11 @@ # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.4.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" -"PO-Revision-Date: 2023-10-21 03:23+0000\n" -"Last-Translator: Zuochenwei \n" +"PO-Revision-Date: 2024-09-23 14:18+0000\n" +"Last-Translator: Celia Virginia Vergara Castillo \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0\n" +"X-Generator: Weblate 5.4.3\n" #: ../../build/doc/index.rst:12 msgid "**Supported versions:** `Latest `__ (`3.4 `__) `3.3 `__ `3.2 `__ `3.1 `__ `3.0 `__" @@ -59,11 +59,11 @@ msgstr "知识共享署名 - 相同方式共享 3.0 许可证" #: ../../build/doc/index.rst:42 msgid "The pgRouting Manual is licensed under a `Creative Commons Attribution-Share Alike 3.0 License `_. Feel free to use this material any way you like, but we ask that you attribute credit to the pgRouting Project and wherever possible, a link back to https://pgrouting.org. For other licenses used in pgRouting see the :ref:`license` page." msgstr "" -"pgRouting 手册根据`知识共享署名-相同方式共享3.0许可证 " +"pgRouting 手册根据 `知识共享署名-相同方式共享3.0许可证 " "`_。 您可以随意使用本材料," "但我们要求您将功劳归功于 pgRouting 项目,并尽可能提供返回 https://" -"pgrouting.org 的链接。 有关 pgRouting " -"中使用的其他许可证,请参阅:ref:`license` page.。" +"pgrouting.org 的链接。 有关 pgRouting 中使用的其他许可证,请参阅 " +":ref:`license` page.。" #: ../../build/doc/index.rst:50 msgid "General" diff --git a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po index 55bbd88ed7..523c4bee57 100644 --- a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po @@ -3,16 +3,17 @@ # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. # Wangdapeng , 2023. -# Zuochenwei , 2023. -# Celia Virginia Vergara Castillo , 2023. +# Zuochenwei , 2023, 2024. +# Celia Virginia Vergara Castillo , 2023, 2024. # Wang Dapeng , 2023. +# DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.6.0-dev\n" +"Project-Id-Version: pgRouting v3.6.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 18:11+0000\n" -"PO-Revision-Date: 2023-10-27 06:23+0000\n" -"Last-Translator: Zuochenwei \n" +"POT-Creation-Date: 2024-10-10 03:40+0000\n" +"PO-Revision-Date: 2024-10-10 19:47+0000\n" +"Last-Translator: DeepL \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" @@ -20,10 +21,10 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0\n" +"X-Generator: Weblate 5.4.3\n" msgid "BFS - Category" -msgstr "BFS-类别" +msgstr "BFS - 类别" msgid ":doc:`pgr_kruskalBFS`" msgstr ":doc:`pgr_kruskalBFS`" @@ -35,7 +36,7 @@ msgid "Traversal using breadth first search." msgstr "使用广度优先搜索进行遍历。" msgid "It's implementation is only on **undirected** graph." -msgstr "它的实现仅在**无向**图上。" +msgstr "它的实现仅在 **无向** 图上。" msgid "Process is done only on edges with positive costs." msgstr "仅在具有正成本的边进行处理。" @@ -74,7 +75,7 @@ msgid "``TEXT``" msgstr "``TEXT``" msgid "`Edges SQL`_ as described below." -msgstr "`Edges SQL`_如下所述。" +msgstr "`Edges SQL`_ 如下所述。" msgid "**root vid**" msgstr "**root vid**" @@ -189,7 +190,7 @@ msgstr "边(``target``, ``source``)的权重" msgid "" "When negative: edge (``target``, ``source``) does not exist, therefore it's " "not part of the graph." -msgstr "当为负时:边(``target``, ``source``)不存在,因此它不是图的一部分。" +msgstr "当为负时:边( ``target``, ``source`` )不存在,因此它不是图的一部分。" msgid "``SMALLINT``, ``INTEGER``, ``BIGINT``" msgstr "``SMALLINT``, ``INTEGER``, ``BIGINT``" @@ -200,26 +201,26 @@ msgstr "ANY-NUMERICAL" msgid "``SMALLINT``, ``INTEGER``, ``BIGINT``, ``REAL``, ``FLOAT``" msgstr "``SMALLINT``, ``INTEGER``, ``BIGINT``, ``REAL``, ``FLOAT``" -msgid "Result Columns" +msgid "Result columns" msgstr "结果列" -msgid "Returns SET OF ``(seq, depth, start_vid, node, edge, cost, agg_cost)``" -msgstr "返回一组``(seq, depth, start_vid, node, edge, cost, agg_cost)``" +msgid "Returns set of ``(seq, depth, start_vid, node, edge, cost, agg_cost)``" +msgstr "返回一组 ``(seq, depth, start_vid, node, edge, cost, agg_cost)``" msgid "``seq``" msgstr "``seq``" msgid "Sequential value starting from :math:`1`." -msgstr "从:math:`1`开始的顺序值。" +msgstr "从 :math:`1` 开始的顺序值。" msgid "``depth``" msgstr "``depth``" msgid "Depth of the ``node``." -msgstr "``node``的深度。" +msgstr "``node`` 的深度。" msgid ":math:`0` when ``node`` = ``start_vid``." -msgstr ":math:`0` 当``node`` = ``start_vid``。" +msgstr ":math:`0` 当 ``node`` = ``start_vid``。" msgid "``start_vid``" msgstr "``start_vid``" @@ -231,28 +232,28 @@ msgid "``node``" msgstr "``node``" msgid "Identifier of ``node`` reached using ``edge``." -msgstr "使用``edge``到达的``node``的标识符。" +msgstr "使用 ``edge`` 到达的``node`` 的标识符。" msgid "``edge``" msgstr "``edge``" msgid "Identifier of the ``edge`` used to arrive to ``node``." -msgstr "用于到达``node``的``edge``的标识符。" +msgstr "用于到达 ``node`` 的 ``edge`` 的标识符。" msgid ":math:`-1` when ``node`` = ``start_vid``." -msgstr ":math:`-1` 当``node`` = ``start_vid``。" +msgstr ":math:`-1` 当 ``node`` = ``start_vid``。" msgid "``FLOAT``" msgstr "``FLOAT``" msgid "Cost to traverse ``edge``." -msgstr "遍历``edge``的成本。" +msgstr "遍历 ``edge`` 的成本。" msgid "``agg_cost``" msgstr "``agg_cost``" msgid "Aggregate cost from ``start_vid`` to ``node``." -msgstr "从``start_vid``到``node``的总成本。" +msgstr "从 ``start_vid`` 到 ``node`` 的总成本。" msgid "See Also" msgstr "另请参阅" @@ -272,14 +273,16 @@ msgstr "" "kruskal_min_spanning_tree.html>`__" msgid "" -"`Wikipedia: Prim's algorithm `__" -msgstr "`维基百科: Prim算法 `__" +"`Wikipedia: Prim's algorithm `__" +msgstr "" +"`维基百科: Prim算法 `__" msgid "" "`Wikipedia: Kruskal's algorithm `__" -msgstr "`维基百科: Kruskal算法 `__" +msgstr "" +"`维基百科: Kruskal算法 `__" msgid "Indices and tables" msgstr "索引和表格" @@ -440,9 +443,9 @@ msgid "" "graph. But normally on turns like no left turn or no right turn, hence the " "name turn restrictions, there are sometimes restrictions." msgstr "" -"道路限制是一系列不能按顺序采取的路段。 " -"有向图上隐含了一些限制,例如单向道路,其中错误的边甚至不会插入到图上。 " -"但通常在转弯时如不许左转或不许右转,因此得名转弯限制,这儿是一些常见限制。" +"道路限制是一系列不能按顺序采取的路段。 有向图上隐含了一些限制,例如单向道路," +"其中错误的边甚至不会插入到图上。 但通常在转弯时如不许左转或不许右转,因此得名" +"转弯限制,这儿是一些常见限制。" msgid "TRSP algorithm" msgstr "TRSP算法" @@ -451,17 +454,18 @@ msgid "" "The internal TRSP algorithm performs a lookahead over the dijkstra algorithm " "in order to find out if the attempted path has a restriction. This allows " "the algorithm to pass twice on the same vertex." -msgstr "内部 TRSP 算法对 dijkstra 算法执行前瞻,以查明尝试的路径是否有限制。 " -"这允许算法在同一顶点上传递两次。" +msgstr "" +"内部 TRSP 算法对 dijkstra 算法执行前瞻,以查明尝试的路径是否有限制。 这允许算" +"法在同一顶点上传递两次。" msgid "`Edges SQL`_ query as described." -msgstr "`Edges SQL`_按描述查询。" +msgstr "`Edges SQL`_ 按描述查询。" msgid "`Restrictions SQL`_" msgstr "`Restrictions SQL`_" msgid "`Restrictions SQL`_ query as described." -msgstr "`Restrictions SQL`_按描述查询。" +msgstr "`Restrictions SQL`_ 按描述查询。" msgid "**via vertices**" msgstr "**via vertices**" @@ -559,15 +563,14 @@ msgid "" "mathematicians **Sir William Rowam Hamilton** and **Thomas Penyngton " "Kirkman**." msgstr "" -"旅行推销员问题由数学家 **William Rowam Hamilton 爵士**和 **Thomas Penyngton " +"旅行推销员问题由数学家 **William Rowam Hamilton 爵士** 和 **Thomas Penyngton " "Kirkman** 于 18 世纪研究。" msgid "" "A discussion about the work of Hamilton & Kirkman can be found in the book " -"**Graph Theory (Biggs et al. 1976)**." +"**Graph Theory (Biggs et al. 1976)**." msgstr "" -"关于Hamilton和Kirkman的工作的讨论可以在**《图论》(Biggs等人,1976年)**一书" -"中找到。" +"关于汉密尔顿和柯克曼工作的讨论可参见《**图论》(比格斯等人,1976 年)一书**。" msgid "ISBN-13: 978-0198539162" msgstr "ISBN-13: 978-0198539162" @@ -584,24 +587,25 @@ msgid "" "homepages.cwi.nl/~lex/files/histco.ps>`__" msgstr "" "人们认为旅行推销员问题(TSP)的一般形式最早由维也纳和哈佛的卡尔·门格尔(Karl " -"Menger)研究。后来,普林斯顿的哈斯勒、惠特尼和梅里尔(Hassler, Whitney & Merr" -"ill)进一步推动了这个问题。关于门格尔和惠特尼之间的联系以及TSP的发展,可以在`" -"组合优化的历史(直到1960年) `__" +"Menger)研究。后来,普林斯顿的哈斯勒、惠特尼和梅里尔(Hassler, Whitney & " +"Merrill)进一步推动了这个问题。关于门格尔和惠特尼之间的联系以及TSP的发展,可" +"以在`组合优化的历史(直到1960年) `__" msgid "To calculate the number of different tours through :math:`n` cities:" -msgstr "计算经过:math:`n` 城市的不同旅行次数:" +msgstr "计算经过 : math:`n` 城市的不同旅行次数:" msgid "Given a starting city," msgstr "给定一个起始城市," msgid "There are :math:`n-1` choices for the second city," -msgstr "第二个城市还有:math:`n-1`个选择," +msgstr "第二个城市还有 :math:`n-1` 个选择," -msgid "And :math:`n-2` choices for the third city, etc." -msgstr "以及第三个城市有:math:`n-2`个选择等。" +msgid "And :math:`n-2` choices for the third city, etc." +msgstr "第三个城市的 :math:`n-2` 选项等。" -msgid "Multiplying these together we get :math:`(n-1)! = (n-1) (n-2) . . 1`." -msgstr "将它们相乘我们得到:math:`(n-1)! = (n-1) (n-2) . . 1`。" +msgid "Multiplying these together we get :math:`(n-1)! = (n-1) (n-2) . . 1`." +msgstr "相乘得到 :math:`(n-1)!= (n-1) (n-2) ..1`." msgid "" "Now since the travel costs do not depend on the direction taken around the " @@ -677,7 +681,7 @@ msgstr "" msgid "" "When ``NOT 0`` and ``start_id = 0`` then it is the first and last vertex" -msgstr "当 ``NOT 0`` 且 ``start_id = 0``时,它是第一个和最后一个顶点" +msgstr "当 ``NOT 0`` 且 ``start_id = 0`` 时,它是第一个和最后一个顶点" msgid "References" msgstr "参考" @@ -726,7 +730,7 @@ msgstr "内容" msgid "" "Vehicle Routing Problems `VRP` are **NP-hard** optimization problem, it " "generalises the travelling salesman problem (TSP)." -msgstr "车辆路径问题 `VRP` 是 **NP-hard**优化问题,它推广了旅行商问题 (TSP)。" +msgstr "车辆路径问题 `VRP` 是 **NP-hard** 优化问题,它推广了旅行商问题 (TSP)。" msgid "The objective of the VRP is to minimize the total route cost." msgstr "VRP 的目标是最小化总路由成本。" @@ -753,8 +757,8 @@ msgid "" "goods need to be moved from certain pickup locations to other delivery " "locations." msgstr "" -"取货和送货的车辆路径问题`VRPPD`,其中大量货物需要从某些取货地点移动到其他送货" -"地点。" +"取货和送货的车辆路径问题 `VRPPD` ,其中大量货物需要从某些取货地点移动到其他送" +"货地点。" msgid "Limitations" msgstr "局限性" @@ -777,10 +781,10 @@ msgstr "取货 & 送货" msgid "" "Problem: `CVRPPDTW` Capacitated Pick and Delivery Vehicle Routing problem " "with Time Windows" -msgstr "问题:`CVRPPDTW` 具有时间窗口的有能力分拣和送货车辆路径问题" +msgstr "问题: `CVRPPDTW` 具有时间窗口的有能力分拣和送货车辆路径问题" msgid "Times are relative to `0`" -msgstr "时间是相对于`0`的" +msgstr "时间是相对于 `0` 的" msgid "The vehicles" msgstr "车辆" @@ -815,7 +819,7 @@ msgid "Time based calculations:" msgstr "基于时间的计算:" msgid "Travel time between customers is :math:`distance / speed`" -msgstr "客户之间的旅行时间为:math:`distance / speed`" +msgstr "客户之间的旅行时间为 :math:`distance / speed`" msgid "Pickup and delivery order pair is done by the same vehicle." msgstr "取货和送货订单对由同一辆车完成。" @@ -827,13 +831,13 @@ msgid "Pick & deliver" msgstr "取货 & 送货" msgid "Used in :doc:`pgr_pickDeliverEuclidean`" -msgstr "用于:doc:`pgr_pickDeliverEuclidean`" +msgstr "用于 :doc:`pgr_pickDeliverEuclidean`" msgid "`Orders SQL`_" msgstr "`Orders SQL`_" msgid "`Orders SQL`_ as described below." -msgstr "`Orders SQL`_如下所述。" +msgstr "`Orders SQL`_ 如下所述。" msgid "`Vehicles SQL`_" msgstr "`Vehicles SQL`_" @@ -842,7 +846,7 @@ msgid "`Vehicles SQL`_ as described below." msgstr "`Vehicles SQL`_ 如下所述。" msgid "Used in :doc:`pgr_pickDeliver`" -msgstr "用于:doc:`pgr_pickDeliver`" +msgstr "用于 :doc:`pgr_pickDeliver`" msgid "`Matrix SQL`_" msgstr "`Matrix SQL`_" @@ -863,7 +867,7 @@ msgid "1" msgstr "1" msgid "Travel time multiplier. See :ref:`pd_factor`" -msgstr "旅行时间乘数。 请参阅:ref:`pd_factor`" +msgstr "旅行时间乘数。 请参阅 :ref:`pd_factor`" msgid "``max_cycles``" msgstr "``max_cycles``" @@ -969,7 +973,7 @@ msgstr "在交货地点卸货的持续时间。" msgid "" "For :doc:`pgr_pickDeliver` the pickup and delivery identifiers of the " "locations are needed:" -msgstr "对于:doc:`pgr_pickDeliver`,需要位置的取货和送货标识符:" +msgstr "对于 :doc:`pgr_pickDeliver`,需要位置的取货和送货标识符:" msgid "``p_node_id``" msgstr "``p_node_id``" @@ -977,7 +981,7 @@ msgstr "``p_node_id``" msgid "" "The node identifier of the pickup, must match a vertex identifier in the " "`Matrix SQL`_." -msgstr "取货的节点标识符必须与`Matrix SQL`_ 中的顶点标识符匹配。" +msgstr "取货的节点标识符必须与 `Matrix SQL`_ 中的顶点标识符匹配。" msgid "``d_node_id``" msgstr "``d_node_id``" @@ -985,36 +989,36 @@ msgstr "``d_node_id``" msgid "" "The node identifier of the delivery, must match a vertex identifier in the " "`Matrix SQL`_." -msgstr "送货的节点标识符必须与 `Matrix SQL`_中的顶点标识符匹配。" +msgstr "送货的节点标识符必须与 `Matrix SQL`_ 中的顶点标识符匹配。" msgid "" "For :doc:`pgr_pickDeliverEuclidean` the :math:`(x, y)` values of the " "locations are needed:" -msgstr "对于 :doc:`pgr_pickDeliverEuclidean`,这需要位置的:math:`(x, y)`值:" +msgstr "对于 :doc:`pgr_pickDeliverEuclidean`,这需要位置的 :math:`(x, y)` 值:" msgid "``p_x``" msgstr "``p_x``" msgid ":math:`x` value of the pick up location" -msgstr "取货地点的:math:`x`值" +msgstr "取货地点的 :math:`x` 值" msgid "``p_y``" msgstr "``p_y``" msgid ":math:`y` value of the pick up location" -msgstr "取货地点的:math:`y`值" +msgstr "取货地点的 :math:`y` 值" msgid "``d_x``" msgstr "``d_x``" msgid ":math:`x` value of the delivery location" -msgstr "送货地点的:math:`x`值" +msgstr "送货地点的 :math:`x` 值" msgid "``d_y``" msgstr "``d_y``" msgid ":math:`y` value of the delivery location" -msgstr "送货地点的:math:`y` 值" +msgstr "送货地点的 :math:`y` 值" msgid "Vehicles SQL" msgstr "车辆 SQL" @@ -1059,7 +1063,7 @@ msgid "The time, relative to 0, when the ending location opens." msgstr "结束位置打开的时间(相对于 0)。" msgid "When missing: The value of ``start_open`` is used" -msgstr "缺失时:使用``start_open``的值" +msgstr "缺失时:使用 ``start_open`` 的值" msgid "[``end_close``]" msgstr "[``end_close``]" @@ -1068,7 +1072,7 @@ msgid "The time, relative to 0, when the ending location closes." msgstr "结束位置关闭的时间(相对于 0)。" msgid "When missing: The value of ``start_close`` is used" -msgstr "缺失时:使用``start_close``的值" +msgstr "缺失时:使用 ``start_close`` 的值" msgid "[``end_service``]" msgstr "[``end_service``]" @@ -1101,43 +1105,43 @@ msgid "" msgstr "结束位置的节点标识符必须与 `Matrix SQL`_ 中的顶点标识符匹配。" msgid "When missing: ``end_node_id`` is used." -msgstr "缺少时:使用``end_node_id``。" +msgstr "缺少时:使用 ``end_node_id``。" msgid "``start_x``" msgstr "``start_x``" msgid ":math:`x` value of the starting location" -msgstr "起始位置的:math:`x`值" +msgstr "起始位置的 :math:`x` 值" msgid "``start_y``" msgstr "``start_y``" msgid ":math:`y` value of the starting location" -msgstr "起始位置的:math:`y`值" +msgstr "起始位置的 :math:`y` 值" msgid "[``end_x``]" msgstr "[``end_x``]" msgid ":math:`x` value of the ending location" -msgstr "结束位置的:math:`x`值" +msgstr "结束位置的 :math:`x` 值" msgid "When missing: ``start_x`` is used." -msgstr "缺失时:使用``start_x``值。" +msgstr "缺失时:使用 ``start_x`` 值。" msgid "[``end_y``]" msgstr "[``end_y``]" msgid ":math:`y` value of the ending location" -msgstr "结束位置的:math:`y`值" +msgstr "结束位置的 :math:`y` 值" msgid "When missing: ``start_y`` is used." -msgstr "缺失时:使用``start_y``值。" +msgstr "缺失时:使用 ``start_y`` 值。" msgid "Matrix SQL" msgstr "矩阵SQL" msgid "Set of |matrix-result|" -msgstr "|matrix-result|的集合" +msgstr "|matrix-result| 的集合" msgid "Identifier of the starting vertex." msgstr "起始顶点的标识符。" @@ -1151,11 +1155,8 @@ msgstr "结束顶点的标识符。" msgid "Aggregate cost from ``start_vid`` to ``end_vid``." msgstr "从 ``start_vid`` 到 ``end_vid`` 的总成本。" -msgid "Return columns" -msgstr "返回列" - msgid "Sequential value starting from **1**." -msgstr "从**1**开始的顺序值。" +msgstr "从 **1** 开始的顺序值。" msgid "``vehicle_seq``" msgstr "``vehicle_seq``" @@ -1178,7 +1179,7 @@ msgid "Current vehicle identifier." msgstr "当前车辆标识符。" msgid "Sumary row has the **total capacity violations**." -msgstr "摘要行有**总容量违规情况**。" +msgstr "摘要行有 **总容量违规情况**。" msgid "" "A capacity violation happens when overloading or underloading a vehicle." @@ -1193,10 +1194,11 @@ msgstr "INTEGER" msgid "" "Sequential value starting from **1** for the stops made by the current " "vehicle. The :math:`m_{th}` stop of the current vehicle." -msgstr "当前车辆停止的顺序值,从 **1** 开始。 当前第:math:`m_{th}`车辆的停止。" +msgstr "" +"当前车辆停止的顺序值,从 **1** 开始。 当前第 :math:`m_{th}` 车辆的停止。" msgid "Sumary row has the **total time windows violations**." -msgstr "摘要行包含**总时间窗口违规情况**。" +msgstr "摘要行包含 **总时间窗口违规情况**。" msgid "" "A time window violation happens when arriving after the location has closed." @@ -1231,7 +1233,7 @@ msgstr "取货-送货订单对标识符。" msgid "" "Value :math:`-1`: When no order is involved on the current stop location." -msgstr "值:math:`-1`: 当前停留位置没有订单参与。" +msgstr "值 :math:`-1`: 当前停留位置没有订单参与。" msgid "``cargo``" msgstr "``cargo``" @@ -1240,7 +1242,7 @@ msgid "Cargo units of the vehicle when leaving the stop." msgstr "车辆离开停车点时的货物单位。" msgid "Value :math:`-1` on solution summary row." -msgstr "值:math:`-1`在解决方案摘要行。" +msgstr "值 :math:`-1` 在解决方案摘要行。" msgid "``travel_time``" msgstr "``travel_time``" @@ -1249,7 +1251,7 @@ msgid "Travel time from previous ``stop_seq`` to current ``stop_seq``." msgstr "从前一个 ``stop_seq`` 到当前 ``stop_seq`` 的行程时间。" msgid "Summary has the **total traveling time**:" -msgstr "总结一下**总的行程时间**:" +msgstr "总结一下 **总的行程时间**:" msgid "The sum of all the ``travel_time``." msgstr "所有 ``travel_time`` 的总和。" @@ -1270,7 +1272,7 @@ msgid "``wait_time``" msgstr "``wait_time``" msgid "Summary row has the **total waiting time**:" -msgstr "摘要行包含**总等待时间**:" +msgstr "摘要行包含 **总等待时间**:" msgid "The sum of all the ``wait_time``." msgstr "所有 ``wait_time`` 的总和。" @@ -1282,10 +1284,10 @@ msgid "Service duration at current location." msgstr "当前位置的服务持续时间。" msgid "Summary row has the **total service time**:" -msgstr "摘要行包含**总服务时间**:" +msgstr "摘要行包含 **总服务时间**:" msgid "The sum of all the ``service_time``." -msgstr "所有``service_time``的总和。" +msgstr "所有 ``service_time`` 的总和。" msgid "``departure_time``" msgstr "``departure_time``" @@ -1297,10 +1299,10 @@ msgid ":math:`arrival\\_time + wait\\_time + service\\_time`." msgstr ":math:`arrival\\_time + wait\\_time + service\\_time`。" msgid "The ending location has the **total time** used by the current vehicle." -msgstr "结束位置有当前车辆使用的**总时间**。" +msgstr "结束位置有当前车辆使用的 **总时间**。" msgid "Summary row has the **total solution time**:" -msgstr "摘要行包含**总解决问题时间**:" +msgstr "摘要行包含 **总解决问题时间**:" msgid "" ":math:`total\\ traveling\\ time + total\\ waiting\\ time + total\\ service\\ " @@ -1362,13 +1364,13 @@ msgid "The `capacity` of a vehicle, can be measured in:" msgstr "车辆的`容量`可以通过以下方式测量:" msgid "Volume units like :math:`m^3`." -msgstr "体积单位如:math:`m^3`。" +msgstr "体积单位如 :math:`m^3`。" msgid "Area units like :math:`m^2` (when no stacking is allowed)." -msgstr "面积单位如:math:`m^2`(不允许堆叠时)。" +msgstr "面积单位如 : math:`m^2` (不允许堆叠时)。" msgid "Weight units like :math:`kg`." -msgstr "重量单位如:math:`kg`。" +msgstr "重量单位如 :math:`kg`。" msgid "Number of boxes that fit in the vehicle." msgstr "车辆内可容纳的箱子数量。" @@ -1379,23 +1381,25 @@ msgstr "车内座位数" msgid "" "The `demand` request of the pickup-deliver orders must use the same units as " "the units used in the vehicle's `capacity`." -msgstr "取货-送货订单的`需求`请求必须使用与车辆`容量`中使用的单位相同的单位。" +msgstr "" +"取货-送货订单的 `需求` 请求必须使用与车辆 `容量` 中使用的单位相同的单位。" msgid "" -"To handle problems like: 10 (equal dimension) boxes of apples and 5 kg of " +"To handle problems like: 10 (equal dimension) boxes of apples and 5 kg of " "feathers that are to be transported (not packed in boxes)." -msgstr "处理这样的问题:10箱(等尺寸)苹果和5公斤羽毛需要运输(不装箱)。" +msgstr "处理以下问题:10 箱(尺寸相等)苹果和 5 千克羽毛的运输(不装箱)。" msgid "" "If the vehicle's **capacity** is measured in `boxes`, a conversion of `kg of " "feathers` to `number of boxes` is needed." msgstr "" -"如果车辆的 **容量**以`箱子`来衡量,则需要将`羽毛的千克`换算为`箱子的数量`。" +"如果车辆的 **容量** 以 `箱子` 来衡量,则需要将 `羽毛的千克` 换算为 `箱子的数" +"量`。" msgid "" "If the vehicle's **capacity** is measured in `kg`, a conversion of `box of " "apples` to `kg` is needed." -msgstr "如果车辆的**容量**以`kg`为单位,则需要将`一箱苹果`换算为`kg`。" +msgstr "如果车辆的 **容量** 以 `kg` 为单位,则需要将 `一箱苹果` 换算为 `kg`。" msgid "Showing how the 2 possible conversions can be done" msgstr "显示如何完成两种可能的转换" @@ -1404,8 +1408,8 @@ msgid "" "Let: - :math:`f\\_boxes`: number of boxes needed for `1` kg of feathers. - :" "math:`a\\_weight`: weight of `1` box of apples." msgstr "" -"设:- :math:`f\\_boxes`:`1`公斤羽毛所需的箱子数量。- :math:`a\\_weight`:`1`" -"箱子苹果的重量。" +"设:- :math:`f\\_boxes`: `1` 公斤羽毛所需的箱子数量。- :math:`a\\_weight`: " +"`1` 箱子苹果的重量。" msgid "Capacity Units" msgstr "容量单位" @@ -1438,13 +1442,13 @@ msgid "When using :doc:`pgr_pickDeliverEuclidean`:" msgstr "当使用 :doc:`pgr_pickDeliverEuclidean`:" msgid "The vehicles have :math:`(x, y)` pairs for start and ending locations." -msgstr "车辆有起点和终点:math:`(x, y)`对。" +msgstr "车辆有起点和终点 :math:`(x, y)` 对。" msgid "The orders Have :math:`(x, y)` pairs for pickup and delivery locations." -msgstr "订单有取货和送货地点:math:`(x, y)`对。" +msgstr "订单有取货和送货地点 :math:`(x, y)` 对。" msgid "When using :doc:`pgr_pickDeliver`:" -msgstr "当使用:doc:`pgr_pickDeliver`:" +msgstr "当使用 :doc:`pgr_pickDeliver`:" msgid "The vehicles have identifiers for the start and ending locations." msgstr "车辆具有起始位置和结束位置的标识符。" @@ -1498,8 +1502,8 @@ msgstr "9" msgid "16.5" msgstr "16.5" -msgid ":math:`10.5 / 60 = 0.175`" -msgstr ":math:`10.5 / 60 = 0.175`" +msgid ":math:`10.5 / 60 = 0.175`" +msgstr ":math:`10.5 / 60 = 0.175`" msgid "minutes" msgstr "分钟" @@ -1528,22 +1532,22 @@ msgstr "因素处理" msgid "" "``factor`` acts as a multiplier to convert from distance values to time " "units the matrix values or the euclidean values." -msgstr "`因子``充当乘数,将距离值转换为时间单位、矩阵值或欧几里得值。" +msgstr "``因子`` 充当乘数,将距离值转换为时间单位、矩阵值或欧几里得值。" msgid "When the values are already in the desired time units" msgstr "当值已处于所需时间单位时" msgid "``factor`` should be **1**" -msgstr "``因数``应为 **1**" +msgstr "``因数`` 应为 **1**" msgid "When ``factor`` > 1 the travel times are faster" -msgstr "当``因子`` > 1 时,行程时间更快" +msgstr "当 ``因子`` > 1 时,行程时间更快" msgid "When ``factor`` < 1 the travel times are slower" msgstr "当 ``因子`` < 1 时,行程时间会变慢" msgid "For the :doc:`pgr_pickDeliverEuclidean`:" -msgstr "用于:doc:`pgr_pickDeliverEuclidean`:" +msgstr "用于 :doc:`pgr_pickDeliverEuclidean`:" msgid "" "Working with time units in seconds, and x/y in lat/lon: Factor: would depend " @@ -1578,13 +1582,14 @@ msgid "4452 s" msgstr "4452 s" msgid "For the :doc:`pgr_pickDeliver`:" -msgstr "用于:doc:`pgr_pickDeliver`:" +msgstr "用于 :doc:`pgr_pickDeliver`:" msgid "" "Given :math:`v = d / t` therefore :math:`t = d / v` And the ``factor`` " "becomes :math:`1 / v`" msgstr "" -"给定 :math:`v = d / t` 因此:math:`t = d / v` 并且``因子``变为:math:`1 / v`" +"给定 :math:`v = d / t` 因此 :math:`t = d / v` 并且 ``因子`` 变为 :math:`1 / " +"v`" msgid "v" msgstr "v" @@ -1670,7 +1675,7 @@ msgid "https://en.wikipedia.org/wiki/Vehicle_routing_problem" msgstr "https://en.wikipedia.org/wiki/Vehicle_routing_problem" msgid "The queries use the :doc:`sampledata` network." -msgstr "查询使用:doc:`sampledata` 网络。" +msgstr "查询使用 :doc:`sampledata` 网络。" msgid "A* - Family of functions" msgstr "A* - 函数族" @@ -1702,10 +1707,10 @@ msgid "Ordering is:" msgstr "顺序是:" msgid "first by ``start_vid`` (if exists)" -msgstr "首先按``start_vid``(如果存在)" +msgstr "首先按 ``start_vid`` (如果存在)" msgid "then by ``end_vid``" -msgstr "然后按``end_vid``" +msgstr "然后按 ``end_vid``" msgid "Values are returned when there is a path." msgstr "当存在路径时返回值。" @@ -1714,31 +1719,31 @@ msgid "Let :math:`v` and :math:`u` be nodes on the graph:" msgstr "设 :math:`v` 和 :math:`u` 为图上的节点:" msgid "If there is no path from :math:`v` to :math:`u`:" -msgstr "如果没有从:math:`v` 到 :math:`u`的路径:" +msgstr "如果没有从 :math:`v` 到 :math:`u` 的路径:" msgid "no corresponding row is returned" msgstr "没有返回对应的行" msgid "``agg_cost`` from :math:`v` to :math:`u` is :math:`\\infty`" -msgstr "从:math:`v`到:math:`u`的``agg_cost`` 是 :math:`\\infty`" +msgstr "从 :math:`v` 到 :math:`u` 的 ``agg_cost`` 是 :math:`\\infty`" msgid "There is no path when :math:`v = u` therefore" -msgstr "当:math:`v = u`没有路径,因此" +msgstr "当 :math:`v = u` 没有路径,因此" msgid "``agg_cost`` from `v` to `u` is :math:`0`" -msgstr "从`v`到`u`的``agg_cost``是:math:`0`" +msgstr "从 `v` 到 `u` 的 ``agg_cost`` 是 :math:`0`" msgid "When :math:`(x,y)` coordinates for the same vertex identifier differ:" -msgstr "当同一顶点标识符的:math:`(x,y)` 坐标不同时:" +msgstr "当同一顶点标识符的 :math:`(x,y)` 坐标不同时:" msgid "A random selection of the vertex's :math:`(x,y)` coordinates is used." -msgstr "使用随机选择的顶点的:math:`(x,y)`坐标。" +msgstr "使用随机选择的顶点的 :math:`(x,y)` 坐标。" msgid "Running time: :math:`O((E + V) * \\log V)`" -msgstr "运行时间::math:`O((E + V) * \\log V)`" +msgstr "运行时间: :math:`O((E + V) * \\log V)`" -msgid "aStar optional Parameters" -msgstr "aStar可选参数" +msgid "aStar optional parameters" +msgstr "aStar 可选参数" msgid "``heuristic``" msgstr "``heuristic``" @@ -1768,20 +1773,20 @@ msgid "``1``" msgstr "``1``" msgid "For units manipulation. :math:`factor > 0`." -msgstr "对于单位操作。:math:`factor > 0`。" +msgstr "对于单位操作。 :math:`factor > 0`。" msgid "``epsilon``" msgstr "``epsilon``" msgid "For less restricted results. :math:`epsilon >= 1`." -msgstr "对于限制较少的结果。:math:`epsilon >= 1`。" +msgstr "对于限制较少的结果。 :math:`epsilon >= 1`。" msgid "" "See :ref:`heuristics ` available and :ref:`factor " "` handling." msgstr "" -"查看可用的:ref:`heuristics `和:ref:`factor `" -"处理。" +"查看可用的 :ref:`heuristics ` 和 :ref:`factor " +"` 处理。" msgid "Advanced documentation" msgstr "高级文档" @@ -1793,14 +1798,14 @@ msgid "Currently the heuristic functions available are:" msgstr "目前可用的heuristic函数有:" msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`" -msgstr "其中 :math:`\\Delta x = x_1 - x_0`和:math:`\\Delta y = y_1 - y_0`" +msgstr "其中 :math:`\\Delta x = x_1 - x_0` 和 :math:`\\Delta y = y_1 - y_0`" msgid "Analysis 1" msgstr "分析1" msgid "" "Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor " -"= 1 (no need to change units)" +"= 1 (no need to change units)" msgstr "" "使用 cost/reverse_cost 作为长度(以度为单位),x/y 以纬度/经度为单位:因子 = " "1(无需更改单位)" @@ -1809,14 +1814,14 @@ msgid "Analysis 2" msgstr "分析2" msgid "" -"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor " -"= would depend on the location of the points:" +"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor = " +"would depend on the location of the points:" msgstr "" "使用 cost/reverse_cost 作为以米为单位的长度,以纬度/经度为单位的 x/y: " "Factor = 将取决于点的位置:" -msgid "1 longitude degree is 78846.81 m" -msgstr "1经度为78846.81 m" +msgid "1 longitude degree is 78846.81 m" +msgstr "1 经度为 78846.81 米" msgid "78846" msgstr "78846" @@ -1874,8 +1879,8 @@ msgid "" "Boost returns a :math:`V \\times V` matrix, where the infinity values. " "Represent the distance between vertices for which there is no path." msgstr "" -"Boost 返回一个:math:`V \\times V`矩阵,其中无穷大值。 表示没有路径的顶点之间" -"的距离。" +"Boost 返回一个 :math:`V \\times V` 矩阵,其中无穷大值。 表示没有路径的顶点之" +"间的距离。" msgid "" "We return only the non infinity values in form of a set of `(start_vid, " @@ -1890,11 +1895,11 @@ msgstr "假设返回的值存储在表中,因此唯一索引将是一对:`(s msgid "For the undirected graph, the results are symmetric." msgstr "对于无向图,结果是对称的。" -msgid "The `agg_cost` of `(u, v)` is the same as for `(v, u)`." -msgstr "`(u, v)` 的 `agg_cost` 与 `(v, u)`相同。" +msgid "The `agg_cost` of `(u, v)` is the same as for `(v, u)`." +msgstr "`(u, v)` 的 `agg_cost` 与 `(v, u)` 相同。" -msgid "When `start_vid` = `end_vid`, the `agg_cost` = 0." -msgstr "当`start_vid` = `end_vid`时,`agg_cost`= 0。" +msgid "When `start_vid` = `end_vid`, the `agg_cost` = 0." +msgstr "当 `start_vid` = `end_vid` 时,`agg_cost` = 0。" msgid "**Recommended, use a bounding box of no more than 3500 edges.**" msgstr "**建议使用不超过 3500 条边的边界框。**" @@ -1912,10 +1917,10 @@ msgid "``true``" msgstr "``true``" msgid "When ``true`` the graph is considered `Directed`" -msgstr "当 ``true``时,该图被视为有`有向`" +msgstr "当 ``true`` 时,该图被视为有 `有向`" msgid "When ``false`` the graph is considered as `Undirected`." -msgstr "如果为 ``false``,则该图被视为 `无向`。" +msgstr "如果为 ``false`` ,则该图被视为 `无向`。" msgid "Performance" msgstr "表现" @@ -1983,7 +1988,7 @@ msgid "DENSITY" msgstr "DENSITY" msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`." -msgstr "是数据:math:`\\dfrac{E}{V \\times (V-1)}`的密度。" +msgstr "是数据 :math:`\\dfrac{E}{V \\times (V-1)}` 的密度。" msgid "OUT ROWS" msgstr "OUT ROWS" @@ -2649,7 +2654,7 @@ msgid "" msgstr "" "基于A*算法,双向搜索找到从起始顶点(``start_vid``)到结束顶点(``end_vid``)的最" "短路径。 它同时运行两项搜索:一项从 ``start_vid`` 向前搜索,一项从 " -"``end_vid``向后搜索,当两者在中间相遇时停止。 该实现可以与有向图和无向图一起" +"``end_vid`` 向后搜索,当两者在中间相遇时停止。 该实现可以与有向图和无向图一起" "使用。" msgid "" @@ -2680,10 +2685,10 @@ msgid "" msgstr ":doc:`pgr_bdDijkstraCost` - 双向 Dijkstra 计算最短路径的成本" msgid "" -":doc:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm to " -"create a matrix of costs of the shortest paths." +":doc:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm to create " +"a matrix of costs of the shortest paths." msgstr "" -":doc:`pgr_bdDijkstraCostMatrix` - 双向 Dijkstra 算法创建最短路径成本矩阵。" +":doc:`pgr_bdDijkstraCostMatrix` - 创建最短路径成本矩阵的双向 Dijkstra 算法。" msgid "Synopsis" msgstr "概要" @@ -2717,7 +2722,7 @@ msgstr "当起始顶点和结束顶点相同时。" msgid "" "The **aggregate cost** of the non included values :math:`(v, v)` is :math:`0`" -msgstr "未包含值:math:`(v, v)`的**aggregate cost**为:math:`0`" +msgstr "未包含值 :math:`(v, v)` 的 **aggregate cost** 为 :math:`0`" msgid "" "When the starting vertex and ending vertex are the different and there is no " @@ -2725,9 +2730,9 @@ msgid "" msgstr "当起始顶点和结束顶点不同且不存在路径时:" msgid "" -"The **aggregate cost** the non included values :math:`(u, v)` is :math:`" -"\\infty`" -msgstr "未包含值:math:`(u, v)`的**aggregate cost**是:math:`\\infty`" +"The **aggregate cost** the non included values :math:`(u, v)` is :math:" +"`\\infty`" +msgstr "未包含值 :math:`(u, v)` 的 **aggregate cost** 是 :math:`\\infty`" msgid "" "For optimization purposes, any duplicated value in the starting vertices or " @@ -2735,7 +2740,7 @@ msgid "" msgstr "出于优化目的,起始顶点或结束顶点中的任何重复值都将被忽略。" msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`" -msgstr "运行时间(最坏情况)::math:`O((V \\log V + E))`" +msgstr "运行时间(最坏情况): :math:`O((V \\log V + E))`" msgid "It is expected to terminate faster than pgr_dijkstra" msgstr "预计终止速度比 pgr_dijkstra 更快" @@ -2753,10 +2758,10 @@ msgid "**The main characteristics are:**" msgstr "**主要特点是:**" msgid "Process is done only on edges with **positive** costs." -msgstr "仅在具有**正**成本的边缘进行处理。" +msgstr "仅在具有 **正** 成本的边缘进行处理。" msgid "Running time: :math:`O(E * (E + V * logV))`" -msgstr "运行时间::math:`O(E * (E + V * logV))`" +msgstr "运行时间: :math:`O(E * (E + V * logV))`" msgid "Graph must be connected." msgstr "图必须是连通的。" @@ -2782,8 +2787,8 @@ msgid "" ":doc:`pgr_edgeColoring` - Edge Coloring algorithm using Vizing's theorem." msgstr ":doc:`pgr_edgeColoring` - 使用 Vizing 定理的边缘着色算法。" -msgid "Returns SET OF ``(vertex_id, color_id)``" -msgstr "返回``(vertex_id, color_id)``的集合" +msgid "Returns set of ``(vertex_id, color_id)``" +msgstr "返回集合 ``(vertex_id, color_id)``" msgid "``vertex_id``" msgstr "``vertex_id``" @@ -2800,8 +2805,8 @@ msgstr "顶点颜色的标识符。" msgid "The minimum value of color is 1." msgstr "颜色的最小值为 1。" -msgid "Returns SET OF ``(edge_id, color_id)``" -msgstr "返回``(edge_id, color_id)``的集合" +msgid "Returns set of ``(edge_id, color_id)``" +msgstr "返回 ``(edge_id, color_id)`` 的集合" msgid "``edge_id``" msgstr "``edge_id``" @@ -2818,7 +2823,7 @@ msgstr "" msgid "" "`Wikipedia: Graph coloring `__" -msgstr "`维基百科:图着色`__" +msgstr "`维基百科:图着色 `__" msgid "" "`Boost: is_bipartite `__" -msgid "" -"`Wikipedia: Graph Coloring `__" -msgstr "`维基百科:图着色 `__" - msgid "Components - Family of functions" msgstr "分量 - 函数族" @@ -2916,7 +2917,7 @@ msgid "Dead end" msgstr "死端" msgid "A node is considered a **dead end** node when" -msgstr "当一个节点被认为是**死端**节点时" +msgstr "当一个节点被认为是 **死端** 节点时" msgid "On undirected graphs:" msgstr "在无向图上:" @@ -2936,13 +2937,13 @@ msgstr "没有传入边缘,但至少有一个传出边缘。" msgid "" "When the conditions are true then the `Operation: Dead End Contraction`_ can " "be done." -msgstr "当条件成立时,可以进行当条件成立时,可以进行`操作: 死端收缩`_。" +msgstr "当条件成立时,可以进行当条件成立时,可以进行 `操作: 死端收缩`_ 。" msgid "Dead end vertex on undirected graph" msgstr "无向图上的死端顶点" msgid "The green nodes are `dead end`_ nodes" -msgstr "绿色节点是`死端`_节点" +msgstr "绿色节点是 `死端`_ 节点" msgid "The blue nodes have an unlimited number of edges." msgstr "蓝色节点具有无限数量的边。" @@ -3006,13 +3007,13 @@ msgid "" "From above, nodes :math:`\\{a, b, d\\}` are dead ends because the number of " "adjacent vertices is 1. No further checks are needed for those nodes." msgstr "" -"从上面来看,节点:math:`\\{a, b, d\\}`是死端,因为相邻顶点的数量为 1。不需要对" -"这些节点进行进一步检查。" +"从上面来看,节点 :math:`\\{a, b, d\\}` 是死端,因为相邻顶点的数量为 1。不需要" +"对这些节点进行进一步检查。" msgid "" "On the following table, nodes :math:`\\{c, e\\}` because the even that the " "number of adjacent vertices is not 1 for" -msgstr "下表中,节点 :math:`\\{c, e\\}`因为相邻顶点数不为1的偶数为" +msgstr "下表中,节点 :math:`\\{c, e\\}` 因为相邻顶点数不为1的偶数为" msgid "Operation: Dead End Contraction" msgstr "操作:死端收缩" @@ -3021,21 +3022,21 @@ msgid "" "The dead end contraction will stop until there are no more dead end nodes. " "For example from the following graph where :math:`w` is the `dead end`_ node:" msgstr "" -"死端收缩将停止,直到不再有死端节点。 例如,从下图中,其中:math:`w`是`死端`_节" -"点:" +"死端收缩将停止,直到不再有死端节点。 例如,从下图中,其中 :math:`w` 是 `死端" +"`_ 节点:" msgid "" "After contracting :math:`w`, node :math:`v` is now a `dead end`_ node and is " "contracted:" -msgstr "收缩 :math:`w`后,节点:math:`v`现在是一个`死端`_ 节点并且已收缩:" +msgstr "收缩 :math:`w` 后,节点 :math:`v` 现在是一个 `死端`_ 节点并且已收缩:" msgid "" "After contracting :math:`v`, stop. Node :math:`u` has the information of " "nodes that were contrcted." -msgstr "在收缩:math:`v`之后,停止。节点:math:`u`有已收缩节点的信息。" +msgstr "在收缩 :math:`v` 之后,停止。节点 :math:`u` 有已收缩节点的信息。" msgid "Node :math:`u` has the information of nodes that were contracted." -msgstr "节点:math:`u`有已收缩节点的信息。" +msgstr "节点 :math:`u` 有已收缩节点的信息。" msgid "In the algorithm, linear contraction is represented by 2." msgstr "算法中,线性收缩用2表示。" @@ -3060,7 +3061,7 @@ msgid "Linear vertex on undirected graph" msgstr "无向图上的线性顶点" msgid "The green nodes are `linear`_ nodes" -msgstr "绿色节点是`线性`_节点" +msgstr "绿色节点是 `线性`_ 节点" msgid "The blue nodes have an unlimited number of incoming and outgoing edges." msgstr "蓝色节点具有无限数量的传入和传出边缘。" @@ -3081,10 +3082,10 @@ msgid "The white node is not linear because the linearity is not symetrical." msgstr "白色节点不是线性的,因为线性不对称。" msgid "It is possible to go :math:`y \\rightarrow c \\rightarrow z`" -msgstr "它是可能去走:math:`y \\rightarrow c \\rightarrow z`" +msgstr "它是可能去走 :math:`y \\rightarrow c \\rightarrow z`" msgid "It's not possible to go :math:`z \\rightarrow c \\rightarrow y`" -msgstr "不可能走:math:`z \\rightarrow c \\rightarrow y`" +msgstr "不可能走 :math:`z \\rightarrow c \\rightarrow y`" msgid "Is symmetrical?" msgstr "是对称的吗?" @@ -3112,43 +3113,43 @@ msgid "" "example from the following graph where :math:`v` and :math:`w` are `linear`_ " "nodes:" msgstr "" -"当不再有线性节点时,线性收缩将停止。 例如,在下图中,其中:math:`v`和:math:`w`" -"是`线性`_节点:" +"当不再有线性节点时,线性收缩将停止。 例如,在下图中,其中 :math:`v` 和 :math:" +"`w` 是 `线性`_ 节点:" msgid "Contracting :math:`w`," -msgstr "收缩:math:`w`," +msgstr "收缩 :math:`w`," msgid "The vertex :math:`w` is removed from the graph" -msgstr "顶点 :math:`w`已从图中移除" +msgstr "顶点 :math:`w` 已从图中移除" msgid "" -"The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are removed " +"The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are removed " "from the graph." -msgstr "边:math:`v \\rightarrow w`和:math:`w \\rightarrow z`已从图中移除。" +msgstr "从图中删除边 :math:`v \\rightarrow w` 和 :math:`w \\rightarrow z`。" msgid "" "A new edge :math:`v \\rightarrow z` is inserted represented with red color." msgstr "插入一条新边 :math:`v \\rightarrow z`,以红色表示。" msgid "Contracting :math:`v`:" -msgstr "收缩:math:`v`:" +msgstr "收缩 :math:`v`:" msgid "The vertex :math:`v` is removed from the graph" -msgstr "顶点:math:`v`已从图中移除" +msgstr "顶点 :math:`v` 已从图中移除" msgid "" -"The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are removed " +"The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are removed " "from the graph." -msgstr "边:math:`u \\rightarrow v`和 :math:`v \\rightarrow z`已从图中移除。" +msgstr "从图中删除边 :math:`u \\rightarrow v` 和 :math:`v \\rightarrow z`。" msgid "" "A new edge :math:`u \\rightarrow z` is inserted represented with red color." -msgstr "插入一条新边:math:`u \\rightarrow z`,以红色表示。" +msgstr "插入一条新边 :math:`u \\rightarrow z`,以红色表示。" msgid "" "Edge :math:`u \\rightarrow z` has the information of nodes that were " "contracted." -msgstr "边:math:`u \\rightarrow z`有收缩点的信息。" +msgstr "边 :math:`u \\rightarrow z` 有收缩点的信息。" msgid "The cycle" msgstr "循环" @@ -3165,7 +3166,7 @@ msgstr "" msgid "" "This implementation, cycles ``max_cycles`` times through " "``operations_order`` ." -msgstr "此实现通过``operations_order``循环 ``max_cycles`` 次。" +msgstr "此实现通过 ``operations_order``循环 ``max_cycles`` 次。" msgid "Contracting sample data" msgstr "收缩示例数据" @@ -3176,7 +3177,7 @@ msgid "" msgstr "在本节中,将通过示例展示构建和使用收缩图。" msgid "The :doc:`sampledata` for an undirected graph is used" -msgstr "使用无向图的:doc:`sampledata`" +msgstr "使用无向图的 :doc:`sampledata`" msgid "a dead end operation first followed by a linear operation." msgstr "首先是死端操作,然后是线性操作。" @@ -3206,7 +3207,8 @@ msgstr "结果不代表收缩图。 它们表示应用收缩算法后对图所 msgid "" "Observe that vertices, for example, :math:`6` do not appear in the results " "because it was not affected by the contraction algorithm." -msgstr "例如,观察到顶点:math:`6`没有出现在结果中,因为它不受收缩算法的影响。" +msgstr "" +"例如,观察到顶点 :math:`6` 没有出现在结果中,因为它不受收缩算法的影响。" msgid "After doing the dead end contraction operation:" msgstr "进行死端收缩操作后:" @@ -3223,7 +3225,7 @@ msgstr "添加附加列" msgid "" "Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` " "tables, where:" -msgstr "向``edge_table`` 和``edge_table_vertices_pgr`` 表添加额外的列,其中:" +msgstr "向 ``edge_table`` 和``edge_table_vertices_pgr`` 表添加额外的列,其中:" msgid "``contracted_vertices``" msgstr "``contracted_vertices``" @@ -3266,19 +3268,19 @@ msgid "Store contraction information" msgstr "存储收缩信息" msgid "Store the `contraction results`_ in a table" -msgstr "将`收缩结果`_存储在表中" +msgstr "将 `收缩结果`_ 存储在表中" msgid "The vertex table update" msgstr "顶点表更新" msgid "" "Use ``is_contracted`` column to indicate the vertices that are contracted." -msgstr "使用 ``is_contracted``列来指示收缩的顶点。" +msgstr "使用 ``is_contracted`` 列来指示收缩的顶点。" msgid "" "Fill ``contracted_vertices`` with the information from the results tha " "belong to the vertices." -msgstr "使用属于顶点的结果中的信息填充``contracted_vertices``。" +msgstr "使用属于顶点的结果中的信息填充 ``contracted_vertices``。" msgid "The modified vertices table:" msgstr "修改后的顶点表:" @@ -3290,7 +3292,7 @@ msgid "Insert the new edges generated by pgr_contraction." msgstr "插入由 pgr_contraction 生成的新边。" msgid "The modified ``edge_table``." -msgstr "修改后的``edge_table``。" +msgstr "修改后的 ``edge_table``。" msgid "The contracted graph" msgstr "收缩图" @@ -3326,7 +3328,7 @@ msgstr "情况 3:源和/或目标属于一个顶点。" msgid "" "Using the `Edges that belong to the contracted graph.`_ on lines 11 to 20." -msgstr "使用`属于收缩图的边。`_ 第 11 至 20 行。" +msgstr "使用 `属于收缩图的边。`_ 第 11 至 20 行。" msgid "Case 1" msgstr "情况1" @@ -3346,7 +3348,7 @@ msgstr "当源和/或目标属于边缘子图时,则找不到路径。" msgid "" "In this case, the contracted graph do not have an edge connecting with node :" "math:`4`." -msgstr "在这种情况下,收缩图没有与节点:math:`4` 相连的边。" +msgstr "在这种情况下,收缩图没有与节点 :math:`4` 相连的边。" msgid "Case 3" msgstr "情况3" @@ -3358,7 +3360,8 @@ msgid "" "In this case, the contracted graph do not have an edge connecting with node :" "math:`7` and of node :math:`4` of the second case." msgstr "" -"在这种情况下,收缩图没有与第二种情况的节点:math:`7`和节点 :math:`4`连接的边。" +"在这种情况下,收缩图没有与第二种情况的节点 :math:`7` 和节点 :math:`4` 连接的" +"边。" msgid "Refining the above function to include nodes that belong to an edge." msgstr "改进上述函数以包含属于边的节点。" @@ -3375,12 +3378,12 @@ msgid "" msgstr "当源和目标都属于收缩图时,就找到了一条路径。" msgid "The routing graph now has an edge connecting with node :math:`4`." -msgstr "路由图现在有一条与节点:math:`4` 连接的边。" +msgstr "路由图现在有一条与节点 :math:`4` 连接的边。" msgid "" "In this case, the contracted graph do not have an edge connecting with node :" "math:`7`." -msgstr "在这种情况下,收缩图没有与节点:math:`7`相连的边。" +msgstr "在这种情况下,收缩图没有与节点 :math:`7` 相连的边。" msgid "The vertices that need to be expanded are calculated on lines 19 to 24." msgstr "需要扩展的顶点在第19到24行计算。" @@ -3399,7 +3402,7 @@ msgid "When source and/or target belong to a vertex, now, a path is found." msgstr "当源和/或目标属于一个顶点时,现在就找到了一条路径。" msgid "Now, the routing graph has an edge connecting with node :math:`7`." -msgstr "现在,路由图有一条与节点:math:`7`连接的边。" +msgstr "现在,路由图有一条与节点 :math:`7` 连接的边。" msgid ":doc:`sampledata`" msgstr ":doc:`sampledata`" @@ -3447,15 +3450,15 @@ msgid "" "Let be the case the values returned are stored in a table, so the unique " "index would be the pair: ``(start_vid, end_vid)``." msgstr "" -"假设返回的值存储在表中,因此唯一索引将是一对:``(start_vid, end_vid)``。" +"假设返回的值存储在表中,因此唯一索引将是一对: ``(start_vid, end_vid)``。" msgid "" "Depending on the function and its parameters, the results can be symmetric." msgstr "根据函数及其参数,结果可能是对称的。" msgid "" -"The **aggregate cost** of :math:`(u, v)` is the same as for :math:`(v, u)`." -msgstr ":math:`(u, v)`的**总成本**与 :math:`(v, u)`的相同。" +"The **aggregate cost** of :math:`(u, v)` is the same as for :math:`(v, u)`." +msgstr ":math:`(u, v)` 的 **总成本** 与 :math:`(v, u)` 的相同。" msgid "" "Any duplicated value in the start or end vertex identifiers are ignored." @@ -3468,7 +3471,7 @@ msgid "``start_vid`` ascending" msgstr "``start_vid`` 升序" msgid "``end_vid`` ascending" -msgstr "``end_vid``升序" +msgstr "``end_vid`` 升序" msgid "Cost Matrix - Category" msgstr "成本矩阵 - 类别" @@ -3476,15 +3479,15 @@ msgstr "成本矩阵 - 类别" msgid ":doc:`pgr_aStarCostMatrix`" msgstr ":doc:`pgr_aStarCostMatrix`" +msgid ":doc:`pgr_dijkstraCostMatrix`" +msgstr ":doc:`pgr_dijkstraCostMatrix`" + msgid ":doc:`pgr_bdAstarCostMatrix`" msgstr ":doc:`pgr_bdAstarCostMatrix`" msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr ":doc:`pgr_bdDijkstraCostMatrix`" -msgid ":doc:`pgr_dijkstraCostMatrix`" -msgstr ":doc:`pgr_dijkstraCostMatrix`" - msgid "proposed" msgstr "建议的" @@ -3495,8 +3498,8 @@ msgid "" ":doc:`TSP-family` needs as input a symmetric cost matrix and no edge `(u, " "v)` must value :math:`\\infty`." msgstr "" -":doc:`TSP-family`需要一个对称成本矩阵作为输入,并且没有边 `(u, v)`必须值为:" -"math:`\\infty` 。" +":doc:`TSP-family` 需要一个对称成本矩阵作为输入,并且没有边 `(u, v)` 必须值" +"为 :math:`\\infty`。" msgid "" "This collection of functions will return a cost matrix in form of a table." @@ -3506,9 +3509,9 @@ msgid "Can be used as input to :doc:`pgr_TSP`." msgstr "可用作 :doc:`pgr_TSP` 的输入。" msgid "" -"Use directly when the resulting matrix is symmetric and there is no :math:`" -"\\infty` value." -msgstr "当得到的矩阵是对称且没有 :math:`\\infty`值时直接使用。" +"Use directly when the resulting matrix is symmetric and there is no :math:" +"`\\infty` value." +msgstr "当得到的矩阵是对称且没有 :math:`\\infty` 值时直接使用。" msgid "It will be the users responsibility to make the matrix symmetric." msgstr "用户有责任使矩阵对称。" @@ -3528,7 +3531,7 @@ msgid "" msgstr "通过将下三角形设置为上三角形的镜像。" msgid "It is also the users responsibility to fix an :math:`\\infty` value." -msgstr "确定:math:`\\infty`值也是用户的责任。" +msgstr "确定 :math:`\\infty` 值也是用户的责任。" msgid "" "Returns the sum of the costs of the shortest path for pair combination of " @@ -3540,7 +3543,7 @@ msgid "" msgstr "当起始顶点和结束顶点相同时,就没有路径。" msgid "The aggregate cost in the non included values `(v, v)` is `0`." -msgstr "未包含值`(v, v)` 中的总成本为`0`。" +msgstr "未包含值 `(v, v)` 中的总成本为 `0`。" msgid "" "When the starting vertex and ending vertex are the different and there is no " @@ -3558,10 +3561,10 @@ msgid "The unique index would be the pair: ``(start_vid, end_vid)``." msgstr "唯一索引将是一对: ``(start_vid, end_vid)``。" msgid "The aggregate cost of `(u, v)` is the same as for `(v, u)`." -msgstr "`(u, v)`的总成本与 `(v, u)`相同。" +msgstr "`(u, v)` 的总成本与 `(v, u)` 相同。" msgid "Any duplicated value in the **start vids** are ignored." -msgstr "**start vids**中的任何重复值都会被忽略。" +msgstr "**start vids** 中的任何重复值都会被忽略。" msgid "Used in:" msgstr "用于:" @@ -3606,7 +3609,7 @@ msgstr "如果列存在,则它不能为 NULL。" msgid "" "If column is not present, a sequential negative **value** will be given " "automatically." -msgstr "如果列不存在,将自动给出连续的负**值**。" +msgstr "如果列不存在,将自动给出连续的负 **值** 。" msgid "Identifier of the \"closest\" edge to the point." msgstr "距离该点“最近”的边的标识符。" @@ -3632,13 +3635,13 @@ msgid "Value in [``b``, ``r``, ``l``, ``NULL``] indicating if the point is:" msgstr "[``b``, ``r``, ``l``, ``NULL``] 中的值指示该点是否为:" msgid "In the right ``r``," -msgstr "``r``在右边," +msgstr "``r`` 在右边," msgid "In the left ``l``," -msgstr "``l``在左边," +msgstr "``l`` 在左边," msgid "In both sides ``b``, ``NULL``" -msgstr "``b``, ``NULL``在两边" +msgstr "``b``, ``NULL`` 在两边" msgid ":doc:`TSP-family`" msgstr ":doc:`TSP-family`" @@ -3687,7 +3690,7 @@ msgstr "" "路径。 该实现可以与有向图和无向图一起使用。" msgid "Running time: :math:`O(| start\\ vids | * (V \\log V + E))`" -msgstr "运行时间::math:`O(| start\\ vids | * (V \\log V + E))`" +msgstr "运行时间: :math:`O(| start\\ vids | * (V \\log V + E))`" msgid "The Dijkstra family functions are based on the Dijkstra algorithm." msgstr "Dijkstra 系列函数基于 Dijkstra 算法。" @@ -3696,7 +3699,7 @@ msgid "`Combinations SQL`_" msgstr "`Combinations SQL`_" msgid "`Combinations SQL`_ as described below" -msgstr "`Combinations SQL`_如下所述" +msgstr "`Combinations SQL`_ 如下所述" msgid "**start vid**" msgstr "**start vid**" @@ -3735,11 +3738,10 @@ msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)" msgstr "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)" msgid "" -"where :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse" -"\\_cost_i)\\}`" +"where :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}" +"`" msgstr "" -"其中 :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\" -"}`" +"其中 :math:`sql =\\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}`" msgid "and" msgstr "和" @@ -3757,31 +3759,31 @@ msgid "Directed graph" msgstr "有向图" msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:" -msgstr "加权有向图, :math:`G_d(V,E)`的定义如下:" +msgstr "加权有向图, :math:`G_d(V,E)` 的定义如下:" -msgid "the set of vertices :math:`V`" -msgstr "顶点集:math:`V`" +msgid "the set of vertices :math:`V`" +msgstr "顶点集 :math:`V`" msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup {end_{vid}}`" -msgstr ":math:`V = source \\cup target \\cup {start_{vid}} \\cup {end_{vid}}`" +msgstr ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgid "the set of edges :math:`E`" -msgstr "边集:math:`E`" +msgstr "边集 :math:`E`" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = " -"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " +"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " "\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost " "\\neq \\varnothing \\\\ \\end{cases}`" msgstr "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " "\\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = " -"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " -"\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\varnothing \\\\ \\text{ } \\text{ } & \\quad \\text{ } \\\\ \\text{ } " +"\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " "\\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost " "\\neq \\varnothing \\\\ \\end{cases}`" @@ -3789,36 +3791,34 @@ msgid "Undirected graph" msgstr "无向图" msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:" -msgstr "加权无向图,:math:`G_u(V,E)`的定义如下:" +msgstr "加权无向图, :math:`G_u(V,E)` 的定义如下:" msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgstr "" ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" msgid "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & " -"\\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } " -"cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, " -"reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ " -"\\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse" -"\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\" -"\\ \\end{cases}`" -msgstr "" -":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad " -"\\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & " -"\\text{ } \\\\ \\text{ } \\{(source_i, target_i, cost_i) \\text{ when } " -"cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) " -"\\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, " -"reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ " -"\\cup \\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse" -"\\_cost_i >=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\" -"\\ \\end{cases}`" +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " +"target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " +"\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" +msgstr "" +":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, cost_i) " +"\\text{ when } cost >=0 \\} & \\quad \\text{ } \\\\ \\cup \\{(target_i, " +"source_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{ if } " +"reverse\\_cost = \\varnothing \\\\ \\text{ } \\text{ } & \\text{ } \\\\ " +"\\text{ } \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & " +"\\text{ } \\\\ \\cup \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 " +"\\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_cost_i) " +"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup \\{(source_i, " +"target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} & \\quad " +"\\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`" msgid "The problem" msgstr "问题" @@ -3843,11 +3843,11 @@ msgid "Then:" msgstr "然后:" msgid "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgstr "" -":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg" -"\\_cost_i)\\}`" +":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " +"agg\\_cost_i)\\}`" msgid "where:" msgstr "其中:" @@ -3896,22 +3896,23 @@ msgstr "" msgid "" "In other words: The algorithm returns a the shortest path between :math:" "`start_{vid}` and :math:`end_{vid}`, if it exists, in terms of a sequence of " -"nodes and of edges," +"nodes and of edges," msgstr "" -"换句话说:该算法返回 :math:`start_{vid}` 和:math:`end_{vid}` 之间的最短路径" -"(如果存在),以节点和边的序列表示," +"换句话说:如果 :math:`start_{vid}` 和 :math:`end_{vid}` 之间存在最短路径,算" +"法会根据节点和边的序列返回该路径、" msgid "" ":math:`path\\_seq` indicates the relative position in the path of the :math:" "`node` or :math:`edge`." -msgstr ":math:`path\\_seq`表示 :math:`node`或:math:`edge`的路径中的相对位置。" +msgstr "" +":math:`path\\_seq` 表示 :math:`node` 或 :math:`edge` 的路径中的相对位置。" msgid ":math:`cost` is the cost of the edge to be used to go to the next node." -msgstr ":math:`cost`是用于转到下一个节点的边的成本。" +msgstr ":math:`cost` 是用于转到下一个节点的边的成本。" msgid "" ":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node." -msgstr ":math:`agg\\_cost`是从 :math:`start_{vid}`到节点的成本。" +msgstr ":math:`agg\\_cost` 是从 :math:`start_{vid}` 到节点的成本。" msgid "If there is no path, the resulting set is empty." msgstr "如果没有路径,则结果集为空。" @@ -3950,13 +3951,13 @@ msgid "The edges extracted will conform to the corresponding spanning tree." msgstr "提取的边将符合相应的生成树。" msgid "Edge :math:`(u, v)` will not be included when:" -msgstr "在以下情况下,边:math:`(u, v)`将不包括在内:" +msgstr "在以下情况下,边 :math:`(u, v)` 将不包括在内:" msgid "The distance from the **root** to :math:`u` > limit distance." -msgstr "从 **root**到 :math:`u`的距离>限制距离。" +msgstr "从 **root** 到 :math:`u` 的距离>限制距离。" msgid "The distance from the **root** to :math:`v` > limit distance." -msgstr "从 **root**到 :math:`v`的距离>限制距离。" +msgstr "从 **root** 到 :math:`v` 的距离>限制距离。" msgid "" "No new nodes are created on the graph, so when is within the limit and is " @@ -3981,8 +3982,8 @@ msgstr "**distance**" msgid "Upper limit for the inclusion of a node in the result." msgstr "结果中包含节点的上限。" -msgid "Returns SET OF |result-spantree|" -msgstr "返回 |result-spantree| 的一组结果" +msgid "Returns set of |result-spantree|" +msgstr "Returns set of |result-spantree|" msgid ":math:`depth-1` is the depth of ``pred``" msgstr ":math:`depth-1` is the depth of ``pred``" @@ -3991,19 +3992,13 @@ msgid "``pred``" msgstr "``pred``" msgid "Predecessor of ``node``." -msgstr "``node``的前驱。" +msgstr "``node`` 的前驱。" msgid "When ``node`` = ``start_vid`` then has the value ``node``." msgstr "当 `node` 等于 `start_vid` 时,它的值就是 `node`。" msgid "Identifier of the ``edge`` used to arrive from ``pred`` to ``node``." -msgstr "从``pred`` 到达``node``所使用的 ``edge``的标识符。" - -msgid "" -"Column ``pred`` only applies to :doc:`pgr_drivingDistance` and :doc:" -"`pgr_withPointsDD`." -msgstr "" -"列``pred``仅适用于 :doc:`pgr_drivingDistance` 和:doc:`pgr_withPointsDD`。" +msgstr "从 ``pred`` 到达``node``所使用的 ``edge`` 的标识符。" msgid "Experimental Functions" msgstr "实验函数" @@ -4029,10 +4024,6 @@ msgstr ":doc:`coloring-family`" msgid ":doc:`transformation-family`" msgstr ":doc:`transformation-family`" -msgid "" -":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." -msgstr ":doc:`pgr_lineGraph` - 用于生成折线图的转换算法。" - msgid "" ":doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line " "Graph out of each vertex in the input graph." @@ -4062,6 +4053,14 @@ msgid "" "an undirected graph." msgstr ":doc:`pgr_cuthillMckeeOrdering` -返回无向图的反向 Cuthill-McKee 排序。" +msgid ":doc:`metrics-family`" +msgstr ":doc:`metrics-family`" + +msgid "" +":doc:`pgr_betweennessCentrality` - Calculates relative betweenness " +"centrality using Brandes Algorithm" +msgstr "" + msgid ":doc:`TRSP-family`" msgstr ":doc:`TRSP-family`" @@ -4071,7 +4070,7 @@ msgstr "类别" msgid ":doc:`VRP-category`" msgstr ":doc:`VRP-category`" -msgid "Not classified" +msgid "Unclassified" msgstr "未分类" msgid ":doc:`pgr_bellmanFord`" @@ -4141,7 +4140,7 @@ msgid "Flow Functions General Information" msgstr "流函数一般信息" msgid "The graph is **directed**." -msgstr "该图是**有向**的。" +msgstr "该图是 **有向** 的。" msgid "Process is done only on edges with positive capacities." msgstr "仅在具有正容量的边缘上进行处理。" @@ -4149,13 +4148,15 @@ msgstr "仅在具有正容量的边缘上进行处理。" msgid "" "When the maximum flow is 0 then there is no flow and **EMPTY SET** is " "returned." -msgstr "当最大流量为0时则没有流量并返回**EMPTY SET**。" +msgstr "当最大流量为0时则没有流量并返回 **EMPTY SET** 。" -msgid "There is no flow when a **source** is the same as a **target**." -msgstr "当 **source**与 **target**相同时,就没有流量。" +#, fuzzy +msgid "There is no flow when source has the same vaule as target." +msgstr "当 source与 target相同时,就没有流量。" -msgid "Any duplicated value in the source(s) or target(s) are ignored." -msgstr "source(s)或target(s) 中的任何重复值都将被忽略。" +#, fuzzy +msgid "Any duplicated values in source or target are ignored." +msgstr "source或target 中的任何重复值都将被忽略。" msgid "Calculates the flow/residual capacity for each edge. In the output" msgstr "计算每条边的流量/剩余容量。 在输出中" @@ -4163,18 +4164,21 @@ msgstr "计算每条边的流量/剩余容量。 在输出中" msgid "Edges with zero flow are omitted." msgstr "流量为零的边被忽略。" -msgid "" -"Creates a **super source** and edges to all the source(s), and a **super " -"target** and the edges from all the targets(s)." +msgid "Creates" +msgstr "" + +msgid "a **super source** and edges from it to all the sources," +msgstr "" + +msgid "a **super target** and edges from it to all the targetss." msgstr "" -"创建**super source**和所有源的边,以及 **super target** 和所有目标的边。" msgid "" "The maximum flow through the graph is guaranteed to be the value returned " "by :doc:`pgr_maxFlow ` when executed with the same parameters " "and can be calculated:" msgstr "" -"当使用相同参数执行时,通过图表的最大流量保证是:doc:`pgr_maxFlow " +"当使用相同参数执行时,通过图表的最大流量保证是 :doc:`pgr_maxFlow " "` 返回的值,并且可以计算:" msgid "By aggregation of the outgoing flow from the sources" @@ -4216,13 +4220,13 @@ msgstr ":doc:`pgr_maxFlowMinCost`" msgid ":doc:`pgr_maxFlowMinCost_Cost`" msgstr ":doc:`pgr_maxFlowMinCost_Cost`" -msgid "Capacity of the edge (``source``, ``target``)" +msgid "Capacity of the edge (``source``, ``target``)" msgstr "边 (``source``, ``target``)的容量" msgid "Capacity of the edge (``target``, ``source``)" msgstr "边 (``target``, ``source``)的容量" -msgid "Weight of the edge (``source``, ``target``) if it exist" +msgid "Weight of the edge (``source``, ``target``) if it exist" msgstr "边 (``source``, ``target``)的权重(如果存在)" msgid "Weight of the edge (``target``, ``source``) if it exist" @@ -4323,14 +4327,14 @@ msgstr "" "所有实现中通过图表的最大流量保证相同,但通过每条边的实际流量可能会有所不同。" msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" -msgstr "pgr_maxFlow:math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" +msgstr "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" msgid "" -"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse" -"\\_capacity_i)\\}`" +"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " +"reverse\\_capacity_i)\\}`" msgstr "" -"其中:math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse" -"\\_capacity_i)\\}`" +"其中 :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " +"reverse\\_capacity_i)\\}`" msgid "Graph definition" msgstr "图定义" @@ -4338,6 +4342,9 @@ msgstr "图定义" msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:" msgstr "加权有向图, :math:`G(V,E)` 定义为:" +msgid "the set of vertices :math:`V`" +msgstr "顶点集 :math:`V`" + msgid "" ":math:`source\\_vertex \\cup sink\\_vertex \\bigcup source_i \\bigcup " "target_i`" @@ -4350,16 +4357,16 @@ msgid "" "\\text{ when } capacity > 0 \\} & \\quad \\text{ if } reverse\\_capacity = " "\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, " "capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse" -"\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " +"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } " +"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " "\\varnothing \\\\ \\end{cases}`" msgstr "" ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) " "\\text{ when } capacity > 0 \\} & \\quad \\text{ if } reverse\\_capacity = " "\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, " "capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup " -"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse" -"\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " +"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } " +"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq " "\\varnothing \\\\ \\end{cases}`" msgid "Maximum flow problem" @@ -4390,14 +4397,14 @@ msgid "" "obtained by aggregating on the source or sink and summing the flow from/to " "it. In particular:" msgstr "" -":math:`\\boldsymbol{\\Phi}`是原始边及其剩余容量和流量的子集。 通过图的最大流" +":math:`\\boldsymbol{\\Phi}` 是原始边及其剩余容量和流量的子集。 通过图的最大流" "量可以通过在源或汇上聚合并对来自/到它的流量求和来获得。 尤其:" msgid ":math:`id_i = i`" msgstr ":math:`id_i = i`" msgid ":math:`edge\\_id = id_i` in edges_sql" -msgstr ":math:`edge\\_id = id_i`在edges_sql中" +msgstr ":math:`edge\\_id = id_i` 在edges_sql中" msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`" msgstr ":math:`residual\\_capacity_i = capacity_i - flow_i`" @@ -4410,7 +4417,7 @@ msgid "" "www.postgresql.org>`__ geospatial database to provide geospatial routing and " "other network analysis functionality." msgstr "" -"pgRouting 扩展了 `PostGIS `__/`PostgreSQL `__ /`PostgreSQL `__ 地理空间数据库,以提供地理空间路由和其他网络分析功能。" msgid "This is the manual for pgRouting |release|." @@ -4430,7 +4437,7 @@ msgstr "" "pgRouting 手册根据`知识共享署名-相同方式共享3.0许可证 `_。 您可以随意使用本材料,但我们要求" "您将功劳归功于 pgRouting 项目,并尽可能提供返回 https://pgrouting.org 的链" -"接。 有关 pgRouting 中使用的其他许可证,请参阅:ref:`license` page.。" +"接。 有关 pgRouting 中使用的其他许可证,请参阅 :ref:`license` page.。" msgid "General" msgstr "常规" @@ -4492,7 +4499,7 @@ msgid "" msgstr "" "以下函数直接修改数据库,因此用户必须具有管理员授予的特殊权限才能使用它们。" -msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." +msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." msgstr ":doc:`pgr_createTopology` - 根据几何形状创建拓扑。" msgid "" @@ -4501,15 +4508,15 @@ msgid "" msgstr ":doc:`pgr_createVerticesTable` - 根据源和目标信息重建顶点表。" msgid "" -":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge " +":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge " "table." msgstr ":doc:`pgr_analyzeGraph` - 分析边表的边和顶点。" msgid ":doc:`pgr_analyzeOneWay` - to analyze directionality of the edges." msgstr ":doc:`pgr_analyzeOneWay` - 分析边的方向性。" -msgid ":doc:`pgr_nodeNetwork` -to create nodes to a not noded edge table." -msgstr ":doc:`pgr_nodeNetwork` -为无节点边表创建节点。" +msgid ":doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table." +msgstr ":doc:`pgr_nodeNetwork` - 为无节点边表创建节点。" msgid ":doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP)" msgstr ":doc:`pgr_trsp` - 转弯限制最短路径 (TRSP)" @@ -4550,6 +4557,126 @@ msgstr ":doc:`experimental`" msgid ":doc:`release_notes`" msgstr ":doc:`release_notes`" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "pgRouting 3.7.0 发布说明" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.7.0 `__" +msgstr "" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.7.0 `__ 的 Git 关闭里程碑" + +msgid "Support" +msgstr "支持" + +#, fuzzy +msgid "" +"`#2656 `__ Stop support of " +"PostgreSQL12 on pgrouting v3.7" +msgstr "" +"`#2607 `__ 在 C++ 上读取 " +"postgresql 数据" + +#, fuzzy +msgid "Stopping support of PostgreSQL 12" +msgstr "从 PostgreSQL 12 开始::" + +#, fuzzy +msgid "CI does not test for PostgreSQL 12" +msgstr "适用于 postgreSQL 10" + +msgid "New experimental functions" +msgstr "新的实验函数" + +#, fuzzy +msgid "Metrics" +msgstr "限制" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "官方功能变更" + +msgid "" +"`#2605 `__ Standarize " +"spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "新函数:" + +msgid "``pgr_kruskalDD``" +msgstr "``pgr_kruskalDD``" + +msgid "``pgr_kruskalDFS``" +msgstr "``pgr_kruskalDFS``" + +msgid "``pgr_kruskalBFS``" +msgstr "``pgr_kruskalBFS``" + +msgid "``pgr_primDD``" +msgstr "``pgr_primDD``" + +msgid "``pgr_primDFS``" +msgstr "``pgr_primDFS``" + +msgid "``pgr_primBFS``" +msgstr "``pgr_primBFS``" + +msgid "Standarizing output columns to |result-spantree|" +msgstr "将输出列标准化为 |result-spantree|" + +#, fuzzy +msgid "Added ``pred`` result columns." +msgstr "添加了 ``depth`` 和``pred`` 结果列。" + +msgid "Experimental promoted to proposed." +msgstr "实验提升为拟议。" + +msgid "" +"`#2635 `__ pgr_LineGraph " +"ignores directed flag and use negative values for identifiers." +msgstr "" + +msgid "``pgr_lineGraph``" +msgstr "``pgr_lineGraph``" + +msgid "Promoted to **proposed** signature." +msgstr "晋升为 **拟议** 签名。" + +msgid "Works for directed and undirected graphs." +msgstr "适用于有向和无向图。" + +msgid "Code enhancement" +msgstr "代码改进" + +msgid "" +"`#2599 `__ Driving " +"distance cleanup" +msgstr "" +"`#2599 `__ 行车距离清理" + +msgid "" +"`#2607 `__ Read postgresql " +"data on C++" +msgstr "" +"`#2607 `__ 在 C++ 上读取 " +"postgresql 数据" + +msgid "" +"`#2614 `__ Clang tidy does " +"not work" +msgstr "" +"`#2614 `__ Clang tidy 不工" +"作" + +msgid "All releases" +msgstr "所有版本" + msgid "Kruskal - Family of functions" msgstr "Kruskal - 函数族" @@ -4573,6 +4700,9 @@ msgstr "树或森林中所有边的总权重最小化。" msgid "Kruskal's running time: :math:`O(E * log E)`" msgstr "克鲁斯卡尔的运行时间: :math:`O(E * log E)`" +msgid "Metrics - Family of functions" +msgstr "" + msgid "Migration guide" msgstr "迁移指南" @@ -4594,7 +4724,7 @@ msgid "Migrating functions" msgstr "迁移函数" msgid "Migration of ``pgr_aStar``" -msgstr "``pgr_aStar``迁移" +msgstr "``pgr_aStar`` 迁移" msgid "" "Starting from `v3.6.0 `__" @@ -4621,11 +4751,11 @@ msgstr "输出列是 |old-generic-result|" msgid "" "Depending on the overload used, the columns ``start_vid`` and ``end_vid`` " "might be missing:" -msgstr "根据所使用的重载, ``start_vid`` 和``end_vid``列可能会丢失:" +msgstr "根据所使用的重载, ``start_vid`` 和``end_vid`` 列可能会丢失:" msgid "" "``pgr_aStar`` (`One to One`) does not have ``start_vid`` and ``end_vid``." -msgstr "``pgr_aStar`` (`一对一`)没有``start_vid`` 和``end_vid``。" +msgstr "``pgr_aStar`` (`一对一`)没有 ``start_vid`` 和 ``end_vid``。" msgid "``pgr_aStar`` (`One to Many`) does not have ``start_vid``." msgstr "``pgr_aStar`` (`一对多`) 没有 ``start_vid``。" @@ -4636,23 +4766,24 @@ msgstr "``pgr_aStar`` (`多对一`)没有 ``end_vid``。" msgid "Migration" msgstr "迁移" -msgid "Be aware of the existance of the additional columns." +#, fuzzy +msgid "Be aware of the existence of the additional columns." msgstr "请注意附加列的存在。" msgid "In ``pgr_aStar`` (`One to One`)" -msgstr "在``pgr_aStar`` (`一对一`)中" +msgstr "在 ``pgr_aStar`` (`一对一`)中" msgid "``start_vid`` contains the **start vid** parameter value." -msgstr "``start_vid`` 包含**起始 vid **参数值。" +msgstr "``start_vid`` 包含 **起始 vid** 参数值。" msgid "``end_vid`` contains the **end vid** parameter value." -msgstr "``end_vid`` 包含**结束 vid** 参数值。" +msgstr "``end_vid`` 包含 **结束 vid** 参数值。" msgid "In ``pgr_aStar`` (`One to Many`)" -msgstr "在``pgr_aStar`` (`一对多`)中" +msgstr "在 ``pgr_aStar`` (`一对多`)中" msgid "In ``pgr_aStar`` (`Many to One`)" -msgstr "在``pgr_aStar`` (`多对一`)中" +msgstr "在 ``pgr_aStar`` (`多对一`)中" msgid "If needed filter out the added columns, for example:" msgstr "如果需要,过滤掉添加的列,例如:" @@ -4681,11 +4812,11 @@ msgid "" "``pgr_dijkstra``." msgstr "" "从 `v3.5 `__开始,函数 " -"``my_dijkstra`` 返回 ``pgr_dijkstra``的新附加列。" +"both-source-and-target-belong-to-the-contracted-graph>`__ 开始,函数 " +"``my_dijkstra`` 返回 ``pgr_dijkstra`` 的新附加列。" msgid "Migration of ``pgr_bdAstar``" -msgstr "迁移``pgr_bdAstar``" +msgstr "迁移 ``pgr_bdAstar``" msgid "``pgr_bdAstar`` (`One to One`)" msgstr "``pgr_bdAstar`` (`一对一`)" @@ -4707,21 +4838,21 @@ msgid "``pgr_bdAstar`` (`Many to One`) does not have ``end_vid``." msgstr "``pgr_bdAstar`` (`多对一`) 没有 ``end_vid``。" msgid "In ``pgr_bdAstar`` (`One to One`)" -msgstr "在``pgr_bdAstar`` (`一对一`)中" +msgstr "在 ``pgr_bdAstar`` (`一对一`)中" msgid "In ``pgr_bdAstar`` (`One to Many`)" -msgstr "在``pgr_bdAstar`` (`一对多`)中" +msgstr "在 ``pgr_bdAstar`` (`一对多`)中" msgid "In ``pgr_bdAstar`` (`Many to One`)" -msgstr "在``pgr_bdAstar`` (`多对一`)中" +msgstr "在 ``pgr_bdAstar`` (`多对一`)中" msgid "Migration of ``pgr_dijkstra``" -msgstr "迁移``pgr_dijkstra``" +msgstr "迁移 ``pgr_dijkstra``" msgid "" "Starting from `v3.5.0 `__" msgstr "" -"从`v3.5.0 `__版本开始" +"从`v3.5.0 `__ 版本开始" msgid "``pgr_dijkstra`` (`One to One`)" msgstr "``pgr_dijkstra`` (`一对一`)" @@ -4734,35 +4865,35 @@ msgstr "``pgr_dijkstra`` (`多对一`)" msgid "" "``pgr_dijkstra`` (`One to One`) does not have ``start_vid`` and ``end_vid``." -msgstr "``pgr_dijkstra`` (`一对一`)没有``start_vid`` 和 ``end_vid``。" +msgstr "``pgr_dijkstra`` (`一对一`)没有 ``start_vid`` 和 ``end_vid``。" msgid "``pgr_dijkstra`` (`One to Many`) does not have ``start_vid``." msgstr "``pgr_dijkstra`` (`一对多`) 没有 ``start_vid``。" msgid "``pgr_dijkstra`` (`Many to One`) does not have ``end_vid``." -msgstr "``pgr_dijkstra`` (`多对一`) 没有``end_vid``。" +msgstr "``pgr_dijkstra`` (`多对一`) 没有 ``end_vid``。" msgid "In ``pgr_dijkstra`` (`One to One`)" -msgstr "在``pgr_dijkstra`` (`一对一`)中" +msgstr "在 ``pgr_dijkstra`` (`一对一`)中" msgid "In ``pgr_dijkstra`` (`One to Many`)" -msgstr "在``pgr_dijkstra`` (`一对多`)中" +msgstr "在 ``pgr_dijkstra`` (`一对多`)中" msgid "In ``pgr_dijkstra`` (`Many to One`)" -msgstr "在``pgr_dijkstra`` (`多对一`)中" +msgstr "在 ``pgr_dijkstra`` (`多对一`)中" msgid "If needed add the new columns, for example:" msgstr "如果需要,过滤掉添加的列,例如:" msgid "Migration of ``pgr_drivingdistance``" -msgstr "迁移``pgr_drivingdistance``" +msgstr "迁移 ``pgr_drivingdistance``" msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_drivingDistance` result columns are being standarized." +"doc:`pgr_drivingDistance` result columns are being standardized." msgstr "" -"从 `v3.6.0 `__开始, :doc:" -"`pgr_drivingDistance`结果列正在标准化。" +"从 `v3.6.0 `__ 开始, :doc:" +"`pgr_drivingDistance` 结果列正在标准化。" msgid "from" msgstr "从" @@ -4786,15 +4917,16 @@ msgid "Output columns were |result-dij-dd|" msgstr "输出列是 |result-dij-dd|" msgid "Does not have ``start_vid`` and ``depth`` result columns." -msgstr "没有``start_vid``和 ``depth``结果列。" +msgstr "没有 ``start_vid`` 和 ``depth`` 结果列。" msgid "Has ``from_v`` instead of ``start_vid`` result column." -msgstr "有 ``from_v`` 而不是 ``start_vid``结果列。" +msgstr "有 ``from_v`` 而不是 ``start_vid`` 结果列。" msgid "does not have ``depth`` result column." -msgstr "没有``depth``结果列。" +msgstr "没有 ``depth`` 结果列。" -msgid "Be aware of the existance and name change of the result columns." +#, fuzzy +msgid "Be aware of the existence and name change of the result columns." msgstr "请注意结果列的存在和名称更改。" msgid "" @@ -4802,13 +4934,13 @@ msgid "" "html#single-vertex>`__ example." msgstr "" "使用`这个 `__示例。" +"vertex>`__ 示例。" msgid "``depth`` contains the depth of the ``node``." -msgstr "``depth``包含``node``的深度。" +msgstr "``depth`` 包含 ``node`` 的深度。" msgid "``pred`` contains the predecessor of the ``node``." -msgstr "``pred`` 包含``node``的前驱。" +msgstr "``pred`` 包含 ``node`` 的前驱。" msgid "" "If needed filter out the added columns, for example, to return the original " @@ -4825,17 +4957,90 @@ msgstr "" msgid "The ``from_v`` result column name changes to ``start_vid``." msgstr "``from_v`结果列名称更改为 ``start_vid``。" +#, fuzzy msgid "" -"If needed filter out and rename colums, for example, to return the original " +"If needed filter out and rename columns, for example, to return the original " "columns:" msgstr "如果需要,过滤掉并重命名列,例如,返回原始列:" +msgid "" +"Migration of ``pgr_kruskalDD`` / ``pgr_kruskalBFS`` / ``pgr_kruskalDFS``" +msgstr "" + +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_kruskalDD`, :doc:`pgr_kruskalBFS` and :doc:`pgr_kruskalDFS` result " +"columns are being standardized." +msgstr "" + +msgid "|result-bfs|" +msgstr "|result-bfs|" + +msgid "Single vertex" +msgstr "单顶点" + +msgid "Multiple vertices" +msgstr "多个顶点" + +msgid "Output columns were |result-bfs|" +msgstr "" + +#, fuzzy +msgid "Single vertex and Multiple vertices" +msgstr "多个顶点" + +msgid "Do not have ``pred`` result column." +msgstr "" + +#, fuzzy +msgid "Be aware of the existence of `pred` result columns." +msgstr "注意附加结果列的存在。" + +#, fuzzy +msgid "If needed filter out the added columns" +msgstr "如果需要,过滤掉添加的列,例如" + +#, fuzzy +msgid "Kruskal single vertex" +msgstr "单顶点" + +msgid "" +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +#, fuzzy +msgid "" +"Comparing with `this `__ example." +msgstr "" +"使用`这个 `__ 示例。" + +#, fuzzy +msgid "" +"Now column ``pred`` exists and contains the predecessor of the ``node``." +msgstr "``pred`` 包含``node`` 的前驱。" + +#, fuzzy +msgid "Kruskal multiple vertices" +msgstr "多个顶点" + +#, fuzzy +msgid "" +"Comparing with `this `__ example." +msgstr "" +"使用`这个 `__ 示例。" + msgid "Migration of ``pgr_KSP``" -msgstr "迁移``pgr_KSP``" +msgstr "迁移 ``pgr_KSP``" +#, fuzzy msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_KSP` result columns are being standarized." +"doc:`pgr_KSP` result columns are being standardized." msgstr "" "从 `v3.6.0 `__ 开始, :doc:" "`pgr_KSP`结果列正在标准化。" @@ -4853,16 +5058,18 @@ msgid "Output columns were |ksp-result|" msgstr "输出列是 |ksp-result|" msgid "the columns ``start_vid`` and ``end_vid`` do not exist." -msgstr "``start_vid``和 ``end_vid``列不存在。" +msgstr "``start_vid`` 和 ``end_vid`` 列不存在。" msgid "``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``." msgstr "``pgr_KSP`` (一对一) 没有 ``start_vid`` 和``end_vid``。" +#, fuzzy msgid "" "Using `this `__ " "example." msgstr "" -"使用`这个`__示例。" +"使用`这个 `__ 示" +"例。" msgid "" "If needed filter out the added columns, for example, to return the original " @@ -4876,11 +5083,11 @@ msgid "" ":doc:`pgr_maxCardinalityMatch` works only for undirected graphs, therefore " "the ``directed`` flag has been removed." msgstr "" -":doc:`pgr_maxCardinalityMatch` 仅适用于无向图,因此``有向``标志已被删除。" +":doc:`pgr_maxCardinalityMatch` 仅适用于无向图,因此 ``有向`` 标志已被删除。" msgid "" "Starting from `v3.4.0 `__" -msgstr "从`v3.4.0 `__开始" +msgstr "从`v3.4.0 `__ 开始" msgid "Signature to be migrated:" msgstr "待迁移签名:" @@ -4889,7 +5096,7 @@ msgid "Migration is needed, because:" msgstr "需要迁移,因为:" msgid "Use ``cost`` and ``reverse_cost`` on the inner query" -msgstr "在内部查询上使用``cost``和 ``reverse_cost``" +msgstr "在内部查询上使用 ``cost`` 和 ``reverse_cost``" msgid "Results are ordered" msgstr "结果已排序" @@ -4901,10 +5108,10 @@ msgid "New signature" msgstr "新签名" msgid "``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." -msgstr "``pgr_maxCardinalityMatch(text)`` 仅仅返回``边``列." +msgstr "``pgr_maxCardinalityMatch(text)`` 仅仅返回``边`` 列." msgid "The optional flag ``directed`` is removed." -msgstr "可选的 ``directed``标志被删除。" +msgstr "可选的 ``directed`` 标志被删除。" msgid "Before migration" msgstr "迁移前" @@ -4917,35 +5124,77 @@ msgstr "所使用的列是 ``going`` 和 ``coming``,用于表示边的存在 msgid "" "Flag ``directed`` was used to indicate if it was for a **directed** or " "**undirected** graph." -msgstr "``directed``标志用于指示是**有向**图还是 **无向**图。" +msgstr "``directed`` 标志用于指示是 **有向** 图还是 **无向** 图。" msgid "The flag ``directed`` is ignored." -msgstr "``directed``标志被忽略。" +msgstr "``directed`` 标志被忽略。" msgid "" "Regardless of it's value it gives the result considering the graph as " "**undirected**." -msgstr "无论它的值如何,它都会给出将图视为**无向**的结果。" +msgstr "无论它的值如何,它都会给出将图视为 **无向** 的结果。" msgid "" "Use the columns ``cost`` and ``reverse_cost`` to represent the existence of " "an edge." -msgstr "使用 ``cost``和 ``reverse_cost``列来表示边的存在。" +msgstr "使用 ``cost`` 和 ``reverse_cost`` 列来表示边的存在。" msgid "Do not use the flag ``directed``." -msgstr "不要使用``directed``标志。" +msgstr "不要使用 ``directed`` 标志。" msgid "In the query returns only ``edge`` column." -msgstr "查询中仅返回``边``列。" +msgstr "查询中仅返回 ``边`` 列。" + +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgstr "" + +#, fuzzy +msgid "" +"Starting from `v3.7.0 `__ :" +"doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns " +"are being standardized." +msgstr "" +"从 `v3.6.0 `__ 开始, :doc:" +"`pgr_drivingDistance`结果列正在标准化。" + +#, fuzzy +msgid "Prim single vertex" +msgstr "单顶点" + +msgid "" +"Using ``pgr_primDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + +#, fuzzy +msgid "" +"Comparing with `this `__ example." +msgstr "" +"使用`这个 `__ 示例。" + +#, fuzzy +msgid "Prim multiple vertices" +msgstr "多个顶点" + +#, fuzzy +msgid "" +"Comparing with `this `__ example." +msgstr "" +"使用`这个 `__ 示例。" msgid "Migration of ``pgr_withPointsDD``" -msgstr "迁移``pgr_withPointsDD``" +msgstr "迁移 ``pgr_withPointsDD``" +#, fuzzy msgid "" "Starting from `v3.6.0 `__ :" -"doc:`pgr_withPointsDD` result columns are being standarized." +"doc:`pgr_withPointsDD` result columns are being standardized." msgstr "" -"从`v3.6.0 `__开始 :doc:" +"从`v3.6.0 `__ 开始 :doc:" "`pgr_withPointsDD`结果列正在标准化。" msgid "|result-generic-no-seq|" @@ -4956,8 +5205,8 @@ msgid "" "compulsory **driving side** and its validity differ for directed and " "undirected graphs." msgstr "" -"并且 ``driving_side`` 参数从命名可选变为未命名强制**driving side**,其有效性" -"对于有向图和无向图是不同的。" +"并且 ``driving_side`` 参数从命名可选变为未命名强制 **driving side** ,其有效" +"性对于有向图和无向图是不同的。" msgid "``pgr_withPointsDD`` (Single vertex)" msgstr "``pgr_withPointsDD`` (单个顶点)" @@ -4966,23 +5215,24 @@ msgid "``pgr_withPointsDD`` (Multiple vertices)" msgstr "``pgr_withPointsDD`` (多个顶点)" msgid "Output columns were |result-1-1-no-seq|" -msgstr "输出列为|result-1-1-no-seq|" +msgstr "输出列为 |result-1-1-no-seq|" msgid "Does not have ``start_vid``, ``pred`` and ``depth`` result columns." -msgstr "没有``start_vid``,``pred``和``depth``结果列。" +msgstr "没有 ``start_vid``,``pred`` 和``depth`` 结果列。" +#, fuzzy msgid "" -"``driving_side`` parameter was named optional now it is compulsory unamed." +"``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "``driving_side`` 参数被命名为可选,现在强制未命名。" msgid "``pgr_withPointsDD`` (`Multiple vertices`)" msgstr "``pgr_withPointsDD`` (`多个顶点`)" msgid "Output columns were |result-m-1-no-seq|" -msgstr "输出列为|result-m-1-no-seq|" +msgstr "输出列为 |result-m-1-no-seq|" msgid "Does not have ``depth`` and ``pred`` result columns." -msgstr "没有 ``depth``和``pred``结果列。" +msgstr "没有 ``depth`` 和``pred`` 结果列。" msgid "Driving side was optional" msgstr "驾驶侧是可选的" @@ -5012,19 +5262,20 @@ msgid "Driving side was named optional" msgstr "驾驶侧被命名为可选" msgid "On directed graph ``b`` could be used as **driving side**" -msgstr "在有向图上 ``b``可以用作 **行驶方向**" +msgstr "在有向图上 ``b`` 可以用作 **行驶方向**" msgid "On undirected graph ``r`` could be used as **driving side**" -msgstr "在无向图上``r``可以用作**行驶方向**" +msgstr "在无向图上 ``r`` 可以用作 **行驶方向**" -msgid "Also ``l`` could be used as **driving side**" -msgstr "``l`` 也可用作**行驶方向**" +msgid "Also ``l`` could be used as **driving side**" +msgstr "此外, ``l`` 也可用作 **驾驶侧**" msgid "After Migration" msgstr "迁移后" -msgid "Be aware of the existance of the additional return columns." -msgstr "请注意附加返回列的存在。" +#, fuzzy +msgid "Be aware of the existence of the additional result Columns." +msgstr "注意附加结果列的存在。" msgid "New output columns are |result-spantree|" msgstr "新的输出列是 |result-spantree|" @@ -5032,7 +5283,7 @@ msgstr "新的输出列是 |result-spantree|" msgid "" "**driving side** parameter is unnamed compulsory, and valid values differ " "for directed and undirected graphs." -msgstr "**driving side**参数是未命名的强制参数,有向图和无向图的有效值不同。" +msgstr "**driving side** 参数是未命名的强制参数,有向图和无向图的有效值不同。" msgid "Does not have a default value." msgstr "没有默认值。" @@ -5056,13 +5307,13 @@ msgstr "" msgid "" "``depth`` contains the **depth** from the ``start_vid`` vertex to the " "``node``." -msgstr "``depth``包含从``start_vid``顶点到``node``的 **深度**。" +msgstr "``depth`` 包含从 ``start_vid`` 顶点到 ``node`` 的 **深度**。" msgid "" "To migrate, use an unnamed valid value for **driving side** after the " "**distance** parameter:" msgstr "" -"要进行迁移,请在 **distance**参数之后使用一个未命名的有效值作为 **行驶方向" +"要进行迁移,请在 **distance** 参数之后使用一个未命名的有效值作为 **行驶方向" "**:" msgid "To get results from previous versions:" @@ -5075,7 +5326,8 @@ msgid "" "When ``details => false`` to remove the points use ``WHERE node >= 0 OR cost " "= 0``" msgstr "" -"当设置``details => false`` 以移除点时,请使用 ``WHERE node >= 0 OR cost = 0``" +"当设置 ``details => false`` 以移除点时,请使用 ``WHERE node >= 0 OR cost = " +"0``" msgid "" "Using `this `__ :" -"doc:`pgr_withPointsKSP` result columns are being standarized." +"doc:`pgr_withPointsKSP` result columns are being standardized." msgstr "" -"从`v3.6.0 `__ 开始 ,:doc:" +"从`v3.6.0 `__ 开始 , :doc:" "`pgr_withPointsKSP`结果列正在标准化。" msgid "" @@ -5119,7 +5372,7 @@ msgid "" "html#signatures>`__ example." msgstr "" "使用 `这个 `__示例。" +"html#signatures>`__ 示例。" msgid "" "If needed filter out the additional columns, for example, to return the " @@ -5142,7 +5395,7 @@ msgid "On the deprecated signatures:" msgstr "关于已弃用的签名:" msgid "Column ``rid`` is ignored" -msgstr "列 ``rid``被忽略" +msgstr "列 ``rid`` 被忽略" msgid "``via_path``" msgstr "``via_path``" @@ -5151,10 +5404,10 @@ msgid "Must be in reverse order." msgstr "必须是相反的顺序。" msgid "Is of type ``TEXT``." -msgstr "属于 ``TEXT``类型。" +msgstr "属于 ``TEXT`` 类型。" msgid "When more than one via edge must be separated with ``,``." -msgstr "当多个过孔边必须用``,``分隔时。" +msgstr "当多个过孔边必须用 ``,`` 分隔时。" msgid "``target_id``" msgstr "``target_id``" @@ -5169,7 +5422,7 @@ msgid "``to_cost``" msgstr "``to_cost``" msgid "Is of type ``FLOAT``." -msgstr "类型为``FLOAT``。" +msgstr "类型为 ``FLOAT``。" msgid "Creation of the old restrictions table" msgstr "创建旧限制表" @@ -5183,7 +5436,7 @@ msgstr "旧限制内容" msgid "" "The restriction with ``rid = 2`` is representing :math:`3 \\rightarrow 5 " "\\rightarrow9`" -msgstr "``rid = 2``的限制表示的是路径 :math:`3 \\rightarrow 5 \\rightarrow9`" +msgstr "``rid = 2`` 的限制表示的是路径 :math:`3 \\rightarrow 5 \\rightarrow9`" msgid ":math:`3\\rightarrow5`" msgstr ":math:`3\\rightarrow5`" @@ -5192,22 +5445,22 @@ msgid "is on column ``via_path`` in reverse order" msgstr "以相反的顺序位于 ``via_path`` 列上" msgid "is of type ``TEXT``" -msgstr "类型为``TEXT``" +msgstr "类型为 ``TEXT``" msgid ":math:`9`" msgstr ":math:`9`" msgid "is on column ``target_id``" -msgstr "位于``target_id`` 列上" +msgstr "位于 ``target_id`` 列上" msgid "is of type ``INTEGER``" -msgstr "类型为``INTEGER``" +msgstr "类型为 ``INTEGER``" msgid "New restrictions structure" msgstr "新的限制结构" msgid "Column ``id`` is ignored" -msgstr "列 ``id``被忽略" +msgstr "列 ``id`` 被忽略" msgid "Column ``path``" msgstr "列 ``path``" @@ -5258,8 +5511,8 @@ msgid "" "For this migration pgRouting supplies an auxiliary function for reversal of " "an array ``_pgr_array_reverse`` needed for the migration." msgstr "" -"为了进行这次迁移,pgRouting 提供了一个用于反转数组的辅助函数 " -"``_pgr_array_reverse``,这在迁移过程中是必需的。" +"为了进行这次迁移,pgRouting 提供了一个用于反转数组的辅助函数 ``_ " +"pgr_array_reverse`` ,这在迁移过程中是必需的。" msgid "``_pgr_array_reverse``:" msgstr "``_pgr_array_reverse``:" @@ -5277,7 +5530,7 @@ msgid "The migrated table contents:" msgstr "迁移后的表内容:" msgid "Migration of ``pgr_trsp`` (Vertices)" -msgstr "迁移``pgr_trsp``(顶点)" +msgstr "迁移 ``pgr_trsp`` (顶点)" msgid "" ":doc:`pgr_trsp` signatures have changed and many issues have been fixed in " @@ -5295,15 +5548,15 @@ msgid "The floating point type of the ``Edges SQL`` can only be ``FLOAT``." msgstr "``Edges SQL`` 的浮点类型只能是 ``FLOAT``。" msgid "``directed`` flag is compulsory." -msgstr "``directed``标志是强制性的。" +msgstr "``directed`` 标志是强制性的。" msgid "Does not autodetect if ``reverse_cost`` column exist." -msgstr "不自动检测 ``reverse_cost``列是否存在。" +msgstr "不自动检测 ``reverse_cost`` 列是否存在。" msgid "" "User must be careful to match the existence of the column with the value of " "``has_rcost`` parameter." -msgstr "用户必须小心地将列的存在与``has_rcost`` 参数的值相匹配。" +msgstr "用户必须小心地将列的存在与 ``has_rcost`` 参数的值相匹配。" msgid "The restrictions inner query is optional." msgstr "内部查询的限制是可选的。" @@ -5315,13 +5568,13 @@ msgid "Migrate by using:" msgstr "使用以下方式迁移:" msgid ":doc:`pgr_dijkstra` when there are no restrictions," -msgstr ":doc:`pgr_dijkstra`当没有限制时," +msgstr ":doc:`pgr_dijkstra` 当没有限制时," msgid ":doc:`pgr_trsp` (One to One) when there are restrictions." msgstr ":doc:`pgr_trsp` (一对一)当有限制时。" msgid "Migrating ``pgr_trsp`` (Vertices) using ``pgr_dijkstra``" -msgstr "使用 ``pgr_dijkstra`` 迁移 ``pgr_trsp``(顶点)" +msgstr "使用 ``pgr_dijkstra`` 迁移 ``pgr_trsp`` (顶点)" msgid "The following query does not have restrictions." msgstr "以下查询没有限制。" @@ -5342,13 +5595,13 @@ msgid ":doc:`pgr_dijkstra`:" msgstr ":doc:`pgr_dijkstra`:" msgid "Autodetects if ``reverse_cost`` column is in the edges SQL." -msgstr "自动检测``reverse_cost``列是否在边SQL中。" +msgstr "自动检测 ``reverse_cost`` 列是否在边SQL中。" msgid "Accepts ``ANY-INTEGER`` on integral types" -msgstr "接受整数类型``ANY-INTEGER``" +msgstr "接受整数类型 ``ANY-INTEGER``" msgid "Accepts ``ANY-NUMERICAL`` on floating point types" -msgstr "接受浮点类型``ANY-NUMERICAL``" +msgstr "接受浮点类型 ``ANY-NUMERICAL``" msgid "``directed`` flag has a default value of ``true``." msgstr "``directed`` 标志的默认值为``true``。" @@ -5357,7 +5610,7 @@ msgid "Use the same value that on the original query." msgstr "使用与原始查询相同的值。" msgid "In this example it is ``true`` which is the default value." -msgstr "在此示例中,默认值为``true``。" +msgstr "在此示例中,默认值为 ``true``。" msgid "The flag has been omitted and the default is been used." msgstr "该标志已被省略,并使用默认值。" @@ -5368,13 +5621,13 @@ msgid "" msgstr "当需要使用严格相同(无意义)的函数名称和类型进行迁移时:" msgid "``id1`` is the node" -msgstr "``id1``是节点" +msgstr "``id1`` 是节点" msgid "``id2`` is the edge" -msgstr "``id2``是边" +msgstr "``id2`` 是边" msgid "Migrating ``pgr_trsp`` (Vertices) using ``pgr_trsp``" -msgstr "使用``pgr_trsp``迁移 ``pgr_trsp``(顶点)" +msgstr "使用 ``pgr_trsp``迁移 ``pgr_trsp`` (顶点)" msgid "The following query has restrictions." msgstr "以下查询有限制。" @@ -5386,7 +5639,7 @@ msgid "Using the old structure of restrictions" msgstr "使用旧的限制结构" msgid "Use :doc:`pgr_trsp` (One to One) instead." -msgstr "请改用:doc:`pgr_trsp` (一对一)。" +msgstr "请改用 :doc:`pgr_trsp` (一对一)。" msgid "The new structure of restrictions is been used." msgstr "使用了新的限制结构。" @@ -5398,25 +5651,25 @@ msgid ":doc:`pgr_trsp`:" msgstr ":doc:`pgr_trsp`:" msgid "Migration of ``pgr_trsp`` (Edges)" -msgstr "迁移``pgr_trsp``(边)" +msgstr "迁移 ``pgr_trsp`` (边)" msgid "The integral types of the ``sql`` can only be ``INTEGER``." -msgstr "``sql``的整型类型只能是``INTEGER``。" +msgstr "``sql`` 的整型类型只能是 ``INTEGER``。" msgid "The floating point type of the ``sql`` can only be ``FLOAT``." -msgstr "``sql``的浮点类型只能是``FLOAT``。" +msgstr "``sql`` 的浮点类型只能是 ``FLOAT``。" msgid "For these migration guide the following points will be used:" msgstr "对于这些迁移指南,将使用以下几点:" msgid ":doc:`pgr_withPoints` when there are no restrictions," -msgstr ":doc:`pgr_withPoints`当没有任何限制的时候," +msgstr ":doc:`pgr_withPoints` 当没有任何限制的时候," msgid ":doc:`pgr_trsp_withPoints` (One to One) when there are restrictions." msgstr ":doc:`pgr_trsp_withPoints` (一对一) 当有限制时。" msgid "Migrating ``pgr_trsp`` (Edges) using ``pgr_withPoints``" -msgstr "使用 ``pgr_withPoints``迁移 ``pgr_trsp``(边)" +msgstr "使用 ``pgr_withPoints``迁移 ``pgr_trsp`` (边)" msgid "Use :doc:`pgr_withPoints` instead." msgstr "请使用 :doc:`pgr_withPoints`。" @@ -5428,7 +5681,7 @@ msgid ":doc:`pgr_withPoints`:" msgstr ":doc:`pgr_withPoints`:" msgid "On the points query do not include the ``side`` column." -msgstr "在点查询中不包括 ``side``列。" +msgstr "在点查询中不包括 ``side`` 列。" msgid "" "When the need of using strictly the same (meaningless) names and types, and " @@ -5445,37 +5698,37 @@ msgid ":doc:`pgr_trsp_withPoints`:" msgstr ":doc:`pgr_trsp_withPoints`:" msgid "Migration of ``pgr_trspViaVertices``" -msgstr "迁移``pgr_trspViaVertices``" +msgstr "迁移 ``pgr_trspViaVertices``" msgid "The integral types of the ``Edges SQL`` can only be ``INTEGER``." -msgstr "``Edges SQL``的整数类型只能是 ``INTEGER``。" +msgstr "``Edges SQL`` 的整数类型只能是 ``INTEGER``。" msgid ":doc:`pgr_dijkstraVia` when there are no restrictions," -msgstr ":doc:`pgr_dijkstraVia`当无限制时," +msgstr ":doc:`pgr_dijkstraVia` 当无限制时," msgid ":doc:`pgr_trspVia` when there are restrictions." -msgstr ":doc:`pgr_trspVia`当有限制时。" +msgstr ":doc:`pgr_trspVia` 当有限制时。" msgid "Migrating ``pgr_trspViaVertices`` using ``pgr_dijkstraVia``" msgstr "使用 ``pgr_dijkstraVia``迁移 ``pgr_trspViaVertices``" msgid "Use :doc:`pgr_dijkstraVia` instead." -msgstr "请使用:doc:`pgr_dijkstraVia`。" +msgstr "请使用 :doc:`pgr_dijkstraVia`。" msgid ":doc:`pgr_dijkstraVia`:" msgstr ":doc:`pgr_dijkstraVia`:" msgid "``id1`` is the path identifier" -msgstr "``id1``是路径标识符" +msgstr "``id1`` 是路径标识符" msgid "``id2`` is the node" -msgstr "``id2``是节点" +msgstr "``id2`` 是节点" msgid "``id3`` is the edge" -msgstr "``id3``是边" +msgstr "``id3`` 是边" msgid "Migrating ``pgr_trspViaVertices`` using ``pgr_trspVia``" -msgstr "使用``pgr_trspVia``迁移 ``pgr_trspViaVertices``" +msgstr "使用 ``pgr_trspVia``迁移 ``pgr_trspViaVertices``" msgid "Use :doc:`pgr_trspVia` instead." msgstr "使用 :doc:`pgr_trspVia`。" @@ -5484,7 +5737,7 @@ msgid ":doc:`pgr_trspVia`:" msgstr ":doc:`pgr_trspVia`:" msgid "Migration of ``pgr_trspViaEdges``" -msgstr "迁移``pgr_trspViaEdges``" +msgstr "迁移 ``pgr_trspViaEdges``" msgid "" "And will travel thru the following Via points :math:" @@ -5492,13 +5745,13 @@ msgid "" msgstr "并将途经以下途经点: :math:`4\\rightarrow3\\rightarrow6`" msgid ":doc:`pgr_withPointsVia` when there are no restrictions," -msgstr ":doc:`pgr_withPointsVia`当没有限制时," +msgstr ":doc:`pgr_withPointsVia` 当没有限制时," msgid ":doc:`pgr_trspVia_withPoints` when there are restrictions." -msgstr ":doc:`pgr_trspVia_withPoints`当有限制时。" +msgstr ":doc:`pgr_trspVia_withPoints` 当有限制时。" msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia``" -msgstr "使用``pgr_withPointsVia``迁移``pgr_trspViaEdges``" +msgstr "使用 ``pgr_withPointsVia`` 迁移 ``pgr_trspViaEdges``" msgid "Use :doc:`pgr_withPointsVia` instead." msgstr "请使用 :doc:`pgr_withPointsVia`。" @@ -5507,10 +5760,10 @@ msgid ":doc:`pgr_withPointsVia`:" msgstr ":doc:`pgr_withPointsVia`:" msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints``" -msgstr "使用``pgr_trspVia_withPoints``迁移``pgr_trspViaEdges``" +msgstr "使用 ``pgr_trspVia_withPoints``迁移``pgr_trspViaEdges``" msgid "Use :doc:`pgr_trspVia_withPoints` instead." -msgstr "使用 :doc:`pgr_trspVia_withPoints`代替。" +msgstr "使用 :doc:`pgr_trspVia_withPoints` 代替。" msgid ":doc:`pgr_trspVia_withPoints`:" msgstr ":doc:`pgr_trspVia_withPoints`:" @@ -5536,7 +5789,7 @@ msgid "A graph is an ordered pair :math:`G = (V ,E)` where:" msgstr "图是一个有序对 :math:`G = (V ,E)` ,其中:" msgid ":math:`V` is a set of vertices, also called nodes." -msgstr ":math:`V`是一组顶点,也称为节点。" +msgstr ":math:`V` 是一组顶点,也称为节点。" msgid ":math:`E \\subseteq \\{( u, v ) \\mid u , v \\in V \\}`" msgstr ":math:`E \\subseteq \\{( u, v ) \\mid u , v \\in V \\}`" @@ -5573,14 +5826,14 @@ msgstr "没有几何图形。" msgid "" "Some graph theory problems require graphs to have weights, called **cost** " "in pgRouting." -msgstr "一些图论问题需要图具有权重,在 pgRouting 中称为**成本**。" +msgstr "一些图论问题需要图具有权重,在 pgRouting 中称为 **成本** 。" msgid "" "In pgRouting there are several ways to represent a graph on the database:" msgstr "在 pgRouting 中,有多种方法来表示数据库上的图:" msgid "With ``cost``" -msgstr "使用``cost``" +msgstr "使用 ``cost``" msgid "(``id``, ``source``, ``target``, ``cost``)" msgstr "(``id``, ``source``, ``target``, ``cost``)" @@ -5607,7 +5860,7 @@ msgid "" msgstr "当为负时,图上不存在边(``source``, ``target``)。" msgid "``cost`` must exist in the query." -msgstr "查询中必须存在``cost``。" +msgstr "查询中必须存在 ``cost``。" msgid "" "When negative the edge (``target``, ``source``) do not exist on the graph." @@ -5616,10 +5869,11 @@ msgstr "当为负时,图上不存在边(``target``, ``source``)。" msgid "" "The decision of the graph to be **directed** or **undirected** is done when " "executing a pgRouting algorithm." -msgstr "图是**有向**图还是**无向**图的决定是在执行 pgRouting 算法时完成的。" +msgstr "" +"图是 **有向** 图还是 **无向** 图的决定是在执行 pgRouting 算法时完成的。" msgid "Graph with ``cost``" -msgstr "``成本``图" +msgstr "``成本`` 图" msgid "The weighted directed graph, :math:`G_d(V,E)`:" msgstr "加权有向图, :math:`G_d(V,E)`:" @@ -5644,7 +5898,7 @@ msgid ":math:`V = \\{source_{id} \\cup target_{id}\\}`" msgstr ":math:`V = \\{source_{id} \\cup target_{id}\\}`" msgid "All vertices in ``source`` and ``target`` are part of the graph." -msgstr "``source`` 和``target``中的所有顶点都是图的一部分。" +msgstr "``source`` 和``target`` 中的所有顶点都是图的一部分。" msgid "" "In a directed graph the edge :math:`(source_{id}, target_{id}, cost_{id})` " @@ -5674,16 +5928,16 @@ msgid "" "In terms of a directed graph is like having two edges: :math:`source_{id} " "\\leftrightarrow target_{id}`" msgstr "" -"在有向图的术语中,这相当于有两条边::math:`source_{id} \\leftrightarrow " +"在有向图的术语中,这相当于有两条边: :math:`source_{id} \\leftrightarrow " "target_{id}`" msgid "" -"Edge :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) is not part of the " +"Edge :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) is not part of the " "graph." -msgstr "边 :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) 不是图的一部分。" +msgstr "边 :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) 不是图的一部分。" msgid "Graph with ``cost`` and ``reverse_cost``" -msgstr "带有 ``cost``和``reverse_cost``的图" +msgstr "带有 ``cost`` 和``reverse_cost`` 的图" msgid "The weighted directed graph, :math:`G_d(V,E)`, is defined by:" msgstr "加权有向图, :math:`G_d(V,E)`, 定义如下:" @@ -5697,13 +5951,13 @@ msgstr "边的集合 :math:`E`:" msgid "" ":math:`E = \\begin{split} \\begin{align} & {\\{(source_{id}, target_{id}, " "cost_{id}) \\text{ when } cost_{id} >=0 \\}} \\\\ & \\cup \\\\ & " -"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } reverse" -"\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" +"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } " +"reverse\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" msgstr "" ":math:`E = \\begin{split} \\begin{align} & {\\{(source_{id}, target_{id}, " "cost_{id}) \\text{ when } cost_{id} >=0 \\}} \\\\ & \\cup \\\\ & " -"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } reverse" -"\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" +"{\\{(target_{id}, source_{id}, reverse\\_cost_{id}) \\text{ when } " +"reverse\\_cost_{id} >=0 \\}} \\end{align} \\end{split}`" msgid "" "Edges :math:`(source \\rightarrow target)` where ``cost`` is non negative " @@ -5719,8 +5973,8 @@ msgstr "" "边 :math:`(target \\rightarrow source)` 中的 ``reverse_cost`` 是非负数的都属" "于图的一部分。" -msgid "The set of vertices :math:`V`:" -msgstr "顶点 :math:`V`的集合:" +msgid "The set of vertices :math:`V`:" +msgstr "顶点集 :math:`V`:" msgid "In a directed graph both edges have directionality" msgstr "在有向图中,两条边都有方向性" @@ -5729,24 +5983,24 @@ msgid "" "edge :math:`(source_{id}, target_{id}, cost_{id})` has directionality: :math:" "`source_{id} \\rightarrow target_{id}`" msgstr "" -"边 :math:`(source_{id}, target_{id}, cost_{id})` 具有方向性::math:" +"边 :math:`(source_{id}, target_{id}, cost_{id})` 具有方向性: :math:" "`source_{id} \\rightarrow target_{id}`" msgid "" "edge :math:`(target_{id}, source_{id}, reverse\\_cost_{id})` has " "directionality: :math:`target_{id} \\rightarrow source_{id}`" msgstr "" -"边 :math:`(target_{id}, source_{id}, reverse\\_cost_{id})` 具有方向性::math:" -"`target_{id} \\rightarrow source_{id}`" +"边 :math:`(target_{id}, source_{id}, reverse\\_cost_{id})` 具有方向性: :" +"math:`target_{id} \\rightarrow source_{id}`" msgid "Edges not part of the graph:" msgstr "边不是图的一部分:" -msgid ":math:`2` (:math:`1 \\rightarrow 3`)" -msgstr ":math:`2` (:math:`1 \\rightarrow 3`)" +msgid ":math:`2` (:math:`1 \\rightarrow 3`)" +msgstr ":math:`2` (:math:`1\\rightarrow 3`)" -msgid ":math:`3` (:math:`3 \\rightarrow 2`)" -msgstr ":math:`3` (:math:`3 \\rightarrow 2`)" +msgid ":math:`3` (:math:`3 \\rightarrow 2`)" +msgstr ":math:`3` (:math:`3\\rightarrow 2`)" msgid "In a directed graph both edges do not have directionality" msgstr "在有向图中,两条边都没有方向性" @@ -5762,7 +6016,7 @@ msgid "" "Edge :math:`(target_{id}, source_{id}, reverse\\_cost_{id})` is :math:" "`target_{id} \\frac{\\;\\;\\;\\;\\;}{} source_{id}`" msgstr "" -"边:math:`(target_{id}, source_{id}, reverse\\_cost_{id})`是 :math:" +"边 :math:`(target_{id}, source_{id}, reverse\\_cost_{id})`是 :math:" "`target_{id} \\frac{\\;\\;\\;\\;\\;}{} source_{id}`" msgid "In terms of a directed graph is like having four edges:" @@ -5774,22 +6028,22 @@ msgstr ":math:`source_i \\leftrightarrow target_i`" msgid ":math:`target_i \\leftrightarrow source_i`" msgstr ":math:`target_i \\leftrightarrow source_i`" -msgid ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" -msgstr ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" +msgid ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" +msgstr ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" -msgid ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" -msgstr ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" +msgid ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" +msgstr ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" msgid "Graphs without geometries" msgstr "没有几何信息的图" msgid "" "Personal relationships, genealogy, file dependency problems can be solved " -"using pgRouting. Those problems, normally, do not come with geometries " +"using pgRouting. Those problems, normally, do not come with geometries " "associated with the graph." msgstr "" -"人际关系、家谱、文件依赖问题都可以使用pgRouting来解决。 通常,这些问题不会与" -"与图形相关的几何图形相关。" +"使用 pgRouting 可以解决个人关系、家谱和文件依赖性问题。这些问题通常不会与图形" +"相关的几何图形一起出现。" msgid "Wiki example" msgstr "维基示例" @@ -5798,11 +6052,11 @@ msgid "" "Solve the example problem taken from `wikipedia `__):" msgstr "" -"解决来自 `维基百科`__)" -"的示例问题 :" +"解决来自 `维基百科 `__ )的示例问题 :" msgid "Problem is to find the shortest path from :math:`1` to :math:`5`." -msgstr "问题是找到从 :math:`1`到:math:`5` 的最短路径。" +msgstr "问题是找到从 :math:`1` 到 :math:`5` 的最短路径。" msgid "Is an undirected graph." msgstr "是一个无向图。" @@ -5867,7 +6121,7 @@ msgid "" "To go from :math:`1` to :math:`5` the path goes thru the following " "vertices: :math:`1 \\rightarrow 3 \\rightarrow 6 \\rightarrow 5`" msgstr "" -"从 :math:`1` 到 :math:`5`的路径要经过以下顶点: :math:`1 \\rightarrow 3 " +"从 :math:`1` 到 :math:`5` 的路径要经过以下顶点: :math:`1 \\rightarrow 3 " "\\rightarrow 6 \\rightarrow 5`" msgid "Vertex information" @@ -5906,8 +6160,8 @@ msgstr "手动创建数据库。" msgid "`Graphs without geometries`_" msgstr "`没有几何形状的图`_" -msgid ":doc:`sampledata`: a small graph used on the documentation examples" -msgstr ":doc:`sampledata`: 文档示例中使用的小图" +msgid ":doc:`sampledata`: a small graph used in the documentation examples" +msgstr ":doc:`sampledata`: 文档示例中使用的小图形" msgid "" "Using `osm2pgrouting `__ and some others involve graph operations like :doc:" "`pgr_contraction` to contract a graph." msgstr "" -"准备图的步骤涉及使用`PostGIS `__进行几何操作,其他一些" -"步骤涉及诸如:doc:`pgr_contraction` 之类的图操作来收缩图。" +"准备图的步骤涉及使用`PostGIS `__ 进行几何操作,其他一些" +"步骤涉及诸如 :doc:`pgr_contraction` 之类的图操作来收缩图。" msgid "" "The `workshop `__ has a step by step " "on how to prepare a graph using Open Street Map data, for a small " "application." msgstr "" -"该 `workshop `__逐步介绍了如何使用开放" -"街道地图数据为小型应用程序准备图。" +"该 `workshop `__ 逐步介绍了如何使用开" +"放街道地图数据为小型应用程序准备图。" msgid "The use of indexes on the database design in general:" msgstr "数据库设计上索引的使用一般:" @@ -6014,7 +6268,7 @@ msgid "" "documentation and the `PostGIS `__ documentation." msgstr "" "请查阅`PostgreSQL `__ 文档和 `PostGIS " -"`__文档。" +"`__ 文档。" msgid "Build a routing topology" msgstr "构建路由拓扑" @@ -6034,7 +6288,7 @@ msgid "" "documentation." msgstr "" "``reverse_cost`` 是可选的,但强烈建议使用,以便由于几何列的大小而减小数据库的" -"大小。 话虽如此,在本文档中使用了``reverse_cost`` 。" +"大小。 话虽如此,在本文档中使用了 ``reverse_cost``。" msgid "" "When the data comes with geometries and there is no routing topology, then " @@ -6048,8 +6302,8 @@ msgid "" "traversing the edge in both directions." msgstr "" "几何图的所有开始和结束顶点都需要一个标识符,该标识符将存储在数据表的" -"``source``列和``target``列中。 同样,``cost``和 ``reverse_cost``需要具有在两" -"个方向上遍历边的值。" +"``source``列和``target``列中。 同样,``cost`` 和 ``reverse_cost`` 需要具有在" +"两个方向上遍历边的值。" msgid "" "If the columns do not exist they need to be added to the table in question. " @@ -6057,7 +6311,7 @@ msgid "" "html>`__)" msgstr "" "如果这些列不存在,则需要将它们添加到相关表中。 (参见`ALTER TABLE `__)" +"www.postgresql.org/docs/current/sql-altertable.html>`__ )" msgid "" "The function :doc:`pgr_extractVertices` is used to create a vertices table " @@ -6068,10 +6322,10 @@ msgstr "" msgid "" "Finally using the data stored on the vertices tables the ``source`` and " "``target`` are filled up." -msgstr "最后使用存储在顶点表上的数据填充 ``source``和``target`` 。" +msgstr "最后使用存储在顶点表上的数据填充 ``source`` 和``target``。" msgid "See :doc:`sampledata` for an example for building a topology." -msgstr "有关构建拓扑的示例,请参阅 :doc:`示例数据`。" +msgstr "有关构建拓扑的示例,请参阅 :doc:`sampledata`。" msgid "" "Data coming from OSM and using `osm2pgrouting `__." msgstr "" "来自 OSM 并使用 `osm2pgrouting `__ 作为导入工具的数据附带路由拓扑。 请参阅`workshop `__上使用``osm2pgrouting`` " -"的示例。" +"osm2pgrouting>`__ 作为导入工具的数据附带路由拓扑。 请参阅 `workshop `__ 上使用 " +"``osm2pgrouting`` 的示例。" msgid "Adjust costs" msgstr "调整成本" @@ -6090,7 +6344,7 @@ msgstr "调整成本" msgid "" "For this example the ``cost`` and ``reverse_cost`` values are going to be " "the double of the length of the geometry." -msgstr "对于本示例,``cost`` 和``reverse_cost``值将是几何体长度的两倍。" +msgstr "对于本示例, ``cost`` 和 ``reverse_cost`` 值将是几何体长度的两倍。" msgid "Update costs to length of geometry" msgstr "将成本更新为几何形状的长度" @@ -6098,13 +6352,13 @@ msgstr "将成本更新为几何形状的长度" msgid "" "Suppose that ``cost`` and ``reverse_cost`` columns in the sample data " "represent:" -msgstr "假设样本数据中的 ``cost`` 和``reverse_cost``列表示:" +msgstr "假设样本数据中的 ``cost`` 和 ``reverse_cost`` 列表示:" msgid ":math:`1` when the edge exists in the graph" -msgstr "当边存在于图中时为:math:`1`" +msgstr "当边存在于图中时为 :math:`1`" msgid ":math:`-1` when the edge does not exist in the graph" -msgstr "当图中不存在边时为:math:`-1`" +msgstr "当图中不存在边时为 :math:`-1`" msgid "Using that information updating to the length of the geometries:" msgstr "使用该信息更新几何形状的长度:" @@ -6127,13 +6381,13 @@ msgid "Other datasets, can have a column with values like" msgstr "其他数据集可以有一列包含如下值" msgid "``FT`` vehicle flow on the direction of the geometry" -msgstr "``FT``几何方向上的车流" +msgstr "``FT`` 几何方向上的车流" msgid "``TF`` vehicle flow opposite of the direction of the geometry" msgstr "``TF`` 车流与几何方向相反" msgid "``B`` vehicle flow on both directions" -msgstr "``B``双向车流" +msgstr "``B`` 双向车流" msgid "Preparing a code column for the example:" msgstr "为示例准备代码列:" @@ -6178,9 +6432,8 @@ msgstr "要获取交叉边:" msgid "" "That information is correct, for example, when in terms of vehicles, is it a " -"tunnel or bride crossing over another road." -msgstr "" -"这些信息是正确的,例如,在车辆方面,它是一个穿越另一条道路的隧道或桥梁。" +"tunnel or bridge crossing over another road." +msgstr "这些信息是正确的,例如,就车辆而言,是隧道还是横跨另一条道路的桥梁。" msgid "It might be incorrect, for example:" msgstr "它可能是不正确的,例如:" @@ -6232,7 +6485,7 @@ msgid "" "the edges need to be `split `__." msgstr "" "对交叉点进行一一分析后,对于需要局部修复的交叉点,需要 `分割 `__边。" +"postgis.net/docs/ST_Split.html>`__ 边。" msgid "" "The new edges need to be added to the edges table, the rest of the " @@ -6255,7 +6508,7 @@ msgid "" "application. For example, if the edges have a trait **name**, then that " "column is to be copied." msgstr "" -"插入的列和计算方式取决于应用程序。 例如,如果边具有特征**名称**,则将复制该" +"插入的列和计算方式取决于应用程序。 例如,如果边具有特征 **名称** ,则将复制该" "列。" msgid "For pgRouting calculations" @@ -6264,12 +6517,12 @@ msgstr "用于 pgRouting 计算" msgid "" "**factor** based on the position of the intersection of the edges can be " "used to adjust the ``cost`` and ``reverse_cost`` columns." -msgstr "基于边相交位置的**因子**可用于调整``cost`` 和``reverse_cost`` 列。" +msgstr "基于边相交位置的 **因子** 可用于调整 ``cost`` 和 ``reverse_cost`` 列。" msgid "" -"Capacity information, used on the :doc:`flow-family` functions does not need " +"Capacity information, used in the :doc:`flow-family` functions does not need " "to change when splitting edges." -msgstr "分割边时, :doc:`flow-family` 函数上使用的容量信息不需要更改。" +msgstr "分割边时,在 :doc:`flow-family` 函数中使用的容量信息不需要改变。" msgid "Adding new vertices" msgstr "添加新的顶点" @@ -6346,13 +6599,13 @@ msgid "" "`14`." msgstr "" "使用 :doc:`pgr_findCloseEdges` 距离组件 :math:`1` 最近的顶点是顶点 :math:" -"`4` 。 距离顶点:math:`4`最近的边是 边 :math:`14`。" +"`4`。 距离顶点 :math:`4` 最近的边是 边 :math:`14`。" msgid "" "The ``edge`` can be used to connect the components, using the ``fraction`` " "information about the edge :math:`14` to split the connecting edge." msgstr "" -"``edge``可用于连接组件,利用边 :math:`14`的``fraction`` 信息来分割连接边。" +"``edge``可用于连接组件,利用边 :math:`14` 的``fraction`` 信息来分割连接边。" msgid "Connecting components" msgstr "连接组件" @@ -6387,7 +6640,7 @@ msgid "Contraction of a graph" msgstr "图的收缩" msgid "The graph can be reduced in size using :doc:`contraction-family`" -msgstr "可以使用:doc:`contraction-family`来减小图形的大小" +msgstr "可以使用 :doc:`contraction-family` 来减小图形的大小" msgid "" "When to contract will depend on the size of the graph, processing times, " @@ -6406,7 +6659,7 @@ msgid "" "A complete method on how to contract and how to use the contracted graph is " "described on :doc:`contraction-family`" msgstr "" -"有关如何收缩以及如何使用收缩图的完整方法在 :doc:`contraction-family`中进行了" +"有关如何收缩以及如何使用收缩图的完整方法在 :doc:`contraction-family` 中进行了" "描述" msgid "Dead ends" @@ -6472,7 +6725,7 @@ msgid "" "When there are many linear edges, to speed up, the :doc:`contraction-family` " "functions can be used to divide the problem." msgstr "" -"当线性边较多时,为了加快速度,可以使用:doc:`contraction-family`函数来划分问" +"当线性边较多时,为了加快速度,可以使用 :doc:`contraction-family` 函数来划分问" "题。" msgid "Function's structure" @@ -6490,12 +6743,12 @@ msgstr "\\ \\" msgid "pgr_(`Inner queries`_, **parameters**, [ ``Optional parameters``)" msgstr "" -"pgr_(`Inner queries`_, **parameters**, [ ``Optional parameters``)" +"pgr_(`Inner queries`_ , **parameters**, [``Optional parameters``)" msgid "" "`Inner queries`_: Are compulsory parameters that are ``TEXT`` strings " "containing SQL queries." -msgstr "`Inner queries`_:是强制参数,是包含 SQL 查询的``TEXT``字符串。" +msgstr "`Inner queries`_ :是强制参数,是包含 SQL 查询的 ``TEXT`` 字符串。" msgid "" "**parameters**: Additional compulsory parameters needed by the function." @@ -6504,7 +6757,7 @@ msgstr "**parameters**:函数需要的附加强制参数。" msgid "" "``Optional parameters``: Are non compulsory **named** parameters that have a " "default value when omitted." -msgstr "``Optional parameters``:是非强制命名参数,省略时具有默认值。" +msgstr "``Optional parameters`` :是非强制命名参数,省略时具有默认值。" msgid "" "The compulsory parameters are positional parameters, the optional parameters " @@ -6512,12 +6765,12 @@ msgid "" msgstr "强制参数是位置参数,可选参数是命名参数。" msgid "For example, for this :doc:`pgr_dijkstra` signature:" -msgstr "例如,对于这个 :doc:`pgr_dijkstra`签名:" +msgstr "例如,对于这个 :doc:`pgr_dijkstra` 签名:" msgid "" -"pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid** [, ``directed``])" +"pgr_dijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgstr "" -"pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid** [, ``directed``])" +"pgr_dijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgid "`Edges SQL`_:" msgstr "`Edges SQL`_:" @@ -6534,7 +6787,7 @@ msgstr "这是一个内部查询。" msgid "" "It has no name, so **Edges SQL** gives an idea of what kind of inner query " "needs to be used" -msgstr "它没有名称,因此 **Edges SQL**给出了需要使用哪种内部查询的想法" +msgstr "它没有名称,因此 **Edges SQL** 给出了需要使用哪种内部查询的想法" msgid "**start vid**:" msgstr "**start vid**:" @@ -6553,7 +6806,7 @@ msgstr "是第三个参数。" msgid "" "It has no name, so **end vid** gives an idea of what the third parameter's " "value should contain" -msgstr "它没有名称,因此 **end vid**给出了第三个参数的值应包含的内容" +msgstr "它没有名称,因此 **end vid** 给出了第三个参数的值应包含的内容" msgid "Is the fourth parameter." msgstr "是第四个参数。" @@ -6567,7 +6820,7 @@ msgstr "它有一个名字。" msgid "" "The full description of the parameters are found on the `Parameters`_ " "section of each function." -msgstr "参数的完整描述可以在每个函数的 `Parameters`_部分找到。" +msgstr "参数的完整描述可以在每个函数的 `Parameters`_ 部分找到。" msgid "Function's overloads" msgstr "函数的重载" @@ -6611,22 +6864,22 @@ msgid "When routing from:" msgstr "当路由来自:" msgid "From **one** starting vertex" -msgstr "从**一**起始顶点" +msgstr "从 **一** 起始顶点" msgid "to **one** ending vertex" -msgstr "到**一**结束顶点" +msgstr "到 **一** 结束顶点" msgid "One to Many" msgstr "一对多" msgid "to **many** ending vertices" -msgstr "到**多**结束顶点" +msgstr "到 **多** 结束顶点" msgid "Many to One" msgstr "多对一" msgid "From **many** starting vertices" -msgstr "从**多**起始顶点" +msgstr "从 **多** 起始顶点" msgid "Many to Many" msgstr "多对多" @@ -6635,10 +6888,10 @@ msgid "Combinations" msgstr "组合" msgid "From **many** different starting vertices" -msgstr "从**多个**不同的起始顶点" +msgstr "从 **多个** 不同的起始顶点" msgid "to **many** different ending vertices" -msgstr "到**多个**不同的结束顶点" +msgstr "到 **多个** 不同的结束顶点" msgid "Every tuple specifies a pair of a start vertex and an end vertex" msgstr "每个元组指定一对起始顶点和结束顶点" @@ -6647,13 +6900,14 @@ msgid "Users can define the combinations as desired." msgstr "用户可以根据需要定义组合。" msgid "Needs a `Combinations SQL`_" -msgstr "需要`Combinations SQL`_" +msgstr "需要 `Combinations SQL`_" +#, fuzzy msgid "" "There are several kinds of valid inner queries and also the columns returned " "are depending of the function. Which kind of inner query will depend on the " -"function(s) requirements. To simplify variety of types, **ANY-INTEGER** and " -"**ANY-NUMERICAL** is used." +"function's requirements. To simplify the variety of types, **ANY-INTEGER** " +"and **ANY-NUMERICAL** is used." msgstr "" "有多种有效的内部查询,返回的列也取决于函数。 哪种内部查询取决于函数的要求。 " "为了简化各种类型,使用 **ANY-INTEGER** 和 **ANY-NUMERICAL** 。" @@ -6668,7 +6922,7 @@ msgid "Some uncategorised functions" msgstr "一些未分类的函数" msgid "General without ``id``" -msgstr "一般没有``id``" +msgstr "一般没有 ``id``" msgid "General with (X,Y)" msgstr "通常带有(X,Y)" @@ -6691,19 +6945,19 @@ msgid "``y1``" msgstr "``y1``" msgid "Y coordinate of ``source`` vertex." -msgstr "``source``顶点的Y坐标。" +msgstr "``source`` 顶点的Y坐标。" msgid "``x2``" msgstr "``x2``" msgid "X coordinate of ``target`` vertex." -msgstr "``target``顶点的X坐标。" +msgstr "``target`` 顶点的X坐标。" msgid "``y2``" msgstr "``y2``" msgid "Y coordinate of ``target`` vertex." -msgstr "``target``顶点的Y坐标。" +msgstr "``target`` 顶点的Y坐标。" msgid "Flow" msgstr "流" @@ -6712,10 +6966,10 @@ msgid "Edges SQL for :doc:`flow-family`" msgstr "用于流数据系列 ( :doc:`flow-family`) 的Edges SQL" msgid "Edges SQL for the following functions of :doc:`flow-family`" -msgstr "Edges SQL 适用于:doc:`flow-family`的以下函数" +msgstr "Edges SQL 适用于 :doc:`flow-family` 的以下函数" -msgid "Used on combination signatures" -msgstr "用于组合签名" +msgid "Used in combination signatures" +msgstr "结合签名使用" msgid "Points SQL for" msgstr "用于Points SQL" @@ -6749,10 +7003,10 @@ msgid "SQL query as described." msgstr "如所述的 SQL 查询。" msgid "When ``true`` Graph is considered `Directed`" -msgstr "当为``true``时,图被视为`有向`图" +msgstr "当为 ``true`` 时,图被视为`有向`图" msgid "When ``false`` the graph is considered as Undirected." -msgstr "当为``false``时,图被视为无向图。" +msgstr "当为 ``false`` 时,图被视为无向图。" msgid "``strict``" msgstr "``strict``" @@ -6764,26 +7018,26 @@ msgid "When ``true`` if a path is missing stops and returns **EMPTY SET**" msgstr "当为 ``true`` 时,如果路径丢失,则停止并返回 **EMPTY SET**" msgid "When ``false`` ignores missing paths returning all paths found" -msgstr "当``false``忽略丢失的路径时,返回找到的所有路径" +msgstr "当 ``false`` 忽略丢失的路径时,返回找到的所有路径" msgid "``U_turn_on_edge``" msgstr "``U_turn_on_edge``" msgid "" "When ``true`` departing from a visited vertex will not try to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " +"the edge used to reach it. In other words, U turn using the edge with same " "identifier is allowed." msgstr "" -"当 为``true``时,从已访问的顶点出发,不会试图避免使用用于到达它的边。换句话" +"当 为 ``true`` 时,从已访问的顶点出发,不会试图避免使用用于到达它的边。换句话" "说,允许使用具有相同标识符的边来进行掉头。" msgid "" "When ``false`` when a departing from a visited vertex tries to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " +"the edge used to reach it. In other words, U turn using the edge with same " "identifier is used when no other path is found." msgstr "" -"当为``false``时,从已访问的顶点出发,尝试避免使用用于到达它的边。换句话说,只" -"有在找不到其他路径时才使用具有相同标识符的边来进行掉头。" +"当为 ``false`` 时,从已访问的顶点出发,尝试避免使用用于到达它的边。换句话说," +"只有在找不到其他路径时才使用具有相同标识符的边来进行掉头。" msgid "For the TRSP functions" msgstr "对于 TRSP 函数" @@ -6798,18 +7052,18 @@ msgid "" "There are several kinds of columns returned are depending of the function." msgstr "根据函数的不同,返回的列有多种。" -msgid "Return columns for a path" -msgstr "返回路径的列" +msgid "Result columns for a path" +msgstr "路径的结果列" -msgid "Used on functions that return one path solution" -msgstr "用于返回单路径解决方案的函数" +msgid "Used in functions that return one path solution" +msgstr "在返回一个路径解的函数中使用" msgid "" "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, " "agg_cost)``" msgstr "" -"返回``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, " -"agg_cost)``的集合" +"返回 ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, " +"agg_cost)`` 的集合" msgid "``path_seq``" msgstr "``path_seq``" @@ -6829,21 +7083,21 @@ msgid "" msgstr "结束顶点的标识符。 当查询中有多个结束顶点时返回。" msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``." -msgstr "从``start_vid``到 ``end_vid``路径中节点的标识符。" +msgstr "从 ``start_vid`` 到 ``end_vid`` 路径中节点的标识符。" msgid "" "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." msgstr "" -"用于从路径序列中的``node`` 到下一个节点的边的标识符。**-1** 表示路径的最后一" -"个节点。" +"用于从路径序列中的 ``node`` 到下一个节点的边的标识符。 **-1** 表示路径的最后" +"一个节点。" msgid "" "Cost to traverse from ``node`` using ``edge`` to the next node in the path " "sequence." -msgstr "从使用``edge``的 ``node`` 遍历到路径序列中的下一个节点的成本。" +msgstr "从使用 ``edge`` 的 ``node`` 遍历到路径序列中的下一个节点的成本。" -msgid "Used on functions the following:" +msgid "Used in functions the following:" msgstr "用于以下函数:" msgid ":doc:`pgr_withPoints`" @@ -6853,14 +7107,14 @@ msgid "" "Returns set of ``(seq, path_seq [, start_pid] [, end_pid], node, edge, cost, " "agg_cost)``" msgstr "" -"返回``(seq, path_seq [, start_pid] [, end_pid], node, edge, cost, " -"agg_cost)``的集合" +"返回 ``(seq, path_seq [, start_pid] [, end_pid], node, edge, cost, " +"agg_cost)`` 的集合" msgid "Relative position in the path." msgstr "路径中的相对位置。" msgid "**1** For the first row of the path." -msgstr "**1 **对于路径的第一行。" +msgstr "**1** 对于路径的第一行。" msgid "``start_pid``" msgstr "``start_pid``" @@ -6874,8 +7128,8 @@ msgstr "当正数时是起始顶点的标识符。" msgid "When negative is the identifier of the starting point." msgstr "当负数时是起点的标识符。" -msgid "Returned on `Many to One`_ and `Many to Many`_" -msgstr "返回`多对一`_和`多对多`_" +msgid "Returned on `Many to One`_ and `Many to Many`_" +msgstr "`多对一`_ 和 `多对多`_ 的返回值" msgid "``end_pid``" msgstr "``end_pid``" @@ -6890,10 +7144,10 @@ msgid "When negative is the identifier of the ending point." msgstr "当负数时是终点的标识符。" msgid "Returned on `One to Many`_ and `Many to Many`_" -msgstr "返回`一对多`_和`多对多`_" +msgstr "返回 `一对多`_ 和 `多对多`_" msgid "Identifier of the node in the path from ``start_pid`` to ``end_pid``." -msgstr "从``start_pid`` 到``end_pid``路径中节点的标识符。" +msgstr "从 ``start_pid`` 到 ``end_pid`` 路径中节点的标识符。" msgid "When positive is the identifier of the a vertex." msgstr "当正数时是顶点的标识符。" @@ -6904,10 +7158,10 @@ msgstr "当负数时是a点的标识符。" msgid "" "Identifier of the edge used to go from ``node`` to the next node in the path " "sequence." -msgstr "用于从路径序列中的 ``node``到下一个节点的边的标识符。" +msgstr "用于从路径序列中的 ``node`` 到下一个节点的边的标识符。" msgid "**-1** for the last row of the path." -msgstr "**-1 **表示路径的最后一行。" +msgstr "**-1** 表示路径的最后一行。" msgid "**0** For the first row of the path." msgstr "**0** 表示路径的第一行。" @@ -6918,7 +7172,7 @@ msgstr ":doc:`pgr_dijkstraNear`" msgid "" "Returns ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``" msgstr "" -"返回``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``" +"返回 ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)``" msgid "Identifier of the starting vertex of the current path." msgstr "当前路径起始顶点的标识符。" @@ -6940,7 +7194,7 @@ msgid "" "cost, agg_cost)``" msgstr "" "``(seq, path_id, path_seq [, start_vid] [, end_vid], node, edge, cost, " -"agg_cost)``集合" +"agg_cost)`` 集合" msgid "``path_id``" msgstr "``path_id``" @@ -6950,7 +7204,7 @@ msgstr "路径标识符。" msgid "" "Has value **1** for the first of a path from ``start_vid`` to ``end_vid``." -msgstr "从``start_vid`` 到 ``end_vid``的第一个路径的值为** 1**。" +msgstr "从 ``start_vid`` 到 ``end_vid`` 的第一个路径的值为 **1** 。" msgid "Non selective for multiple paths" msgstr "多路径非选择性" @@ -6965,8 +7219,8 @@ msgstr "" "返回集合``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, " "agg_cost)``" -msgid "Return columns for cost functions" -msgstr "返回成本函数的列" +msgid "Result columns for cost functions" +msgstr "成本函数结果列" msgid "Used in the following" msgstr "用于以下函数" @@ -6976,17 +7230,17 @@ msgid "" "for a Point." msgstr "当 start_vid 或 end_vid 列具有负值时,标识符用于点。" -msgid "Return columns for flow functions" -msgstr "流函数的返回列" +msgid "Result columns for flow functions" +msgstr "流量函数的结果列" msgid "Edges SQL for the following" msgstr "Edges SQL 适用于以下内容" -msgid "Return columns for spanning tree functions" -msgstr "返回生成树函数的列" +msgid "Result columns for spanning tree functions" +msgstr "生成树函数的结果列" -msgid "Returns SET OF ``(edge, cost)``" -msgstr "返回集合``(edge, cost)``" +msgid "Returns set of ``(edge, cost)``" +msgstr "返回集合 ``(edge, cost)``" msgid "Cost to traverse the edge." msgstr "穿越边的成本。" @@ -7015,7 +7269,7 @@ msgid "Wiki" msgstr "维基" msgid "" -"Edit an existing `pgRouting Wiki `__ page." msgstr "" "编辑现有的 `pgRouting 维基 `__ " @@ -7028,7 +7282,8 @@ msgid "" "Create a page on the `pgRouting Wiki `__" msgstr "" -"在 `pgRouting 维基`__上创建页面" +"在 `pgRouting 维基 `__ 上创建页" +"面" msgid "Give the title an appropriate name" msgstr "给标题起一个合适的名称" @@ -7079,16 +7334,16 @@ msgid "" "wiki/Notes-on-Download%2C-Installation-and-building-pgRouting>`__" msgstr "" "有关下载和安装适用于不同操作系统的二进制文件的说明、本文档中未包含的其他注释" -"和更正,可以在 `安装维基`__中找到" +"和更正,可以在 `安装维基 `__ 中找到" msgid "" "To use pgRouting PostGIS needs to be installed, please read the information " "about installation in this `Install Guide `__" msgstr "" -"使用pgRouting需要安装PostGIS,请阅读本`安装指南 `__中有关安装的信息" +"使用pgRouting需要安装PostGIS,请阅读本 `安装指南 `__ 中有关安装的信息" msgid "Short Version" msgstr "简洁版本" @@ -7114,9 +7369,6 @@ msgstr "" "pgRouting 最新版本可以在 https://github.com/pgRouting/pgrouting/releases/" "latest 中找到" -msgid "wget" -msgstr "wget" - msgid "To download this release:" msgstr "要下载此版本:" @@ -7124,7 +7376,7 @@ msgid "" "Go to :ref:`install-short` for more instructions on extracting tar ball and " "compiling pgRouting." msgstr "" -"转到:ref:`install-short`以获取有关提取 tar 包和编译 pgRouting 的更多说明。" +"转到 :ref:`install-short` 以获取有关提取 tar 包和编译 pgRouting 的更多说明。" msgid "git" msgstr "git" @@ -7162,9 +7414,9 @@ msgid "Upgrading the database" msgstr "升级数据库" msgid "" -"To upgrade pgRouting in the database to version 3.6.0 use the following " +"To upgrade pgRouting in the database to version 3.7.0 use the following " "command:" -msgstr "要将数据库中的 pgRouting 升级到版本 3.5.1,请使用以下命令:" +msgstr "要将数据库中的 pgRouting 升级到版本3.7.0,请使用以下命令:" msgid "" "More information can be found in https://www.postgresql.org/docs/current/sql-" @@ -7297,7 +7549,7 @@ msgid "" "To get additional details on the flags associated with ``createuser`` below " "given command can be used" msgstr "" -"要获取与下面的 ``createuser``相关的标志的更多详细信息,可以使用给定的命令" +"要获取与下面的 ``createuser`` 相关的标志的更多详细信息,可以使用给定的命令" msgid "Creating Database in PostgreSQL" msgstr "在 PostgreSQL 中创建数据库" @@ -7321,7 +7573,7 @@ msgid "Configuring" msgstr "配置" msgid "pgRouting uses the `cmake` system to do the configuration." -msgstr "pgRouting 使用 `cmake`系统进行配置。" +msgstr "pgRouting 使用 `cmake` 系统进行配置。" msgid "The build directory is different from the source directory" msgstr "构建目录与源目录不同" @@ -7404,7 +7656,7 @@ msgid "Using ``make`` to build the code and the documentation" msgstr "使用 ``make`` 构建代码和文档" msgid "The following instructions start from *path/to/pgrouting/build*" -msgstr "以下说明从*path/to/pgrouting/build*开始" +msgstr "以下说明从 *path/to/pgrouting/build* 开始" msgid "" "We have tested on several platforms, For installing or reinstalling all the " @@ -7412,7 +7664,7 @@ msgid "" msgstr "我们已经在多个平台上进行了测试,安装或重新安装需要所有步骤。" msgid "The sql signatures are configured and build in the ``cmake`` command." -msgstr "SQL签名是在``cmake``命令中配置和构建的。" +msgstr "SQL签名是在 ``cmake`` 命令中配置和构建的。" msgid "MinGW on Windows" msgstr "Windows 上的 MinGW" @@ -7421,7 +7673,7 @@ msgid "Linux" msgstr "Linux" msgid "The following instructions start from *path/to/pgrouting*" -msgstr "以下说明从 *path/to/pgrouting*开始" +msgstr "以下说明从 *path/to/pgrouting* 开始" msgid "" "To remove the build when the configuration changes, use the following code:" @@ -7434,10 +7686,10 @@ msgid "Testing" msgstr "测试" msgid "Currently there is no :code:`make test` and testing is done as follows" -msgstr "目前没有:code:`make test`,测试如下" +msgstr "目前没有 :code:`make test`,测试如下" msgid "The following instructions start from *path/to/pgrouting/*" -msgstr "以下指令从*path/to/pgrouting/*开始" +msgstr "以下指令从 *path/to/pgrouting/* 开始" msgid "" "pgRouting is an extension of `PostGIS `__ and " @@ -7451,11 +7703,12 @@ msgid "" msgstr "" "pgRouting 是 `PostGIS `__ 和 `PostgreSQL `__ 地理空间数据库的扩展,并添加了路由和其他网络分析功能。 " -"pgRouting的前身——pgDijkstra,由`Camptocamp `__的" +"pgRouting的前身——pgDijkstra,由`Camptocamp `__ 的" "Sylvain Pasche编写,后来被Orkney扩展并更名为pgRouting。 该项目现在得到了 " -"`Georepublic `__、`Paragon Corporation `__ 、`Paragon Corporation `__ 和广大用户社区的支持和维护。" +#, fuzzy msgid "" "pgRouting is part of `OSGeo Community Projects `__ from the `OSGeo Foundation `__ `OSGeo 社区项目 " "`__ 的一部分,并包含在 " -"`OSGeoLive `__中。" +"`OSGeoLive `__ 中。" msgid "Licensing" msgstr "许可" @@ -7481,8 +7734,8 @@ msgid "" "Most features of pgRouting are available under `GNU General Public License " "v2.0 or later `_." msgstr "" -"pgRouting 的大多数功能都可以在` GNU 通用公共许可证 v2.0 或更高版本`_下使用。" +"pgRouting 的大多数功能都可以在` GNU 通用公共许可证 v2.0 或更高版本 `_ 下使用。" msgid "Boost Software License - Version 1.0" msgstr "Boost 软件许可证 - 版本 1.0" @@ -7491,7 +7744,7 @@ msgid "" "Some Boost extensions are available under `Boost Software License - Version " "1.0 `_." msgstr "" -"一些 Boost 扩展可根据` Boost 软件许可证 - 版本 1.0 获得`_。" msgid "MIT-X License" @@ -7519,25 +7772,22 @@ msgstr "贡献者" msgid "This Release Contributors" msgstr "此版本贡献者" -msgid "Individuals in this release (in alphabetical order)" -msgstr "本版本的个人贡献者 (按字母顺序)" +msgid "Individuals in this release v3.7.x (in alphabetical order)" +msgstr "在此版本 v3.7.x 中的个人贡献者(按字母顺序排列)" -msgid "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, " -"Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, " -"Virginia Vergara, Yige Huang" -msgstr "" -"Aniket Agarwal, Aryan Gupta, Ashish Kumar, Cayetano Benavent, Daniel Kastl, " -"Nitish Chauhan, Rajat Shinde, Regina Obe, Shobhit Chaurasia, Swapnil Joshi, " -"Virginia Vergara, Yige Huang" +msgid "(Alphabetical order)" +msgstr "(按字母顺序排列)" + +msgid "Regina Obe, Vicky Vergara" +msgstr "Regina Obe, Vicky Vergara" msgid "" "And all the people that give us a little of their time making comments, " -"finding issues, making pull requests etc. in any of our products: " +"finding issues, making pull requests etc. in any of our products: " "osm2pgrouting, pgRouting, pgRoutingLayer, workshop." msgstr "" -"并且所有那些花一点时间为我们的任何产品提供评论、发现问题、提交请求等的人们," -"包括 osm2pgrouting、pgRouting、pgRoutingLayer 和 workshop。" +"还有所有为我们的产品(osm2pgrouting、pgRouting、pgRoutingLayer、workshop)提" +"供意见、发现问题、提出拉取请求等的人们。" msgid "Corporate Sponsors in this release (in alphabetical order)" msgstr "本次发布中的企业赞助商(按字母顺序排列)" @@ -7548,8 +7798,11 @@ msgid "" msgstr "" "这些是为 pgRouting 项目贡献了开发人员时间、托管或直接货币资金的公司实体:" -msgid "`Georepublic `__" -msgstr "`Georepublic `__" +msgid "`OSGeo `__" +msgstr "`OSGeo `__" + +msgid "`OSGeo UK `__" +msgstr "`OSGeo UK `__" msgid "`Google Summer of Code `__" msgstr "`Google Summer of Code `__" @@ -7614,6 +7867,12 @@ msgstr "Leopark" msgid "Orkney" msgstr "Orkney" +msgid "OSGeo" +msgstr "OSGeo" + +msgid "OSGeo UK" +msgstr "OSGeo UK" + msgid "Paragon Corporation" msgstr "Paragon Corporation" @@ -7641,12 +7900,8 @@ msgstr "PostGIS 项目网站 https://postgis.net 上的 PostGIS 扩展。" msgid "Boost C++ source libraries at https://www.boost.org." msgstr "Boost C++ 源库位于 https://www.boost.org。" -msgid "" -"The Migration guide from 2.6 can be found at https://github.com/pgRouting/" -"pgrouting/wiki/Migration-Guide." -msgstr "" -"2.6 版的迁移指南可以在 https://github.com/pgRouting/pgrouting/wiki/Migration-" -"Guide 找到。" +msgid ":doc:`migration`" +msgstr ":doc:`migration`" msgid "pgr_KSP" msgstr "pgr_KSP" @@ -7660,14 +7915,14 @@ msgstr "可用性" msgid "Version 3.6.0" msgstr "版本3.6.0" -msgid "Return columns standarized to: |nksp-result|" -msgstr "返回标准化后的列:|nksp-result|" +msgid "Result columns standarized to: |nksp-result|" +msgstr "结果列标准化为 |nksp-result|" msgid "``pgr_ksp`` (One to One)" msgstr "``pgr_ksp`` (一对一)" msgid "Added ``start_vid`` and ``end_vid`` result columns." -msgstr "增加``start_vid``和``end_vid``结果列。" +msgstr "增加 ``start_vid`` 和 ``end_vid`` 结果列。" msgid "New overload functions:" msgstr "新的重载函数:" @@ -7735,8 +7990,8 @@ msgstr "pgr_KSP(`Edges SQL`_, `Combinations SQL`_, **K**, [**options**])" msgid "**options:** ``[directed, heap_paths]``" msgstr "**options:** ``[directed, heap_paths]``" -msgid "RETURNS SET OF |nksp-result|" -msgstr "RETURNS SET OF |nksp-result|" +msgid "Returns set of |nksp-result|" +msgstr "返回集合 |nksp-result|" msgid "OR EMPTY SET" msgstr "OR EMPTY SET" @@ -7745,23 +8000,24 @@ msgid "Example" msgstr "示例" msgid "Get 2 paths from :math:`6` to :math:`17` on a directed graph." -msgstr "在有向图上获取从 :math:`6` 到 :math:`17`的 2 条路径。" +msgstr "在有向图上获取从 :math:`6` 到 :math:`17` 的 2 条路径。" msgid "" "Get 2 paths from vertex :math:`6` to vertices :math:`\\{10, 17\\}` on a " "directed graph." -msgstr "获取有向图上从顶点:math:`6`到顶点 :math:`\\{10, 17\\}`的 2 条路径。" +msgstr "获取有向图上从顶点 :math:`6` 到顶点 :math:`\\{10, 17\\}` 的 2 条路径。" msgid "" "Get 2 paths from vertices :math:`\\{6, 1\\}` to vertex :math:`17` on a " "directed graph." -msgstr "在有向图中得到从顶点 :math:`\\{6, 1\\}`到顶点 :math:`17`的2条路经。" +msgstr "在有向图中得到从顶点 :math:`\\{6, 1\\}` 到顶点 :math:`17` 的2条路经。" msgid "" "Get 2 paths vertices :math:`\\{6, 1\\}` to vertices :math:`\\{10, 17\\}` on " "a directed graph." msgstr "" -"在有向图中得到从顶点 :math:`\\{6, 1\\}`到顶点 :math:`\\{10, 17\\}`的2条路经。" +"在有向图中得到从顶点 :math:`\\{6, 1\\}` 到顶点 :math:`\\{10, 17\\}` 的2条路" +"经。" msgid "Using a combinations table on an directed graph" msgstr "在有向图上使用组合表" @@ -7788,7 +8044,7 @@ msgid "``heap_paths``" msgstr "``heap_paths``" msgid "When ``false`` Returns at most K paths." -msgstr "当``false``时返回最多 K 条路径。" +msgstr "当 ``false`` 时返回最多 K 条路径。" msgid "When ``true`` all the calculated paths while processing are returned." msgstr "当 ``true`` 时,返回处理时的所有计算路径。" @@ -7797,30 +8053,27 @@ msgid "" "Roughly, when the shortest path has ``N`` edges, the heap will contain about " "than ``N * K`` paths for small value of ``K`` and ``K > 5``." msgstr "" -"粗略地说,当最短路径有 ``N`` 个边时,对于``K``值较小且``K > 5``,堆将包含大" +"粗略地说,当最短路径有 ``N`` 个边时,对于``K``值较小且``K > 5`` ,堆将包含大" "约 ``N * K`` 条路径。" -msgid "Returns set of |nksp-result|" -msgstr "返回集合|nksp-result|" - msgid "" "Has value **1** for the first of a path from ``start_vid`` to ``end_vid``" -msgstr "从``start_vid``到 ``end_vid``的第一个路径的值为 **1**" +msgstr "从 ``start_vid`` 到 ``end_vid`` 的第一个路径的值为 **1**" msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``" -msgstr "从``start_vid`` 到 ``end_vid``路径中节点的标识符" +msgstr "从 ``start_vid`` 到 ``end_vid`` 路径中节点的标识符" msgid ":math:`0` for the last ``node`` of the path." -msgstr ":math:`0`为路径的最后一个``node``。" +msgstr ":math:`0` 为路径的最后一个 ``node``。" msgid "Aggregate cost from **start vid** to ``node``." -msgstr "从 **start vid**到``node``的总成本。" +msgstr "从 **start vid** 到 ``node`` 的总成本。" msgid "Additional Examples" msgstr "其他示例" msgid "Get 2 paths from :math:`6` to :math:`17` on an undirected graph" -msgstr "在无向图中获取从 :math:`6`到:math:`17`的2条路径" +msgstr "在无向图中获取从 :math:`6` 到 :math:`17` 的2条路径" msgid "Also get the paths in the heap." msgstr "还获取堆中的路径。" @@ -7831,7 +8084,7 @@ msgstr "使用无向图上的组合表获取 2 条路径" msgid "" "Get 2 paths from vertices :math:`\\{6, 1\\}` to vertex :math:`17` on a " "undirected graph." -msgstr "在无向图中获取从顶点 :math:`\\{6, 1\\}`到顶点:math:`17`的2条路径。" +msgstr "在无向图中获取从顶点 :math:`\\{6, 1\\}` 到顶点 :math:`17` 的2条路径。" msgid "https://en.wikipedia.org/wiki/K_shortest_path_routing" msgstr "https://en.wikipedia.org/wiki/K_shortest_path_routing" @@ -7852,8 +8105,8 @@ msgid "" "Metric Algorithm from `Boost library `__" msgstr "" -"`Boost库 `__中的" -"度量算法" +"`Boost库 `__ 中" +"的度量算法" msgid "Simulated Annealing Algorithm no longer supported" msgstr "Simulated Annealing算法不再受支持" @@ -7875,10 +8128,11 @@ msgid "" "Can be Used with :doc:`costMatrix-category` functions preferably with " "`directed => false`." msgstr "" -"可以与:doc:`costMatrix-category` 函数一起使用,最好使用 `directed => false`。" +"可以与 :doc:`costMatrix-category` 函数一起使用,最好使用 `directed => " +"false`。" msgid "With ``directed => false``" -msgstr "使用``directed => false``" +msgstr "使用 ``directed => false``" msgid "Will generate a graph that:" msgstr "将生成一个图:" @@ -7893,7 +8147,7 @@ msgid "all traveling costs on edges obey the triangle inequality." msgstr "所有边上的旅行成本都遵循三角不等式。" msgid "When ``start_vid = 0 OR end_vid = 0``" -msgstr "当``start_vid = 0 OR end_vid = 0``" +msgstr "当 ``start_vid = 0 OR end_vid = 0``" msgid "" "The solutions generated is garanteed to be *twice as long as the optimal " @@ -7908,16 +8162,16 @@ msgid "" "as long as the optimal tour, due to the fact that `end_vid` is forced to be " "in a fixed position." msgstr "" -"在最坏情况下,**不能保证**解决方案将是最优路径的两倍长,因为 `end_vid` 被强制" -"设置在固定位置。" +"在最坏情况下, **不能保证** 解决方案将是最优路径的两倍长,因为 `end_vid` 被强" +"制设置在固定位置。" msgid "With ``directed => true``" -msgstr "当``directed => true``" +msgstr "当 ``directed => true``" msgid "" "It is **not garanteed** that the solution will be, in the worse case, twice " "as long as the optimal tour" -msgstr "**不能保证**在最坏情况下解决方案将是最优路径的两倍长" +msgstr "**不能保证** 在最坏情况下解决方案将是最优路径的两倍长" msgid "is directed" msgstr "有向" @@ -7935,16 +8189,16 @@ msgstr "由于需要无向图,有向图变换如下:" msgid "" "edges `(u, v)` and `(v, u)` is considered to be the same edge (denoted `(u, " "v)`" -msgstr "边 `(u, v)`和 `(v, u)`被认为是相同的边(表示为 `(u, v)`" +msgstr "边 `(u, v)` 和 `(v, u)`被认为是相同的边(表示为 `(u, v)`" msgid "if ``agg_cost`` differs between one or more instances of edge `(u, v)`" msgstr "如果 ``agg_cost`` 在边`(u, v)` 的一个或多个实例之间不同" msgid "" "The minimum value of the ``agg_cost`` all instances of edge `(u, v)` is " -"going to be considered as the ``agg_cost`` of edge `(u, v)`" +"going to be considered as the ``agg_cost`` of edge `(u, v)`" msgstr "" -"边 `(u, v)` 的所有实例的 ``agg_cost`` 最小值将被视为边`(u, v)`的 " +"边 `(u, v)` 的所有实例的 ``agg_cost`` 最小值将被视为边 `(u, v)` 的 " "``agg_cost``" msgid "" @@ -7961,14 +8215,14 @@ msgstr "缺失值将使用 dijkstra 算法计算。" msgid "pgr_TSP(`Matrix SQL`_, ``[start_id, end_id]``)" msgstr "pgr_TSP(`Matrix SQL`_, ``[start_id, end_id]``)" -msgid "RETURNS SET OF |tsp-result|" -msgstr "RETURNS SET OF |tsp-result|" +msgid "Returns set of |tsp-result|" +msgstr "返回 |tsp-result| 的集合" msgid "OR EMTPY SET" msgstr "OR EMTPY SET" msgid "Using :doc:`pgr_dijkstraCostMatrix` to generate the matrix information" -msgstr "使用:doc:`pgr_dijkstraCostMatrix` 生成矩阵信息" +msgstr "使用 :doc:`pgr_dijkstraCostMatrix` 生成矩阵信息" msgid "" "**Line 4** Vertices :math:`\\{2, 4, 13, 14\\}` are not included because they " @@ -7977,7 +8231,7 @@ msgstr "" "**Line 4** 顶点 :math:`\\{2, 4, 13, 14\\}` 不包括在内,因为它们未连接。" msgid "`Matrix SQL`_ as described below" -msgstr "`Matrix SQL`_如下所述" +msgstr "`Matrix SQL`_ 如下所述" msgid "``ANY-INTEGER``" msgstr "``ANY-INTEGER``" @@ -7989,7 +8243,7 @@ msgid "Cost for going from start_vid to end_vid" msgstr "从 start_vid 到 end_vid 的成本" msgid "Returns SET OF ``(seq, node, cost, agg_cost)``" -msgstr "返回集合``(seq, node, cost, agg_cost)``" +msgstr "返回集合 ``(seq, node, cost, agg_cost)``" msgid "Row sequence." msgstr "行顺序。" @@ -8009,13 +8263,13 @@ msgid "``0`` for the last row in the tour sequence." msgstr "``0`` 表示游览序列中的最后一行。" msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node." -msgstr "从``seq = 1``的 ``node``到当前节点的总成本。" +msgstr "从 ``seq = 1`` 的 ``node`` 到当前节点的总成本。" msgid "``0`` for the first row in the tour sequence." -msgstr "``0``表示游览序列中的第一行。" +msgstr "``0`` 表示游览序列中的第一行。" msgid "Start from vertex :math:`1`" -msgstr "从顶点 :math:`1`开始" +msgstr "从顶点 :math:`1` 开始" msgid "**Line 6** ``start_vid => 1``" msgstr "**Line 6** ``start_vid => 1``" @@ -8033,7 +8287,7 @@ msgstr "" "**Line 4** 通过未在查询中包括 ``pointsOfInterset`` 中的``side`` 信息而被忽略" msgid "**Line 6** Generating an asymetric matrix with ``directed => true``" -msgstr "**Line 6** 使用``directed => true``生成一个非对称矩阵" +msgstr "**Line 6** 使用 ``directed => true`` 生成一个非对称矩阵" msgid "" ":math:`min(agg\\_cost(u, v), agg\\_cost(v, u))` is going to be considered as " @@ -8090,7 +8344,7 @@ msgid "Name change from pgr_eucledianTSP" msgstr "pgr_eucledianTSP 的名称更改" msgid "New **Official** function" -msgstr "**官方**新函数" +msgstr "**官方** 新函数" msgid "" "Any duplicated identifier will be ignored. The coordinates that will be kept" @@ -8107,8 +8361,9 @@ msgid "" "The coordinates are quite different for the same identifier, for example ::" msgstr "对于相同的标识符,坐标有很大不同,例如::" +#, fuzzy msgid "pgr_TSPeuclidean(`Coordinates SQL`_, ``[start_id, end_id]``)" -msgstr "pgr_TSPeuclidean(`Coordinates SQL`_, ``[start_id, end_id]``)" +msgstr "pgr_TSPeuclidean(`Coordinates SQL`_ , ``[start_id, end_id]``)" msgid "With default values" msgstr "有默认值" @@ -8144,7 +8399,7 @@ msgid "" "uwaterloo.ca/tsp/world/wi29.tsp>`__" msgstr "" "此示例展示了如何使用Waterloo大学的 `示例数据 `__(使用西撒哈拉 29 个城市的数据集 `__ (使用西撒哈拉 29 个城市的数据集 `__)进行性能测试" msgid "Creating a table for the data and storing the data" @@ -8169,11 +8424,11 @@ msgstr "视觉效果" msgid "" "Visualy, The first image is the `optimal solution `__ and the second image is the solution " +"uwaterloo.ca/tsp/world/witour.html>`__ and the second image is the solution " "obtained with ``pgr_TSPeuclidean``." msgstr "" "从视觉上看,第一幅图像是 `最优解 `__ ,第二幅图像是使用 ``pgr_TSPeuclidean``获得的解。" +"witour.html>`__ ,第二幅图像是使用 ``pgr_TSPeuclidean`` 获得的解。" msgid ":doc:`sampledata` network." msgstr ":doc:`sampledata` 网络。" @@ -8195,13 +8450,13 @@ msgid "``pgr_aStar`` (`One to Many`_) added ``end_vid`` column." msgstr "``pgr_aStar`` (`一对多`_) 增加 ``end_vid`` 列." msgid "``pgr_aStar`` (`Many to One`_) added ``start_vid`` column." -msgstr "``pgr_aStar`` (`多对一`_) 增加 ``start_vid``列." +msgstr "``pgr_aStar`` (`多对一`_) 增加 ``start_vid`` 列." msgid "Version 3.2.0" msgstr "版本3.2.0" msgid "New **proposed** signature:" -msgstr "新 **拟议**的签名:" +msgstr "新 **拟议** 的签名:" msgid "``pgr_aStar`` (`Combinations`_)" msgstr "``pgr_aStar`` (`组合`_)" @@ -8210,7 +8465,7 @@ msgid "Version 2.4.0" msgstr "版本2.4.0" msgid "New **Proposed** signatures:" -msgstr "新**拟议**签名:" +msgstr "新 **拟议** 签名:" msgid "``pgr_aStar`` (`One to Many`_)" msgstr "``pgr_aStar`` (`一对多`_)" @@ -8222,28 +8477,16 @@ msgid "``pgr_aStar`` (`Many to Many`_)" msgstr "``pgr_aStar`` (`多对多`_)" msgid "Signature change on ``pgr_astar`` (`One to One`_)" -msgstr "签名更改``pgr_astar`` (`一对一`_)" +msgstr "签名更改 ``pgr_astar`` (`一对一`_)" msgid "**Official** ``pgr_aStar`` (`One to One`_)" -msgstr "**官方**``pgr_aStar`` (`一对一`_)" +msgstr "**官方** ``pgr_aStar`` (`一对一`_)" msgid "" "The results are equivalent to the union of the results of the `pgr_aStar(` " "`One to One`_ `)` on the:" msgstr "结果相当于 `pgr_aStar(` `一对一`_ `)` 结果的并集:" -msgid "`pgr_aStar(` `One to Many`_ `)`" -msgstr "`pgr_aStar(` `一对多`_ `)`" - -msgid "`pgr_aStar(` `Many to One`_ `)`" -msgstr "`pgr_aStar(` `多对一`_ `)`" - -msgid "`pgr_aStar(` `Many to Many`_ `)`" -msgstr "`pgr_aStar(` `多对多`_ `)`" - -msgid "`pgr_aStar(` `Combinations`_ `)`" -msgstr "`pgr_aStar(` `组合`_ `)`" - msgid "pgr_aStar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" msgstr "pgr_aStar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -8262,8 +8505,8 @@ msgstr "pgr_aStar(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgid "**options:** ``[directed, heuristic, factor, epsilon]``" msgstr "**options:** ``[directed, heuristic, factor, epsilon]``" -msgid "RETURNS SET OF |short-generic-result|" -msgstr "RETURNS SET OF |short-generic-result|" +msgid "Returns set of |short-generic-result|" +msgstr "Returns set of |short-generic-result|" msgid "Optional parameters are `named parameters` and have a default value." msgstr "可选参数是`命名参数` 并具有默认值。" @@ -8272,32 +8515,33 @@ msgid "" "From vertex :math:`6` to vertex :math:`12` on a **directed** graph with " "heuristic :math:`2`" msgstr "" -"在具有heuristic :math:`2` 的**有向**图上,从顶点 :math:`6` 到顶点 :math:`12`" +"在具有heuristic :math:`2` 的 **有向** 图上,从顶点 :math:`6` 到顶点 :math:" +"`12`" msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 12\\}` on a **directed** " "graph with heuristic :math:`3` and factor :math:`3.5`" msgstr "" -"在具有heuristic :math:`3` 和factor :math:`3.5` 的**有向**图上,从顶点 :math:" -"`6` 到顶点 :math:`\\{10, 12\\}`" +"在具有heuristic :math:`3` 和factor :math:`3.5` 的 **有向** 图上,从顶点 :" +"math:`6` 到顶点 :math:`\\{10, 12\\}`" msgid "" "From vertices :math:`\\{6, 8\\}` to vertex :math:`10` on an **undirected** " "graph with heuristic :math:`4`" msgstr "" -"在具有heuristic :math:`4` 的**无向**图上,从顶点 :math:`\\{6, 8\\}` 到顶点 :" -"math:`10`" +"在具有heuristic :math:`4` 的 **无向** 图上,从顶点 :math:`\\{6, 8\\}` 到顶" +"点 :math:`10`" msgid "" "From vertices :math:`\\{6, 8\\}` to vertices :math:`\\{10, 12\\}` on a " "**directed** graph with factor :math:`0.5`" msgstr "" -"在具有factor :math:`0.5` 的**有向**图上,从顶点 :math:`\\{6, 8\\}` 到顶点 :" +"在具有factor :math:`0.5` 的 **有向** 图上,从顶点 :math:`\\{6, 8\\}` 到顶点 :" "math:`\\{10, 12\\}`" msgid "" "Using a combinations table on a **directed** graph with factor :math:`0.5`." -msgstr "在**有向**图上使用组合表,且使用factor :math:`0.5`。" +msgstr "在 **有向** 图上使用组合表,且使用factor :math:`0.5`。" msgid "Example 1" msgstr "示例1" @@ -8309,7 +8553,7 @@ msgid "Example 2" msgstr "示例2" msgid "Making **start vids** the same as **end vids**." -msgstr "使 **start vids**与**end vids**相同。" +msgstr "使 **start vids** 与 **end vids** 相同。" msgid "Example 3" msgstr "示例3" @@ -8320,19 +8564,20 @@ msgstr "手动指定的顶点组合。" msgid "pgr_aStarCost" msgstr "pgr_aStarCost" +#, fuzzy msgid "" -"``pgr_aStarCost`` - Total cost of the shortest path(s) using the A* " -"algorithm." +"``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm." msgstr "``pgr_aStarCost`` -使用 A* 算法的最短路径的总成本。" msgid "``pgr_aStarCost`` (`Combinations`_)" msgstr "``pgr_aStarCost`` (`组合`_)" msgid "New **proposed** function" -msgstr "新**拟议**函数" +msgstr "新 **拟议** 函数" +#, fuzzy msgid "" -"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path(s) " +"The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path " "using the A* algorithm." msgstr "``pgr_aStarCost`` 函数使用 A* 算法汇总最短路径的成本。" @@ -8348,10 +8593,10 @@ msgid "The returned values are ordered in ascending order:" msgstr "返回值按升序排列:" msgid "`start_vid` ascending" -msgstr "`start_vid`升序" +msgstr "`start_vid` 升序" msgid "`end_vid` ascending" -msgstr "`end_vid`升序" +msgstr "`end_vid` 升序" msgid "pgr_aStarCost(`Edges SQL`_, **start vid**, **end vid**, [**options**])" msgstr "pgr_aStarCost(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -8372,8 +8617,8 @@ msgstr "" msgid "pgr_aStarCost(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgstr "pgr_aStarCost(`Edges SQL`_, `Combinations SQL`_, [**options**])" -msgid "RETURNS SET OF |matrix-result|" -msgstr "RETURNS SET OF |matrix-result|" +msgid "Returns set of |matrix-result|" +msgstr "返回 |matrix-result| 的集合" msgid "pgr_aStarCost(`Edges SQL`_, **start vids**, **end vids**, [options])" msgstr "pgr_aStarCost(`Edges SQL`_, **start vids**, **end vids**, [options])" @@ -8384,10 +8629,10 @@ msgstr "``pgr_aStarCostMatrix``" msgid "" "``pgr_aStarCostMatrix`` - Calculates the a cost matrix using :doc:" "`pgr_aStar`." -msgstr "``pgr_aStarCostMatrix`` -使用:doc:`pgr_aStar` 计算成本矩阵。" +msgstr "``pgr_aStarCostMatrix`` - 使用 :doc:`pgr_aStar` 计算成本矩阵。" msgid "Using internaly the :doc:`pgr_aStar` algorithm" -msgstr "内部使用 :doc:`pgr_aStar`算法" +msgstr "内部使用 :doc:`pgr_aStar` 算法" msgid "Returns a cost matrix." msgstr "返回成本矩阵。" @@ -8396,22 +8641,22 @@ msgid "No ordering is performed" msgstr "不进行排序" msgid "let `v` and `u` are nodes on the graph:" -msgstr "设`v`和 `u` 是图上的节点:" +msgstr "设`v` 和 `u` 是图上的节点:" msgid "when there is no path from `v` to `u`:" -msgstr "当没有从`v`到 `u` 的路径时:" +msgstr "当没有从 `v` 到 `u` 的路径时:" msgid "cost from `v` to `u` is :math:`\\inf`" -msgstr "从`v`到 `u`的成本是 :math:`\\inf`" +msgstr "从 `v` 到 `u` 的成本是 :math:`\\inf`" msgid "when :math:`v = u` then" -msgstr "当 :math:`v = u`时" +msgstr "当 :math:`v = u` 时" msgid "cost from `v` to `u` is :math:`0`" -msgstr "从`v`到`u`的成本是:math:`0`" +msgstr "从 `v` 到 `u` 的成本是 :math:`0`" msgid "When the graph is **undirected** the cost matrix is symmetric" -msgstr "当图**无向**时,成本矩阵是对称的" +msgstr "当图 **无向** 时,成本矩阵是对称的" msgid "pgr_aStarCostMatrix(`Edges SQL`_, **start vids**, [**options**])" msgstr "pgr_aStarCostMatrix(`Edges SQL`_, **start vids**, [**options**])" @@ -8420,8 +8665,8 @@ msgid "" "Symmetric cost matrix for vertices :math:`\\{5, 6, 10, 15\\}` on an " "**undirected** graph using heuristic :math:`2`" msgstr "" -"在**无向**图上,使用heuristic :math:`2`,对顶点 :math:`\\{5, 6, 10, 15\\}` 创" -"建对称的成本矩阵" +"在 **无向** 图上,使用heuristic :math:`2`,对顶点 :math:`\\{5, 6, 10, 15\\}` " +"创建对称的成本矩阵" msgid "Use with :doc:`pgr_TSP`" msgstr "使用 :doc:`pgr_TSP`" @@ -8436,10 +8681,10 @@ msgid "Breaking change on signature" msgstr "签名的重大更改" msgid "**Boost 1.54** & **Boost 1.55** are supported" -msgstr "**Boost 1.54** & **Boost 1.55**被支持" +msgstr "**Boost 1.54** & **Boost 1.55** 被支持" msgid "**Boost 1.56+** is preferable" -msgstr "**Boost 1.56+**更好" +msgstr "**Boost 1.56+** 更好" msgid "Boost Geometry is stable on Boost 1.56" msgstr "Boost Geometry 在 Boost 1.56 上保持稳定" @@ -8453,9 +8698,6 @@ msgstr "支持返回多个外/内圈" msgid "Renamed from version 1.x" msgstr "从版本1.X重命名" -msgid "Support" -msgstr "支持" - msgid "Returns the polygon part of an alpha shape." msgstr "返回 alpha 形状的多边形部分。" @@ -8480,7 +8722,7 @@ msgstr "" "radius < spoon\\_radius`" msgid "The ``alpha`` parameter is the **spoon radius**" -msgstr "``alpha``参数是 **spoon radius**" +msgstr "``alpha`` 参数是 **spoon radius**" msgid "" "When the total number of points is less than 3, returns an EMPTY geometry" @@ -8540,10 +8782,10 @@ msgid "The function returns:" msgstr "函数返回:" msgid "``OK`` after the analysis has finished." -msgstr "``OK``分析完成后。" +msgstr "``OK`` 分析完成后。" msgid "``FAIL`` when the analysis was not completed due to an error." -msgstr "``FAIL``当分析因错误而未完成时。" +msgstr "``FAIL`` 当分析因错误而未完成时。" msgid "pgr_analyzeGraph(**edge_table**, **tolerance**, [**options**])" msgstr "pgr_analyzeGraph(**edge_table**, **tolerance**, [**options**])" @@ -8558,7 +8800,7 @@ msgid "Prerequisites" msgstr "先决条件" msgid "" -"The edge table to be analyzed must contain a source column and a target " +"The edge table to be analyzed must contain a source column and a target " "column filled with id's of the vertices of the segments and the " "corresponding vertices table _vertices_pgr that stores the " "vertices information." @@ -8567,11 +8809,11 @@ msgstr "" "息的顶点表_vertices_pgr。" msgid "Use :doc:`pgr_createVerticesTable` to create the vertices table." -msgstr "使用:doc:`pgr_createVerticesTable`建立顶点表。" +msgstr "使用 :doc:`pgr_createVerticesTable` 建立顶点表。" msgid "" "Use :doc:`pgr_createTopology` to create the topology and the vertices table." -msgstr "使用:doc:`pgr_createTopology`建立拓扑和顶点表。" +msgstr "使用 :doc:`pgr_createTopology` 建立拓扑和顶点表。" msgid "The analyze graph function accepts the following parameters:" msgstr "分析图函数接受以下参数:" @@ -8587,14 +8829,24 @@ msgstr "tolerance" msgid "" "``float8`` Snapping tolerance of disconnected edges. (in projection unit)" -msgstr "``float8``断开边的捕捉容差。 (以投影单位表示)" +msgstr "``float8`` 断开边的捕捉容差。 (以投影单位表示)" msgid "the_geom" msgstr "the_geom" +msgid "" +"``text`` Geometry column name of the network table. Default value is " +"``the_geom``." +msgstr "``text``网络表的几何列名称。 默认值为``the_geom``。" + msgid "id" msgstr "id" +msgid "" +"``text`` Primary key column name of the network table. Default value is " +"``id``." +msgstr "``text`` 网络表的主键列名称。 默认值为``id``。" + msgid "source" msgstr "source" @@ -8607,7 +8859,7 @@ msgid "target" msgstr "target" msgid "" -"``text`` Target column name of the network table. Default value is " +"``text`` Target column name of the network table. Default value is " "``target``." msgstr "``text``网络表的Target列名称。 默认值为 ``target``。" @@ -8615,19 +8867,19 @@ msgid "rows_where" msgstr "rows_where" msgid "" -"``text`` Condition to select a subset or rows. Default value is ``true`` " -"to indicate all rows." -msgstr "``text``选择子集或行的条件。 默认值为``true`` t表示所有行。" +"``text`` Condition to select a subset or rows. Default value is ``true`` to " +"indicate all rows." +msgstr "``text`` 用于选择子集或行的条件。默认值为``true`` ,表示选择所有行。" msgid "Uses the vertices table: _vertices_pgr." msgstr "使用这个顶点表:_vertices_pgr。" msgid "Fills completely the ``cnt`` and ``chk`` columns of the vertices table." -msgstr "完全填充顶点表的``cnt`` 和``chk`` 列。" +msgstr "完全填充顶点表的 ``cnt`` 和``chk`` 列。" msgid "" -"Returns the analysis of the section of the network defined by ``rows_where``" -msgstr "返回由``rows_where`` 定义的网络部分的分析结果" +"Returns the analysis of the section of the network defined by ``rows_where``" +msgstr "返回由 ``rows_where`` 定义的网络部分的分析结果" msgid "The vertices table is not found." msgstr "未找到顶点表。" @@ -8654,26 +8906,26 @@ msgid "" "` or :doc:`pgr_createTopology `" msgstr "" "顶点表可以使用 :doc:`pgr_createVerticesTable ` 或 :" -"doc:`pgr_createTopology `创建" +"doc:`pgr_createTopology ` 创建" msgid "The structure of the vertices table is:" msgstr "顶点表的结构为:" msgid "``bigint`` Identifier of the vertex." -msgstr "``bigint``顶点的标识符。" +msgstr "``bigint`` 顶点的标识符。" msgid "cnt" msgstr "cnt" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex." -msgstr "``integer``edge_table 中引用该顶点的顶点数。" +msgstr "``integer`` edge_table 中引用该顶点的顶点数。" msgid "chk" msgstr "chk" -msgid "``integer`` Indicator that the vertex might have a problem." -msgstr "``integer``指示顶点可能有问题。" +msgid "``integer`` Indicator that the vertex might have a problem." +msgstr "``integer`` 指示顶点可能有问题。" msgid "ein" msgstr "ein" @@ -8682,7 +8934,7 @@ msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "as incoming. See :doc:`pgr_analyzeOneWay `." msgstr "" -"``integer``edge_table 中引用该顶点作为传入的顶点数。 请参阅 :doc:" +"``integer`` edge_table 中引用该顶点作为传入的顶点数。 请参阅 :doc:" "`pgr_analyzeOneWay `。" msgid "eout" @@ -8692,11 +8944,11 @@ msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "as outgoing. See :doc:`pgr_analyzeOneWay `." msgstr "" -"``integer``Edge_table 中引用该顶点作为传出的顶点数。 请参阅 :doc:" +"``integer`` Edge_table 中引用该顶点作为传出的顶点数。 请参阅 :doc:" "`pgr_analyzeOneWay `。" msgid "``geometry`` Point geometry of the vertex." -msgstr "``geometry``顶点的点几何。" +msgstr "``geometry`` 顶点的点几何。" msgid "Usage when the edge table's columns MATCH the default values:" msgstr "当边表的列与默认值匹配时的用法:" @@ -8721,7 +8973,7 @@ msgid "" "function as the geometry column, and the geometry column ``the_geom`` is " "passed to the function as the id column." msgstr "" -"在此示例中,表 ``mytable``的列 ``id`` 作为几何列传递给函数,几何列 " +"在此示例中,表 ``mytable`` 的列 ``id`` 作为几何列传递给函数,几何列 " "``the_geom`` 作为 id 列传递给函数。" msgid "When using the named notation" @@ -8746,12 +8998,12 @@ msgstr "根据 id 选择行。 显示网络部分的分析。" msgid "" "Selecting the rows where the geometry is near the geometry of row with " "``id`` = 5" -msgstr "选择几何形状接近``id``= 5 的几何形状的行" +msgstr "选择几何形状接近 ``id`` = 5 的几何形状的行" msgid "" "Selecting the rows where the geometry is near the geometry of the row with " "``gid`` =100 of the table ``othertable``." -msgstr "选择几何形状接近表``othertable`` 的``gid`` = 100 的行的几何形状的行。" +msgstr "选择几何形状接近表 ``othertable`` 的``gid`` = 100 的行的几何形状的行。" msgid "Usage when the edge table's columns DO NOT MATCH the default values:" msgstr "当边表的列与默认值不匹配时的用法:" @@ -8787,17 +9039,17 @@ msgstr "根据 id 选择行。" msgid "" "Selecting the rows WHERE the geometry is near the geometry of row with " "``id`` =5 ." -msgstr "选择那些几何与具有``id`` = 5的行的几何接近的行。" +msgstr "选择那些几何与具有 ``id`` = 5的行的几何接近的行。" msgid "" "Selecting the rows WHERE the geometry is near the place='myhouse' of the " "table ``othertable``. (note the use of quote_literal)" msgstr "" -"选择几何图形靠近表``othertable``的 place='myhouse' 的行。 (注意 " +"选择几何图形靠近表 ``othertable`` 的 place='myhouse' 的行。 (注意 " "quote_literal 的使用)" msgid "The examples use the :doc:`sampledata` network." -msgstr "这些示例使用 :doc:`示例数据`网络。" +msgstr "这些示例使用 :doc:`sampledata` 网络。" msgid ":doc:`pgr_analyzeOneWay`" msgstr ":doc:`pgr_analyzeOneWay`" @@ -8806,7 +9058,7 @@ msgid ":doc:`pgr_createVerticesTable`" msgstr ":doc:`pgr_createVerticesTable`" msgid ":doc:`pgr_nodeNetwork` to create nodes to a not noded edge table." -msgstr ":doc:`pgr_nodeNetwork`创建节点到非节点边表。" +msgstr ":doc:`pgr_nodeNetwork` 创建节点到非节点边表。" msgid "pgr_analyzeOneWay" msgstr "pgr_analyzeOneWay" @@ -8858,8 +9110,8 @@ msgid "" "of your network to make repairs and/or report the problem back to your data " "vendor." msgstr "" -"因此,通过计算进入和退出每个节点的边数,我们可以识别 `source`节点和`sink`节" -"点,以便您可以查看网络的这些区域以进行修复和/或将问题报告给数据供应商。" +"因此,通过计算进入和退出每个节点的边数,我们可以识别 `source` 节点和 `sink` " +"节点,以便您可以查看网络的这些区域以进行修复和/或将问题报告给数据供应商。" msgid "" "pgr_analyzeOneWay(**geom_table**, **s_in_rules**, **s_out_rules**, " @@ -8878,25 +9130,25 @@ msgid "s_in_rules" msgstr "s_in_rules" msgid "``text[]`` source node **in** rules" -msgstr "``text[]``source节点**输入**规则" +msgstr "``text[]`` source节点 **输入** 规则" msgid "s_out_rules" msgstr "s_out_rules" msgid "``text[]`` source node **out** rules" -msgstr "``text[]``source节点**输出**规则" +msgstr "``text[]`` source节点 **输出** 规则" msgid "t_in_rules" msgstr "t_in_rules" msgid "``text[]`` target node **in** rules" -msgstr "``text[]``target节点**输入**规则" +msgstr "``text[]`` target节点 **输入** 规则" msgid "t_out_rules" msgstr "t_out_rules" msgid "``text[]`` target node **out** rules" -msgstr "``text[]``target节点**输出**规则" +msgstr "``text[]`` target节点 **输出** 规则" msgid "oneway" msgstr "oneway" @@ -8910,9 +9162,9 @@ msgid "two_way_if_null" msgstr "two_way_if_null" msgid "" -"``boolean`` flag to treat oneway NULL values as bi-directional. Default " +"``boolean`` flag to treat oneway NULL values as bi-directional. Default " "value is ``true``." -msgstr "``boolean``将单向 NULL 值视为双向的标志。 默认值为 ``true``。" +msgstr "``boolean`` 将单向 NULL 值视为双向的标志。 默认值为 ``true``。" msgid "" "It is strongly recommended to use the named notation. See :doc:" @@ -8923,7 +9175,7 @@ msgstr "" msgid "" "Fills completely the ``ein`` and ``eout`` columns of the vertices table." -msgstr "完全填充顶点表的 ``ein``和 ``eout`` 列。" +msgstr "完全填充顶点表的 ``ein`` 和 ``eout`` 列。" msgid "The names of source , target or oneway are the same." msgstr "source 、 target 或 oneway 的名称相同。" @@ -8933,39 +9185,39 @@ msgid "" "``oneway`` value would be counted as ``true`` for the source or target " "**in** or **out** condition." msgstr "" -"这些规则被定义为文本字符串数组,如果与 ``oneway``值匹配,则 source或 target**" -"输入**或**输出**条件将被视为``true``。" +"这些规则被定义为文本字符串数组,如果与 ``oneway`` 值匹配,则 source或 target " +"**输入** 或 **输出** 条件将被视为 ``true``。" msgid "" "The vertices table can be created with :doc:`pgr_createVerticesTable` or :" "doc:`pgr_createTopology`" msgstr "" -"顶点表可以使用 :doc:`pgr_createVerticesTable` 或 :doc:`pgr_createTopology`创" +"顶点表可以使用 :doc:`pgr_createVerticesTable` 或 :doc:`pgr_createTopology` 创" "建" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex. " "See :doc:`pgr_analyzeGgraph `." msgstr "" -"``integer``edge_table 中引用该顶点的顶点数。 请参阅 :doc:`pgr_analyzeGgraph " +"``integer`` edge_table 中引用该顶点的顶点数。 请参阅 :doc:`pgr_analyzeGgraph " "`。" msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" +"``integer`` Indicator that the vertex might have a problem. See :doc:" "`pgr_analyzeGraph `." msgstr "" -"``integer``指示顶点可能有问题。 请参阅 :doc:`pgr_analyzeGraph " +"``integer`` 指示顶点可能有问题。 请参阅 :doc:`pgr_analyzeGraph " "`。" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "as incoming." -msgstr "``integer``edge_table 中引用该顶点作为传入的顶点数。" +msgstr "``integer`` edge_table 中引用该顶点作为传入的顶点数。" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "as outgoing." -msgstr "``integer``Edge_table 中引用该顶点作为传出的顶点数。" +msgstr "``integer`` Edge_table 中引用该顶点作为传出的顶点数。" msgid ":doc:`pgr_analyzeGraph`" msgstr ":doc:`pgr_analyzeGraph`" @@ -8978,14 +9230,14 @@ msgid "" "graph." msgstr "``pgr_articulationPoints`` - 返回无向图的连接点。" -msgid "Return columns change: ``seq`` is removed" -msgstr "返回列更改:``seq``被删除" +msgid "Result columns change: ``seq`` is removed" +msgstr "结果列更改:删除了 ``seq``" msgid "Version 2.5.0" msgstr "版本2.5.0" msgid "New **experimental** function" -msgstr "新**实验**函数" +msgstr "新 **实验** 函数" msgid "" "Those vertices that belong to more than one biconnected component are called " @@ -8997,19 +9249,19 @@ msgstr "" "那些如果被移除,会增加图中连接分量数量的顶点。这个实现仅适用于无向图。" msgid "Works for **undirected** graphs." -msgstr "适用于**无向**图。" +msgstr "适用于 **无向** 图。" msgid "``node`` ascending" -msgstr "``node``升序" +msgstr "``node`` 升序" msgid "Running time: :math:`O(V + E)`" -msgstr "运行时间::math:`O(V + E)`" +msgstr "运行时间: :math:`O(V + E)`" msgid "pgr_articulationPoints(`Edges SQL`_)" msgstr "pgr_articulationPoints(`Edges SQL`_)" -msgid "RETURNS SET OF |result-node|" -msgstr "RETURNS SET OF |result-node|" +msgid "Returns set of |result-node|" +msgstr "Returns set of |result-node|" msgid "The articulation points of the graph" msgstr "图表的连接点" @@ -9017,9 +9269,6 @@ msgstr "图表的连接点" msgid "Nodes in red are the articulation points." msgstr "红色节点是关节点。" -msgid "Returns set of |result-node|" -msgstr "Returns set of |result-node|" - msgid "" "Boost: `Biconnected components & articulation points `__" @@ -9042,13 +9291,13 @@ msgstr "``pgr_bdAstar`` — 使用双向 A* 算法的最短路径。" msgid "" "``pgr_bdAstar`` (`One to One`_) added ``start_vid`` and ``end_vid`` columns." -msgstr "``pgr_bdAstar`` (`一对一`_) 增加``start_vid`` 和 ``end_vid``列。" +msgstr "``pgr_bdAstar`` (`一对一`_) 增加 ``start_vid`` 和 ``end_vid`` 列。" msgid "``pgr_bdAstar`` (`One to Many`_) added ``end_vid`` column." -msgstr "``pgr_bdAstar`` (`一对多`_) 增加``end_vid`` 列。" +msgstr "``pgr_bdAstar`` (`一对多`_) 增加 ``end_vid`` 列。" msgid "``pgr_bdAstar`` (`Many to One`_) added ``start_vid`` column." -msgstr "``pgr_bdAstar`` (`多对一`_) 增加``start_vid``列。" +msgstr "``pgr_bdAstar`` (`多对一`_) 增加 ``start_vid`` 列。" msgid "``pgr_bdAstar`` (`Combinations`_)" msgstr "``pgr_bdAstar`` (`组合`_)" @@ -9063,28 +9312,16 @@ msgid "``pgr_bdAstar`` (`Many to Many`_)" msgstr "``pgr_bdAstar`` (`多对多`_)" msgid "Signature change on ``pgr_bdAstar`` (`One to One`_)" -msgstr "在``pgr_bdAstar`` (`一对一`_)上的签名更改" +msgstr "在 ``pgr_bdAstar`` (`一对一`_)上的签名更改" msgid "**Official** ``pgr_bdAstar`` (`One to One`_)" -msgstr "**官方**``pgr_bdAstar`` (`一对一`_)" +msgstr "**官方** ``pgr_bdAstar`` (`一对一`_)" msgid "" "The results are equivalent to the union of the results of the `pgr_bdAStar(` " "`One to One`_ `)` on the:" msgstr "结果相当于`pgr_bdAStar(` `一对一`_ `)` 结果的并集:" -msgid "`pgr_bdAstar(` `One to Many`_ `)`" -msgstr "`pgr_bdAstar(` `一对多`_ `)`" - -msgid "`pgr_bdAstar(` `Many to One`_ `)`" -msgstr "`pgr_bdAstar(` `多对一`_ `)`" - -msgid "`pgr_bdAstar(` `Many to Many`_ `)`" -msgstr "`pgr_bdAstar(` `多对多`_ `)`" - -msgid "`pgr_bdAstar(` `Combinations`_ `)`" -msgstr "`pgr_bdAstar(` `组合`_ `)`" - msgid "pgr_bdAstar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" msgstr "pgr_bdAstar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -9103,18 +9340,20 @@ msgstr "pgr_bdAstar(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgid "pgr_bdAstarCost" msgstr "pgr_bdAstarCost" +#, fuzzy msgid "" -"``pgr_bdAstarCost`` - Total cost of the shortest path(s) using the " +"``pgr_bdAstarCost`` - Total cost of the shortest path using the " "bidirectional A* algorithm." msgstr "``pgr_bdAstarCost`` -使用双向 A* 算法的最短路径的总成本。" msgid "``pgr_bdAstarCost`` (`Combinations`_)" msgstr "``pgr_bdAstarCost`` (`组合`_)" +#, fuzzy msgid "" -"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest " -"path(s) using the bidirectional A* algorithm." -msgstr "``pgr_bdAstarCost``函数使用双向 A* 算法汇总最短路径的成本。" +"The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path " +"using the bidirectional A* algorithm." +msgstr "``pgr_bdAstarCost`` 函数使用双向 A* 算法汇总最短路径的成本。" msgid "" "pgr_bdAstarCost(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -9145,7 +9384,7 @@ msgstr "``pgr_bdAstarCostMatrix``" msgid "" "``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using :doc:" "`pgr_aStar`." -msgstr "``pgr_bdAstarCostMatrix`` - 使用:doc:`pgr_aStar` 计算成本矩阵。" +msgstr "``pgr_bdAstarCostMatrix`` - 使用 :doc:`pgr_aStar` 计算成本矩阵。" msgid "Using internaly the :doc:`pgr_bdAstar` algorithm" msgstr "内部使用 :doc:`pgr_bdAstar` 算法" @@ -9156,16 +9395,17 @@ msgstr "pgr_bdAstarCostMatrix(`Edges SQL`_, **start vids**, [**options**])" msgid "``pgr_bdDijkstra``" msgstr "``pgr_bdDijkstra``" +#, fuzzy msgid "" -"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional " -"Dijkstra algorithm." +"``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra " +"algorithm." msgstr "``pgr_bdDijkstra`` — 使用双向 Dijkstra 算法返回最短路径。" msgid "pgr_bdDijkstra(`Combinations`_)" msgstr "pgr_bdDijkstra(`组合`_)" msgid "New **Proposed** functions:" -msgstr "新**拟议**函数:" +msgstr "新 **拟议** 函数:" msgid "``pgr_bdDijkstra`` (`One to Many`_)" msgstr "``pgr_bdDijkstra`` (`一对多`_)" @@ -9202,47 +9442,47 @@ msgid "" msgstr "" "pgr_bdDijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" -msgstr "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_ , [``directed``])" +msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" +msgstr "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" + +msgid "Returns set of |old-generic-result|" +msgstr "返回 |old-generic-result| 的集合" -msgid "RETURNS SET OF |old-generic-result|" -msgstr "RETURNS SET OF |old-generic-result|" +msgid "Returns set of |result-1-1|" +msgstr "返回 |result-1-1| 的集合" -msgid "RETURNS SET OF |result-1-1|" -msgstr "RETURNS SET OF |result-1-1|" +msgid "From vertex :math:`6` to vertex :math:`10` on a **directed** graph" +msgstr "在 **有向** 图上从顶点 :math:`6` 到顶点 :math:`10`" -msgid "RETURNS SET OF |result-1-m|" -msgstr "RETURNS SET OF |result-1-m|" +msgid "Returns set of |result-1-m|" +msgstr "返回 |result-1-m| 的集合" msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 17\\}` on a **directed** " "graph" -msgstr "在**有向**图上从顶点:math:`6`到顶点:math:`\\{10, 17\\}`" +msgstr "在 **有向** 图上从顶点 :math:`6` 到顶点 :math:`\\{10, 17\\}`" -msgid "RETURNS SET OF |result-m-1|" -msgstr "RETURNS SET OF |result-m-1|" +msgid "Returns set of |result-m-1|" +msgstr "返回 |result-m-1| 的集合" msgid "" "From vertices :math:`\\{6, 1\\}` to vertex :math:`17` on a **directed** graph" -msgstr "在**有向**图上从顶点 :math:`\\{6, 1\\}`到顶点:math:`17`" +msgstr "在 **有向** 图上从顶点 :math:`\\{6, 1\\}` 到顶点 :math:`17`" msgid "" "From vertices :math:`\\{6, 1\\}` to vertices :math:`\\{10, 17\\}` on an " "**undirected** graph" -msgstr "在**无向**图上从顶点 :math:`\\{6, 1\\}`到顶点 :math:`\\{10, 17\\}`" - -msgid "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "pgr_bdDijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" +msgstr "在 **无向** 图上从顶点 :math:`\\{6, 1\\}` 到顶点 :math:`\\{10, 17\\}`" msgid "Using a combinations table on an **undirected** graph" -msgstr "在**无向**图上使用组合表" +msgstr "在 **无向** 图上使用组合表" msgid "" -"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP" -"%20shortest%20path%20algorithms.pdf" +"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/" +"EPP%20shortest%20path%20algorithms.pdf" msgstr "" -"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP" -"%20shortest%20path%20algorithms.pdf" +"https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/" +"EPP%20shortest%20path%20algorithms.pdf" msgid "https://en.wikipedia.org/wiki/Bidirectional_search" msgstr "https://en.wikipedia.org/wiki/Bidirectional_search" @@ -9250,8 +9490,9 @@ msgstr "https://en.wikipedia.org/wiki/Bidirectional_search" msgid "``pgr_bdDijkstraCost``" msgstr "``pgr_bdDijkstraCost``" +#, fuzzy msgid "" -"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using " +"``pgr_bdDijkstraCost`` — Returns the shortest path's cost using " "Bidirectional Dijkstra algorithm." msgstr "``pgr_bdDijkstraCost`` — 使用双向 Dijkstra 算法返回最短路径的成本。" @@ -9312,7 +9553,8 @@ msgstr "pgr_bdDijkstraCostMatrix(`Edges SQL`_, **start vids**, [``directed``])" msgid "" "Symmetric cost matrix for vertices :math:`\\{5, 6, 10, 15\\}` on an " "**undirected** graph" -msgstr "在一个**无向**图上的顶点集合:math:`\\{5, 6, 10, 15\\}` 的对称成本矩阵" +msgstr "" +"在一个 **无向** 图上的顶点集合 :math:`\\{5, 6, 10, 15\\}` 的对称成本矩阵" msgid "Use with :doc:`pgr_TSP`." msgstr "与 :doc:`pgr_TSP` 一起使用。" @@ -9320,17 +9562,18 @@ msgstr "与 :doc:`pgr_TSP` 一起使用。" msgid "``pgr_bellmanFord - Experimental``" msgstr "``pgr_bellmanFord - 实验``" -msgid "``pgr_bellmanFord`` — Shortest path(s) using Bellman-Ford algorithm." +#, fuzzy +msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "``pgr_bellmanFord`` — 使用 Bellman-Ford 算法的最短路径。" msgid "New **experimental** signature:" -msgstr "新**实验性**签名:" +msgstr "新 **实验性** 签名:" msgid "``pgr_bellmanFord`` (`Combinations`_)" msgstr "``pgr_bellmanFord`` (`组合`_)" msgid "New **experimental** signatures:" -msgstr "新**实验**签名:" +msgstr "新 **实验** 签名:" msgid "``pgr_bellmanFord`` (`One to One`_)" msgstr "``pgr_bellmanFord`` (`一对一`_)" @@ -9389,8 +9632,8 @@ msgid "" "When the start vertex and the end vertex are different, and there is no " "path. The agg_cost is :math:`\\infty`." msgstr "" -"当起始顶点和结束顶点不同且不存在路径时,聚合成本(agg_cost)为:math:`" -"\\infty`。" +"当起始顶点和结束顶点不同且不存在路径时,聚合成本(agg_cost)为 :math:" +"`\\infty`。" msgid "" "For optimization purposes, any duplicated value in the `start_vids` or " @@ -9398,7 +9641,7 @@ msgid "" msgstr "出于优化目的,`start_vids`或 `end_vids` 中的任何重复值都将被忽略。" msgid "Running time: :math:`O(| start\\_vids | * ( V * E))`" -msgstr "运行时间::math:`O(| start\\_vids | * ( V * E))`" +msgstr "运行时间: :math:`O(| start\\_vids | * ( V * E))`" msgid "" "pgr_bellmanFord(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -9411,9 +9654,9 @@ msgstr "" "pgr_bellmanFord(`Edges SQL`_, **start vid**, **end vids**, [``directed``])" msgid "" -"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid** , [``directed``])" +"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" msgstr "" -"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid** , [``directed``])" +"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" msgid "" "pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" @@ -9423,25 +9666,122 @@ msgstr "" msgid "pgr_bellmanFord(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "pgr_bellmanFord(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgid "From vertex :math:`6` to vertex :math:`10` on a **directed** graph" -msgstr "在**有向**图上从顶点 :math:`6`到顶点 :math:`10`" - +#, fuzzy msgid "" "From vertex :math:`6` to vertices :math:`\\{ 10, 17\\}` on a **directed** " "graph" -msgstr "在**有向**图上从顶点 :math:`6` 到顶点 :math:`\\{ 10, 17\\}`" - -msgid "" -"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" -msgstr "" -"pgr_bellmanFord(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" +msgstr "在 **有向** 图上从顶点 :math:`6` 到顶点 :math:`\\{10, 17\\}`" msgid "Using a combinations table on an **undirected** graph." -msgstr "在**无向**图上使用组合表。" +msgstr "在 **无向** 图上使用组合表。" msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" +msgid "``pgr_betweennessCentrality``" +msgstr "" + +msgid "" +"``pgr_betweennessCentrality`` - Calculates the relative betweeness " +"centrality using Brandes Algorithm" +msgstr "" + +#, fuzzy +msgid "Version 3.7.0" +msgstr "版本3.6.0" + +msgid "New **experimental** function:" +msgstr "新的 **实验** 函数:" + +msgid "" +"The Brandes Algorithm takes advantage of the sparse graphs for evaluating " +"the betweenness centrality score of all vertices." +msgstr "" + +msgid "" +"Betweenness centrality measures the extent to which a vertex lies on the " +"shortest paths between all other pairs of vertices. Vertices with a high " +"betweenness centrality score may have considerable influence in a network by " +"the virtue of their control over the shortest paths passing between them." +msgstr "" + +msgid "" +"The removal of these vertices will affect the network by disrupting the it, " +"as most of the shortest paths between vertices pass through them." +msgstr "" + +#, fuzzy +msgid "This implementation work for both directed and undirected graphs." +msgstr "该实现适用于 **有向** 图和 **无向** 图。" + +#, fuzzy +msgid "Running time: :math:`\\Theta(VE)`" +msgstr "运行时间: :math:`O(V + E)`" + +#, fuzzy +msgid "Running space: :math:`\\Theta(VE)`" +msgstr "运行时间: :math:`O(V + E)`" + +#, fuzzy +msgid "Throws when there are no edges in the graph" +msgstr "当图中没有边时,返回 EMPTY SET。" + +msgid "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" +msgstr "pgr_betweennessCentrality(`Edges SQL`_, [``directed``])" + +#, fuzzy +msgid "Returns set of ``(vid, centrality)``" +msgstr "返回集合 ``(edge, cost)``" + +#, fuzzy +msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." +msgstr "对于有边 :math:`\\{1, 2, 3, 4\\}` 的有向子图。" + +#, fuzzy +msgid "Explanation" +msgstr "应用" + +msgid "The betweenness centrality are between parenthesis." +msgstr "" + +msgid "The leaf vertices have betweenness centrality :math:`0`." +msgstr "" + +#, fuzzy +msgid "" +"Betweenness centrality of vertex :math:`6` is higher than of vertex :math:" +"`10`." +msgstr "从顶点 :math:`11` 到顶点 :math:`12`" + +#, fuzzy +msgid "Removing vertex :math:`6` will create three graph components." +msgstr "顶点 :math:`w` 已从图中移除" + +msgid "Removing vertex :math:`10` will create two graph components." +msgstr "" + +msgid "``vid``" +msgstr "``vid``" + +#, fuzzy +msgid "``centrality``" +msgstr "``capacity``" + +msgid "" +"Relative betweenness centrality score of the vertex (will be in range [0,1])" +msgstr "" + +#, fuzzy +msgid "" +"Boost's `betweenness_centrality `_" +msgstr "" +"`Boost:Hawick 电路算法 `__" + +msgid "Queries use the :doc:`sampledata` network." +msgstr "查询使用 :doc:`sampledata` 网络。" + msgid "``pgr_biconnectedComponents``" msgstr "``pgr_biconnectedComponents``" @@ -9450,11 +9790,11 @@ msgid "" "graph." msgstr "``pgr_biconnectedComponents`` — 无向图的双连通分量。" -msgid "Return columns change:" -msgstr "返回列更改:" +msgid "Result columns change:" +msgstr "结果列发生变化:" msgid "``n_seq`` is removed" -msgstr "``n_seq``被删除" +msgstr "``n_seq`` 被删除" msgid "``seq`` changed type to ``BIGINT``" msgstr "``seq`` 将类型更改为``BIGINT``" @@ -9478,20 +9818,17 @@ msgid "``component`` ascending." msgstr "``component`` 升序。" msgid "``edge`` ascending." -msgstr "``edge``升序。" +msgstr "``edge`` 升序。" msgid "pgr_biconnectedComponents(`Edges SQL`_)" msgstr "pgr_biconnectedComponents(`Edges SQL`_)" -msgid "RETURNS SET OF |result-component-E|" -msgstr "RETURNS SET OF |result-component-E|" +msgid "Returns set of |result-component-E|" +msgstr "Returns set of |result-component-E|" msgid "The biconnected components of the graph" msgstr "图的双连通分量" -msgid "Returns set of |result-component-E|" -msgstr "Returns set of |result-component-E|" - msgid "``component``" msgstr "``component``" @@ -9502,20 +9839,21 @@ msgid "Has the value of the minimum edge identifier in the component." msgstr "具有组件中最小边标识符的值。" msgid "Identifier of the edge that belongs to the ``component``." -msgstr "属于该``分量``的边的标识符。" +msgstr "属于该 ``分量`` 的边的标识符。" msgid "" "Boost: `Biconnected components `__" msgstr "" -"Boost: `双连通分量`__" msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "``pgr_binaryBreadthFirstSearch`` - 实验" +#, fuzzy msgid "" -"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path(s) in a binary " +"``pgr_binaryBreadthFirstSearch`` — Returns the shortest path in a binary " "graph." msgstr "``pgr_binaryBreadthFirstSearch`` — 返回二元图中的最短路径。" @@ -9546,16 +9884,14 @@ msgid "" "you need to traverse from the source to another vertex. We can interpret " "such a graph also as a weighted graph, where every edge has the weight :math:" "`1`. If not alledges in graph have the same weight, that we need a more " -"general algorithm, like Dijkstra's Algorithm which runs in :math:`O(|E|log|" +"general algorithm, like Dijkstra's Algorithm which runs in :math:`O(|E|log|" "V|)` time." msgstr "" -"众所周知,在无权图中,可以使用广度优先搜索(Breadth First Search)找到从单一" -"源点到所有其他顶点的最短路径,其时间复杂度为 :math:`O(|E|)`,其中 |E| 表示图" -"中的边数。也就是说,这里的距离是指从源点到另一个顶点所需穿越的最小边数。我们" -"也可以将这样的图解释为一个带权图,其中每条边的权重都为 :math:`1`。如果图中的" -"边不都具有相同的权重,那么我们就需要使用更通用的算法,比如Dijkstra算法,它的" -"时间复杂度为 :math:`O(|E|log|V|)`,其中 |E| 表示图中的边数,|V| 表示图中的顶" -"点数。" +"众所周知,在无权重图中,使用广度优先搜索(Breadth First Search)可以在 :math:" +"`O(|E|)` 内找到单个源点与所有其他顶点之间的最短路径,也就是说,距离是指从源点" +"到另一个顶点所需的最少边数。我们也可以把这样的图解释为加权图,其中每条边的权" +"重为 :math:`1`。如果图中不是所有边的权重都相同,我们就需要一种更通用的算法," +"比如 Dijkstra 算法,它的运行时间为 :math:`O(|E|log|V||)`。" msgid "" "However if the weights are more constrained, we can use a faster algorithm. " @@ -9620,10 +9956,7 @@ msgid "" "**Note:** Using the :doc:`sampledata` Network as all weights are same (i.e :" "math:`1``)" msgstr "" -"**注意:** 使用 :doc:`示例数据`网络,因为所有权重都相同(即为 :math:`1``)" - -msgid "Optional Parameters" -msgstr "可选参数" +"**注意:** 使用 :doc:`sampledata` 网络,因为所有权重都相同(即为 :math:`1`)" msgid "https://cp-algorithms.com/graph/01_bfs.html" msgstr "https://cp-algorithms.com/graph/01_bfs.html" @@ -9642,7 +9975,7 @@ msgid "" msgstr "`pgr_bipartite` - 不相邻的顶点集合,同一集合中没有两个顶点相邻。" msgid "New **experimental** signature" -msgstr "新的**实验**签名" +msgstr "新的 **实验** 签名" msgid "" "A bipartite graph is a graph with two sets of vertices which are connected " @@ -9662,10 +9995,11 @@ msgstr "返回值没有排序。" msgid "" "The algorithm checks graph is bipartite or not. If it is bipartite then it " -"returns the node along with two colors `0` and `1` which represents two " +"returns the node along with two colors `0` and `1` which represents two " "different sets." -msgstr "该算法检查图是否是二分图。如果是二分图,它将返回节点以及分别代表两个不同集合" -"的两种颜色,分别为 `0` 和 `1`。" +msgstr "" +"该算法检查图是否是二分图。 如果它是二分的,那么它返回节点以及代表两个不同集合" +"的两种颜色 `0` 和`1`。" msgid "If graph is not bipartite then algorithm returns empty set." msgstr "如果图不是两部分的,那么算法会返回空集。" @@ -9673,6 +10007,9 @@ msgstr "如果图不是两部分的,那么算法会返回空集。" msgid "pgr_bipartite(`Edges SQL`_)" msgstr "pgr_bipartite(`Edges SQL`_)" +msgid "Returns set of |result-node-color|" +msgstr "Returns set of |result-node-color|" + msgid "When the graph is bipartite" msgstr "当图形为两方时" @@ -9683,11 +10020,12 @@ msgid "The odd length cyclic graph can not be bipartite." msgstr "奇长循环图不可能是两部分的。" msgid "" -"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:`" -"\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 vertices." +"The edge :math:`5 \\rightarrow 1` will make subgraph with vertices :math:" +"`\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has 5 " +"vertices." msgstr "" -"边 :math:`5 \\rightarrow 1` 将使顶点为 :math:`\\{1, 3, 7, 6, 5\\}` " -"的子图成为奇数长度的循环图,因为循环有 5 个顶点。" +"边 :math:`5 \\rightarrow 1` 将使顶点为 :math:`\\{1, 3, 7, 6, 5\\}` 的子图成为" +"奇数长度的循环图,因为循环有 5 个顶点。" msgid "Edges in blue represent odd length cycle subgraph." msgstr "蓝色边代表奇数长度循环子图。" @@ -9699,23 +10037,24 @@ msgid "" "``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that " "maximizes the flow from the sources to the targets using Boykov Kolmogorov " "algorithm." -msgstr "`pgr_boykovKolmogorov`` - 使用 Boykov Kolmogorov " -"算法计算图边的流量,使从源到目标的流量最大。" +msgstr "" +"`pgr_boykovKolmogorov`` - 使用 Boykov Kolmogorov 算法计算图边的流量,使从源到" +"目标的流量最大。" msgid "New **proposed** signature" -msgstr "新的**拟议**签名" +msgstr "新的 **拟议** 签名" msgid "``pgr_boykovKolmogorov`` (`Combinations`_)" msgstr "``pgr_boykovKolmogorov`` (`组合`_)" msgid "Renamed from ``pgr_maxFlowBoykovKolmogorov``" -msgstr "从``pgr_maxFlowBoykovKolmogorov``更名而来" +msgstr "从 ``pgr_maxFlowBoykovKolmogorov`` 更名而来" msgid "**Proposed** function" -msgstr "**拟议**函数" +msgstr "**拟议** 函数" msgid "New **Experimental** function" -msgstr "新的**实验**函数" +msgstr "新的 **实验** 函数" msgid "Running time: Polynomial" msgstr "运行时间:多项式时间" @@ -9735,6 +10074,9 @@ msgstr "pgr_boykovKolmogorov(`Edges SQL`_, **start vids**, **end vids**)" msgid "pgr_boykovKolmogorov(`Edges SQL`_, `Combinations SQL`_)" msgstr "pgr_boykovKolmogorov(`Edges SQL`_, `Combinations SQL`_)" +msgid "Returns set of |result-flow|" +msgstr "Returns set of |result-flow|" + msgid "From vertex :math:`11` to vertex :math:`12`" msgstr "从顶点 :math:`11` 到顶点 :math:`12`" @@ -9742,18 +10084,18 @@ msgid "From vertex :math:`11` to vertices :math:`\\{5, 10, 12\\}`" msgstr "从顶点 :math:`11` 到顶点 :math:`\\{5, 10, 12\\}`" msgid "From vertices :math:`\\{11, 3, 17\\}` to vertex :math:`12`" -msgstr "从顶点 :math:`\\{11, 3, 17\\}`到顶点 :math:`12`" +msgstr "从顶点 :math:`\\{11, 3, 17\\}` 到顶点 :math:`12`" msgid "" "From vertices :math:`\\{11, 3, 17\\}` to vertices :math:`\\{5, 10, 12\\}`" -msgstr "从顶点 :math:`\\{11, 3, 17\\}`到顶点 :math:`\\{5, 10, 12\\}`" +msgstr "从顶点 :math:`\\{11, 3, 17\\}` 到顶点 :math:`\\{5, 10, 12\\}`" msgid "" "Using a combinations table, equivalent to calculating result from vertices :" "math:`\\{5, 6\\}` to vertices :math:`\\{10, 15, 14\\}`." msgstr "" -"使用组合表,相当于计算从顶点:math:`{5, 6\\}` 到顶点:math:`{10, 15, 14\\}` 的" -"结果。" +"使用组合表,相当于计算从顶点 :math:`\\{5, 6\\}` 到顶点 :math:`{\\10, 15, " +"14\\}` 的结果。" msgid "https://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html" msgstr "https://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html" @@ -9797,23 +10139,21 @@ msgstr "pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**])" msgid "**options:** ``[max_depth, directed]``" msgstr "**options:** ``[max_depth, directed]``" -msgid "Single vertex" -msgstr "单顶点" +msgid "Returns set of |result-bfs|" +msgstr "返回 |result-bfs| 的集合" msgid "" "From root vertex :math:`6` on a **directed** graph with edges in ascending " "order of ``id``" msgstr "" -"从根顶点:math:`6` 开始,该顶点位于一个**有向**图中,其边按 ``id``升序排列" - -msgid "Multiple vertices" -msgstr "多个顶点" +"从根顶点 :math:`6` 开始,该顶点位于一个 **有向** 图中,其边按 ``id`` 升序排列" msgid "" "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with " "**depth** :math:`<= 2` and edges in ascending order of ``id``" -msgstr "从根顶点开始 :math:`{12, 6\\}` 在一个**无向**图上,**depth** " -":math:`<=2`,边按``id``升序排列" +msgstr "" +"从根顶点开始 :math:`{12, 6\\}` 在一个 **无向** 图上,**depth** :math:`<=2`," +"边按 ``id`` 升序排列" msgid "DFS optional parameters" msgstr "DFS 可选参数" @@ -9830,7 +10170,8 @@ msgstr "由此产生的遍历是不同的。" msgid "" "The left image shows the result with ascending order of ids and the right " "image shows with descending order of the edge identifiers." -msgstr "左图显示的是按 ID 升序排列的结果,右图显示的是按边缘标识符降序排列的结果。" +msgstr "" +"左图显示的是按 ID 升序排列的结果,右图显示的是按边缘标识符降序排列的结果。" msgid "|ascending| |descending|" msgstr "|ascending| |descending|" @@ -9851,7 +10192,8 @@ msgstr "" msgid "" "`Wikipedia: Breadth First Search algorithm `__" -msgstr "`维基百科:广度优先搜索算法 `__" msgid "``pgr_bridges``" @@ -9869,7 +10211,7 @@ msgstr "" "向图。" msgid "``edge`` ascending" -msgstr "``edge``升序" +msgstr "``edge`` 升序" msgid "Running time: :math:`O(E * (V + E))`" msgstr "运行时间: :math:`O(E * (V + E))`" @@ -9877,12 +10219,12 @@ msgstr "运行时间: :math:`O(E * (V + E))`" msgid "pgr_bridges(`Edges SQL`_)" msgstr "pgr_bridges(`Edges SQL`_)" -msgid "The bridges of the graph" -msgstr "图的桥" - msgid "Returns set of |result-edge|" msgstr "返回集合 |result-edge|" +msgid "The bridges of the graph" +msgstr "图的桥" + msgid "Identifier of the edge that is a bridge." msgstr "作为桥的边的标识符。" @@ -9898,8 +10240,9 @@ msgstr "``pgr_chinesePostman`` - 实验" msgid "" "``pgr_chinesePostman`` — Calculates the shortest circuit path which contains " "every edge in a directed graph and starts and ends on the same vertex." -msgstr "``pgr_chinesePostman`` — " -"计算包含有向图中的每条边并从同一顶点开始和结束的最短回路路径。" +msgstr "" +"``pgr_chinesePostman`` — 计算包含有向图中的每条边并从同一顶点开始和结束的最短" +"回路路径。" msgid "Returns ``EMPTY SET`` on a disconnected graph" msgstr "在一个不连通的图上返回 ``EMPTY SET``" @@ -9907,6 +10250,9 @@ msgstr "在一个不连通的图上返回 ``EMPTY SET``" msgid "pgr_chinesePostman(`Edges SQL`_)" msgstr "pgr_chinesePostman(`Edges SQL`_)" +msgid "Returns set of |result-1-1-no-seq|" +msgstr "返回 |result-1-1-no-seq| 的集合" + msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``" msgstr "Returns set of ``(seq, node, edge, cost, agg_cost)``" @@ -9917,11 +10263,11 @@ msgid "" "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." msgstr "" -"用于从路径序列中的``节点``到下一个节点的边的标识符。``-1`` 表示路径的最后一个" -"节点。" +"用于从路径序列中的 ``节点`` 到下一个节点的边的标识符。``-1`` 表示路径的最后一" +"个节点。" msgid "Aggregate cost from ``start_v`` to ``node``." -msgstr "从``start_v``到``node``的总成本。" +msgstr "从 ``start_v`` 到 ``node`` 的总成本。" msgid "``pgr_chinesePostmanCost`` - Experimental" msgstr "``pgr_chinesePostmanCost`` - 实验" @@ -9973,17 +10319,17 @@ msgstr "``component`` 升序" msgid "pgr_connectedComponents(`Edges SQL`_)" msgstr "pgr_connectedComponents(`Edges SQL`_)" +msgid "Returns set of |result-component-V|" +msgstr "返回集合 |result-component-V|" + msgid "The connected components of the graph" msgstr "图的连通分量" -msgid "Returns set of |result-component-V|" -msgstr "返回集合|result-component-V|" - msgid "Has the value of the minimum node identifier in the component." msgstr "具有组件中最小节点标识符的值。" msgid "Identifier of the vertex that belongs to the ``component``." -msgstr "属于该 ``组件``的顶点的标识符。" +msgstr "属于该 ``组件`` 的顶点的标识符。" msgid "Connecting disconnected components" msgstr "连接不连通的组件" @@ -9992,8 +10338,8 @@ msgid "" "Boost: `Connected components `__" msgstr "" -"Boost: `已连接组件 `__" +"Boost: ` 已连接组件 `__" msgid "" "wikipedia: `Connected component _vertices_pgr." msgstr "创建一个顶点表:_vertices_pgr。" msgid "Fills ``id`` and ``the_geom`` columns of the vertices table." -msgstr "填充顶点表的``id`` 和 ``the_geom`` 列。" +msgstr "填充顶点表的 ``id`` 和 ``the_geom`` 列。" msgid "" "Fills the source and target columns of the edge table referencing the ``id`` " "of the vertices table." -msgstr "引用顶点表的``id``填充边表的 source列和target列。" +msgstr "引用顶点表的 ``id`` 填充边表的 source列和target列。" msgid "``FAIL`` when the network topology was not built due to an error:" -msgstr "``FAIL``当由于错误原因未能构建网络拓扑时:" +msgstr "``FAIL`` 当由于错误原因未能构建网络拓扑时:" msgid "" "The vertices table is a requirement of the :doc:`pgr_analyzeGraph` and the :" "doc:`pgr_analyzeOneWay` functions." msgstr "" -"顶点表是 :doc:`pgr_analyzeGraph` 和 :doc:`pgr_analyzeOneWay`函数的必需条件。" +"顶点表是 :doc:`pgr_analyzeGraph` 和 :doc:`pgr_analyzeOneWay` 函数的必需条件。" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex. " "See :doc:`pgr_analyzeGraph`." msgstr "" -"``integer``edge_table 中引用该顶点的顶点数。 参见:doc:`pgr_analyzeGraph`。" +"``integer`` edge_table 中引用该顶点的顶点数。 参见 :doc:`pgr_analyzeGraph`。" msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" +"``integer`` Indicator that the vertex might have a problem. See :doc:" "`pgr_analyzeGraph`." -msgstr "``integer`` 表示该顶点可能存在问题的指标。请参阅 :doc:`pgr_analyzeGraph`。" +msgstr "``integer`` 指示顶点可能有问题。 请参阅 :doc:`pgr_analyzeGraph`。" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "AS incoming. See :doc:`pgr_analyzeOneWay`." msgstr "" -"``integer``边表中引用此顶点作为入边的顶点数量。请参考 :doc:" +"``integer`` 边表中引用此顶点作为入边的顶点数量。请参考 :doc:" "`pgr_analyzeOneWay`。" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "AS outgoing. See :doc:`pgr_analyzeOneWay`." msgstr "" -"``integer``边表中引用此顶点作为出边的顶点数量。请参考 :doc:" +"``integer`` 边表中引用此顶点作为出边的顶点数量。请参考 :doc:" "`pgr_analyzeOneWay`。" msgid "The simplest way to use pgr_createTopology is:" msgstr "使用 pgr_createTopology 最简单的方法是:" +msgid "When the arguments are given in the order described in the parameters:" +msgstr "当参数按照参数中描述的顺序给出时:" + +msgid "We get the sameresult as the simplest way to use the function." +msgstr "我们得到的结果与使用该函数的最简单方法相同。" + msgid "" "An error would occur when the arguments are not given in the appropriate " "order: In this example, the column ``id`` of the table ``ege_table`` is " "passed to the function as the geometry column, and the geometry column " "``the_geom`` is passed to the function as the id column." msgstr "" -"当参数未按适当顺序给出时会导致错误:在此示例中,表 ``ege_table`` 的列``id`` " -"被错误地传递给函数作为几何列,而几何列 ``the_geom``被错误地传递给函数作为 id " +"当参数未按适当顺序给出时会导致错误:在此示例中,表 ``ege_table`` 的列``id``被" +"错误地传递给函数作为几何列,而几何列 ``the_geom`` 被错误地传递给函数作为 id " "列。" msgid "" @@ -10316,7 +10670,7 @@ msgid "" "passed to the function AS the geometry column, and the geometry column " "``mygeom`` is passed to the function AS the id column." msgstr "" -"当参数未按适当的顺序给出时,会导致错误。在这个示例中,表``mytable``的列 " +"当参数未按适当的顺序给出时,会导致错误。在这个示例中,表 ``mytable`` 的列 " "``gid`` 被错误地传递给函数作为几何列,而几何列``mygeom`` 被错误地传递给函数作" "为 id 列。" @@ -10324,7 +10678,8 @@ msgid "" "In this scenario omitting a parameter would create an error because the " "default values for the column names do not match the column names of the " "table. The order of the parameters do not matter:" -msgstr "在这种情况下,省略参数会产生错误,因为列名的默认值与表中的列名不一致。参数的" +msgstr "" +"在这种情况下,省略参数会产生错误,因为列名的默认值与表中的列名不一致。参数的" "顺序并不重要:" msgid "Based on id:" @@ -10336,7 +10691,7 @@ msgstr "创建路由拓扑" msgid "" "An alternate method to create a routing topology use :doc:" "`pgr_extractVertices`" -msgstr "使用 :doc:`pgr_extractVertices`创建路由拓扑的替代方法" +msgstr "使用 :doc:`pgr_extractVertices` 创建路由拓扑的替代方法" msgid "Make sure the database does not have the ``vertices_table``" msgstr "确保数据库没有 ``vertices_table``" @@ -10368,10 +10723,10 @@ msgid "Create the routing topology on the edge table" msgstr "在边表上创建路由拓扑" msgid "Updating the ``source`` information" -msgstr "更新``source``信息" +msgstr "更新 ``source`` 信息" msgid "Updating the ``target`` information" -msgstr "更新``target``信息" +msgstr "更新 ``target`` 信息" msgid "Inspect the routing topology" msgstr "检查路由拓扑" @@ -10399,10 +10754,10 @@ msgid "" msgstr "``pgr_createVerticesTable`` — 根据 source和target信息重建顶点表。" msgid "``OK`` after the vertices table has been reconstructed." -msgstr "``OK``重建顶点表后。" +msgstr "``OK`` 重建顶点表后。" msgid "``FAIL`` when the vertices table was not reconstructed due to an error." -msgstr "``FAIL``当由于错误而未重建顶点表时。" +msgstr "``FAIL`` 当由于错误而未重建顶点表时。" msgid "" "pgr_createVerticesTable(edge_table, [``the_geom, source, target, " @@ -10412,21 +10767,21 @@ msgstr "" "rows_where``])" msgid "" -"The reconstruction of the vertices table function accepts the following " +"The reconstruction of the vertices table function accepts the following " "parameters:" -msgstr "顶点表的重建函数接受以下参数:" +msgstr "顶点表重建函数接受以下参数:" msgid "" -"``text`` Condition to SELECT a subset or rows. Default value is ``true`` " -"to indicate all rows." -msgstr "``text`` 用于选择行的子集的条件。默认值为 ``true``,表示选择所有行。" +"``text`` Condition to SELECT a subset or rows. Default value is ``true`` to " +"indicate all rows." +msgstr "``text`` 用于选择行的条件。默认值为 ``true`` 表示选择所有行。" msgid "" "Fills ``id`` and ``the_geom`` columns of the vertices table based on the " "source and target columns of the edge table." msgstr "" -"根据边表的源点(source)和目标点(target)列,填充顶点表的``id``和" -"``the_geom``列。" +"根据边表的源点(source)和目标点(target)列,填充顶点表的 ``id`` 和" +"``the_geom`` 列。" msgid "The names of source, target are the same." msgstr "source, target的名称相同。" @@ -10435,31 +10790,28 @@ msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "as incoming. See :doc:`pgr_analyzeOneWay`." msgstr "" -"``integer``edge_table 中引用该顶点作为传入的顶点数。 请参阅 :doc:" +"``integer`` edge_table 中引用该顶点作为传入的顶点数。 请参阅 :doc:" "`pgr_analyzeOneWay`。" msgid "" "``integer`` Number of vertices in the edge_table that reference this vertex " "as outgoing. See :doc:`pgr_analyzeOneWay`." msgstr "" -"``integer``Edge_table 中引用该顶点作为传出的顶点数。 请参阅 :doc:" +"``integer`` Edge_table 中引用该顶点作为传出的顶点数。 请参阅 :doc:" "`pgr_analyzeOneWay`。" msgid "The simplest way to use pgr_createVerticesTable" msgstr "使用 pgr_createVerticesTable 最简单的方法" -msgid "When the arguments are given in the order described in the parameters:" -msgstr "当参数按照参数中描述的顺序给出时:" - msgid "" "An error would occur when the arguments are not given in the appropriate " "order: In this example, the column source column ``source`` of the table " "``mytable`` is passed to the function as the geometry column, and the " "geometry column ``the_geom`` is passed to the function as the source column." msgstr "" -"当参数没有按照适当的顺序提供时,将会发生错误:在这个例子中,表``mytable``的源" -"列``source``被错误地传递给函数作为几何列,而几何列``the_geom``被错误地传递给" -"函数作为源列。" +"当参数没有按照适当的顺序提供时,将会发生错误:在这个例子中,表 ``mytable`` 的" +"源列 ``source`` 被错误地传递给函数作为几何列,而几何列``the_geom`` 被错误地传" +"递给函数作为源列。" msgid "Example 4" msgstr "示例 4" @@ -10479,7 +10831,7 @@ msgstr "示例 7" msgid "" "Selecting the rows where the geometry is near the geometry of row with " "``id`` =5 ." -msgstr "选择几何与具有``id``=5的行的几何接近的行。" +msgstr "选择几何与具有 ``id`` =5的行的几何接近的行。" msgid "Example 8" msgstr "示例 8" @@ -10497,8 +10849,8 @@ msgid "" "``mygeom`` is passed to the function as the source column." msgstr "" "当参数没有按照适当的顺序提供时,会发生错误。在这个例子中,表 ``mytable`` 的" -"``src``列被错误地传递给函数作为几何列,而几何列``mygeom``被错误地传递给函数作" -"为源列。" +"``src`` 列被错误地传递给函数作为几何列,而几何列 ``mygeom`` 被错误地传递给函" +"数作为源列。" msgid "Example 10" msgstr "示例 10" @@ -10524,7 +10876,7 @@ msgstr "示例 14" msgid "" "Selecting the rows where the geometry is near the geometry of row with " "``gid`` = 5." -msgstr "选择几何与具有``gid``=5的行的几何接近的行。" +msgstr "选择几何与具有 ``gid`` =5的行的几何接近的行。" msgid "Example 15" msgstr "示例 15" @@ -10539,14 +10891,15 @@ msgid "Example 17" msgstr "示例 17" msgid "" -":doc:`topology-functions` for an overview of a topology for routing " +":doc:`topology-functions` for an overview of a topology for routing " "algorithms." -msgstr ":doc:`topology-functions` 用于路由算法拓扑的概述。" +msgstr ":doc:`topology-functions` 用于路由算法的拓扑概述。" msgid "" ":doc:`pgr_createTopology` ` to create a topology based " "on the geometry." -msgstr ":doc:`pgr_createTopology` `根据几何图形创建拓扑。" +msgstr "" +":doc:`pgr_createTopology` ` 根据几何图形创建拓扑。" msgid "" ":doc:`pgr_analyzeGraph` to analyze the edges and vertices of the edge table." @@ -10580,21 +10933,22 @@ msgid "" "The vertices are basically assigned a breadth-first search order, except " "that at each step, the adjacent vertices are placed in the queue in order of " "increasing degree." -msgstr "顶点的搜索顺序基本上是广度优先,只不过在每一步中,相邻的顶点会按照度数递增的" +msgstr "" +"顶点的搜索顺序基本上是广度优先,只不过在每一步中,相邻的顶点会按照度数递增的" "顺序排列在队列中。" msgid "The implementation is for **undirected** graphs." -msgstr "该实现适用于**无向**图。" +msgstr "该实现适用于 **无向** 图。" msgid "" "The bandwidth minimization problems are considered NP-complete problems." msgstr "带宽最小化问题被认为是NP完全问题。" msgid "The running time complexity is: :math:`O(m log(m)|V|)`" -msgstr "运行时间复杂度为::math:`O(m log(m)|V|)`" +msgstr "运行时间复杂度为: :math:`O(m log(m)|V|)`" msgid "where :math:`|V|` is the number of vertices," -msgstr "其中 :math:`|V|`是顶点数," +msgstr "其中 :math:`|V|` 是顶点数," msgid ":math:`m` is the maximum degree of the vertices in the graph." msgstr ":math:`m` 是图中顶点的最大度数。" @@ -10602,11 +10956,14 @@ msgstr ":math:`m` 是图中顶点的最大度数。" msgid "pgr_cuthillMckeeOrdering(`Edges SQL`_)" msgstr "pgr_cuthillMckeeOrdering(`Edges SQL`_)" +msgid "Returns set of |result-node-order|" +msgstr "Returns set of |result-node-order|" + msgid "Graph ordering of pgRouting :doc:`sampledata`" msgstr "pgRouting :doc:`sampledata` 的图形排序" -msgid "Returns SET OF ``(seq, node)``" -msgstr "Returns SET OF ``(seq, node)``" +msgid "Returns set of ``(seq, node)``" +msgstr "返回 ``(seq, node)`` 的集合" msgid "Sequence of the order starting from 1." msgstr "从1开始的顺序序列。" @@ -10622,26 +10979,24 @@ msgstr "" "cuthill_mckee_ordering.html>`__" msgid "" -"`Wikipedia: Cuthill-McKee Ordering `__" +"`Wikipedia: Cuthill-McKee Ordering `__" msgstr "" -"`Wikipedia: Cuthill-McKee 排序 `__" +"`Wikipedia: Cuthill-McKee 排序 `__" msgid "pgr_dagShortestPath - Experimental" msgstr "pgr_dagShortestPath - 实验" +#, fuzzy msgid "" -"``pgr_dagShortestPath`` — Returns the shortest path(s) for weighted directed " +"``pgr_dagShortestPath`` — Returns the shortest path for weighted directed " "acyclic graphs(DAG). In particular, the DAG shortest paths algorithm " "implemented by Boost.Graph." msgstr "" "``pgr_dagShortestPath`` — 返回加权有向无环图(DAG)的最短路径(path)。特别" "是,由Boost.Graph实现的DAG最短路径算法。" -msgid "New **experimental** function:" -msgstr "新的**实验**函数:" - msgid "pgr_dagShortestPath(Combinations)" msgstr "pgr_dagShortestPath(组合)" @@ -10657,13 +11012,14 @@ msgstr "" msgid "" "This implementation can only be used with a **directed** graph with no " "cycles i.e. directed acyclic graph." -msgstr "这个实现只能用于**有向**图,且没有循环,即有向无环图。" +msgstr "这个实现只能用于 **有向** 图,且没有循环,即有向无环图。" msgid "" "The algorithm relies on topological sorting the dag to impose a linear " "ordering on the vertices, and thus is more efficient for DAG's than either " "the Dijkstra or Bellman-Ford algorithm." -msgstr "该算法依靠对 DAG 进行拓扑排序来对顶点进行线性排序,因此比 Dijkstra 或 " +msgstr "" +"该算法依靠对 DAG 进行拓扑排序来对顶点进行线性排序,因此比 Dijkstra 或 " "Bellman-Ford 算法更有效率。" msgid "" @@ -10672,19 +11028,19 @@ msgid "" msgstr "该过程仅对加权有向无环图有效。 否则它会抛出警告。" msgid "The `agg_cost` the non included values `(v, v)` is `0`" -msgstr "`agg_cost`中未包括的值`(v, v)`的成本为`0`" +msgstr "`agg_cost`中未包括的值`(v, v)` 的成本为`0`" msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`" -msgstr "`agg_cost`中未包括的值 `(u, v)`是数学符号中的:math:`\\infty`" +msgstr "`agg_cost`中未包括的值 `(u, v)`是数学符号中的 :math:`\\infty`" msgid "Running time: :math:`O(| start\\_vids | * (V + E))`" -msgstr "运行时间::math:`O(| start\\_vids | * (V + E))`" +msgstr "运行时间: :math:`O(| start\\_vids | * (V + E))`" -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" -msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" +msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" +msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" -msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" +msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" +msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" msgid "pgr_dagShortestPath(`Edges SQL`_, **start vids**, **end vid**)" msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vids**, **end vid**)" @@ -10695,21 +11051,22 @@ msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vids**, **end vids**)" msgid "pgr_dagShortestPath(`Edges SQL`_, `Combinations SQL`_)" msgstr "pgr_dagShortestPath(`Edges SQL`_, `Combinations SQL`_)" -msgid "From vertex :math:`5` to vertex :math:`11` on a **directed** graph" -msgstr "在**有向**图上,从顶点:math:`5`到顶点 :math:`11`" +msgid "From vertex :math:`5` to vertex :math:`11` on a **directed** graph" +msgstr "在 **有向** 图上,从顶点 :math:`5` 到顶点 :math:`11`" msgid "From vertex :math:`5` to vertices :math:`\\{7, 11\\}`" -msgstr "从顶点:math:`5`到顶点 :math:`\\{7, 11\\}`" +msgstr "从顶点 :math:`5` 到顶点 :math:`\\{7, 11\\}`" msgid "From vertices :math:`\\{5, 10\\}` to vertex :math:`11`" -msgstr "从顶点:math:`\\{5, 10\\}`到顶点 :math:`11`" +msgstr "从顶点 :math:`\\{5, 10\\}` 到顶点 :math:`11`" msgid "" "From vertices :math:`\\{5, 15\\}` to vertices :math:`\\{11, 17\\}` on an " "**undirected** graph" -msgstr "在**无向**图上,从顶点:math:`\\{5, 15\\}`到顶点:math:`\\{11, 17\\}`" +msgstr "" +"在 **无向** 图上,从顶点 :math:`\\{5, 15\\} ` 到顶点 :math:`\\{11, 17\\}`" -msgid "Resturn Columns" +msgid "Return columns" msgstr "返回列" msgid "Making **start_vids** the same as **end_vids**" @@ -10727,10 +11084,11 @@ msgid "" msgstr "``pgr_degree`` —对于无向图中的每个顶点,返回与该顶点关联的边的计数。" msgid "Calculates the degree of the vertices of an **undirected** graph" -msgstr "计算**无向**图顶点的度数" +msgstr "计算 **无向** 图顶点的度数" +#, fuzzy msgid "pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``])" -msgstr "pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``])" +msgstr "pgr_degree(`Edges SQL`_ , `Vertex SQL`_ , [``dryrun``])" msgid "RETURNS SETOF |result-degree|" msgstr "RETURNS SETOF |result-degree|" @@ -10744,7 +11102,7 @@ msgid "" "best to prep your vertices table before hand and use that vertices table for " "pgr_degree calls." msgstr "" -"`pgr_degree`可以利用`pgr_extractVertices`的输出,或者可以在调用中嵌入" +"`pgr_degree`可以利用 `pgr_extractVertices` 的输出,或者可以在调用中嵌入" "`pgr_extractVertices`。对于较大规模的网络,最好提前准备好顶点表并在" "`pgr_degree`调用中使用该顶点表。" @@ -10752,7 +11110,7 @@ msgid "`Vertex SQL`_" msgstr "`Vertex SQL`_" msgid "`Vertex SQL`_ as described below" -msgstr "`Vertex SQL`_如下所述" +msgstr "`Vertex SQL`_ 如下所述" msgid "``dryrun``" msgstr "``dryrun``" @@ -10772,10 +11130,10 @@ msgstr "``BIGINT[]``" msgid "" "Array of identifiers of the edges that have the vertex ``id`` as *first end " "point*." -msgstr "以顶点``id``作为*第一个端点*的边的标识符数组。" +msgstr "以顶点 ``id`` 作为*第一个端点*的边的标识符数组。" msgid "When missing, ``out_edges`` must exist." -msgstr "当缺失时,``out_edges``必须存在。" +msgstr "当缺失时, ``out_edges`` 必须存在。" msgid "``out_edges``" msgstr "``out_edges``" @@ -10783,10 +11141,10 @@ msgstr "``out_edges``" msgid "" "Array of identifiers of the edges that have the vertex ``id`` as *second end " "point*." -msgstr "以顶点``id``作为*第二个端点*的边的标识符数组。" +msgstr "以顶点 ``id`` 作为*第二个端点*的边的标识符数组。" msgid "When missing, ``in_edges`` must exist." -msgstr "缺失时,``in_edges`` 必须存在。" +msgstr "缺失时, ``in_edges`` 必须存在。" msgid "Vertex identifier" msgstr "顶点标识符" @@ -10808,6 +11166,11 @@ msgid "" "=> true``." msgstr "要获取用于生成顶点信息的查询,请使用 ``dryrun => true``。" +msgid "" +"The results can be used as base code to make a refinement based on the " +"backend development needs." +msgstr "结果可作为基础代码,根据后台开发需要进行改进。" + msgid "Degree from an existing table" msgstr "来自现有表的度数" @@ -10816,8 +11179,8 @@ msgid "" "want the degree of the whole graph rather than a subset, you can forgo using " "pgr_degree and work with the ``in_edges`` and ``out_edges`` columns directly." msgstr "" -"如果您已经使用 ``pgr_extractVertices``构建了一个顶点表,并且想要整个图的度而" -"不是子集,则可以放弃使用 pgr_ Degree 并直接使用 ``in_edges`` 和 ``out_edges``" +"如果您已经使用 ``pgr_extractVertices`` 构建了一个顶点表,并且想要整个图的度而" +"不是子集,则可以放弃使用 pgr_degree 并直接使用 ``in_edges`` 和 ``out_edges`` " "列。" msgid ":doc:`pgr_extractVertices`" @@ -10837,7 +11200,7 @@ msgid "Version 3.3.0" msgstr "版本 3.3.0" msgid "Promoted to **proposed** function" -msgstr "升级至**拟议**函数" +msgstr "升级至 **拟议** 函数" msgid "``pgr_depthFirstSearch`` (`Single Vertex`_)" msgstr "``pgr_depthFirstSearch`` (`单个顶点`_)" @@ -10858,7 +11221,7 @@ msgstr "" msgid "" "The implementation works for both **directed** and **undirected** graphs." -msgstr "该实现适用于**有向**图和**无向**图。" +msgstr "该实现适用于 **有向** 图和 **无向** 图。" msgid "" "Provides the Depth First Search traversal order from a root vertex or from a " @@ -10898,7 +11261,7 @@ msgid "**options:** ``[directed, max_depth]``" msgstr "**options:** ``[directed, max_depth]``" msgid "Same as `Single vertex`_ but with edges in descending order of ``id``." -msgstr "与 `单顶点`_相同,但边按``id``降序排列。" +msgstr "与 `单顶点`_ 相同,但边按 ``id`` 降序排列。" msgid "" "`Boost: Depth First Search algorithm documentation `__" msgid "``pgr_dijkstra``" -msgstr "`pgr_dijkstra```" +msgstr "`pgr_dijkstra``" -msgid "``pgr_dijkstra`` — Shortest path(s) using Dijkstra algorithm." +#, fuzzy +msgid "``pgr_dijkstra`` — Shortest path using Dijkstra algorithm." msgstr "`pgr_dijkstra`` - 使用 Dijkstra 算法的最短路径。" msgid "Version 3.5.0" @@ -10932,13 +11296,13 @@ msgstr "版本 3.5.0" msgid "" "``pgr_dijkstra`` (`One to One`_) added ``start_vid`` and ``end_vid`` columns." -msgstr "``pgr_dijkstra`` (`一对一`_)增加``start_vid``和``end_vid``列。" +msgstr "``pgr_dijkstra`` (`一对一`_)增加``start_vid`` 和``end_vid`` 列。" msgid "``pgr_dijkstra`` (`One to Many`_) added ``end_vid`` column." msgstr "``pgr_dijkstra`` (`一对多`_) 增加``end_vid`` 列。" msgid "``pgr_dijkstra`` (`Many to One`_) added ``start_vid`` column." -msgstr "``pgr_dijkstra`` (`多对一`_) 增加 ``start_vid``列。" +msgstr "``pgr_dijkstra`` (`多对一`_) 增加 ``start_vid`` 列。" msgid "Version 3.1.0" msgstr "版本 3.1.0" @@ -10947,13 +11311,13 @@ msgid "``pgr_dijkstra`` (`Combinations`_)" msgstr "``pgr_dijkstra`` (`组合`_)" msgid "**Official** functions" -msgstr "**官方**函数" +msgstr "**官方** 函数" msgid "Version 2.2.0" msgstr "版本 2.2.0" msgid "New **proposed** functions:" -msgstr "新的**拟议**函数:" +msgstr "新的 **拟议** 函数:" msgid "``pgr_dijkstra`` (`One to Many`_)" msgstr "``pgr_dijkstra`` (`一对多`_)" @@ -10968,7 +11332,7 @@ msgid "Signature change on ``pgr_dijkstra`` (`One to One`_)" msgstr "``pgr_dijkstra`` (`一对一`_)的签名更改" msgid "**Official** ``pgr_dijkstra`` (`One to One`_)" -msgstr "**官方**``pgr_dijkstra`` (`一对一`_)" +msgstr "**官方** ``pgr_dijkstra`` (`一对一`_)" msgid "pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" msgstr "pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -10980,13 +11344,8 @@ msgstr "" msgid "pgr_dijkstra(`Edges SQL`_, **start vids**, **end vid**, [``directed``])" msgstr "pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" -msgid "" -"pgr_dijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" -msgstr "" -"pgr_dijkstra(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" - msgid "pgr_dijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "pgr_dijkstra(`Edges SQL`_,`Combinations SQL`_, [``directed`])" +msgstr "pgr_dijkstra(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgid "Breaking change on 3.5.0" msgstr "3.5.0 上的重大变更" @@ -10998,14 +11357,14 @@ msgstr "请阅读 :doc:`migration` 关于如何从旧的结果列迁移到新的 msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 17\\}` on a **directed**" -msgstr "在**有向**图上,从顶点 :math:`6`到顶点 :math:`\\{10, 17\\}`" +msgstr "在 **有向** 图上,从顶点 :math:`6` 到顶点 :math:`\\{10, 17\\}`" msgid "" "The examples of this section are based on the :doc:`sampledata` network." -msgstr "本节的示例基于 :doc:`示例数据` 网络。" +msgstr "本节的示例基于 :doc:`sampledata` 网络。" msgid "For **directed** graphs with ``cost`` and ``reverse_cost`` columns" -msgstr "对于带有 ``cost``和``reverse_cost``列的**有向**图" +msgstr "对于带有 ``cost`` 和 ``reverse_cost`` 列的 **有向** 图" msgid "Directed graph with cost and reverse cost columns" msgstr "带成本列和反向成本列的有向图" @@ -11049,7 +11408,7 @@ msgstr "" "路径 :math:`\\{6\\}\\rightarrow\\{10, 7\\}\\cup\\{12\\}\\rightarrow\\{10\\}`" msgid "For **undirected** graphs with ``cost`` and ``reverse_cost`` columns" -msgstr "对于带有 ``cost``和``reverse_cost``列的**无向**图" +msgstr "对于带有 ``cost`` 和 ``reverse_cost`` 列的 **无向** 图" msgid "Undirected graph with cost and reverse cost columns" msgstr "带成本列和反向成本列的无向图" @@ -11079,7 +11438,7 @@ msgid "16) Using `Combinations`_ to get the solution of examples 9 to 11" msgstr "16) 使用 `组合`_ 来获取示例9到11的解决方案" msgid "For **directed** graphs only with ``cost`` column" -msgstr "仅适用于**有向**图,且仅包含``cost``列" +msgstr "仅适用于 **有向** 图,且仅包含 ``cost`` 列" msgid "Directed graph only with cost column" msgstr "仅有成本列的有向图" @@ -11109,7 +11468,7 @@ msgid "24) Using `Combinations`_ to get the solution of examples 17 to 19" msgstr "24) 使用 `组合`_ 来获取示例17到19的解决方案" msgid "For **undirected** graphs only with ``cost`` column" -msgstr "仅适用于带有``cost``列的**无向**图" +msgstr "仅适用于带有 ``cost`` 列的 **无向** 图" msgid "Undirected graph only with cost column" msgstr "仅有成本列的无向图" @@ -11166,17 +11525,19 @@ msgstr "https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" msgid "``pgr_dijkstraCost``" msgstr "`pgr_dijkstraCost``" +#, fuzzy msgid "" -"``pgr_dijkstraCost`` - Total cost of the shortest path(s) using Dijkstra " +"``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra " "algorithm." msgstr "`pgr_dijkstraCost`` - 使用 Dijkstra 算法计算的最短路径总成本。" msgid "``pgr_dijkstraCost`` (`Combinations`_)" msgstr "``pgr_dijkstraCost`` (`组合`_)" +#, fuzzy msgid "" -"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest " -"path(s) using Dijkstra Algorithm." +"The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path " +"using Dijkstra Algorithm." msgstr "``pgr_dijkstraCost`` 函数总结了使用Dijkstra算法的最短路径的成本。" msgid "" @@ -11200,7 +11561,7 @@ msgstr "" "pgr_dijkstraCost(`Edges SQL`_, **start vids**, **end vids**, [``directed``])" msgid "pgr_dijkstraCost(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "pgr_dijkstraCost(`Edges SQL`_,`Combinations SQL`_, [`directed`])" +msgstr "pgr_dijkstraCost(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgid "``pgr_dijkstraCostMatrix``" msgstr "``pgr_dijkstraCostMatrix``" @@ -11214,7 +11575,7 @@ msgid "Using Dijkstra algorithm, calculate and return a cost matrix." msgstr "使用 Dijkstra 算法,计算并返回成本矩阵。" msgid "pgr_dijkstraCostMatrix(`Edges SQL`_, **start vids**, [``directed``])" -msgstr "pgr_dijkstraCostMatrix(`Edges SQL`_, **start vids**, [``directed`])" +msgstr "pgr_dijkstraCostMatrix(`Edges SQL`_, **start vids**, [``directed``])" msgid "``pgr_dijkstraNear`` - Proposed" msgstr "``pgr_dijkstraNear`` - 拟议" @@ -11236,7 +11597,7 @@ msgid "Uses Dijkstra algorithm." msgstr "使用 Dijkstra 算法。" msgid "Works for **directed** and **undirected** graphs." -msgstr "适用于**有向**和**无向**图。" +msgstr "适用于 **有向** 和 **无向** 图。" msgid "When there are more than one path to the same vertex with same cost:" msgstr "当有多条路径通向同一顶点且成本相同时:" @@ -11293,7 +11654,7 @@ msgstr "" "pgr_dijkstraNear(`Edges SQL`_, **start vids**, **end vids**, [**options B**])" msgid "pgr_dijkstraNear(`Edges SQL`_, `Combinations SQL`_, [**options B**])" -msgstr "pgr_dijkstraNear(`Edges SQL`_,`Combinations SQL`_, [**options B**])" +msgstr "pgr_dijkstraNear(`Edges SQL`_, `Combinations SQL`_, [**options B**])" msgid "**options A:** ``[directed, cap]``" msgstr "**选项A:** ``[directed, cap]``" @@ -11310,14 +11671,14 @@ msgid "**options:** ``[directed, cap]``" msgstr "**选项:** ``[directed, cap]``" msgid "Departing on car from vertex :math:`6` find the nearest subway station." -msgstr "从顶点:math:`6`乘车出发,找到最近的地铁站。" +msgstr "从顶点 :math:`6` 乘车出发,找到最近的地铁站。" msgid "Using a **directed** graph for car routing." -msgstr "使用**有向**图进行汽车路线规划。" +msgstr "使用 **有向** 图进行汽车路线规划。" msgid "" "The subway stations are on the following vertices :math:`\\{1, 10, 11\\}`" -msgstr "地铁站位于以下顶点上 :math:``{1, 10, 11\\}`" +msgstr "地铁站位于以下顶点上 :math:`\\{1, 10, 11\\}`" msgid "The defaults used:" msgstr "使用的默认值:" @@ -11339,10 +11700,10 @@ msgstr "" msgid "" "Departing on a car from a subway station find the nearest **two** stations " "to vertex :math:`2`" -msgstr "从地铁站开车出发,找到距离顶点 :math:`2`最近的**两个**车站" +msgstr "从地铁站开车出发,找到距离顶点 :math:`2` 最近的 **两个** 车站" msgid "On line `4`: using the positional parameter: `directed` set to ``true``" -msgstr "第`4`行:使用位置参数:`directed`设置为`true`" +msgstr "第 `4` 行:使用位置参数: `directed` 设置为`true`" msgid "In line `5`: using named parameter `cap => 2`" msgstr "第 `5` 行:使用命名参数 `cap => 2`" @@ -11358,19 +11719,19 @@ msgstr "" "pgr_dijkstraNear(`Edges SQL`_, **start vids**, **end vids**, [**options**])" msgid "**options:** ``[directed, cap, global]``" -msgstr "**选项:** ``[定向、上限、全局]```" +msgstr "**选项:** ``[定向、上限、全局]``" msgid "Find the best pedestrian connection between two lines of buses" msgstr "在两条公交线路之间寻找最佳的行人通道" msgid "Unsing an **undirected** graph for pedestrian routing" -msgstr "使用**无向**图进行行人路线规划" +msgstr "使用 **无向** 图进行行人路线规划" msgid "The first subway line stations are at :math:`\\{15, 16\\}`" msgstr "第一条地铁线的站点位于 :math:`\\{15, 16\\}`" msgid "The second subway line stations stops are at :math:`\\{1, 10, 11\\}`" -msgstr "地铁二号线的站点是:math:`\\{1, 10, 11\\}`" +msgstr "地铁二号线的站点是 :math:`\\{1, 10, 11\\}`" msgid "On line `4`: using the named parameter: `directed => false`" msgstr "第 `4` 行:使用命名参数:`directed => false`" @@ -11388,17 +11749,17 @@ msgstr "" msgid "" "Only `one` route is returned because `global` is ``true`` and `cap` is ``1``" -msgstr "只返回 `一条`路由,因为 `global` 为 `true` 且 `cap` 为 `1" +msgstr "只返回 `一条` 路由,因为 `global` 为 `true` 且 `cap` 为 ``1``" msgid "pgr_dijkstraNear(`Edges SQL`_, `Combinations SQL`_, [**options**])" -msgstr "pgr_dijkstraNear(`Edges SQL`_,`Combinations SQL`_, [**options**])" +msgstr "pgr_dijkstraNear(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgid "" "Find the best car connection between all the stations of two subway lines" msgstr "查找两条地铁线所有站点之间的最佳汽车连接线路" msgid "The first subway line stations stops are at :math:`\\{1, 10, 11\\}`" -msgstr "第一条地铁线的站点是:math:`\\{1, 10, 11\\}`" +msgstr "第一条地铁线的站点是 :math:`\\{1, 10, 11\\}`" msgid "The second subway line stations are at :math:`\\{15, 16\\}`" msgstr "地铁二号线站点位于 :math:`\\{15, 16\\}`" @@ -11430,7 +11791,7 @@ msgid "" "making a connection from the first subway line :math:`\\{1, 10, 11\\}` to " "the second :math:`\\{15, 16\\}`:" msgstr "" -"将第一条地铁线:math:`{1, 10, 11\\}` 连接到第二条地铁线:math:`{15, 16\\}`:" +"将第一条地铁线 :math:`{1, 10, 11\\}` 连接到第二条地铁线 :math:`{15, 16\\}`:" msgid "" "The best connections from all the stations from the first line are: :math:" @@ -11443,13 +11804,13 @@ msgid "" "The best one is :math:`(11 \\rightarrow 16)` with a cost of :math:`1` " "(lines: `11` and `12`)" msgstr "" -"最好的方法是 :math:`(11/rightarrow 16)`,成本是 :math:`1`(行:`11`和`12`)" +"最好的方法是 :math:`(11/rightarrow 16)`,成本是 :math:`1` (行:`11` 和`12`)" msgid "" "making a connection from the second subway line :math:`\\{15, 16\\}` to the " "first :math:`\\{1, 10, 11\\}`:" msgstr "" -"将第二条地铁线:math:`{15, 16\\}` 连接到第一条地铁线:math:`{1, 10, 11\\}`:" +"将第二条地铁线 :math:`{15, 16\\}` 连接到第一条地铁线 :math:`{1, 10, 11\\}`:" msgid "" "The best connections from all the stations from the second line are: :math:" @@ -11462,7 +11823,8 @@ msgid "" "Both are equaly good as they have the same cost. (lines: `13` and `14` and " "lines: `15` and `16`)" msgstr "" -"它们都一样好,因为它们具有相同的成本(线路:`13`和`14`以及线路:`15`和`16`)" +"它们都一样好,因为它们具有相同的成本(线路:`13` 和`14`以及线路:`15` 和" +"`16`)" msgid "Dijkstra optional parameters" msgstr "Dijkstra 可选参数" @@ -11471,7 +11833,7 @@ msgid "Near optional parameters" msgstr "接近可选参数" msgid "``cap``" -msgstr "`cap``" +msgstr "``cap``" msgid "Find at most ``cap`` number of nearest shortest paths" msgstr "查找最多 ``cap`` 条最近的最短路径" @@ -11480,10 +11842,10 @@ msgid "``global``" msgstr "``global``" msgid "When ``true``: only ``cap`` limit results will be returned" -msgstr "``true``时:仅返回``cap``结果" +msgstr "``true`` 时:仅返回 ``cap`` 结果" msgid "When ``false``: ``cap`` limit per ``Start vid`` will be returned" -msgstr "当 ``false` 时:将返回每个 ``Start vid` 的 ``cap` 限值" +msgstr "当 ``false`` 时:将返回每个 ``Start vid`` 的 ``cap`` 限值" msgid "boost: https://www.boost.org/libs/graph/doc/table_of_contents.html" msgstr "boost: https://www.boost.org/libs/graph/doc/table_of_contents.html" @@ -11523,7 +11885,7 @@ msgstr "" msgid "" "pgr_dijkstraNearCost(`Edges SQL`_, `Combinations SQL`_, [**options B**])" msgstr "" -"pgr_dijkstraNearCost(`Edges SQL`_,`Combinations SQL`_, [**options B**])" +"pgr_dijkstraNearCost(`Edges SQL`_, `Combinations SQL`_, [**options B**])" msgid "" "pgr_dijkstraNearCost(`Edges SQL`_, **start vid**, **end vids**, " @@ -11541,7 +11903,7 @@ msgstr "" msgid "" "Departing on a car from a subway station find the nearest **two** stations " "to vertex :math:`6`" -msgstr "从地铁站开车出发找到距离顶点:math:`6`最近的**两个**车站" +msgstr "从地铁站开车出发找到距离顶点 :math:`6` 最近的 **两个** 车站" msgid "" "pgr_dijkstraNearCost(`Edges SQL`_, **start vids**, **end vids**, " @@ -11551,7 +11913,7 @@ msgstr "" "[**options**])" msgid "pgr_dijkstraNearCost(`Edges SQL`_, `Combinations SQL`_, [**options**])" -msgstr "pgr_dijkstraNearCost(`Edges SQL`_,`Combinations SQL`_, [**options**])" +msgstr "pgr_dijkstraNearCost(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgid "" "lines `3~4` sets the start vertices to be from the fisrt subway line and the " @@ -11564,7 +11926,7 @@ msgid "" msgstr "最好的方法是 :math:`(11/rightarrow 16)`,成本是 :math:`1` (lines: `1`)" msgid "Both are equaly good as they have the same cost. (lines: `12` and `13`)" -msgstr "由于成本相同,所以两者同样好。(线路:`12`和 `13`)" +msgstr "由于成本相同,所以两者同样好。(线路:`12` 和 `13`)" msgid "``pgr_dijkstraVia`` - Proposed" msgstr "``pgr_dijkstraVia`` -拟议" @@ -11577,8 +11939,8 @@ msgid "" "the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :" "math:`i < size\\_of(via\\;vertices)`." msgstr "" -"给定一个顶点列表和一个图,该函数等价于为所有 :math:`i < size\\of(via\\;" -"vertices)` 的 :math:`vertex_i` 和 :math:`vertex_{i+1}` 之间找到最短路径。" +"给定一个顶点列表和一个图,该函数等价于为所有 :math:`i < size\\_of(via\\;" +"vertices)`的 :math:`vertex_i` 和 :math:`vertex_{i+1}` 之间找到最短路径。" msgid "Route" msgstr "路线" @@ -11601,11 +11963,14 @@ msgstr "pgr_dijkstraVia(`Edges SQL`_, **via vertices**, [**options**])" msgid "**options:** ``[directed, strict, U_turn_on_edge]``" msgstr "**选项:** ``[directed, strict, U_turn_on_edge]``" +msgid "Returns set of |via-result|" +msgstr "返回 |via-result| 的集合" + +#, fuzzy msgid "" "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that order " -"on an **directed** graph." -msgstr "" -"在一个**有向**图上,找出按此顺序访问顶点 :math:`\\{5, 1, 8\\}` 的路径。" +"on an directed graph." +msgstr "在有向图上查找按顺序访问顶点 :math:`\\{ 5, 1, 8\\}` 的路线。" msgid "Via optional parameters" msgstr "Via可选参数" @@ -11628,14 +11993,14 @@ msgstr "``route_agg_cost``" msgid "" "Total cost from ``start_vid`` of ``seq = 1`` to ``end_vid`` of the current " "``seq``." -msgstr "从 `seq = 1` 的 ``start_vid`` 到当前 `seq` 的 ``end_vid` 的总费用。" +msgstr "从 `seq = 1` 的 ``start_vid`` 到当前 `seq` 的 ``end_vid`` 的总费用。" msgid "" "All this examples are about the route that visits the vertices :math:`\\{5, " "7, 1, 8, 15\\}` in that order on a **directed** graph." msgstr "" -"所有这些示例都是关于在**有向**图上按顺序访问顶点 :math:`\\{5, 7, 1, 8, 15\\}" -"` 的路径。" +"所有这些示例都是关于在 **有向** 图上按顺序访问顶点 :math:`\\{5, 7, 1, 8, " +"15\\}` 的路径。" msgid "The main query" msgstr "主查询" @@ -11668,23 +12033,20 @@ msgid "" "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "``pgr_drivingDistance`` - 返回起始节点的行驶距离。" -msgid "Standarizing output columns to |result-spantree|" -msgstr "将输出列标准化为 |result-spantree|" - msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "添加了 ``depth`` 和 ``start_vid`` 结果列。" msgid "Result column name change: ``from_v`` to ``start_vid``." -msgstr "结果列名称更改:``from_v``改为 ``start_vid``。" +msgstr "结果列名称更改: ``from_v``改为 ``start_vid``。" msgid "Added ``depth`` and ``pred`` result columns." -msgstr "添加了 ``depth``和``pred``结果列。" +msgstr "添加了 ``depth`` 和``pred`` 结果列。" msgid "Signature change pgr_drivingDistance(single vertex)" msgstr "签名更改 pgr_drivingDistance(单顶点)" msgid "New **Official** pgr_drivingDistance(multiple vertices)" -msgstr "新**官方** pgr_drivingDistance(多顶点)" +msgstr "新 **官方** pgr_drivingDistance(多顶点)" msgid "Official:: pgr_drivingDistance(single vertex)" msgstr "官方:: pgr_drivingDistance(单顶点)" @@ -11694,15 +12056,13 @@ msgid "" "than or equal to the value ``distance``. The edges extracted will conform to " "the corresponding spaning tree." msgstr "" -"使用Dijkstra算法,提取所有成本小于或等于值``distance``的节点。提取的边将符合" -"相应的生成树。" +"使用Dijkstra算法,提取所有成本小于或等于值 ``distance`` 的节点。提取的边将符" +"合相应的生成树。" msgid "" -"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, " -"[``directed``])" +"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, [``directed``])" msgstr "" -"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, " -"[``directed``])" +"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, [``directed``])" msgid "" "pgr_drivingDistance(`Edges SQL`_, **Root vids**, **distance**, [**options**])" @@ -11716,7 +12076,7 @@ msgid "Single Vertex" msgstr "单顶点" msgid "From vertex :math:`11` for a distance of :math:`3.0`" -msgstr "从顶点:math:`11`到:math:`3.0`的距离" +msgstr "从顶点 :math:`11` 到 :math:`3.0` 的距离" msgid "Multiple Vertices" msgstr "多顶点" @@ -11737,17 +12097,17 @@ msgid "" "When ``true`` the node will only appear in the closest ``start_vid`` list. " "Tie brakes are arbitrary." msgstr "" -"``true``时,节点只会出现在最近的 ``start_vid``列表中。绑定制动是任意的。" +"``true``时,节点只会出现在最近的 ``start_vid`` 列表中。绑定制动是任意的。" msgid "" "When ``false`` which resembles several calls using the single vertex " "signature." -msgstr "``false``时,类似于使用单顶点签名的多次调用。" +msgstr "``false`` 时,类似于使用单顶点签名的多次调用。" msgid "" "From vertices :math:`\\{11, 16\\}` for a distance of :math:`3.0` on an " "undirected graph" -msgstr "在无向图上,从顶点:math:`{11, 16\\}` 开始的距离为:math:`3.0`" +msgstr "在无向图上,从顶点 :math:`{11, 16\\}` 开始的距离为 :math:`3.0`" msgid "pgr_edgeColoring - Experimental" msgstr "pgr_edgeColoring - 实验" @@ -11766,7 +12126,7 @@ msgstr "" "条边没有相同的颜色。" msgid "The implementation is for **undirected** and **loop-free** graphs" -msgstr "针对**无向**和**无环**图实施" +msgstr "针对 **无向** 和 **无环** 图实施" msgid "loop free" msgstr "无环" @@ -11792,11 +12152,11 @@ msgstr "" msgid "" "the chromatic number :math:`x'(G)` (minimum number of colors needed for " -"proper edge coloring of graph) is equal to the degree :math:`\\Delta + 1` " -"of the graph, (:math:`x'(G) = \\Delta`)" +"proper edge coloring of graph) is equal to the degree :math:`\\Delta + 1` of " +"the graph, (:math:`x'(G) = \\Delta`)" msgstr "" -"色数 :math:`x'(G)`(适当的图边着色所需的最小颜色数)等于图的度 :math:`\\Delta" -" + 1`,即 :math:`x'(G) = \\Delta`" +"色数(chromatic number) :math:`x'(G)`(用于图的适当边着色所需的最小颜色数)" +"等于图的度 :math:`\\Delta + 1`( :math:`x'(G) = \\Delta`)" msgid "The algorithm tries to assign the least possible color to every edge." msgstr "该算法尝试为每条边分配尽可能少的颜色。" @@ -11823,11 +12183,11 @@ msgstr ":math:`|V|` 是图中的顶点数。" msgid "pgr_edgeColoring(`Edges SQL`_)" msgstr "pgr_edgeColoring(`Edges SQL`_)" -msgid "RETURNS SET OF |result-edge-color|" -msgstr "RETURNS SET OF |result-edge-color|" +msgid "Returns set of |result-edge-color|" +msgstr "Returns set of |result-edge-color|" msgid "Graph coloring of pgRouting :doc:`sampledata`" -msgstr "pgRouting :doc:`示例数据`的图着色" +msgstr "pgRouting :doc:`sampledata` 的图形着色" msgid "``pgr_edgeDisjointPaths``" msgstr "``pgr_edgeDisjointPaths``" @@ -11838,7 +12198,7 @@ msgid "" msgstr "``pgr_edgeDisjointPaths`` - 计算两组顶点之间的边不相交路径。" msgid "New **proposed** function:" -msgstr "新的**拟议**函数:" +msgstr "新的 **拟议** 函数:" msgid "pgr_edgeDisjointPaths(Combinations)" msgstr "pgr_edgeDisjointPaths(组合)" @@ -11895,29 +12255,31 @@ msgstr "" msgid "" "pgr_edgeDisjointPaths(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgstr "pgr_edgeDisjointPaths(`Edges SQL`_,`Combinations SQL`_, [``directed`])" +msgstr "" +"pgr_edgeDisjointPaths(`Edges SQL`_, `Combinations SQL`_, [``directed``])" -msgid "RETURNS SET OF |result-disjoint|" -msgstr "返回 |result-disjoint| 的集合" +msgid "Returns set of |result-disjoint|" +msgstr "Returns set of |result-disjoint|" -msgid "RETURNS SET OF |result-disjoint-1-1|" -msgstr "返回|result-disjoint-1-1|集合" +msgid "Returns set of |result-disjoint-1-1|" +msgstr "返回 |result-disjoint-1-1| 的集合" -msgid "RETURNS SET OF |result-disjoint-1-m|" -msgstr "返回 |result-disjoint-1-m|集合" +msgid "Returns set of |result-disjoint-1-m|" +msgstr "返回|result-disjoint-1-m|的集合" -msgid "RETURNS SET OF |result-disjoint-m-1|" -msgstr "返回|result-disjoint-m-1|集合" +msgid "Returns set of |result-disjoint-m-1|" +msgstr "Returns set of |result-disjoint-m-1|" -msgid "RETURNS SET OF |result-disjoint-m-m|" -msgstr "返回 |result-disjoint-m-m|集合" +msgid "Returns set of |result-disjoint-m-m|" +msgstr "返回|result-disjoint-m-m|的集合" msgid "" "Using a combinations table, equivalent to calculating result from vertices :" "math:`\\{5, 6\\}` to vertices :math:`\\{10, 15, 14\\}` on an undirected " "graph." -msgstr "使用组合表,相当于计算无向图上从顶点 :math:`\\{5, 6\\}`到顶点 :math:`\\{10, " -"15, 14\\}`的结果。" +msgstr "" +"使用组合表,相当于计算无向图上从顶点 :math:`\\{5, 6\\}` 到顶点 :math:`\\{10, " +"15, 14\\}` 的结果。" msgid "Manually assigned vertex combinations on an undirected graph." msgstr "在无向图上手动分配顶点组合。" @@ -11928,8 +12290,9 @@ msgstr "``pgr_edmondsKarp``" msgid "" "``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes " "the flow from the sources to the targets using Edmonds Karp Algorithm." -msgstr "``pgr_edmondsKarp`` —使用 Edmonds Karp " -"算法计算图边上的流量,以最大化从源到目标的流量。" +msgstr "" +"``pgr_edmondsKarp`` —使用 Edmonds Karp 算法计算图边上的流量,以最大化从源到目" +"标的流量。" msgid "``pgr_edmondsKarp`` (`Combinations`_)" msgstr "``pgr_edmondsKarp`` (`组合`_)" @@ -11953,7 +12316,7 @@ msgid "pgr_edmondsKarp(`Edges SQL`_, **start vids**, **end vids**)" msgstr "pgr_edmondsKarp(`Edges SQL`_, **start vids**, **end vids**)" msgid "pgr_edmondsKarp(`Edges SQL`_, `Combinations SQL`_)" -msgstr "pgr_edmondsKarp(`Edges SQL`_,`Combinations SQL`_)" +msgstr "pgr_edmondsKarp(`Edges SQL`_, `Combinations SQL`_)" msgid "https://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html" msgstr "https://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html" @@ -11962,12 +12325,11 @@ msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm" msgstr "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm" msgid "``pgr_edwardMoore - Experimental``" -msgstr "``pgr_edwardMoore -实验``" +msgstr "``pgr_edwardMoore - 实验``" msgid "" -"``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore " -"algorithm." -msgstr "``pgr_edwardMoore`` - 使用 Edward-Moore 算法返回最短路径。" +"``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore algorithm." +msgstr "`pgr_edwardMoore`` - 使用 Edward-Moore 算法返回最短路径。" msgid "``pgr_edwardMoore`` (`Combinations`_)" msgstr "``pgr_edwardMoore`` (`组合`_)" @@ -11990,9 +12352,9 @@ msgid "" "vertices in a weighted directed graph. The main difference between Edward " "Moore's Algorithm and Bellman Ford's Algorithm lies in the run time." msgstr "" -"Edward Moore算法是Bellman-Ford算法的改进。 " -"它可以计算加权有向图中从单个源顶点到所有其他顶点的最短路径。 Edward " -"Moore算法和Bellman-Ford算法之间的主要区别在于运行时间。" +"Edward Moore算法是Bellman-Ford算法的改进。 它可以计算加权有向图中从单个源顶点" +"到所有其他顶点的最短路径。 Edward Moore算法和Bellman-Ford算法之间的主要区别在" +"于运行时间。" msgid "" "The worst-case running time of the algorithm is :math:`O(| V | * | E |)` " @@ -12001,14 +12363,15 @@ msgid "" "complexity of :math:`O( | E | )` for random graphs. This is significantly " "faster in terms of computation speed." msgstr "" -"该算法的最坏运行时间为:math:`O(| V | * | E |)` ,类似于Bellman-" -"Ford算法的时间复杂度。然而,实验表明,对于随机图," -"该算法的平均运行时间复杂度为 :math:`O( | E | )`。这在计算速度上明显更快。" +"该算法的最坏运行时间为 :math:`O(| V | * | E |)` ,类似于Bellman-Ford算法的时" +"间复杂度。然而,实验表明,对于随机图,该算法的平均运行时间复杂度为 :math:" +"`O( | E | )`。这在计算速度上明显更快。" msgid "" "Thus, the algorithm is at-best, significantly faster than Bellman-Ford " "algorithm and is at-worst,as good as Bellman-Ford algorithm" -msgstr "因此,该算法在最好的情况下,明显快于 Bellman-Ford 算法,在最差的情况下,与 " +msgstr "" +"因此,该算法在最好的情况下,明显快于 Bellman-Ford 算法,在最差的情况下,与 " "Bellman-Ford 算法一样好" msgid "The `agg_cost` the non included values `(v, v)` is :math:`0`" @@ -12019,20 +12382,14 @@ msgid "" "vids` are ignored." msgstr "出于优化目的, `start vids` 或`end vids`中的任何重复值都将被忽略。" -msgid "`start vid` ascending" -msgstr "`start vid`升序" - -msgid "`end vid` ascending" -msgstr "`end vid`升序" - msgid "Running time:" msgstr "运行时间:" msgid "Worst case: :math:`O(| V | * | E |)`" -msgstr "最坏的情况::math:`O(| V | * | E |)`" +msgstr "最坏的情况: :math:`O(| V | * | E |)`" msgid "Average case: :math:`O( | E | )`" -msgstr "平均情况::math:`O( | E | )`" +msgstr "平均情况: :math:`O( | E | )`" msgid "" "pgr_edwardMoore(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -12067,7 +12424,7 @@ msgid "``pgr_extractVertices`` — Extracts the vertices information" msgstr "``pgr_extractVertices`` — 提取顶点信息" msgid "Classified as **proposed** function" -msgstr "列为**拟议**函数" +msgstr "列为 **拟议** 函数" msgid "" "This is an auxiliary function for extracting the vertex information of the " @@ -12103,8 +12460,9 @@ msgstr "边的几何形状。" msgid "" "This inner query takes precedence over the next two inner query, therefore " "other columns are ignored when ``geom`` column appears." -msgstr "该内部查询优先于接下来的两个内部查询,因此当``geom`` " -"列出现时,其他列将被忽略。" +msgstr "" +"该内部查询优先于接下来的两个内部查询,因此当 ``geom`` 列出现时,其他列将被忽" +"略。" msgid "Ignored columns:" msgstr "忽略的列:" @@ -12135,8 +12493,9 @@ msgstr "结束顶点POINT的几何图形。" msgid "" "This inner query takes precedence over the next inner query, therefore other " "columns are ignored when ``startpoint`` and ``endpoint`` columns appears." -msgstr "此内部查询优先于下一个内部查询,因此当出现``startpoint`` 和 " -"``endpoint``列时,其他列将被忽略。" +msgstr "" +"此内部查询优先于下一个内部查询,因此当出现 ``startpoint`` 和 ``endpoint`` 列" +"时,其他列将被忽略。" msgid "When identifiers of vertices are known" msgstr "当顶点的标识符已知时" @@ -12144,34 +12503,27 @@ msgstr "当顶点的标识符已知时" msgid "" "To use this inner query the columns ``geom``, ``startpoint`` and " "``endpoint`` should not be part of the set of columns." -msgstr "要使用此内部查询,列 " -"``geom``、``startpoint``和``endpoint``不应成为列集的一部分。" +msgstr "" +"要使用此内部查询,列 ``geom``、``startpoint`` 和``endpoint`` 不应成为列集的一" +"部分。" msgid "``NULL`` When the ``id`` is not part of the inner query" -msgstr "``NULL`` 当 ``id``不是内部查询的一部分时" +msgstr "``NULL`` 当 ``id`` 不是内部查询的一部分时" msgid "X value of the point geometry" msgstr "点几何的X值" msgid "``NULL`` When no geometry is provided" -msgstr "``NULL``当没有提供几何图形时" +msgstr "``NULL`` 当没有提供几何图形时" msgid "Geometry of the point" msgstr "点几何" -msgid "Dryrun execution" -msgstr "试运行执行" - msgid "" "To get the query generated used to get the vertex information, use ``dryrun :" "= true``." msgstr "要获取用于生成顶点信息的查询,请使用 ``dryrun := true``。" -msgid "" -"The results can be used as base code to make a refinement based on the " -"backend development needs." -msgstr "结果可作为基础代码,根据后台开发需要进行改进。" - msgid "``pgr_findCloseEdges``" msgstr "``pgr_findCloseEdges``" @@ -12179,7 +12531,7 @@ msgid "``pgr_findCloseEdges`` - Finds the close edges to a point geometry." msgstr "``pgr_findCloseEdges`` -查找点几何图形的闭合边。" msgid "New **proposed** signatures:" -msgstr "新的**拟议**签名:" +msgstr "新的 **拟议** 签名:" msgid "``pgr_findCloseEdges`` (`One point`_)" msgstr "``pgr_findCloseEdges`` (`一个点`_)" @@ -12217,8 +12569,8 @@ msgstr "" msgid "**options:** ``[cap, partial, dryrun]``" msgstr "**options:** ``[cap, partial, dryrun]``" -msgid "RETURNS SET OF |result-find|" -msgstr "RETURNS SET OF |result-find|" +msgid "Returns set of |result-find|" +msgstr "返回集合 |result-find|" msgid "One point" msgstr "一个点" @@ -12230,7 +12582,7 @@ msgid "Maximum one row answer." msgstr "最多回答一行。" msgid "Default: ``partial => true``" -msgstr "默认:``partial => true``" +msgstr "默认: ``partial => true``" msgid "With less calculations as possible." msgstr "尽可能减少计算。" @@ -12245,7 +12597,7 @@ msgid "Returns" msgstr "返回" msgid "values on ``edge_id``, ``fraction``, ``side`` columns." -msgstr "``edge_id``, ``fraction``, ``side``列的值。" +msgstr "``edge_id``, ``fraction``, ``side`` 列的值。" msgid "``NULL`` on ``distance``, ``geom``, ``edge`` columns." msgstr "``distance``, ``geom``, ``edge``列上为``NULL``。" @@ -12301,10 +12653,10 @@ msgstr "``partial``" msgid "" "When ``true`` only columns needed for :doc:`withPoints-category` are " "calculated." -msgstr "当为 ``true``时,只计算 :doc:`withPoints-category` 需要的列。" +msgstr "当为 ``true`` 时,只计算 :doc:`withPoints-category` 需要的列。" msgid "When ``false`` all columns are calculated" -msgstr "当为``false``时,所有的列都计算" +msgstr "当为 ``false`` 时,所有的列都计算" msgid "When ``false`` calculations are performed." msgstr "当为 ``false`` 时,执行计算。" @@ -12312,14 +12664,12 @@ msgstr "当为 ``false`` 时,执行计算。" msgid "" "When ``true`` calculations are not performed and the query to do the " "calculations is exposed in a PostgreSQL ``NOTICE``." -msgstr "当为``true`` 时,不执行计算,并在 PostgreSQL 的 " -"``NOTICE``中显示执行计算的查询。" +msgstr "" +"当为 ``true`` 时,不执行计算,并在 PostgreSQL 的 ``NOTICE`` 中显示执行计算的" +"查询。" msgid "The ``LINESTRING`` geometry of the edge." -msgstr "边的 ``LINESTRING``几何。" - -msgid "Returns set of |result-find|" -msgstr "返回集合 |result-find|" +msgstr "边的 ``LINESTRING`` 几何。" msgid "When :math:`cap = 1`, it is the closest edge." msgstr "当 :math:`cap = 1` 时,它是最近的边。" @@ -12330,7 +12680,7 @@ msgid "" msgstr "在 <0,1> 范围内的值,表示相对于边的第一个端点的相对位置。" msgid "Value in ``[r, l]`` indicating if the point is:" -msgstr "``[r, l]``中的值指示该点是否为:" +msgstr "``[r, l]`` 中的值指示该点是否为:" msgid "In the right ``r``." msgstr "在右边的 ``r``。" @@ -12348,10 +12698,10 @@ msgid "Distance from point to edge." msgstr "点到边缘的距离。" msgid "``NULL`` when ``cap = 1`` on the `One point`_ signature" -msgstr "``NULL``当在 `一个点`_签名,``cap = 1``时" +msgstr "``NULL`` 当在 `一个点`_ 签名,``cap = 1`` 时" msgid "``POINT`` geometry" -msgstr "``POINT``几何" +msgstr "``POINT`` 几何" msgid "" "`One Point`_: Contains the point on the edge that is ``fraction`` away from " @@ -12359,46 +12709,47 @@ msgid "" msgstr "`一个点`_:包含边缘上距边缘起点一小部分的点。" msgid "`Many Points`_: Contains the corresponding **original point**" -msgstr "`多个点`_:包含对应的**原始点**" +msgstr "`多个点`_:包含对应的 **原始点**" msgid "" "``LINESTRING`` geometry from the **original point** to the closest point of " "the edge with identifier ``edge_id``" -msgstr "从**原始点**到具有标识符``edge_id``的边的最近点的``LINESTRING``几何图形" +msgstr "" +"从 **原始点** 到具有标识符 ``edge_id`` 的边的最近点的 ``LINESTRING`` 几何图形" msgid "One point results" msgstr "单一点的结果" msgid "The green nodes is the **original point**" -msgstr "绿色节点是**原始点**" +msgstr "绿色节点是 **原始点**" msgid "" "The geometry ``geom`` is a point on the :math:`sp \\rightarrow ep` edge." -msgstr "几何``geom`` 是 :math:`sp \\rightarrow ep` 边上的一个点。" +msgstr "几何 ``geom`` 是 :math:`sp \\rightarrow ep` 边上的一个点。" msgid "" "The geometry ``edge`` is a line that connects the **original point** with " "``geom``" -msgstr "几何``edge``是连接**original point**和``geom``的线" +msgstr "几何 ``edge`` 是连接 **original point** 和 ``geom`` 的线" msgid "Many point results" msgstr "多点成果" msgid "The green nodes are the **original points**" -msgstr "绿色节点为**原始点**" +msgstr "绿色节点为 **原始点**" msgid "" -"The geometry ``geom``, marked as **g1** and **g2** are the **original " +"The geometry ``geom``, marked as **g1** and **g2** are the **original " "points**" -msgstr "几何体 ``geom``,标记 **g1** 和**g2**是**原始点**" +msgstr "标为 **g1** 和 **g2** 的几何体 ``geom`` 是 **原始点**" msgid "" "The geometry ``edge``, marked as **edge1** and **edge2** is a line that " "connects the **original point** with the closest point on the :math:`sp " "\\rightarrow ep` edge." msgstr "" -"标为 **edge1** 和 **edge2** 的几何图形 ``edge`` 是一条连接 ** 原始点** 和 " -":math:`sp \\rightarrow ep` 边上最近点的线。" +"标为 **edge1** 和 **edge2** 的几何图形 ``edge`` 是一条连接 ** 原始点** 和 :" +"math:`sp \\rightarrow ep` 边上最近点的线。" msgid "One point examples" msgstr "单点示例" @@ -12416,10 +12767,10 @@ msgid "Understanding the result" msgstr "了解结果" msgid "``NULL`` on ``geom``, ``edge``" -msgstr "``NULL`` 在 ``geom``, ``edge``上" +msgstr "``NULL`` 在 ``geom``, ``edge`` 上" msgid "``edge_id`` identifier of the edge close to the **original point**" -msgstr "``edge_id``靠近**原始点**的边的标识符" +msgstr "``edge_id`` 靠近 **原始点** 的边的标识符" msgid "" "Two edges are withing :math:`0.5` distance units from the **original " @@ -12432,18 +12783,19 @@ msgstr "对于边 :math:`5`:" msgid "" "``fraction``: The closest point from the **original point** is at the :math:" "`0.8` fraction of the edge :math:`5`." -msgstr "``fraction``:离 **原始点** 最近的点位于边 :math:`5` 处的 :math:`0.8` " -"分数位置。" +msgstr "" +"``fraction``:离 **原始点** 最近的点位于边 :math:`5` 处的 :math:`0.8` 分数位" +"置。" msgid "" "``side``: The **original point** is located to the left side of edge :math:" "`5`." -msgstr "``side``:**原始点** 位于边:math:`5`的左侧。" +msgstr "``side``: **原始点** 位于边 :math:`5` 的左侧。" msgid "" "``distance``: The **original point** is located :math:`0.1` length units " "from edge :math:`5`." -msgstr "``distance``:**原始点** 位于边 :math:`5` 的 :math:`0.1` 长度单位处。" +msgstr "``distance``: **原始点** 位于边 :math:`5` 的 :math:`0.1` 长度单位处。" msgid "For edge :math:`8`:" msgstr "对于边 :math:`8`:" @@ -12451,18 +12803,20 @@ msgstr "对于边 :math:`8`:" msgid "" "``fraction``: The closest point from the **original point** is at the :math:" "`0.89..` fraction of the edge :math:`8`." -msgstr "``fraction``:离 **原始点** 最近的点位于边 :math:`8` 的 :math:`0.89..` " -"分数位置。" +msgstr "" +"``fraction``:离 **原始点** 最近的点位于边 :math:`8` 的 :math:`0.89..` 分数位" +"置。" msgid "" "``side``: The **original point** is located to the right side of edge :math:" "`8`." -msgstr "``side``:**原始点** 位于边:math:`8` 的右侧。" +msgstr "``side``: **原始点** 位于边 :math:`8` 的右侧。" msgid "" "``distance``: The **original point** is located :math:`0.19..` length units " "from edge :math:`8`." -msgstr "``distance``:**原始点** 距离边 :math:`8`有 :math:`0.19..` 长度单位。" +msgstr "" +"``distance``: **原始点** 距离边 :math:`8` 有 :math:`0.19..` 长度单位。" msgid "One answer, all columns" msgstr "一个答案,所有列" @@ -12475,24 +12829,26 @@ msgstr "计算所有列" msgid "" "``edge_id`` identifier of the edge **closest** to the **original point**" -msgstr "``edge_id``与**原始点**最**接近**的边的标识符" +msgstr "``edge_id`` 与 **原始点** 最 **接近** 的边的标识符" msgid "" "From all edges within :math:`0.5` distance units from the **original " "point**: :math:`{5}` is the closest one." -msgstr "从距离**原始点**不超过 :math:`0.5` 距离单位的所有边中,边 :math:`{5}` " -"是最近的一条。" +msgstr "" +"从距离 **原始点** 不超过 :math:`0.5` 距离单位的所有边中,边 :math:`{5}` 是最" +"近的一条。" msgid "" "``geom``: Contains the geometry of the closest point on edge :math:`5` from " "the **original point**." -msgstr "``geom``:包含了从**原始点**到边 :math:`5` 上最近点的几何形状。" +msgstr "``geom``:包含了从 **原始点** 到边 :math:`5` 上最近点的几何形状。" msgid "" "``edge``: Contains the ``LINESTRING`` geometry of the **original point** to " "the closest point on on edge :math:`5` ``geom``" -msgstr "``edge``:包含了从**原始点**到边 :math:`5```geom`` " -"上最近点的``LINESTRING``几何形状" +msgstr "" +"``edge``:包含了从 **原始点** 到边 :math:`5` ``geom`` 上最近点的 " +"``LINESTRING`` 几何形状" msgid "At most two answers with all columns" msgstr "所有列最多有两个答案" @@ -12503,13 +12859,14 @@ msgstr "了解结果:" msgid "" "``geom``: Contains the geometry of the closest point on edge :math:`8` from " "the **original point**." -msgstr "``geom``:包含了从**原始点**到边 :math:`8` 上最近点的几何形状。" +msgstr "``geom``:包含了从 **原始点** 到边 :math:`8` 上最近点的几何形状。" msgid "" "``edge``: Contains the ``LINESTRING`` geometry of the **original point** to " "the closest point on on edge :math:`8` ``geom``" -msgstr "``edge``:包含了从**原始点**到边 :math:`8` " -"``geom``上最近点的``LINESTRING``几何形状" +msgstr "" +"``edge``:包含了从 **原始点** 到边 :math:`8` ``geom`` 上最近点的 " +"``LINESTRING`` 几何形状" msgid "One point dry run execution" msgstr "单点模拟执行" @@ -12526,8 +12883,9 @@ msgstr "被忽略" msgid "" "Because it is a **dry run** excecution, the code for all calculations are " "shown on the PostgreSQL ``NOTICE``." -msgstr "由于这是一次 **模拟** 执行,所有计算的代码都显示在 PostgreSQL 的 " -"``NOTICE``中。" +msgstr "" +"由于这是一次 **模拟** 执行,所有计算的代码都显示在 PostgreSQL 的 ``NOTICE`` " +"中。" msgid "``dryrun => true``" msgstr "``dryrun => true``" @@ -12540,7 +12898,7 @@ msgid "" msgstr "生成一个包含用于计算所有列的代码的 PostgreSQL ``NOTICE``" msgid "``cap`` and **original point** are used in the code" -msgstr "代码中使用了``cap``和 **原始点**" +msgstr "代码中使用了 ``cap`` 和 **原始点**" msgid "Many points examples" msgstr "多点示例" @@ -12553,12 +12911,13 @@ msgstr "``edge``为``NULL``" msgid "" "``edge_id`` identifier of the edge close to a **original point** (``geom``)" -msgstr "``edge_id``是与一个**原始点**(``geom``)靠近的边的标识符" +msgstr "``edge_id``是与一个 **原始点** (``geom``)靠近的边的标识符" msgid "" "Two edges at most withing :math:`0.5` distance units from each of the " "**original points**:" -msgstr "每个**原始点**中,最多有两条边位于距离不超过 :math:`0.5`距离单位的范围内:" +msgstr "" +"每个 **原始点** 中,最多有两条边位于距离不超过 :math:`0.5` 距离单位的范围内:" msgid "For ``POINT(1.8 0.4)`` and ``POINT(0.3 1.8)`` only one edge was found." msgstr "对于 ``POINT(1.8 0.4)`` 和 ``POINT(0.3 1.8)`` ,只找到一条边。" @@ -12572,27 +12931,29 @@ msgstr "对于点 ``POINT(2.9 1.8)``" msgid "" "Edge :math:`5` is before :math:`8` therefore edge :math:`5` has the shortest " "distance to ``POINT(2.9 1.8)``." -msgstr "边 :math:`5` 在:math:`8` 之前,因此边 :math:`5` 到``POINT(2.9 1." -"8)``的距离最短。" +msgstr "" +"边 :math:`5` 在 :math:`8` 之前,因此边 :math:`5` 到 ``POINT(2.9 1.8)`` 的距离" +"最短。" msgid "One answer per point, all columns" msgstr "每点一个答案,所有列" msgid "For the **original point** ``POINT(2.9 1.8)``" -msgstr "对于**原始点** ``POINT(2.9 1.8)``" +msgstr "对于 **原始点** ``POINT(2.9 1.8)``" msgid "Edge :math:`5` is the closest edge to the **original point**" -msgstr "边 :math:`5`是距离**原始点**最近的边" +msgstr "边 :math:`5` 是距离 **原始点** 最近的边" msgid "" "``geom``: Contains the geometry of the **original point** ``POINT(2.9 1.8)``" -msgstr "``geom``:包含了**原始点**的几何形状,即 ``POINT(2.9 1.8)``" +msgstr "``geom``:包含了 **原始点** 的几何形状,即 ``POINT(2.9 1.8)``" msgid "" "``edge``: Contains the ``LINESTRING`` geometry of the **original point** " "(``geom``) to the closest point on on edge." -msgstr "``edge``:包含了**原始点**(``geom``)到最接近的边上的``LINESTRING``几何形状" -"。" +msgstr "" +"``edge``:包含了 **原始点** (``geom``)到最接近的边上的 ``LINESTRING`` 几何" +"形状。" msgid "Many points dry run execution" msgstr "多点模拟执行" @@ -12601,7 +12962,7 @@ msgid "Find at most two routes to a given point" msgstr "最多找到两条到达给定点的路线" msgid "Using :doc:`pgr_withPoints`" -msgstr "使用:doc:`pgr_withPoints`" +msgstr "使用 :doc:`pgr_withPoints`" msgid "A point of interest table" msgstr "兴趣点表" @@ -12616,13 +12977,14 @@ msgid "" "Some times the applications work \"on the fly\" starting from a location " "that is not a vertex in the graph. Those locations, in pgRrouting are called " "points of interest." -msgstr "有时应用程序会“即时执行”,从不是图中顶点的位置开始。在pgRouting中,这些位置被" +msgstr "" +"有时应用程序会“即时执行”,从不是图中顶点的位置开始。在pgRouting中,这些位置被" "称为兴趣点。" msgid "" "The information needed in the points of interest is ``pid``, ``edge_id``, " "``side``, ``fraction``." -msgstr "兴趣点所需的信息包括``pid``, ``edge_id``, ``side``, ``fraction``。" +msgstr "兴趣点所需的信息包括 ``pid``, ``edge_id``, ``side``, ``fraction``。" msgid "" "On this documentation there will be some 6 fixed points of interest and they " @@ -12678,7 +13040,7 @@ msgid "pgr_floydWarshall(`Edges SQL`_, [``directed``])" msgstr "pgr_floydWarshall(`Edges SQL`_, [``directed``])" msgid "For a directed subgraph with edges :math:`\\{1, 2, 3, 4\\}`." -msgstr "对于有边 :math:`\\{1, 2, 3, 4\\}`的有向子图。" +msgstr "对于有边 :math:`\\{1, 2, 3, 4\\}` 的有向子图。" msgid "" "Boost `floyd-Warshall `_" msgid "Queries uses the :doc:`sampledata` network." -msgstr "查询使用 :doc:`示例数据`网络。" +msgstr "查询使用 :doc:`sampledata` 网络。" msgid "``pgr_full_version``" msgstr "``pgr_full_version``" @@ -12698,7 +13060,7 @@ msgid "" msgstr "``pgr_full_version`` — 获取pgRouting版本信息的详细信息。." msgid "New **official** function" -msgstr "**官方**新功能" +msgstr "**官方** 新功能" msgid "Get complete details of pgRouting version information" msgstr "获取 pgRouting 版本信息的完整详细信息" @@ -12770,9 +13132,9 @@ msgid "``pgr_hawickCircuits - Experimental``" msgstr "``pgr_hawickCircuits - 实验``" msgid "" -"``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits " +"``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits " "algorithm." -msgstr "``pgr_hawickCircuits`` — 使用 Hawick 回路算法返回回路列表。" +msgstr "``pgr_hawickCircuits`` — 使用 Hawick 回路算法返回回路列表。" msgid "``pgr_hawickCircuits``" msgstr "``pgr_hawickCircuits``" @@ -12813,22 +13175,22 @@ msgid "The algorithm outputs the distinct circuits present in the graph." msgstr "该算法输出图中存在的不同电路。" msgid "Time Complexity: :math:`O((V + E) (c + 1))`" -msgstr "时间复杂度::math:`O((V + E) (c + 1))`" +msgstr "时间复杂度: :math:`O((V + E) (c + 1))`" msgid ":math:`|c|` is the number of circuts in the graph." -msgstr ":math:`|c|`是图中的电路数量。" +msgstr ":math:`|c|` 是图中的电路数量。" msgid "pgr_hawickCircuits(`Edges SQL`_)" msgstr "pgr_hawickCircuits(`Edges SQL`_)" -msgid "RETURNS SET OF |generic-result|" -msgstr "RETURNS SET OF |generic-result|" +msgid "Returns set of |generic-result|" +msgstr "返回 |generic-result| 的集合" msgid "Circuits present in the pgRouting :doc:`sampledata`" -msgstr "pgRouting :doc:`示例数据`中存在的电路" +msgstr "pgRouting :doc:`sampledata` 中存在的电路" msgid "Id of the circuit starting from ``1``" -msgstr "电路id从``1``开始" +msgstr "电路id从 ``1`` 开始" msgid "Relative postion in the path. Has value ``0`` for beginning of the path" msgstr "路径中的相对位置。 路径开头的值为 ``0``" @@ -12846,8 +13208,8 @@ msgid "" "`Boost: Hawick Circuit Algorithm `__" msgstr "" -"`Boost:Hawick 电路算法`__" +"`Boost:Hawick 电路算法 `__" msgid "``pgr_isPlanar`` - Experimental" msgstr "``pgr_isPlanar`` - 实验" @@ -12855,7 +13217,7 @@ msgstr "``pgr_isPlanar`` - 实验" msgid "" "``pgr_isPlanar`` — Returns a boolean depending upon the planarity of the " "graph." -msgstr "``pgr_isPlanar`` —根据图的平面性返回布尔值." +msgstr "``pgr_isPlanar`` — 根据图的平面性返回布尔值." msgid "" "A graph is planar if it can be drawn in two-dimensional space with no two of " @@ -12877,7 +13239,7 @@ msgid "" msgstr "它将根据图形的平面性返回一个布尔值。" msgid "Applicable only for **undirected** graphs." -msgstr "仅适用于**无向**图。" +msgstr "仅适用于 **无向** 图。" msgid "The algorithm does not considers traversal costs in the calculations." msgstr "该算法在计算中不考虑遍历成本。" @@ -12898,10 +13260,10 @@ msgid "``pgr_isplanar``" msgstr "``pgr_isplanar``" msgid "`true` when the graph is planar." -msgstr "当图形是平面时为`true`。" +msgstr "当图形是平面时为 `true`。" msgid "`false` when the graph is not planar." -msgstr "当图形不是平面时为`false`。" +msgstr "当图形不是平面时为 `false`。" msgid "" "The following edges will make the subgraph with vertices {10, 15, 11, 16, " @@ -12927,8 +13289,7 @@ msgid "" "``pgr_johnson`` - Returns the sum of the costs of the shortest path for each " "pair of nodes in the graph using Floyd-Warshall algorithm." msgstr "" -"``pgr_johnson`` - 使用 Floyd-Warshall 算法返回图中每对节点的最短路径成本之" -"和。." +"``pgr_johnson`` - 使用 Jhonson 算法返回图中每对节点的最短路径成本之和。." msgid "" "The Johnson algorithm, is a good choice to calculate the sum of the costs of " @@ -12936,8 +13297,8 @@ msgid "" "It usees the Boost's implementation which runs in :math:`O(V E \\log V)` " "time," msgstr "" -"Johnson算法是计算图中每一对节点的最短路径成本之和的好选择,特别适用于*稀疏图" -"*。它使用了Boost的实现,其运行时间为 :math:`O(V E \\log V)`," +"Johnson算法是计算图中每一对节点的最短路径成本之和的好选择,特别适用于 *稀疏图" +"*。它使用了Boost的实现,其运行时间为 :math:`O(V E \\log V)`" msgid "pgr johnson(`Edges SQL`_, [``directed``])" msgstr "pgr johnson(`Edges SQL`_, [``directed``])" @@ -12967,15 +13328,12 @@ msgstr "当图中没有边时,返回 EMPTY SET。" msgid "pgr_kruskal(`Edges SQL`_)" msgstr "pgr_kruskal(`Edges SQL`_)" -msgid "RETURNS SET OF |result-mst|" -msgstr "RETURNS SET OF |result-mst|" +msgid "Returns set of |result-mst|" +msgstr "返回 |result-mst| 的集合" msgid "Minimum spanning forest" msgstr "最小生成森林" -msgid "``pgr_kruskalBFS``" -msgstr "``pgr_kruskalBFS``" - msgid "" "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with " "breadth First Search ordering." @@ -12991,7 +13349,7 @@ msgid "Returned tree nodes from a root vertex are on Breath First Search order" msgstr "从根顶点返回的树节点遵循广度优先搜索顺序" msgid "Breath First Search Running time: :math:`O(E + V)`" -msgstr "广度优先搜索运行时间::math:`O(E + V)`" +msgstr "广度优先搜索运行时间: :math:`O(E + V)`" msgid "pgr_kruskalBFS(`Edges SQL`_, **root vid**, [``max_depth``])" msgstr "pgr_kruskalBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -13007,9 +13365,6 @@ msgid "" "`depth \\leq 3`" msgstr "以顶点 :math:`\\{9, 6\\}` 为起点, :math:`depth \\leq 3` 的最小生成树" -msgid "``pgr_kruskalDD``" -msgstr "``pgr_kruskalDD``" - msgid "``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm." msgstr "``pgr_kruskalDD`` — 使用 Kruskal 算法的汇流节点。" @@ -13018,8 +13373,8 @@ msgid "" "than or equal to a **distance** from a **root** vertex (or vertices) within " "the calculated minimum spanning tree." msgstr "" -"使用 Kruskal 算法,在计算的最小生成树中提取总成本小于或等于距**根**顶点(或多" -"个顶点)**距离**的节点。" +"使用 Kruskal 算法,在计算的最小生成树中提取总成本小于或等于距 **根** 顶点(或" +"多个顶点) **距离** 的节点。" msgid "Returned tree nodes from a root vertex are on Depth First Search order." msgstr "从根顶点返回的树节点遵循深度优先搜索顺序。" @@ -13044,10 +13399,7 @@ msgid "" "The Minimum Spanning Tree starting on vertices :math:`\\{9, 6\\}` with :math:" "`distance \\leq 3.5`" msgstr "" -"以顶点:math:`\\{9, 6\\}` 为起点, :math:`distance \\leq 3.5`的最小生成树" - -msgid "``pgr_kruskalDFS``" -msgstr "``pgr_kruskalDFS``" +"以顶点 :math:`\\{9, 6\\}` 为起点, :math:`distance \\leq 3.5` 的最小生成树" msgid "" "``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with " @@ -13082,8 +13434,8 @@ msgid "" "**idom**, once **idom** of each vertex is calculated then by making every " "**idom** of each vertex as its parent, the dominator tree can be built." msgstr "" -"该算法计算每个顶点的**直接支配者**(称为**idom**),一旦计算出每个顶点的" -"**idom**,然后通过将每个顶点的**idom**作为其父节点,可以构建支配树。" +"该算法计算每个顶点的 **直接支配者**(称为 **idom**),一旦计算出每个顶点的 " +"**idom**,然后通过将每个顶点的 **idom** 作为其父节点,可以构建支配树。" msgid "The algorithm works in directed graph only." msgstr "该算法仅适用于有向图。" @@ -13096,16 +13448,16 @@ msgid "" msgstr "如果图中不存在*根顶点*,则返回空集。" msgid "Running time: :math:`O((V+E)log(V+E))`" -msgstr "运行时间::math:`O((V+E)log(V+E))`" +msgstr "运行时间: :math:`O((V+E)log(V+E))`" msgid "pgr_lengauerTarjanDominatorTree(`Edges SQL`_, **root vertex**)" msgstr "pgr_lengauerTarjanDominatorTree(`Edges SQL`_, **root vertex**)" -msgid "RETURNS SET OF |result-idom|" -msgstr "RETURNS SET OF |result-idom|" +msgid "Returns set of |result-idom|" +msgstr "返回 |result-idom| 的集合" msgid "The dominator tree with root vertex :math:`5`" -msgstr "具有根顶点 :math:`5`的支配树" +msgstr "具有根顶点 :math:`5` 的支配树" msgid "SQL query as described above." msgstr "SQL 查询如上所述。" @@ -13114,7 +13466,7 @@ msgid "**root vertex**" msgstr "**root vertex**" msgid "Returns set of ``(seq, vertex_id, idom)``" -msgstr "返回集合``(seq, vertex_id, idom)``" +msgstr "返回集合 ``(seq, vertex_id, idom)``" msgid "Identifier of vertex ." msgstr "顶点的标识符。" @@ -13139,35 +13491,63 @@ msgid "" "`Wikipedia: dominator tree `__" msgstr "" -"`维基百科:支配树`__" +"`维基百科:支配树 `__" -msgid "``pgr_lineGraph`` - Experimental" -msgstr "``pgr_lineGraph`` - 实验" +#, fuzzy +msgid "pgr_lineGraph - Proposed" +msgstr "pgr_trsp - 拟议" msgid "" "``pgr_lineGraph`` — Transforms the given graph into its corresponding edge-" "based graph." msgstr "``pgr_lineGraph`` — 将给定图转换为其相应的基于边的图。" -msgid "Given a graph G, its line graph L(G) is a graph such that:" +#, fuzzy +msgid "" +"Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" msgstr "给定一个图 G,它的线图 L(G) 是这样的图:" -msgid "Each vertex of L(G) represents an edge of G" -msgstr "L(G)的每个顶点代表G的一条边" +#, fuzzy +msgid "Each vertex of :math:`L(G)` represents an edge of :math:`G`." +msgstr ":math:`L(G)` 的每个顶点代表 :math:`G` 的一条边。" + +#, fuzzy +msgid "" +"Two vertices of :math:`L(G)` are adjacent if and only if their corresponding " +"edges share a common endpoint in :math:`G`" +msgstr "" +":math:`L(G)` 的两个顶点相邻当且仅当它们对应的边共享 :math:`G` 中的公共端点" + +#, fuzzy +msgid "" +"The ``cost`` and ``reverse_cost`` columns of the result represent existence " +"of the edge." +msgstr "使用 ``cost`` 和 ``reverse_cost`` 列来表示边的存在。" + +#, fuzzy +msgid "When the graph is directed the result is directed." +msgstr "当图无向时,成本矩阵是对称的。" msgid "" -"Two vertices of L(G) are adjacent if and only if their corresponding edges " -"share a common endpoint in G." -msgstr "L(G) 的两个顶点相邻当且仅当它们对应的边共享 G 中的公共端点。" +"To get the complete Line Graph use unique identifiers on the double way " +"edges (See `Additional Examples`_)." +msgstr "" + +msgid "When the graph is undirected the result is undirected." +msgstr "当图无向时,成本矩阵是对称的。" + +msgid "The ``reverse_cost`` is always :math:`-1`." +msgstr "" msgid "pgr_lineGraph(`Edges SQL`_, [``directed``])" msgstr "pgr_lineGraph(`Edges SQL`_, [``directed``])" -msgid "RETURNS SET OF |result-lineg|" -msgstr "RETURNS SET OF |result-lineg|" +msgid "Returns set of |result-lineg|" +msgstr "Returns set of |result-lineg|" -msgid "For a **directed** graph" -msgstr "对于**有向**图" +#, fuzzy +msgid "For an undirected graph with edges :math:'{2,4,5,8}'" +msgstr "对于有边 :math:`\\{1, 2, 3, 4\\}` 的有向子图" msgid "Gives a local identifier for the edge" msgstr "给出边的本地标识符" @@ -13200,8 +13580,152 @@ msgid "" "it’s not part of the graph." msgstr "当为负时:边(``target``, ``source``)不存在,因此它不是图的一部分。" -msgid "https://en.wikipedia.org/wiki/Line_graph" -msgstr "https://en.wikipedia.org/wiki/Line_graph" +#, fuzzy +msgid "Given the following directed graph" +msgstr "给出以下查询" + +msgid "" +":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2 " +"\\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " +"\\rightarrow 3\\})`" +msgstr "" + +msgid "Representation as directed with shared edge identifiers" +msgstr "" + +msgid "" +"For the simplicity, the design of the edges table on the database, has the " +"edge's identifiers are represented with 3 digits:" +msgstr "" + +msgid "hundreds" +msgstr "" + +#, fuzzy +msgid "the source vertex" +msgstr "获取最近的顶点" + +msgid "tens" +msgstr "" + +msgid "always 0, acts as a separator" +msgstr "" + +#, fuzzy +msgid "units" +msgstr "单位" + +#, fuzzy +msgid "the target vertex" +msgstr "获取最近的顶点" + +msgid "In this image," +msgstr "" + +msgid "" +"Single or double head arrows represent one edge (row) on the edges table." +msgstr "" + +#, fuzzy +msgid "The numbers in the yellow shadow are the edge identifiers." +msgstr "返回的行按边标识符升序排列。" + +msgid "" +"Two pair of edges share the same identifier when the ``reverse_cost`` column " +"is used." +msgstr "" + +#, fuzzy +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with one " +"edge row with :math:`id=203`." +msgstr "从图中删除边 :math:`v \\rightarrow w` 和 :math:`w \\rightarrow z`。" + +#, fuzzy +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with one " +"edge row with :math:`id=304`." +msgstr "从图中删除边 :math:`v \\rightarrow w` 和 :math:`w \\rightarrow z`。" + +#, fuzzy +msgid "The graph can be created as follows:" +msgstr "图定义如下:" + +#, fuzzy +msgid "Line Graph of a directed graph represented with shared edges" +msgstr "就有向图而言,就像有四个边" + +#, fuzzy +msgid "The result is a directed graph." +msgstr "有向图。" + +#, fuzzy +msgid "" +"For :math:`seq=4` from :math:`203 \\leftrightarrow 304` represent two edges" +msgstr "边 :math:`2` (:math:`1 \\rightarrow 3`) 不是图的一部分" + +msgid "For all the other values of ``seq`` represent one edge." +msgstr "" + +#, fuzzy +msgid "" +"The ``cost`` and ``reverse_cost`` values represent the existence of the edge." +msgstr "使用 ``cost`` 和 ``reverse_cost`` 列来表示边的存在。" + +#, fuzzy +msgid "When positive: the edge exists." +msgstr "当正数时是顶点的标识符。" + +#, fuzzy +msgid "When negative: the edge does not exist." +msgstr "为负数时抛出错误。" + +msgid "Representation as directed with unique edge identifiers" +msgstr "" + +#, fuzzy +msgid "Single head arrows represent one edge (row) on the edges table." +msgstr "红色箭头对应边表中 ``cost`` > 0的情况。" + +msgid "There are no double head arrows" +msgstr "" + +msgid "" +"Two pair of edges share the same ending nodes and the ``reverse_cost`` " +"column is not used." +msgstr "" + +msgid "" +"Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with two " +"edges :math:`id=203` and :math:`id=302` respectively." +msgstr "" + +msgid "" +"Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with two " +"edges :math:`id=304` and :math:`id=403` respectively." +msgstr "" + +#, fuzzy +msgid "Line Graph of a directed graph represented with unique edges" +msgstr "就有向图而言,就像有四个边" + +#, fuzzy +msgid "" +"For :math:`seq=7` from :math:`203 \\leftrightarrow 302` represent two edges." +msgstr "边 :math:`2` (:math:`1 \\rightarrow 3`) 不是图的一部分。" + +#, fuzzy +msgid "" +"For :math:`seq=8` from :math:`304 \\leftrightarrow 403` represent two edges." +msgstr "边 :math:`2` (:math:`1 \\rightarrow 3`) 不是图的一部分。" + +#, fuzzy +msgid "wikipedia: `Line Graph `__" +msgstr "`维基百科:二分图 `__" + +msgid "" +"mathworld: `Line Graph `__" +msgstr "" msgid "``pgr_lineGraphFull`` - Experimental" msgstr "``pgr_lineGraphFull`` - 实验" @@ -13246,7 +13770,7 @@ msgstr "" "点的每个可能的转弯都有一条新边。" msgid "This function is for **directed** graphs." -msgstr "该函数适用于**有向**图。" +msgstr "该函数适用于 **有向** 图。" msgid "" "Results are undefined when a negative vertex id is used in the input graph." @@ -13262,19 +13786,19 @@ msgstr "运行时间:TBD(待定)" msgid "pgr_lineGraphFull(`Edges SQL`_)" msgstr "pgr_lineGraphFull(`Edges SQL`_)" -msgid "RETURNS SET OF |result-linegf|" -msgstr "RETURNS SET OF |result-linegf|" +msgid "Returns set of |result-linegf|" +msgstr "返回 |result-linegf| 的集合" msgid "Full line graph of subgraph of edges :math:`\\{4, 7, 8, 10\\}`" -msgstr "边:math:`\\{4, 7, 8, 10\\}`子图的全线图" +msgstr "边 :math:`\\{4, 7, 8, 10\\}` 子图的全线图" msgid "" "The examples of this section are based on the :doc:`sampledata` network. The " "examples include the subgraph including edges 4, 7, 8, and 10 with " "``reverse_cost``." msgstr "" -"本节的示例基于 :doc:`示例数据`网络。 这些示例包括包含具有``reverse_cost``的" -"边 4、7、8 和 10 的子图。" +"本节的示例基于 :doc:`sampledata` 网络。 这些示例包括包含具有 " +"``reverse_cost`` 的边 4、7、8 和 10 的子图。" msgid "The data" msgstr "数据" @@ -13337,7 +13861,7 @@ msgstr "存储边结果" msgid "" "The first step is to store the results of the ``pgr_lineGraphFull`` call " "into a table" -msgstr "第一步是将 ``pgr_lineGraphFull``调用的结果存储到表中" +msgstr "第一步是将 ``pgr_lineGraphFull`` 调用的结果存储到表中" msgid "Create the mapping table" msgstr "创建映射表" @@ -13391,7 +13915,7 @@ msgid "" "The edge to be altered is ``WHERE cost = 0 AND seq != 1 AND edge != -1`` " "from the previus query:" msgstr "" -"要更改的边是上一个查询中的 ``WHERE cost = 0 AND seq != 1 AND edge != -1``:" +"要更改的边是上一个查询中的 ``WHERE cost = 0 AND seq != 1 AND edge != -1`` :" msgid "Adding a value to the restriction" msgstr "向限制添加值" @@ -13400,7 +13924,7 @@ msgid "Updating the cost to the edge:" msgstr "将成本更新到边:" msgid "Routing from :math:`6` to :math:`3`" -msgstr "路由从 :math:`6`到 :math:`3`" +msgstr "路由从 :math:`6` 到 :math:`3`" msgid "Now the route does not use edge 8 and does a U turn on a leaf vertex." msgstr "现在,该路线不使用边 8,而是在叶顶点上进行 U 形转弯。" @@ -13461,7 +13985,10 @@ msgid "" msgstr "当使用这种方法进行具有软限制的路由时,将会出现 uturn" msgid "Routing from :math:`5` to :math:`1`" -msgstr "路由从 :math:`5` 到:math:`1`" +msgstr "路由从 :math:`5` 到 :math:`1`" + +msgid "https://en.wikipedia.org/wiki/Line_graph" +msgstr "https://en.wikipedia.org/wiki/Line_graph" msgid "https://en.wikipedia.org/wiki/Complete_graph" msgstr "https://en.wikipedia.org/wiki/Complete_graph" @@ -13498,16 +14025,13 @@ msgstr "该算法在计算中不考虑遍历成本。" msgid "pgr_makeConnected(`Edges SQL`_)" msgstr "pgr_makeConnected(`Edges SQL`_)" -msgid "RETURNS SET OF |result-component-make|" -msgstr "RETURNS SET OF |result-component-make|" +msgid "Returns set of |result-component-make|" +msgstr "Returns set of |result-component-make|" msgid "" "Query done on :doc:`sampledata` network gives the list of edges that are " "needed to connect the graph." -msgstr "在:doc:`示例数据`网络上完成的查询给出了连接图所需的边列表。" - -msgid "Returns set of |result-component-make|" -msgstr "Returns set of |result-component-make|" +msgstr "在 :doc:`sampledata` 网络上完成的查询给出了连接图所需的边列表。" msgid "https://www.boost.org/libs/graph/doc/make_connected.html" msgstr "https://www.boost.org/libs/graph/doc/make_connected.html" @@ -13527,7 +14051,7 @@ msgid "``pgr_maxCardinalityMatch(text,boolean)``" msgstr "``pgr_maxCardinalityMatch(text,boolean)``" msgid "``directed => false`` when used." -msgstr "使用时``directed => false``。" +msgstr "使用时 ``directed => false``。" msgid "Renamed from ``pgr_maximumCardinalityMatching``" msgstr "从 ``pgr_maximumCardinalityMatching`` 重命名" @@ -13552,7 +14076,7 @@ msgid "Running time: :math:`O( E*V * \\alpha(E,V))`" msgstr "运行时间: :math:`O( E*V * \\alpha(E,V))`" msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_." -msgstr ":math:`\\alpha(E,V)`与`Ackermann function`_相反。" +msgstr ":math:`\\alpha(E,V)` 与 `Ackermann function`_ 相反。" msgid "pgr_maxCardinalityMatch(`Edges SQL`_)" msgstr "pgr_maxCardinalityMatch(`Edges SQL`_)" @@ -13577,9 +14101,6 @@ msgstr "正值表示存在边(``target``, ``source``)" msgid "Identifier of the edge in the original query." msgstr "原始查询中边的标识符。" -msgid ":doc:`migration`" -msgstr ":doc:`migration`" - msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" msgstr "https://www.boost.org/libs/graph/doc/maximum_matching.html" @@ -13602,20 +14123,21 @@ msgid "``pgr_maxFlow`` (`Combinations`_)" msgstr "``pgr_maxFlow`` (`组合`_)" msgid "New **Proposed** function" -msgstr "新**拟议** 的函数" +msgstr "新 **拟议** 的函数" -msgid "Calculates the maximum flow from the `source(s)` to the `target(s)`." -msgstr "计算从 `source(s)`到 `target(s)`的最大流量。" +#, fuzzy +msgid "Calculates the maximum flow from the sources to the targets." +msgstr "计算从 `source(s)` 到 `target(s)` 的最大流量。" msgid "" "When the maximum flow is **0** then there is no flow and **0** is returned." -msgstr "当最大流量为**0**时则没有流量,返回**0**。" +msgstr "当最大流量为 **0** 时则没有流量,返回 **0** 。" msgid "Uses the :doc:`pgr_pushRelabel ` algorithm." -msgstr "使用:doc:`pgr_pushRelabel `算法。" +msgstr "使用 :doc:`pgr_pushRelabel ` 算法。" msgid "Running time: :math:`O( V ^ 3)`" -msgstr "运行时间::math:`O( V ^ 3)`" +msgstr "运行时间: :math:`O( V ^ 3)`" msgid "pgr_maxFlow(`Edges SQL`_, **start vid**, **end vid**)" msgstr "pgr_maxFlow(`Edges SQL`_, **start vid**, **end vid**)" @@ -13658,7 +14180,7 @@ msgid "``pgr_maxFlowMinCost`` (`Combinations`_)" msgstr "``pgr_maxFlowMinCost`` (`组合`_)" msgid "**TODO** check which statement is true:" -msgstr "**TODO **检查哪个陈述是正确的:" +msgstr "**TODO** 检查哪个陈述是正确的:" msgid "The cost value of all input edges must be nonnegative." msgstr "所有输入边的成本值必须是非负的。" @@ -13670,16 +14192,16 @@ msgid "Process is done on edges with nonnegative cost." msgstr "过程是在具有非负成本的边上完成的。" msgid "Running time: :math:`O(U * (E + V * logV))`" -msgstr "运行时间::math:`O(U * (E + V * logV))`" +msgstr "运行时间: :math:`O(U * (E + V * logV))`" msgid "where :math:`U` is the value of the max flow." -msgstr "其中 :math:`U`是最大流量的值。" +msgstr "其中 :math:`U` 是最大流量的值。" msgid "" ":math:`U` is upper bound on number of iterations. In many real world cases " "number of iterations is much smaller than :math:`U`." msgstr "" -":math:`U`是迭代次数的上限。 在许多现实世界的情况下,迭代次数远小于:math:" +":math:`U`是迭代次数的上限。 在许多现实世界的情况下,迭代次数远小于 :math:" "`U` 。" msgid "pgr_maxFlowMinCost(`Edges SQL`_, **start vid**, **end vid**)" @@ -13697,8 +14219,8 @@ msgstr "pgr_maxFlowMinCost(`Edges SQL`_, **start vids**, **end vids**)" msgid "pgr_maxFlowMinCost(`Edges SQL`_, `Combinations SQL`_)" msgstr "pgr_maxFlowMinCost(`Edges SQL`_, `Combinations SQL`_)" -msgid "RETURNS SET OF |result-flow-mincost|" -msgstr "RETURNS SET OF |result-flow-mincost|" +msgid "Returns set of |result-flow-mincost|" +msgstr "返回 |result-flow-mincost| 的集合" msgid "" "https://www.boost.org/libs/graph/doc/" @@ -13722,10 +14244,10 @@ msgid "**The cost value of all input edges must be nonnegative.**" msgstr "**所有输入边的成本值必须是非负的。**" msgid "When the maximum flow is 0 then there is no flow and **0** is returned." -msgstr "当最大流量为0时则没有流量,返回**0**。" +msgstr "当最大流量为0时则没有流量,返回 **0** 。" msgid "Uses :doc:`pgr_maxFlowMinCost`." -msgstr "使用:doc:`pgr_maxFlowMinCost`。" +msgstr "使用 :doc:`pgr_maxFlowMinCost`。" msgid "pgr_maxFlowMinCost_Cost(`Edges SQL`_, **start vid**, **end vid**)" msgstr "pgr_maxFlowMinCost_Cost(`Edges SQL`_, **start vid**, **end vid**)" @@ -13797,31 +14319,21 @@ msgid "" "``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple " "nodes within the tolerance are considered the same node." msgstr "" -"该函数读取``edge_table``表,该表具有主键列 ``id`` 和名为``the_geom``的几何" -"列,并将其中的所有段与所有其他段相交,然后创建表``edge_table_noded``。 它使用" -"``tolerance``来决定容差内的多个节点被视为同一节点。" +"该函数读取 ``edge_table``表,该表具有主键列 ``id`` 和名为``the_geom`` 的几何" +"列,并将其中的所有段与所有其他段相交,然后创建表 ``edge_table_noded``。 它使" +"用``tolerance`` 来决定容差内的多个节点被视为同一节点。" msgid "``float8`` tolerance for coincident points (in projection unit)dd" msgstr "``float8`` 重合点公差(以投影单位表示)dd" -msgid "" -"``text`` Primary key column name of the network table. Default value is " -"``id``." -msgstr "``text`` 网络表的主键列名称。 默认值为``id``。" - -msgid "" -"``text`` Geometry column name of the network table. Default value is " -"``the_geom``." -msgstr "``text``网络表的几何列名称。 默认值为``the_geom``。" - msgid "table_ending" msgstr "table_ending" msgid "``text`` Suffix for the new table's. Default value is ``noded``." msgstr "``text``新表的后缀。 默认值是``noded``。" -msgid "The output table will have for ``edge_table_noded``" -msgstr "输出表将具有``edge_table_noded``" +msgid "The output table will have for ``edge_table_noded``" +msgstr "输出表中将包含 ``edge_table_noded`` 内容" msgid "``bigint`` Unique identifier for the table" msgstr "``bigint`` 表的唯一标识符" @@ -13829,36 +14341,37 @@ msgstr "``bigint`` 表的唯一标识符" msgid "old_id" msgstr "old_id" -msgid "``bigint`` Identifier of the edge in original table" -msgstr "``bigint``原表中边的标识符" +#, fuzzy +msgid "``bigint`` Identifier of the edge in original table" +msgstr "``bigint`` 原表中边的标识符" msgid "sub_id" msgstr "sub_id" msgid "``integer`` Segment number of the original edge" -msgstr "``integer``原边的段号" +msgstr "``integer`` 原边的段号" msgid "" "``integer`` Empty source column to be used with :doc:`pgr_createTopology` " "function" -msgstr "``integer``与 :doc:`pgr_createTopology` 函数一起使用的空source列" +msgstr "``integer`` 与 :doc:`pgr_createTopology` 函数一起使用的空source列" msgid "" "``integer`` Empty target column to be used with :doc:`pgr_createTopology` " "function" -msgstr "``integer``与 :doc:`pgr_createTopology` 函数一起使用的空target列" +msgstr "``integer`` 与 :doc:`pgr_createTopology` 函数一起使用的空target列" msgid "the geom" msgstr "the geom" msgid "``geometry`` Geometry column of the noded network" -msgstr "``geometry``节点网络的几何列" +msgstr "``geometry`` 节点网络的几何列" msgid "Examples" msgstr "示例" msgid "Let's create the topology for the data in :doc:`sampledata`" -msgstr "让我们为 :doc:`示例数据`中的数据创建拓扑" +msgstr "让我们为 :doc:`sampledata` 中的数据创建拓扑" msgid "Now we can analyze the network." msgstr "现在我们可以分析网络了。" @@ -13885,14 +14398,14 @@ msgstr "图片" msgid "Before Image" msgstr "之前的图像" -msgid "before image" -msgstr "之前的图像" +msgid "Before image" +msgstr "图片前" msgid "After Image" msgstr "后面的图像" -msgid "after image" -msgstr "后面的图像" +msgid "After image" +msgstr "图像后" msgid "Comparing the results" msgstr "比较结果" @@ -13924,7 +14437,8 @@ msgstr "仅具有进行拓扑分析的基本字段" msgid "Edges with 1 dead end: 1,6,24" msgstr "有 1 个死端的边:1、6、24" -msgid "Edges with 2 dead ends 17,18" +#, fuzzy +msgid "Edges with 2 dead ends: 17,18" msgstr "有两个死端的边:17,18" msgid "" @@ -13938,7 +14452,8 @@ msgstr "有 1 个死端的边:1-1 ,6-1,14-2, 18-1 17-1 18-2" msgid "Isolated segments" msgstr "孤立的片段" -msgid "two isolated segments: 17 and 18 both they have 2 dead ends" +#, fuzzy +msgid "two isolated segments: 17 and 18 both they have 2 dead ends" msgstr "两个孤立的段:17 和 18 都有 2 个死端" msgid "No Isolated segments" @@ -14021,9 +14536,9 @@ msgid "" "geometry. :doc:`pgr_analyzeGraph` to analyze the edges and vertices of the " "edge table." msgstr "" -":doc:`topology-functions`,用于概述路由算法的拓扑。 :doc:`pgr_analyzeOneWay` " -"分析边方向性的方法。:doc:`pgr_createTopology` 根据几何图创建拓扑。 :doc:" -"`pgr_analyzeGraph`分析边表的边和顶点。" +":doc:`topology-functions` 用于概述路由算法的拓扑。 :doc:`pgr_analyzeOneWay` " +"分析边方向性的方法。 :doc:`pgr_createTopology` 根据几何图创建拓扑。 :doc:" +"`pgr_analyzeGraph` 分析边表的边和顶点。" msgid "``pgr_pickDeliver`` - Experimental" msgstr "``pgr_pickDeliver`` - 实验" @@ -14106,8 +14621,8 @@ msgstr "" msgid "**options:** ``[factor, max_cycles, initial_sol]``" msgstr "**options:** ``[factor, max_cycles, initial_sol]``" -msgid "RETURNS SET OF |result-pickdrop|" -msgstr "RETURNS SET OF |result-pickdrop|" +msgid "Returns set of |result-pickdrop|" +msgstr "返回 |result-pickdrop| 的集合" msgid "Solve the following problem" msgstr "解决以下问题" @@ -14234,7 +14749,7 @@ msgstr "" "customers/ 上发布的最佳解决方案信息进行比较" msgid "The best solution found for **lc101** is a travel time: 828.94" -msgstr "找到的 **lc101**的最佳解是行程时间:828.94" +msgstr "找到的 **lc101** 的最佳解是行程时间:828.94" msgid "This implementation's travel time: 854.54" msgstr "此实施的行程时间:854.54" @@ -14252,7 +14767,7 @@ msgid "" msgstr "该算法使用 Prim 算法在可能断开的图中找到最小生成森林。" msgid "Prim's running time: :math:`O(E * log V)`" -msgstr "Prim运行时间::math:`O(E * log V)`" +msgstr "Prim运行时间: :math:`O(E * log V)`" msgid "pgr_prim(`Edges SQL`_)" msgstr "pgr_prim(`Edges SQL`_)" @@ -14267,18 +14782,17 @@ msgstr "" "`Boost: Prim算法文档 `__" -msgid "``pgr_primBFS``" -msgstr "``pgr_primBFS``" - msgid "" "``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth " "First Search ordering." msgstr "``pgr_primBFS`` — Prim 的深度优先搜索排序最小生成树算法。" +#, fuzzy msgid "" "Visits and extracts the nodes information in Breath First Search ordering of " -"the Minimum Spanning Tree created with Prims's algorithm." -msgstr "访问并提取Prims算法创建的最小生成树的呼吸优先搜索排序中的节点信息。" +"the Minimum Spanning Tree created using Prims's algorithm." +msgstr "" +"访问并提取使用 Prims 算法创建的最小生成树的深度优先搜索顺序中的节点信息。" msgid "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" msgstr "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" @@ -14286,16 +14800,14 @@ msgstr "pgr_primBFS(`Edges SQL`_, **root vid**, [``max_depth``])" msgid "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "pgr_primBFS(`Edges SQL`_, **root vids**, [``max_depth``])" -msgid "``pgr_primDD``" -msgstr "``pgr_primDD``" - msgid "``pgr_primDD`` — Catchament nodes using Prim's algorithm." msgstr "``pgr_primDD`` — 使用 Prim 算法的集水区节点。" +#, fuzzy msgid "" "Using Prim's algorithm, extracts the nodes that have aggregate costs less " -"than or equal to a **distance** from a **root** vertex (or vertices) within " -"the calculated minimum spanning tree." +"than or equal to a distance from a root vertex (or vertices) within the " +"calculated minimum spanning tree." msgstr "" "使用 Prim 算法,在计算的最小生成树中提取总成本小于或等于距根顶点(或多个顶" "点)距离的节点。" @@ -14306,9 +14818,6 @@ msgstr "pgr_primDD(`Edges SQL`_, **root vid**, **distance**)" msgid "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" msgstr "pgr_primDD(`Edges SQL`_, **root vids**, **distance**)" -msgid "``pgr_primDFS``" -msgstr "``pgr_primDFS``" - msgid "" "``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth First " "Search ordering." @@ -14377,14 +14886,14 @@ msgstr "" "得没有边连接两个相同颜色的顶点。" msgid "The implementation is applicable only for **undirected** graphs." -msgstr "该实现仅适用于**无向**图。" +msgstr "该实现仅适用于 **无向** 图。" msgid "" "Provides the color to be assigned to all the vertices present in the graph." msgstr "提供要分配给图中存在的所有顶点的颜色。" msgid "Color identifiers values are in the Range :math:`[1, |V|]`" -msgstr "颜色标识符值在范围 :math:`[1, |V|]`内" +msgstr "颜色标识符值在范围 :math:`[1, |V|]` 内" msgid "The algorithm tries to assign the least possible color to every vertex." msgstr "该算法尝试为每个顶点分配尽可能少的颜色。" @@ -14403,13 +14912,13 @@ msgid "The returned rows are ordered in ascending order of the vertex value." msgstr "返回的行按顶点值的升序排列。" msgid "Sequential Vertex Coloring Running Time: :math:`O(|V|*(d + k))`" -msgstr "顺序顶点着色运行时间::math:`O(|V|*(d + k))`" +msgstr "顺序顶点着色运行时间: :math:`O(|V|*(d + k))`" msgid ":math:`d` is the maximum degree of the vertices in the graph," -msgstr ":math:`d`是图中顶点的最大度数," +msgstr ":math:`d` 是图中顶点的最大度数," msgid ":math:`k` is the number of colors used." -msgstr ":math:`k`是使用的颜色数量。" +msgstr ":math:`k` 是使用的颜色数量。" msgid "pgr_sequentialVertexColoring(`Edges SQL`_)" msgstr "pgr_sequentialVertexColoring(`Edges SQL`_)" @@ -14454,7 +14963,7 @@ msgid "Sum of the weights of all edges between the two sets is mincut." msgstr "两组之间所有边的权重之和是最小割。" msgid "A **mincut** is a cut having the least weight." -msgstr "**最小切割**是重量最小的切割。" +msgstr "**最小切割** 是重量最小的切割。" msgid "Values are returned when graph is connected." msgstr "连接图形时返回值。" @@ -14478,14 +14987,14 @@ msgstr "运行时间: :math:`O(V*E + V^2*log V)`。" msgid "pgr_stoerWagner(`Edges SQL`_)" msgstr "pgr_stoerWagner(`Edges SQL`_)" -msgid "RETURNS SET OF |result-mincut|" -msgstr "RETURNS SET OF |result-mincut|" +msgid "Returns set of |result-mincut|" +msgstr "返回 |result-mincut| 的集合" msgid "min cut of the main subgraph" msgstr "主子图的最小割" msgid "Returns set of ``(seq, edge, cost, mincut)``" -msgstr "返回集合``(seq, edge, cost, mincut)``" +msgstr "返回集合 ``(seq, edge, cost, mincut)``" msgid "Edges which divides the set of vertices into two." msgstr "将顶点集一分为二的边。" @@ -14506,7 +15015,7 @@ msgid "min cut of an edge" msgstr "边的最小割" msgid "Using :doc:`pgr_connectedComponents`" -msgstr "使用:doc:`pgr_connectedComponents`" +msgstr "使用 :doc:`pgr_connectedComponents`" msgid "https://en.wikipedia.org/wiki/Stoer%E2%80%93Wagner_algorithm" msgstr "https://en.wikipedia.org/wiki/Stoer%E2%80%93Wagner_algorithm" @@ -14527,7 +15036,7 @@ msgid "" msgstr "有向图的强连接组件是一组彼此可达的顶点。" msgid "Works for **directed** graphs." -msgstr "适用于**有向**图。" +msgstr "适用于 **有向** 图。" msgid "Components are described by vertices identifiers." msgstr "组件由顶点标识符描述。" @@ -14542,7 +15051,7 @@ msgid "" "Boost: `Strong components `__" msgstr "" -"Boost: `强大组件`__" msgid "" @@ -14586,15 +15095,12 @@ msgstr "返回的值按拓扑顺序排序:" msgid "pgr_topologicalSort(`Edges SQL`_)" msgstr "pgr_topologicalSort(`Edges SQL`_)" -msgid "RETURNS SET OF |result-toposort|" -msgstr "RETURNS SET OF |result-toposort|" +msgid "Returns set of |result-toposort|" +msgstr "Returns set of |result-toposort|" msgid "Topologically sorting the graph" msgstr "对图进行拓扑排序" -msgid "Returns set of |result-toposort|" -msgstr "Returns set of |result-toposort|" - msgid "Sequential value starting from :math:`1`" msgstr "从 :math:`1` 开始的连续数值" @@ -14634,7 +15140,7 @@ msgid "" "Reachability between vertices on an undirected graph happens when they " "belong to the same connected component. (see :doc:`pgr_connectedComponents`)" msgstr "" -"当无向图上的顶点属于同一连通分量时,就会发生它们之间的可达性。(参阅:doc:" +"当无向图上的顶点属于同一连通分量时,就会发生它们之间的可达性。(参阅 :doc:" "`pgr_connectedComponents`)" msgid "The returned values are not ordered" @@ -14644,7 +15150,7 @@ msgid "The returned graph is compresed" msgstr "返回的图被压缩" msgid "Running time: :math:`O(|V||E|)`" -msgstr "运行时间::math:`O(|V||E|)`" +msgstr "运行时间: :math:`O(|V||E|)`" msgid "The pgr_transitiveClosure function has the following signature:" msgstr "pgr_transitiveClosure 函数具有以下签名:" @@ -14652,15 +15158,12 @@ msgstr "pgr_transitiveClosure 函数具有以下签名:" msgid "pgr_transitiveClosure(`Edges SQL`_)" msgstr "pgr_transitiveClosure(`Edges SQL`_)" -msgid "RETURNS SET OF |result-closure|" -msgstr "RETURNS SET OF |result-closure|" +msgid "Returns set of |result-closure|" +msgstr "Returns set of |result-closure|" msgid "Rechability of a subgraph" msgstr "子图的可达性" -msgid "``vid``" -msgstr "``vid``" - msgid "Identifier of the source of the edges" msgstr "边来源的标识符" @@ -14682,8 +15185,8 @@ msgstr "pgr_trsp - 拟议" msgid "``pgr_trsp`` - routing vertices with restrictions." msgstr "``pgr_trsp`` -有限制的路由顶点。" -msgid "New proposed signatures:" -msgstr "新拟议的签名:" +msgid "New proposed signatures" +msgstr "新拟议的签名" msgid "``pgr_trsp`` (`One to One`_)" msgstr "``pgr_trsp`` (`一对一`_)" @@ -14700,8 +15203,8 @@ msgstr "``pgr_trsp`` (`多对多`_)" msgid "``pgr_trsp`` (`Combinations`_)" msgstr "``pgr_trsp`` (`组合`_)" -msgid "Deprecated signatures:" -msgstr "弃用签名:" +msgid "Deprecated signatures" +msgstr "弃用签名" msgid "``pgr_trsp(text,integer,integer,boolean,boolean,text)``" msgstr "``pgr_trsp(text,integer,integer,boolean,boolean,text)``" @@ -14717,9 +15220,9 @@ msgid "" msgstr "" "``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" -msgid "New prototypes:" -msgstr "新原型:" - +msgid "New prototypes" +msgstr "新原型" + msgid "``pgr_trspViaVertices``" msgstr "``pgr_trspViaVertices``" @@ -14785,35 +15288,35 @@ msgstr "" "pgr_trsp(`Edges SQL`_, `Restrictions SQL`_, `Combinations SQL`_, " "[``directed``])" -msgid "From vertex :math:`6` to vertex :math:`10` on an undirected graph." -msgstr "无向图上从一个顶点 :math:`6`到另一个顶点:math:`10`。" +msgid "From vertex :math:`6` to vertex :math:`10` on an undirected graph." +msgstr "从无向图上的顶点 :math:`6` 到顶点 :math:`10`." msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 1\\}` on an undirected graph." -msgstr "无向图上从顶点:math:`6` 到顶点 :math:`\\{10, 1\\}` 。" +msgstr "无向图上从顶点 :math:`6` 到顶点 :math:`\\{10, 1\\}` 。" msgid "" "From vertices :math:`\\{6, 1\\}` to vertex :math:`8` on a directed graph." -msgstr "有向图上从顶点 :math:`\\{6, 1\\}`到顶点 :math:`8`。" +msgstr "有向图上从顶点 :math:`\\{6, 1\\}` 到顶点 :math:`8`。" msgid "" "From vertices :math:`\\{6, 1\\}` to vertices :math:`\\{10, 8\\}` on an " "undirected graph." -msgstr "无向图上从顶点 :math:`\\{6, 1\\}`到顶点 :math:`\\{10, 8\\}`。" +msgstr "无向图上从顶点 :math:`\\{6, 1\\}` 到顶点 :math:`\\{10, 8\\}`。" msgid "Using a combinations table on an undirected graph." msgstr "在无向图上使用组合表。" msgid "" "`Deprecated documentation `_" -msgstr "`已弃用文档 `_" +msgstr "` 已弃用文档 `_" msgid "``pgr_trspVia`` - Proposed" msgstr "``pgr_trspVia`` - 拟议" msgid "" "``pgr_trspVia`` Route that goes through a list of vertices with restrictions." -msgstr "``pgr_trspVia``穿过有限制的顶点列表的路线。" +msgstr "``pgr_trspVia`` 穿过有限制的顶点列表的路线。" msgid "New proposed function:" msgstr "新提议的函数:" @@ -14826,9 +15329,9 @@ msgid "" "the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :" "math:`i < size\\_of(via\\;vertices)` trying not to use restricted paths." msgstr "" -"给定一个顶点列表和一个图,这个函数等同于在所有:math:`i < size\\_of(via\\;" -"vertices)`的情况下找到从 :math:`vertex_i`到 :math:`vertex_{i+1}`的最短路径," -"尽量避免使用受限路径。" +"给定一个顶点列表和一个图,这个函数等同于在所有 :math:`i < size\\_of(via\\;" +"vertices)` 的情况下找到从 :math:`vertex_i` 到 :math:`vertex_{i+1}` 的最短路" +"径,尽量避免使用受限路径。" msgid "The paths represents the sections of the route." msgstr "路径代表路线的各个部分。" @@ -14844,7 +15347,7 @@ msgid "Execute the **TRSP** algorithm with restrictions for the paths." msgstr "执行对路径有限制的 **TRSP** 算法。" msgid "**NOTE** when this is done, ``U_turn_on_edge`` flag is ignored." -msgstr "**注意**,完成此操作后, ``U_turn_on_edge``标志将被忽略。" +msgstr "**注意**,完成此操作后, ``U_turn_on_edge`` 标志将被忽略。" msgid "" "pgr_trspVia(`Edges SQL`_, `Restrictions SQL`_, **via vertices**, " @@ -14853,11 +15356,6 @@ msgstr "" "pgr_trspVia(`Edges SQL`_, `Restrictions SQL`_, **via vertices**, " "[**options**])" -msgid "" -"Find the route that visits the vertices :math:`\\{ 5, 1, 8\\}` in that order " -"on an directed graph." -msgstr "在有向图上查找按顺序访问顶点 :math:`\\{ 5, 1, 8\\}` 的路线。" - msgid "" "All this examples are about the route that visits the vertices :math:`\\{5, " "7, 1, 8, 15\\}` in that order on a directed graph." @@ -14876,8 +15374,8 @@ msgid "" "for the ``path_id = 5`` from ``6`` to ``3`` because the path :math:`15 " "\\rightarrow 1` is restricted." msgstr "" -"检测哪些子路径通过了限制,本例中是针对``path_id = 5``从``6``到``3`` ,因为该" -"路径 :math:`15 \\rightarrow 1`受到限制。" +"检测哪些子路径通过了限制,本例中是针对 ``path_id = 5`` 从 ``6`` 到 ``3``,因" +"为该路径 :math:`15 \\rightarrow 1` 受到限制。" msgid "Executes the :doc:`pgr_trsp` algorithm for the conflicting paths." msgstr "执行 :doc:`pgr_trsp` 针对冲突路径建议的算法。" @@ -14893,21 +15391,21 @@ msgid "Getting the same result as ``pgr_trspVia``:" msgstr "得到与 ``pgr_trspVia`` 相同的结果:" msgid "Sometimes ``U_turn_on_edge`` flag is ignored when is set to ``false``." -msgstr "有时,当设置为 ``false`` 时,``U_turn_on_edge`` 标志会被忽略。" +msgstr "有时,当设置为 ``false`` 时, ``U_turn_on_edge`` 标志会被忽略。" msgid "" "The first step, doing a :doc:`pgr_dijkstraVia` does consider not making a U " "turn on the same edge. But the path :math:`16 \\rightarrow 13` (Rows 4 and " "5) is restricted and the result is using it." msgstr "" -"第一步,进行 :doc:`pgr_dijkstraVia`不考虑在同一边上掉头。 但路径 :math:`16 " -"\\rightarrow 13`(第 4 行和第 5 行)受到限制,结果正在使用它。" +"第一步,进行 :doc:`pgr_dijkstraVia` 不考虑在同一边上掉头。 但路径 :math:`16 " +"\\rightarrow 13` (第 4 行和第 5 行)受到限制,结果正在使用它。" msgid "" "When executing the :doc:`pgr_trsp` algorithm for the conflicting path, there " "is no ``U_turn_on_edge`` flag." msgstr "" -"当执行 :doc:`pgr_trsp`针对冲突路径的拟议算法时,没有 ``U_turn_on_edge`` 标" +"当执行 :doc:`pgr_trsp` 针对冲突路径的拟议算法时,没有 ``U_turn_on_edge`` 标" "志。" msgid "" @@ -14937,9 +15435,9 @@ msgid "" "`i < size\\_of(via\\;vertices)` trying not to use restricted paths." msgstr "" "给定一个图、对图边的一组限制、图边上的一组点和一个顶点列表,该函数相当于查" -"找 :math:`vertex_i` 和 :math:`vertex_{i+1}`之间的最短路径(其中 :math:" -"`vertex` 可以是图上的顶点或点) )对于所有 :math:`i < size\\_of(via\\;" -"vertices)`尝试不使用受限路径的人。" +"找 :math:`vertex_i` 和 :math:`vertex_{i+1}` 之间的最短路径(其中 :math:" +"`vertex` 可以是图上的顶点或点) 对于所有 :math:`i < size\\_of(via\\;" +"vertices)` 尝试不使用受限路径的人。" msgid "is a sequence of paths" msgstr "是一系列路径" @@ -14976,7 +15474,7 @@ msgstr "" msgid "" "Find the route that visits the vertices :math:`\\{-6, 15, -5\\}` in that " "order on an directed graph." -msgstr "在有向图上查找按顺序访问顶点 :math:`\\{-6, 15, -5\\}`的路线。" +msgstr "在有向图上查找按顺序访问顶点 :math:`\\{-6, 15, -5\\}` 的路线。" msgid "When positive it is considered a vertex identifier" msgstr "当为正时,它被视为顶点标识符" @@ -15000,7 +15498,7 @@ msgid "``r`` for right driving side" msgstr "``r`` 代表右驾驶侧" msgid "``l`` for left driving side" -msgstr "``l``表示左驾驶侧" +msgstr "``l`` 表示左驾驶侧" msgid "Any other value will be considered as ``r``" msgstr "任何其他值将被视为 ``r``" @@ -15009,23 +15507,23 @@ msgid "``details``" msgstr "``details``" msgid "When ``true`` the results will include the points that are in the path." -msgstr "如果为 ``true``,结果将包括路径中的点。" +msgstr "如果为 ``true`` ,结果将包括路径中的点。" msgid "" "When ``false`` the results will not include the points that are in the path." -msgstr "如果为``false``,结果将不包括路径中的点。" +msgstr "如果为 ``false`` ,结果将不包括路径中的点。" msgid "" "When ``start_vid``, ``end_vid`` and ``node`` columns have negative values, " "the identifier is for a Point." msgstr "" -"当 ``start_vid``、 ``end_vid``和``node``列具有负值时,该标识符用于Point。" +"当 ``start_vid``、 ``end_vid`` 和 ``node`` 列具有负值时,该标识符用于Point。" msgid "Use ``pgr_findCloseEdges`` for points on the fly" msgstr "对动态点使用 ``pgr_findCloseEdges``" msgid "Using :doc:`pgr_findCloseEdges`:" -msgstr "使用:doc:`pgr_findCloseEdges`:" +msgstr "使用 :doc:`pgr_findCloseEdges`:" msgid "" "Visit from vertex :math:`1` to the two locations on the graph of point " @@ -15035,19 +15533,19 @@ msgstr "" "置。" msgid "" -"Point :math:`-1` corresponds to the closest edge from point `(2.9,1.8)`." -msgstr "点 :math:`-1`对应于距离点 `(2.9,1.8)`最近的边。" +"Point :math:`-1` corresponds to the closest edge from point `(2.9, 1.8)`." +msgstr "点 :math:`-1`对应于距离点`(2.9, 1.8)` 最近的边。" msgid "" -"Point :math:`-2` corresponds to the next close edge from point `(2.9,1.8)`." -msgstr "点 :math:`-2`对应于点`(2.9,1.8)` 的下一个闭合边。" +"Point :math:`-2` corresponds to the next close edge from point `(2.9, 1.8)`." +msgstr "点 :math:`-2`对应于点`(2.9, 1.8)` 的下一个闭合边。" msgid "" "Point :math:`-2` is visited on the route to from vertex :math:`1` to Point :" "math:`-1` (See row where :math:`seq = 4`)." msgstr "" -"点 :math:`-2`在从顶点 :math:`1` 到点 :math:`-1`的路线上被访问(参见行 ,其中:" -"math:`seq = 4`)。" +"点 :math:`-2`在从顶点 :math:`1` 到点 :math:`-1` 的路线上被访问(参见行 ,其" +"中:math:`seq = 4`)。" msgid "Usage variations" msgstr "用法变化" @@ -15056,43 +15554,44 @@ msgid "" "All this examples are about the route that visits the vertices :math:`\\{-6, " "7, -4, 8, -2\\}` in that order on a directed graph." msgstr "" -"所有这些示例都是关于按有向图上的顺序访问顶点:math:`\\{-6, 7, -4, 8, -2\\}`的" -"路线。" +"所有这些示例都是关于按有向图上的顺序访问顶点 :math:`\\{-6, 7, -4, 8, -2\\}` " +"的路线。" msgid "Status of \"passes in front\" or \"visits\" of the nodes and points." msgstr "节点、点的\"通过\"或\"访问\"状态。" msgid "The algorithm performs a :doc:`pgr_withPointsVia`" -msgstr "该算法执行:doc:`pgr_withPointsVia`" +msgstr "该算法执行 :doc:`pgr_withPointsVia`" msgid "" "Detects which of the paths pass through a restriction in this case is for " "the ``path_id = 1`` from ``-6`` to ``15`` because the path :math:`9 " "\\rightarrow 16` is restricted." msgstr "" -"检测哪些路径通过了限制,在本例中是针对从 ``-6``到``15`` 的 ``path_id = 1``," -"因为路径:math:`9 \\rightarrow 16`受到限制。" +"检测哪些路径通过了限制,在本例中是针对从 ``-6`` 到 ``15`` 的 ``path_id = " +"1`` ,因为路径 :math:`9 \\rightarrow 16` 受到限制。" msgid "" "Executes the :ref:`TRSP-family:TRSP algorithm` for the conflicting paths." -msgstr "对冲突路径执行 :ref:`TRSP-family:TRSP 算法`。" +msgstr "对冲突路径执行 :ref:`TRSP-family:TRSP algorithm`。" msgid "" "From the :doc:`pgr_withPointsVia` result it removes the conflicting paths " "and builds the solution with the results of the :doc:`pgr_trsp` algorithm:" -msgstr "从 :doc:`pgr_withPointsVia` 的结果中移除冲突的路径,并使用 :doc:`pgr_trsp` " -"算法的结果构建解决方案:" +msgstr "" +"从 :doc:`pgr_withPointsVia` 的结果中移除冲突的路径,并使用 :doc:`pgr_trsp` 算" +"法的结果构建解决方案:" msgid "Getting the same result as ``pgr_trspVia_withPoints``:" -msgstr "得到与 ``pgr_trspVia_withPoints``相同的结果:" +msgstr "得到与 ``pgr_trspVia_withPoints`` 相同的结果:" msgid "" "The first step, doing a :doc:`pgr_withPointsVia` does consider not making a " "U turn on the same edge. But the path :math:`9 \\rightarrow 16` (Rows 4 and " "5) is restricted and the result is using it." msgstr "" -"第一步,执行 :doc:`pgr_withPointsVia` 不考虑在同一条边上进行掉头。但是路径 " -":math:`9 \\rightarrow 16`(第4行和第5行)受到限制,结果中使用了它。" +"第一步,执行 :doc:`pgr_withPointsVia` 不考虑在同一条边上进行掉头。但是路径 :" +"math:`9 \\rightarrow 16` (第4行和第5行)受到限制,结果中使用了它。" msgid "" "When executing the :doc:`pgr_trsp_withPoints` algorithm for the conflicting " @@ -15107,15 +15606,18 @@ msgid "" "conflicting paths and builds the solution with the results of the :doc:" "`pgr_trsp` algorithm. In this case a U turn is been done using the same edge." msgstr "" -"因此,当设置为 ``false`` 时,结果会忽略 ``U_turn_on_edge`` 标志。 从 " -":doc:`pgr_withPointsVia`结果中,它删除了冲突路径,并使用 :doc:`pgr_trsp` " -"算法的结果构建解决方案。 在这种情况下,使用相同的边缘完成 U 形转弯。" +"因此,当设置为 ``false`` 时,结果会忽略 ``U_turn_on_edge`` 标志。 从 :doc:" +"`pgr_withPointsVia` 结果中,它删除了冲突路径,并使用 :doc:`pgr_trsp` 算法的结" +"果构建解决方案。 在这种情况下,使用相同的边缘完成 U 形转弯。" msgid "pgr_trsp_withPoints - Proposed" msgstr "pgr_trsp_withPoints - 拟议" msgid "``pgr_trsp_withPoints`` Routing Vertex/Point with restrictions." -msgstr "``pgr_trsp_withPoints``有限制的路由顶点/点。" +msgstr "``pgr_trsp_withPoints`` 有限制的路由顶点/点。" + +msgid "New proposed signatures:" +msgstr "新拟议的签名:" msgid "``pgr_trsp_withPoints`` (`One to One`_)" msgstr "``pgr_trsp_withPoints`` (`一对一`_)" @@ -15132,9 +15634,10 @@ msgstr "``pgr_trsp_withPoints`` (`多对多`_)" msgid "``pgr_trsp_withPoints`` (`Combinations`_)" msgstr "``pgr_trsp_withPoints`` (`组合`_)" +#, fuzzy msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, find the shortest path(s)" +"algorithm, find the shortest path" msgstr "修改图以包括由points_sql 定义的点。 使用 Dijkstra 算法,找到最短路径" msgid "Characteristics:" @@ -15144,10 +15647,10 @@ msgid "Vertices of the graph are:" msgstr "图的顶点是:" msgid "**positive** when it belongs to the `Edges SQL`_" -msgstr "当它属于`Edges SQL`_ 时为**正**" +msgstr "当它属于 `Edges SQL`_ 时为 **正**" msgid "**negative** when it belongs to the `Points SQL`_" -msgstr "当它属于 `Points SQL`_为**负**" +msgstr "当它属于 `Points SQL`_ 为 **负**" msgid "Driving side can not be ``b``" msgstr "驾驶侧不可能为 ``b``" @@ -15212,39 +15715,31 @@ msgid "" "From point :math:`1` to vertex :math:`10` with details on a left driving " "side configuration on a directed graph with details." msgstr "" -"从点 :math:`1`到顶点 :math:`10`,在有向图上显示左侧驾驶侧配置的详细信息。" +"从点 :math:`1` 到顶点 :math:`10`,在有向图上显示左侧驾驶侧配置的详细信息。" msgid "From point :math:`1` to point :math:`3` and vertex :math:`7`." -msgstr "从点:math:`1`到点 :math:`3`和顶点 :math:`7`。" +msgstr "从点 :math:`1` 到点 :math:`3` 和顶点 :math:`7`。" msgid "From point :math:`1` and vertex :math:`6` to point :math:`3`." -msgstr "从点:math:`1`和顶点 :math:`6`到点 :math:`3`。" +msgstr "从点 :math:`1` 和顶点 :math:`6` 到点 :math:`3`。" msgid "" "From point :math:`1` and vertex :math:`6` to point :math:`3` and vertex :" "math:`1`." -msgstr "从点:math:`1`和顶点 :math:`6`到点 :math:`3`和顶点:math:`1`。" +msgstr "从点 :math:`1` 和顶点 :math:`6` 到点 :math:`3` 和顶点 :math:`1`。" msgid "" "From point :math:`1` to vertex :math:`10` and from vertex :math:`6` to " "point :math:`3` with right side driving configuration." msgstr "" -"从点:math:`1`到顶点 :math:`10`以及从顶点 :math:`6`到点 :math:`3`,采用右侧驾" -"驶配置。" +"从点 :math:`1` 到顶点 :math:`10`以及从顶点 :math:`6`到点 :math:`3`,采用右侧" +"驾驶配置。" msgid "" "Find the routes from vertex :math:`1` to the two closest locations on the " "graph of point `(2.9, 1.8)`." msgstr "找到从顶点 :math:`1` 到点 `(2.9, 1.8)` 图上两个最近位置的路线。" -msgid "" -"Point :math:`-1` corresponds to the closest edge from point `(2.9, 1.8)`." -msgstr "点:math:`-1`对应于距离点`(2.9, 1.8)` 最近的边。" - -msgid "" -"Point :math:`-2` corresponds to the next close edge from point `(2.9, 1.8)`." -msgstr "点 :math:`-2`对应于点`(2.9, 1.8)` 的下一个闭合边。" - msgid "Pass in front or visits." msgstr "从前面经过或参观。" @@ -15252,7 +15747,7 @@ msgid "" "Which path (if any) passes in front of point :math:`6` or vertex :math:`11` " "with right side driving topology." msgstr "" -"哪条路径(如果有)通过右侧驱动拓扑的点 :math:`6`或顶点 :math:`11`前面。" +"哪条路径(如果有)通过右侧驱动拓扑的点 :math:`6` 或顶点 :math:`11` 前面。" msgid "Show details on undirected graph." msgstr "显示无向图的详细信息。" @@ -15261,8 +15756,8 @@ msgid "" "From point :math:`1` and vertex :math:`6` to point :math:`3` to vertex :math:" "`1` on an undirected graph, with details." msgstr "" -"无向图上从点:math:`1`和顶点:math:`6`到点 :math:`3`到顶点 :math:`1` 的详细信" -"息。" +"无向图上从点 :math:`1` 和顶点 :math:`6` 到点 :math:`3`到顶点 :math:`1` 的详细" +"信息。" msgid "pgr_turnRestrictedPath - Experimental" msgstr "pgr_turnRestrictedPath - 实验性" @@ -15270,7 +15765,7 @@ msgstr "pgr_turnRestrictedPath - 实验性" msgid "" "``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex -Vertex routing with " "restrictions" -msgstr "``pgr_turnRestrictedPath``使用 Yen 算法顶点- 带限制的顶点路由" +msgstr "``pgr_turnRestrictedPath`` 使用 Yen 算法顶点- 带限制的顶点路由" msgid "New experimental function" msgstr "新实验功能" @@ -15290,11 +15785,11 @@ msgstr "" msgid "**options:** ``[directed, heap_paths, stop_on_first, strict]``" msgstr "**options:** ``[directed, heap_paths, stop_on_first, strict]``" -msgid "RETURNS SET OF |ksp-result|" -msgstr "RETURNS SET OF |ksp-result|" +msgid "Returns set of |ksp-result|" +msgstr "返回 |ksp-result| 的集合" -msgid "From vertex :math:`3` to vertex :math:`8` on a directed graph" -msgstr "有向图上从顶点 :math:`3`到顶点:math:`8`" +msgid "From vertex :math:`3` to vertex :math:`8` on a directed graph" +msgstr "从有向图上的顶点 :math:`3` 到顶点 :math:`8`" msgid "Special optional parameters" msgstr "特殊可选参数" @@ -15307,7 +15802,7 @@ msgid "" msgstr "当 ``true`` 停止在发现不违反限制的第一条路径上时" msgid "When ``false`` returns at most K paths" -msgstr "当 ``false``时返回最多 K 条路径" +msgstr "当 ``false`` 时返回最多 K 条路径" msgid "When ``true`` returns only paths that do not violate restrictions" msgstr "当 ``true`` 时仅返回不违反限制的路径" @@ -15316,16 +15811,16 @@ msgid "When ``false`` returns the paths found" msgstr "当 ``false`` 返回找到的路径" msgid "From vertex :math:`3` to :math:`8` with ``strict`` flag on." -msgstr "从顶点 :math:`3` 到:math:`8`,并启用 ``strict`` 标志。" +msgstr "从顶点 :math:`3` 到 :math:`8`,并启用 ``strict`` 标志。" msgid "No results because the only path available follows a restriction." msgstr "没有结果,因为唯一可用的路径受到限制。" -msgid "From vertex :math:`3` to vertex :math:`8` on an undirected graph" -msgstr "无向图中从顶点:math:`3`到顶点:math:`8`" +msgid "From vertex :math:`3` to vertex :math:`8` on an undirected graph" +msgstr "从无向图上的顶点 :math:`3` 到顶点 :math:`8`" -msgid "From vertex :math:`3` to vertex :math:`8` with more alternatives" -msgstr "从一个顶点 :math:`3`到另一个顶点 :math:`8`有更多的选择" +msgid "From vertex :math:`3` to vertex :math:`8` with more alternatives" +msgstr "从顶点 :math:`3` 到顶点 :math:`8` 更多选择" msgid "``pgr_version``" msgstr "``pgr_version``" @@ -15369,10 +15864,10 @@ msgid "pgr_withPoints(Combinations)" msgstr "pgr_withPoints(组合)" msgid "**positive** when it belongs to the edges_sql" -msgstr "当它属于edges_sql时为**正**" +msgstr "当它属于edges_sql时为 **正**" msgid "**negative** when it belongs to the points_sql" -msgstr "当它属于 points_sql时为**负**" +msgstr "当它属于 points_sql时为 **负**" msgid "" "When the starting vertex and ending vertex are the same, there is no path. - " @@ -15424,31 +15919,36 @@ msgstr "" msgid "**options:** ``[directed, driving_side, details])``" msgstr "**options:** ``[directed, driving_side, details])``" -msgid "RETURNS SET OF |old-pid-result|" -msgstr "RETURNS SET OF |old-pid-result|" +msgid "Returns set of |old-pid-result|" +msgstr "返回 |old-pid-result| 的集合" msgid "**options:** [directed, driving_side, details])" msgstr "**options:** [directed, driving_side, details])" msgid "From point :math:`1` to vertex :math:`10` with details" -msgstr "从点 :math:`1`到顶点:math:`10`的细节" +msgstr "从点 :math:`1` 到顶点 :math:`10` 的细节" -msgid "RETURNS SET OF |pid-1-m|" -msgstr "RETURNS SET OF |pid-1-m|" +msgid "Returns set of |pid-1-m|" +msgstr "返回 |pid-1-m| 的集合" msgid "" "From point :math:`1` to point :math:`3` and vertex :math:`7` on an " "undirected graph" -msgstr "无向图上的点:math:`1`到点 :math:`3`和顶点 :math:`7`" +msgstr "无向图上的点 :math:`1` 到点 :math:`3` 和顶点 :math:`7`" -msgid "RETURNS SET OF |pid-m-1|" -msgstr "RETURNS SET OF |pid-m-1|" +msgid "Returns set of |pid-m-1|" +msgstr "返回 |pid-m-1| 的集合" msgid "From point :math:`1` and vertex :math:`6` to point :math:`3`" -msgstr "从点 :math:`1`和顶点 :math:`6`到点 :math:`3`" +msgstr "从点 :math:`1` 和顶点 :math:`6` 到点 :math:`3`" + +msgid "Returns set of |pid-m-m|" +msgstr "返回 |pid-m-m| 的集合" -msgid "RETURNS SET OF |pid-m-m|" -msgstr "RETURNS SET OF |pid-m-m|" +msgid "" +"From point :math:`1` and vertex :math:`6` to point :math:`3` and vertex :" +"math:`1`" +msgstr "从点 :math:`1` 和顶点 :math:`6` 到点 :math:`3` 和顶点 :math:`1`" msgid "Two combinations" msgstr "两种组合" @@ -15457,8 +15957,8 @@ msgid "" "From point :math:`1` to vertex :math:`10`, and from vertex :math:`6` to " "point :math:`3` with **right** side driving." msgstr "" -"从点 :math:`1`到顶点 :math:`10`,以及从顶点 :math:`6` 到点:math:`3` ,**右侧" -"**行驶。" +"从点 :math:`1` 到顶点 :math:`10`,以及从顶点 :math:`6` 到点 :math:`3` ,**右" +"侧** 行驶。" msgid "" "Identifier of the starting vertex of the path. Negative value is for point’s " @@ -15487,26 +15987,26 @@ msgid "``r`` for right driving side." msgstr "``r`` 代表右驾驶侧。" msgid "``l`` for left driving side." -msgstr "``l``代表左驾驶侧。" +msgstr "``l`` 代表左驾驶侧。" msgid "``b`` for both." -msgstr "``b``对于两者。" +msgstr "``b`` 对于两者。" msgid "Use :doc:`pgr_findCloseEdges` in the `Points SQL`_." -msgstr "在 `Points SQL`_ 中使用 :doc:`pgr_findCloseEdges` 。" +msgstr "在 `Points SQL`_ 中使用 :doc:`pgr_findCloseEdges`。" msgid "" "All the examples are about traveling from point :math:`1` and vertex :math:" "`5` to points :math:`\\{2, 3, 6\\}` and vertices :math:`\\{10, 11\\}`" msgstr "" -"所有示例都是关于从点:math:`1`和顶点 :math:`5`到点:math:`\\{2, 3, 6\\}`和顶" -"点 :math:`\\{10, 11\\}`的旅行" +"所有示例都是关于从点 :math:`1` 和顶点 :math:`5` 到点 :math:`\\{2, 3, 6\\}` 和" +"顶点 :math:`\\{10, 11\\}` 的旅行" msgid "Passes in front or visits with right side driving." msgstr "从前方超车或右侧行驶来访。" msgid "For point :math:`6` and vertex :math:`11`." -msgstr "对于点 :math:`6`和顶点 :math:`11`。" +msgstr "对于点 :math:`6` 和顶点 :math:`11`。" msgid "Passes in front or visits with left side driving." msgstr "从前方超车或以左侧驾驶方式行驶。" @@ -15514,9 +16014,10 @@ msgstr "从前方超车或以左侧驾驶方式行驶。" msgid "``pgr_withPointsCost`` - Proposed" msgstr "``pgr_withPointsCost`` -拟议" +#, fuzzy msgid "" "``pgr_withPointsCost`` - Calculates the shortest path and returns only the " -"aggregate cost of the shortest path(s) found, for the combination of points " +"aggregate cost of the shortest path found, for the combination of points " "given." msgstr "" "``pgr_withPointsCost`` -对于给定的点组合,计算最短路径并仅返回找到的最短路径" @@ -15525,9 +16026,10 @@ msgstr "" msgid "pgr_withPointsCost(Combinations)" msgstr "pgr_withPointsCost(组合)" +#, fuzzy msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " -"algorithm, return only the aggregate cost of the shortest path(s) found." +"algorithm, return only the aggregate cost of the shortest path found." msgstr "" "修改图以包括由points_sql 定义的点。 使用 Dijkstra 算法,仅返回找到的最短路径" "的总成本。" @@ -15543,10 +16045,10 @@ msgid "" msgstr "返回值的形式为一组`(start_vid, end_vid, agg_cost)`。" msgid "The `agg_cost` in the non included values `(v, v)` is `0`" -msgstr "非包含值`(v, v)`中的`agg_cost`为`0`" +msgstr "非包含值 `(v, v)` 中的 `agg_cost` 为`0`" msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`" -msgstr "非包含值 `(u, v)`中的 `agg_cost`为:math:`\\infty`" +msgstr "非包含值 `(u, v)` 中的 `agg_cost` 为 :math:`\\infty`" msgid "" "If the values returned are stored in a table, the unique index would be the " @@ -15555,16 +16057,13 @@ msgstr "" "如果返回的值存储在表中,则唯一索引将是这一对:`(start_vid, end_vid)`.。" msgid "For **undirected** graphs, the results are **symmetric**." -msgstr "对于**无向**图,结果是**对称**的。" +msgstr "对于 **无向** 图,结果是 **对称** 的。" msgid "" "For optimization purposes, any duplicated value in the `start_vids` or " "`end_vids` is ignored." msgstr "出于优化目的, `start_vids`或 `end_vids` 中的任何重复值都将被忽略。" -msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`" -msgstr "运行时间::math:`O(| start\\_vids | * (V \\log V + E))`" - msgid "" "pgr_withPointsCost(`Edges SQL`_, 'Points SQL`_, **start vid**, **end vid**, " "[**options**])" @@ -15600,19 +16099,19 @@ msgstr "" "pgr_withPointsCost(`Edges SQL`_, 'Points SQL`_, `Combinations SQL`_, " "[**options**])" -msgid "**options:** ``[directed, driving_side]``" -msgstr "**options:** ``[directed, driving_side]``" +msgid "**options:** ``[directed, driving_side]``" +msgstr "**options:** ``[directed, driving_side]``" -msgid "RETURNS SET OF |matrix-pid|" -msgstr "RETURNS SET OF |matrix-pid|" +msgid "Returns set of |matrix-pid|" +msgstr "返回 |matrix-pid| 的集合" msgid "" "There is no **details** flag, unlike the other members of the withPoints " "family of functions." -msgstr "与 withPoints 函数系列的其他成员不同,没有**详细信息**标志。" +msgstr "与 withPoints 函数系列的其他成员不同,没有 **详细信息** 标志。" msgid "From point :math:`1` to vertex :math:`10` with defaults" -msgstr "使用默认值从点 :math:`1`到顶点:math:`10`" +msgstr "使用默认值从点 :math:`1` 到顶点 :math:`10`" msgid "" "pgr_withPointsCost(`Edges SQL`_, `Points SQL`_, **start vid**, **end vids**, " @@ -15636,9 +16135,9 @@ msgstr "" "vids**, [**options**])" msgid "" -"From point :math:`15` and vertex :math:`6` to point :math:`3` and vertex :" +"From point :math:`15` and vertex :math:`6` to point :math:`3` and vertex :" "math:`1`" -msgstr "从点:math:`15`和顶点 :math:`6`到点 :math:`3` 和顶点:math:`1`" +msgstr "从点 :math:`15` 和顶点 :math:`6` 到点 :math:`3` 和顶点 :math:`1`" msgid "" "pgr_withPointsCost(`Edges SQL`_, `Points SQL`_, `Combinations SQL`_, " @@ -15689,7 +16188,8 @@ msgstr "``pgr_withPointsCostMatrix`` - 拟议" msgid "" "``pgr_withPointsCostMatrix`` - Calculates a cost matrix using :doc:" "`pgr_withPoints`." -msgstr "``pgr_withPointsCostMatrix`` - 使用 :doc:`pgr_withPoints`计算成本矩阵." +msgstr "" +"``pgr_withPointsCostMatrix`` - 使用 :doc:`pgr_withPoints` 计算成本矩阵." msgid "" "pgr_withPointsCostMatrix(`Edges SQL`_, `Points SQL`_, **start vids**, " @@ -15702,22 +16202,22 @@ msgid "" "Cost matrix for points :math:`\\{1, 6\\}` and vertices :math:`\\{10, 11\\}` " "on an **undirected** graph" msgstr "" -"**无向**图上的点 :math:`\\{1, 6\\}`和顶点:math:`\\{10, 11\\}`的成本矩阵" +"**无向** 图上的点 :math:`\\{1, 6\\}` 和顶点 :math:`\\{10, 11\\}` 的成本矩阵" msgid "Returning a **symmetrical** cost matrix" -msgstr "返回**对称**成本矩阵" +msgstr "返回 **对称** 成本矩阵" msgid "Using the default ``side`` value on the **points_sql** query" -msgstr "在**points_sql**查询上使用默认``side``值" +msgstr "在 **points_sql** 查询上使用默认 ``side`` 值" msgid "Using the default ``driving_side`` value" -msgstr "使用默认``driving_side``值" +msgstr "使用默认 ``driving_side`` 值" msgid "" "Find the matrix cost of the routes from vertex :math:`1` and the two closest " "locations on the graph of point `(2.9, 1.8)`." msgstr "" -"求从顶点:math:`1`到图上点 `(2.9, 1.8)` 的两个最近位置的路线的矩阵成本。" +"求从顶点 :math:`1` 到图上点 `(2.9, 1.8)` 的两个最近位置的路线的矩阵成本。" msgid "``pgr_withPointsDD`` - Proposed" msgstr "``pgr_withPointsDD`` - 拟议" @@ -15725,16 +16225,17 @@ msgstr "``pgr_withPointsDD`` - 拟议" msgid "" "``pgr_withPointsDD`` - Returns the driving **distance** from a starting " "point." -msgstr "``pgr_withPointsDD`` -返回从起点开始的行驶**距离**。" +msgstr "``pgr_withPointsDD`` - 返回从起点开始的行驶 **距离** 。" msgid "" "Signature change: ``driving_side`` parameter changed from named optional to " "unnamed compulsory **driving side**." -msgstr "签名更改:``driving_side``参数从已命名的可选参数改为未命名的必选参数**" -"driving side**。" +msgstr "" +"签名更改: ``driving_side`` 参数从已命名的可选参数改为未命名的必选参数 " +"**driving side**。" msgid "``pgr_withPointsDD`` (`Single vertex`)" -msgstr "``pgr_withPointsDD``(`单顶点`)" +msgstr "``pgr_withPointsDD`` (`单顶点`)" msgid "Added ``depth``, ``pred`` and ``start_vid`` column." msgstr "添加了 ``depth``、``pred`` 和 ``start_vid`` 列。" @@ -15742,28 +16243,30 @@ msgstr "添加了 ``depth``、``pred`` 和 ``start_vid`` 列。" msgid "Added ``depth``, ``pred`` columns." msgstr "添加了 ``depth``,``pred`` 列。" +#, fuzzy msgid "When ``details`` is ``false``:" msgstr "当 ``details`` 为``false`` 时:" msgid "" "Only points that are visited are removed, that is, points reached within the " "distance are included" -msgstr "只有那些被访问的兴趣点会被移除,也就是说,位于一定距离范围内被到达的兴趣点会" +msgstr "" +"只有那些被访问的兴趣点会被移除,也就是说,位于一定距离范围内被到达的兴趣点会" "被包含在内" msgid "" "``pgr_withpointsdd(text,text,bigint,double precision,boolean,character," "boolean)``" msgstr "" -"``pgr_withpointsdd(text,text,bigint,double " -"precision,boolean,character,boolean)``" +"``pgr_withpointsdd(text,text,bigint,double precision,boolean,character," +"boolean)``" msgid "" "``pgr_withpointsdd(text,text,anyarray,double precision,boolean,character," "boolean,boolean)``" msgstr "" -"``pgr_withpointsdd(text,text,anyarray,double " -"precision,boolean,character,boolean,boolean)``" +"``pgr_withpointsdd(text,text,anyarray,double precision,boolean,character," +"boolean,boolean)``" msgid "" "Modify the graph to include points and using Dijkstra algorithm, extracts " @@ -15771,8 +16274,8 @@ msgid "" "``**distance**`` from the starting point. The edges extracted will conform " "the corresponding spanning tree." msgstr "" -"修改图以包含点,并使用 Dijkstra 算法,提取成本小于或等于距起点``**距离**``值" -"的所有节点和点。 提取的边将符合相应的生成树。" +"修改图以包含点,并使用 Dijkstra 算法,提取成本小于或等于距起点 ``**距离**`` " +"值的所有节点和点。 提取的边将符合相应的生成树。" msgid "" "pgr_withPointsDD(`Edges SQL`_, `Points SQL`_, **root vid**, **distance**, " @@ -15862,14 +16365,14 @@ msgid "" msgstr "求图上点 `(2.9, 1.8)` 距离最近的两个位置的行驶距离。" msgid "" -"Point :math:`-1` corresponds to the closest edge from point :math:" -"`(2.9,1.8)`." -msgstr "点:math:`-1`对应于距离点 :math:`(2.9,1.8)`最近的边。" +"Point :math:`-1` corresponds to the closest edge from point :math:`(2.9, " +"1.8)`." +msgstr "点 :math:`-1` 对应距离点 :math:`(2.9, 1.8)` 最近的边。" msgid "" -"Point :math:`-2` corresponds to the next close edge from point :math:" -"`(2.9,1.8)`." -msgstr "点:math:`-2`对应于点 :math:`(2.9,1.8)`的下一个闭合边。" +"Point :math:`-2` corresponds to the next close edge from point :math:`(2.9, " +"1.8)`." +msgstr "点 :math:`-2` 对应于点 :math:`(2.9, 1.8)` 的下一条近边。" msgid "Driving side does not matter" msgstr "驾驶侧并不重要" @@ -15897,6 +16400,9 @@ msgstr "标准化输出列为 |nksp-result|" msgid "``pgr_withPointsKSP`` (One to One)" msgstr "``pgr_withPointsKSP`` (一对一)" +msgid "New overload functions" +msgstr "新的重载函数" + msgid "``pgr_withPointsKSP`` (One to Many)" msgstr "``pgr_withPointsKSP`` (一对多)" @@ -15909,9 +16415,6 @@ msgstr "``pgr_withPointsKSP`` (多对多)" msgid "``pgr_withPointsKSP`` (Combinations)" msgstr "``pgr_withPointsKSP`` (组合)" -msgid "Deprecated signature:" -msgstr "已弃用的签名:" - msgid "" "``pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char," "boolean)``" @@ -15923,7 +16426,7 @@ msgid "" "Modifies the graph to include the points defined in the `Points SQL`_ and " "using Yen algorithm, finds the :math:`K` shortest paths." msgstr "" -"修改图以包括`Points SQL`_ 中定义的点并使用 Yen 算法查找 :math:`K`最短路径。" +"修改图以包括 `Points SQL`_ 中定义的点并使用 Yen 算法查找 :math:`K` 最短路径。" msgid "" "pgr_withPointsKSP(`Edges SQL`_, `Points SQL`_, **start vid**, **end vid**, " @@ -15960,14 +16463,14 @@ msgstr "" "pgr_withPointsKSP(`Edges SQL`_, `Points SQL`_, `Combinations SQL`_, **K**, " "**driving_side**, [**options**])" -msgid "**options:** ``[directed, heap_paths, details]``" -msgstr "**options:** ``[directed, heap_paths, details]``" +msgid "**options:** ``[directed, heap_paths, details]``" +msgstr "**options:** ``[directed, heap_paths, details]``" msgid "" "Get 2 paths from Point :math:`1` to point :math:`2` on a directed graph with " "**left** side driving." msgstr "" -"在具有**左侧**驾驶的有向图上,从点 :math:`1` 到点 :math:`2` 获取两条路径。" +"在具有 **左侧** 驾驶的有向图上,从点 :math:`1` 到点 :math:`2` 获取两条路径。" msgid "For a directed graph." msgstr "有向图。" @@ -15988,19 +16491,19 @@ msgid "" "**directed** graph with **right** side driving and **details** set to " "**True**" msgstr "" -"在具有**右侧**驾驶的**有向**图上,从点 :math:`1` 和顶点 :math:`6` 到点 :math:" -"`3` 获取一条路径,且**details** 设置为 **True**" +"在具有 **右侧** 驾驶的 **有向** 图上,从点 :math:`1` 和顶点 :math:`6` 到点 :" +"math:`3` 获取一条路径,且 **details** 设置为 **True**" msgid "" "Get a path from point :math:`1` and vertex :math:`6` to point :math:`3` and " "vertex :math:`1` on a **directed** graph with **left** side driving and " "**heap_paths** set to **True**" msgstr "" -"在具有**左侧**驾驶的**有向**图上,从点 :math:`1` 和顶点 :math:`6` 到点 :math:" -"`3` 和顶点 :math:`1` 获取一条路径,且**heap_paths** 设置为 **True**" +"在具有 **左侧** 驾驶的 **有向** 图上,从点 :math:`1` 和顶点 :math:`6` 到点 :" +"math:`3` 和顶点 :math:`1` 获取一条路径,且 **heap_paths** 设置为 **True**" msgid "Using a combinations table on an **directed** graph" -msgstr "在**有向**图上使用组合表" +msgstr "在 **有向** 图上使用组合表" msgid "`Points SQL`_ query as described." msgstr "按照描述的方式执行 `Points SQL`_ 查询。" @@ -16054,7 +16557,7 @@ msgstr "" "用堆路径(heap paths)并包含详细信息。" msgid "``pgr_withPointsVia`` - Proposed" -msgstr "``pgr_withPointsVia`` -拟议" +msgstr "``pgr_withPointsVia`` - 拟议" msgid "" "``pgr_withPointsVia`` - Route that goes through a list of vertices and/or " @@ -16062,7 +16565,7 @@ msgid "" msgstr "``pgr_withPointsVia`` - 经过一系列顶点和/或点的路线。" msgid "New **proposed** function ``pgr_withPointsVia`` (`One Via`_)" -msgstr "新 **拟议**的函数 ``pgr_withPointsVia`` (`One Via`_)" +msgstr "新 **拟议** 的函数 ``pgr_withPointsVia`` (`One Via`_)" msgid "" "Given a graph, a set of points on the graphs edges and a list of vertices, " @@ -16072,8 +16575,8 @@ msgid "" msgstr "" "给定一个图、图上边缘的一组点以及一个顶点列表,此函数相当于找到 :math:" "`vertex_i` 和 :math:`vertex_{i+1}` 之间的最短路径(其中 :math:`vertex` 可以是" -"一个顶点或图上的一个点),对于所有的 :math:`i`,满足 :math:`i < size\\_of(via" -"\\;vertices)`。" +"一个顶点或图上的一个点),对于所有的 :math:`i`,满足 :math:`i < " +"size\\_of(via\\;vertices)`。" msgid "" "pgr_withPointsVia(`Edges SQL`_, `Points SQL`_, **via vertices**, " @@ -16085,7 +16588,7 @@ msgstr "" msgid "" "Find the route that visits the vertices :math:`\\{ -6, 15, -1\\}` in that " "order on a **directed** graph." -msgstr "在**有向**图上按顺序访问顶点 :math:`\\{ -6, 15, -1\\}` 的路线。" +msgstr "在 **有向** 图上按顺序访问顶点 :math:`\\{ -6, 15, -1\\}` 的路线。" msgid "Use :doc:`pgr_findCloseEdges` in the `Points SQL`_" msgstr "在 `Points SQL`_ 中使用 :doc:`pgr_findCloseEdges` 函数" @@ -16094,7 +16597,7 @@ msgid "" "All this examples are about the route that visits the vertices :math:`\\{-1, " "7, -3, 16, 15\\}` in that order on a **directed** graph." msgstr "" -"所有这些示例都是关于在**有向**图上按顺序访问顶点 :math:`\\{-1, 7, -3, 16, " +"所有这些示例都是关于在 **有向** 图上按顺序访问顶点 :math:`\\{-1, 7, -3, 16, " "15\\}` 的路线。" msgid "Prim - Family of functions" @@ -16140,8 +16643,8 @@ msgstr "" "prim_minimum_spanning_tree.html>`__" msgid "" -"Wikipedia: `Prim's algorithm `__" +"Wikipedia: `Prim's algorithm `__" msgstr "" "维基百科: `Prim算法 `__" @@ -16164,7 +16667,7 @@ msgid ":doc:`pgr_withPointsDD` - Driving distance." msgstr ":doc:`pgr_withPointsDD` -行驶距离。" msgid ":doc:`pgr_withPointsVia` - Via routing" -msgstr ":doc:`pgr_withPointsVia` -通过路由" +msgstr ":doc:`pgr_withPointsVia` - 通过路由" msgid "These proposed functions do not modify the database." msgstr "这些拟议的功能不会修改数据库。" @@ -16179,6 +16682,10 @@ msgid "" "table information." msgstr ":doc:`pgr_extractVertices` - 根据边表信息提取顶点信息。" +msgid "" +":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." +msgstr ":doc:`pgr_lineGraph` - 用于生成折线图的转换算法。" + msgid ":doc:`pgr_withPointsVia`" msgstr ":doc:`pgr_withPointsVia`" @@ -16213,37 +16720,167 @@ msgstr "" "要查看完整的更改列表,请检查 Github 上的 `Git提交列表 `_。" +msgid "Mayors" +msgstr "主要版本" + +msgid "pgRouting 3" +msgstr "pgRouting 3" + +msgid "Minors 3.x" +msgstr "3.x小版本" + +msgid "pgRouting 3.7" +msgstr "pgRouting 3.7" + +msgid "pgRouting 3.6" +msgstr "pgRouting 3.6" + +#, fuzzy +msgid "pgRouting 3.6.3 Release Notes" +msgstr "pgRouting 3.6.1 发布说明" + +#, fuzzy +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.3 `__" +msgstr "" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.6.1Git 关闭里程碑 `_" + +msgid "Build" +msgstr "构建" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +#, fuzzy +msgid "postgis 3.0.0" +msgstr "版本3.0.0" + +msgid "Code fixes" +msgstr "代码修正" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +#, fuzzy +msgid "CI tests" +msgstr "pgtap 测试" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "" +"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" +msgstr "" + +msgid "Documentation" +msgstr "文档" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "pgr_edgeDisjointPaths" + +msgid "pgr_stoerWagner" +msgstr "pgr_stoerWagner" + +msgid "pgtap tests" +msgstr "pgtap 测试" + +#, fuzzy +msgid "bug fixes" +msgstr "Bug修复" + +#, fuzzy +msgid "pgRouting 3.6.2 Release Notes" +msgstr "pgRouting 3.6.1 发布说明" + +#, fuzzy +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.2 `__" +msgstr "" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.6.1Git 关闭里程碑 `_" + +msgid "Upgrade fix" +msgstr "" + +msgid "The upgrade was failing for same minor" +msgstr "" + +msgid "Fix warnings from cpplint" +msgstr "" + +msgid "Others" +msgstr "其他" + +msgid "Adjust NEWS generator" +msgstr "调整新闻生成器" + +msgid "Name change to `NEWS.md` for better visualization on GitHub" +msgstr "更名为 `NEWS.md` ,以便在 GitHub 上更好地可视化" + +msgid "pgRouting 3.6.1 Release Notes" +msgstr "pgRouting 3.6.1 发布说明" + +msgid "" +"To see all issues & pull requests closed by this release see the `Git closed " +"milestone for 3.6.1 `_" +msgstr "" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.6.1Git 关闭里程碑 `_" + +msgid "" +"`#2588 `__ pgrouting 3.6.0 " +"fails to build on OSX" +msgstr "" +"`#2588 `__ pgrouting 3.6.0 " +"在 OSX 上构建失败" + msgid "pgRouting 3.6.0 Release Notes" msgstr "pgRouting 3.6.0 发布说" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.6.0 `_" +"milestone for 3.6.0 `_" msgstr "" "要查看此版本关闭的所有问题和拉取请求,请访问 `Git 3.6.0 里程碑的已关闭问题和" -"拉取请求 `_" - -msgid "Official functions changes" -msgstr "官方功能变更" +"拉取请求 `_" msgid "" "`#2516 `__ Standarize " "output pgr_aStar" msgstr "" -"`#2516 `__标准化输出" +"`#2516 `__ 标准化输出" "pgr_aStar" msgid "" "``pgr_aStar`` (`One to One`) added ``start_vid`` and ``end_vid`` columns." -msgstr "``pgr_aStar`` (`一对一`)增加了 ``start_vid``和 ``end_vid``列。" +msgstr "``pgr_aStar`` (`一对一`)增加了 ``start_vid`` 和 ``end_vid`` 列。" msgid "``pgr_aStar`` (`One to Many`) added ``end_vid`` column." msgstr "``pgr_aStar``(`一对多`)添加了 ``end_vid`` 列。" msgid "``pgr_aStar`` (`Many to One`) added ``start_vid`` column." -msgstr "``pgr_aStar``(`多对一`)添加了 ``start_vid``列。" +msgstr "``pgr_aStar``(`多对一`)添加了 ``start_vid`` 列。" msgid "" "`#2523 `__ Standarize " @@ -16257,17 +16894,17 @@ msgid "" msgstr "``pgr_bdAstar``(`一对一`)增加了 ``start_vid`` 和``end_vid`` 列。" msgid "``pgr_bdAstar`` (`One to Many`) added ``end_vid`` column." -msgstr "``pgr_bdAstar``(`一对多)添加了``end_vid``列。" +msgstr "``pgr_bdAstar``(`一对多)添加了``end_vid`` 列。" msgid "``pgr_bdAstar`` (`Many to One`) added ``start_vid`` column." -msgstr "``pgr_bdAstar``(`多对一`)添加了``start_vid``列。" +msgstr "``pgr_bdAstar``(`多对一`)添加了``start_vid`` 列。" msgid "" "`#2547 `__ Standarize " "output and modifying signature pgr_KSP" msgstr "" -"`#2547 `__ " -"标准化输出并修改签名 pgr_KSP" +"`#2547 `__ 标准化输出并修改" +"签名 pgr_KSP" msgid "" "`#2548 `__ Standarize " @@ -16283,15 +16920,15 @@ msgid "" "`#2544 `__ Standarize " "output and modifying signature pgr_withPointsDD" msgstr "" -"`#2544 `__ " -"标准化输出并修改签名 pgr_withPointsDD" +"`#2544 `__ 标准化输出并修改" +"签名 pgr_withPointsDD" msgid "" "`#2546 `__ Standarize " "output and modifying signature pgr_withPointsKSP" msgstr "" -"`#2546 `__ " -"标准化输出并修改签名pgr_withPointsKSP" +"`#2546 `__ 标准化输出并修改" +"签名pgr_withPointsKSP" msgid "C/C++ code enhancements" msgstr "C/C++ 代码增强" @@ -16300,15 +16937,16 @@ msgid "" "`#2504 `__ To C++ pg data " "get, fetch and check." msgstr "" -"`#2504 `__ " -"获取、提取和检查C++ pg数据。" +"`#2504 `__ 获取、提取和检查" +"C++ pg数据。" msgid "Stopping support for compilation with MSVC." msgstr "停止支持使用 MSVC 进行编译。" msgid "" "`#2505 `__ Using namespace." -msgstr "`#2505 `__ 使用命名空间。" +msgstr "" +"`#2505 `__ 使用命名空间。" msgid "" "`#2512 `__ [Dijkstra] " @@ -16327,24 +16965,22 @@ msgid "" "`#2521 `__ Dijkstra code " "simplification." msgstr "" -"`#2521 `__ Dijkstra " -"代码简化。" +"`#2521 `__ Dijkstra 代码简" +"化。" msgid "" "`#2522 `__ bdAstar code " "simplification." msgstr "" -"`#2522 `__ bdAstar " -"代码简化。" - -msgid "Documentation" -msgstr "文档" +"`#2522 `__ bdAstar 代码简" +"化。" msgid "" "`#2490 `__ Automatic page " "history links." -msgstr "`#2490 `__ " -"自动页面历史链接。" +msgstr "" +"`#2490 `__ 自动页面历史链" +"接。" msgid "..rubric:: SQL standarization" msgstr "..rubric::SQL 标准化" @@ -16352,24 +16988,28 @@ msgstr "..rubric::SQL 标准化" msgid "" "`#2555 `__ standarize " "deprecated messages" -msgstr "`#2555 `__标准化已弃用的消息" +msgstr "" +"`#2555 `__ 标准化已弃用的消" +"息" msgid "" "On new internal function: do not use named parameters and default parameters." msgstr "新内部函数:不使用命名参数和默认参数。" +msgid "pgRouting 3.5" +msgstr "pgRouting 3.5" + msgid "pgRouting 3.5.1 Release Notes" msgstr "pgRouting 3.5.1 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.1 `_" +"milestone for 3.5.1 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.5.1 Git " -"关闭里程碑`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.5.1 Git 关闭里程碑 `_" msgid "Documentation fixes" msgstr "文档修复" @@ -16409,18 +17049,15 @@ msgid "" "`#2561 `__ Not use " "wildcards on SQL" msgstr "" -"`#2561 `__ 在 SQL " -"中不使用通配符" - -msgid "pgtap tests" -msgstr "pgtap 测试" +"`#2561 `__ 在 SQL 中不使" +"用通配符" msgid "" "`#2559 `__ pgtap test " "using sampledata" msgstr "" -"`#2559 `__ pgtap " -"测试使用 示例数据" +"`#2559 `__ pgtap 测试使" +"用 示例数据" msgid "Build fixes" msgstr "构建修复" @@ -16428,9 +17065,6 @@ msgstr "构建修复" msgid "Fix winnie build" msgstr "修复 Winnie 构建" -msgid "Code fixes" -msgstr "代码修正" - msgid "Fix clang warnings" msgstr "修复 clang 警告" @@ -16442,37 +17076,40 @@ msgstr "pgRouting 3.5.0 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.5.0 `_" +"milestone for 3.5.0 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.5.0 Git 关闭里程碑 " -"`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.5.0 Git 关闭里程碑 `_" msgid "Dijkstra" msgstr "Dijkstra" msgid "" "``pgr_dijkstra`` (`One to One`) added ``start_vid`` and ``end_vid`` columns." -msgstr "``pgr_dijkstra``(`一对一`)增加了``start_vid`` 和``end_vid``列。" +msgstr "``pgr_dijkstra``(`一对一`)增加了``start_vid`` 和``end_vid`` 列。" msgid "``pgr_dijkstra`` (`One to Many`) added ``end_vid`` column." -msgstr "``pgr_dijkstra``(`一对多`)添加了 ``end_vid``列。" +msgstr "``pgr_dijkstra``(`一对多`)添加了 ``end_vid`` 列。" msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." msgstr "``pgr_dijkstra`` (`多对一`)添加了 ``start_vid`` 列。" +msgid "pgRouting 3.4" +msgstr "pgRouting 3.4" + msgid "pgRouting 3.4.2 Release Notes" msgstr "pgRouting 3.4.2 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.2 `_" +"milestone for 3.4.2 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.4.2Git 关闭里程碑 " -"`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.4.2Git 关闭里程碑 `_" msgid "" "`#2394 `__: pgr_bdAstar " @@ -16494,12 +17131,12 @@ msgstr "pgRouting 3.4.1 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.1 `_" +"milestone for 3.4.1 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.4.1Git 关闭里程碑 " -"`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.4.1Git 关闭里程碑 `_" msgid "" "`#2401 `__: pgRouting " @@ -16512,27 +17149,27 @@ msgid "" "`#2398 `__: v3.4.0 does " "not upgrade from 3.3.3" msgstr "" -"`#2398 `__: v3.4.0 " -"不能从 3.3.3 升级" +"`#2398 `__: v3.4.0 不能" +"从 3.3.3 升级" msgid "pgRouting 3.4.0 Release Notes" msgstr "pgRouting 3.4.0 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.4.0 `_" +"milestone for 3.4.0 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.4.0 Git 关闭里程碑 " -"`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.4.0 Git 关闭里程碑 `_" msgid "" "`#1891 `__: pgr_ksp " "doesn't give all correct shortest path" msgstr "" -"`#1891 `__: pgr_ksp " -"没有给出所有正确的最短路径" +"`#1891 `__: pgr_ksp 没有" +"给出所有正确的最短路径" msgid "New proposed functions" msgstr "新的拟议函数" @@ -16562,22 +17199,22 @@ msgid "``pgr_trsp`` (One to One)" msgstr "``pgr_trsp`` (一对一)" msgid "``pgr_trsp`` (One to Many)" -msgstr "``pgr_trsp``(一对多)" +msgstr "``pgr_trsp`` (一对多)" msgid "``pgr_trsp`` (Many to One)" -msgstr "``pgr_trsp``(多对一)" +msgstr "``pgr_trsp`` (多对一)" msgid "``pgr_trsp`` (Many to Many)" -msgstr "``pgr_trsp``(多对多)" +msgstr "``pgr_trsp`` (多对多)" msgid "``pgr_trsp`` (Combinations)" -msgstr "``pgr_trsp``(组合)" +msgstr "``pgr_trsp`` (组合)" msgid "``pgr_trsp_withPoints``" msgstr "``pgr_trsp_withPoints``" msgid "``pgr_trsp_withPoints`` (One to One)" -msgstr "``pgr_trsp_withPoints``(一对一)" +msgstr "``pgr_trsp_withPoints`` (一对一)" msgid "``pgr_trsp_withPoints`` (One to Many)" msgstr "``pgr_trsp_withPoints`` (一对多)" @@ -16586,7 +17223,7 @@ msgid "``pgr_trsp_withPoints`` (Many to One)" msgstr "pgr_trsp_withPoints``(多对一)" msgid "``pgr_trsp_withPoints`` (Many to Many)" -msgstr "``pgr_trsp_withPoints``(多对多)" +msgstr "``pgr_trsp_withPoints`` (多对多)" msgid "``pgr_trsp_withPoints`` (Combinations)" msgstr "``pgr_trsp_withPoints`` (组合)" @@ -16598,13 +17235,10 @@ msgid "``pgr_degree``" msgstr "``pgr_degree``" msgid "``pgr_findCloseEdges`` (One point)" -msgstr "``pgr_findCloseEdges``(单点)" +msgstr "``pgr_findCloseEdges`` (单点)" msgid "``pgr_findCloseEdges`` (Many points)" -msgstr "``pgr_findCloseEdges``(多点)" - -msgid "New experimental functions" -msgstr "新的实验函数" +msgstr "``pgr_findCloseEdges`` (多点)" msgid "Ordering" msgstr "排序" @@ -16612,9 +17246,6 @@ msgstr "排序" msgid "``pgr_cuthillMckeeOrdering``" msgstr "``pgr_cuthillMckeeOrdering``" -msgid "Unclassified" -msgstr "未分类" - msgid "Flow functions" msgstr "流程函数" @@ -16622,9 +17253,9 @@ msgid "``pgr_maxCardinalityMatch(text)``" msgstr "``pgr_maxCardinalityMatch(text)``" msgid "Deprecating ``pgr_maxCardinalityMatch(text,boolean)``" -msgstr "弃用``pgr_maxCardinalityMatch(text,boolean)``" +msgstr "弃用 ``pgr_maxCardinalityMatch(text,boolean)``" -msgid "Deprecated functions" +msgid "Deprecated Functions" msgstr "已废弃的函数" msgid "``pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)``" @@ -16633,6 +17264,9 @@ msgstr "``pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)``" msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" msgstr "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" +msgid "pgRouting 3.3" +msgstr "pgRouting 3.3" + msgid "pgRouting 3.3.5 Release Notes" msgstr "pgRouting 3.3.5 发布说明" @@ -16641,12 +17275,12 @@ msgstr "pgRouting 3.3.4 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.4 `_" +"milestone for 3.3.4 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.3.4Git 关闭里程碑 " -"`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅 `3.3.4Git 关闭里程碑 `_" msgid "" "`#2400 `__: pgRouting " @@ -16660,12 +17294,12 @@ msgstr "pgRouting 3.3.3 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.3 `_" +"milestone for 3.3.3 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅` 3.3.3Git 关闭里程碑 " -"`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅` 3.3.3Git 关闭里程碑 `_" msgid "" "Ignoring optional boolean parameter, as the algorithm works only for " @@ -16677,12 +17311,12 @@ msgstr "pgRouting 3.3.2 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.2 `_" +"milestone for 3.3.2 `_" msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 ` 3.3.2Git 关闭里程碑 " -"`_" +"要查看此版本关闭的所有问题和拉取请求,请参阅 ` 3.3.2Git 关闭里程碑 `_" msgid "Revised documentation" msgstr "修订文档" @@ -16740,36 +17374,37 @@ msgstr "pgRouting 3.3.1 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.1 `_ on Github." +"milestone for 3.3.1 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` " -"3.3.1Git关闭里程碑 `_。" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` 3.3.1Git关闭里程" +"碑 `_。" msgid "" "`#2216 `__: Warnings " "when using clang" msgstr "" -"`#2216 `__:使用 clang " -"时发出警告" +"`#2216 `__:使用 clang 时" +"发出警告" msgid "" "`#2266 `__: Error " "processing restrictions" -msgstr "`#2266 `__:错误处理限制" +msgstr "" +"`#2266 `__:错误处理限制" msgid "pgRouting 3.3.0 Release Notes" msgstr "pgRouting 3.3.0 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.3.0 `_ on Github." +"milestone for 3.3.0 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` 3.3.0 " -"Git关闭里程碑`_。" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` 3.3.0 Git关闭里程" +"碑 `_ 。" msgid "" "`#2057 `__: trspViaEdges " @@ -16789,22 +17424,22 @@ msgid "" "`#2201 `__: " "pgr_depthFirstSearch to proposed" msgstr "" -"`#2201 `__: " -"拟议的pgr_depthFirstSearch" +"`#2201 `__: 拟议的" +"pgr_depthFirstSearch" msgid "" "`#2202 `__: " "pgr_sequentialVertexColoring to proposed" msgstr "" -"`#2202 `__: " -"拟议的pgr_sequentialVertexColoring" +"`#2202 `__: 拟议的" +"pgr_sequentialVertexColoring" msgid "" "`#2203 `__: " "pgr_dijkstraNear and pgr_dijkstraNearCost to proposed" msgstr "" -"`#2203 `__: " -"拟议的pgr_dijkstraNear 和 pgr_dijkstraNearCost" +"`#2203 `__: 拟议的" +"pgr_dijkstraNear 和 pgr_dijkstraNearCost" msgid "Coloring" msgstr "着色" @@ -16860,20 +17495,20 @@ msgstr "pgr_depthFirstSearch(多顶点)" msgid "pgr_depthFirstSearch(Single vertex)" msgstr "pgr_depthFirstSearch( 单顶点 )" +msgid "pgRouting 3.2" +msgstr "pgRouting 3.2" + msgid "pgRouting 3.2.2 Release Notes" msgstr "pgRouting 3.2.2 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.2 `_ on Github." +"milestone for 3.2.2 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.2.2 " -"Git关闭里程碑`_。" - -msgid "Issues" -msgstr "问题" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.2.2 Git关闭里程" +"碑 `_。" msgid "" "`#2093 `__: Compilation " @@ -16886,20 +17521,20 @@ msgid "" "`#2189 `__: Build error " "on RHEL 7" msgstr "" -"`#2189 `__:RHEL 7 " -"上的构建错误" +"`#2189 `__:RHEL 7 上的构" +"建错误" msgid "pgRouting 3.2.1 Release Notes" msgstr "pgRouting 3.2.1 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.1 `_ on Github." +"milestone for 3.2.1 `_ on Github." msgstr "" "要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.2.1Git关闭里程碑 " -"`_。" +"`_。" msgid "" "`#1883 `__: " @@ -16924,22 +17559,19 @@ msgstr "pgRouting 3.2.0 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.2.0 `_ on Github." +"milestone for 3.2.0 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` " -"3.2.0Git关闭里程碑 `_。" - -msgid "Build" -msgstr "构建" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` 3.2.0Git关闭里程" +"碑 `_。" msgid "" "`#1850 `__: Change Boost " "min version to 1.56" msgstr "" -"`#1850 `__:将 Boost " -"最低版本更改为 1.56" +"`#1850 `__:将 Boost 最低" +"版本更改为 1.56" msgid "Removing support for Boost v1.53, v1.54 & v1.55" msgstr "删除对 Boost v1.53、v1.54 和 v1.55 的支持" @@ -17016,17 +17648,20 @@ msgstr "pgr_maxFlow(组合)" msgid "pgr_pushRelabel(Combinations)" msgstr "pgr_pushRelabel(组合)" +msgid "pgRouting 3.1" +msgstr "pgRouting 3.1" + msgid "pgRouting 3.1.4 Release Notes" msgstr "pgRouting 3.1.4 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.4 `_ on Github." +"milestone for 3.1.4 `_ on Github." msgstr "" "要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.4Git关闭里程碑 " -"`_。" +"`_ 。" msgid "Issues fixes" msgstr "问题修复" @@ -17036,45 +17671,45 @@ msgstr "pgRouting 3.1.3 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.3 `_ on Github." +"milestone for 3.1.3 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.3 " -"Git关闭里程碑`_。" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.3 Git关闭里程" +"碑 `_。" msgid "" "`#1825 `__: Boost " "versions are not honored" msgstr "" -"`#1825 `__:Boost " -"版本不受支持" +"`#1825 `__:Boost 版本不" +"受支持" msgid "" "`#1849 `__: Boost 1.75.0 " "geometry \"point_xy.hpp\" build error on macOS environment" msgstr "" -"`#1849 `__:macOS " -"环境中的 Boost 1.75.0 几何“point_xy.hpp”构建错误" +"`#1849 `__:macOS 环境中" +"的 Boost 1.75.0 几何“point_xy.hpp”构建错误" msgid "" "`#1861 `__: vrp " "functions crash server" msgstr "" -"`#1861 `__:vrp功能使服务器崩溃" +"`#1861 `__:vrp功能使服务" +"器崩溃" msgid "pgRouting 3.1.2 Release Notes" msgstr "pgRouting 3.1.2 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.2 `_ on Github." +"milestone for 3.1.2 `_ on Github." msgstr "" "要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.2Git关闭里程碑 " -"`_。" +"`_。" msgid "" "`#1304 `__: FreeBSD 12 " @@ -17094,8 +17729,8 @@ msgid "" "`#1725 `__: Server crash " "on pgr_pickDeliver and pgr_vrpOneDepot on openbsd" msgstr "" -"`#1725 `___:openbsd上的pgr_pickDeliver和pgr_vrpOneDepot服务器崩溃" +"`#1725 `__:openbsd上的" +"pgr_pickDeliver和pgr_vrpOneDepot服务器崩溃" msgid "" "`#1760 `__: TSP server " @@ -17116,26 +17751,26 @@ msgstr "pgRouting 3.1.1 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.1 `_ on Github." +"milestone for 3.1.1 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.1 " -"Git关闭里程碑`_。" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.1 Git关闭里程" +"碑 `_。" msgid "" "`#1733 `__: pgr_bdAstar " "fails when source or target vertex does not exist in the graph" msgstr "" -"`#1733 `__:当图中不存在源顶点或目标顶点时,pgr_bdAstar 失败" +"`#1733 `__:当图中不存在" +"源顶点或目标顶点时,pgr_bdAstar 失败" msgid "" "`#1647 `__: Linear " "Contraction contracts self loops" msgstr "" -"`#1647 `__:线性收缩收缩自循环" +"`#1647 `__:线性收缩收缩" +"自循环" msgid "" "`#1640 `__: " @@ -17148,8 +17783,8 @@ msgid "" "`#1616 `__: Path " "evaluation on C++ not updated before the results go back to C" msgstr "" -"`#1616 `___:C++ " -"上的路径评估在结果返回 C 之前没有更新" +"`#1616 `__:C++ 上的路径" +"评估在结果返回 C 之前没有更新" msgid "" "`#1300 `__: " @@ -17163,12 +17798,12 @@ msgstr "pgRouting 3.1.0 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.1.0 `_ on Github." +"milestone for 3.1.0 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.0 " -"Git关闭里程碑`_。" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.1.0 Git关闭里程" +"碑 `_。" msgid "pgr_dijkstra(combinations)" msgstr "pgr_dijkstra(组合)" @@ -17182,31 +17817,34 @@ msgstr "构建变更" msgid "Minimal requirement for Sphinx: version 1.8" msgstr "对 Sphinx 的最低要求:1.8 版本" +msgid "pgRouting 3.0" +msgstr "pgRouting 3.0" + msgid "pgRouting 3.0.6 Release Notes" msgstr "pgRouting 3.0.6 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.6 `_ on Github." +"milestone for 3.0.6 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` " -"3.0.6Git关闭里程碑 `_。" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` 3.0.6Git关闭里程" +"碑 `_。" msgid "pgRouting 3.0.5 Release Notes" msgstr "pgRouting 3.0.5 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.5 `_ on Github." +"milestone for 3.0.5 `_ on Github." msgstr "" "要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.0.5Git关闭里程碑 " -"`_。" +"`_。" -msgid "Backport issues fixes" +msgid "Backport issue fixes" msgstr "回溯问题修复" msgid "pgRouting 3.0.4 Release Notes" @@ -17214,12 +17852,12 @@ msgstr "pgRouting 3.0.4 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.4 `_ on Github." +"milestone for 3.0.4 `_ on Github." msgstr "" -"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` " -"3.0.4Git关闭里程碑 `_。" +"要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 ` 3.0.4Git关闭里程" +"碑 `_。" msgid "pgRouting 3.0.3 Release Notes" msgstr "pgRouting 3.0.3 发布说明" @@ -17229,12 +17867,12 @@ msgstr "pgRouting 3.0.2 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.2 `_ on Github." +"milestone for 3.0.2 `_ on Github." msgstr "" "要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.0.2Git关闭里程碑 " -"`_。" +"`_。" msgid "" "`#1378 `__: Visual " @@ -17248,31 +17886,31 @@ msgstr "pgRouting 3.0.1 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.1 `_ on Github." +"milestone for 3.0.1 `_ on Github." msgstr "" "要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.0.1Git关闭里程碑 " -"`_。" +"`_。" msgid "" -"`#232 `__: Honor client " +"`#232 `__: Honor client " "cancel requests in C /C++ code" msgstr "" -"`#232 `__:在C/" -"C++代码中响应客户端取消请求" +"`#232 `__:在 C /C++ 代码" +"中尊重客户端取消请求" msgid "pgRouting 3.0.0 Release Notes" msgstr "pgRouting 3.0.0 发布说明" msgid "" "To see all issues & pull requests closed by this release see the `Git closed " -"milestone for 3.0.0 `_ on Github." +"milestone for 3.0.0 `_ on Github." msgstr "" "要查看此版本关闭的所有问题和拉取请求,请参阅 Github 上的 `3.0.0Git关闭里程碑 " -"`_。" +"`_。" msgid "Fixed Issues" msgstr "问题修复" @@ -17294,25 +17932,28 @@ msgstr "" msgid "" "`#1002 `__: Fixed " "contraction issues:" -msgstr "`#1002 `__:修复收缩问题:" +msgstr "" +"`#1002 `__:修复收缩问" +"题:" msgid "" "`#1004 `__: Contracts " "when forbidden vertices do not belong to graph" msgstr "" -"`#1004 `___:当禁止的顶点不属于图时的收缩" +"`#1004 `__:当禁止的顶点" +"不属于图时的收缩" msgid "" "`#1005 `__: Intermideate " "results eliminated" -msgstr "`#1005 `__:消除中间结果" +msgstr "" +"`#1005 `__:消除中间结果" msgid "" "`#1006 `__: No loss of " "information" -msgstr "`#1006 `__:无信息丢失" +msgstr "" +"`#1006 `__:无信息丢失" msgid "New functions" msgstr "新函数" @@ -17539,9 +18180,6 @@ msgstr "删除了不必要的列 seq" msgid "Bug Fixes" msgstr "Bug修复" -msgid "New Experimental functions" -msgstr "新的实验函数" - msgid "pgr_maxFlowMinCost" msgstr "pgr_maxFlowMinCost" @@ -17551,9 +18189,6 @@ msgstr "pgr_maxFlowMinCost_Cost" msgid "pgr_turnRestrictedPath" msgstr "pgr_turnRestrictedPath" -msgid "pgr_stoerWagner" -msgstr "pgr_stoerWagner" - msgid "pgr_dagShortestpath" msgstr "pgr_dagShortestpath" @@ -17602,8 +18237,8 @@ msgstr "pgr_edwardMoore" msgid "Moved to legacy" msgstr "已移至旧版" -msgid "pgr_labelGraph - Use the components family of functions instead." -msgstr "pgr_labelGraph - 使用分量系列函数。" +msgid "pgr_labelGraph - Use the components family of functions instead." +msgstr "pgr_labelGraph - 使用组件系列函数。" msgid "Max flow - functions were renamed on v2.5.0" msgstr "Max flow - 2.5.0 版对函数进行了重命名" @@ -17635,24 +18270,33 @@ msgstr "pgr_pointsAsPolygon" msgid "pgr_alphaShape old signature" msgstr "pgr_alphaShape 旧签名" +msgid "pgRouting 2" +msgstr "pgRouting 2" + +msgid "Minors 2.x" +msgstr "2.x小版本" + +msgid "pgRouting 2.6" +msgstr "pgRouting 2.6" + msgid "pgRouting 2.6.3 Release Notes" msgstr "pgRouting 2.6.3 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.3 `_ on Github." +"2.6.3 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.6.3Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.6.3Git关闭里程碑 `_。" msgid "" "`#1219 `__ Implicit cast " "for via_path integer to text" msgstr "" -"`#1219 `__ via_path " -"整数到文本的隐式转换" +"`#1219 `__ via_path 整数到" +"文本的隐式转换" msgid "" "`#1193 `__ Fixed " @@ -17673,19 +18317,19 @@ msgstr "pgRouting 2.6.2 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.2 `_ on Github." +"2.6.2 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.6.2Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.6.2Git关闭里程碑 `_。" msgid "" "`#1152 `__ Fixes driving " "distance when vertex is not part of the graph" msgstr "" -"`#1152 `__修复了顶点不属于图时的行驶距离问题" +"`#1152 `__ 修复了顶点不属" +"于图时的行驶距离问题" msgid "" "`#1098 `__ Fixes windows " @@ -17706,12 +18350,12 @@ msgstr "pgRouting 2.6.1 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.1 `_ on Github." +"2.6.1 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.6.1Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.6.1Git关闭里程碑 `_。" msgid "Fixes server crash on several functions." msgstr "修复了多个函数导致服务器崩溃的问题。" @@ -17802,12 +18446,12 @@ msgstr "pgRouting 2.6.0 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.6.0 `_ on Github." +"2.6.0 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.6.0Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.6.0Git关闭里程碑 `_。" msgid "pgr_lineGraphFull" msgstr "pgr_lineGraphFull" @@ -17816,8 +18460,8 @@ msgid "" "Fix pgr_trsp(text,integer,double precision,integer,double precision,boolean," "boolean[,text])" msgstr "" -"修复pgr_trsp(text,integer,double precision,integer,double " -"precision,boolean,boolean[,text])" +"修复pgr_trsp(text,integer,double precision,integer,double precision,boolean," +"boolean[,text])" msgid "without restrictions" msgstr "无限制" @@ -17851,17 +18495,20 @@ msgstr "内部代码可接受 BIGINT" msgid "Cleaned the internal code of withPoints" msgstr "清理了 withPoints 的内部代码" +msgid "pgRouting 2.5" +msgstr "pgRouting 2.5" + msgid "pgRouting 2.5.5 Release Notes" msgstr "pgRouting 2.5.5 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.5 `_ on Github." +"2.5.5 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.5Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.5Git关闭里程碑 `_。" msgid "Fixes driving distance when vertex is not part of the graph" msgstr "修复顶点不在图中时的行驶距离问题" @@ -17877,24 +18524,24 @@ msgstr "pgRouting 2.5.4 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.4 `_ on Github." +"2.5.4 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.4 " -"Git关闭里程碑`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.4 Git关闭里程碑 `_。" msgid "pgRouting 2.5.3 Release Notes" msgstr "pgRouting 2.5.3 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.3 `_ on Github." +"2.5.3 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.5.3Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.5.3Git关闭里程碑 `_。" msgid "" "Fix for postgresql 11: Removed a compilation error when compiling with " @@ -17906,12 +18553,12 @@ msgstr "pgRouting 2.5.2 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.2 `_ on Github." +"2.5.2 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.2Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.2Git关闭里程碑 `_。" msgid "Fix for postgresql 10.1: Removed a compiler condition" msgstr "postgresql 10.1 的修复:删除了一个编译器条件" @@ -17921,12 +18568,12 @@ msgstr "pgRouting 2.5.1 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.5.1 `_ on Github." +"2.5.1 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.1Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.1Git关闭里程碑 `_。" msgid "Fixed prerequisite minimum version of: cmake" msgstr "修正了 cmake 的最低版本要求" @@ -17936,12 +18583,12 @@ msgstr "pgRouting 2.5.0 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.5.0 `_ on Github." +"2.5.0 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.0Git关闭里程碑`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.5.0Git关闭里程碑 `_ 。" msgid "enhancement:" msgstr "增强:" @@ -17964,8 +18611,8 @@ msgstr "更改参数名称" msgid "The many version results are the union of the one to one version" msgstr "多版本结果是一对一版本的并集" -msgid "New Signatures:" -msgstr "新签名:" +msgid "New Signatures" +msgstr "新签名" msgid "pgr_bdAstar(one to one)" msgstr "pgr_bdAstar(一对一)" @@ -17982,14 +18629,11 @@ msgstr "pgr_bdDijkstraCostMatrix" msgid "pgr_lineGraph" msgstr "pgr_lineGraph" -msgid "Deprecated Signatures" -msgstr "废弃的签名" - msgid "pgr_bdastar - use pgr_bdAstar instead" msgstr "pgr_bdastar - 使用 pgr_bdAstar 代替" -msgid "Renamed Functions" -msgstr "已重命名的函数" +msgid "Renamed functions" +msgstr "重新命名的功能" msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead" msgstr "pgr_maxFlowPushRelabel - 使用 pgr_pushRelabel 代替" @@ -18003,23 +18647,26 @@ msgstr "pgr_maxFlowBoykovKolmogorov - 使用 pgr_boykovKolmogorov代替" msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead" msgstr "pgr_maximumCardinalityMatching - 使用 pgr_maximumCardinalityMatch 代替" -msgid "Deprecated function" -msgstr "已废弃的函数" +msgid "Deprecated Function" +msgstr "已废弃的功能" msgid "pgr_pointToEdgeNode" msgstr "pgr_pointtoEdgeNode" +msgid "pgRouting 2.4" +msgstr "pgRouting 2.4" + msgid "pgRouting 2.4.2 Release Notes" msgstr "pgRouting 2.4.2 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.2 `_ on Github." +"2.4.2 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.4.2Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.4.2Git关闭里程碑 `_。" msgid "Improvement" msgstr "改进" @@ -18039,12 +18686,12 @@ msgstr "pgRouting 2.4.1 发布说明" msgid "" "To see the issues closed by this release see the `Git closed milestone for " -"2.4.1 `_ on Github." +"2.4.1 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.4.1Git关闭里程碑 " -"`_。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.4.1Git关闭里程碑 `_。" msgid "Fixed compiling error on macOS" msgstr "修正了 macOS 上的编译错误" @@ -18057,15 +18704,12 @@ msgstr "pgRouting 2.4.0 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.4.0 `_ on Github." +"2.4.0 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.4.0Git关闭里程碑 " -"`_ 。" - -msgid "New Signatures" -msgstr "新签名" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.4.0Git关闭里程碑 `_ 。" msgid "pgr_bdDijkstra" msgstr "pgr_bdDijkstra" @@ -18100,9 +18744,6 @@ msgstr "pgr_astarCostMatrix" msgid "pgr_bddijkstra - use pgr_bdDijkstra instead" msgstr "pgr_bddijkstra - 使用 pgr_bdDijkstra代替" -msgid "Deprecated Functions" -msgstr "已废弃的函数" - msgid "pgr_pointsToVids" msgstr "pgr_pointsToVids" @@ -18115,17 +18756,20 @@ msgstr "pgr_withPointsKSP:修复了排序问题" msgid "TRSP original code is used with no changes on the compilation warnings" msgstr "使用 TRSP 原始代码,未对编译警告进行任何修改" +msgid "pgRouting 2.3" +msgstr "pgRouting 2.3" + msgid "pgRouting 2.3.2 Release Notes" msgstr "pgRouting 2.3.2 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.2 `_ on Github." +"2.3.2 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.3.2 " -"Git关闭里程碑`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.3.2 Git关闭里程碑 `_ 。" msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck." msgstr "修正了当所有订单都装在一辆卡车上时 pgr_gsoc_vrppdtw 崩溃的问题。" @@ -18144,12 +18788,12 @@ msgstr "pgRouting 2.3.1 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.1 `_ on Github." +"2.3.1 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.3.1Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.3.1Git关闭里程碑 `_ 。" msgid "Leaks on proposed max_flow functions" msgstr "拟议 max_flow 函数的泄漏问题" @@ -18165,12 +18809,12 @@ msgstr "pgRouting 2.3.0 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.3.0 `_ on Github." +"2.3.0 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.3.0Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.3.0Git关闭里程碑 `_ 。" msgid "pgr_TSP" msgstr "pgr_TSP" @@ -18247,17 +18891,20 @@ msgstr "pgr_pointsToDMatrix" msgid "pgr_textToPoints" msgstr "pgr_textToPoints" +msgid "pgRouting 2.2" +msgstr "pgRouting 2.2" + msgid "pgRouting 2.2.4 Release Notes" msgstr "pgRouting 2.2.4 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.4 `_ on Github." +"2.2.4 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.2.4Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.2.4Git关闭里程碑 `_ 。" msgid "Bogus uses of extern \"C\"" msgstr "无效的extern \"C\"" @@ -18273,12 +18920,12 @@ msgstr "pgRouting 2.2.3 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.3 `_ on Github." +"2.2.3 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.2.3Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.2.3Git关闭里程碑 `_ 。" msgid "Fixed compatibility issues with PostgreSQL 9.6." msgstr "修复了 PostgreSQL 9.6 的兼容性问题。" @@ -18288,12 +18935,12 @@ msgstr "pgRouting 2.2.2 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.2 `_ on Github." +"2.2.2 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.2.2 " -"Git关闭里程碑`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.2.2 Git关闭里程碑 `_ 。" msgid "Fixed regression error on pgr_drivingDistance" msgstr "修正了 pgr_drivingDistance 的回归错误" @@ -18303,12 +18950,11 @@ msgstr "pgRouting 2.2.1 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.1 `_ on Github." +"2.2.1 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.2.1Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.2.1Git关闭里程碑 `_ 。" msgid "Server crash fix on pgr_alphaShape" msgstr "修复 pgr_alphaShape 使服务器崩溃问题" @@ -18321,12 +18967,12 @@ msgstr "pgRouting 2.2.0 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.2.0 `_ on Github." +"2.2.0 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.2.0Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.2.0Git关闭里程碑 `_ 。" msgid "Improvements" msgstr "改进" @@ -18337,7 +18983,7 @@ msgstr "添加 row_where 和 outall 可选参数" msgid "Signature fix" msgstr "签名修复" -msgid "pgr_dijkstra -- to match what is documented" +msgid "pgr_dijkstra -- to match what is documented" msgstr "pgr_dijkstra -- 与文档中的内容相匹配" msgid "pgr_Johnson" @@ -18355,8 +19001,8 @@ msgstr "pgr_dijkstraCost(多对一)" msgid "pgr_dijkstraCost(many to many)" msgstr "pgr_dijkstraCost(多对多)" -msgid "Proposed functionality" -msgstr "拟议函数" +msgid "Proposed Functionality" +msgstr "建议的功能" msgid "pgr_withPoints(one to one)" msgstr "pgr_withPoints(一对一)" @@ -18394,13 +19040,10 @@ msgstr "pgr_withPointsKSP" msgid "pgr_dijkstraVia" msgstr "pgr_dijkstraVia" -msgid "Deprecated functions:" -msgstr "已废弃的函数:" - -msgid "pgr_apspWarshall use pgr_floydWarshall instead" +msgid "pgr_apspWarshall use pgr_floydWarshall instead" msgstr "pgr_apspWarshall 改用 pgr_floydWarshall" -msgid "pgr_apspJohnson use pgr_Johnson instead" +msgid "pgr_apspJohnson use pgr_Johnson instead" msgstr "pgr_apspJohnson 改用 pgr_Johnson" msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead" @@ -18409,23 +19052,26 @@ msgstr "pgr_kDijkstraCost 改用 pgr_dijkstraCost" msgid "pgr_kDijkstraPath use pgr_dijkstra instead" msgstr "pgr_kDijkstraPath 改用 pgr_dijkstra" -msgid "Renamed and deprecated function" +msgid "Renamed and Deprecated Function" msgstr "已更名和废弃的函数" msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix" msgstr "pgr_makeDistanceMatrix 更名为 _pgr_makeDistanceMatrix" +msgid "pgRouting 2.1" +msgstr "pgRouting 2.1" + msgid "pgRouting 2.1.0 Release Notes" msgstr "pgRouting 2.1.0 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.1.0 `_ on Github." +"2.1.0 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `2.1.0Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 `2.1.0Git关闭里程碑 `_ 。" msgid "pgr_dijkstra(one to many)" msgstr "pgr_dijkstra(一对多)" @@ -18451,7 +19097,8 @@ msgstr "pgr_drivingDistance (单顶点)" msgid "" "pgr_alphaShape function now can generate better (multi)polygon with holes " "and alpha parameter." -msgstr "pgr_alphaShape 函数现在可以生成带有孔和 alpha 参数的更好的(多)多边形。" +msgstr "" +"pgr_alphaShape 函数现在可以生成带有孔和 alpha 参数的更好的(多)多边形。" msgid "" "Proposed functions from Steve Woodbridge, (Classified as Convenience by the " @@ -18461,7 +19108,8 @@ msgstr "Steve Woodbridge 提出的函数(作者分类为便利性函数。)" msgid "" "pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on " "closest edge." -msgstr "pgr_pointToEdgeNode - 根据最近的边将点几何体转换为基于 vertex_id 的函数。" +msgstr "" +"pgr_pointToEdgeNode - 根据最近的边将点几何体转换为基于 vertex_id 的函数。" msgid "" "pgr_flipEdges - flip the edges in an array of geometries so the connect end " @@ -18556,7 +19204,11 @@ msgstr "允许在 cost/reverse_cost 列中使用任何数值" msgid "" "Instead of generating many libraries: - All functions are encapsulated in " "one library - The library has the prefix 2-1-0" -msgstr "无需生成多个程序库: - 所有功能都封装在一个程序库中 - 程序库的前缀为 2-1-0" +msgstr "" +"无需生成多个程序库: - 所有功能都封装在一个程序库中 - 程序库的前缀为 2-1-0" + +msgid "pgRouting 2.0" +msgstr "pgRouting 2.0" msgid "pgRouting 2.0.1 Release Notes" msgstr "pgRouting 2.0.1 发布说明" @@ -18572,20 +19224,20 @@ msgstr "pgRouting 2.0.0 发布说明" msgid "" "To see the issues closed by this release see the `Git closed issues for " -"2.0.0 `_ on Github." +"2.0.0 `_ on Github." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.0.0Git关闭里程碑 " -"`_ 。" +"要查看此版本关闭的问题,请参阅 Github 上的 ` 2.0.0Git关闭里程碑 `_ 。" msgid "" "With the release of pgRouting 2.0.0 the library has abandoned backwards " -"compatibility to `pgRouting 1.x Release Notes`_ releases. The main Goals for " -"this release are:" +"compatibility to `pgRouting 1.0`_ releases. The main Goals for this release " +"are:" msgstr "" -"随着 pgRouting 2.0.0 版本的发布,该库已放弃与 `pgRouting 1.x 发行说明`_ " -"版本的向后兼容性。该版本的主要目标是:" +"随着 pgRouting 2.0.0 的发布,该库已放弃向后兼容 `pgRouting 1.0`_ 版本。此版本" +"的主要目标是:" msgid "Major restructuring of pgRouting." msgstr "对 pgRouting 进行重大重组。" @@ -18643,7 +19295,8 @@ msgstr "K 条备选路径最短路径(pgr_ksp)" msgid "" "New TSP solver that simplifies the code and the build process (pgr_tsp), " "dropped \"Gaul Library\" dependency" -msgstr "新的 TSP 求解器简化了代码和构建过程(pgr_tsp),放弃了对 \"Gaul 库 \"的依赖" +msgstr "" +"新的 TSP 求解器简化了代码和构建过程(pgr_tsp),放弃了对 \"Gaul 库 \"的依赖" msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star" msgstr "取代了 Shooting Star的转向受限最短路径(pgr_trsp)" @@ -18659,7 +19312,8 @@ msgstr "构建了在签入主要代码更改之前运行的测试基础架构" msgid "" "Tested and fixed most all of the outstanding bugs reported against 1.x that " "existing in the 2.0-dev code base." -msgstr "测试并修复了 2.0-dev 代码库中存在的几乎所有已报告的 1.x 版本中的未解决问题。" +msgstr "" +"测试并修复了 2.0-dev 代码库中存在的几乎所有已报告的 1.x 版本中的未解决问题。" msgid "Improved build process for Windows" msgstr "改进了 Windows 的构建过程" @@ -18698,19 +19352,22 @@ msgstr "更好的文档:https://docs.pgrouting.org" msgid "shooting_star is discontinued" msgstr "shooting_star 已停用" -msgid "pgRouting 1.x Release Notes" -msgstr "pgRouting 1.x 发布说明" +msgid "pgRouting 1" +msgstr "pgRouting 1" + +msgid "pgRouting 1.0" +msgstr "pgRouting 1.0" msgid "" "To see the issues closed by this release see the `Git closed issues for 1.x " -"`_ on Github. The following release notes have been copied " +"`_ on Github. The following release notes have been copied " "from the previous ``RELEASE_NOTES`` file and are kept as a reference." msgstr "" -"要查看此版本关闭的问题,请参阅 Github 上的 `1.x Git 已关闭问题 " -"`_。以下的发行说明已从之前的 ``RELEASE_NOTES`` " -"文件中复制,并作为参考保留。" +"要查看此版本关闭的问题,请参阅 Github 上的 `1.x Git 已关闭问题 `_。以下的发行说明已从之前的 ``RELEASE_NOTES`` 文件中复制," +"并作为参考保留。" msgid "Changes for release 1.05" msgstr "1.05 版的更改" @@ -18789,8 +19446,9 @@ msgid "" "The documentation provides very simple example queries based on a small " "sample network that resembles a city. To be able to execute the mayority of " "the examples queries, follow the instructions bellow." -msgstr "该文档提供了基于类似于城市的小型示例网络的非常简单的示例查询。 " -"为了能够执行大部分示例查询,请按照以下说明进行操作。" +msgstr "" +"该文档提供了基于类似于城市的小型示例网络的非常简单的示例查询。 为了能够执行大" +"部分示例查询,请按照以下说明进行操作。" msgid "Main graph" msgstr "主图" @@ -18804,7 +19462,8 @@ msgstr "要在数据库中插入以下城市:" msgid "" "Information known at this point is the geometry of the edges, cost values, " "cpacity values, category values and some locations that are not in the graph." -msgstr "此时已知的信息是边的几何形状、成本值、容量值、类别值和一些不在图中的位置。" +msgstr "" +"此时已知的信息是边的几何形状、成本值、容量值、类别值和一些不在图中的位置。" msgid "" "The process to have working topology starts by inserting the edges. After " @@ -18831,16 +19490,16 @@ msgid "Identifier of the ending vertex of the geometry ``geom``" msgstr "几何体 ``geom`` 终止顶点的标识符" msgid "Cost to traverse from `source` to ``target``." -msgstr "从`source` 到 ``target`` 的遍历成本。" +msgstr "从 `source` 到 ``target`` 的遍历成本。" msgid "Cost to traverse from `target` to ``source``." -msgstr "从 `target`到 ``source``的遍历成本。" +msgstr "从 `target` 到 ``source`` 的遍历成本。" msgid "Flow capacity from `source` to ``target``." -msgstr "从`source`到``target``的流量。" +msgstr "从 `source` 到 ``target`` 的流量。" msgid "Flow capacity from `target` to ``source``." -msgstr "从`target`到``source``的流量。" +msgstr "从 `target` 到 ``source`` 的流量。" msgid "``category``" msgstr "``category``" @@ -18854,22 +19513,24 @@ msgstr ":math:`x` 几何图形起始顶点的坐标。" msgid "" "For convinience it is saved on the table but can be calculated as " "``ST_X(ST_StartPoint(geom))``." -msgstr "为了方便起见,它被保存在表格中,但也可以计算为 ``ST_X(ST_StartPoint(geom)) " -"``。" +msgstr "" +"为了方便起见,它被保存在表格中,但也可以计算为 " +"``ST_X(ST_StartPoint(geom))``。" msgid ":math:`y` coordinate of the ending vertex of the geometry." -msgstr ":math:`y`几何图形结束顶点的坐标。" +msgstr ":math:`y` 几何图形结束顶点的坐标。" msgid "" "For convinience it is saved on the table but can be calculated as " "``ST_Y(ST_EndPoint(geom))``." -msgstr "为方便起见,它保存在表格中,但也可以计算为``ST_Y(ST_EndPoint(geom))``。" +msgstr "" +"为方便起见,它保存在表格中,但也可以计算为 ``ST_Y(ST_EndPoint(geom))``。" msgid "The geometry of the segments." msgstr "分段的几何形状。" -msgid "Starting on PostgreSQL 12::" -msgstr "从 PostgreSQL 12 开始::" +msgid "Starting on PostgreSQL 12::" +msgstr "从 PostgreSQL 12 开始::" msgid "" "Optionally indexes on different columns can be created. The recomendation is " @@ -18877,11 +19538,11 @@ msgid "" msgstr "可以选择在不同的列上创建索引。建议的做法是" msgid "``id`` indexed." -msgstr "``id``列创建索引 。" +msgstr "``id`` 列创建索引 。" msgid "" "``source`` and ``target`` columns indexed to speed up pgRouting queries." -msgstr "``source``和``target``列建立索引以加快 pgRouting 查询。" +msgstr "``source`` 和 ``target`` 列建立索引以加快 pgRouting 查询。" msgid "" "``geom`` indexed to speed up gemetry processes that might be needed in the " @@ -18889,7 +19550,7 @@ msgid "" msgstr "``geom`` 列建立索引以加快前端可能需要的 gemetry 处理。" msgid "For this small example the indexes are skipped, except for ``id``" -msgstr "在这个小例子中,除了 ``id``以外,其他索引都被跳过" +msgstr "在这个小例子中,除了 ``id`` 以外,其他索引都被跳过" msgid "Edges data" msgstr "边数据" @@ -18909,13 +19570,14 @@ msgid "" "The vertex information is calculated based on the identifier of the edge and " "the geometry and saved on a table. Saving all the information provided by :" "doc:`pgr_extractVertices`:" -msgstr "根据边的标识符和几何形状计算顶点信息并保存在表中。 保存 " -":doc:`pgr_extractVertices` 提供的所有信息 :" +msgstr "" +"根据边的标识符和几何形状计算顶点信息并保存在表中。 保存 :doc:" +"`pgr_extractVertices` 提供的所有信息 :" msgid "" "In this case the because the ``CREATE`` statement was not used, the " "definition of an index on the table is needed." -msgstr "在本例中,由于未使用``CREATE``语句,因此需要在表上定义索引。" +msgstr "在本例中,由于未使用 ``CREATE`` 语句,因此需要在表上定义索引。" msgid "The structure of the table is:" msgstr "表的结构如下:" @@ -18937,7 +19599,9 @@ msgstr "拓扑结构" msgid "" "This queries based on the vertices data create a topology by filling the " "``source`` and ``target`` columns in the edges table." -msgstr "此查询基于顶点数据,通过填充边表中的``source``列和``target``列来创建拓扑。" +msgstr "" +"此查询基于顶点数据,通过填充边表中的 ``source`` 列和 ``target`` 列来创建拓" +"扑。" msgid "Topology data" msgstr "拓扑数据" @@ -18951,7 +19615,8 @@ msgstr "支持表" msgid "" "Many functions can be used with a combinations of ``(source, target)`` pairs " "when wanting a route from ``source`` to ``target``." -msgstr "当需要从 ``source`` 到 ``target`` 的路由时,许多函数都可以与 ``(source, " +msgstr "" +"当需要从 ``source`` 到 ``target`` 的路由时,许多函数都可以与 ``(source, " "target)`` 对组合使用。" msgid "" @@ -18969,10 +19634,10 @@ msgid "Some functions accept soft restrictions about the segments." msgstr "一些函数接受关于段的软约束。" msgid "Red arrows correspond when ``cost`` > 0 in the edge table." -msgstr "红色箭头对应边表中``cost`` > 0的情况。" +msgstr "红色箭头对应边表中 ``cost`` > 0 的情况。" msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table." -msgstr "蓝色箭头对应边表中的``reverse_cost`` > 0 的情况。" +msgstr "蓝色箭头对应边表中的 ``reverse_cost`` > 0 的情况。" msgid "Points are outside the graph." msgstr "点位于图之外。" @@ -18992,7 +19657,7 @@ msgid "Directed, with cost and reverse_cost" msgstr "具有cost和reverse_cost的有向图" msgid "Undirected graph with ``cost`` and ``reverse_cost``" -msgstr "具有``cost``和``reverse_cost``的无向图" +msgstr "具有 ``cost`` 和 ``reverse_cost`` 的无向图" msgid "" "When working with city networks, this is recommended for point of view of " @@ -19003,13 +19668,13 @@ msgid "Undirected, with cost and reverse cost" msgstr "带有cost和 reverse cost的无向图" msgid "Directed graph with ``cost``" -msgstr "有``cost``的有向图" +msgstr "有 ``cost`` 的有向图" msgid "Directed, with cost" msgstr "有向,有成本" msgid "Undirected graph with ``cost``" -msgstr "带有 ``cost``的无向图" +msgstr "带有 ``cost`` 的无向图" msgid "Undirected, with cost" msgstr "无向,有成本" @@ -19038,9 +19703,9 @@ msgid "" "companies providing pgRouting development and consulting services." msgstr "" "pgRouting 社区支持可通过 `pgRouting 网站 `_、`文档`_、教程、邮件列表等获得。 如果您正" -"在寻求:ref:`商业支持`,请在下面找到提供 pgRouting 开发和" -"咨询服务的公司列表。" +"html>`_、`文档 `_、教程、邮件列表等获得。 如果您" +"正在寻求 :ref:`商业支持 `,请在下面找到提供 pgRouting 开" +"发和咨询服务的公司列表。" msgid "Reporting Problems" msgstr "报告问题" @@ -19049,8 +19714,8 @@ msgid "" "Bugs are reported and managed in an `issue tracker `_. Please follow these steps:" msgstr "" -"错误在`问题跟踪器`_中报告和管" -"理。 请按照以下步骤操作:" +"错误在 `问题跟踪器 `_ 中报告和" +"管理。 请按照以下步骤操作:" msgid "" "Search the tickets to see if your problem has already been reported. If so, " @@ -19104,9 +19769,14 @@ msgid "" "User mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-users" msgstr "用户邮件列表:https://lists.osgeo.org/mailman/listinfo/pgrouting-users" +#, fuzzy msgid "" -"Developer mailing list: https://lists.osgeo.org/mailman/listinfo/pgrouting-" -"dev" +"Developer mailing list: https://discourse.osgeo.org/c/pgrouting/pgrouting-" +"dev/" +msgstr "开发者邮件列表:https://lists.osgeo.org/mailman/listinfo/pgrouting-dev" + +#, fuzzy +msgid "Subscribe: https://discourse.osgeo.org/g/pgrouting-dev" msgstr "开发者邮件列表:https://lists.osgeo.org/mailman/listinfo/pgrouting-dev" msgid "" @@ -19195,13 +19865,15 @@ msgstr "创建图表的附加函数:" msgid "Additional functions to analyze a graph:" msgstr "用于分析图表的附加函数:" -msgid "Transformation - Family of functions (Experimental)" -msgstr "Transformation - 函数族(实验)" +#, fuzzy +msgid "Transformation - Family of functions" +msgstr "收缩 - 函数族" msgid "" "This family of functions is used for transforming a given input graph :math:" "`G(V,E)` into a new graph :math:`G'(V',E')`." -msgstr "该函数族用于将给定的输入图:math:`G(V,E)`转换为新图 :math:`G'(V',E')`。" +msgstr "" +"该函数族用于将给定的输入图 :math:`G(V,E)` 转换为新图 :math:`G'(V',E')`。" msgid "Traversal - Family of functions" msgstr "Traversal - 函数族" @@ -19231,31 +19903,28 @@ msgid "path" msgstr "path" msgid "represents a section of a **route**." -msgstr "代表**route**的一部分。" +msgstr "代表 **route** 的一部分。" msgid "route" msgstr "route" msgid "is a sequence of **paths**" -msgstr "是一系列**paths**" +msgstr "是一系列 **paths**" -msgid "**Used on:**" -msgstr "**用于:**" +msgid "**Used in:**" +msgstr "**用于:**" msgid "" "Besides the compulsory parameters each function has, there are optional " "parameters that exist due to the kind of function." msgstr "除了每个函数具有的强制参数之外,由于函数的种类而存在可选参数。" -msgid "Used on all Via functions" -msgstr "用于所有 Via 函数" +msgid "Used in all Via functions" +msgstr "用于所有 Via 功能" msgid "Depending on the function one or more inner queries are needed." msgstr "根据函数需要一个或多个内部查询。" -msgid "Used on" -msgstr "用于" - msgid "withPoints - Category" msgstr "withPoints - 类别" @@ -19300,10 +19969,10 @@ msgid "Kind of graph:" msgstr "图的种类:" msgid "**directed** graph" -msgstr "**有向**图" +msgstr "**有向** 图" msgid "**undirected** graph" -msgstr "**无向**图" +msgstr "**无向** 图" msgid "Arriving at the point:" msgstr "到达点:" @@ -19319,10 +19988,10 @@ msgid "Countries with:" msgstr "具有以下条件的国家:" msgid "**Right** side driving" -msgstr "**右侧**驾驶" +msgstr "**右侧** 驾驶" msgid "**Left** side driving" -msgstr "**左侧**驾驶" +msgstr "**左侧** 驾驶" msgid "Some points are:" msgstr "一些要点是:" @@ -19343,7 +20012,7 @@ msgid "**Temporal**: for example points given through a web application" msgstr "**时间**:例如通过 Web 应用程序给出的点" msgid "The numbering of the points are handled with negative sign." -msgstr "在点 SQL 中使用pgr_findCloseEdges。" +msgstr "点的编号用负号处理。" msgid "" "This sign change is to avoid confusion when there is a vertex with the same " @@ -19363,7 +20032,7 @@ msgid "positive sign is a vertex of the original graph" msgstr "正号是原始图的顶点" msgid "negative sign is a point of the `Points SQL`_" -msgstr "负号是`Points SQL`_ 的一个点" +msgstr "负号是 `Points SQL`_ 的一个点" msgid "About points" msgstr "关于积分" @@ -19373,31 +20042,31 @@ msgid "" "points such as restaurant, supermarket, post office, etc. will be used as " "example." msgstr "" -"对于本节,将使用以下城市(参见:doc:`示例数据`)一些有趣的点(例如餐馆、超市、" -"邮局等)作为示例。" +"对于本节,将使用以下城市(参见 :doc:`sampledata`)一些有趣的点(例如餐馆、超" +"市、邮局等)作为示例。" msgid "The graph is **directed**" -msgstr "图是**有向**的" +msgstr "图是 **有向** 的" msgid "Red arrows show the ``(source, target)`` of the edge on the edge table" -msgstr "红色箭头显示边表上的边``(source, target)``" +msgstr "红色箭头显示边表上的边 ``(source, target)``" msgid "Blue arrows show the ``(target, source)`` of the edge on the edge table" -msgstr "蓝色箭头显示边表上的边``(target, source)``" +msgstr "蓝色箭头显示边表上的边 ``(target, source)``" msgid "" "Each point location shows where it is located with relation of the edge " "``(source, target)``" -msgstr "每个点位置显示它与边 ``(source, target)``的关系" +msgstr "每个点位置显示它与边 ``(source, target)`` 的关系" msgid "On the right for points **2** and **4**." -msgstr "在右侧为第** 2 **点和第** 4** 点。" +msgstr "在右侧为第 **2** 点和第 **4** 点。" msgid "On the left for points **1**, **3** and **5**." -msgstr "左侧为第 **1**、**3** 和** 5 **点。" +msgstr "左侧为第 **1**、**3** 和 **5** 点。" msgid "On both sides for point **6**." -msgstr "在两侧为第**6**点。" +msgstr "在两侧为第 **6** 点。" msgid "" "The representation on the data base follows the `Points SQL`_ description, " @@ -19422,49 +20091,49 @@ msgid "" msgstr "直观地显示不同驾驶侧数据解释方式的差异。" msgid "Point **1** located on edge ``(6, 5)``" -msgstr "点** 1 **位于边``(6, 5)``" +msgstr "点 **1** 位于边 ``(6, 5)``" msgid "Point **2** located on edge ``(16, 17)``" -msgstr "点** 2 **位于边缘 ``(16, 17)``" +msgstr "点 **2** 位于边缘 ``(16, 17)``" msgid "Point **3** located on edge ``(8, 12)``" -msgstr "点 **3** 位于边缘``(8, 12)``" +msgstr "点 **3** 位于边缘 ``(8, 12)``" msgid "Point **4** located on edge ``(1, 3)``" -msgstr "点 **4 **位于边 ``(1, 3)``" +msgstr "点 **4** 位于边 ``(1, 3)``" msgid "Point **5** located on edge ``(10, 11)``" msgstr "点 **5** 位于边缘 ``(10, 11)``" msgid "Point **6** located on edges ``(6, 7)`` and ``(7, 6)``" -msgstr "点** 6** 位于边``(6, 7)``和``(7, 6)``" +msgstr "点 **6** 位于边 ``(6, 7)`` 和 ``(7, 6)``" msgid "Point **1** located on edge ``(5, 6)``" -msgstr "点 **1 **位于边 ``(5, 6)``" +msgstr "点 **1** 位于边 ``(5, 6)``" msgid "Point **2** located on edge ``(17, 16)``" -msgstr "点** 2** 位于边 ``(17, 16)``" +msgstr "点 **2** 位于边 ``(17, 16)``" msgid "Point **4** located on edge ``(3, 1)``" -msgstr "点 4 位于边``(3, 1)``" +msgstr "点 **4** 位于边 ``(3, 1)``" msgid "Like having all points to be considered in both sides ``b``" msgstr "就像双方都要考虑所有点 ``b``" msgid "Prefered usage on **undirected** graphs" -msgstr "**无向**图上的首选用法" +msgstr "**无向** 图上的首选用法" msgid "On the :doc:`TRSP-family` this option is not valid" -msgstr "在 :doc:`TRSP-family`上,此选项无效" +msgstr "在 :doc:`TRSP-family` 上,此选项无效" msgid "Point **1** located on edge ``(5, 6)`` and ``(6, 5)``" -msgstr "点**1**位于边``(5, 6)``和 ``(6, 5)``" +msgstr "点 **1** 位于边 ``(5, 6)`` 和 ``(6, 5)``" msgid "Point **2** located on edge ``(17, 16)``and ``16, 17``" -msgstr "点**2**位于边``(17, 16)``和 ``16, 17``" +msgstr "点 **2** 位于边 ``(17, 16)`` 和 ``16, 17``" msgid "Point **4** located on edge ``(3, 1)`` and ``(1, 3)``" -msgstr "点 **4**位于边``(3, 1)``和``(1, 3)``" +msgstr "点 **4** 位于边 ``(3, 1)`` 和 ``(1, 3)``" msgid "Creating temporary vertices" msgstr "创建临时顶点" @@ -19487,13 +20156,13 @@ msgid "On a right hand side driving network" msgstr "在右侧行驶网络" msgid "Arrival to point ``-2`` can be achived only via vertex **16**." -msgstr "只能通过顶点 **16**才能到达点 ``-2``。" +msgstr "只能通过顶点 **16** 才能到达点 ``-2``。" msgid "Does not affects edge ``(17, 16)``, therefore the edge is kept." -msgstr "不影响边``(17, 16)``,因此边被保留。" +msgstr "不影响边 ``(17, 16)``,因此边被保留。" msgid "It only affects the edge ``(16, 17)``, therefore the edge is removed." -msgstr "它只影响边``(16, 17)``,因此边被移除。" +msgstr "它只影响边 ``(16, 17)``,因此边被移除。" msgid "Create two new edges:" msgstr "创建两条新边:" @@ -19501,10 +20170,10 @@ msgstr "创建两条新边:" msgid "" "Edge ``(16, -2)`` with cost ``0.4`` (original cost * fraction == :math:`1 * " "0.4`)" -msgstr "边``(16, -2)``的成本为``0.4``(原始成本*分数==:math:`1 * 0.4`)" +msgstr "边 ``(16, -2)`` 的成本为``0.4`` (原始成本*分数 == :math:`1 * 0.4`)" msgid "Edge ``(-2, 17)`` with cost ``0.6`` (the remaing cost)" -msgstr "边``(-2, 17)``的成本为``0.6``(剩余成本)" +msgstr "边 ``(-2, 17)`` 的成本为``0.6`` (剩余成本)" msgid "The total cost of the additional edges is equal to the original cost." msgstr "附加边的总成本等于原始成本。" @@ -19517,18 +20186,18 @@ msgid "On a left hand side driving network" msgstr "在左侧驾驶网络上" msgid "Arrival to point ``-2`` can be achived only via vertex **17**." -msgstr "只能通过顶点 **17 **才能到达点 ``-2`` 。" +msgstr "只能通过顶点 **17** 才能到达点 ``-2``。" msgid "Does not affects edge ``(16, 17)``, therefore the edge is kept." -msgstr "不影响边 ``(16, 17)``,因此保留边。" +msgstr "不影响边 ``(16, 17)`` ,因此保留边。" msgid "It only affects the edge ``(17, 16)``, therefore the edge is removed." -msgstr "它只影响边 ``(17, 16)``,因此边被移除。" +msgstr "它只影响边 ``(17, 16)`` ,因此边被移除。" msgid "" "Work with the original edge ``(16, 17)`` as the fraction is a fraction of " "the original:" -msgstr "使用原始边``(16, 17)``,因为分数是原始边的分数:" +msgstr "使用原始边 ``(16, 17)`` ,因为分数是原始边的分数:" msgid "Flip the Edges and add them to the graph:" msgstr "翻转边并将它们添加到图中:" @@ -19536,23 +20205,23 @@ msgstr "翻转边并将它们添加到图中:" msgid "" "Edge ``(17, -2)`` becomes ``(-2, 16)`` with cost ``0.4`` and is added to the " "graph." -msgstr "边 ``(17, -2)``变为 ``(-2, 16)``,成本为``0.4``,并添加到图中。" +msgstr "边 ``(17, -2)`` 变为 ``(-2, 16)``,成本为``0.4`` ,并添加到图中。" msgid "" "Edge ``(-2, 16)`` becomes ``(17, -2)`` with cost ``0.6`` and is added to the " "graph." -msgstr "边 ``(-2, 16)`` 变为 ``(17, -2)``,成本为 ``0.6``,并添加到图中。" +msgstr "边 ``(-2, 16)`` 变为 ``(17, -2)``,成本为 ``0.6`` ,并添加到图中。" msgid "When driving side does not matter" msgstr "当驾驶侧无关紧要时" msgid "Arrival to point ``-2`` can be achived via vertices **16** or **17**." -msgstr "可以通过顶点 **16**或 **17**到达点 ``-2`` 。" +msgstr "可以通过顶点 **16** 或 **17** 到达点 ``-2``。" msgid "" "Affects the edges ``(16, 17)`` and ``(17, 16)``, therefore the edges are " "removed." -msgstr "影响边 ``(16, 17)`` 和 ``(17, 16)``,因此边被移除。" +msgstr "影响边 ``(16, 17)`` 和 ``(17, 16)`` ,因此边被移除。" msgid "Create four new edges:" msgstr "创建四个新边:" @@ -19561,710 +20230,60 @@ msgid "Flip the Edges and add all the edges to the graph:" msgstr "翻转边并将所有边添加到图中:" msgid "Edge ``(16, -2)`` is added to the graph." -msgstr "边 ``(16, -2)``被添加到图中。" +msgstr "边 ``(16, -2)`` 被添加到图中。" msgid "Edge ``(-2, 17)`` is added to the graph." -msgstr "边``(-2, 17)``被添加到图中。" +msgstr "边 ``(-2, 17)`` 被添加到图中。" msgid "" "Edge ``(16, -2)`` becomes ``(-2, 16)`` with cost ``0.4`` and is added to the " "graph." -msgstr "边 ``(16, -2)``变为 ``(-2, 16)``,成本为 0.4,并添加到图中。" +msgstr "边 ``(16, -2)`` 变为 ``(-2, 16)`` ,成本为 0.4,并添加到图中。" msgid "" "Edge ``(-2, 17)`` becomes ``(17, -2)`` with cost ``0.6`` and is added to the " "graph." -msgstr "边``(-2, 17)``变为``(17, -2)``,成本为``0.6``,并添加到图中。" +msgstr "边 ``(-2, 17)`` 变为``(17, -2)``,成本为 ``0.6`` ,并添加到图中。" msgid "withPoints - Family of functions" -msgstr "withPoints -函数族" +msgstr "withPoints - 函数族" msgid "" "This family of functions belongs to the :doc:`withPoints-category` and the " "functions that compose them are based one way or another on dijkstra " "algorithm." msgstr "" -"这一系列函数属于:doc:`withPoints-category`,组成它们的函数以某种方式基于 " +"这一系列函数属于 :doc:`withPoints-category`,组成它们的函数以某种方式基于 " "dijkstra 算法。" msgid "Depending on the name:" msgstr "取决于名称:" msgid "pgr_withPoints is pgr_dijkstra **with points**" -msgstr "pgr_withPoints 是**带有点**的 pgr_dijkstra" +msgstr "pgr_withPoints 是 **带有点** 的 pgr_dijkstra" msgid "pgr_withPointsCost is pgr_dijkstraCost **with points**" -msgstr "pgr_withPointsCost 是**带有点**的 pgr_dijkstraCost" +msgstr "pgr_withPointsCost 是 **带有点** 的 pgr_dijkstraCost" msgid "pgr_withPointsCostMatrix is pgr_dijkstraCostMatrix **with points**" -msgstr "pgr_withPointsCostMatrix 是**带有点**的 pgr_dijkstraCostMatrix" +msgstr "pgr_withPointsCostMatrix 是 **带有点** 的 pgr_dijkstraCostMatrix" msgid "pgr_withPointsKSP is pgr_ksp **with points**" -msgstr "pgr_withPointsKSP 是**带有点**的 pgr_ksp" +msgstr "pgr_withPointsKSP 是 **带有点** 的 pgr_ksp" msgid "pgr_withPointsDD is pgr_drivingDistance **with points**" -msgstr "pgr_withPointsDD 是**带有点**的 pgr_drivenDistance" +msgstr "pgr_withPointsDD 是 **带有点** 的 pgr_drivenDistance" +#, fuzzy msgid "pgr_withPointsvia is pgr_dijkstraVia **with points**" -msgstr "pgr_withPointsvia 是**带有点**的 pgr_dijkstraVia" +msgstr "pgr_withPointsvia 是 **带有点** 的" -msgid "" -"A discussion about the work of Hamilton & Kirkman can be found in the book " -"**Graph Theory (Biggs et al. 1976)**." -msgstr "" -"关于汉密尔顿和柯克曼工作的讨论可参见《**图论》(比格斯等人,1976 年)一书**。" - -msgid "And :math:`n-2` choices for the third city, etc." -msgstr "第三个城市的 :math:`n-2` 选项等。" - -msgid "Multiplying these together we get :math:`(n-1)! = (n-1) (n-2) . . 1`." -msgstr "相乘得到 :math:`(n-1)!= (n-1) (n-2) ..1`." - -msgid "" -"To handle problems like: 10 (equal dimension) boxes of apples and 5 kg of " -"feathers that are to be transported (not packed in boxes)." -msgstr "处理以下问题:10 箱(尺寸相等)苹果和 5 千克羽毛的运输(不装箱)。" - -msgid "" -"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor " -"= 1 (no need to change units)" -msgstr "" -"使用 cost/reverse_cost 作为长度(以度为单位),x/y 以纬度/经度为单位:因子 = " -"1(无需更改单位)" - -msgid "" -"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor = " -"would depend on the location of the points:" -msgstr "" -"使用 cost/reverse_cost 作为以米为单位的长度,以纬度/经度为单位的 x/y: " -"Factor = 将取决于点的位置:" - -msgid "1 longitude degree is 78846.81 m" -msgstr "1 经度为 78846.81 米" - -msgid "The `agg_cost` of `(u, v)` is the same as for `(v, u)`." -msgstr "`(u, v)` 的 `agg_cost` 与 `(v, u)`相同。" - -msgid "When `start_vid` = `end_vid`, the `agg_cost` = 0." -msgstr "当`start_vid` = `end_vid`时,`agg_cost`= 0。" - -msgid "" -":doc:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm to create " -"a matrix of costs of the shortest paths." -msgstr "" -":doc:`pgr_bdDijkstraCostMatrix` - 创建最短路径成本矩阵的双向 Dijkstra 算法。" - -msgid "" -"The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are removed " -"from the graph." -msgstr "从图中删除边 :math:`v \\rightarrow w` 和 :math:`w \\rightarrow z`。" - -msgid "" -"The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are removed " -"from the graph." -msgstr "从图中删除边 :math:`u \\rightarrow v` 和 :math:`v \\rightarrow z`。" - -msgid "" -"The **aggregate cost** of :math:`(u, v)` is the same as for :math:`(v, u)`." -msgstr ":math:`(u, v)`的**总成本**与 :math:`(v, u)`的相同。" - -msgid "" -"where :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}" -"`" -msgstr "" -"其中 :math:`sql =\\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}`" - -msgid "the set of vertices :math:`V`" -msgstr "顶点集:math:`V`" - -msgid "" -"In other words: The algorithm returns a the shortest path between :math:" -"`start_{vid}` and :math:`end_{vid}`, if it exists, in terms of a sequence of " -"nodes and of edges," -msgstr "" -"换句话说:如果:math:`start_{vid}`和:math:`end_{vid}`之间存在最短路径,算法会" -"根据节点和边的序列返回该路径、" - -msgid "Capacity of the edge (``source``, ``target``)" -msgstr "边 (``source``, ``target``)的容量" - -msgid "Weight of the edge (``source``, ``target``) if it exist" -msgstr "边 (``source``, ``target``)的权重(如果存在)" - -msgid ":doc:`pgr_createTopology` - create a topology based on the geometry." -msgstr ":doc:`pgr_createTopology` - 根据几何形状创建拓扑。" - -msgid "" -":doc:`pgr_analyzeGraph` - to analyze the edges and vertices of the edge " -"table." -msgstr ":doc:`pgr_analyzeGraph` - 分析边表的边和顶点。" - -msgid ":doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table." -msgstr ":doc:`pgr_nodeNetwork` - 为无节点边表创建节点。" - -msgid "Also ``l`` could be used as **driving side**" -msgstr "此外,``l``也可用作**驾驶侧**" - -msgid "" -"Edge :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) is not part of the " -"graph." -msgstr "边 :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) 不是图的一部分。" - -msgid "The set of vertices :math:`V`:" -msgstr "顶点集 :math:`V`:" - -msgid ":math:`2` (:math:`1 \\rightarrow 3`)" -msgstr ":math:`2` (:math:`1\\rightarrow 3`)" - -msgid ":math:`3` (:math:`3 \\rightarrow 2`)" -msgstr ":math:`3` (:math:`3\\rightarrow 2`)" - -msgid ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" -msgstr ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" - -msgid ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" -msgstr ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" - -msgid "" -"Personal relationships, genealogy, file dependency problems can be solved " -"using pgRouting. Those problems, normally, do not come with geometries " -"associated with the graph." -msgstr "" -"使用 pgRouting 可以解决个人关系、家谱和文件依赖性问题。这些问题通常不会与图形" -"相关的几何图形一起出现。" - -msgid "pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid** [, ``directed``])" -msgstr "" -"pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid** [, ``directed``])" - -msgid "" -"When ``true`` departing from a visited vertex will not try to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " -"identifier is allowed." -msgstr "" -"当 为``true``时,从已访问的顶点出发,不会试图避免使用用于到达它的边。换句话" -"说,允许使用具有相同标识符的边来进行掉头。" - -msgid "" -"When ``false`` when a departing from a visited vertex tries to avoid using " -"the edge used to reach it. In other words, U turn using the edge with same " -"identifier is used when no other path is found." -msgstr "" -"当为``false``时,从已访问的顶点出发,尝试避免使用用于到达它的边。换句话说,只" -"有在找不到其他路径时才使用具有相同标识符的边来进行掉头。" - -msgid "Returned on `Many to One`_ and `Many to Many`_" -msgstr "`多对一`_和 `多对多`_的返回值" - -msgid "" -"Edit an existing `pgRouting Wiki `__ page." -msgstr "" -"编辑现有的 `pgRouting 维基 `__ " -"页面。" - -msgid "" -"And all the people that give us a little of their time making comments, " -"finding issues, making pull requests etc. in any of our products: " -"osm2pgrouting, pgRouting, pgRoutingLayer, workshop." -msgstr "" -"还有所有为我们的产品(osm2pgrouting、pgRouting、pgRoutingLayer、workshop)提" -"供意见、发现问题、提出拉取请求等的人们。" - -msgid "" -"The minimum value of the ``agg_cost`` all instances of edge `(u, v)` is " -"going to be considered as the ``agg_cost`` of edge `(u, v)`" -msgstr "边 `(u, v)` 的所有实例的 ``agg_cost`` 最小值将被视为边 `(u, v)` 的 " -"``agg_cost``" - -msgid "" -"Visualy, The first image is the `optimal solution `__ and the second image is the solution " -"obtained with ``pgr_TSPeuclidean``." -msgstr "" -"从视觉上看,第一幅图像是 `最优解 `__ ,第二幅图像是使用 ``pgr_TSPeuclidean``获得的解。" - -msgid "" -"The edge table to be analyzed must contain a source column and a target " -"column filled with id's of the vertices of the segments and the " -"corresponding vertices table _vertices_pgr that stores the " -"vertices information." -msgstr "" -"待分析的边表必须包含源列和目标列,其中填充了线段顶点的id以及对应的存储顶点信" -"息的顶点表_vertices_pgr。" - -msgid "" -"``text`` Target column name of the network table. Default value is " -"``target``." -msgstr "``text``网络表的Target列名称。 默认值为 ``target``。" - -msgid "" -"``text`` Condition to select a subset or rows. Default value is ``true`` to " -"indicate all rows." -msgstr "``text`` 用于选择子集或行的条件。默认值为``true``,表示选择所有行。" - -msgid "" -"Returns the analysis of the section of the network defined by ``rows_where``" -msgstr "返回由``rows_where`` 定义的网络部分的分析结果" - -msgid "``integer`` Indicator that the vertex might have a problem." -msgstr "``integer``指示顶点可能有问题。" - -msgid "" -"``boolean`` flag to treat oneway NULL values as bi-directional. Default " -"value is ``true``." -msgstr "``boolean``将单向 NULL 值视为双向的标志。 默认值为 ``true``。" - -msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" -"`pgr_analyzeGraph `." -msgstr "" -"``integer``指示顶点可能有问题。 请参阅 :doc:`pgr_analyzeGraph " -"`。" - -msgid "" -"It is well-known that the shortest paths between a single source and all " -"other vertices can be found using Breadth First Search in :math:`O(|E|)` in " -"an unweighted graph, i.e. the distance is the minimal number of edges that " -"you need to traverse from the source to another vertex. We can interpret " -"such a graph also as a weighted graph, where every edge has the weight :math:" -"`1`. If not alledges in graph have the same weight, that we need a more " -"general algorithm, like Dijkstra's Algorithm which runs in :math:`O(|E|log|" -"V|)` time." -msgstr "" -"众所周知,在无权重图中,使用广度优先搜索(Breadth First Search)可以在 :math:" -"`O(|E|)`内找到单个源点与所有其他顶点之间的最短路径,也就是说,距离是指从源点" -"到另一个顶点所需的最少边数。我们也可以把这样的图解释为加权图,其中每条边的权" -"重为 :math:`1`。如果图中不是所有边的权重都相同,我们就需要一种更通用的算法," -"比如 Dijkstra 算法,它的运行时间为 :math:`O(|E|log|V||)`。" - -msgid "" -"The algorithm checks graph is bipartite or not. If it is bipartite then it " -"returns the node along with two colors `0` and `1` which represents two " -"different sets." -msgstr "" -"该算法检查图是否是二分图。 如果它是二分的,那么它返回节点以及代表两个不同集合" -"的两种颜色 `0` 和`1`。" - -msgid "Returns set of |result-contract|" -msgstr "Returns set of |result-contract|" - -msgid "" -"``text`` Condition to SELECT a subset or rows. Default value is ``true`` to " -"indicate all rows that where ``source`` or ``target`` have a null value, " -"otherwise the condition is used." -msgstr "" -"``text`` 用于选择行的条件。默认值为``true`` ,表示选择所有具有空值的 " -"``source``或``target`` 的行,否则将使用指定的条件。" - -msgid "``boolean`` Clean any previous topology. Default value is ``false``." -msgstr "``boolean`` 清除先前的拓扑。默认值为 ``false``。" - -msgid "" -"``integer`` Indicator that the vertex might have a problem. See :doc:" -"`pgr_analyzeGraph`." -msgstr "``integer``指示顶点可能有问题。 请参阅 :doc:`pgr_analyzeGraph`。" - -msgid "" -"The reconstruction of the vertices table function accepts the following " -"parameters:" -msgstr "顶点表重建函数接受以下参数:" - -msgid "" -"``text`` Condition to SELECT a subset or rows. Default value is ``true`` to " -"indicate all rows." -msgstr "``text`` 用于选择行的条件。默认值为 ``true`` 表示选择所有行。" - -msgid "" -":doc:`topology-functions` for an overview of a topology for routing " -"algorithms." -msgstr ":doc:`topology-functions` 用于路由算法的拓扑概述。" - -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" -msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vid**)" - -msgid "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" -msgstr "pgr_dagShortestPath(`Edges SQL`_, **start vid**, **end vids**)" - -msgid "From vertex :math:`5` to vertex :math:`11` on a **directed** graph" -msgstr "在**有向**图上,从顶点:math:`5`到顶点 :math:`11`" - -msgid "" -"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, [``directed``])" -msgstr "" -"pgr_drivingDistance(`Edges SQL`_, **Root vid**, **distance**, [``directed``])" - -msgid "" -"the chromatic number :math:`x'(G)` (minimum number of colors needed for " -"proper edge coloring of graph) is equal to the degree :math:`\\Delta + 1` of " -"the graph, (:math:`x'(G) = \\Delta`)" -msgstr "" -"色数(chromatic number):math:`x'(G)`(用于图的适当边着色所需的最小颜色数)等" -"于图的度:math:`\\Delta + 1`(:math:`x'(G) = \\Delta`)" - -msgid "" -"``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore algorithm." -msgstr "`pgr_edwardMoore`` - 使用 Edward-Moore 算法返回最短路径。" - -msgid "" -"The geometry ``geom``, marked as **g1** and **g2** are the **original " -"points**" -msgstr "标为**g1**和**g2**的几何体``geom``是**原始点**" - -msgid "" -"``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits " -"algorithm." -msgstr "``pgr_hawickCircuits`` — 使用 Hawick 回路算法返回回路列表。" - -msgid "The output table will have for ``edge_table_noded``" -msgstr "输出表中将包含``edge_table_noded``内容" - -msgid "From vertex :math:`6` to vertex :math:`10` on an undirected graph." -msgstr "从无向图上的顶点 :math:`6` 到顶点 :math:`10`." - -msgid "From vertex :math:`3` to vertex :math:`8` on a directed graph" -msgstr "从有向图上的顶点 :math:`3` 到顶点 :math:`8`" - -msgid "From vertex :math:`3` to vertex :math:`8` on an undirected graph" -msgstr "从无向图上的顶点 :math:`3` 到顶点 :math:`8`" - -msgid "From vertex :math:`3` to vertex :math:`8` with more alternatives" -msgstr "从顶点 :math:`3` 到顶点 :math:`8` 更多选择" - -msgid "" -"From point :math:`1` and vertex :math:`6` to point :math:`3` and vertex :" -"math:`1`" -msgstr "从点 :math:`1` 和顶点 :math:`6` 到点 :math:`3` 和顶点 :math:`1`" - -msgid "**options:** ``[directed, driving_side]``" -msgstr "**options:** ``[directed, driving_side]``" - -msgid "" -"From point :math:`15` and vertex :math:`6` to point :math:`3` and vertex :" -"math:`1`" -msgstr "从点 :math:`15` 和顶点 :math:`6` 到点 :math:`3` 和顶点 :math:`1`" - -msgid "**options:** ``[directed, heap_paths, details]``" -msgstr "**options:** ``[directed, heap_paths, details]``" - -msgid "" -"`#232 `__: Honor client " -"cancel requests in C /C++ code" -msgstr "" -"`#232 `__:在 C /C++ " -"代码中尊重客户端取消请求" - -msgid "pgr_labelGraph - Use the components family of functions instead." -msgstr "pgr_labelGraph - 使用组件系列函数。" - -msgid "pgr_dijkstra -- to match what is documented" -msgstr "pgr_dijkstra -- 与文档中的内容相匹配" - -msgid "pgr_apspWarshall use pgr_floydWarshall instead" -msgstr "pgr_apspWarshall 改用 pgr_floydWarshall" - -msgid "pgr_apspJohnson use pgr_Johnson instead" -msgstr "pgr_apspJohnson 改用 pgr_Johnson" - -msgid "Starting on PostgreSQL 12::" -msgstr "从 PostgreSQL 12 开始::" - -msgid "Result columns" -msgstr "结果列" - -msgid "Returns set of ``(seq, depth, start_vid, node, edge, cost, agg_cost)``" -msgstr "返回一组``(seq, depth, start_vid, node, edge, cost, agg_cost)``" - -msgid "aStar optional parameters" -msgstr "aStar 可选参数" - -msgid "Returns set of ``(vertex_id, color_id)``" -msgstr "返回集合``(vertex_id, color_id)``" - -msgid "Returns set of ``(edge_id, color_id)``" -msgstr "返回 ``(edge_id, color_id)`` 的集合" - -msgid "Returns set of |result-spantree|" -msgstr "Returns set of |result-spantree|" - -msgid "Be aware of the existance of the additional result Columns." -msgstr "注意附加结果列的存在。" - -msgid ":doc:`sampledata`: a small graph used in the documentation examples" -msgstr ":doc:`sampledata`: 文档示例中使用的小图形" - -msgid "" -"Capacity information, used in the :doc:`flow-family` functions does not need " -"to change when splitting edges." -msgstr "分割边时,在 :doc:`flow-family` 函数中使用的容量信息不需要改变。" - -msgid "Used in combination signatures" -msgstr "结合签名使用" - -msgid "Result columns for a path" -msgstr "路径的结果列" - -msgid "Used in functions that return one path solution" -msgstr "在返回一个路径解的函数中使用" - -msgid "Used in functions the following:" -msgstr "用于以下函数:" - -msgid "Result columns for cost functions" -msgstr "成本函数结果列" - -msgid "Result columns for flow functions" -msgstr "流量函数的结果列" - -msgid "Result columns for spanning tree functions" -msgstr "生成树函数的结果列" - -msgid "Returns set of ``(edge, cost)``" -msgstr "返回集合``(edge, cost)``" - -msgid "Result columns standarized to: |nksp-result|" -msgstr "结果列标准化为|nksp-result|" - -msgid "Returns set of |tsp-result|" -msgstr "返回 |tsp-result| 的集合" - -msgid "Returns set of |short-generic-result|" -msgstr "Returns set of |short-generic-result|" - -msgid "Returns set of |matrix-result|" -msgstr "返回 |matrix-result| 的集合" - -msgid "Result columns change: ``seq`` is removed" -msgstr "结果列更改:删除了 ``seq``" - -msgid "Returns set of |old-generic-result|" -msgstr "返回 |old-generic-result| 的集合" - -msgid "Returns set of |result-1-1|" -msgstr "返回 |result-1-1| 的集合" - -msgid "Returns set of |result-1-m|" -msgstr "返回 |result-1-m| 的集合" - -msgid "Returns set of |result-m-1|" -msgstr "返回 |result-m-1| 的集合" - -msgid "Result columns change:" -msgstr "结果列发生变化:" - -msgid "Returns set of |result-node-color|" -msgstr "Returns set of |result-node-color|" - -msgid "Returns set of |result-flow|" -msgstr "Returns set of |result-flow|" - -msgid "Returns set of |result-bfs|" -msgstr "返回 |result-bfs| 的集合" - -msgid "Returns set of |result-1-1-no-seq|" -msgstr "返回|result-1-1-no-seq|的集合" - -msgid "We get the sameresult as the simplest way to use the function." -msgstr "我们得到的结果与使用该函数的最简单方法相同。" - -msgid "Returns set of |result-node-order|" -msgstr "Returns set of |result-node-order|" - -msgid "Returns set of ``(seq, node)``" -msgstr "返回 ``(seq, node)`` 的集合" - -msgid "Returns set of |via-result|" -msgstr "返回 |via-result| 的集合" - -msgid "Returns set of |result-edge-color|" -msgstr "Returns set of |result-edge-color|" - -msgid "Returns set of |result-disjoint|" -msgstr "Returns set of |result-disjoint|" - -msgid "Returns set of |result-disjoint-1-1|" -msgstr "返回 |result-disjoint-1-1|的集合" - -msgid "Returns set of |result-disjoint-1-m|" -msgstr "返回|result-disjoint-1-m|的集合" - -msgid "Returns set of |result-disjoint-m-1|" -msgstr "Returns set of |result-disjoint-m-1|" - -msgid "Returns set of |result-disjoint-m-m|" -msgstr "返回|result-disjoint-m-m|的集合" - -msgid "Returns set of |generic-result|" -msgstr "返回 |eneric-result| 的集合" +#~ msgid "" +#~ ":math:`V = source \\cup target \\cup {start_{vid}} \\cup {end_{vid}}`" +#~ msgstr "" +#~ ":math:`V = source \\cup target \\cup {start_{vid}} \\cup {end_{vid}}`" -msgid "Returns set of |result-mst|" -msgstr "返回 |result-mst| 的集合" - -msgid "Returns set of |result-idom|" -msgstr "返回 |result-idom| 的集合" - -msgid "Returns set of |result-lineg|" -msgstr "Returns set of |result-lineg|" - -msgid "Returns set of |result-linegf|" -msgstr "返回 |result-linegf| 的集合" - -msgid "Returns set of |result-flow-mincost|" -msgstr "返回 |result-flow-mincost| 的集合" - -msgid "Before image" -msgstr "图片前" - -msgid "After image" -msgstr "图像后" - -msgid "Returns set of |result-pickdrop|" -msgstr "返回 |result-pickdrop| 的集合" - -msgid "Returns set of |result-mincut|" -msgstr "返回|result-mincut|的集合" - -msgid "Returns set of |result-closure|" -msgstr "Returns set of |result-closure|" - -msgid "New proposed signatures" -msgstr "新拟议的签名" - -msgid "Deprecated signatures" -msgstr "弃用签名" - -msgid "New prototypes" -msgstr "新原型" - -msgid "Returns set of |ksp-result|" -msgstr "返回 |ksp-result| 的集合" - -msgid "Returns set of |old-pid-result|" -msgstr "返回 |old-pid-result| 的集合" - -msgid "Returns set of |pid-1-m|" -msgstr "返回 |pid-1-m| 的集合" - -msgid "Returns set of |pid-m-1|" -msgstr "返回 |pid-m-1| 的集合" - -msgid "Returns set of |pid-m-m|" -msgstr "返回 |pid-m-m| 的集合" - -msgid "Returns set of |matrix-pid|" -msgstr "返回|matrix-pid|的集合" - -msgid "" -"Point :math:`-1` corresponds to the closest edge from point :math:`(2.9, " -"1.8)`." -msgstr "点 :math:`-1` 对应距离点 :math:`(2.9, 1.8)` 最近的边。" - -msgid "" -"Point :math:`-2` corresponds to the next close edge from point :math:`(2.9, " -"1.8)`." -msgstr "点 :math:`-2` 对应于点 :math:`(2.9, 1.8)` 的下一条近边。" - -msgid "New overload functions" -msgstr "新的重载函数" - -msgid "Backport issue fixes" -msgstr "回溯问题修复" - -msgid "Renamed functions" -msgstr "重新命名的功能" - -msgid "Deprecated Function" -msgstr "已废弃的功能" - -msgid "Proposed Functionality" -msgstr "建议的功能" - -msgid "Renamed and Deprecated Function" -msgstr "已更名和废弃的函数" - -msgid "**Used in:**" -msgstr "**用于:**" - -msgid "Used in all Via functions" -msgstr "用于所有 Via 功能" - -msgid "" -"That information is correct, for example, when in terms of vehicles, is it a " -"tunnel or bridge crossing over another road." -msgstr "这些信息是正确的,例如,就车辆而言,是隧道还是横跨另一条道路的桥梁。" - -msgid "RETURNS SET OF |result-node-color|" -msgstr "RETURNS SET OF |result-node-color|" - -msgid "RETURNS SET OF |result-flow|" -msgstr "RETURNS SET OF |result-flow|" - -msgid "RETURNS SET OF |result-bfs|" -msgstr "RETURNS SET OF |result-bfs|" - -msgid "RETURNS SET OF |result-edge|" -msgstr "RETURNS SET OF |result-edge|" - -msgid "RETURNS SET OF |result-1-1-no-seq|" -msgstr "RETURNS SET OF |result-1-1-no-seq|" - -msgid "RETURNS SET OF |result-component-V|" -msgstr "RETURNS SET OF |result-component-V|" - -msgid "RETURNS SET OF |result-contract|" -msgstr "RETURNS SET OF |result-contract|" - -msgid "``text`` Network table name. (may contain the schema name AS well)" -msgstr "``text``网络表名称。(可能包括模式名称)" - -msgid "When the arguments are given in the order described:" -msgstr "当参数按描述的顺序给出时:" - -msgid "We get the same result AS the simplest way to use the function." -msgstr "我们得到与使用该函数的最简单方法相同的结果。" - -msgid "" -"The vertices table is a requierment of the :doc:`pgr_analyzeGraph` and the :" -"doc:`pgr_analyzeOneWay` functions." -msgstr "" -"顶点表是 :doc:`pgr_analyzeGraph`和 :doc:`pgr_analyzeOneWay` 函数的必需条件。" - -msgid "RETURNS SET OF |result-node-order|" -msgstr "RETURNS SET OF |result-node-order|" - -msgid "" -"The results can be used as base code to make a refinement based on the back " -"end development needs." -msgstr "结果可以作为基础代码,根据后端开发需求进行细化。" - -msgid "" -"The subway stations are on the following vertices :math:`\\{ 1, 10, 11\\}`" -msgstr "地铁站位于以下顶点上 :math:``{ 1, 10, 11\\}`" - -msgid "RETURNS SET OF |via-result|" -msgstr "返回 |via-result| 的集合" - -msgid "RETURNS SET OF |result-spantree|" -msgstr "RETURNS SET OF |result-spantree|" - -msgid "Weight of the edge (``source``, ``target``)" -msgstr "边(``source``, ``target``)的权重" - -msgid "" -"``text`` Geometry column name of the network table. Default value is " -"``the_geom``." -msgstr "``text``网络表的几何列名称。 默认值为 ``the_geom``。" - -msgid "" -"``text`` Primary key column name of the network table. Default value is " -"``id``." -msgstr "``text``网络表的主键列名称。 默认值为``id``。" - -msgid "From vertex :math:`6` to vertex :math:`10` on a **directed** graph" -msgstr "在**有向**图上从顶点 :math:`6`到顶点 :math:`10`" - -msgid "" -"From point :math:`1` and vertex :math:`6` to point :math:`3` and vertex :" -"math:`1`" -msgstr "从点 :math:`1`和顶点 :math:`6`到点:math:`3`和顶点 :math:`1`" +#~ msgid "" +#~ "From vertex :math:`6` to vertices :math:`\\{ 10, 17\\}` on a " +#~ "**directed**graph" +#~ msgstr "在 **有向** 图上从顶点 :math:`6` 到顶点 :math:`\\{ 10, 17\\}`" From 366a0667c5fbe8cc3f77f8027cb86b43c92c7a8f Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 10 Oct 2024 14:53:47 -0600 Subject: [PATCH 039/141] (CI/doc) Update to include zh_Hans --- .github/workflows/doc-check.yml | 4 ++-- .github/workflows/website.yml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/doc-check.yml b/.github/workflows/doc-check.yml index 33b71d4d32..7bf3f60a79 100644 --- a/.github/workflows/doc-check.yml +++ b/.github/workflows/doc-check.yml @@ -52,7 +52,7 @@ jobs: strategy: fail-fast: false matrix: - language: [en,es] + language: [en,es,zh_Hans] steps: - uses: actions/checkout@v4 @@ -119,7 +119,7 @@ jobs: mkdir build cd build cmake -DLINKCHECK=ON -DWITH_DOC=ON \ - -DES=ON -DBUILD_DOXY=ON \ + -DES=ON -DZH_HANS=ON -DBUILD_DOXY=ON \ -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release .. - name: Check Documentation diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 496fe2f565..abcab337e1 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -83,7 +83,8 @@ jobs: 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 .. + cmake -DPOSTGRESQL_VERSION=${PGVER} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON \ + -DCMAKE_BUILD_TYPE=Release -DES=ON -DZH_HANS=ON .. make doc - name: Initialize mandatory git config From c5cb8f9cc9da57e2dd23d901ee75e9743af6e562 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 12 Oct 2024 10:25:22 -0600 Subject: [PATCH 040/141] (C++) adding missing include to be fully compatible with C++13 --- include/cpp_common/rule.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/cpp_common/rule.h b/include/cpp_common/rule.h index fa3cfd61b8..da836cfd46 100644 --- a/include/cpp_common/rule.h +++ b/include/cpp_common/rule.h @@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include typedef struct Restriction_t Restriction_t; From ad4ec169b37f6f71cb09e93e81b4af3e8ed86e0f Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 12 Oct 2024 10:37:34 -0600 Subject: [PATCH 041/141] fix clang-tidy error --- include/cpp_common/basePath_SSEC.hpp | 2 +- include/cpp_common/{rule.h => rule.hpp} | 2 +- include/trsp/pgr_trspHandler.h | 2 +- include/yen/pgr_turnRestrictedPath.hpp | 2 +- src/cpp_common/rule.cpp | 2 +- src/ksp/turnRestrictedPath_driver.cpp | 2 +- src/trsp/trspVia_driver.cpp | 2 +- src/trsp/trspVia_withPoints_driver.cpp | 2 +- src/trsp/trsp_driver.cpp | 2 +- src/trsp/trsp_withPoints_driver.cpp | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) rename include/cpp_common/{rule.h => rule.hpp} (99%) diff --git a/include/cpp_common/basePath_SSEC.hpp b/include/cpp_common/basePath_SSEC.hpp index d2ba6120ca..cade2c1edc 100644 --- a/include/cpp_common/basePath_SSEC.hpp +++ b/include/cpp_common/basePath_SSEC.hpp @@ -45,7 +45,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include "c_types/mst_rt.h" #include "cpp_common/path_t.h" #include "cpp_common/pgr_base_graph.hpp" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" namespace pgrouting { diff --git a/include/cpp_common/rule.h b/include/cpp_common/rule.hpp similarity index 99% rename from include/cpp_common/rule.h rename to include/cpp_common/rule.hpp index da836cfd46..f861cf850c 100644 --- a/include/cpp_common/rule.h +++ b/include/cpp_common/rule.hpp @@ -1,6 +1,6 @@ /*PGR-GNU***************************************************************** -FILE: rule.h +FILE: rule.hpp Copyright (c) 2017 pgRouting developers Mail: project@pgrouting.org diff --git a/include/trsp/pgr_trspHandler.h b/include/trsp/pgr_trspHandler.h index 994b8c2d92..1e8550ec1d 100644 --- a/include/trsp/pgr_trspHandler.h +++ b/include/trsp/pgr_trspHandler.h @@ -42,7 +42,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include "cpp_common/basePath_SSEC.hpp" #include "trsp/edgeInfo.h" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" #include "cpp_common/pgr_messages.h" namespace pgrouting { diff --git a/include/yen/pgr_turnRestrictedPath.hpp b/include/yen/pgr_turnRestrictedPath.hpp index c657c13e8b..3be8ab492e 100644 --- a/include/yen/pgr_turnRestrictedPath.hpp +++ b/include/yen/pgr_turnRestrictedPath.hpp @@ -42,7 +42,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include "cpp_common/basePath_SSEC.hpp" #include "cpp_common/compPaths.h" #include "cpp_common/pgr_messages.h" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" namespace pgrouting { namespace yen { diff --git a/src/cpp_common/rule.cpp b/src/cpp_common/rule.cpp index 1c9beac99e..c91203663b 100644 --- a/src/cpp_common/rule.cpp +++ b/src/cpp_common/rule.cpp @@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" #include #include diff --git a/src/ksp/turnRestrictedPath_driver.cpp b/src/ksp/turnRestrictedPath_driver.cpp index aac9fa9b37..9fd20409d9 100644 --- a/src/ksp/turnRestrictedPath_driver.cpp +++ b/src/ksp/turnRestrictedPath_driver.cpp @@ -37,7 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include "cpp_common/pgr_alloc.hpp" #include "cpp_common/pgr_assert.h" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" #include "cpp_common/basePath_SSEC.hpp" #include "c_types/restriction_t.h" diff --git a/src/trsp/trspVia_driver.cpp b/src/trsp/trspVia_driver.cpp index 4c6a18a3fd..7fdd628df5 100644 --- a/src/trsp/trspVia_driver.cpp +++ b/src/trsp/trspVia_driver.cpp @@ -35,7 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include "dijkstra/pgr_dijkstraVia.hpp" #include "c_types/routes_t.h" #include "c_types/restriction_t.h" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" #include "cpp_common/combinations.h" #include "cpp_common/pgr_alloc.hpp" #include "cpp_common/pgr_assert.h" diff --git a/src/trsp/trspVia_withPoints_driver.cpp b/src/trsp/trspVia_withPoints_driver.cpp index 2e4748e08d..59ec3c1adf 100644 --- a/src/trsp/trspVia_withPoints_driver.cpp +++ b/src/trsp/trspVia_withPoints_driver.cpp @@ -33,7 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include "withPoints/pgr_withPoints.hpp" #include "c_types/routes_t.h" #include "c_types/restriction_t.h" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" #include "cpp_common/combinations.h" #include "cpp_common/pgr_alloc.hpp" #include "cpp_common/pgr_assert.h" diff --git a/src/trsp/trsp_driver.cpp b/src/trsp/trsp_driver.cpp index 47cb0b139f..c80360275a 100644 --- a/src/trsp/trsp_driver.cpp +++ b/src/trsp/trsp_driver.cpp @@ -40,7 +40,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include "trsp/pgr_trspHandler.h" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" #include "cpp_common/pgr_assert.h" #include "cpp_common/pgr_alloc.hpp" #include "cpp_common/combinations.h" diff --git a/src/trsp/trsp_withPoints_driver.cpp b/src/trsp/trsp_withPoints_driver.cpp index 8a67c1720e..c5688e8603 100644 --- a/src/trsp/trsp_withPoints_driver.cpp +++ b/src/trsp/trsp_withPoints_driver.cpp @@ -40,7 +40,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include "trsp/pgr_trspHandler.h" -#include "cpp_common/rule.h" +#include "cpp_common/rule.hpp" #include "cpp_common/pgr_assert.h" #include "cpp_common/pgr_alloc.hpp" #include "cpp_common/combinations.h" From 63f3a02ddda4ddf0ed19f127f43ddc38172b3031 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 12 Oct 2024 10:40:04 -0600 Subject: [PATCH 042/141] (docqueries/stoerWagner) updating results to boost used in CI --- docqueries/mincut/doc-stoerWagner.result | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docqueries/mincut/doc-stoerWagner.result b/docqueries/mincut/doc-stoerWagner.result index bba70d6369..b2da1eba4b 100644 --- a/docqueries/mincut/doc-stoerWagner.result +++ b/docqueries/mincut/doc-stoerWagner.result @@ -8,7 +8,7 @@ SELECT * FROM pgr_stoerWagner( FROM edges WHERE id < 17'); seq | edge | cost | mincut -----+------+------+-------- - 1 | 6 | 1 | 1 + 1 | 14 | 1 | 1 (1 row) /* -- q2 */ From ca67bb84d2cd3e4971de8c29270255a37d8fe1de Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 12 Oct 2024 10:44:54 -0600 Subject: [PATCH 043/141] (C++) fix guard to new name --- include/cpp_common/rule.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/cpp_common/rule.hpp b/include/cpp_common/rule.hpp index f861cf850c..34b8566a2a 100644 --- a/include/cpp_common/rule.hpp +++ b/include/cpp_common/rule.hpp @@ -23,8 +23,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ -#ifndef INCLUDE_CPP_COMMON_RULE_H_ -#define INCLUDE_CPP_COMMON_RULE_H_ +#ifndef INCLUDE_CPP_COMMON_RULE_HPP_ +#define INCLUDE_CPP_COMMON_RULE_HPP_ #include @@ -77,4 +77,4 @@ class Rule { } // namespace trsp } // namespace pgrouting -#endif // INCLUDE_CPP_COMMON_RULE_H_ +#endif // INCLUDE_CPP_COMMON_RULE_HPP_ From 4dc28137efa98f11df6cde34646bfa3486e45140 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 12 Oct 2024 10:50:32 -0600 Subject: [PATCH 044/141] (doc) documenting changes --- NEWS.md | 2 ++ doc/src/release_notes.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/NEWS.md b/NEWS.md index 9da7307389..ebff1e031c 100644 --- a/NEWS.md +++ b/NEWS.md @@ -20,6 +20,8 @@ milestone for 3.6.3 * postgres 11.0.0 * postgis 3.0.0 +* g++ 13+ is supported + **Code fixes** * Fix warnings from cpplint. diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 7167bbb6f5..df42e36d57 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -51,6 +51,8 @@ milestone for 3.6.3 * postgres 11.0.0 * postgis 3.0.0 +* g++ 13+ is supported + .. rubric:: Code fixes * Fix warnings from cpplint. From 092642dc143205bdc72cad267f9204b33c1591e3 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 12 Oct 2024 16:55:43 -0600 Subject: [PATCH 045/141] (CI) Just one file for all languages on release --- .github/workflows/release.yml | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 12d0dc9e6e..eb328f8522 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,7 +87,8 @@ jobs: 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 .. + 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: | @@ -140,26 +141,15 @@ jobs: run: | cd build/doc - cp -r html doc-v${PGROUTING_VERSION}-en-es - tar -zcvf doc-v${PGROUTING_VERSION}-en-es.tar.gz doc-v${PGROUTING_VERSION}-en-es - - cp -r html doc-v${PGROUTING_VERSION}-en - rm -rf doc-v${PGROUTING_VERSION}-en/es - tar -zcvf doc-v${PGROUTING_VERSION}-en.tar.gz doc-v${PGROUTING_VERSION}-en - - cp -r html doc-v${PGROUTING_VERSION}-es - rm -rf doc-v${PGROUTING_VERSION}-es/en - perl -pi -e 's/en\/index.html/es\/index.html/g' doc-v${PGROUTING_VERSION}-es/index.html - tar -zcvf doc-v${PGROUTING_VERSION}-es.tar.gz doc-v${PGROUTING_VERSION}-es + cp -r html doc-v${PGROUTING_VERSION} + tar -zcvf doc-v${PGROUTING_VERSION}.tar.gz doc-v${PGROUTING_VERSION} cd ../.. grep -Pzo "(?s)pgRouting ${PGROUTING_VERSION//./\\.} Release Notes.*?(?=pgRouting .\..\.. Release Notes)" NEWS.md | tr '\0' '\n' > release_body.txt echo "**Attachments**" >> release_body.txt echo "File | Contents" >> release_body.txt echo "| --- | --- |" >> release_body.txt - echo "| \`doc-v${PGROUTING_VERSION}-en-es.tar.gz\` | English and Spanish documentation. Redirection to English" >> release_body.txt - echo "| \`doc-v${PGROUTING_VERSION}-en.tar.gz\`|English documentation. Redirection to English" >> release_body.txt - echo "| \`doc-v${PGROUTING_VERSION}-es.tar.gz\`|Spanish documentation. Redirection to Spanish" >> release_body.txt + echo "| \`doc-v${PGROUTING_VERSION}tar.gz\` | English and Spanish documentation. Redirection to English" >> release_body.txt echo "| \`pgrouting-${PGROUTING_VERSION}.tar.gz\` | tar.gz of the release" >> release_body.txt echo "| \`pgrouting-${PGROUTING_VERSION}.zip\`| zip of the release" >> release_body.txt cat release_body.txt @@ -172,9 +162,7 @@ jobs: draft: true prerelease: false files: | - build/doc/doc-v${{ env.PGROUTING_VERSION }}-en-es.tar.gz - build/doc/doc-v${{ env.PGROUTING_VERSION }}-en.tar.gz - build/doc/doc-v${{ env.PGROUTING_VERSION }}-es.tar.gz + build/doc/doc-v${{ env.PGROUTING_VERSION }}.tar.gz ${{ github.event.repository.name }}-${{ env.PGROUTING_VERSION }}.zip ${{ github.event.repository.name }}-${{ env.PGROUTING_VERSION }}.tar.gz From 54bc91015dc041daab163a56272c64728b5faa73 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 12 Oct 2024 22:48:00 -0600 Subject: [PATCH 046/141] (CI) boost graph v0.86 has fixes in functions we use --- .github/workflows/boost_version.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 923d9e90d2..be1ee66cc9 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -19,6 +19,7 @@ name: Boost supported versions # - boost::geometry has not changed anything we use # # boost::graph +# - 1.86 does not support C++11 (Aug 2024) # - 1.84 is failing its own tests (Jul 2022) # - 1.83 transitive closure & stoer wagner changed on 83 (Jul 2022) # - 1.80 changed on 1.80 (Aug 2022) @@ -69,7 +70,7 @@ jobs: strategy: fail-fast: false matrix: - boost_minor: [56, 68, 75, 76, 77, 78, 79, 80, 83, 84] + boost_minor: [56, 68, 75, 76, 77, 78, 79, 80, 83, 84, 86] steps: - uses: actions/checkout@v4 From 7f51b7bd42e875b8551265c3c53fdf73e3563753 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 10 Oct 2024 09:50:38 -0600 Subject: [PATCH 047/141] (license test) fix docqueries license test --- tools/scripts/test_license.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/scripts/test_license.sh b/tools/scripts/test_license.sh index d0b8e9b13b..0bb937e1a6 100755 --- a/tools/scripts/test_license.sh +++ b/tools/scripts/test_license.sh @@ -25,13 +25,12 @@ mylicensecheck() { } DIR=$(git rev-parse --show-toplevel) - pushd "${DIR}" > /dev/null || exit -missing=$(! { mylicensecheck src & mylicensecheck sql & mylicensecheck include & mylicensecheck pgtap;} | grep "No copyright\|UNKNOWN") +{ mylicensecheck src & mylicensecheck sql & mylicensecheck include & mylicensecheck pgtap;} | grep "No copyright\|UNKNOWN" missing1=$(mylicensecheck doc | grep "No copyright") missing2=$(grep --files-without-match 'Creative Commons' doc/*/*.rst) missing3=$(mylicensecheck docqueries | grep "No copyright") -missing4=$(grep --files-without-match 'Creative Commons' "$(git ls-files docqueries | grep '.sql')") +missing4=$(grep --files-without-match 'Creative Commons' docqueries/*/*.sql) popd > /dev/null || exit #mylicensecheck doc From e1a44be59b67811f0cff537b116ee6b5bb3dc7c0 Mon Sep 17 00:00:00 2001 From: Ashish Kumar Date: Wed, 16 Oct 2024 16:06:45 +0200 Subject: [PATCH 048/141] Update release actions --- .github/workflows/release.yml | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eb328f8522..0048a62fd3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,7 @@ name: Release on: - push: - tags: - - 'v*.*.*' - + workflow_dispatch: permissions: contents: read @@ -25,6 +22,11 @@ jobs: with: fetch-depth: 0 + - name: Initialize mandatory git config + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + - name: Get postgres version run: | sudo service postgresql start @@ -34,17 +36,14 @@ jobs: echo "PGPORT=5432" >> $GITHUB_ENV echo "PGIS=3" >> $GITHUB_ENV echo "PGROUTING_VERSION=${PGROUTING_VERSION}" >> $GITHUB_ENV + echo "TAG_NAME=v${PGROUTING_VERSION}" >> $GITHUB_ENV - - name: Verify Tag Name + - name: Create and Push Tag run: | - TAG_NAME=${GITHUB_REF#refs/*/} - echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV - echo ${TAG_NAME} - echo ${PGROUTING_VERSION} - if [ "${TAG_NAME}" != "v${PGROUTING_VERSION}" ]; then - echo "Tag name should be v${PGROUTING_VERSION}" - exit 1 - fi + git tag -a "${TAG_NAME}" -m "Release version ${TAG_NAME}" + git push origin "${TAG_NAME}" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Extract branch name and commit hash run: | @@ -88,7 +87,7 @@ jobs: 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.. + -DES=ON -DZH_HANS=ON .. - name: Build run: | @@ -98,11 +97,6 @@ jobs: sudo make install make doxy - - name: Initialize mandatory git config - run: | - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - - name: Update Users Documentation run: | git checkout origin/gh-pages From ac71b4efce47f26e4e942f4dcabca80e2404bc00 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 08:31:44 +0000 Subject: [PATCH 049/141] Bump softprops/action-gh-release from 1 to 2 Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0048a62fd3..59ce4f79f0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -149,7 +149,7 @@ jobs: cat release_body.txt - name: Create Draft Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: body_path: release_body.txt name: ${{ env.TAG_NAME }} From 84c23999a9ba39618e300c9159e944ac83a739af Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 24 Oct 2024 13:21:08 -0600 Subject: [PATCH 050/141] Some changes that were not marked as conflicts --- .github/workflows/macos.yml | 2 - docqueries/max_flow/edgeDisjointPaths.result | 196 +++++++++---------- docqueries/mincut/stoerWagner.result | 2 +- include/cpp_common/basic_vertex.hpp | 8 +- 4 files changed, 103 insertions(+), 105 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 31c19f9203..3e1fceedec 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -69,7 +69,6 @@ jobs: make install - name: Install pgTAP - if: false run: | git clone https://github.com/theory/pgtap.git pgTapExtension cd pgTapExtension @@ -79,7 +78,6 @@ jobs: ln -s $(find `brew --prefix` -name pg_prove) symlink it into $(brew --prefix)/bin - name: Test - if: false run: | export PATH=$(brew --prefix)/Cellar/perl/$(perl -e 'print substr($^V, 1)')/bin:$PATH pg_ctl -D $(brew --prefix)/var/postgresql@14 start diff --git a/docqueries/max_flow/edgeDisjointPaths.result b/docqueries/max_flow/edgeDisjointPaths.result index 520a08a30a..7fbb762a49 100644 --- a/docqueries/max_flow/edgeDisjointPaths.result +++ b/docqueries/max_flow/edgeDisjointPaths.result @@ -9,12 +9,12 @@ SELECT * FROM pgr_edgeDisjointPaths( 11, 12); seq | path_id | path_seq | node | edge | cost | agg_cost -----+---------+----------+------+------+------+---------- - 1 | 1 | 1 | 11 | 8 | 1 | 1 - 2 | 1 | 2 | 7 | 10 | 1 | 2 - 3 | 1 | 3 | 8 | 12 | 1 | 3 - 4 | 1 | 4 | 12 | -1 | 0 | 4 - 5 | 2 | 1 | 11 | 11 | 1 | 4 - 6 | 2 | 2 | 12 | -1 | 0 | 5 + 1 | 1 | 1 | 11 | 8 | 1 | 0 + 2 | 1 | 2 | 7 | 10 | 1 | 1 + 3 | 1 | 3 | 8 | 12 | 1 | 2 + 4 | 1 | 4 | 12 | -1 | 0 | 3 + 5 | 2 | 1 | 11 | 11 | 1 | 0 + 6 | 2 | 2 | 12 | -1 | 0 | 1 (6 rows) /* -- q2 */ @@ -24,20 +24,20 @@ SELECT * FROM pgr_edgeDisjointPaths( 11, ARRAY[5, 10, 12]); seq | path_id | path_seq | end_vid | node | edge | cost | agg_cost -----+---------+----------+---------+------+------+------+---------- - 1 | 1 | 1 | 5 | 11 | 8 | 1 | 1 - 2 | 1 | 2 | 5 | 7 | 4 | 1 | 2 - 3 | 1 | 3 | 5 | 6 | 1 | 1 | 3 - 4 | 1 | 4 | 5 | 5 | -1 | 0 | 4 - 5 | 2 | 1 | 10 | 11 | 9 | 1 | 4 - 6 | 2 | 2 | 10 | 16 | 16 | 1 | 5 - 7 | 2 | 3 | 10 | 15 | 3 | 1 | 6 - 8 | 2 | 4 | 10 | 10 | -1 | 0 | 7 - 9 | 3 | 1 | 12 | 11 | 8 | 1 | 7 - 10 | 3 | 2 | 12 | 7 | 10 | 1 | 8 - 11 | 3 | 3 | 12 | 8 | 12 | 1 | 9 - 12 | 3 | 4 | 12 | 12 | -1 | 0 | 10 - 13 | 4 | 1 | 12 | 11 | 11 | 1 | 10 - 14 | 4 | 2 | 12 | 12 | -1 | 0 | 11 + 1 | 1 | 1 | 5 | 11 | 8 | 1 | 0 + 2 | 1 | 2 | 5 | 7 | 4 | 1 | 1 + 3 | 1 | 3 | 5 | 6 | 1 | 1 | 2 + 4 | 1 | 4 | 5 | 5 | -1 | 0 | 3 + 5 | 2 | 1 | 10 | 11 | 9 | 1 | 0 + 6 | 2 | 2 | 10 | 16 | 16 | 1 | 1 + 7 | 2 | 3 | 10 | 15 | 3 | 1 | 2 + 8 | 2 | 4 | 10 | 10 | -1 | 0 | 3 + 9 | 3 | 1 | 12 | 11 | 8 | 1 | 0 + 10 | 3 | 2 | 12 | 7 | 10 | 1 | 1 + 11 | 3 | 3 | 12 | 8 | 12 | 1 | 2 + 12 | 3 | 4 | 12 | 12 | -1 | 0 | 3 + 13 | 4 | 1 | 12 | 11 | 11 | 1 | 0 + 14 | 4 | 2 | 12 | 12 | -1 | 0 | 1 (14 rows) /* -- q3 */ @@ -47,20 +47,20 @@ SELECT * FROM pgr_edgeDisjointPaths( ARRAY[11, 3, 17], 12); seq | path_id | path_seq | start_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+------+------+------+---------- - 1 | 1 | 1 | 3 | 3 | 7 | 1 | 1 - 2 | 1 | 2 | 3 | 7 | 8 | 1 | 2 - 3 | 1 | 3 | 3 | 11 | 11 | 1 | 3 - 4 | 1 | 4 | 3 | 12 | -1 | 0 | 4 - 5 | 2 | 1 | 11 | 11 | 8 | 1 | 4 - 6 | 2 | 2 | 11 | 7 | 10 | 1 | 5 - 7 | 2 | 3 | 11 | 8 | 12 | 1 | 6 - 8 | 2 | 4 | 11 | 12 | -1 | 0 | 7 - 9 | 3 | 1 | 11 | 11 | 11 | 1 | 7 - 10 | 3 | 2 | 11 | 12 | -1 | 0 | 8 - 11 | 4 | 1 | 17 | 17 | 15 | 1 | 8 - 12 | 4 | 2 | 17 | 16 | 9 | 1 | 9 - 13 | 4 | 3 | 17 | 11 | 11 | 1 | 10 - 14 | 4 | 4 | 17 | 12 | -1 | 0 | 11 + 1 | 1 | 1 | 3 | 3 | 7 | 1 | 0 + 2 | 1 | 2 | 3 | 7 | 8 | 1 | 1 + 3 | 1 | 3 | 3 | 11 | 11 | 1 | 2 + 4 | 1 | 4 | 3 | 12 | -1 | 0 | 3 + 5 | 2 | 1 | 11 | 11 | 8 | 1 | 0 + 6 | 2 | 2 | 11 | 7 | 10 | 1 | 1 + 7 | 2 | 3 | 11 | 8 | 12 | 1 | 2 + 8 | 2 | 4 | 11 | 12 | -1 | 0 | 3 + 9 | 3 | 1 | 11 | 11 | 11 | 1 | 0 + 10 | 3 | 2 | 11 | 12 | -1 | 0 | 1 + 11 | 4 | 1 | 17 | 17 | 15 | 1 | 0 + 12 | 4 | 2 | 17 | 16 | 9 | 1 | 1 + 13 | 4 | 3 | 17 | 11 | 11 | 1 | 2 + 14 | 4 | 4 | 17 | 12 | -1 | 0 | 3 (14 rows) /* -- q4 */ @@ -70,48 +70,48 @@ SELECT * FROM pgr_edgeDisjointPaths( ARRAY[11, 3, 17], ARRAY[5, 10, 12]); seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 1 | 3 | 5 | 3 | 7 | 1 | 1 - 2 | 1 | 2 | 3 | 5 | 7 | 4 | 1 | 2 - 3 | 1 | 3 | 3 | 5 | 6 | 1 | 1 | 3 - 4 | 1 | 4 | 3 | 5 | 5 | -1 | 0 | 4 - 5 | 2 | 1 | 3 | 10 | 3 | 7 | 1 | 4 - 6 | 2 | 2 | 3 | 10 | 7 | 8 | 1 | 5 - 7 | 2 | 3 | 3 | 10 | 11 | 9 | 1 | 6 - 8 | 2 | 4 | 3 | 10 | 16 | 16 | 1 | 7 - 9 | 2 | 5 | 3 | 10 | 15 | 3 | 1 | 8 - 10 | 2 | 6 | 3 | 10 | 10 | -1 | 0 | 9 - 11 | 3 | 1 | 3 | 12 | 3 | 7 | 1 | 9 - 12 | 3 | 2 | 3 | 12 | 7 | 8 | 1 | 10 - 13 | 3 | 3 | 3 | 12 | 11 | 11 | 1 | 11 - 14 | 3 | 4 | 3 | 12 | 12 | -1 | 0 | 12 - 15 | 4 | 1 | 11 | 5 | 11 | 8 | 1 | 12 - 16 | 4 | 2 | 11 | 5 | 7 | 4 | 1 | 13 - 17 | 4 | 3 | 11 | 5 | 6 | 1 | 1 | 14 - 18 | 4 | 4 | 11 | 5 | 5 | -1 | 0 | 15 - 19 | 5 | 1 | 11 | 10 | 11 | 9 | 1 | 15 - 20 | 5 | 2 | 11 | 10 | 16 | 16 | 1 | 16 - 21 | 5 | 3 | 11 | 10 | 15 | 3 | 1 | 17 - 22 | 5 | 4 | 11 | 10 | 10 | -1 | 0 | 18 - 23 | 6 | 1 | 11 | 12 | 11 | 8 | 1 | 18 - 24 | 6 | 2 | 11 | 12 | 7 | 10 | 1 | 19 - 25 | 6 | 3 | 11 | 12 | 8 | 12 | 1 | 20 - 26 | 6 | 4 | 11 | 12 | 12 | -1 | 0 | 21 - 27 | 7 | 1 | 11 | 12 | 11 | 11 | 1 | 21 - 28 | 7 | 2 | 11 | 12 | 12 | -1 | 0 | 22 - 29 | 8 | 1 | 17 | 5 | 17 | 15 | 1 | 22 - 30 | 8 | 2 | 17 | 5 | 16 | 16 | 1 | 23 - 31 | 8 | 3 | 17 | 5 | 15 | 3 | 1 | 24 - 32 | 8 | 4 | 17 | 5 | 10 | 2 | 1 | 25 - 33 | 8 | 5 | 17 | 5 | 6 | 1 | 1 | 26 - 34 | 8 | 6 | 17 | 5 | 5 | -1 | 0 | 27 - 35 | 9 | 1 | 17 | 10 | 17 | 15 | 1 | 27 - 36 | 9 | 2 | 17 | 10 | 16 | 16 | 1 | 28 - 37 | 9 | 3 | 17 | 10 | 15 | 3 | 1 | 29 - 38 | 9 | 4 | 17 | 10 | 10 | -1 | 0 | 30 - 39 | 10 | 1 | 17 | 12 | 17 | 15 | 1 | 30 - 40 | 10 | 2 | 17 | 12 | 16 | 9 | 1 | 31 - 41 | 10 | 3 | 17 | 12 | 11 | 11 | 1 | 32 - 42 | 10 | 4 | 17 | 12 | 12 | -1 | 0 | 33 + 1 | 1 | 1 | 3 | 5 | 3 | 7 | 1 | 0 + 2 | 1 | 2 | 3 | 5 | 7 | 4 | 1 | 1 + 3 | 1 | 3 | 3 | 5 | 6 | 1 | 1 | 2 + 4 | 1 | 4 | 3 | 5 | 5 | -1 | 0 | 3 + 5 | 2 | 1 | 3 | 10 | 3 | 7 | 1 | 0 + 6 | 2 | 2 | 3 | 10 | 7 | 8 | 1 | 1 + 7 | 2 | 3 | 3 | 10 | 11 | 9 | 1 | 2 + 8 | 2 | 4 | 3 | 10 | 16 | 16 | 1 | 3 + 9 | 2 | 5 | 3 | 10 | 15 | 3 | 1 | 4 + 10 | 2 | 6 | 3 | 10 | 10 | -1 | 0 | 5 + 11 | 3 | 1 | 3 | 12 | 3 | 7 | 1 | 0 + 12 | 3 | 2 | 3 | 12 | 7 | 8 | 1 | 1 + 13 | 3 | 3 | 3 | 12 | 11 | 11 | 1 | 2 + 14 | 3 | 4 | 3 | 12 | 12 | -1 | 0 | 3 + 15 | 4 | 1 | 11 | 5 | 11 | 8 | 1 | 0 + 16 | 4 | 2 | 11 | 5 | 7 | 4 | 1 | 1 + 17 | 4 | 3 | 11 | 5 | 6 | 1 | 1 | 2 + 18 | 4 | 4 | 11 | 5 | 5 | -1 | 0 | 3 + 19 | 5 | 1 | 11 | 10 | 11 | 9 | 1 | 0 + 20 | 5 | 2 | 11 | 10 | 16 | 16 | 1 | 1 + 21 | 5 | 3 | 11 | 10 | 15 | 3 | 1 | 2 + 22 | 5 | 4 | 11 | 10 | 10 | -1 | 0 | 3 + 23 | 6 | 1 | 11 | 12 | 11 | 8 | 1 | 0 + 24 | 6 | 2 | 11 | 12 | 7 | 10 | 1 | 1 + 25 | 6 | 3 | 11 | 12 | 8 | 12 | 1 | 2 + 26 | 6 | 4 | 11 | 12 | 12 | -1 | 0 | 3 + 27 | 7 | 1 | 11 | 12 | 11 | 11 | 1 | 0 + 28 | 7 | 2 | 11 | 12 | 12 | -1 | 0 | 1 + 29 | 8 | 1 | 17 | 5 | 17 | 15 | 1 | 0 + 30 | 8 | 2 | 17 | 5 | 16 | 16 | 1 | 1 + 31 | 8 | 3 | 17 | 5 | 15 | 3 | 1 | 2 + 32 | 8 | 4 | 17 | 5 | 10 | 2 | 1 | 3 + 33 | 8 | 5 | 17 | 5 | 6 | 1 | 1 | 4 + 34 | 8 | 6 | 17 | 5 | 5 | -1 | 0 | 5 + 35 | 9 | 1 | 17 | 10 | 17 | 15 | 1 | 0 + 36 | 9 | 2 | 17 | 10 | 16 | 16 | 1 | 1 + 37 | 9 | 3 | 17 | 10 | 15 | 3 | 1 | 2 + 38 | 9 | 4 | 17 | 10 | 10 | -1 | 0 | 3 + 39 | 10 | 1 | 17 | 12 | 17 | 15 | 1 | 0 + 40 | 10 | 2 | 17 | 12 | 16 | 9 | 1 | 1 + 41 | 10 | 3 | 17 | 12 | 11 | 11 | 1 | 2 + 42 | 10 | 4 | 17 | 12 | 12 | -1 | 0 | 3 (42 rows) /* -- q5 */ @@ -132,17 +132,17 @@ SELECT * FROM pgr_edgeDisjointPaths( directed => false); seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 1 - 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 2 - 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 1 - 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 1 - 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 2 - 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 3 - 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 4 - 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 5 - 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 5 - 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | 4 - 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | 3 + 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 0 + 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 1 + 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 0 + 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 0 + 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 1 + 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 2 + 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 3 + 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 4 + 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 0 + 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | -1 + 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | -2 (11 rows) /* -- q6 */ @@ -153,17 +153,17 @@ SELECT * FROM pgr_edgeDisjointPaths( directed => false); seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost -----+---------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 1 - 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 2 - 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 1 - 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 1 - 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 2 - 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 3 - 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 4 - 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 5 - 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 5 - 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | 4 - 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | 3 + 1 | 1 | 1 | 5 | 10 | 5 | 1 | 1 | 0 + 2 | 1 | 2 | 5 | 10 | 6 | 2 | -1 | 1 + 3 | 1 | 3 | 5 | 10 | 10 | -1 | 0 | 0 + 4 | 2 | 1 | 6 | 15 | 6 | 4 | 1 | 0 + 5 | 2 | 2 | 6 | 15 | 7 | 8 | 1 | 1 + 6 | 2 | 3 | 6 | 15 | 11 | 9 | 1 | 2 + 7 | 2 | 4 | 6 | 15 | 16 | 16 | 1 | 3 + 8 | 2 | 5 | 6 | 15 | 15 | -1 | 0 | 4 + 9 | 3 | 1 | 6 | 15 | 6 | 2 | -1 | 0 + 10 | 3 | 2 | 6 | 15 | 10 | 3 | -1 | -1 + 11 | 3 | 3 | 6 | 15 | 15 | -1 | 0 | -2 (11 rows) /* -- q7 */ diff --git a/docqueries/mincut/stoerWagner.result b/docqueries/mincut/stoerWagner.result index b2da1eba4b..bba70d6369 100644 --- a/docqueries/mincut/stoerWagner.result +++ b/docqueries/mincut/stoerWagner.result @@ -8,7 +8,7 @@ SELECT * FROM pgr_stoerWagner( FROM edges WHERE id < 17'); seq | edge | cost | mincut -----+------+------+-------- - 1 | 14 | 1 | 1 + 1 | 6 | 1 | 1 (1 row) /* -- q2 */ diff --git a/include/cpp_common/basic_vertex.hpp b/include/cpp_common/basic_vertex.hpp index 774c31b10e..e4300311e2 100644 --- a/include/cpp_common/basic_vertex.hpp +++ b/include/cpp_common/basic_vertex.hpp @@ -43,17 +43,17 @@ namespace pgrouting { class Basic_vertex { public: Basic_vertex() : - id(0), vertex_index(0) {} + id(0) {} Basic_vertex(const Basic_vertex &v) : - id(v.id), vertex_index(0) {} + id(v.id) {} explicit Basic_vertex(const int64_t _id) : - id(_id), vertex_index(0) {} + id(_id) {} Basic_vertex& operator=(const Basic_vertex&) = default; Basic_vertex(const Edge_t &other, bool is_source) : - id(is_source? other.source : other.target), vertex_index(0) {} + id(is_source? other.source : other.target) {} void cp_members(const Basic_vertex &other) { this->id = other.id; From d5376afd445edb5582389b4ba88018690250b7b9 Mon Sep 17 00:00:00 2001 From: Ronan Dunklau Date: Wed, 6 Nov 2024 16:47:55 +0100 Subject: [PATCH 051/141] Fix requires The postgresl control file parser do not add up multiple occurences of the same keyword. In practice it's not a big deal as plpgsql is installed by default. --- sql/common/pgrouting.control | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sql/common/pgrouting.control b/sql/common/pgrouting.control index 5b6ddcf1df..7461bdd082 100644 --- a/sql/common/pgrouting.control +++ b/sql/common/pgrouting.control @@ -3,5 +3,4 @@ comment = 'pgRouting Extension' default_version = '${PROJECT_VERSION}' module_pathname = '${PROJECT_MODULE_PATHNAME}' relocatable = true -requires = 'plpgsql' -requires = 'postgis' +requires = 'plpgsql,postgis' From d3fc9ce51249d10fd6d3efcdcee79cee91fffbe9 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 11 Dec 2024 11:28:21 -0600 Subject: [PATCH 052/141] Pump up to 3.7.1 --- .github/workflows/boost_version.yml | 2 +- .github/workflows/update.yml | 4 +- CMakeLists.txt | 3 +- NEWS.md | 5 + doc/src/release_notes.rst | 6 + docqueries/version/full_version.result | 2 +- docqueries/version/version.result | 2 +- locale/de/LC_MESSAGES/index.po | 4 +- .../de/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/en/LC_MESSAGES/index.po | 4 +- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 155 ++++++------------ locale/es/LC_MESSAGES/index.po | 4 +- .../es/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/ja/LC_MESSAGES/index.po | 4 +- .../ja/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/ko/LC_MESSAGES/index.po | 4 +- .../ko/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/pot/index.pot | 4 +- locale/pot/pgrouting_doc_strings.pot | 131 +++++---------- locale/zh_Hans/LC_MESSAGES/index.po | 4 +- .../LC_MESSAGES/pgrouting_doc_strings.po | 4 +- tools/testers/pg_prove_tests.sh | 2 +- 22 files changed, 137 insertions(+), 223 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index b5c697698f..47836d5174 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -131,5 +131,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.7.0" + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.7.1" pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap" diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 2678618ec9..bb1315ccbd 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - old_pgr: [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.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@v4 @@ -122,6 +122,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.7.0';" + psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.7.1';" 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/CMakeLists.txt b/CMakeLists.txt index 8735fba9e7..c95d118d47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ include(pgr/BuildType) #--------------------------------------------- #--------------------------------------------- -project(PGROUTING VERSION 3.7.0 +project(PGROUTING VERSION 3.7.1 LANGUAGES C CXX ) set(PROJECT_VERSION_DEV "") string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER) @@ -33,6 +33,7 @@ string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC) set(MINORS 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6) set(OLD_SIGNATURES + 3.7.0 3.6.3 3.6.2 3.6.1 diff --git a/NEWS.md b/NEWS.md index f376a82821..6430b5a88e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,6 +6,11 @@ .. current + +### pgRouting 3.7.1 Release Notes + +No Changes Yet + ### pgRouting 3.7.0 Release Notes To see all issues & pull requests closed by this release see the [Git closed diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 3fac319973..25348a5ef7 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -36,6 +36,12 @@ pgRouting 3.7 .. current + +pgRouting 3.7.1 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + pgRouting 3.7.0 Release Notes ------------------------------------------------------------------------------- diff --git a/docqueries/version/full_version.result b/docqueries/version/full_version.result index 8df58803fb..7d858d6672 100644 --- a/docqueries/version/full_version.result +++ b/docqueries/version/full_version.result @@ -6,7 +6,7 @@ SET SELECT version, library FROM pgr_full_version(); version | library ---------+----------------- - 3.7.0 | pgrouting-3.7.0 + 3.7.1 | pgrouting-3.7.1 (1 row) /* -- q2 */ diff --git a/docqueries/version/version.result b/docqueries/version/version.result index d8fb9ee349..971b934de5 100644 --- a/docqueries/version/version.result +++ b/docqueries/version/version.result @@ -6,7 +6,7 @@ SET SELECT pgr_version(); pgr_version ------------- - 3.7.0 + 3.7.1 (1 row) /* -- q2 */ diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po index b0a7ef6c4e..f366a8d068 100644 --- a/locale/de/LC_MESSAGES/index.po +++ b/locale/de/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po index 3e0cd6aad2..ce77a916e0 100644 --- a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,10 +1,10 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po index 48ce38b67d..e9864fc737 100644 --- a/locale/en/LC_MESSAGES/index.po +++ b/locale/en/LC_MESSAGES/index.po @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 7c41681d7b..43cec8140c 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,21 +1,21 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-17 00:50+0000\n" +"POT-Creation-Date: 2024-12-11 11:17-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.12.1\n" msgid "BFS - Category" msgstr "" @@ -4386,28 +4386,34 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" -msgid "pgRouting 3.7.0 Release Notes" +msgid "pgRouting 4.0.0 Release Notes" +msgstr "" + +msgid "Removal of deprecated functions and signatures" msgstr "" -#, python-format msgid "" -"To see all issues & pull requests closed by this release see the `Git " -"closed milestone for 3.7.0 " -"`__" +"``pgr_trspviaedges(text,integer[],double " +"precision[],boolean,boolean,text)``" msgstr "" -msgid "Support" +msgid "pgRouting 3" msgstr "" -msgid "" -"`#2656 `__ Stop support" -" of PostgreSQL12 on pgrouting v3.7" +msgid "Minors 3.x" msgstr "" -msgid "Stopping support of PostgreSQL 12" +msgid "pgRouting 3.7" msgstr "" -msgid "CI does not test for PostgreSQL 12" +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.0 " +"`__" msgstr "" msgid "New experimental functions" @@ -5487,38 +5493,29 @@ msgstr "" msgid ":doc:`pgr_trspVia`:" msgstr "" -msgid "Migration of ``pgr_trspViaEdges``" -msgstr "" - -msgid "" -"And will travel thru the following Via points " -":math:`4\\rightarrow3\\rightarrow6`" -msgstr "" - -msgid ":doc:`pgr_withPointsVia` when there are no restrictions," +msgid "Migration of pgr_trspViaEdges" msgstr "" -msgid ":doc:`pgr_trspVia_withPoints` when there are restrictions." +msgid "In this section this set of points is going to be used:" msgstr "" -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia``" +msgid "Migrating pgr_trspViaEdges using pgr_withPointsVia" msgstr "" -msgid "Use :doc:`pgr_withPointsVia` instead." +msgid "Using :doc:`pgr_withPointsVia`." msgstr "" -msgid ":doc:`pgr_withPointsVia`:" +msgid "" +"When the need of using the same (meaningless) names and and strict types " +"then convert the result to the deprecated function columns:" msgstr "" -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints``" +msgid "Migrating pgr_trspViaEdges using pgr_trspVia_withPoints" msgstr "" msgid "Use :doc:`pgr_trspVia_withPoints` instead." msgstr "" -msgid ":doc:`pgr_trspVia_withPoints`:" -msgstr "" - msgid ":doc:`withPoints-category`" msgstr "" @@ -7037,7 +7034,7 @@ msgid "Upgrading the database" msgstr "" msgid "" -"To upgrade pgRouting in the database to version 3.7.0 use the following " +"To upgrade pgRouting in the database to version 3.7.1 use the following " "command:" msgstr "" @@ -8235,6 +8232,9 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" +msgid "Support" +msgstr "" + msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -14255,11 +14255,6 @@ msgstr "" msgid "``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" msgstr "" -msgid "" -"``pgr_trspviaedges(text,integer[],double " -"precision[],boolean,boolean,text)``" -msgstr "" - msgid "New prototypes" msgstr "" @@ -15585,81 +15580,18 @@ msgstr "" msgid "Mayors" msgstr "" -msgid "pgRouting 3" +msgid "pgRouting 4" msgstr "" -msgid "Minors 3.x" +msgid "Minors 4.x" msgstr "" -msgid "pgRouting 3.7" +msgid "pgRouting 4.0" msgstr "" msgid "pgRouting 3.6" msgstr "" -msgid "pgRouting 3.6.3 Release Notes" -msgstr "" - -#, python-format -msgid "" -"To see all issues & pull requests closed by this release see the `Git " -"closed milestone for 3.6.3 " -"`__" -msgstr "" - -msgid "Build" -msgstr "" - -msgid "Explicit minimum requirements:" -msgstr "" - -msgid "postgres 11.0.0" -msgstr "" - -msgid "postgis 3.0.0" -msgstr "" - -msgid "g++ 13+ is supported" -msgstr "" - -msgid "Code fixes" -msgstr "" - -msgid "Fix warnings from cpplint." -msgstr "" - -msgid "Fix warnings from clang 18." -msgstr "" - -msgid "CI tests" -msgstr "" - -msgid "Add a clang tidy test on changed files." -msgstr "" - -msgid "" -"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" -msgstr "" - -msgid "Documentation" -msgstr "" - -msgid "Results of documentation queries adujsted to boost 1.83.0 version:" -msgstr "" - -msgid "pgr_edgeDisjointPaths" -msgstr "" - -msgid "pgr_stoerWagner" -msgstr "" - -msgid "pgtap tests" -msgstr "" - -msgid "bug fixes" -msgstr "" - msgid "pgRouting 3.6.2 Release Notes" msgstr "" @@ -15676,6 +15608,9 @@ msgstr "" msgid "The upgrade was failing for same minor" msgstr "" +msgid "Code fixes" +msgstr "" + msgid "Fix warnings from cpplint" msgstr "" @@ -15802,6 +15737,9 @@ msgid "" " simplification." msgstr "" +msgid "Documentation" +msgstr "" + msgid "" "`#2490 `__ Automatic " "page history links." @@ -15870,6 +15808,9 @@ msgid "" "wildcards on SQL" msgstr "" +msgid "pgtap tests" +msgstr "" + msgid "" "`#2559 `__ pgtap test" " using sampledata" @@ -16327,6 +16268,9 @@ msgid "" " on Github." msgstr "" +msgid "Build" +msgstr "" + msgid "" "`#1850 `__: Change " "Boost min version to 1.56" @@ -16898,6 +16842,9 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" +msgid "pgr_stoerWagner" +msgstr "" + msgid "pgr_dagShortestpath" msgstr "" diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po index aebad72d2b..e176889b90 100644 --- a/locale/es/LC_MESSAGES/index.po +++ b/locale/es/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-09-29 16:37+0000\n" diff --git a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po index 036b0d2724..f0d2299afe 100644 --- a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Pedro Jose Rios Vergara , 2022. @@ -8,7 +8,7 @@ # DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-10-10 19:43+0000\n" diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po index da2ba93696..1828aa5bb8 100644 --- a/locale/ja/LC_MESSAGES/index.po +++ b/locale/ja/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2024-05-01 03:45+0000\n" diff --git a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po index 6c7170aa07..8b981050cc 100644 --- a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Translators: @@ -18,7 +18,7 @@ # Celia Virginia Vergara Castillo , 2024. msgid "" msgstr "" -"Project-Id-Version: PROJECT VERSION 3.7.0\n" +"Project-Id-Version: PROJECT VERSION 3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-09-23 01:16+0000\n" diff --git a/locale/ko/LC_MESSAGES/index.po b/locale/ko/LC_MESSAGES/index.po index f097138118..e965b7f3d1 100644 --- a/locale/ko/LC_MESSAGES/index.po +++ b/locale/ko/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-11-15 15:30+0000\n" diff --git a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po index a09cc7227d..091e4f5542 100644 --- a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2022. # Hyung-Gyu Ryoo , 2022. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2022-12-13 12:30+0000\n" diff --git a/locale/pot/index.pot b/locale/pot/index.pot index 63cce55100..ee39e02057 100644 --- a/locale/pot/index.pot +++ b/locale/pot/index.pot @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index c62a4180f2..fbf6ed4368 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -1,14 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-17 00:50+0000\n" +"POT-Creation-Date: 2024-12-11 11:17-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3937,22 +3937,28 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" -msgid "pgRouting 3.7.0 Release Notes" +msgid "pgRouting 4.0.0 Release Notes" msgstr "" -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.0 `__" +msgid "Removal of deprecated functions and signatures" msgstr "" -msgid "Support" +msgid "``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" msgstr "" -msgid "`#2656 `__ Stop support of PostgreSQL12 on pgrouting v3.7" +msgid "pgRouting 3" +msgstr "" + +msgid "Minors 3.x" +msgstr "" + +msgid "pgRouting 3.7" msgstr "" -msgid "Stopping support of PostgreSQL 12" +msgid "pgRouting 3.7.0 Release Notes" msgstr "" -msgid "CI does not test for PostgreSQL 12" +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.0 `__" msgstr "" msgid "New experimental functions" @@ -4897,36 +4903,27 @@ msgstr "" msgid ":doc:`pgr_trspVia`:" msgstr "" -msgid "Migration of ``pgr_trspViaEdges``" -msgstr "" - -msgid "And will travel thru the following Via points :math:`4\\rightarrow3\\rightarrow6`" -msgstr "" - -msgid ":doc:`pgr_withPointsVia` when there are no restrictions," +msgid "Migration of pgr_trspViaEdges" msgstr "" -msgid ":doc:`pgr_trspVia_withPoints` when there are restrictions." +msgid "In this section this set of points is going to be used:" msgstr "" -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia``" +msgid "Migrating pgr_trspViaEdges using pgr_withPointsVia" msgstr "" -msgid "Use :doc:`pgr_withPointsVia` instead." +msgid "Using :doc:`pgr_withPointsVia`." msgstr "" -msgid ":doc:`pgr_withPointsVia`:" +msgid "When the need of using the same (meaningless) names and and strict types then convert the result to the deprecated function columns:" msgstr "" -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints``" +msgid "Migrating pgr_trspViaEdges using pgr_trspVia_withPoints" msgstr "" msgid "Use :doc:`pgr_trspVia_withPoints` instead." msgstr "" -msgid ":doc:`pgr_trspVia_withPoints`:" -msgstr "" - msgid ":doc:`withPoints-category`" msgstr "" @@ -6175,7 +6172,7 @@ msgstr "" msgid "Upgrading the database" msgstr "" -msgid "To upgrade pgRouting in the database to version 3.7.0 use the following command:" +msgid "To upgrade pgRouting in the database to version 3.7.1 use the following command:" msgstr "" msgid "More information can be found in https://www.postgresql.org/docs/current/sql-createextension.html" @@ -7213,6 +7210,9 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" +msgid "Support" +msgstr "" + msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -12214,9 +12214,6 @@ msgstr "" msgid "``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" msgstr "" -msgid "``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" -msgstr "" - msgid "New prototypes" msgstr "" @@ -13237,75 +13234,18 @@ msgstr "" msgid "Mayors" msgstr "" -msgid "pgRouting 3" +msgid "pgRouting 4" msgstr "" -msgid "Minors 3.x" +msgid "Minors 4.x" msgstr "" -msgid "pgRouting 3.7" +msgid "pgRouting 4.0" msgstr "" msgid "pgRouting 3.6" msgstr "" -msgid "pgRouting 3.6.3 Release Notes" -msgstr "" - -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.3 `__" -msgstr "" - -msgid "Build" -msgstr "" - -msgid "Explicit minimum requirements:" -msgstr "" - -msgid "postgres 11.0.0" -msgstr "" - -msgid "postgis 3.0.0" -msgstr "" - -msgid "g++ 13+ is supported" -msgstr "" - -msgid "Code fixes" -msgstr "" - -msgid "Fix warnings from cpplint." -msgstr "" - -msgid "Fix warnings from clang 18." -msgstr "" - -msgid "CI tests" -msgstr "" - -msgid "Add a clang tidy test on changed files." -msgstr "" - -msgid "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" -msgstr "" - -msgid "Documentation" -msgstr "" - -msgid "Results of documentation queries adujsted to boost 1.83.0 version:" -msgstr "" - -msgid "pgr_edgeDisjointPaths" -msgstr "" - -msgid "pgr_stoerWagner" -msgstr "" - -msgid "pgtap tests" -msgstr "" - -msgid "bug fixes" -msgstr "" - msgid "pgRouting 3.6.2 Release Notes" msgstr "" @@ -13318,6 +13258,9 @@ msgstr "" msgid "The upgrade was failing for same minor" msgstr "" +msgid "Code fixes" +msgstr "" + msgid "Fix warnings from cpplint" msgstr "" @@ -13408,6 +13351,9 @@ msgstr "" msgid "`#2522 `__ bdAstar code simplification." msgstr "" +msgid "Documentation" +msgstr "" + msgid "`#2490 `__ Automatic page history links." msgstr "" @@ -13462,6 +13408,9 @@ msgstr "" msgid "`#2561 `__ Not use wildcards on SQL" msgstr "" +msgid "pgtap tests" +msgstr "" + msgid "`#2559 `__ pgtap test using sampledata" msgstr "" @@ -13819,6 +13768,9 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.2.0 `_ on Github." msgstr "" +msgid "Build" +msgstr "" + msgid "`#1850 `__: Change Boost min version to 1.56" msgstr "" @@ -14290,6 +14242,9 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" +msgid "pgr_stoerWagner" +msgstr "" + msgid "pgr_dagShortestpath" msgstr "" diff --git a/locale/zh_Hans/LC_MESSAGES/index.po b/locale/zh_Hans/LC_MESSAGES/index.po index d9ec1efa85..47698a53d9 100644 --- a/locale/zh_Hans/LC_MESSAGES/index.po +++ b/locale/zh_Hans/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2024-09-23 14:18+0000\n" diff --git a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po index dc7ee5c923..acbac04c43 100644 --- a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.0 +# Copyright (C) pgRouting Contributors - Version v3.7.1 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. # Wangdapeng , 2023. @@ -9,7 +9,7 @@ # DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.0\n" +"Project-Id-Version: pgRouting v3.7.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-10-10 19:47+0000\n" diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh index 672489585e..268f2cb2dd 100755 --- a/tools/testers/pg_prove_tests.sh +++ b/tools/testers/pg_prove_tests.sh @@ -37,7 +37,7 @@ echo "$PGPORT" pushd ./tools/testers/ || exit 1 -bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.7.0" +bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.7.1" PGOPTIONS="-c client_min_messages=WARNING" pg_prove --failures --Q --recurse \ -S on_error_rollback=off \ From 5b6fa4d14e12bea107381f6e763528f6b65c9aee Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 16 Dec 2024 13:00:56 -0600 Subject: [PATCH 053/141] Update test done with boost 56 --- .github/workflows/update.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index bb1315ccbd..09360eccb5 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -28,6 +28,7 @@ jobs: strategy: fail-fast: false matrix: + boost_minor: [56] old_pgr: [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: @@ -63,7 +64,6 @@ jobs: run: | sudo apt-get update sudo apt-get install -y \ - libboost-graph-dev \ libtap-parser-sourcehandler-pgtap-perl \ postgresql-${PGVER} \ postgresql-${PGVER}-pgtap \ @@ -74,6 +74,10 @@ jobs: 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 + sudo mv boost_1_${{ matrix.boost_minor }}_0/boost /usr/include/ + - name: get old version uses: actions/checkout@v4 with: From 5f6e3091f5a0647b42c6527d48a0cf83591b0504 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 26 Oct 2024 17:57:15 -0600 Subject: [PATCH 054/141] (docqueries) remove pseudo-test --- docqueries/trsp/four_edges.pg | 148 ------------------- docqueries/trsp/four_edges.result | 232 ------------------------------ docqueries/trsp/test.conf | 1 - 3 files changed, 381 deletions(-) delete mode 100644 docqueries/trsp/four_edges.pg delete mode 100644 docqueries/trsp/four_edges.result diff --git a/docqueries/trsp/four_edges.pg b/docqueries/trsp/four_edges.pg deleted file mode 100644 index 34f647337e..0000000000 --- a/docqueries/trsp/four_edges.pg +++ /dev/null @@ -1,148 +0,0 @@ --- CopyRight(c) pgRouting developers --- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ -SET extra_float_digits=-3; -CREATE TABLE four_edges ( - id BIGINT, - source BIGINT, - target BIGINT, - cost FLOAT, - reverse_cost FLOAT); - -INSERT INTO four_edges (id, source, target, cost, reverse_cost) VALUES -( 719 , 52163 , -56570 , 179.400001 , 179.400001), -( 717 , 52222 , 52163 , 977.000001 , 977.000001), -( 718 , 52220 , 52222 , 961.000001 , 961.000001), -( 716 , -21019 , 52220 , 992.000001 , 992.000001); - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM - (VALUES - (719, 52163, -56570, 179.400001, 179.400001), - (717, 52222, 52163, 977.000001, 977.000001), - (718, 52220, 52222, 961.000001, 961.000001), - (716, -21019, 52220, 992.000001, 992.000001) - ) AS t (id, source, target, cost, reverse_cost)$$, - 719, 0, - 718, 0, - true, true, NULL); - - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM - (VALUES - (719, 52163, -56570, 179.40000, 179.40000), - (717, 52222, 52163, 977.00000, 977.00000), - (718, 52220, 52222, 961.00000, 961.00000), - (716, -21019, 52220, 992.00000, 992.00000) - ) AS t (id, source, target, cost, reverse_cost)$$, - (SELECT source::int FROM four_edges WHERE id = 719), - (SELECT source::int FROM four_edges WHERE id = 718), - true, true, NULL); - - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0, - 718, 0, - true, true, NULL); - -SELECT * FROM pgr_dijkstra( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 52163, - 52220, - false); - -SELECT * FROM pgr_dijkstra( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - (SELECT source FROM four_edges WHERE id = 719), - (SELECT source FROM four_edges WHERE id = 718), - true); - -/* Comparing withPoints and trsp*/ - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0.5, - 718, 0, - true, true, NULL); - -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$SELECT 719 AS edge_id, 0.5::float AS fraction$$, - -1, - /* selecting source because we have 0 */ - (SELECT source FROM four_edges WHERE id = 718), - true); - -/* TODO should give result more or less the same as above*/ -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$(SELECT 719 AS edge_id, 0.5::float AS fraction) - UNION - (SELECT 718, 0)$$, - -1, -2, - true); - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0, - 718, 0.5, - true, true, NULL); - -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$SELECT 718 AS edge_id, 0.5::float AS fraction$$, - /* selecting source because we have 0 */ - (SELECT source FROM four_edges WHERE id = 719), - -1, - true); - -/* TODO should give result more or less the same as above*/ -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$(SELECT 719 AS edge_id, 0::float AS fraction) - UNION - (SELECT 718, 0.5)$$, - -1, -2, - true); - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0.5, - 718, 0.5, - true, true, NULL); - -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$(SELECT 719 AS edge_id, 0.5::float AS fraction) - UNION - (SELECT 718, 0.5)$$, - -1, -2, - true); - diff --git a/docqueries/trsp/four_edges.result b/docqueries/trsp/four_edges.result deleted file mode 100644 index c1404ab2db..0000000000 --- a/docqueries/trsp/four_edges.result +++ /dev/null @@ -1,232 +0,0 @@ -BEGIN; -BEGIN -SET client_min_messages TO NOTICE; -SET -SET extra_float_digits=-3; -SET -CREATE TABLE four_edges ( - id BIGINT, - source BIGINT, - target BIGINT, - cost FLOAT, - reverse_cost FLOAT); -CREATE TABLE -INSERT INTO four_edges (id, source, target, cost, reverse_cost) VALUES -( 719 , 52163 , -56570 , 179.400001 , 179.400001), -( 717 , 52222 , 52163 , 977.000001 , 977.000001), -( 718 , 52220 , 52222 , 961.000001 , 961.000001), -( 716 , -21019 , 52220 , 992.000001 , 992.000001); -INSERT 0 4 -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM - (VALUES - (719, 52163, -56570, 179.400001, 179.400001), - (717, 52222, 52163, 977.000001, 977.000001), - (718, 52220, 52222, 961.000001, 961.000001), - (716, -21019, 52220, 992.000001, 992.000001) - ) AS t (id, source, target, cost, reverse_cost)$$, - 719, 0, - 718, 0, - true, true, NULL); -WARNING: pgr_trsp(text,integer,float,integer,float,boolean,boolean) deprecated signature on v3.4.0 - seq | id1 | id2 | cost ------+-------+-----+------------ - 0 | 52163 | 717 | 977.000001 - 1 | 52222 | 718 | 961.000001 - 2 | 52220 | -1 | 0 -(3 rows) - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM - (VALUES - (719, 52163, -56570, 179.40000, 179.40000), - (717, 52222, 52163, 977.00000, 977.00000), - (718, 52220, 52222, 961.00000, 961.00000), - (716, -21019, 52220, 992.00000, 992.00000) - ) AS t (id, source, target, cost, reverse_cost)$$, - (SELECT source::int FROM four_edges WHERE id = 719), - (SELECT source::int FROM four_edges WHERE id = 718), - true, true, NULL); -WARNING: pgr_trsp(text,integer,integer,boolean,boolean) deprecated signature on v3.4.0 - seq | id1 | id2 | cost ------+-------+-----+------ - 0 | 52163 | 717 | 977 - 1 | 52222 | 718 | 961 - 2 | 52220 | -1 | 0 -(3 rows) - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0, - 718, 0, - true, true, NULL); -WARNING: pgr_trsp(text,integer,float,integer,float,boolean,boolean) deprecated signature on v3.4.0 - seq | id1 | id2 | cost ------+-------+-----+------------ - 0 | 52163 | 717 | 977.000001 - 1 | 52222 | 718 | 961.000001 - 2 | 52220 | -1 | 0 -(3 rows) - -SELECT * FROM pgr_dijkstra( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 52163, - 52220, - false); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+-------+------+------------+------------- - 1 | 1 | 52163 | 52220 | 52163 | 717 | 977.000001 | 0 - 2 | 2 | 52163 | 52220 | 52222 | 718 | 961.000001 | 977.000001 - 3 | 3 | 52163 | 52220 | 52220 | -1 | 0 | 1938.000002 -(3 rows) - -SELECT * FROM pgr_dijkstra( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - (SELECT source FROM four_edges WHERE id = 719), - (SELECT source FROM four_edges WHERE id = 718), - true); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+-------+------+------------+------------- - 1 | 1 | 52163 | 52220 | 52163 | 717 | 977.000001 | 0 - 2 | 2 | 52163 | 52220 | 52222 | 718 | 961.000001 | 977.000001 - 3 | 3 | 52163 | 52220 | 52220 | -1 | 0 | 1938.000002 -(3 rows) - -/* Comparing withPoints and trsp*/ -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0.5, - 718, 0, - true, true, NULL); -WARNING: pgr_trsp(text,integer,float,integer,float,boolean,boolean) deprecated signature on v3.4.0 - seq | id1 | id2 | cost ------+-------+-----+------------ - 0 | -1 | 719 | 89.7000005 - 1 | 52163 | 717 | 977.000001 - 2 | 52222 | 718 | 961.000001 - 3 | 52220 | -1 | 0 -(4 rows) - -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$SELECT 719 AS edge_id, 0.5::float AS fraction$$, - -1, - /* selecting source because we have 0 */ - (SELECT source FROM four_edges WHERE id = 718), - true); - seq | path_seq | node | edge | cost | agg_cost ------+----------+-------+------+------------+-------------- - 1 | 1 | -1 | 719 | 89.7000005 | 0 - 2 | 2 | 52163 | 717 | 977.000001 | 89.7000005 - 3 | 3 | 52222 | 718 | 961.000001 | 1066.7000015 - 4 | 4 | 52220 | -1 | 0 | 2027.7000025 -(4 rows) - -/* TODO should give result more or less the same as above*/ -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$(SELECT 719 AS edge_id, 0.5::float AS fraction) - UNION - (SELECT 718, 0)$$, - -1, -2, - true); - seq | path_seq | node | edge | cost | agg_cost ------+----------+------+------+------+---------- -(0 rows) - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0, - 718, 0.5, - true, true, NULL); -WARNING: pgr_trsp(text,integer,float,integer,float,boolean,boolean) deprecated signature on v3.4.0 - seq | id1 | id2 | cost ------+-------+-----+------------- - 0 | 52163 | 717 | 977.000001 - 1 | 52222 | 718 | 480.5000005 - 2 | -2 | -1 | 0 -(3 rows) - -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$SELECT 718 AS edge_id, 0.5::float AS fraction$$, - /* selecting source because we have 0 */ - (SELECT source FROM four_edges WHERE id = 719), - -1, - true); - seq | path_seq | node | edge | cost | agg_cost ------+----------+-------+------+-------------+-------------- - 1 | 1 | 52163 | 717 | 977.000001 | 0 - 2 | 2 | 52222 | 718 | 480.5000005 | 977.000001 - 3 | 3 | -1 | -1 | 0 | 1457.5000015 -(3 rows) - -/* TODO should give result more or less the same as above*/ -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$(SELECT 719 AS edge_id, 0::float AS fraction) - UNION - (SELECT 718, 0.5)$$, - -1, -2, - true); - seq | path_seq | node | edge | cost | agg_cost ------+----------+------+------+------+---------- -(0 rows) - -SELECT * FROM pgr_trsp( - $$SELECT - id::int, source::int, target::int, cost::float, reverse_cost::float - FROM four_edges$$, - 719, 0.5, - 718, 0.5, - true, true, NULL); -WARNING: pgr_trsp(text,integer,float,integer,float,boolean,boolean) deprecated signature on v3.4.0 - seq | id1 | id2 | cost ------+-------+-----+------------- - 0 | -1 | 719 | 89.7000005 - 1 | 52163 | 717 | 977.000001 - 2 | 52222 | 718 | 480.5000005 - 3 | -2 | -1 | 0 -(4 rows) - -SELECT * FROM pgr_withPoints( - $$SELECT - id, source, target, cost, reverse_cost - FROM four_edges$$, - $$(SELECT 719 AS edge_id, 0.5::float AS fraction) - UNION - (SELECT 718, 0.5)$$, - -1, -2, - true); - seq | path_seq | node | edge | cost | agg_cost ------+----------+-------+------+-------------+-------------- - 1 | 1 | -1 | 718 | 480.5000005 | 0 - 2 | 2 | 52222 | 717 | 977.000001 | 480.5000005 - 3 | 3 | 52163 | 719 | 89.7000005 | 1457.5000015 - 4 | 4 | -2 | -1 | 0 | 1547.200002 -(4 rows) - -ROLLBACK; -ROLLBACK diff --git a/docqueries/trsp/test.conf b/docqueries/trsp/test.conf index c8a12420d6..d3c981e3e6 100644 --- a/docqueries/trsp/test.conf +++ b/docqueries/trsp/test.conf @@ -14,7 +14,6 @@ issue693.pg issue704.pg issue717.pg - four_edges.pg )], }, ); From ac655ce7d34f32d629f7fd9a431adc8d5307ad50 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 26 Oct 2024 17:55:59 -0600 Subject: [PATCH 055/141] (src) fix for points on an edge vertex --- src/common/basePath_SSEC.cpp | 2 -- src/withPoints/withPoints.cpp | 8 ++++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/common/basePath_SSEC.cpp b/src/common/basePath_SSEC.cpp index c2f62c6825..23a7f84e29 100644 --- a/src/common/basePath_SSEC.cpp +++ b/src/common/basePath_SSEC.cpp @@ -160,8 +160,6 @@ Path Path::getSubpath(unsigned int j) const { for (auto i = path.begin(); i != path.begin() + j; ++i) { result.push_back((*i)); } - pgassert(result.tot_cost() != 0); - pgassert(this->tot_cost() != 0); return result; } diff --git a/src/withPoints/withPoints.cpp b/src/withPoints/withPoints.cpp index 9123fed8de..98a619caeb 100644 --- a/src/withPoints/withPoints.cpp +++ b/src/withPoints/withPoints.cpp @@ -390,11 +390,15 @@ Pg_points_graph::create_new_edges() { } if (point.fraction == 0) { log << "Point's vertex_id = source" << edge.source << "\n"; - point.vertex_id = edge.source; + point.vertex_id = -point.pid; + Edge_t new_edge = {edge.id, edge.source, -point.pid, 0, 0}; + m_new_edges.push_back(new_edge); } if (point.fraction == 1) { log << "point's vertex_id = target" << edge.target << "\n"; - point.vertex_id = edge.target; + point.vertex_id = -point.pid; + Edge_t new_edge = {edge.id, edge.target, -point.pid, 0, 0}; + m_new_edges.push_back(new_edge); } if (point.fraction > 0 && point.fraction < 1) { log << "vertex_id of the point is " << -point.pid << "\n"; From 395b4e226e7e0cd8b61d4a61c004b32ef85f444c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 14 Dec 2024 10:50:29 -0600 Subject: [PATCH 056/141] (pgtap/withPoints) tests having point in vertex --- pgtap/contraction/deadend/directed/big_ids.pg | 10 +- .../edge_cases/point_in_vertex.pg | 186 +++++++++++++++++ .../edge_cases/point_in_vertex.pg | 192 ++++++++++++++++++ .../withPoints/edge_cases/point_in_vertex.pg | 170 ++++++++++++++++ .../edge_cases/point_in_vertex.pg | 170 ++++++++++++++++ .../edge_cases/point_in_vertex.pg | 170 ++++++++++++++++ .../edge_cases/point_in_vertex.pg | 186 +++++++++++++++++ .../edge_cases/point_in_vertex.pg | 186 +++++++++++++++++ 8 files changed, 1266 insertions(+), 4 deletions(-) create mode 100644 pgtap/ksp/withPointsKSP/edge_cases/point_in_vertex.pg create mode 100644 pgtap/trsp/trspVia_withPoints/edge_cases/point_in_vertex.pg create mode 100644 pgtap/withPoints/withPoints/edge_cases/point_in_vertex.pg create mode 100644 pgtap/withPoints/withPointsCost/edge_cases/point_in_vertex.pg create mode 100644 pgtap/withPoints/withPointsCostMatrix/edge_cases/point_in_vertex.pg create mode 100644 pgtap/withPoints/withPointsDD/edge_cases/point_in_vertex.pg create mode 100644 pgtap/withPoints/withPointsVia/edge_cases/point_in_vertex.pg diff --git a/pgtap/contraction/deadend/directed/big_ids.pg b/pgtap/contraction/deadend/directed/big_ids.pg index 1709f50444..ce3bb110b7 100644 --- a/pgtap/contraction/deadend/directed/big_ids.pg +++ b/pgtap/contraction/deadend/directed/big_ids.pg @@ -97,16 +97,18 @@ SELECT set_eq('q4', -- input: 5 <-> 6 <- 10 <- 15 -- output: 6{5, 10, 15} PREPARE q5 AS -SELECT * FROM pgr_contraction( +SELECT type, id, unnest(contracted_vertices) FROM pgr_contraction( $$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (100000001, 100000002, 100000003)$$, ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true); PREPARE sol5 AS -SELECT type, id, contracted_vertices, source, target, cost +SELECT type, id, unnest FROM (VALUES - ('v'::CHAR, 100000006::BIGINT, ARRAY[100000005, 100000010, 100000015]::BIGINT[], -1::BIGINT, -1::BIGINT, -1::FLOAT) -) AS t(type, id, contracted_vertices, source, target, cost ); + ('v'::CHAR, 100000006::BIGINT, 100000005), + ('v'::CHAR, 100000006::BIGINT, 100000015), + ('v'::CHAR, 100000006::BIGINT, 100000010) +) AS t(type, id, unnest); SELECT set_eq('q5', 'sol5'); diff --git a/pgtap/ksp/withPointsKSP/edge_cases/point_in_vertex.pg b/pgtap/ksp/withPointsKSP/edge_cases/point_in_vertex.pg new file mode 100644 index 0000000000..9dcd0f7d6d --- /dev/null +++ b/pgtap/ksp/withPointsKSP/edge_cases/point_in_vertex.pg @@ -0,0 +1,186 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2024 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SET extra_float_digits=-3; + +SELECT CASE WHEN min_version('3.6.0') THEN plan(38) ELSE plan(1) END; + +CREATE VIEW four_edges AS +SELECT * FROM edges WHERE id IN (1,4,10,14); + +CREATE OR REPLACE FUNCTION test_vertex_points() RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.6.0') THEN + RETURN QUERY SELECT skip(1, 'Signature added on 3.6.0'); + RETURN; + END IF; + + +PREPARE dijkstra1(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_KSP( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $1, $2, 3, true) WHERE edge < 0; + +-- its a straigh line and one extreme are reachable +RETURN QUERY SELECT results_eq($$dijkstra1(5,9)$$, ARRAY[4]::TEXT[]); +RETURN QUERY SELECT results_eq($$dijkstra1(9,5)$$, ARRAY[4]::TEXT[]); + + +/* Points + midpoint of edge 1 (-1 by default) +*/ +PREPARE expectedCost1(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsKSP( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 1 AS edge_id, 0.5::float AS fraction$$, + -1, $1, 3, 'r', true) WHERE edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost1(6)$$, ARRAY[0.5]::TEXT[], 'Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost1(7)$$, ARRAY[1.5]::TEXT[] , 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost1(8)$$, ARRAY[2.5]::TEXT[] , 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost1(9)$$, ARRAY[3.5]::TEXT[] , 'Cost from midpoint on 1 to 9'); + +/* Points + midpoint of edge 1 (-2 assigned) +*/ +PREPARE expectedCost2(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsKSP( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction$$, + -2, $1, 3, 'r', true) WHERE edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost2(6)$$, $$expectedCost1(6)$$, 'Cost from midpoint on 1 (-2 assigned) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost2(7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost2(8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost2(9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +/* UNION ALL data is not sorted + source point of edge 10 (-1 by default) + midpoint of edge 1 (-2 by default) +*/ +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsKSP( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION ALL SELECT 1, 0.5 $$, + $1, $2, 3, 'r', true) WHERE edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(UNION ALL) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* UNION data is sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsKSP( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION SELECT 1, 0.5 $$, + $1, $2, 3, 'r', true) WHERE edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(UNION) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* VALUES data is not sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsKSP( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT * FROM (VALUES (1,0.5), (10, 0)) AS t (edge_id, fraction)$$, + $1, $2, 3, 'r', true) WHERE edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(VALUES) Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* Points + midpoint of edge 1 (-2 assigned) + source point of edge 10 (-1 assigned) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsKSP( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction UNION SELECT 1, 10, 0 $$, + $1, $2, 3, 'r', true) WHERE edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(ASSIGNED) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + +SELECT test_vertex_points(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/trsp/trspVia_withPoints/edge_cases/point_in_vertex.pg b/pgtap/trsp/trspVia_withPoints/edge_cases/point_in_vertex.pg new file mode 100644 index 0000000000..0a95f2d882 --- /dev/null +++ b/pgtap/trsp/trspVia_withPoints/edge_cases/point_in_vertex.pg @@ -0,0 +1,192 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2024 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SET extra_float_digits=-3; + +SELECT CASE WHEN min_version('3.4.0') THEN plan(38) ELSE plan(1) END; + +CREATE VIEW four_edges AS +SELECT * FROM edges WHERE id IN (1,4,10,14); + +CREATE OR REPLACE FUNCTION test_vertex_points() RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.4.0') THEN + RETURN QUERY SELECT skip(1, 'Signature added on 3.4.0'); + RETURN; + END IF; + + +PREPARE dijkstra1(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_dijkstraVia( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +-- its a straigh line and one extreme are reachable +RETURN QUERY SELECT results_eq($$dijkstra1(5,9)$$, ARRAY[4]::TEXT[]); +RETURN QUERY SELECT results_eq($$dijkstra1(9,5)$$, ARRAY[4]::TEXT[]); + + +/* Points + midpoint of edge 1 (-1 by default) +*/ +PREPARE expectedCost1(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_trspVia_withPoints( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT path, cost FROM restrictions$$, + $$ SELECT 1 AS edge_id, 0.5::float AS fraction$$, + ARRAY[-1, $1], true) WHERE node = $1 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost1(6)$$, ARRAY[0.5]::TEXT[], 'Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost1(7)$$, ARRAY[1.5]::TEXT[] , 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost1(8)$$, ARRAY[2.5]::TEXT[] , 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost1(9)$$, ARRAY[3.5]::TEXT[] , 'Cost from midpoint on 1 to 9'); + +/* Points + midpoint of edge 1 (-2 assigned) +*/ +PREPARE expectedCost2(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_trspVia_withPoints( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT path, cost FROM restrictions$$, + $$ SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction$$, + ARRAY[-2, $1], true) WHERE node = $1 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost2(6)$$, $$expectedCost1(6)$$, 'Cost from midpoint on 1 (-2 assigned) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost2(7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost2(8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost2(9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +/* UNION ALL data is not sorted + source point of edge 10 (-1 by default) + midpoint of edge 1 (-2 by default) +*/ +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_trspVia_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT path, cost FROM restrictions$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION ALL SELECT 1, 0.5 $$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(UNION ALL) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* UNION data is sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_trspVia_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT path, cost FROM restrictions$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION SELECT 1, 0.5 $$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(UNION) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* VALUES data is not sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_trspVia_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT path, cost FROM restrictions$$, + $$SELECT * FROM (VALUES (1,0.5), (10, 0)) AS t (edge_id, fraction)$$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(VALUES) Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* Points + midpoint of edge 1 (-2 assigned) + source point of edge 10 (-1 assigned) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_trspVia_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT path, cost FROM restrictions$$, + $$SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction UNION SELECT 1, 10, 0 $$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(ASSIGNED) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + +SELECT test_vertex_points(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/withPoints/withPoints/edge_cases/point_in_vertex.pg b/pgtap/withPoints/withPoints/edge_cases/point_in_vertex.pg new file mode 100644 index 0000000000..d5ac988e0b --- /dev/null +++ b/pgtap/withPoints/withPoints/edge_cases/point_in_vertex.pg @@ -0,0 +1,170 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2024 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SET extra_float_digits=-3; + +SELECT plan(38); + +CREATE VIEW four_edges AS +SELECT * FROM edges WHERE id IN (1,4,10,14); + +PREPARE dijkstra1(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_dijkstra( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $1, $2, true) WHERE edge < 0; + +-- its a straigh line and one extreme are reachable +SELECT results_eq($$dijkstra1(5,9)$$, ARRAY[4]::TEXT[]); +SELECT results_eq($$dijkstra1(9,5)$$, ARRAY[4]::TEXT[]); + + +/* Points + midpoint of edge 1 (-1 by default) +*/ +PREPARE expectedCost1(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPoints( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 1 AS edge_id, 0.5::float AS fraction$$, + -1, $1, true) WHERE edge < 0; + +SELECT results_eq($$expectedCost1(6)$$, ARRAY[0.5]::TEXT[], 'Cost from midpoint on 1 (-1 default) to 6'); +SELECT results_eq($$expectedCost1(7)$$, ARRAY[1.5]::TEXT[] , 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost1(8)$$, ARRAY[2.5]::TEXT[] , 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost1(9)$$, ARRAY[3.5]::TEXT[] , 'Cost from midpoint on 1 to 9'); + +/* Points + midpoint of edge 1 (-2 assigned) +*/ +PREPARE expectedCost2(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPoints( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction$$, + -2, $1, true) WHERE edge < 0; + +SELECT results_eq($$expectedCost2(6)$$, $$expectedCost1(6)$$, 'Cost from midpoint on 1 (-2 assigned) to 6'); +SELECT results_eq($$expectedCost2(7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost2(8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost2(9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +/* UNION ALL data is not sorted + source point of edge 10 (-1 by default) + midpoint of edge 1 (-2 by default) +*/ +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION ALL SELECT 1, 0.5 $$, + $1, $2, true) WHERE edge < 0; + +SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(UNION ALL) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* UNION data is sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION SELECT 1, 0.5 $$, + $1, $2, true) WHERE edge < 0; + +SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(UNION) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* VALUES data is not sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT * FROM (VALUES (1,0.5), (10, 0)) AS t (edge_id, fraction)$$, + $1, $2, true) WHERE edge < 0; + +SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(VALUES) Cost from midpoint on 1 (-1 default) to 6'); +SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* Points + midpoint of edge 1 (-2 assigned) + source point of edge 10 (-1 assigned) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPoints( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction UNION SELECT 1, 10, 0 $$, + $1, $2, true) WHERE edge < 0; + +SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(ASSIGNED) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/withPoints/withPointsCost/edge_cases/point_in_vertex.pg b/pgtap/withPoints/withPointsCost/edge_cases/point_in_vertex.pg new file mode 100644 index 0000000000..8a6a230d9c --- /dev/null +++ b/pgtap/withPoints/withPointsCost/edge_cases/point_in_vertex.pg @@ -0,0 +1,170 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2024 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SET extra_float_digits=-3; + +SELECT plan(38); + +CREATE VIEW four_edges AS +SELECT * FROM edges WHERE id IN (1,4,10,14); + +PREPARE dijkstra1(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_dijkstraCost( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $1, $2, true); + +-- its a straigh line and one extreme are reachable +SELECT results_eq($$dijkstra1(5,9)$$, ARRAY[4]::TEXT[]); +SELECT results_eq($$dijkstra1(9,5)$$, ARRAY[4]::TEXT[]); + + +/* Points + midpoint of edge 1 (-1 by default) +*/ +PREPARE expectedCost1(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCost( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 1 AS edge_id, 0.5::float AS fraction$$, + -1, $1, true) ; + +SELECT results_eq($$expectedCost1(6)$$, ARRAY[0.5]::TEXT[], 'Cost from midpoint on 1 (-1 default) to 6'); +SELECT results_eq($$expectedCost1(7)$$, ARRAY[1.5]::TEXT[] , 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost1(8)$$, ARRAY[2.5]::TEXT[] , 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost1(9)$$, ARRAY[3.5]::TEXT[] , 'Cost from midpoint on 1 to 9'); + +/* Points + midpoint of edge 1 (-2 assigned) +*/ +PREPARE expectedCost2(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCost( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction$$, + -2, $1, true) ; + +SELECT results_eq($$expectedCost2(6)$$, $$expectedCost1(6)$$, 'Cost from midpoint on 1 (-2 assigned) to 6'); +SELECT results_eq($$expectedCost2(7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost2(8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost2(9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +/* UNION ALL data is not sorted + source point of edge 10 (-1 by default) + midpoint of edge 1 (-2 by default) +*/ +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCost( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION ALL SELECT 1, 0.5 $$, + $1, $2, true); + +SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(UNION ALL) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* UNION data is sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCost( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION SELECT 1, 0.5 $$, + $1, $2, true); + +SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(UNION) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* VALUES data is not sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCost( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT * FROM (VALUES (1,0.5), (10, 0)) AS t (edge_id, fraction)$$, + $1, $2, true); + +SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(VALUES) Cost from midpoint on 1 (-1 default) to 6'); +SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* Points + midpoint of edge 1 (-2 assigned) + source point of edge 10 (-1 assigned) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCost( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction UNION SELECT 1, 10, 0 $$, + $1, $2, true); + +SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(ASSIGNED) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/withPoints/withPointsCostMatrix/edge_cases/point_in_vertex.pg b/pgtap/withPoints/withPointsCostMatrix/edge_cases/point_in_vertex.pg new file mode 100644 index 0000000000..a0dddf51fd --- /dev/null +++ b/pgtap/withPoints/withPointsCostMatrix/edge_cases/point_in_vertex.pg @@ -0,0 +1,170 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2024 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SET extra_float_digits=-3; + +SELECT plan(38); + +CREATE VIEW four_edges AS +SELECT * FROM edges WHERE id IN (1,4,10,14); + +PREPARE dijkstra1(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_dijkstraCostMatrix( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + ARRAY[$1, $2], true) LIMIT 1; + +-- its a straigh line and one extreme are reachable +SELECT results_eq($$dijkstra1(5,9)$$, ARRAY[4]::TEXT[]); +SELECT results_eq($$dijkstra1(9,5)$$, ARRAY[4]::TEXT[]); + + +/* Points + midpoint of edge 1 (-1 by default) +*/ +PREPARE expectedCost1(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCostMatrix( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 1 AS edge_id, 0.5::float AS fraction$$, + ARRAY[-1, $1], true) LIMIT 1; + +SELECT results_eq($$expectedCost1(6)$$, ARRAY[0.5]::TEXT[], 'Cost from midpoint on 1 (-1 default) to 6'); +SELECT results_eq($$expectedCost1(7)$$, ARRAY[1.5]::TEXT[] , 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost1(8)$$, ARRAY[2.5]::TEXT[] , 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost1(9)$$, ARRAY[3.5]::TEXT[] , 'Cost from midpoint on 1 to 9'); + +/* Points + midpoint of edge 1 (-2 assigned) +*/ +PREPARE expectedCost2(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCostMatrix( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction$$, + ARRAY[-2, $1], true) LIMIT 1; + +SELECT results_eq($$expectedCost2(6)$$, $$expectedCost1(6)$$, 'Cost from midpoint on 1 (-2 assigned) to 6'); +SELECT results_eq($$expectedCost2(7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost2(8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost2(9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +/* UNION ALL data is not sorted + source point of edge 10 (-1 by default) + midpoint of edge 1 (-2 by default) +*/ +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCostMatrix( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION ALL SELECT 1, 0.5 $$, + ARRAY[$1, $2], true)LIMIT 1; + +SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(UNION ALL) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* UNION data is sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCostMatrix( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION SELECT 1, 0.5 $$, + ARRAY[$1, $2], true) LIMIT 1; + +SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(UNION) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* VALUES data is not sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCostMatrix( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT * FROM (VALUES (1,0.5), (10, 0)) AS t (edge_id, fraction)$$, + ARRAY[$1, $2], true) LIMIT 1; + +SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(VALUES) Cost from midpoint on 1 (-1 default) to 6'); +SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* Points + midpoint of edge 1 (-2 assigned) + source point of edge 10 (-1 assigned) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsCostMatrix( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction UNION SELECT 1, 10, 0 $$, + ARRAY[$1, $2], true) LIMIT 1; + +SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(ASSIGNED) Cost from midpoint on 1 (-2 default) to 6'); +SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/withPoints/withPointsDD/edge_cases/point_in_vertex.pg b/pgtap/withPoints/withPointsDD/edge_cases/point_in_vertex.pg new file mode 100644 index 0000000000..eab2cf5eee --- /dev/null +++ b/pgtap/withPoints/withPointsDD/edge_cases/point_in_vertex.pg @@ -0,0 +1,186 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2024 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SET extra_float_digits=-3; + +SELECT CASE WHEN min_version('3.6.0') THEN plan(38) ELSE plan(1) END; + +CREATE VIEW four_edges AS +SELECT * FROM edges WHERE id IN (1,4,10,14); + +CREATE OR REPLACE FUNCTION test_vertex_points() RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.6.0') THEN + RETURN QUERY SELECT skip(1, 'Signature added on 3.6.0'); + RETURN; + END IF; + + +PREPARE dijkstra1(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_drivingDistance( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $1, 5, true) WHERE node = $2; + +-- its a straigh line and one extreme are reachable +RETURN QUERY SELECT results_eq($$dijkstra1(5,9)$$, ARRAY[4]::TEXT[]); +RETURN QUERY SELECT results_eq($$dijkstra1(9,5)$$, ARRAY[4]::TEXT[]); + + +/* Points + midpoint of edge 1 (-1 by default) +*/ +PREPARE expectedCost1(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsDD( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 1 AS edge_id, 0.5::float AS fraction$$, + -1, 3200.0, 'r', true) WHERE node = $1; + +RETURN QUERY SELECT results_eq($$expectedCost1(6)$$, ARRAY[0.5]::TEXT[], 'Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost1(7)$$, ARRAY[1.5]::TEXT[] , 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost1(8)$$, ARRAY[2.5]::TEXT[] , 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost1(9)$$, ARRAY[3.5]::TEXT[] , 'Cost from midpoint on 1 to 9'); + +/* Points + midpoint of edge 1 (-2 assigned) +*/ +PREPARE expectedCost2(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsDD( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction$$, + -2, 3200.0, 'r', true) WHERE node = $1; + +RETURN QUERY SELECT results_eq($$expectedCost2(6)$$, $$expectedCost1(6)$$, 'Cost from midpoint on 1 (-2 assigned) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost2(7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost2(8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost2(9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +/* UNION ALL data is not sorted + source point of edge 10 (-1 by default) + midpoint of edge 1 (-2 by default) +*/ +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsDD( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION ALL SELECT 1, 0.5 $$, + $1, 3200.0, 'r', true) WHERE node = $2; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(UNION ALL) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* UNION data is sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsDD( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION SELECT 1, 0.5 $$, + $1, 3200.0, 'r', true) WHERE node = $2; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(UNION) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* VALUES data is not sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsDD( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT * FROM (VALUES (1,0.5), (10, 0)) AS t (edge_id, fraction)$$, + $1, 3200.0, 'r', true) WHERE node = $2; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(VALUES) Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* Points + midpoint of edge 1 (-2 assigned) + source point of edge 10 (-1 assigned) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsDD( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction UNION SELECT 1, 10, 0 $$, + $1, 3200.0, 'r', true) WHERE node = $2; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(ASSIGNED) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + +SELECT test_vertex_points(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/withPoints/withPointsVia/edge_cases/point_in_vertex.pg b/pgtap/withPoints/withPointsVia/edge_cases/point_in_vertex.pg new file mode 100644 index 0000000000..15db9d8984 --- /dev/null +++ b/pgtap/withPoints/withPointsVia/edge_cases/point_in_vertex.pg @@ -0,0 +1,186 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2024 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SET extra_float_digits=-3; + +SELECT CASE WHEN min_version('3.4.0') THEN plan(38) ELSE plan(1) END; + +CREATE VIEW four_edges AS +SELECT * FROM edges WHERE id IN (1,4,10,14); + +CREATE OR REPLACE FUNCTION test_vertex_points() RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.4.0') THEN + RETURN QUERY SELECT skip(1, 'Signature added on 3.4.0'); + RETURN; + END IF; + + +PREPARE dijkstra1(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_dijkstraVia( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +-- its a straigh line and one extreme are reachable +RETURN QUERY SELECT results_eq($$dijkstra1(5,9)$$, ARRAY[4]::TEXT[]); +RETURN QUERY SELECT results_eq($$dijkstra1(9,5)$$, ARRAY[4]::TEXT[]); + + +/* Points + midpoint of edge 1 (-1 by default) +*/ +PREPARE expectedCost1(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsVia( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 1 AS edge_id, 0.5::float AS fraction$$, + ARRAY[-1, $1], true) WHERE node = $1 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost1(6)$$, ARRAY[0.5]::TEXT[], 'Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost1(7)$$, ARRAY[1.5]::TEXT[] , 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost1(8)$$, ARRAY[2.5]::TEXT[] , 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost1(9)$$, ARRAY[3.5]::TEXT[] , 'Cost from midpoint on 1 to 9'); + +/* Points + midpoint of edge 1 (-2 assigned) +*/ +PREPARE expectedCost2(BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsVia( + $$ SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$ SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction$$, + ARRAY[-2, $1], true) WHERE node = $1 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost2(6)$$, $$expectedCost1(6)$$, 'Cost from midpoint on 1 (-2 assigned) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost2(7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost2(8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost2(9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +/* UNION ALL data is not sorted + source point of edge 10 (-1 by default) + midpoint of edge 1 (-2 by default) +*/ +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsVia( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION ALL SELECT 1, 0.5 $$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(UNION ALL) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* UNION data is sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsVia( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 10 AS edge_id, 0::float AS fraction UNION SELECT 1, 0.5 $$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(UNION) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* VALUES data is not sorted + midpoint of edge 1 (-1 by default) + source point of edge 10 (-2 by default) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsVia( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT * FROM (VALUES (1,0.5), (10, 0)) AS t (edge_id, fraction)$$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-1,6)$$, $$expectedCost1(6)$$, '(VALUES) Cost from midpoint on 1 (-1 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-1,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-2,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-2,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-2,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +/* Points + midpoint of edge 1 (-2 assigned) + source point of edge 10 (-1 assigned) +*/ +DEALLOCATE PREPARE expectedCost3; +PREPARE expectedCost3(BIGINT, BIGINT) AS +SELECT agg_cost::TEXT FROM pgr_withPointsVia( + $$SELECT id, source, target, cost, reverse_cost FROM four_edges$$, + $$SELECT 2 AS pid, 1 AS edge_id, 0.5::float AS fraction UNION SELECT 1, 10, 0 $$, + ARRAY[$1, $2], true) WHERE node = $2 and edge < 0; + +RETURN QUERY SELECT results_eq($$expectedCost3(-2,6)$$, $$expectedCost1(6)$$, '(ASSIGNED) Cost from midpoint on 1 (-2 default) to 6'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,7)$$, $$expectedCost1(7)$$, 'Cost from midpoint on 1 to 7'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,8)$$, $$expectedCost1(8)$$, 'Cost from midpoint on 1 to 8'); +RETURN QUERY SELECT results_eq($$expectedCost3(-2,9)$$, $$expectedCost1(9)$$, 'Cost from midpoint on 1 to 9'); + +RETURN QUERY SELECT CASE WHEN min_version('3.7.1') +THEN + collect_tap( + set_eq($$expectedCost3(-1,9)$$, $$dijkstra1(7,9)$$, 'Cost from target on 10 (-1 default, aka 7) to 9'), + set_eq($$expectedCost3(-1,8)$$, $$dijkstra1(7,8)$$, 'Cost from target on 10 to 8'), + set_eq($$expectedCost3(-1,7)$$, ARRAY[0]::TEXT[], 'Cost from target on 10 to 7') + ) +ELSE skip('Fix implemented on 3.7.1',3) +END; + +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + +SELECT test_vertex_points(); + +SELECT finish(); +ROLLBACK; From 16854d566cfb7617e27324083fc1016a879c2566 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 16 Dec 2024 12:38:40 -0600 Subject: [PATCH 057/141] Updating NEWS & release notes --- NEWS.md | 9 ++++++++- doc/src/release_notes.rst | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index 6430b5a88e..72d0f622d7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,7 +9,14 @@ ### pgRouting 3.7.1 Release Notes -No Changes Yet +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** + +* [#2689](https://github.com/pgRouting/pgrouting/pull/2689) When point is a + vertex, the withPoints family do not return results. ### pgRouting 3.7.0 Release Notes diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 25348a5ef7..154fb2c4bf 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -40,7 +40,14 @@ pgRouting 3.7 pgRouting 3.7.1 Release Notes ------------------------------------------------------------------------------- -No Changes Yet +To see all issues & pull requests closed by this release see the `Git closed +milestone for 3.7.1 +`__ + +.. rubric:: Bug fixes + +* `#2689 `__ When point is a + vertex, the withPoints family do not return results. pgRouting 3.7.0 Release Notes ------------------------------------------------------------------------------- From 2db148c526857c3e2bf6a2287276ee1d9fb1fede Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 16 Dec 2024 18:42:57 -0600 Subject: [PATCH 058/141] (Dmatrix) Add missing include directive --- include/cpp_common/Dmatrix.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/cpp_common/Dmatrix.hpp b/include/cpp_common/Dmatrix.hpp index a4db572b27..4b22364094 100644 --- a/include/cpp_common/Dmatrix.hpp +++ b/include/cpp_common/Dmatrix.hpp @@ -1,8 +1,6 @@ /*PGR-GNU***************************************************************** File: Dmatrix.hpp -FILE: Dmatrix.h - Copyright (c) 2015 pgRouting developers Mail: project@pgrouting.org @@ -34,6 +32,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include typedef struct IID_t_rt IID_t_rt; From ba68479318c5a511fa11a7a6872a43c400eda866 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 17 Dec 2024 09:40:46 -0600 Subject: [PATCH 059/141] (Dmatrix) add missing include --- NEWS.md | 2 ++ doc/src/release_notes.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/NEWS.md b/NEWS.md index 72d0f622d7..d3203fcb78 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,6 +15,8 @@ milestone for 3.7.1 **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. diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 154fb2c4bf..7940148bcc 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -46,6 +46,8 @@ milestone for 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. From e9aef89f6fc37f36eacc57a05106e1382893136c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 17 Dec 2024 12:26:26 -0600 Subject: [PATCH 060/141] Removing duplicated test and using unnest --- pgtap/contraction/deadend/directed/big_ids.pg | 140 ------------------ tools/testers/contraction_tapfuncs.sql | 37 +++-- 2 files changed, 22 insertions(+), 155 deletions(-) delete mode 100644 pgtap/contraction/deadend/directed/big_ids.pg diff --git a/pgtap/contraction/deadend/directed/big_ids.pg b/pgtap/contraction/deadend/directed/big_ids.pg deleted file mode 100644 index ce3bb110b7..0000000000 --- a/pgtap/contraction/deadend/directed/big_ids.pg +++ /dev/null @@ -1,140 +0,0 @@ - -/*PGR-GNU***************************************************************** - -Copyright (c) 2018 pgRouting developers -Mail: project@pgrouting.org - ------- -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - ********************************************************************PGR-GNU*/ -BEGIN; - -UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT plan(6); - -UPDATE edges -SET id = id + POWER(10, 8), - source = source + POWER(10, 8), - target = target + POWER(10, 8); - - --- input: 5 <-> 6, forbidden = 20 --- output: 2{1} ---Checking dead end contraction with invalid forbidden vertices -PREPARE q1 AS -SELECT * FROM pgr_contraction( - $$SELECT id, source, target, cost, reverse_cost FROM edges - WHERE id = 100000005$$, - ARRAY[1]::integer[], 1, ARRAY[20]::BIGINT[], true); - -SELECT set_eq('q1', - $$SELECT - 'v'::CHAR AS type, - 100000011::BIGINT AS id, - ARRAY[100000010]::BIGINT[] AS contracted_vertices, - -1::BIGINT AS source, - -1::BIGINT AS target, - -1::FLOAT AS cost$$); - --- Checking dead end contraction with no dead end node --- input: 10->6 6<->7, 7<->11, 10->11 --q1 --- output: -PREPARE q2 AS -SELECT * FROM pgr_contraction( - $$SELECT id, source, target, cost, reverse_cost FROM edges - WHERE id IN (100000002, 100000004, 100000005, 100000008)$$, - ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true); - -SELECT is_empty('q2'); - --- input: 5 <-> 6 --- outputt: 6{5} ---Checking dead end contraction for single dead end node -PREPARE q3 AS -SELECT * FROM pgr_contraction( - $$SELECT id, source, target, cost, reverse_cost FROM edges - WHERE id = 100000001$$, - ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true); - -SELECT set_eq('q3', - $$SELECT - 'v'::CHAR AS type, - 100000006::BIGINT AS id, - ARRAY[100000005]::BIGINT[] AS contracted_vertices, - -1::BIGINT AS source, - -1::BIGINT AS target, - -1::FLOAT AS cost$$); - --- Checking dead end contraction for two dead end nodes --- input: 6 <- 10 <- 15 --- output: 15{6, 10} -PREPARE q4 AS -SELECT * FROM pgr_contraction( - $$SELECT id, source, target, cost, reverse_cost FROM edges - WHERE id IN (100000002, 100000003)$$, - ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true); - -SELECT set_eq('q4', - $$SELECT - 'v'::CHAR AS type, - 100000006::BIGINT AS id, - ARRAY[100000010,100000015]::BIGINT[] AS contracted_vertices, - -1::BIGINT AS source, - -1::BIGINT AS target, - -1::FLOAT AS cost$$); - ---Checking dead end contraction for multiple dead end nodes --- input: 5 <-> 6 <- 10 <- 15 --- output: 6{5, 10, 15} -PREPARE q5 AS -SELECT type, id, unnest(contracted_vertices) FROM pgr_contraction( - $$SELECT id, source, target, cost, reverse_cost FROM edges - WHERE id IN (100000001, 100000002, 100000003)$$, - ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true); - -PREPARE sol5 AS -SELECT type, id, unnest -FROM (VALUES - ('v'::CHAR, 100000006::BIGINT, 100000005), - ('v'::CHAR, 100000006::BIGINT, 100000015), - ('v'::CHAR, 100000006::BIGINT, 100000010) -) AS t(type, id, unnest); - -SELECT set_eq('q5', 'sol5'); - --- all table --- 15{14} --- 16{17} --- 10{13} --- 5{7,8} --- 2{1} --- Checking dead end contraction for sample data -PREPARE q6 AS -SELECT * FROM pgr_contraction( - 'SELECT id, source, target, cost, reverse_cost FROM edges', - ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true); - -PREPARE sol6 AS -SELECT type, id, contracted_vertices, source, target, cost -FROM (VALUES - ('v'::CHAR, 100000004::BIGINT, ARRAY[100000002]::BIGINT[], -1::BIGINT, -1::BIGINT, -1::FLOAT), - ('v', 100000007, ARRAY[100000001,100000003], -1, -1, -1), - ('v', 100000006, ARRAY[100000005], -1, -1, -1), - ('v', 100000008, ARRAY[100000009], -1, -1, -1), - ('v', 100000014, ARRAY[100000013], -1, -1, -1) -) AS t(type, id, contracted_vertices, source, target, cost ); - -SELECT set_eq('q6', 'sol6'); - -SELECT finish(); -ROLLBACK; diff --git a/tools/testers/contraction_tapfuncs.sql b/tools/testers/contraction_tapfuncs.sql index d66c6e490b..ea16c0d928 100644 --- a/tools/testers/contraction_tapfuncs.sql +++ b/tools/testers/contraction_tapfuncs.sql @@ -24,6 +24,7 @@ vids BIGINT[] = ARRAY[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]; x BIGINT; q TEXT; mainq TEXT; +otherq TEXT; expected TEXT; BEGIN UPDATE edges @@ -66,26 +67,32 @@ BEGIN -1::BIGINT AS target, -1::FLOAT AS cost$$); - q = format(mainq, ARRAY[vids[1], vids[2]], directed); + otherq = $d$ SELECT type, id, unnest(contracted_vertices) FROM pgr_contraction( + $$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id = ANY('%1$s'::BIGINT[]) $$, + ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], '%2$s'::BOOLEAN)$d$; - RETURN QUERY - SELECT set_eq(q, - $$SELECT - 'v'::CHAR AS type, - $$ || vids[10] || $$::BIGINT AS id, - ARRAY[ $$ || vids[5] || $$,$$ || vids[6] || $$]::BIGINT[] AS contracted_vertices, - -1::BIGINT AS source, - -1::BIGINT AS target, - -1::FLOAT AS cost$$); + q = format(otherq, ARRAY[vids[1], vids[2]], directed); + + expected = format($d$ + SELECT type, id, unnest + FROM (VALUES + ('v'::TEXT, %1$s::BIGINT, %2$s::BIGINT), + ('v', %1$s, %3$s) + ) AS t(type, id, unnest)$d$, + vids[10], vids[5], vids[6]) ; - q = format(mainq, ARRAY[vids[1], vids[2], vids[3]], directed); + RETURN QUERY SELECT set_eq(q, expected); + + q = format(otherq, ARRAY[vids[1], vids[2], vids[3]], directed); expected = format($d$ - SELECT type, id, contracted_vertices, source, target, cost + SELECT type, id, unnest FROM (VALUES - ('v'::CHAR, %1$s::BIGINT, '%2$s'::BIGINT[], -1::BIGINT, -1::BIGINT, -1::FLOAT) - ) AS t(type, id, contracted_vertices, source, target, cost )$d$, - vids[6], ARRAY[vids[5], vids[10], vids[15]]) ; + ('v'::TEXT, %1$s::BIGINT, %2$s::BIGINT), + ('v', %1$s, %3$s), + ('v', %1$s, %4$s) + ) AS t(type, id, unnest)$d$, + vids[6], vids[5], vids[10], vids[15]) ; RETURN QUERY SELECT set_eq(q, expected); From 6e252a63a1a7b3ab4c83056ddc8298106352e048 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 17 Dec 2024 16:18:00 -0600 Subject: [PATCH 061/141] Yet again another unnest fix --- tools/testers/contraction_tapfuncs.sql | 27 +++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/tools/testers/contraction_tapfuncs.sql b/tools/testers/contraction_tapfuncs.sql index ea16c0d928..59194493b4 100644 --- a/tools/testers/contraction_tapfuncs.sql +++ b/tools/testers/contraction_tapfuncs.sql @@ -97,24 +97,25 @@ BEGIN RETURN QUERY SELECT set_eq(q, expected); - q = format($d$ SELECT * FROM pgr_contraction( + q = format($d$ SELECT type, id, unnest(contracted_vertices) FROM pgr_contraction( $$SELECT id, source, target, cost, reverse_cost FROM edges$$, ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], '%1$s'::BOOLEAN)$d$, directed); expected = format($d$ - SELECT type, id, contracted_vertices, source, target, cost + SELECT type, id, unnest FROM (VALUES - ('v'::CHAR, %1$s::BIGINT, '%2$s'::BIGINT[], -1::BIGINT, -1::BIGINT, -1::FLOAT), - ('v', %3$s, '%4$s'::BIGINT[], -1, -1, -1), - ('v', %5$s, '%6$s'::BIGINT[], -1, -1, -1), - ('v', %7$s, '%8$s'::BIGINT[], -1, -1, -1), - ('v', %9$s, '%10$s'::BIGINT[], -1, -1, -1) - ) AS t(type, id, contracted_vertices, source, target, cost )$d$, - vids[4], ARRAY[vids[2]], - vids[6], ARRAY[vids[5]], - vids[7], ARRAY[vids[1], vids[3]], - vids[8], ARRAY[vids[9]], - vids[14], ARRAY[vids[13]]); + ('v'::CHAR, %1$s::BIGINT, %2$s), + ('v', %3$s, %4$s), + ('v', %5$s, %6$s), + ('v', %5$s, %7$s), + ('v', %8$s, %9$s), + ('v', %10$s, %11$s) + ) AS t(type, id, unnest)$d$, + vids[4], vids[2], + vids[6], vids[5], + vids[7], vids[1], vids[3], + vids[8], vids[9], + vids[14], vids[13]); RETURN QUERY SELECT set_eq(q, expected); From d3079a3a9beca1526e3c96e17c1a5cc8ecd7a60e Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 17 Dec 2024 10:06:05 -0600 Subject: [PATCH 062/141] Testing Postgres 17 --- .github/workflows/ubuntu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 4a023e06d4..5574b9d43d 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - psql: [13,14,15,16] + psql: [13,14,15,16,17] postgis: [3] os: [ubuntu-latest, ubuntu-22.04, ubuntu-20.04] From 46814cab01934c55c380693502cc33f267ce5584 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 19 Dec 2024 13:26:39 -0600 Subject: [PATCH 063/141] (trsp/handler) refining trspHandler class --- include/trsp/trspHandler.hpp | 92 ++------- src/trsp/trspHandler.cpp | 267 +++++-------------------- src/trsp/trspVia_driver.cpp | 2 +- src/trsp/trspVia_withPoints_driver.cpp | 2 +- src/trsp/trsp_driver.cpp | 2 +- src/trsp/trsp_withPoints_driver.cpp | 2 +- 6 files changed, 79 insertions(+), 288 deletions(-) diff --git a/include/trsp/trspHandler.hpp b/include/trsp/trspHandler.hpp index 772f666697..c601f7ae3b 100644 --- a/include/trsp/trspHandler.hpp +++ b/include/trsp/trspHandler.hpp @@ -50,7 +50,7 @@ namespace trsp { -class Pgr_trspHandler : public pgrouting::Pgr_messages { +class TrspHandler : public pgrouting::Pgr_messages { /** * Used in the priority queue */ @@ -101,104 +101,54 @@ class Pgr_trspHandler : public pgrouting::Pgr_messages { public: - Pgr_trspHandler( + TrspHandler( std::vector &edges, const std::vector &new_edges, const bool directed, const std::vector &ruleList); - Pgr_trspHandler( + + TrspHandler( std::vector &edges, const bool directed, const std::vector &ruleList); - Pgr_trspHandler( - Edge_t *edges, - const size_t edge_count, - const bool directed, - const std::vector &ruleList); - Pgr_trspHandler( - Edge_t *edges, - const size_t edge_count, - const std::vector &new_edges, - const bool directed, - const std::vector &ruleList); - - Pgr_trspHandler(void) = delete; - ~Pgr_trspHandler(void) = default; - - - Path process( - const int64_t start_vertex, - const int64_t end_vertex); - - std::deque process( - const std::map> &combinations); - - std::deque process( - const std::vector sources, - const std::vector targets); + ~TrspHandler(void) = default; + std::deque process(const std::map>&); void clear(); private: - void construct_graph(const std::vector&, const bool); - void construct_graph( - Edge_t *edges, - const size_t edge_count, - const bool directed); + void construct_graph(const std::vector&, const std::vector&, const bool); - void add_point_edges( - const std::vector &new_edges, - const bool directed); - - int initialize_restrictions( - const std::vector &ruleList); + int initialize_restrictions(const std::vector&); void initialize_que(); - Path process_trsp( - size_t edge_count); + Path process(const int64_t, const int64_t); + + Path process_trsp(size_t edge_count); EdgeInfo dijkstra_exploration(); + void explore(int64_t, const EdgeInfo, bool); - void explore( - int64_t cur_node, - const EdgeInfo cur_edge, - bool isStart); + double getRestrictionCost(int64_t, const EdgeInfo&, bool); - double getRestrictionCost( - int64_t cur_node, - const EdgeInfo &new_edge, - bool isStart); - bool addEdge(Edge_t edgeIn, bool); + bool addEdge(Edge_t, bool); - void connectStartEdge( - size_t firstEdge_idx, - size_t secondEdge_idx); + void connectStartEdge(size_t, size_t); - void connectEndEdge( - size_t firstEdge_idx, - size_t secondEdge_idx); + void connectEndEdge(size_t, size_t); - double construct_path(int64_t ed_id, Position pos); + double construct_path(int64_t, Position); - void renumber_edges(Edge_t*, const size_t); - void renumber_edges(Edge_t*, const size_t, std::vector&); void renumber_edges(std::vector&); void renumber_edges(std::vector&, std::vector&); - void add_to_que( - double cost, - size_t e_idx, - bool isStart); + void add_to_que(double, size_t, bool); - double get_tot_cost( - double cost, - size_t edge_idx, - bool isStart); + double get_tot_cost(double, size_t, bool); private: std::vector m_edges; @@ -226,7 +176,7 @@ class Pgr_trspHandler : public pgrouting::Pgr_messages { /* * Used in dijkstra_exploration */ - int64_t current_node; + int64_t m_current_node; Path m_path; @@ -238,7 +188,7 @@ class Pgr_trspHandler : public pgrouting::Pgr_messages { /* * priority queue */ - std::priority_queue, std::greater > que; + std::priority_queue, std::greater> m_que; }; diff --git a/src/trsp/trspHandler.cpp b/src/trsp/trspHandler.cpp index 29963e5407..b14f472b95 100644 --- a/src/trsp/trspHandler.cpp +++ b/src/trsp/trspHandler.cpp @@ -42,8 +42,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. namespace pgrouting { namespace trsp { -// ------------------------------------------------------------------------- -Pgr_trspHandler::Pgr_trspHandler( +TrspHandler::TrspHandler( std::vector &edges, const bool directed, const std::vector &ruleList) : @@ -55,29 +54,10 @@ Pgr_trspHandler::Pgr_trspHandler( m_idx_to_id[id.second] = id.first; } - construct_graph(edges, directed); + construct_graph(edges, std::vector(), directed); } -Pgr_trspHandler::Pgr_trspHandler( - Edge_t *edges, - const size_t edge_count, - const bool directed, - const std::vector &ruleList) : - m_ruleTable() { - initialize_restrictions(ruleList); - - renumber_edges(edges, edge_count); - for (const auto& id : m_id_to_idx) { - m_idx_to_id[id.second] = id.first; - } - - construct_graph( - edges, - edge_count, - directed); -} - -Pgr_trspHandler::Pgr_trspHandler( +TrspHandler::TrspHandler( std::vector &edges, const std::vector &new_edges, const bool directed, @@ -92,44 +72,14 @@ Pgr_trspHandler::Pgr_trspHandler( m_idx_to_id[id.second] = id.first; } - construct_graph( - edges, - directed); - add_point_edges( - point_edges, - directed); -} - -Pgr_trspHandler::Pgr_trspHandler( - Edge_t *edges, - const size_t edge_count, - const std::vector &new_edges, - const bool directed, - const std::vector &ruleList) : - m_ruleTable() { - initialize_restrictions(ruleList); - - auto point_edges = new_edges; - renumber_edges(edges, edge_count, point_edges); - - for (const auto& id : m_id_to_idx) { - m_idx_to_id[id.second] = id.first; - } - - construct_graph( - edges, - edge_count, - directed); - add_point_edges( - point_edges, - directed); + construct_graph(edges, point_edges, directed); } // ------------------------------------------------------------------------- void -Pgr_trspHandler::renumber_edges(std::vector &edges) { +TrspHandler::renumber_edges(std::vector &edges) { int64_t idx(0); for (auto &e : edges) { if (m_id_to_idx.find(e.source) == m_id_to_idx.end()) { @@ -145,27 +95,9 @@ Pgr_trspHandler::renumber_edges(std::vector &edges) { } } -void -Pgr_trspHandler::renumber_edges( - Edge_t *edges, - size_t total_edges) { - int64_t idx(0); - for (size_t i = 0; i < total_edges; ++i) { - if (m_id_to_idx.find(edges[i].source) == m_id_to_idx.end()) { - m_id_to_idx[edges[i].source] = idx; - ++idx; - } - if (m_id_to_idx.find(edges[i].target) == m_id_to_idx.end()) { - m_id_to_idx[edges[i].target] = idx; - ++idx; - } - edges[i].source = m_id_to_idx.at(edges[i].source); - edges[i].target = m_id_to_idx.at(edges[i].target); - } -} void -Pgr_trspHandler::renumber_edges( +TrspHandler::renumber_edges( std::vector &edges, std::vector &new_edges) { int64_t idx(0); @@ -195,42 +127,10 @@ Pgr_trspHandler::renumber_edges( } } -void -Pgr_trspHandler::renumber_edges( - Edge_t *edges, - size_t total_edges, - std::vector& new_edges) { - int64_t idx(0); - for (size_t i = 0; i < total_edges; ++i) { - if (m_id_to_idx.find(edges[i].source) == m_id_to_idx.end()) { - m_id_to_idx[edges[i].source] = idx; - ++idx; - } - if (m_id_to_idx.find(edges[i].target) == m_id_to_idx.end()) { - m_id_to_idx[edges[i].target] = idx; - ++idx; - } - edges[i].source = m_id_to_idx.at(edges[i].source); - edges[i].target = m_id_to_idx.at(edges[i].target); - } - for (auto &e : new_edges) { - if (m_id_to_idx.find(e.source) == m_id_to_idx.end()) { - m_id_to_idx[e.source] = idx; - ++idx; - } - if (m_id_to_idx.find(e.target) == m_id_to_idx.end()) { - m_id_to_idx[e.target] = idx; - ++idx; - } - e.source = m_id_to_idx.at(e.source); - e.target = m_id_to_idx.at(e.target); - } -} - // ------------------------------------------------------------------------- -void Pgr_trspHandler::clear() { +void TrspHandler::clear() { m_parent.clear(); m_dCost.clear(); m_path.clear(); @@ -238,7 +138,7 @@ void Pgr_trspHandler::clear() { // ------------------------------------------------------------------------- -double Pgr_trspHandler::construct_path(int64_t ed_id, Position pos) { +double TrspHandler::construct_path(int64_t ed_id, Position pos) { if (pos == ILLEGAL) return (std::numeric_limits::max)(); pgassert(pos != ILLEGAL); @@ -282,7 +182,7 @@ double Pgr_trspHandler::construct_path(int64_t ed_id, Position pos) { // ------------------------------------------------------------------------- -double Pgr_trspHandler::getRestrictionCost( +double TrspHandler::getRestrictionCost( int64_t edge_ind, const EdgeInfo &edge, bool isStart) { @@ -315,7 +215,7 @@ double Pgr_trspHandler::getRestrictionCost( } -double Pgr_trspHandler::get_tot_cost( +double TrspHandler::get_tot_cost( double cost, size_t edge_idx, bool isStart) { @@ -329,7 +229,7 @@ double Pgr_trspHandler::get_tot_cost( // ------------------------------------------------------------------------- -void Pgr_trspHandler::explore( +void TrspHandler::explore( int64_t cur_node, const EdgeInfo cur_edge, bool isStart) { @@ -380,7 +280,7 @@ void Pgr_trspHandler::explore( // ------------------------------------------------------------------------- -int Pgr_trspHandler::initialize_restrictions( +int TrspHandler::initialize_restrictions( const std::vector &ruleList) { for (const auto &rule : ruleList) { auto dest_edge_id = rule.dest_id(); @@ -402,7 +302,7 @@ int Pgr_trspHandler::initialize_restrictions( * */ Path -Pgr_trspHandler::process( +TrspHandler::process( const int64_t start_vertex, const int64_t end_vertex) { if (m_id_to_idx.find(start_vertex) == m_id_to_idx.end() @@ -438,7 +338,7 @@ Pgr_trspHandler::process( * */ std::deque -Pgr_trspHandler::process( +TrspHandler::process( const std::map> &combinations ) { std::deque paths; @@ -451,77 +351,40 @@ Pgr_trspHandler::process( return paths; } -/** process - * - * does many to many processisng - * - */ -std::deque -Pgr_trspHandler::process( - const std::vector sources, - const std::vector targets) { - std::deque paths; - for (const auto &s : sources) { - for (const auto &t : targets) { - paths.push_back(process(s, t)); - } - } - - std::sort(paths.begin(), paths.end(), - [](const Path &e1, const Path &e2)->bool { - return e1.end_id() < e2.end_id(); - }); - std::stable_sort(paths.begin(), paths.end(), - [](const Path &e1, const Path &e2)->bool { - return e1.start_id() < e2.start_id(); - }); - return paths; -} - - -void Pgr_trspHandler::add_to_que( - double cost, - size_t e_idx, - bool isStart) { - que.push(std::make_pair(cost, - std::make_pair(e_idx, isStart))); -} - - // ------------------------------------------------------------------------- +void TrspHandler::add_to_que(double cost, size_t e_idx, bool isStart) { + m_que.push(std::make_pair(cost, std::make_pair(e_idx, isStart))); +} -void Pgr_trspHandler::initialize_que() { +void TrspHandler::initialize_que() { /* * For each adjacent edge to the start_vertex */ for (const auto source : m_adjacency[m_start_vertex]) { EdgeInfo &cur_edge = m_edges[source]; - if (cur_edge.startNode() == m_start_vertex - && cur_edge.cost() >= 0.0) { + if (cur_edge.startNode() == m_start_vertex && cur_edge.cost() >= 0.0) { m_dCost[cur_edge.idx()].endCost = cur_edge.cost(); m_parent[cur_edge.idx()].v_pos[0] = ILLEGAL; add_to_que(cur_edge.cost(), cur_edge.idx(), true); } - if (cur_edge.endNode() == m_start_vertex - && cur_edge.r_cost() >= 0.0) { - m_dCost[cur_edge.idx()].startCost = - cur_edge.r_cost(); + if (cur_edge.endNode() == m_start_vertex && cur_edge.r_cost() >= 0.0) { + m_dCost[cur_edge.idx()].startCost = cur_edge.r_cost(); m_parent[cur_edge.idx()].v_pos[1] = ILLEGAL; add_to_que(cur_edge.r_cost(), cur_edge.idx(), false); } } } -EdgeInfo Pgr_trspHandler::dijkstra_exploration() { +EdgeInfo TrspHandler::dijkstra_exploration() { EdgeInfo cur_edge; - pgassert(current_node == m_start_vertex); + pgassert(m_current_node == m_start_vertex); - while (!que.empty()) { - auto cur_pos = que.top(); - que.pop(); + while (!m_que.empty()) { + auto cur_pos = m_que.top(); + m_que.pop(); auto cure_idxex = cur_pos.second.first; cur_edge = m_edges[static_cast(cure_idxex)]; @@ -530,18 +393,18 @@ EdgeInfo Pgr_trspHandler::dijkstra_exploration() { /* * explore edges connected to end node */ - current_node = cur_edge.endNode(); + m_current_node = cur_edge.endNode(); if (cur_edge.cost() < 0.0) continue; - if (current_node == m_end_vertex) break; - explore(current_node, cur_edge, false); + if (m_current_node == m_end_vertex) break; + explore(m_current_node, cur_edge, false); } else { /* * explore edges connected to start node */ - current_node = cur_edge.startNode(); + m_current_node = cur_edge.startNode(); if (cur_edge.r_cost() < 0.0) continue; - if (current_node == m_end_vertex) break; - explore(current_node, cur_edge, true); + if (m_current_node == m_end_vertex) break; + explore(m_current_node, cur_edge, true); } } return cur_edge; @@ -551,7 +414,7 @@ EdgeInfo Pgr_trspHandler::dijkstra_exploration() { Path -Pgr_trspHandler::process_trsp( +TrspHandler::process_trsp( size_t edge_count) { pgassert(m_path.start_id() == m_start_vertex); pgassert(m_path.end_id() == m_end_vertex); @@ -562,25 +425,21 @@ Pgr_trspHandler::process_trsp( initialize_que(); - current_node = m_start_vertex; + m_current_node = m_start_vertex; pgassert(m_path.start_id() == m_start_vertex); auto cur_edge = dijkstra_exploration(); pgassert(m_path.start_id() == m_start_vertex); - if (current_node != m_end_vertex) { + if (m_current_node != m_end_vertex) { Path result(m_start_vertex, m_end_vertex); return result.renumber_vertices(m_idx_to_id);; } pgassert(m_path.start_id() == m_start_vertex); - if (current_node == cur_edge.startNode()) { - construct_path(static_cast(cur_edge.idx()), C_EDGE); - } else { - construct_path(static_cast(cur_edge.idx()), RC_EDGE); - } + construct_path(static_cast(cur_edge.idx()), m_current_node == cur_edge.startNode()? C_EDGE : RC_EDGE); Path_t pelement = {}; pelement.node = m_end_vertex; @@ -593,41 +452,23 @@ Pgr_trspHandler::process_trsp( } - - - -// ------------------------------------------------------------------------- -void Pgr_trspHandler::construct_graph( +void TrspHandler::construct_graph( const std::vector &edges, + const std::vector &new_edges, const bool directed) { for (const auto &e : edges) { addEdge(e, directed); } - m_mapEdgeId2Index.clear(); -} - -void Pgr_trspHandler::construct_graph( - Edge_t* edges, - const size_t edge_count, - const bool directed) { - for (size_t i = 0; i < edge_count; i++) { - addEdge(edges[i], directed); + for (const auto &e : new_edges) { + addEdge(e, directed); } m_mapEdgeId2Index.clear(); } -void Pgr_trspHandler::add_point_edges( - const std::vector &new_edges, - const bool directed) { - for (auto current_edge : new_edges) { - addEdge(current_edge, directed); - } - m_mapEdgeId2Index.clear(); -} // ------------------------------------------------------------------------- -void Pgr_trspHandler::connectStartEdge( +void TrspHandler::connectStartEdge( size_t firstEdge_idx, size_t secondEdge_idx) { EdgeInfo &firstEdge = m_edges[firstEdge_idx]; @@ -650,7 +491,7 @@ void Pgr_trspHandler::connectStartEdge( // ------------------------------------------------------------------------- -void Pgr_trspHandler::connectEndEdge( +void TrspHandler::connectEndEdge( size_t firstEdge_idx, size_t secondEdge_idx) { EdgeInfo &firstEdge = m_edges[firstEdge_idx]; @@ -673,7 +514,7 @@ void Pgr_trspHandler::connectEndEdge( // ------------------------------------------------------------------------- -bool Pgr_trspHandler::addEdge(Edge_t edgeIn, bool directed) { +bool TrspHandler::addEdge(Edge_t edgeIn, bool directed) { /* * making all "cost" > 0 */ @@ -682,33 +523,33 @@ bool Pgr_trspHandler::addEdge(Edge_t edgeIn, bool directed) { std::swap(edgeIn.source, edgeIn.target); } - if (!directed) { - if (edgeIn.reverse_cost < 0) { - edgeIn.reverse_cost = edgeIn.cost; - } + /* This gives a value to reverse_cost when:" + * graph is undirected + * reverse_cost is negative + */ + if (!directed && edgeIn.reverse_cost < 0) { + edgeIn.reverse_cost = edgeIn.cost; } - /* * the index of this new edge in the edges container is * m_edges.size() */ EdgeInfo edge(edgeIn, m_edges.size()); - + /* + * Add to the set of edges + */ m_edges.push_back(edge); - EdgeInfo &newEdge = m_edges[m_edges.size()-1]; - - /* * Searching the start node for connectivity */ auto itNodeMap = m_adjacency.find(edgeIn.source); if (itNodeMap != m_adjacency.end()) { - for (const auto e_idx : itNodeMap->second) { + for (const auto &e_idx : itNodeMap->second) { connectStartEdge(edge.idx(), e_idx); } } @@ -719,7 +560,7 @@ bool Pgr_trspHandler::addEdge(Edge_t edgeIn, bool directed) { */ itNodeMap = m_adjacency.find(edgeIn.target); if (itNodeMap != m_adjacency.end()) { - for (const auto e_idx : itNodeMap->second) { + for (const auto &e_idx : itNodeMap->second) { connectEndEdge(edge.idx(), e_idx); } } diff --git a/src/trsp/trspVia_driver.cpp b/src/trsp/trspVia_driver.cpp index 9c5a0cf39b..a80124bbfd 100644 --- a/src/trsp/trspVia_driver.cpp +++ b/src/trsp/trspVia_driver.cpp @@ -239,7 +239,7 @@ pgr_do_trspVia( auto new_combinations = pgrouting::utilities::get_combinations(paths, ruleList); if (!new_combinations.empty()) { - pgrouting::trsp::Pgr_trspHandler gdef(edges, directed, ruleList); + pgrouting::trsp::TrspHandler gdef(edges, directed, ruleList); auto new_paths = gdef.process(new_combinations); paths.insert(paths.end(), new_paths.begin(), new_paths.end()); } diff --git a/src/trsp/trspVia_withPoints_driver.cpp b/src/trsp/trspVia_withPoints_driver.cpp index 5c057cb13f..a0bdabd075 100644 --- a/src/trsp/trspVia_withPoints_driver.cpp +++ b/src/trsp/trspVia_withPoints_driver.cpp @@ -261,7 +261,7 @@ pgr_do_trspVia_withPoints( auto new_combinations = pgrouting::utilities::get_combinations(paths, ruleList); if (!new_combinations.empty()) { - pgrouting::trsp::Pgr_trspHandler gdef( + pgrouting::trsp::TrspHandler gdef( edges, pg_graph.new_edges(), directed, diff --git a/src/trsp/trsp_driver.cpp b/src/trsp/trsp_driver.cpp index c9b289565c..56a1bf8c8e 100644 --- a/src/trsp/trsp_driver.cpp +++ b/src/trsp/trsp_driver.cpp @@ -202,7 +202,7 @@ pgr_do_trsp( auto new_combinations = pgrouting::utilities::get_combinations(paths, ruleList); if (!new_combinations.empty()) { - pgrouting::trsp::Pgr_trspHandler gdef( + pgrouting::trsp::TrspHandler gdef( edges, directed, ruleList); diff --git a/src/trsp/trsp_withPoints_driver.cpp b/src/trsp/trsp_withPoints_driver.cpp index 0bcc7453b5..ba5b7a63ff 100644 --- a/src/trsp/trsp_withPoints_driver.cpp +++ b/src/trsp/trsp_withPoints_driver.cpp @@ -230,7 +230,7 @@ pgr_do_trsp_withPoints( auto new_combinations = pgrouting::utilities::get_combinations(paths, ruleList); if (!new_combinations.empty()) { - pgrouting::trsp::Pgr_trspHandler gdef( + pgrouting::trsp::TrspHandler gdef( edges, pg_graph.new_edges(), directed, From ff2bbaba14b4a8fecb136adf746daad4eddbbcc4 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 19 Dec 2024 13:59:30 -0600 Subject: [PATCH 064/141] (doc) Updating release notes --- NEWS.md | 4 ++++ doc/src/release_notes.rst | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/NEWS.md b/NEWS.md index d3203fcb78..600155a3ea 100644 --- a/NEWS.md +++ b/NEWS.md @@ -20,6 +20,10 @@ milestone for 3.7.1 * [#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 + ### pgRouting 3.7.0 Release Notes To see all issues & pull requests closed by this release see the [Git closed diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 7940148bcc..7292ad7059 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -51,6 +51,10 @@ milestone for 3.7.1 * `#2689 `__ When point is a vertex, the withPoints family do not return results. +.. rubric:: C/C++ code enhancemet + +* TRSP family + pgRouting 3.7.0 Release Notes ------------------------------------------------------------------------------- From 385c0de6cdb022494bdc9a199e44d42b5547dcc3 Mon Sep 17 00:00:00 2001 From: Vicky Vergara Date: Mon, 23 Dec 2024 16:40:42 -0600 Subject: [PATCH 065/141] Cleanup index page (#2703) Cleaning index page --- NEWS.md | 2 +- configuration.conf | 8 +++-- doc/CMakeLists.txt | 4 ++- doc/allpairs/allpairs-family.rst | 1 + doc/allpairs/pgr_floydWarshall.rst | 3 ++ doc/allpairs/pgr_johnson.rst | 3 ++ doc/alpha_shape/pgr_alphaShape.rst | 6 ++-- doc/astar/aStar-family.rst | 1 + doc/astar/pgr_aStar.rst | 13 ++++--- doc/astar/pgr_aStarCost.rst | 14 +++++--- doc/astar/pgr_aStarCostMatrix.rst | 7 ++-- doc/bdAstar/bdAstar-family.rst | 1 + doc/bdAstar/pgr_bdAstar.rst | 13 ++++--- doc/bdAstar/pgr_bdAstarCost.rst | 13 ++++--- doc/bdAstar/pgr_bdAstarCostMatrix.rst | 6 ++-- doc/bdDijkstra/bdDijkstra-family.rst | 2 +- doc/bdDijkstra/pgr_bdDijkstra.rst | 13 ++++--- doc/bdDijkstra/pgr_bdDijkstraCost.rst | 13 ++++--- doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst | 6 ++-- doc/bellman_ford/pgr_bellmanFord.rst | 13 ++++--- doc/bellman_ford/pgr_edwardMoore.rst | 13 ++++--- doc/breadthFirstSearch/CMakeLists.txt | 13 ------- doc/breadthFirstSearch/images/CMakeLists.txt | 11 ------ .../BFS-category.rst | 1 + doc/categories/CMakeLists.txt | 21 ++++++++++++ .../DFS-category.rst | 1 + doc/{ksp => categories}/KSP-category.rst | 1 + .../VRP-category.rst | 3 +- doc/{src => categories}/cost-category.rst | 1 + .../costMatrix-category.rst | 1 + .../drivingDistance-category.rst | 1 + .../spanningTree-family.rst | 1 + doc/{src => categories}/via-category.rst | 1 + .../withPoints-category.rst | 1 + doc/circuits/pgr_hawickCircuits.rst | 6 ++-- doc/components/components-family.rst | 1 + doc/components/pgr_articulationPoints.rst | 6 ++-- doc/components/pgr_biconnectedComponents.rst | 6 ++-- doc/components/pgr_bridges.rst | 6 ++-- doc/components/pgr_connectedComponents.rst | 3 ++ doc/components/pgr_makeConnected.rst | 7 ++-- doc/components/pgr_strongComponents.rst | 6 ++-- doc/contraction/contraction-family.rst | 1 + doc/contraction/pgr_contraction.rst | 1 + doc/dagShortestPath/pgr_dagShortestPath.rst | 14 +++++--- doc/dijkstra/dijkstra-family.rst | 1 + doc/dijkstra/pgr_dijkstra.rst | 14 +++++--- doc/dijkstra/pgr_dijkstraCost.rst | 14 +++++--- doc/dijkstra/pgr_dijkstraCostMatrix.rst | 7 ++-- doc/dijkstra/pgr_dijkstraNear.rst | 12 ++++--- doc/dijkstra/pgr_dijkstraNearCost.rst | 14 +++++--- doc/dijkstra/pgr_dijkstraVia.rst | 4 +++ .../pgr_lengauerTarjanDominatorTree.rst | 7 ++-- doc/driving_distance/CMakeLists.txt | 1 - doc/driving_distance/pgr_drivingDistance.rst | 7 ++-- doc/ksp/CMakeLists.txt | 1 - doc/ksp/pgr_KSP.rst | 13 ++++--- doc/lineGraph/pgr_lineGraph.rst | 6 ++-- doc/lineGraph/pgr_lineGraphFull.rst | 6 ++-- doc/lineGraph/transformation-family.rst | 1 + doc/max_flow/flow-family.rst | 1 + doc/max_flow/pgr_boykovKolmogorov.rst | 13 ++++--- doc/max_flow/pgr_edgeDisjointPaths.rst | 13 ++++--- doc/max_flow/pgr_edmondsKarp.rst | 13 ++++--- doc/max_flow/pgr_maxCardinalityMatch.rst | 3 ++ doc/max_flow/pgr_maxFlow.rst | 13 ++++--- doc/max_flow/pgr_maxFlowMinCost.rst | 13 ++++--- doc/max_flow/pgr_maxFlowMinCost_Cost.rst | 14 +++++--- doc/max_flow/pgr_pushRelabel.rst | 13 ++++--- doc/metrics/metrics-family.rst | 1 + doc/metrics/pgr_betweennessCentrality.rst | 3 ++ doc/mincut/pgr_stoerWagner.rst | 7 ++-- doc/ordering/CMakeLists.txt | 1 + doc/ordering/ordering-family.rst | 4 +++ doc/ordering/pgr_cuthillMckeeOrdering.rst | 3 ++ .../pgr_topologicalSort.rst | 6 ++-- doc/pickDeliver/CMakeLists.txt | 2 +- doc/pickDeliver/pgr_pickDeliver.rst | 6 ++-- doc/pickDeliver/pgr_pickDeliverEuclidean.rst | 8 ++--- .../pgr_vrpOneDepot.rst | 3 ++ doc/planar/pgr_isPlanar.rst | 6 ++-- doc/spanningTree/CMakeLists.txt | 1 - doc/spanningTree/kruskal-family.rst | 3 ++ doc/spanningTree/pgr_kruskal.rst | 7 ++-- doc/spanningTree/pgr_kruskalBFS.rst | 9 +++-- doc/spanningTree/pgr_kruskalDD.rst | 10 ++++-- doc/spanningTree/pgr_kruskalDFS.rst | 9 +++-- doc/spanningTree/pgr_prim.rst | 7 ++-- doc/spanningTree/pgr_primBFS.rst | 9 +++-- doc/spanningTree/pgr_primDD.rst | 9 +++-- doc/spanningTree/pgr_primDFS.rst | 9 +++-- doc/spanningTree/prim-family.rst | 3 ++ doc/src/CMakeLists.txt | 4 --- doc/src/experimental.rst | 32 ++++++++++++------ doc/src/proposed.rst | 2 +- doc/src/release_notes.rst | 2 +- doc/src/routingFunctions.rst | 9 +++-- doc/topologicalSort/CMakeLists.txt | 12 ------- doc/topology/pgr_analyzeGraph.rst | 3 ++ doc/topology/pgr_analyzeOneWay.rst | 3 ++ doc/topology/pgr_createTopology.rst | 3 ++ doc/topology/pgr_createVerticesTable.rst | 3 ++ doc/topology/pgr_degree.rst | 3 ++ doc/topology/pgr_extractVertices.rst | 6 ++-- doc/topology/pgr_nodeNetwork.rst | 3 ++ doc/topology/topology-functions.rst | 1 + .../pgr_transitiveClosure.rst | 6 ++-- doc/traversal/CMakeLists.txt | 8 ++--- doc/traversal/images/CMakeLists.txt | 2 ++ .../images/bfs-ascending.png | Bin .../images/bfs-descending.png | Bin .../pgr_binaryBreadthFirstSearch.rst | 14 +++++--- .../pgr_breadthFirstSearch.rst | 8 +++-- doc/traversal/pgr_depthFirstSearch.rst | 8 +++-- doc/traversal/traversal-family.rst | 1 + doc/trsp/TRSP-family.rst | 1 + doc/trsp/pgr_trsp.rst | 15 +++++--- doc/trsp/pgr_trspVia.rst | 7 +++- doc/trsp/pgr_trspVia_withPoints.rst | 8 ++++- doc/trsp/pgr_trsp_withPoints.rst | 16 ++++++--- doc/trsp/pgr_turnRestrictedPath.rst | 11 +++--- doc/tsp/TSP-family.rst | 1 + doc/tsp/pgr_TSP.rst | 3 ++ doc/tsp/pgr_TSPeuclidean.rst | 3 ++ doc/utilities/pgr_findCloseEdges.rst | 11 +++--- doc/version/pgr_full_version.rst | 6 ++-- doc/version/pgr_version.rst | 7 ++-- doc/version/reference.rst | 2 ++ doc/vrp_basic/CMakeLists.txt | 12 ------- doc/withPoints/pgr_withPoints.rst | 15 +++++--- doc/withPoints/pgr_withPointsCost.rst | 15 +++++--- doc/withPoints/pgr_withPointsCostMatrix.rst | 8 +++-- doc/withPoints/pgr_withPointsDD.rst | 9 +++-- doc/withPoints/pgr_withPointsKSP.rst | 18 +++++----- doc/withPoints/pgr_withPointsVia.rst | 7 +++- doc/withPoints/withPoints-family.rst | 1 + docqueries/breadthFirstSearch/CMakeLists.txt | 12 ------- docqueries/breadthFirstSearch/test.conf | 13 ------- docqueries/ordering/CMakeLists.txt | 3 +- docqueries/ordering/test.conf | 1 + .../topologicalSort.pg | 0 .../topologicalSort.result | 0 docqueries/pickDeliver/CMakeLists.txt | 1 + .../oneDepotWrapper.pg | 0 .../oneDepotWrapper.result | 0 .../solomon100-optimal.png | Bin docqueries/pickDeliver/test.conf | 2 ++ .../{vrp_basic => pickDeliver}/vrpOneDepot.pg | 0 .../vrpOneDepot.result | 0 docqueries/topologicalSort/CMakeLists.txt | 11 ------ docqueries/topologicalSort/test.conf | 12 ------- docqueries/traversal/CMakeLists.txt | 2 ++ .../binaryBreadthFirstSearch.pg | 0 .../binaryBreadthFirstSearch.result | 0 .../breadthFirstSearch.pg | 0 .../breadthFirstSearch.result | 0 docqueries/traversal/test.conf | 2 ++ docqueries/vrp_basic/CMakeLists.txt | 11 ------ docqueries/vrp_basic/test.conf | 12 ------- 159 files changed, 585 insertions(+), 405 deletions(-) delete mode 100644 doc/breadthFirstSearch/CMakeLists.txt delete mode 100644 doc/breadthFirstSearch/images/CMakeLists.txt rename doc/{traversal => categories}/BFS-category.rst (99%) create mode 100644 doc/categories/CMakeLists.txt rename doc/{traversal => categories}/DFS-category.rst (97%) rename doc/{ksp => categories}/KSP-category.rst (96%) rename doc/{pickDeliver => categories}/VRP-category.rst (99%) rename doc/{src => categories}/cost-category.rst (98%) rename doc/{src => categories}/costMatrix-category.rst (99%) rename doc/{driving_distance => categories}/drivingDistance-category.rst (99%) rename doc/{spanningTree => categories}/spanningTree-family.rst (98%) rename doc/{src => categories}/via-category.rst (99%) rename doc/{src => categories}/withPoints-category.rst (99%) rename doc/{topologicalSort => ordering}/pgr_topologicalSort.rst (98%) rename doc/{vrp_basic => pickDeliver}/pgr_vrpOneDepot.rst (93%) delete mode 100644 doc/topologicalSort/CMakeLists.txt rename doc/{breadthFirstSearch => traversal}/images/bfs-ascending.png (100%) rename doc/{breadthFirstSearch => traversal}/images/bfs-descending.png (100%) rename doc/{breadthFirstSearch => traversal}/pgr_binaryBreadthFirstSearch.rst (93%) rename doc/{breadthFirstSearch => traversal}/pgr_breadthFirstSearch.rst (94%) delete mode 100644 doc/vrp_basic/CMakeLists.txt delete mode 100644 docqueries/breadthFirstSearch/CMakeLists.txt delete mode 100644 docqueries/breadthFirstSearch/test.conf rename docqueries/{topologicalSort => ordering}/topologicalSort.pg (100%) rename docqueries/{topologicalSort => ordering}/topologicalSort.result (100%) rename docqueries/{vrp_basic => pickDeliver}/oneDepotWrapper.pg (100%) rename docqueries/{vrp_basic => pickDeliver}/oneDepotWrapper.result (100%) rename docqueries/{vrp_basic => pickDeliver}/solomon100-optimal.png (100%) rename docqueries/{vrp_basic => pickDeliver}/vrpOneDepot.pg (100%) rename docqueries/{vrp_basic => pickDeliver}/vrpOneDepot.result (100%) delete mode 100644 docqueries/topologicalSort/CMakeLists.txt delete mode 100644 docqueries/topologicalSort/test.conf rename docqueries/{breadthFirstSearch => traversal}/binaryBreadthFirstSearch.pg (100%) rename docqueries/{breadthFirstSearch => traversal}/binaryBreadthFirstSearch.result (100%) rename docqueries/{breadthFirstSearch => traversal}/breadthFirstSearch.pg (100%) rename docqueries/{breadthFirstSearch => traversal}/breadthFirstSearch.result (100%) delete mode 100644 docqueries/vrp_basic/CMakeLists.txt delete mode 100644 docqueries/vrp_basic/test.conf diff --git a/NEWS.md b/NEWS.md index 600155a3ea..eb011a8cf9 100644 --- a/NEWS.md +++ b/NEWS.md @@ -287,7 +287,7 @@ Changes on the documentation to the following: **Issue fixes** * [#2565](https://github.com/pgRouting/pgrouting/issues/2565) - pgr_pgr_lengauerTarjanDominatorTree triggers an assertion + pgr_lengauerTarjanDominatorTree triggers an assertion **SQL enhancements** diff --git a/configuration.conf b/configuration.conf index 1f63c98998..9f0e2ff051 100644 --- a/configuration.conf +++ b/configuration.conf @@ -26,7 +26,7 @@ trsp | Y | Y | Y max_flow | Y | Y | Y contraction | Y | Y | Y pickDeliver | Y | Y | Y -vrp_basic | N | Y | Y +vrp_basic | N | Y | N withPoints | Y | Y | Y lineGraph | Y | Y | Y components | Y | Y | Y @@ -37,9 +37,9 @@ chinese | Y | Y | Y spanningTree | Y | Y | Y mincut | Y | Y | Y version | Y | Y | Y -topologicalSort | Y | Y | Y +topologicalSort | Y | Y | N transitiveClosure | Y | Y | Y -breadthFirstSearch | Y | Y | Y +breadthFirstSearch | Y | Y | N traversal | Y | Y | Y coloring | Y | Y | Y planar | Y | Y | Y @@ -47,6 +47,8 @@ dominator | Y | Y | Y ordering | Y | Y | Y circuits | Y | Y | Y metrics | Y | Y | Y +categories | N | N | Y + #---------------------- # SQL only directories #---------------------- diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index d32b651da9..75e79524e2 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -215,7 +215,9 @@ message(STATUS "PGR_DOCUMENTATION_BUILD_DIR = ${PGR_DOCUMENTATION_BUILD_DIR}") #--------------------------------------------- foreach (subdir ${PROJECT_DOC_DIRECTORIES} "src") add_subdirectory("${subdir}") - add_subdirectory("../docqueries/${subdir}" "build/doc/${subdir}") + if (EXISTS "../docqueries/${subdir}") + add_subdirectory("../docqueries/${subdir}" "build/doc/${subdir}") + endif() endforeach() add_subdirectory("images") diff --git a/doc/allpairs/allpairs-family.rst b/doc/allpairs/allpairs-family.rst index f467feac2f..db94d58001 100644 --- a/doc/allpairs/allpairs-family.rst +++ b/doc/allpairs/allpairs-family.rst @@ -10,6 +10,7 @@ | +.. index:: All Pairs Family All Pairs - Family of Functions =============================================================================== diff --git a/doc/allpairs/pgr_floydWarshall.rst b/doc/allpairs/pgr_floydWarshall.rst index d0e5b687fa..bcdd839010 100644 --- a/doc/allpairs/pgr_floydWarshall.rst +++ b/doc/allpairs/pgr_floydWarshall.rst @@ -9,6 +9,9 @@ | +.. index:: + single: All Pairs Family ; pgr_floydWarshall + single: floydWarshall ``pgr_floydWarshall`` =============================================================================== diff --git a/doc/allpairs/pgr_johnson.rst b/doc/allpairs/pgr_johnson.rst index 69102e68fb..e0930fa806 100644 --- a/doc/allpairs/pgr_johnson.rst +++ b/doc/allpairs/pgr_johnson.rst @@ -9,6 +9,9 @@ | +.. index:: + single: All Pairs Family ; pgr_johnson + single: johnson ``pgr_johnson`` =============================================================================== diff --git a/doc/alpha_shape/pgr_alphaShape.rst b/doc/alpha_shape/pgr_alphaShape.rst index 81abc58200..d93dba3b72 100644 --- a/doc/alpha_shape/pgr_alphaShape.rst +++ b/doc/alpha_shape/pgr_alphaShape.rst @@ -10,6 +10,9 @@ | +.. index:: + single: alphaShape + ``pgr_alphaShape`` =============================================================================== @@ -61,9 +64,6 @@ Signatures ------------------------------------------------------------------------------- .. rubric:: Summary -.. index:: - single: alphaShape - .. admonition:: \ \ :class: signatures diff --git a/doc/astar/aStar-family.rst b/doc/astar/aStar-family.rst index 168bddb105..5e8995af1b 100644 --- a/doc/astar/aStar-family.rst +++ b/doc/astar/aStar-family.rst @@ -9,6 +9,7 @@ | +.. index:: single: aStar Family A* - Family of functions =============================================================================== diff --git a/doc/astar/pgr_aStar.rst b/doc/astar/pgr_aStar.rst index 95f268e276..1f55f98696 100644 --- a/doc/astar/pgr_aStar.rst +++ b/doc/astar/pgr_aStar.rst @@ -9,6 +9,9 @@ | +.. index:: + single: aStar Family ; pgr_aStar + single: aStar ``pgr_aStar`` =============================================================================== @@ -96,7 +99,7 @@ Signatures Optional parameters are `named parameters` and have a default value. .. index:: - single: aStar(One to One) + single: aStar ; One to One One to One ............................................................................... @@ -118,7 +121,7 @@ One to One :end-before: -- q3 .. index:: - single: astar(One to Many) + single: aStar ; One to Many One to Many ............................................................................... @@ -140,7 +143,7 @@ One to Many :end-before: -- q4 .. index:: - single: aStar(Many to One) + single: aStar ; Many to One Many to One ............................................................................... @@ -162,7 +165,7 @@ Many to One :end-before: -- q5 .. index:: - single: aStar(Many to Many) + single: aStar ; Many to Many Many to Many ............................................................................... @@ -184,7 +187,7 @@ Many to Many :end-before: -- q51 .. index:: - single: aStarCost(Combinations) - Proposed on v3.2 + single: aStar ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/astar/pgr_aStarCost.rst b/doc/astar/pgr_aStarCost.rst index e25866d385..d17283688d 100644 --- a/doc/astar/pgr_aStarCost.rst +++ b/doc/astar/pgr_aStarCost.rst @@ -10,6 +10,10 @@ | +.. index:: + single: aStar Family ; pgr_aStarCost + single: aStarCost + pgr_aStarCost =============================================================================== @@ -82,7 +86,7 @@ Signatures | OR EMPTY SET .. index:: - single: aStarCost(One to One) + single: aStarCost ; One to One One to One ............................................................................... @@ -104,7 +108,7 @@ One to One :end-before: -- q3 .. index:: - single: aStarCost(One to Many) + single: aStarCost ; One to Many One to Many ............................................................................... @@ -126,7 +130,7 @@ One to Many :end-before: -- q4 .. index:: - single: aStarCost(Many to One) + single: aStarCost ; Many to One Many to One ............................................................................... @@ -148,7 +152,7 @@ Many to One :end-before: -- q5 .. index:: - single: aStarCost(Many to Many) + single: aStarCost ; Many to Many Many to Many ............................................................................... @@ -170,7 +174,7 @@ Many to Many :end-before: -- q51 .. index:: - single: aStarCost(Combinations) - Proposed on v3.2 + single: aStarCost ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/astar/pgr_aStarCostMatrix.rst b/doc/astar/pgr_aStarCostMatrix.rst index 7f0320e57d..372e6bcf2a 100644 --- a/doc/astar/pgr_aStarCostMatrix.rst +++ b/doc/astar/pgr_aStarCostMatrix.rst @@ -10,6 +10,10 @@ | +.. index:: + single: aStar Family ; pgr_aStarCostMatrix + single: aStarCostMatrix + ``pgr_aStarCostMatrix`` =============================================================================== @@ -52,9 +56,6 @@ Description * When the graph is **undirected** the cost matrix is symmetric -.. index:: - single: aStarCostMatrix - Signatures ------------------------------------------------------------------------------- diff --git a/doc/bdAstar/bdAstar-family.rst b/doc/bdAstar/bdAstar-family.rst index d36f1c2eef..3950922c64 100644 --- a/doc/bdAstar/bdAstar-family.rst +++ b/doc/bdAstar/bdAstar-family.rst @@ -9,6 +9,7 @@ | +.. index:: Bidirectional A* Family Bidirectional A* - Family of functions =============================================================================== diff --git a/doc/bdAstar/pgr_bdAstar.rst b/doc/bdAstar/pgr_bdAstar.rst index 5ef6b9a46c..cae4c6e80b 100644 --- a/doc/bdAstar/pgr_bdAstar.rst +++ b/doc/bdAstar/pgr_bdAstar.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Bidirectional A* Family ; pgr_bdAstar + single: bdAstar ``pgr_bdAstar`` =============================================================================== @@ -94,7 +97,7 @@ Signatures Optional parameters are `named parameters` and have a default value. .. index:: - single: bdAstar(One to One) + single: bdAstar ; One to One One to One ............................................................................... @@ -116,7 +119,7 @@ One to One :end-before: -- q3 .. index:: - single: bdAstar(One to Many) + single: bdAstar ; One to Many One to Many ............................................................................... @@ -138,7 +141,7 @@ One to Many :end-before: -- q4 .. index:: - single: bdAstar(Many to One) + single: bdAstar ; Many to One Many to One ............................................................................... @@ -160,7 +163,7 @@ Many to One :end-before: -- q5 .. index:: - single: bdAstar(Many to Many) + single: bdAstar ; Many to Many Many to Many ............................................................................... @@ -182,7 +185,7 @@ Many to Many :end-before: -- q51 .. index:: - single: bdAstar(Combinations) - Proposed on v3.2 + single: bdAstar ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/bdAstar/pgr_bdAstarCost.rst b/doc/bdAstar/pgr_bdAstarCost.rst index 0a1fe77cb5..3cf03800f6 100644 --- a/doc/bdAstar/pgr_bdAstarCost.rst +++ b/doc/bdAstar/pgr_bdAstarCost.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Bidirectional A* Family ; pgr_bdAstarCost + single: bdAstarCost pgr_bdAstarCost =============================================================================== @@ -83,7 +86,7 @@ Signatures | OR EMPTY SET .. index:: - single: bdAstarCost(One to One) + single: bdAstarCost ; One to One One to One ............................................................................... @@ -105,7 +108,7 @@ One to One :end-before: -- q3 .. index:: - single: bdAstarCost(One to Many) + single: bdAstarCost ; One to Many One to Many ............................................................................... @@ -127,7 +130,7 @@ One to Many :end-before: -- q4 .. index:: - single: bdAstarCost(Many to One) + single: bdAstarCost ; Many to One Many to One ............................................................................... @@ -149,7 +152,7 @@ Many to One :end-before: -- q5 .. index:: - single: bdAstarCost(Many to Many) + single: bdAstarCost ; Many to Many Many to Many ............................................................................... @@ -171,7 +174,7 @@ Many to Many :end-before: -- q51 .. index:: - single: bdAstarCost(Combinations) - Proposed on v3.2 + single: bdAstarCost ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/bdAstar/pgr_bdAstarCostMatrix.rst b/doc/bdAstar/pgr_bdAstarCostMatrix.rst index 6f97f58127..42d0258c6f 100644 --- a/doc/bdAstar/pgr_bdAstarCostMatrix.rst +++ b/doc/bdAstar/pgr_bdAstarCostMatrix.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Bidirectional A* Family ; pgr_bdAstarCostMatrix + single: bdAstarCostMatrix ``pgr_bdAstarCostMatrix`` =============================================================================== @@ -52,9 +55,6 @@ Description * When the graph is **undirected** the cost matrix is symmetric -.. index:: - single: bdAstarCostMatrix - Signatures ------------------------------------------------------------------------------- diff --git a/doc/bdDijkstra/bdDijkstra-family.rst b/doc/bdDijkstra/bdDijkstra-family.rst index a1c2cb0c31..9fa6e4727a 100644 --- a/doc/bdDijkstra/bdDijkstra-family.rst +++ b/doc/bdDijkstra/bdDijkstra-family.rst @@ -9,8 +9,8 @@ | -.. rubric:: Previous versions of this page +.. index:: Bidirectional Dijkstra Family Bidirectional Dijkstra - Family of functions =============================================================================== diff --git a/doc/bdDijkstra/pgr_bdDijkstra.rst b/doc/bdDijkstra/pgr_bdDijkstra.rst index da46ca8c1a..1bb422f7fe 100644 --- a/doc/bdDijkstra/pgr_bdDijkstra.rst +++ b/doc/bdDijkstra/pgr_bdDijkstra.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Bidirectional Dijkstra Family ; pgr_bdDijkstra + single: bdDijkstra ``pgr_bdDijkstra`` =============================================================================== @@ -79,7 +82,7 @@ Signatures | OR EMPTY SET .. index:: - single: bdDijkstra(One to One) + single: bdDijkstra ; One to One One to One ............................................................................... @@ -99,7 +102,7 @@ One to One :end-before: -- q3 .. index:: - single: bdDijkstra(One to Many) + single: bdDijkstra ; One to Many One to Many ............................................................................... @@ -120,7 +123,7 @@ One to Many :end-before: -- q4 .. index:: - single: bdDijkstra(Many to One) + single: bdDijkstra ; Many to One Many to One ............................................................................... @@ -141,7 +144,7 @@ Many to One :end-before: -- q5 .. index:: - single: bdDijkstra(Many to Many) + single: bdDijkstra ; Many to Many Many to Many ............................................................................... @@ -162,7 +165,7 @@ Many to Many :end-before: -- q51 .. index:: - single: bdDijkstra(Combinations) - Proposed on v3.2 + single: bdDijkstra ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/bdDijkstra/pgr_bdDijkstraCost.rst b/doc/bdDijkstra/pgr_bdDijkstraCost.rst index 69cd2e453d..876368e95a 100644 --- a/doc/bdDijkstra/pgr_bdDijkstraCost.rst +++ b/doc/bdDijkstra/pgr_bdDijkstraCost.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Bidirectional Dijkstra Family ; pgr_bdDijkstraCost + single: bdDijkstraCost ``pgr_bdDijkstraCost`` =============================================================================== @@ -70,7 +73,7 @@ Signatures | OR EMPTY SET .. index:: - single: bdDijkstraCost(One to One) + single: bdDijkstraCost ; One to One One to One ............................................................................... @@ -90,7 +93,7 @@ One to One :end-before: -- q3 .. index:: - single: bdDijkstraCost(One to Many) + single: bdDijkstraCost ; One to Many One to Many ............................................................................... @@ -111,7 +114,7 @@ One to Many :end-before: -- q4 .. index:: - single: bdDijkstraCost(Many to One) + single: bdDijkstraCost ; Many to One Many to One ............................................................................... @@ -132,7 +135,7 @@ Many to One :end-before: -- q5 .. index:: - single: bdDijkstraCost(Many to Many) + single: bdDijkstraCost ; Many to Many Many to Many ............................................................................... @@ -153,7 +156,7 @@ Many to Many :end-before: -- q51 .. index:: - single: bdDijkstraCost(Combinations) - Proposed on v3.2 + single: bdDijkstraCost ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst b/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst index cebff3a600..2eed0d4256 100644 --- a/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst +++ b/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Bidirectional Dijkstra Family ; pgr_bdDijkstraCostMatrix + single: bdDijkstraCostMatrix ``pgr_bdDijkstraCostMatrix`` =============================================================================== @@ -45,9 +48,6 @@ Using bidirectional Dijkstra algorithm, calculate and return a cost matrix. :start-after: costMatrix_details_start :end-before: costMatrix_details_end -.. index:: - single: bdDijkstraCostMatrix - Signatures ------------------------------------------------------------------------------- diff --git a/doc/bellman_ford/pgr_bellmanFord.rst b/doc/bellman_ford/pgr_bellmanFord.rst index b0292322d7..ce21eb94a0 100644 --- a/doc/bellman_ford/pgr_bellmanFord.rst +++ b/doc/bellman_ford/pgr_bellmanFord.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Shortest Path Category; pgr_bellmanFord + single: bellmanFord ``pgr_bellmanFord - Experimental`` =============================================================================== @@ -97,7 +100,7 @@ Signatures | OR EMPTY SET .. index:: - single: bellman_ford(One to One) - Experimental on v3.0 + single: bellmanFord ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -117,7 +120,7 @@ One to One :end-before: -- q3 .. index:: - single: bellmanFord(One to Many) - Experimental on v3.0 + single: bellmanFord ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -138,7 +141,7 @@ One to Many :end-before: -- q4 .. index:: - single: bellman_ford(Many to One) - Experimental on v3.0 + single: bellmanFord ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -159,7 +162,7 @@ Many to One :end-before: -- q5 .. index:: - single: bellmanFord(Many to Many) - Experimental on v3.0 + single: bellmanFord ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -180,7 +183,7 @@ Many to Many :end-before: -- q51 .. index:: - single: bellmanFord(Combinations) - Experimental on v3.2 + single: bellmanFord ; Combinations - Experimental on v3.2 Combinations ............................................................................... diff --git a/doc/bellman_ford/pgr_edwardMoore.rst b/doc/bellman_ford/pgr_edwardMoore.rst index e4a2c93ecc..58ecf4fdd1 100644 --- a/doc/bellman_ford/pgr_edwardMoore.rst +++ b/doc/bellman_ford/pgr_edwardMoore.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Shortest Path Category; pgr_edwardMoore + single: edwardMoore ``pgr_edwardMoore - Experimental`` =============================================================================== @@ -99,7 +102,7 @@ Signatures | OR EMPTY SET .. index:: - single: edwardMoore(One to One) - Experimental on v3.0 + single: edwardMoore ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -119,7 +122,7 @@ One to One :end-before: -- q3 .. index:: - single: edwardMoore(One to Many) - Experimental on v3.0 + single: edwardMoore ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -140,7 +143,7 @@ One to Many :end-before: -- q4 .. index:: - single: edwardMoore(Many to One) - Experimental on v3.0 + single: edwardMoore ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -161,7 +164,7 @@ Many to One :end-before: -- q5 .. index:: - single: edwardMoore(Many to Many) - Experimental on v3.0 + single: edwardMoore ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -182,7 +185,7 @@ Many to Many :end-before: -- q51 .. index:: - single: edwardMoore(Combinations) - Experimental on v3.2 + single: edwardMoore ; Combinations - Experimental on v3.2 Combinations ............................................................................... diff --git a/doc/breadthFirstSearch/CMakeLists.txt b/doc/breadthFirstSearch/CMakeLists.txt deleted file mode 100644 index 7fe33f3ae4..0000000000 --- a/doc/breadthFirstSearch/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ - -SET(LOCAL_FILES - pgr_breadthFirstSearch.rst - pgr_binaryBreadthFirstSearch.rst - ) - -foreach (f ${LOCAL_FILES}) - configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}") - list(APPEND LOCAL_DOC_FILES ${PGR_DOCUMENTATION_SOURCE_DIR}/${f}) -endforeach() - -add_subdirectory("images") -set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE) diff --git a/doc/breadthFirstSearch/images/CMakeLists.txt b/doc/breadthFirstSearch/images/CMakeLists.txt deleted file mode 100644 index 20eae979ce..0000000000 --- a/doc/breadthFirstSearch/images/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -SET(LOCAL_FILES - bfs-descending.png - bfs-ascending.png - ) - -foreach (f ${LOCAL_FILES}) - configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}" COPYONLY) - list(APPEND LOCAL_IMG_FILES "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}") -endforeach() - -set(PROJECT_IMG_FILES ${PROJECT_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE) diff --git a/doc/traversal/BFS-category.rst b/doc/categories/BFS-category.rst similarity index 99% rename from doc/traversal/BFS-category.rst rename to doc/categories/BFS-category.rst index 7893747ec0..a4f2debfbd 100644 --- a/doc/traversal/BFS-category.rst +++ b/doc/categories/BFS-category.rst @@ -9,6 +9,7 @@ | +.. index:: BFS Category BFS - Category =============================================================================== diff --git a/doc/categories/CMakeLists.txt b/doc/categories/CMakeLists.txt new file mode 100644 index 0000000000..bcbf8e2d21 --- /dev/null +++ b/doc/categories/CMakeLists.txt @@ -0,0 +1,21 @@ + +SET(LOCAL_FILES + BFS-category.rst + cost-category.rst + costMatrix-category.rst + DFS-category.rst + drivingDistance-category.rst + KSP-category.rst + spanningTree-family.rst + via-category.rst + VRP-category.rst + withPoints-category.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) +set(PROJECT_IMG_FILES ${PROJECT_IMG_FILES} PARENT_SCOPE) diff --git a/doc/traversal/DFS-category.rst b/doc/categories/DFS-category.rst similarity index 97% rename from doc/traversal/DFS-category.rst rename to doc/categories/DFS-category.rst index 0841b42f88..4432664d3e 100644 --- a/doc/traversal/DFS-category.rst +++ b/doc/categories/DFS-category.rst @@ -9,6 +9,7 @@ | +.. index:: Depth First Search Category DFS - Category =============================================================================== diff --git a/doc/ksp/KSP-category.rst b/doc/categories/KSP-category.rst similarity index 96% rename from doc/ksp/KSP-category.rst rename to doc/categories/KSP-category.rst index 2c282c94f5..d6a813cf4f 100644 --- a/doc/ksp/KSP-category.rst +++ b/doc/categories/KSP-category.rst @@ -9,6 +9,7 @@ | +.. index:: K Shortest Paths Category K shortest paths - Category =============================================================================== diff --git a/doc/pickDeliver/VRP-category.rst b/doc/categories/VRP-category.rst similarity index 99% rename from doc/pickDeliver/VRP-category.rst rename to doc/categories/VRP-category.rst index 34c656a69a..b86592677d 100644 --- a/doc/pickDeliver/VRP-category.rst +++ b/doc/categories/VRP-category.rst @@ -9,8 +9,9 @@ | +.. index:: Vehicle Routing Functions Category -Vehicle Routing Functions - Category (Experimental) +Vehicle Routing Functions - Category =============================================================================== .. include:: experimental.rst diff --git a/doc/src/cost-category.rst b/doc/categories/cost-category.rst similarity index 98% rename from doc/src/cost-category.rst rename to doc/categories/cost-category.rst index a45eb1d004..56da99a0e6 100644 --- a/doc/src/cost-category.rst +++ b/doc/categories/cost-category.rst @@ -11,6 +11,7 @@ +.. index:: Cost Category Cost - Category =============================================================================== diff --git a/doc/src/costMatrix-category.rst b/doc/categories/costMatrix-category.rst similarity index 99% rename from doc/src/costMatrix-category.rst rename to doc/categories/costMatrix-category.rst index 0b50a2615a..3650b16ee9 100644 --- a/doc/src/costMatrix-category.rst +++ b/doc/categories/costMatrix-category.rst @@ -9,6 +9,7 @@ | +.. index:: Cost Matrix Category Cost Matrix - Category =============================================================================== diff --git a/doc/driving_distance/drivingDistance-category.rst b/doc/categories/drivingDistance-category.rst similarity index 99% rename from doc/driving_distance/drivingDistance-category.rst rename to doc/categories/drivingDistance-category.rst index 440e6820ed..3cff77aef4 100644 --- a/doc/driving_distance/drivingDistance-category.rst +++ b/doc/categories/drivingDistance-category.rst @@ -9,6 +9,7 @@ | +.. index:: Driving Distance Category Driving Distance - Category =============================================================================== diff --git a/doc/spanningTree/spanningTree-family.rst b/doc/categories/spanningTree-family.rst similarity index 98% rename from doc/spanningTree/spanningTree-family.rst rename to doc/categories/spanningTree-family.rst index 60c45b5619..133a3160bd 100644 --- a/doc/spanningTree/spanningTree-family.rst +++ b/doc/categories/spanningTree-family.rst @@ -9,6 +9,7 @@ | +.. index:: Spanning Tree Category Spanning Tree - Category =============================================================================== diff --git a/doc/src/via-category.rst b/doc/categories/via-category.rst similarity index 99% rename from doc/src/via-category.rst rename to doc/categories/via-category.rst index a120c54a2c..62fafe8109 100644 --- a/doc/src/via-category.rst +++ b/doc/categories/via-category.rst @@ -9,6 +9,7 @@ | +.. index:: Via Category Via - Category =============================================================================== diff --git a/doc/src/withPoints-category.rst b/doc/categories/withPoints-category.rst similarity index 99% rename from doc/src/withPoints-category.rst rename to doc/categories/withPoints-category.rst index ef6ce9ef3e..f27ebc428c 100644 --- a/doc/src/withPoints-category.rst +++ b/doc/categories/withPoints-category.rst @@ -9,6 +9,7 @@ | +.. index:: With Points Category withPoints - Category =============================================================================== diff --git a/doc/circuits/pgr_hawickCircuits.rst b/doc/circuits/pgr_hawickCircuits.rst index dd207b95d3..ec364f2837 100644 --- a/doc/circuits/pgr_hawickCircuits.rst +++ b/doc/circuits/pgr_hawickCircuits.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Miscellaneous Algorithms ; pgr_hawickCircuits + single: Hawick Circuits - Experimental on v3.4 ``pgr_hawickCircuits - Experimental`` =============================================================================== @@ -71,9 +74,6 @@ Signatures | Returns set of |generic-result| | OR EMPTY SET -.. index:: - single: Hawick Circuits - Experimental on v3.4 - :Example: Circuits present in the pgRouting :doc:`sampledata` .. literalinclude:: hawickCircuits.queries diff --git a/doc/components/components-family.rst b/doc/components/components-family.rst index 62367530d7..8c64f637dd 100644 --- a/doc/components/components-family.rst +++ b/doc/components/components-family.rst @@ -9,6 +9,7 @@ | +.. index:: Components Family Components - Family of functions =============================================================================== diff --git a/doc/components/pgr_articulationPoints.rst b/doc/components/pgr_articulationPoints.rst index 8c1775231c..6eb9f27896 100644 --- a/doc/components/pgr_articulationPoints.rst +++ b/doc/components/pgr_articulationPoints.rst @@ -10,6 +10,9 @@ | +.. index:: + single: Components Family ; pgr_articulationPoints + single: articulationPoints ``pgr_articulationPoints`` =============================================================================== @@ -51,9 +54,6 @@ This implementation can only be used with an undirected graph. - Running time: :math:`O(V + E)` -.. index:: - single: articulationPoints - Signatures ------------------------------------------------------------------------------- diff --git a/doc/components/pgr_biconnectedComponents.rst b/doc/components/pgr_biconnectedComponents.rst index a4ed2df7b5..332a0bbb42 100644 --- a/doc/components/pgr_biconnectedComponents.rst +++ b/doc/components/pgr_biconnectedComponents.rst @@ -10,6 +10,9 @@ | +.. index:: + single: Components Family ; pgr_biconnectedComponents + single: biconnectedComponents ``pgr_biconnectedComponents`` =============================================================================== @@ -59,9 +62,6 @@ only be contained in a single biconnected component. - Running time: :math:`O(V + E)` -.. index:: - single: biconnectedComponents - Signatures ------------------------------------------------------------------------------- diff --git a/doc/components/pgr_bridges.rst b/doc/components/pgr_bridges.rst index 093d622487..c9529ea780 100644 --- a/doc/components/pgr_bridges.rst +++ b/doc/components/pgr_bridges.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Components Family ; pgr_bridges + single: bridges ``pgr_bridges`` =============================================================================== @@ -47,9 +50,6 @@ This implementation can only be used with an undirected graph. - Running time: :math:`O(E * (V + E))` -.. index:: - single: bridges - Signatures ------------------------------------------------------------------------------- diff --git a/doc/components/pgr_connectedComponents.rst b/doc/components/pgr_connectedComponents.rst index b29b99fdca..65f8ce74b5 100644 --- a/doc/components/pgr_connectedComponents.rst +++ b/doc/components/pgr_connectedComponents.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Components Family ; pgr_connectedComponents + single: connectedComponents pgr_connectedComponents =============================================================================== diff --git a/doc/components/pgr_makeConnected.rst b/doc/components/pgr_makeConnected.rst index 47f38dee98..018407bc26 100644 --- a/doc/components/pgr_makeConnected.rst +++ b/doc/components/pgr_makeConnected.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Components Family ; pgr_makeConnected + single: makeConnected - Experimental on v3.2 ``pgr_makeConnected`` - Experimental =============================================================================== @@ -52,10 +55,6 @@ The main characteristics are: - The algorithm does not considers geometric topology in the calculations. - Running time: :math:`O(V + E)` - -.. index:: - single: makeConnected - Experimental on v3.2 - Signatures ------------------------------------------------------------------------------- diff --git a/doc/components/pgr_strongComponents.rst b/doc/components/pgr_strongComponents.rst index d39b94ccf9..a6a571d533 100644 --- a/doc/components/pgr_strongComponents.rst +++ b/doc/components/pgr_strongComponents.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Components Family ; pgr_strongComponents + single: strongComponents ``pgr_strongComponents`` =============================================================================== @@ -54,9 +57,6 @@ all reachable from each other. - Running time: :math:`O(V + E)` -.. index:: - single: strongComponents - Signatures ------------------------------------------------------------------------------- diff --git a/doc/contraction/contraction-family.rst b/doc/contraction/contraction-family.rst index 87a9c127cd..aede7e9270 100644 --- a/doc/contraction/contraction-family.rst +++ b/doc/contraction/contraction-family.rst @@ -10,6 +10,7 @@ | +.. index:: Contraction Family Contraction - Family of functions =============================================================================== diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index 7505cfe6be..5a0796d565 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -10,6 +10,7 @@ | +.. index:: Contraction Family ; pgr_contraction ``pgr_contraction`` =============================================================================== diff --git a/doc/dagShortestPath/pgr_dagShortestPath.rst b/doc/dagShortestPath/pgr_dagShortestPath.rst index c7a118b2f3..316e5a7a4b 100644 --- a/doc/dagShortestPath/pgr_dagShortestPath.rst +++ b/doc/dagShortestPath/pgr_dagShortestPath.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Shortest Path Category ; pgr_dagShortestPath + single: Directed Acyclic Graph Category ; pgr_dagShortestPath + single: dagShortestPath pgr_dagShortestPath - Experimental =============================================================================== @@ -98,7 +102,7 @@ Signatures .. index:: - single: dagShortestPath(One to One) - Experimental on v3.0 + single: dagShortestPath ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -118,7 +122,7 @@ One to One :end-before: -- q3 .. index:: - single: dagShortestPath(One to Many) - Experimental on v3.0 + single: dagShortestPath ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -138,7 +142,7 @@ One to Many :end-before: -- q4 .. index:: - single: dagShortestPath(Many to One) - Experimental on v3.0 + single: dagShortestPath ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -158,7 +162,7 @@ Many to One :end-before: -- q5 .. index:: - single: dagShortestPath(Many to Many) - Experimental on v3.0 + single: dagShortestPath ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -179,7 +183,7 @@ Many to Many :end-before: -- q51 .. index:: - single: dagShortestPath(Combinations) - Experimental on v3.2 + single: dagShortestPath ; Combinations - Experimental on v3.2 Combinations ............................................................................... diff --git a/doc/dijkstra/dijkstra-family.rst b/doc/dijkstra/dijkstra-family.rst index f90c0a5eb5..e28fabb6c3 100644 --- a/doc/dijkstra/dijkstra-family.rst +++ b/doc/dijkstra/dijkstra-family.rst @@ -9,6 +9,7 @@ | +.. index:: Dijkstra Family Dijkstra - Family of functions =============================================================================== diff --git a/doc/dijkstra/pgr_dijkstra.rst b/doc/dijkstra/pgr_dijkstra.rst index a436670035..4a779f4dc7 100644 --- a/doc/dijkstra/pgr_dijkstra.rst +++ b/doc/dijkstra/pgr_dijkstra.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Dijkstra Family ; pgr_dijkstra + single: Shortest Path Category ; pgr_dijkstra + single: dijkstra ``pgr_dijkstra`` =============================================================================== @@ -93,7 +97,7 @@ Signatures the new result columns. .. index:: - single: dijkstra(One to One) + single: dijkstra ; One to One One to One ............................................................................... @@ -113,7 +117,7 @@ One to One :end-before: -- q3 .. index:: - single: dijkstra(One to Many) + single: dijkstra ; One to Many One to Many ............................................................................... @@ -133,7 +137,7 @@ One to Many :end-before: -- q4 .. index:: - single: dijkstra(Many to One) + single: dijkstra ; Many to One Many to One ............................................................................... @@ -154,7 +158,7 @@ Many to One :end-before: -- q5 .. index:: - single: dijkstra(Many to Many) + single: dijkstra ; Many to Many Many to Many ............................................................................... @@ -175,7 +179,7 @@ Many to Many :end-before: -- q51 .. index:: - single: dijkstra(Combinations) - Proposed on v3.1 + single: dijkstra ; Combinations - Proposed on v3.1 Combinations ............................................................................... diff --git a/doc/dijkstra/pgr_dijkstraCost.rst b/doc/dijkstra/pgr_dijkstraCost.rst index 96265e27f9..6349623362 100644 --- a/doc/dijkstra/pgr_dijkstraCost.rst +++ b/doc/dijkstra/pgr_dijkstraCost.rst @@ -10,6 +10,10 @@ | +.. index:: + single: Dijkstra Family ; pgr_dijkstraCost + single: Cost Category ; pgr_dijkstraCost + single: dijkstraCost ``pgr_dijkstraCost`` =============================================================================== @@ -71,7 +75,7 @@ Signatures | OR EMPTY SET .. index:: - single: dijkstraCost(One to One) + single: dijkstraCost ; One to One One to One ............................................................................... @@ -91,7 +95,7 @@ One to One :end-before: -- q3 .. index:: - single: dijkstraCost(One to Many) + single: dijkstraCost ; One to Many One to Many ............................................................................... @@ -112,7 +116,7 @@ One to Many :end-before: -- q4 .. index:: - single: dijkstraCost(Many to One) + single: dijkstraCost ; Many to One Many to One ............................................................................... @@ -133,7 +137,7 @@ Many to One :end-before: -- q5 .. index:: - single: dijkstraCost(Many to Many) + single: dijkstraCost ; Many to Many Many to Many ............................................................................... @@ -154,7 +158,7 @@ Many to Many :end-before: -- q51 .. index:: - single: dijkstraCost(Combinations) - Proposed on v3.1 + single: dijkstraCost ; Combinations - Proposed on v3.1 Combinations ............................................................................... diff --git a/doc/dijkstra/pgr_dijkstraCostMatrix.rst b/doc/dijkstra/pgr_dijkstraCostMatrix.rst index 3ad97f1f70..1161320d14 100644 --- a/doc/dijkstra/pgr_dijkstraCostMatrix.rst +++ b/doc/dijkstra/pgr_dijkstraCostMatrix.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Dijkstra Family ; pgr_dijkstraCostMatrix + single: Cost Matrix Category ; pgr_dijkstraCostMatrix + single: dijkstraCostMatrix ``pgr_dijkstraCostMatrix`` =============================================================================== @@ -43,9 +47,6 @@ Using Dijkstra algorithm, calculate and return a cost matrix. :start-after: costMatrix_details_start :end-before: costMatrix_details_end -.. index:: - single: dijkstraCostMatrix - Signatures ------------------------------------------------------------------------------- diff --git a/doc/dijkstra/pgr_dijkstraNear.rst b/doc/dijkstra/pgr_dijkstraNear.rst index f1989f7412..5378822b05 100644 --- a/doc/dijkstra/pgr_dijkstraNear.rst +++ b/doc/dijkstra/pgr_dijkstraNear.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Dijkstra Family ; pgr_dijkstraNear + single: Near Category ; pgr_dijkstraNear + single: dijkstraNear ``pgr_dijkstraNear`` - Proposed =============================================================================== @@ -93,7 +97,7 @@ Signatures | OR EMPTY SET .. index:: - single: dijkstraNear(One to Many) - Proposed on v3.3 + single: dijkstraNear ; One to Many - Proposed on v3.3 One to Many ............................................................................... @@ -126,7 +130,7 @@ One to Many The result shows that station at vertex :math:`11` is the nearest. .. index:: - single: dijkstraNear(Many to One) - Proposed on v3.3 + single: dijkstraNear ; Many to One - Proposed on v3.3 Many to One ............................................................................... @@ -157,7 +161,7 @@ The result shows that station at vertex :math:`10` is the nearest and the next best is :math:`11`. .. index:: - single: dijkstraNear(Many to Many) - Proposed on v3.3 + single: dijkstraNear ; Many to Many - Proposed on v3.3 Many to Many ............................................................................... @@ -193,7 +197,7 @@ the first subway line and at vertex :math:`10` of the second subway line. Only `one` route is returned because `global` is ``true`` and `cap` is ``1`` .. index:: - single: dijkstraNear(Combinations) - Proposed on v3.3 + single: dijkstraNear ; Combinations - Proposed on v3.3 Combinations ............................................................................... diff --git a/doc/dijkstra/pgr_dijkstraNearCost.rst b/doc/dijkstra/pgr_dijkstraNearCost.rst index 4327b8d4f7..f0d245ec53 100644 --- a/doc/dijkstra/pgr_dijkstraNearCost.rst +++ b/doc/dijkstra/pgr_dijkstraNearCost.rst @@ -10,6 +10,12 @@ | +.. index:: + single: Dijkstra Family ; pgr_dijkstraNearCost + single: Near Category ; pgr_dijkstraNearCost + single: Cost Category ; pgr_dijkstraNearCost + single: dijkstraNearCost + ``pgr_dijkstraNearCost`` - Proposed =============================================================================== @@ -68,7 +74,7 @@ Signatures | OR EMPTY SET .. index:: - single: dijkstraNearCost(One to Many) - Proposed on v3.3 + single: dijkstraNearCost ; One to Many - Proposed on v3.3 One to Many ............................................................................... @@ -101,7 +107,7 @@ One to Many The result shows that station at vertex :math:`11` is the nearest. .. index:: - single: dijkstraNearCost(Many to One) - Proposed on v3.3 + single: dijkstraNearCost ; Many to One - Proposed on v3.3 Many to One ............................................................................... @@ -132,7 +138,7 @@ The result shows that station at vertex :math:`10` is the nearest and the next best is :math:`11`. .. index:: - single: dijkstraNearCost(Many to Many) - Proposed on v3.3 + single: dijkstraNearCost ; Many to Many - Proposed on v3.3 Many to Many ............................................................................... @@ -168,7 +174,7 @@ the first subway line and at vertex :math:`10` of the second subway line. Only `one` route is returned because `global` is ``true`` and `cap` is ``1`` .. index:: - single: dijkstraNearCost(Combinations) - Proposed on v3.3 + single: dijkstraNearCost ; Combinations - Proposed on v3.3 Combinations ............................................................................... diff --git a/doc/dijkstra/pgr_dijkstraVia.rst b/doc/dijkstra/pgr_dijkstraVia.rst index 9a6b0f00e2..6a3809bce1 100644 --- a/doc/dijkstra/pgr_dijkstraVia.rst +++ b/doc/dijkstra/pgr_dijkstraVia.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Dijkstra Family ; pgr_dijkstraVia + single: Via Category ; pgr_dijkstraVia + single: dijkstraVia ``pgr_dijkstraVia`` - Proposed =============================================================================== diff --git a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst index cbdd2049ca..2c1fe650ad 100644 --- a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst +++ b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Miscellaneous Algorithms ; pgr_lengauerTarjanDominatorTree + single: lengauerTarjanDominatorTree - Experimental on v3.2 + pgr_lengauerTarjanDominatorTree -Experimental =============================================================================== @@ -60,9 +64,6 @@ Signatures | OR EMPTY SET -.. index:: - single: lengauerTarjanDominatorTree - Experimental on v3.2 - :Example: The dominator tree with root vertex :math:`5` diff --git a/doc/driving_distance/CMakeLists.txt b/doc/driving_distance/CMakeLists.txt index 21952a669a..26b87d7797 100644 --- a/doc/driving_distance/CMakeLists.txt +++ b/doc/driving_distance/CMakeLists.txt @@ -1,6 +1,5 @@ SET(LOCAL_FILES - drivingDistance-category.rst pgr_drivingDistance.rst ) diff --git a/doc/driving_distance/pgr_drivingDistance.rst b/doc/driving_distance/pgr_drivingDistance.rst index e8ca25e24f..bb0ddf9677 100644 --- a/doc/driving_distance/pgr_drivingDistance.rst +++ b/doc/driving_distance/pgr_drivingDistance.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Driving Distance Category ; pgr_drivingDistance + single: drivingDistance ``pgr_drivingDistance`` =============================================================================== @@ -65,7 +68,7 @@ Signatures | Returns set of |result-spantree| .. index:: - single: drivingDistance(Single vertex) + single: drivingDistance ; Single vertex Single Vertex ............................................................................... @@ -84,7 +87,7 @@ Single Vertex :end-before: --q6 .. index:: - single: drivingDistance(Multiple vertices) + single: drivingDistance ; Multiple vertices Multiple Vertices ............................................................................... diff --git a/doc/ksp/CMakeLists.txt b/doc/ksp/CMakeLists.txt index e1c7150a2a..8e15236a2d 100644 --- a/doc/ksp/CMakeLists.txt +++ b/doc/ksp/CMakeLists.txt @@ -1,6 +1,5 @@ SET(LOCAL_FILES - KSP-category.rst pgr_KSP.rst ) diff --git a/doc/ksp/pgr_KSP.rst b/doc/ksp/pgr_KSP.rst index e0d7dd5f3f..86df4b4c47 100644 --- a/doc/ksp/pgr_KSP.rst +++ b/doc/ksp/pgr_KSP.rst @@ -9,6 +9,9 @@ | +.. index:: + single: K Shortest Paths Category ; pgr_KSP + single: KSP pgr_KSP =============================================================================== @@ -73,7 +76,7 @@ Signatures | OR EMPTY SET .. index:: - single: ksp(One to One) + single: KSP ; One to One One to One ............................................................................... @@ -94,7 +97,7 @@ One to One :end-before: --q2 .. index:: - single: ksp(One to Many) + single: KSP ; One to Many One to Many ............................................................................... @@ -115,7 +118,7 @@ One to Many :end-before: --q3 .. index:: - single: ksp(Many to One) + single: KSP ; Many to One Many to One ............................................................................... @@ -136,7 +139,7 @@ Many to One :end-before: --q4 .. index:: - single: ksp(Many to Many) + single: KSP ; Many to Many Many to Many ............................................................................... @@ -157,7 +160,7 @@ Many to Many :end-before: --q5 .. index:: - single: ksp(Combinations) + single: KSP ; Combinations Combinations ............................................................................... diff --git a/doc/lineGraph/pgr_lineGraph.rst b/doc/lineGraph/pgr_lineGraph.rst index 8d64d93e98..32267610b4 100644 --- a/doc/lineGraph/pgr_lineGraph.rst +++ b/doc/lineGraph/pgr_lineGraph.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Transformation Family ; pgr_lineGraph + single: lineGraph - Proposed on v3.7 pgr_lineGraph - Proposed =============================================================================== @@ -60,9 +63,6 @@ Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that: - The ``reverse_cost`` is always :math:`-1`. -.. index:: - single: lineGraph - Proposed on v3.7 - Signatures ------------------------------------------------------------------------------- diff --git a/doc/lineGraph/pgr_lineGraphFull.rst b/doc/lineGraph/pgr_lineGraphFull.rst index aecceeb83f..8d55084164 100644 --- a/doc/lineGraph/pgr_lineGraphFull.rst +++ b/doc/lineGraph/pgr_lineGraphFull.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Transformation Family ; pgr_lineGraphFull + single: lineGraphFull - Experimental on v2.6 ``pgr_lineGraphFull`` - Experimental =============================================================================== @@ -54,9 +57,6 @@ The main characteristics are: - Results are undefined when a duplicated edge id is used in the input graph. - Running time: TBD -.. index:: - single: lineGraphFull - Experimental on v2.6 - Signatures ------------------------------------------------------------------------------- diff --git a/doc/lineGraph/transformation-family.rst b/doc/lineGraph/transformation-family.rst index 393329caca..eb271737b4 100644 --- a/doc/lineGraph/transformation-family.rst +++ b/doc/lineGraph/transformation-family.rst @@ -8,6 +8,7 @@ **************************************************************************** +.. index:: Transformation Family Transformation - Family of functions =============================================================================== diff --git a/doc/max_flow/flow-family.rst b/doc/max_flow/flow-family.rst index b2ce974d73..76b5b7ecfb 100644 --- a/doc/max_flow/flow-family.rst +++ b/doc/max_flow/flow-family.rst @@ -9,6 +9,7 @@ | +.. index:: Flow Family Flow - Family of functions =================================== diff --git a/doc/max_flow/pgr_boykovKolmogorov.rst b/doc/max_flow/pgr_boykovKolmogorov.rst index 99900409ab..f9cd70cc1d 100644 --- a/doc/max_flow/pgr_boykovKolmogorov.rst +++ b/doc/max_flow/pgr_boykovKolmogorov.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Flow Family ; pgr_boykovKolmogorov + single: boykovKolmogorov ``pgr_boykovKolmogorov`` =============================================================================== @@ -70,7 +73,7 @@ Signatures | OR EMPTY SET .. index:: - single: boykovKolmogorov(One to One) + single: boykovKolmogorov ; One to One One to One ............................................................................... @@ -90,7 +93,7 @@ One to One :end-before: -- q2 .. index:: - single: boykovKolmogorov(One to Many) + single: boykovKolmogorov ; One to Many One to Many ............................................................................... @@ -110,7 +113,7 @@ One to Many :end-before: -- q3 .. index:: - single: boykovKolmogorov(Many to One) + single: boykovKolmogorov ; Many to One Many to One ............................................................................... @@ -130,7 +133,7 @@ Many to One :end-before: -- q4 .. index:: - single: boykovKolmogorov(Many to Many) + single: boykovKolmogorov ; Many to Many Many to Many ............................................................................... @@ -150,7 +153,7 @@ Many to Many :end-before: -- q5 .. index:: - single: boykovKolmogorov(Combinations) - Proposed on v3.2 + single: boykovKolmogorov ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/max_flow/pgr_edgeDisjointPaths.rst b/doc/max_flow/pgr_edgeDisjointPaths.rst index 12e7ea1364..01d42ccc13 100644 --- a/doc/max_flow/pgr_edgeDisjointPaths.rst +++ b/doc/max_flow/pgr_edgeDisjointPaths.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Flow Family ; edgeDisjointPaths + single: edgeDisjointPaths ``pgr_edgeDisjointPaths`` =============================================================================== @@ -73,7 +76,7 @@ Signatures | OR EMPTY SET .. index:: - single: edgeDisjointPaths(One to One) + single: edgeDisjointPaths ; One to One One to One ............................................................................... @@ -93,7 +96,7 @@ One to One :end-before: -- q2 .. index:: - single: edgeDisjointPaths(One to Many) + single: edgeDisjointPaths ; One to Many One to Many ............................................................................... @@ -114,7 +117,7 @@ One to Many :end-before: -- q3 .. index:: - single: edgeDisjointPaths(Many to One) + single: edgeDisjointPaths ; Many to One Many to One ............................................................................... @@ -134,7 +137,7 @@ Many to One :end-before: -- q4 .. index:: - single: edgeDisjointPaths(Many to Many) + single: edgeDisjointPaths ; Many to Many Many to Many ............................................................................... @@ -154,7 +157,7 @@ Many to Many :end-before: -- q5 .. index:: - single: edgeDisjointPaths(Combinations) -- Proposed on v3.2 + single: edgeDisjointPaths ; Combinations -- Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/max_flow/pgr_edmondsKarp.rst b/doc/max_flow/pgr_edmondsKarp.rst index d6eb81f362..9b8e4e1b54 100644 --- a/doc/max_flow/pgr_edmondsKarp.rst +++ b/doc/max_flow/pgr_edmondsKarp.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Flow Family ; edmondsKarp + single: edmondsKarp ``pgr_edmondsKarp`` =============================================================================== @@ -70,7 +73,7 @@ Signatures | OR EMPTY SET .. index:: - single: edmondsKarp(One to One) + single: edmondsKarp ; One to One One to One ............................................................................... @@ -90,7 +93,7 @@ One to One :end-before: -- q2 .. index:: - single: edmondsKarp(One to Many) + single: edmondsKarp ; One to Many One to Many ............................................................................... @@ -110,7 +113,7 @@ One to Many :end-before: -- q3 .. index:: - single: edmondsKarp(Many to One) + single: edmondsKarp ; Many to One Many to One ............................................................................... @@ -130,7 +133,7 @@ Many to One :end-before: -- q4 .. index:: - single: edmondsKarp(Many to Many) + single: edmondsKarp ; Many to Many Many to Many ............................................................................... @@ -150,7 +153,7 @@ Many to Many :end-before: -- q5 .. index:: - single: edmondsKarp(Combinations) - Proposed on v3.2 + single: edmondsKarp ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/max_flow/pgr_maxCardinalityMatch.rst b/doc/max_flow/pgr_maxCardinalityMatch.rst index b27682342f..3aaf2a47f5 100644 --- a/doc/max_flow/pgr_maxCardinalityMatch.rst +++ b/doc/max_flow/pgr_maxCardinalityMatch.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Flow Family ; pgr_maxCardinalityMatch + single: maxCardinalityMatch pgr_maxCardinalityMatch =============================================================================== diff --git a/doc/max_flow/pgr_maxFlow.rst b/doc/max_flow/pgr_maxFlow.rst index 2428ff99fb..66a0d95849 100644 --- a/doc/max_flow/pgr_maxFlow.rst +++ b/doc/max_flow/pgr_maxFlow.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Flow Family ; pgr_maxFlow + single: maxFlow ``pgr_maxFlow`` =============================================================================== @@ -71,7 +74,7 @@ Signatures | RETURNS ``BIGINT`` .. index:: - single: maxFlow(One to One) + single: maxFlow ; One to One One to One ............................................................................... @@ -90,7 +93,7 @@ One to One :end-before: -- q2 .. index:: - single: maxFlow(One to Many) + single: maxFlow ; One to Many One to Many ............................................................................... @@ -109,7 +112,7 @@ One to Many :end-before: -- q3 .. index:: - single: maxFlow(Many to One) + single: maxFlow ; Many to One Many to One ............................................................................... @@ -128,7 +131,7 @@ Many to One :end-before: -- q4 .. index:: - single: maxFlow(Many to Many) + single: maxFlow ; Many to Many Many to Many ............................................................................... @@ -147,7 +150,7 @@ Many to Many :end-before: -- q5 .. index:: - single: maxFlow(Combinations) - Proposed on v3.2 + single: maxFlow ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/max_flow/pgr_maxFlowMinCost.rst b/doc/max_flow/pgr_maxFlowMinCost.rst index 031d016ac0..463b9082d6 100644 --- a/doc/max_flow/pgr_maxFlowMinCost.rst +++ b/doc/max_flow/pgr_maxFlowMinCost.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Flow Family ; pgr_maxFlowMinCost + single: maxFlowMinCost ``pgr_maxFlowMinCost`` - Experimental =============================================================================== @@ -75,7 +78,7 @@ Signatures | OR EMPTY SET .. index:: - single: maxFlowMinCost(One to One) - Experimental on v3.0 + single: maxFlowMinCost ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -95,7 +98,7 @@ One to One :end-before: -- q2 .. index:: - single: maxFlowMinCost(One to Many) - Experimental on v3.0 + single: maxFlowMinCost ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -115,7 +118,7 @@ One to Many :end-before: -- q3 .. index:: - single: maxFlowMinCost(Many to One) - Experimental on v3.0 + single: maxFlowMinCost ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -135,7 +138,7 @@ Many to One :end-before: -- q4 .. index:: - single: maxFlowMinCost(Many to Many) - Experimental on v3.0 + single: maxFlowMinCost ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -155,7 +158,7 @@ Many to Many :end-before: -- q5 .. index:: - single: maxFlowMinCost(Combinations) -- Experimental on v3.2 + single: maxFlowMinCost ; Combinations -- Experimental on v3.2 Combinations ............................................................................... diff --git a/doc/max_flow/pgr_maxFlowMinCost_Cost.rst b/doc/max_flow/pgr_maxFlowMinCost_Cost.rst index 7d39f4d45d..69c4dab525 100644 --- a/doc/max_flow/pgr_maxFlowMinCost_Cost.rst +++ b/doc/max_flow/pgr_maxFlowMinCost_Cost.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Flow Family ; pgr_maxFlowMinCost_Cost + single: Cost Category ; pgr_maxFlowMinCost_Cost + single: maxFlowMinCost_Cost ``pgr_maxFlowMinCost_Cost`` - Experimental =============================================================================== @@ -79,7 +83,7 @@ Signatures | RETURNS FLOAT .. index:: - single: maxFlowMinCost_Cost(One to One) - Experimental on v3.0 + single: maxFlowMinCost_Cost ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -98,7 +102,7 @@ One to One :end-before: -- q2 .. index:: - single: maxFlowMinCost_Cost(One to Many) - Experimental on v3.0 + single: maxFlowMinCost_Cost ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -117,7 +121,7 @@ One to Many :end-before: -- q4 .. index:: - single: maxFlowMinCost_Cost(Many to One) - Experimental on v3.0 + single: maxFlowMinCost_Cost ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -136,7 +140,7 @@ Many to One :end-before: -- q3 .. index:: - single: maxFlowMinCost_Cost(Many to Many) - Experimental on v3.0 + single: maxFlowMinCost_Cost ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -156,7 +160,7 @@ Many to Many :end-before: -- q5 .. index:: - single: maxFlowMinCost_Cost(Combinations) - Experimental on v3.2 + single: maxFlowMinCost_Cost ; Combinations - Experimental on v3.2 Combinations ............................................................................... diff --git a/doc/max_flow/pgr_pushRelabel.rst b/doc/max_flow/pgr_pushRelabel.rst index b1a8abc239..896d3424fe 100644 --- a/doc/max_flow/pgr_pushRelabel.rst +++ b/doc/max_flow/pgr_pushRelabel.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Flow Family ; pgr_pushRelabel + single: pushRelabel ``pgr_pushRelabel`` =============================================================================== @@ -70,7 +73,7 @@ Signatures | OR EMPTY SET .. index:: - single: pushRelabel(One to One) + single: pushRelabel ; One to One One to One ............................................................................... @@ -90,7 +93,7 @@ One to One :end-before: -- q2 .. index:: - single: pushRelabel(One to Many) + single: pushRelabel ; One to Many One to Many ............................................................................... @@ -110,7 +113,7 @@ One to Many :end-before: -- q3 .. index:: - single: pushRelabel(Many to One) + single: pushRelabel ; Many to One Many to One ............................................................................... @@ -130,7 +133,7 @@ Many to One :end-before: -- q4 .. index:: - single: pushRelabel(Many to Many) + single: pushRelabel ; Many to Many Many to Many ............................................................................... @@ -150,7 +153,7 @@ Many to Many :end-before: -- q5 .. index:: - single: pushRelabel(Combinations) - Proposed on v3.2 + single: pushRelabel ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/metrics/metrics-family.rst b/doc/metrics/metrics-family.rst index 66cacabdc6..7f543a63a6 100644 --- a/doc/metrics/metrics-family.rst +++ b/doc/metrics/metrics-family.rst @@ -10,6 +10,7 @@ | +.. index:: Metrics Family Metrics - Family of functions =============================================================================== diff --git a/doc/metrics/pgr_betweennessCentrality.rst b/doc/metrics/pgr_betweennessCentrality.rst index 5a92199a7d..92af7a5714 100644 --- a/doc/metrics/pgr_betweennessCentrality.rst +++ b/doc/metrics/pgr_betweennessCentrality.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Metrics Family ; pgr_betweennessCentrality + single: betweennessCentrality - Experimental on v3.7 ``pgr_betweennessCentrality`` =============================================================================== diff --git a/doc/mincut/pgr_stoerWagner.rst b/doc/mincut/pgr_stoerWagner.rst index a08d0630f3..c9a73e53f3 100644 --- a/doc/mincut/pgr_stoerWagner.rst +++ b/doc/mincut/pgr_stoerWagner.rst @@ -7,7 +7,9 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** - +.. index:: + single: Miscellaneous Algorithms ; pgr_stoerWagner + single: stoerWagner - Experimental on v3.0 pgr_stoerWagner - Experimental =============================================================================== @@ -69,9 +71,6 @@ weight on the cut determines whether it is a minimum cut. Signatures ------------------------------------------------------------------------------- -.. index:: - single: stoerWagner - Experimental on v3.0 - .. admonition:: \ \ :class: signatures diff --git a/doc/ordering/CMakeLists.txt b/doc/ordering/CMakeLists.txt index 124b440c36..be5034c16e 100644 --- a/doc/ordering/CMakeLists.txt +++ b/doc/ordering/CMakeLists.txt @@ -1,6 +1,7 @@ SET(LOCAL_FILES ordering-family.rst pgr_cuthillMckeeOrdering.rst + pgr_topologicalSort.rst ) foreach (f ${LOCAL_FILES}) diff --git a/doc/ordering/ordering-family.rst b/doc/ordering/ordering-family.rst index f629e546a1..ed9a69fd0e 100644 --- a/doc/ordering/ordering-family.rst +++ b/doc/ordering/ordering-family.rst @@ -9,6 +9,7 @@ | +.. index:: Ordering Family Ordering - Family of functions =============================================================================== @@ -23,6 +24,8 @@ Ordering - Family of functions .. index from here * :doc:`pgr_cuthillMckeeOrdering` - Return reverse Cuthill-McKee ordering of an undirected graph. +* :doc:`pgr_topologicalSort` - Linear ordering of the vertices for directed + acyclic graph. .. index to here @@ -30,6 +33,7 @@ Ordering - Family of functions :hidden: pgr_cuthillMckeeOrdering + pgr_topologicalSort See Also ------------------------------------------------------------------------------- diff --git a/doc/ordering/pgr_cuthillMckeeOrdering.rst b/doc/ordering/pgr_cuthillMckeeOrdering.rst index cdc878633c..cbfdeff030 100644 --- a/doc/ordering/pgr_cuthillMckeeOrdering.rst +++ b/doc/ordering/pgr_cuthillMckeeOrdering.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Ordering Family ; pgr_cuthillMckeeOrdering + single: pgr_cuthillMckeeOrdering ``pgr_cuthillMckeeOrdering`` - Experimental =============================================================================== diff --git a/doc/topologicalSort/pgr_topologicalSort.rst b/doc/ordering/pgr_topologicalSort.rst similarity index 98% rename from doc/topologicalSort/pgr_topologicalSort.rst rename to doc/ordering/pgr_topologicalSort.rst index 3e4bddc70d..3ee4029ee1 100644 --- a/doc/topologicalSort/pgr_topologicalSort.rst +++ b/doc/ordering/pgr_topologicalSort.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Ordering Family ; pgr_topologicalSort + single: topologicalSort - Experimental on v3.0 ``pgr_topologicalSort`` - Experimental =============================================================================== @@ -56,9 +59,6 @@ Signatures .. rubric:: Summary -.. index:: - single: topologicalSort - Experimental on v3.0 - .. admonition:: \ \ :class: signatures diff --git a/doc/pickDeliver/CMakeLists.txt b/doc/pickDeliver/CMakeLists.txt index babc6748cb..cfa9258a24 100644 --- a/doc/pickDeliver/CMakeLists.txt +++ b/doc/pickDeliver/CMakeLists.txt @@ -2,7 +2,7 @@ SET(LOCAL_FILES pgr_pickDeliverEuclidean.rst pgr_pickDeliver.rst - VRP-category.rst + pgr_vrpOneDepot.rst ) foreach (f ${LOCAL_FILES}) diff --git a/doc/pickDeliver/pgr_pickDeliver.rst b/doc/pickDeliver/pgr_pickDeliver.rst index 77dc4abb54..7dfc2ac598 100644 --- a/doc/pickDeliver/pgr_pickDeliver.rst +++ b/doc/pickDeliver/pgr_pickDeliver.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Vehicle Routing Functions Category ; pgr_pickDeliver + single: pickDeliver - Experimental on v3.0 ``pgr_pickDeliver`` - Experimental =============================================================================== @@ -70,9 +73,6 @@ Characteristics - Six different initial will be optimized - the best solution found will be result -.. index:: - single: pgr_pickDeliver - Experimental on v3.0 - Signature ------------------------------------------------------------------------------- diff --git a/doc/pickDeliver/pgr_pickDeliverEuclidean.rst b/doc/pickDeliver/pgr_pickDeliverEuclidean.rst index 4f0d491dfd..f303fa0dd6 100644 --- a/doc/pickDeliver/pgr_pickDeliverEuclidean.rst +++ b/doc/pickDeliver/pgr_pickDeliverEuclidean.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Vehicle Routing Functions Category ; pgr_pickDeliverEuclidean + single: pickDeliverEuclidean - Experimental on 3.0 ``pgr_pickDeliverEuclidean`` - Experimental =============================================================================== @@ -70,11 +73,6 @@ Characteristics - the best solution found will be result - -.. index:: - single: pgr_pickDeliverEuclidean - Experimental on 3.0 - - Signature ------------------------------------------------------------------------------- diff --git a/doc/vrp_basic/pgr_vrpOneDepot.rst b/doc/pickDeliver/pgr_vrpOneDepot.rst similarity index 93% rename from doc/vrp_basic/pgr_vrpOneDepot.rst rename to doc/pickDeliver/pgr_vrpOneDepot.rst index 5dd273d67d..2b835e245f 100644 --- a/doc/vrp_basic/pgr_vrpOneDepot.rst +++ b/doc/pickDeliver/pgr_vrpOneDepot.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Vehicle Routing Functions Category ; pgr_vrpOneDepot + single: vrpOneDepot - Experimental on v2.1.0 pgr_vrpOneDepot - Experimental =============================================================================== diff --git a/doc/planar/pgr_isPlanar.rst b/doc/planar/pgr_isPlanar.rst index 25485a2955..d6a1872ac4 100644 --- a/doc/planar/pgr_isPlanar.rst +++ b/doc/planar/pgr_isPlanar.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Planar Family ; pgr_isPlanar + single: isPlanar - Experimental on v3.2 ``pgr_isPlanar`` - Experimental =============================================================================== @@ -54,9 +57,6 @@ Signatures .. rubric:: Summary -.. index:: - single: isPlanar - Experimental on v3.2 - .. admonition:: \ \ :class: signatures diff --git a/doc/spanningTree/CMakeLists.txt b/doc/spanningTree/CMakeLists.txt index 6d52dafb27..b209adcc44 100644 --- a/doc/spanningTree/CMakeLists.txt +++ b/doc/spanningTree/CMakeLists.txt @@ -1,7 +1,6 @@ SET(LOCAL_FILES #pgr_randomSpanTree.rst - spanningTree-family.rst kruskal-family.rst prim-family.rst pgr_kruskal.rst diff --git a/doc/spanningTree/kruskal-family.rst b/doc/spanningTree/kruskal-family.rst index 3c48495345..65a12a8c0d 100644 --- a/doc/spanningTree/kruskal-family.rst +++ b/doc/spanningTree/kruskal-family.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Spanning Tree Category ; Kruskal Family + single: Kruskal Family Kruskal - Family of functions =============================================================================== diff --git a/doc/spanningTree/pgr_kruskal.rst b/doc/spanningTree/pgr_kruskal.rst index 35f48b4a3d..ab8e396318 100644 --- a/doc/spanningTree/pgr_kruskal.rst +++ b/doc/spanningTree/pgr_kruskal.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Kruskal Family ; pgr_kruska + single: Spanning Tree Category ; pgr_kruskal + single: kruskal ``pgr_kruskal`` =============================================================================== @@ -44,9 +48,6 @@ graph using Kruskal's algorithm. Signatures ------------------------------------------------------------------------------- -.. index:: - single: kruskal - .. rubric:: Summary .. admonition:: \ \ diff --git a/doc/spanningTree/pgr_kruskalBFS.rst b/doc/spanningTree/pgr_kruskalBFS.rst index 5fca24275e..168edabb86 100644 --- a/doc/spanningTree/pgr_kruskalBFS.rst +++ b/doc/spanningTree/pgr_kruskalBFS.rst @@ -9,6 +9,11 @@ | +.. index:: + single: Kruskal Family ; pgr_kruskalBFS + single: Spanning Tree Category ; pgr_kruskalBFS + single: Breadth First Search Category ; pgr_kruskalBFS + single: kruskalBFS ``pgr_kruskalBFS`` =============================================================================== @@ -60,7 +65,7 @@ Signatures | Returns set of |result-spantree| .. index:: - single: kruskalBFS(Single vertex) + single: kruskalBFS ; Single vertex Single vertex ............................................................................... @@ -79,7 +84,7 @@ Single vertex :end-before: -- q2 .. index:: - single: kruskalBFS(Multiple vertices) + single: kruskalBFS ; Multiple vertices Multiple vertices ............................................................................... diff --git a/doc/spanningTree/pgr_kruskalDD.rst b/doc/spanningTree/pgr_kruskalDD.rst index 400206a976..bd1810c1d3 100644 --- a/doc/spanningTree/pgr_kruskalDD.rst +++ b/doc/spanningTree/pgr_kruskalDD.rst @@ -10,6 +10,12 @@ | +.. index:: + single: Kruskal Family ; pgr_kruskalDD + single: Spanning Tree Category ; pgr_kruskalDD + single: Driving Distance Category ; pgr_kruskalDD + single: kruskalDD + ``pgr_kruskalDD`` =============================================================================== @@ -64,7 +70,7 @@ Signatures | Returns set of |result-spantree| .. index:: - single: kruskalDD(Single vertex) + single: kruskalDD ; Single vertex Single vertex ............................................................................... @@ -84,7 +90,7 @@ Single vertex :end-before: -- q2 .. index:: - single: kruskalDD(Multiple vertices) + single: kruskalDD ; Multiple vertices Multiple vertices ............................................................................... diff --git a/doc/spanningTree/pgr_kruskalDFS.rst b/doc/spanningTree/pgr_kruskalDFS.rst index 616bb96e7e..dbc7aff7b0 100644 --- a/doc/spanningTree/pgr_kruskalDFS.rst +++ b/doc/spanningTree/pgr_kruskalDFS.rst @@ -9,6 +9,11 @@ | +.. index:: + single: Kruskal Family ; pgr_kruskalDFS + single: Spanning Tree Category ; pgr_kruskalDFS + single: Depth First Search Category ; pgr_kruskalBFS + single: kruskalDFS ``pgr_kruskalDFS`` =============================================================================== @@ -61,7 +66,7 @@ Signatures | Returns set of |result-spantree| .. index:: - single: kruskalDFS(Single vertex) + single: kruskalDFS ; Single vertex Single vertex ............................................................................... @@ -80,7 +85,7 @@ Single vertex :end-before: -- q2 .. index:: - single: kruskalDFS(Multiple vertices) + single: kruskalDFS ; Multiple vertices Multiple vertices ............................................................................... diff --git a/doc/spanningTree/pgr_prim.rst b/doc/spanningTree/pgr_prim.rst index 88f567cfef..2cf6c9d77b 100644 --- a/doc/spanningTree/pgr_prim.rst +++ b/doc/spanningTree/pgr_prim.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Prim Family ; pgr_prim + single: Spanning Tree Category ; pgr_prim + single: prim ``pgr_prim`` =============================================================================== @@ -44,9 +48,6 @@ graph using Prim's algorithm. Signatures ------------------------------------------------------------------------------- -.. index:: - single: prim - .. rubric:: Summary .. admonition:: \ \ diff --git a/doc/spanningTree/pgr_primBFS.rst b/doc/spanningTree/pgr_primBFS.rst index b5d799bcc1..e6e5bd06fb 100644 --- a/doc/spanningTree/pgr_primBFS.rst +++ b/doc/spanningTree/pgr_primBFS.rst @@ -9,6 +9,11 @@ | +.. index:: + single: Prim Family ; pgr_primBFS + single: Spanning Tree Category ; pgr_primBFS + single: Breadth First Search Category ; pgr_primBFS + single: primBFS ``pgr_primBFS`` =============================================================================== @@ -60,7 +65,7 @@ Signatures | Returns set of |result-spantree| .. index:: - single: primBFS(Single vertex) + single: primBFS ; Single vertex Single vertex ............................................................................... @@ -79,7 +84,7 @@ Single vertex :end-before: -- q2 .. index:: - single: primBFS(Multiple vertices) + single: primBFS ; Multiple vertices Multiple vertices ............................................................................... diff --git a/doc/spanningTree/pgr_primDD.rst b/doc/spanningTree/pgr_primDD.rst index 9e96b28727..2c0e1c5980 100644 --- a/doc/spanningTree/pgr_primDD.rst +++ b/doc/spanningTree/pgr_primDD.rst @@ -9,6 +9,11 @@ | +.. index:: + single: Prim Family ; pgr_primDD + single: Spanning Tree Category ; pgr_primDD + single: Driving Distance Category ; pgr_primDD + single: primDD ``pgr_primDD`` =============================================================================== @@ -64,7 +69,7 @@ Signatures | Returns set of |result-spantree| .. index:: - single: primDD(Single vertex) + single: primDD ; Single vertex Single vertex ............................................................................... @@ -84,7 +89,7 @@ Single vertex :end-before: -- q2 .. index:: - single: primDD(Multiple vertices) + single: primDD ; Multiple vertices Multiple vertices ............................................................................... diff --git a/doc/spanningTree/pgr_primDFS.rst b/doc/spanningTree/pgr_primDFS.rst index c2822fb88f..9fa27cbdff 100644 --- a/doc/spanningTree/pgr_primDFS.rst +++ b/doc/spanningTree/pgr_primDFS.rst @@ -9,6 +9,11 @@ | +.. index:: + single: Prim Family ; pgr_primDFS + single: Spanning Tree Category ; pgr_primDFS + single: Depth First Search Category ; pgr_primDFS + single: primDFS ``pgr_primDFS`` =============================================================================== @@ -60,7 +65,7 @@ Signatures | Returns set of |result-spantree| .. index:: - single: primDFS(Single vertex) + single: primDFS ; Single vertex Single vertex ............................................................................... @@ -79,7 +84,7 @@ Single vertex :end-before: -- q2 .. index:: - single: primDFS(Multiple vertices) + single: primDFS ; Multiple vertices Multiple vertices ............................................................................... diff --git a/doc/spanningTree/prim-family.rst b/doc/spanningTree/prim-family.rst index 5f9b25a0dc..81bb390898 100644 --- a/doc/spanningTree/prim-family.rst +++ b/doc/spanningTree/prim-family.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Spanning Tree Category ; Prim Family + single: Prim Family Prim - Family of functions =============================================================================== diff --git a/doc/src/CMakeLists.txt b/doc/src/CMakeLists.txt index fe7457a2d8..73890a5f0c 100644 --- a/doc/src/CMakeLists.txt +++ b/doc/src/CMakeLists.txt @@ -10,10 +10,6 @@ SET(LOCAL_FILES routingFunctions.rst sampledata.rst support.rst - cost-category.rst - costMatrix-category.rst - via-category.rst - withPoints-category.rst migration.rst ) diff --git a/doc/src/experimental.rst b/doc/src/experimental.rst index 6f054c9324..977cf4604c 100644 --- a/doc/src/experimental.rst +++ b/doc/src/experimental.rst @@ -117,31 +117,41 @@ Experimental Functions VRP-category -.. rubric:: Unclassified +.. rubric:: Shortest Path Category - :doc:`pgr_bellmanFord` - :doc:`pgr_dagShortestPath` - :doc:`pgr_edwardMoore` -- :doc:`pgr_isPlanar` -- :doc:`pgr_stoerWagner` -- :doc:`pgr_topologicalSort` -- :doc:`pgr_transitiveClosure` -- :doc:`pgr_lengauerTarjanDominatorTree` -- :doc:`pgr_hawickCircuits` .. toctree:: :hidden: pgr_bellmanFord - pgr_binaryBreadthFirstSearch - pgr_breadthFirstSearch pgr_dagShortestPath pgr_edwardMoore + +.. rubric:: Planar Family + +- :doc:`pgr_isPlanar` + +.. toctree:: + :hidden: + pgr_isPlanar + +.. rubric:: Miscellaneous Algoritms + +- :doc:`pgr_lengauerTarjanDominatorTree` +- :doc:`pgr_stoerWagner` +- :doc:`pgr_transitiveClosure` +- :doc:`pgr_hawickCircuits` + +.. toctree:: + :hidden: + + pgr_lengauerTarjanDominatorTree pgr_stoerWagner - pgr_topologicalSort pgr_transitiveClosure - pgr_lengauerTarjanDominatorTree pgr_hawickCircuits diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index b18137967e..058615816a 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -130,7 +130,7 @@ Proposed Functions via-category withPoints-category -.. rubric:: Utilities +.. rubric:: Utilities Category :doc:`pgr_findCloseEdges` diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 7292ad7059..ba1c510734 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -305,7 +305,7 @@ Changes on the documentation to the following: .. rubric:: Issue fixes * `#2565 `__ - pgr_pgr_lengauerTarjanDominatorTree triggers an assertion + pgr_lengauerTarjanDominatorTree triggers an assertion .. rubric:: SQL enhancements diff --git a/doc/src/routingFunctions.rst b/doc/src/routingFunctions.rst index 59a76a6e72..0ef8428df4 100644 --- a/doc/src/routingFunctions.rst +++ b/doc/src/routingFunctions.rst @@ -164,17 +164,20 @@ Functions by categories reference topology-functions TSP-family - spanningTree-family - KSP-category .. toctree:: :hidden: + BFS-category cost-category costMatrix-category + DFS-category drivingDistance-category + KSP-category spanningTree-family - BFS-category + via-category + VRP-category + withPoints-category See Also ------------------------------------------------------------------------------- diff --git a/doc/topologicalSort/CMakeLists.txt b/doc/topologicalSort/CMakeLists.txt deleted file mode 100644 index 9ec20ce2ed..0000000000 --- a/doc/topologicalSort/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ - -SET(LOCAL_FILES - pgr_topologicalSort.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/topology/pgr_analyzeGraph.rst b/doc/topology/pgr_analyzeGraph.rst index 64c68bb56c..7e9c4892db 100644 --- a/doc/topology/pgr_analyzeGraph.rst +++ b/doc/topology/pgr_analyzeGraph.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Topology Family ; pgr_analyzeGraph + single: analyzeGraph pgr_analyzeGraph =============================================================================== diff --git a/doc/topology/pgr_analyzeOneWay.rst b/doc/topology/pgr_analyzeOneWay.rst index a5dd2c6d18..b8da0df6b8 100644 --- a/doc/topology/pgr_analyzeOneWay.rst +++ b/doc/topology/pgr_analyzeOneWay.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Topology Family ; pgr_analyzeOneWay + single: analyzeOneWay pgr_analyzeOneWay =============================================================================== diff --git a/doc/topology/pgr_createTopology.rst b/doc/topology/pgr_createTopology.rst index 9e4886d9ec..a4bd3ad8fc 100644 --- a/doc/topology/pgr_createTopology.rst +++ b/doc/topology/pgr_createTopology.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Topology Family ; pgr_createTopology + single: createTopology pgr_createTopology =============================================================================== diff --git a/doc/topology/pgr_createVerticesTable.rst b/doc/topology/pgr_createVerticesTable.rst index b17ad3d10a..dc24df9bcf 100644 --- a/doc/topology/pgr_createVerticesTable.rst +++ b/doc/topology/pgr_createVerticesTable.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Topology Family ; pgr_createVerticesTable + single: createVerticesTable pgr_createVerticesTable =============================================================================== diff --git a/doc/topology/pgr_degree.rst b/doc/topology/pgr_degree.rst index 4b474714ae..f9fda191b6 100644 --- a/doc/topology/pgr_degree.rst +++ b/doc/topology/pgr_degree.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Topology Family ; pgr_degree + single: degree ``pgr_degree`` -- Proposed =============================================================================== diff --git a/doc/topology/pgr_extractVertices.rst b/doc/topology/pgr_extractVertices.rst index fed52d23af..938d1b7059 100644 --- a/doc/topology/pgr_extractVertices.rst +++ b/doc/topology/pgr_extractVertices.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Topology Family ; pgr_extractVertices + single: extractVertices - Proposed on v3.3 pgr_extractVertices -- Proposed =============================================================================== @@ -44,8 +47,7 @@ of edges of a graph. Signatures ------------------------------------------------------------------------------- -.. index:: - single: pgr_extractVertices - Proposed on v3.3 +.. rubric:: Summary .. admonition:: \ \ :class: signatures diff --git a/doc/topology/pgr_nodeNetwork.rst b/doc/topology/pgr_nodeNetwork.rst index 239cf54858..b0d27165f1 100644 --- a/doc/topology/pgr_nodeNetwork.rst +++ b/doc/topology/pgr_nodeNetwork.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Topology Family ; pgr_nodeNetwork + single: nodeNetwork pgr_nodeNetwork =============================================================================== diff --git a/doc/topology/topology-functions.rst b/doc/topology/topology-functions.rst index 3ecedd7fd6..8648f7f7a3 100644 --- a/doc/topology/topology-functions.rst +++ b/doc/topology/topology-functions.rst @@ -9,6 +9,7 @@ | +.. index:: Topology Family Topology - Family of Functions =============================================================================== diff --git a/doc/transitiveClosure/pgr_transitiveClosure.rst b/doc/transitiveClosure/pgr_transitiveClosure.rst index 0417be5f79..aae0359f21 100644 --- a/doc/transitiveClosure/pgr_transitiveClosure.rst +++ b/doc/transitiveClosure/pgr_transitiveClosure.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Miscellaneous Algorithms ; pgr_transitiveClosure + single: transitiveClosure - Experimental on v3.0 ``pgr_transitiveClosure`` - Experimental =============================================================================== @@ -57,9 +60,6 @@ Signatures The pgr_transitiveClosure function has the following signature: -.. index:: - single: transitiveClosure - Experimental on v3.0 - .. admonition:: \ \ :class: signatures diff --git a/doc/traversal/CMakeLists.txt b/doc/traversal/CMakeLists.txt index 32743fe889..ca3cfe4d3b 100644 --- a/doc/traversal/CMakeLists.txt +++ b/doc/traversal/CMakeLists.txt @@ -1,10 +1,10 @@ SET(LOCAL_FILES - traversal-family.rst - BFS-category.rst - DFS-category.rst + pgr_binaryBreadthFirstSearch.rst + pgr_breadthFirstSearch.rst pgr_depthFirstSearch.rst - ) + traversal-family.rst +) foreach (f ${LOCAL_FILES}) configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}") diff --git a/doc/traversal/images/CMakeLists.txt b/doc/traversal/images/CMakeLists.txt index 8e2e4ea0a4..745f68a14a 100644 --- a/doc/traversal/images/CMakeLists.txt +++ b/doc/traversal/images/CMakeLists.txt @@ -1,6 +1,8 @@ SET(LOCAL_FILES Fig1-AscendingOrder.png Fig2-DescendingOrder.png + bfs-ascending.png + bfs-descending.png ) foreach (f ${LOCAL_FILES}) diff --git a/doc/breadthFirstSearch/images/bfs-ascending.png b/doc/traversal/images/bfs-ascending.png similarity index 100% rename from doc/breadthFirstSearch/images/bfs-ascending.png rename to doc/traversal/images/bfs-ascending.png diff --git a/doc/breadthFirstSearch/images/bfs-descending.png b/doc/traversal/images/bfs-descending.png similarity index 100% rename from doc/breadthFirstSearch/images/bfs-descending.png rename to doc/traversal/images/bfs-descending.png diff --git a/doc/breadthFirstSearch/pgr_binaryBreadthFirstSearch.rst b/doc/traversal/pgr_binaryBreadthFirstSearch.rst similarity index 93% rename from doc/breadthFirstSearch/pgr_binaryBreadthFirstSearch.rst rename to doc/traversal/pgr_binaryBreadthFirstSearch.rst index 010310100b..248b358c8b 100644 --- a/doc/breadthFirstSearch/pgr_binaryBreadthFirstSearch.rst +++ b/doc/traversal/pgr_binaryBreadthFirstSearch.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Traversal Family ; pgr_binaryBreadthFirstSearch + single: Breadth First Search Category ; pgr_binaryBreadthFirstSearch + single: binaryBreadthFirstSearch ``pgr_binaryBreadthFirstSearch`` - Experimental =============================================================================== @@ -98,7 +102,7 @@ Signatures :math:`1``) .. index:: - single: binaryBreadthFirstSearch(One to One) - Experimental on v3.0 + single: binaryBreadthFirstSearch ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -118,7 +122,7 @@ One to One :end-before: -- q2 .. index:: - single: binaryBreadthFirstSearch(One to Many) - Experimental on v3.0 + single: binaryBreadthFirstSearch ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -139,7 +143,7 @@ One to Many :end-before: -- q3 .. index:: - single: binaryBreadthFirstSearch(Many to One) - Experimental on v3.0 + single: binaryBreadthFirstSearch ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -160,7 +164,7 @@ Many to One :end-before: -- q4 .. index:: - single: binaryBreadthFirstSearch(Many to Many) - Experimental on v3.0 + single: binaryBreadthFirstSearch ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -181,7 +185,7 @@ Many to Many :end-before: -- q5 .. index:: - single: binaryBreadthFirstSearch(Combinations) - Experimental on v3.2 + single: binaryBreadthFirstSearch ; Combinations - Experimental on v3.2 Combinations ............................................................................... diff --git a/doc/breadthFirstSearch/pgr_breadthFirstSearch.rst b/doc/traversal/pgr_breadthFirstSearch.rst similarity index 94% rename from doc/breadthFirstSearch/pgr_breadthFirstSearch.rst rename to doc/traversal/pgr_breadthFirstSearch.rst index eb8c6d61e2..8ffecd3ab0 100644 --- a/doc/breadthFirstSearch/pgr_breadthFirstSearch.rst +++ b/doc/traversal/pgr_breadthFirstSearch.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Traversal Family ; pgr_breadthFirstSearch + single: Breadth First Search Category ; pgr_breadthFirstSearch + single: breadthFirstSearch ``pgr_breadthFirstSearch`` - Experimental =============================================================================== @@ -62,7 +66,7 @@ Signatures | Returns set of |result-bfs| .. index:: - single: breadthFirstSearch(Single vertex) - Experimental on v3.0 + single: breadthFirstSearch ; Single vertex - Experimental on v3.0 Single vertex ............................................................................... @@ -83,7 +87,7 @@ Single vertex :end-before: -- q2 .. index:: - single: breadthFirstSearch(Multiple vertices) - Experimental on v3.0 + single: breadthFirstSearch ; Multiple vertices - Experimental on v3.0 Multiple vertices ............................................................................... diff --git a/doc/traversal/pgr_depthFirstSearch.rst b/doc/traversal/pgr_depthFirstSearch.rst index 70560f0d4e..d46152879c 100644 --- a/doc/traversal/pgr_depthFirstSearch.rst +++ b/doc/traversal/pgr_depthFirstSearch.rst @@ -9,6 +9,10 @@ | +.. index:: + single: Traversal Family ; pgr_depthFirstSearch + single: Depth First Search Category ; pgr_depthFirstSearch + single: depthFirstSearch ``pgr_depthFirstSearch`` - Proposed =============================================================================== @@ -75,7 +79,7 @@ Signatures | Returns set of |result-bfs| .. index:: - single: depthFirstSearch(Single vertex) - Proposed on v3.3 + single: depthFirstSearch ; Single vertex - Proposed on v3.3 Single vertex ............................................................................... @@ -96,7 +100,7 @@ Single vertex :end-before: -- q2 .. index:: - single: depthFirstSearch(Multiple vertices) - Proposed on v3.3 + single: depthFirstSearch ; Multiple vertices - Proposed on v3.3 Multiple vertices ............................................................................... diff --git a/doc/traversal/traversal-family.rst b/doc/traversal/traversal-family.rst index 3911a992dd..088ef3de80 100644 --- a/doc/traversal/traversal-family.rst +++ b/doc/traversal/traversal-family.rst @@ -9,6 +9,7 @@ | +.. index:: Traversal Family Traversal - Family of functions =============================================================================== diff --git a/doc/trsp/TRSP-family.rst b/doc/trsp/TRSP-family.rst index 7eea9cc086..d3b4252c1d 100644 --- a/doc/trsp/TRSP-family.rst +++ b/doc/trsp/TRSP-family.rst @@ -9,6 +9,7 @@ | +.. index:: Turn Restriction Shortest Path Family TRSP - Family of functions =============================================================================== diff --git a/doc/trsp/pgr_trsp.rst b/doc/trsp/pgr_trsp.rst index cb979f7322..fd00a368e3 100644 --- a/doc/trsp/pgr_trsp.rst +++ b/doc/trsp/pgr_trsp.rst @@ -9,6 +9,11 @@ | +.. index:: + single: Turn Restriction Shortest Path Family ; pgr_trsp + single: Shortest Path Category ; pgr_trsp + single: Restrictions Category ; pgr_trsp + single: trsp pgr_trsp - Proposed =============================================================================== @@ -90,7 +95,7 @@ Signatures | OR EMPTY SET .. index:: - single: trsp(One to One) -- Proposed on v3.4 + single: trsp ; One to One -- Proposed on v3.4 One to One ............................................................................... @@ -110,7 +115,7 @@ One to One :end-before: -- q3 .. index:: - single: trsp(One to Many) -- Proposed on v3.4 + single: trsp ; One to Many -- Proposed on v3.4 One to Many ............................................................................... @@ -131,7 +136,7 @@ One to Many :end-before: -- q4 .. index:: - single: trsp(Many to One) -- Proposed on v3.4 + single: trsp ; Many to One -- Proposed on v3.4 Many to One ............................................................................... @@ -152,7 +157,7 @@ Many to One :end-before: -- q5 .. index:: - single: trsp(Many to Many) -- Proposed on v3.4 + single: trsp ; Many to Many -- Proposed on v3.4 Many to Many ............................................................................... @@ -174,7 +179,7 @@ Many to Many :end-before: -- q6 .. index:: - single: trsp(Combinations) - Proposed on v3.4 + single: trsp ; Combinations - Proposed on v3.4 Combinations ............................................................................... diff --git a/doc/trsp/pgr_trspVia.rst b/doc/trsp/pgr_trspVia.rst index 546eedcbc8..a3704c95e1 100644 --- a/doc/trsp/pgr_trspVia.rst +++ b/doc/trsp/pgr_trspVia.rst @@ -9,6 +9,11 @@ | +.. index:: + single: Turn Restriction Shortest Path Family ; pgr_trspVia + single: Via Category ; pgr_trspVia + single: Restrictions Category ; pgr_trspVia + single: trspVia ``pgr_trspVia`` - Proposed =============================================================================== @@ -54,7 +59,7 @@ Signatures ------------------------------------------------------------------------------- .. index:: - single: trspVia - Proposed on v3.4 + single: trspVia ; One Via - Proposed on v3.4 One Via ............................................................................... diff --git a/doc/trsp/pgr_trspVia_withPoints.rst b/doc/trsp/pgr_trspVia_withPoints.rst index 1c0714e480..98600fc817 100644 --- a/doc/trsp/pgr_trspVia_withPoints.rst +++ b/doc/trsp/pgr_trspVia_withPoints.rst @@ -9,6 +9,12 @@ | +.. index:: + single: Turn Restriction Shortest Path Family ; pgr_trspVia_withPoints + single: Via Category ; pgr_trspVia_withPoints + single: Restrictions Category ; pgr_trspVia_withPoints + single: With Points Category ; pgr_trspVia_withPoints + single: trspVia_withPoints ``pgr_trspVia_withPoints`` - Proposed =============================================================================== @@ -64,7 +70,7 @@ Signatures ------------------------------------------------------------------------------- .. index:: - single: trspVia_withPoints - Proposed on v3.4 + single: trspVia_withPoints ; One Via - Proposed on v3.4 One Via ............................................................................... diff --git a/doc/trsp/pgr_trsp_withPoints.rst b/doc/trsp/pgr_trsp_withPoints.rst index 2b66b43d6a..f9293ec878 100644 --- a/doc/trsp/pgr_trsp_withPoints.rst +++ b/doc/trsp/pgr_trsp_withPoints.rst @@ -9,6 +9,12 @@ | +.. index:: + single: Turn Restriction Shortest Path Family ; pgr_trsp_withPoints + single: Shortest Path Category ; pgr_trsp_withPoints + single: Restrictions Category ; pgr_trsp_withPoints + single: With Points Category ; pgr_trsp_withPoints + single: trsp_withPoints pgr_trsp_withPoints - Proposed =============================================================================== @@ -88,7 +94,7 @@ Signatures | OR EMPTY SET .. index:: - single: trsp_withPoints(One to One) - Proposed on v3.4 + single: trsp_withPoints ; One to One - Proposed on v3.4 One to One ............................................................................... @@ -110,7 +116,7 @@ One to One :end-before: --e2 .. index:: - single: trsp_withPoints(One to Many) - Proposed on v3.4 + single: trsp_withPoints ; One to Many - Proposed on v3.4 One to Many ............................................................................... @@ -131,7 +137,7 @@ One to Many :end-before: --e3 .. index:: - single: trsp_withPoints(Many to One) - Proposed on v3.4 + single: trsp_withPoints ; Many to One - Proposed on v3.4 Many to One ............................................................................... @@ -152,7 +158,7 @@ Many to One :end-before: --e4 .. index:: - single: trsp_withPoints(Many to Many) - Proposed on v3.4 + single: trsp_withPoints ; Many to Many - Proposed on v3.4 Many to Many ............................................................................... @@ -174,7 +180,7 @@ Many to Many :end-before: --e5 .. index:: - single: trsp_withPoints(Combinations) - Proposed on v3.4 + single: trsp_withPoints ; Combinations - Proposed on v3.4 Combinations ............................................................................... diff --git a/doc/trsp/pgr_turnRestrictedPath.rst b/doc/trsp/pgr_turnRestrictedPath.rst index 59fd8379c9..da88abbf2c 100644 --- a/doc/trsp/pgr_turnRestrictedPath.rst +++ b/doc/trsp/pgr_turnRestrictedPath.rst @@ -9,11 +9,17 @@ | +.. index:: + single: Turn Restriction Shortest Path Family ; pgr_turnRestrictedPath + single: Shortest Path Category ; pgr_turnRestrictedPath + single: Restrictions Category ; pgr_turnRestrictedPath + single: turnRestrictedPath + pgr_turnRestrictedPath - Experimental =============================================================================== -``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex -Vertex routing with +``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex - Vertex routing with restrictions .. include:: experimental.rst @@ -35,9 +41,6 @@ the paths that do not use the restrictions Signatures ------------------------------------------------------------------------------- -.. index:: - single: turnRestrictedPath - Experimental on v3.0 - .. admonition:: \ \ :class: signatures diff --git a/doc/tsp/TSP-family.rst b/doc/tsp/TSP-family.rst index 7479529e11..2193922771 100644 --- a/doc/tsp/TSP-family.rst +++ b/doc/tsp/TSP-family.rst @@ -9,6 +9,7 @@ | +.. index:: Traveling Sales Person Family Traveling Sales Person - Family of functions =============================================================================== diff --git a/doc/tsp/pgr_TSP.rst b/doc/tsp/pgr_TSP.rst index db9db05478..77dd8f0956 100644 --- a/doc/tsp/pgr_TSP.rst +++ b/doc/tsp/pgr_TSP.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Traveling Sales Person Family ; pgr_TSP + single: pgr_TSP ``pgr_TSP`` =============================================================================== diff --git a/doc/tsp/pgr_TSPeuclidean.rst b/doc/tsp/pgr_TSPeuclidean.rst index 0c1e1e4fba..484332f4cf 100644 --- a/doc/tsp/pgr_TSPeuclidean.rst +++ b/doc/tsp/pgr_TSPeuclidean.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Traveling Sales Person Family ; pgr_TSPeuclidean + single: pgr_TSPeuclidean ``pgr_TSPeuclidean`` ============================================================================= diff --git a/doc/utilities/pgr_findCloseEdges.rst b/doc/utilities/pgr_findCloseEdges.rst index 5fcc373353..c0189e14f1 100644 --- a/doc/utilities/pgr_findCloseEdges.rst +++ b/doc/utilities/pgr_findCloseEdges.rst @@ -9,7 +9,9 @@ | - +.. index:: + single: Utilities ; pgr_findCloseEdges + single: findCloseEdges ``pgr_findCloseEdges`` =============================================================================== @@ -57,7 +59,7 @@ Signatures | OR EMPTY SET .. index:: - single: findCloseEdges(One point) + single: findCloseEdges ; One point - Proposed on 3.4 One point ............................................................................... @@ -92,7 +94,7 @@ One point :end-before: -- q2 .. index:: - single: findCloseEdges(One point) + single: findCloseEdges ; Many points - Proposed on 3.4 Many points ............................................................................... @@ -121,9 +123,6 @@ values. ``geom`` contains the original point geometry to assist on deterpartialing to which point geometry the row belongs to. -.. index:: - single: findCloseEdges(Many points) - Parameters ------------------------------------------------------------------------------- diff --git a/doc/version/pgr_full_version.rst b/doc/version/pgr_full_version.rst index 8d32604add..29ce83271d 100644 --- a/doc/version/pgr_full_version.rst +++ b/doc/version/pgr_full_version.rst @@ -9,6 +9,9 @@ | +.. index:: + single: Reference ; pgr_full_version + single: full_version ``pgr_full_version`` =============================================================================== @@ -27,9 +30,6 @@ Description Get complete details of pgRouting version information -.. index:: - single: full_version - Signatures ------------------------------------------------------------------------------- diff --git a/doc/version/pgr_version.rst b/doc/version/pgr_version.rst index 88807fe1d2..75583b0a8d 100644 --- a/doc/version/pgr_version.rst +++ b/doc/version/pgr_version.rst @@ -10,6 +10,10 @@ | +.. index:: + single: Reference ; pgr_version + single: version + ``pgr_version`` =============================================================================== @@ -32,9 +36,6 @@ Description Returns pgRouting version information. -.. index:: - single: version - Signature ------------------------------------------------------------------------------- diff --git a/doc/version/reference.rst b/doc/version/reference.rst index ae4e821239..e58b09e57a 100644 --- a/doc/version/reference.rst +++ b/doc/version/reference.rst @@ -9,6 +9,8 @@ | +.. index:: + single: Reference Reference =============================================================================== diff --git a/doc/vrp_basic/CMakeLists.txt b/doc/vrp_basic/CMakeLists.txt deleted file mode 100644 index 1bcd9b5dfb..0000000000 --- a/doc/vrp_basic/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ - -SET(LOCAL_FILES - pgr_vrpOneDepot.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/withPoints/pgr_withPoints.rst b/doc/withPoints/pgr_withPoints.rst index 3eeb99caa9..2908471d04 100644 --- a/doc/withPoints/pgr_withPoints.rst +++ b/doc/withPoints/pgr_withPoints.rst @@ -9,6 +9,11 @@ | +.. index:: + single: withPoints Family ; pgr_withPoints + single: With Points Category ; pgr_withPoints + single: Shortest Path Category ; pgr_withPoints + single: withPoints ``pgr_withPoints`` - Proposed =============================================================================== @@ -87,7 +92,7 @@ Signatures | OR EMTPY SET .. index:: - single: withPoints(One to One) - Proposed on v2.2 + single: withPoints ; One to One - Proposed on v2.2 One to One ............................................................................... @@ -108,7 +113,7 @@ One to One :end-before: -- q2 .. index:: - single: withPoints(One to Many) - Proposed on v2.2 + single: withPoints ; One to Many - Proposed on v2.2 One to Many ............................................................................... @@ -130,7 +135,7 @@ One to Many :end-before: -- q3 .. index:: - single: withPoints(Many to One) - Proposed on v2.2 + single: withPoints ; Many to One - Proposed on v2.2 Many to One ............................................................................... @@ -151,7 +156,7 @@ Many to One :end-before: -- q4 .. index:: - single: withPoints(Many to Many) - Proposed on v2.2 + single: withPoints ; Many to Many - Proposed on v2.2 Many to Many ............................................................................... @@ -173,7 +178,7 @@ Many to Many :end-before: -- q5 .. index:: - single: withPoints(Combinations) - Proposed on v3.2 + single: withPoints ; Combinations - Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/withPoints/pgr_withPointsCost.rst b/doc/withPoints/pgr_withPointsCost.rst index 59f186a61d..00203b2354 100644 --- a/doc/withPoints/pgr_withPointsCost.rst +++ b/doc/withPoints/pgr_withPointsCost.rst @@ -9,6 +9,11 @@ | +.. index:: + single: withPoints Family ; pgr_withPointsCost + single: With Points Category ; pgr_withPointsCost + single: Cost Category ; pgr_withPointsCost + single: withPointsCost ``pgr_withPointsCost`` - Proposed =============================================================================== @@ -109,7 +114,7 @@ Signatures withPoints family of functions. .. index:: - single: withPointsCost(One To One) - Proposed on v2.2 + single: withPointsCost ; One To One - Proposed on v2.2 One to One ............................................................................... @@ -130,7 +135,7 @@ One to One :end-before: -- q2 .. index:: - single: withPointsCost(One To Many) - Proposed on v2.2 + single: withPointsCost ; One To Many - Proposed on v2.2 One to Many ............................................................................... @@ -152,7 +157,7 @@ One to Many :end-before: -- q3 .. index:: - single: withPointsCost(Many To One) - Proposed on v2.2 + single: withPointsCost ; Many To One - Proposed on v2.2 Many to One ............................................................................... @@ -173,7 +178,7 @@ Many to One :end-before: -- q4 .. index:: - single: withPointsCost(Many To Many) - Proposed on v2.2 + single: withPointsCost ; Many To Many - Proposed on v2.2 Many to Many ............................................................................... @@ -195,7 +200,7 @@ Many to Many :end-before: -- q5 .. index:: - single: withPointsCost(Combinations) -- Proposed on v3.2 + single: withPointsCost ; Combinations -- Proposed on v3.2 Combinations ............................................................................... diff --git a/doc/withPoints/pgr_withPointsCostMatrix.rst b/doc/withPoints/pgr_withPointsCostMatrix.rst index b5f434ce44..2fa30db32b 100644 --- a/doc/withPoints/pgr_withPointsCostMatrix.rst +++ b/doc/withPoints/pgr_withPointsCostMatrix.rst @@ -9,6 +9,11 @@ | +.. index:: + single: withPoints Family ; pgr_withPointsCostMatrix + single: With Points Category ; pgr_withPointsCostMatrix + single: Cost Matrix Category ; pgr_withPointsCostMatrix + single: withPointsCostMatrix - proposed on v2.0 ``pgr_withPointsCostMatrix`` - proposed =============================================================================== @@ -44,9 +49,6 @@ Using Dijkstra algorithm, calculate and return a cost matrix. :start-after: costMatrix_details_start :end-before: costMatrix_details_end -.. index:: - single: withPointsCostMatrix - proposed - Signatures ------------------------------------------------------------------------------- diff --git a/doc/withPoints/pgr_withPointsDD.rst b/doc/withPoints/pgr_withPointsDD.rst index 7988acb3e1..39f76a552b 100644 --- a/doc/withPoints/pgr_withPointsDD.rst +++ b/doc/withPoints/pgr_withPointsDD.rst @@ -9,6 +9,11 @@ | +.. index:: + single: withPoints Family ; pgr_withPointsDD + single: With Points Category ; pgr_withPointsDD + single: Driving Distance Category ; pgr_withPointsDD + single: withPointsDD ``pgr_withPointsDD`` - Proposed =============================================================================== @@ -83,7 +88,7 @@ Signatures | OR EMPTY SET .. index:: - single: withPointsDD(Single Vertex) - Proposed on v2.2 + single: withPointsDD ; Single Vertex - Proposed on v2.2 Single vertex ............................................................................... @@ -105,7 +110,7 @@ Single vertex :end-before: -- q3 .. index:: - single: withPointsDD(Multiple Vertices) - Proposed on v2.2 + single: withPointsDD ; Multiple Vertices - Proposed on v2.2 Multiple vertices ............................................................................... diff --git a/doc/withPoints/pgr_withPointsKSP.rst b/doc/withPoints/pgr_withPointsKSP.rst index 648614dbfb..8baa48baad 100644 --- a/doc/withPoints/pgr_withPointsKSP.rst +++ b/doc/withPoints/pgr_withPointsKSP.rst @@ -9,6 +9,11 @@ | +.. index:: + single: withPoints Family ; pgr_withPointsKSP + single: With Points Category ; pgr_withPointsKSP + single: K Shortest Paths Category ; pgr_withPointsKSP + single: withPointsKSP pgr_withPointsKSP - Proposed =============================================================================== @@ -57,9 +62,6 @@ Description Modifies the graph to include the points defined in the `Points SQL`_ and using Yen algorithm, finds the :math:`K` shortest paths. -.. index:: - single: withPointsKSP - Proposed on v2.2 - Signatures ------------------------------------------------------------------------------- @@ -77,7 +79,7 @@ Signatures | OR EMPTY SET .. index:: - single: withPointsKSP(One to One) + single: withPointsKSP ; One to One - Proposed on v2.2 One to One ............................................................................... @@ -103,7 +105,7 @@ One to One :end-before: --q2 .. index:: - single: withPointsKSP(One to Many) + single: withPointsKSP ; One to Many - Proposed on v3.6 One to Many ............................................................................... @@ -125,7 +127,7 @@ One to Many :end-before: --q3 .. index:: - single: withPointsKSP(Many to One) + single: withPointsKSP ; Many to One - Proposed on v3.6 Many to One ............................................................................... @@ -147,7 +149,7 @@ Many to One :end-before: --q4 .. index:: - single: withPointsKSP(Many to Many) + single: withPointsKSP ; Many to Many - Proposed on v3.6 Many to Many ............................................................................... @@ -169,7 +171,7 @@ Many to Many :end-before: --q5 .. index:: - single: withPointsKSP(Combinations) + single: withPointsKSP ; Combinations - Proposed on v3.6 Combinations ............................................................................... diff --git a/doc/withPoints/pgr_withPointsVia.rst b/doc/withPoints/pgr_withPointsVia.rst index 07108684a3..74c7798936 100644 --- a/doc/withPoints/pgr_withPointsVia.rst +++ b/doc/withPoints/pgr_withPointsVia.rst @@ -9,6 +9,11 @@ | +.. index:: + single: withPoints Family ; pgr_withPointsVia + single: With Points Category ; pgr_withPointsVia + single: Via Category ; pgr_withPointsVia + single: withPointsVia ``pgr_withPointsVia`` - Proposed =============================================================================== @@ -55,7 +60,7 @@ Signatures ------------------------------------------------------------------------------- .. index:: - single: withPointsVia - Proposed on v3.4 + single: withPointsVia ; One Via - Proposed on v3.4 One Via ............................................................................... diff --git a/doc/withPoints/withPoints-family.rst b/doc/withPoints/withPoints-family.rst index 43f72d17bb..28bc5b9da3 100644 --- a/doc/withPoints/withPoints-family.rst +++ b/doc/withPoints/withPoints-family.rst @@ -9,6 +9,7 @@ | +.. index:: withPoints Family withPoints - Family of functions =============================================================================== diff --git a/docqueries/breadthFirstSearch/CMakeLists.txt b/docqueries/breadthFirstSearch/CMakeLists.txt deleted file mode 100644 index 02c0b95bf6..0000000000 --- a/docqueries/breadthFirstSearch/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# Do not use extensions -SET(LOCAL_FILES - breadthFirstSearch - binaryBreadthFirstSearch - ) - -foreach (f ${LOCAL_FILES}) - configure_file("${f}.result" "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}.queries") - list(APPEND LOCAL_DOC_FILES "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}.queries") -endforeach() - -set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE) diff --git a/docqueries/breadthFirstSearch/test.conf b/docqueries/breadthFirstSearch/test.conf deleted file mode 100644 index 0e358e5a09..0000000000 --- a/docqueries/breadthFirstSearch/test.conf +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/perl -w - -%main::tests = ( - 'any' => { - 'files' => [qw( - breadthFirstSearch.pg - binaryBreadthFirstSearch.pg - )] - }, - -); - -1; diff --git a/docqueries/ordering/CMakeLists.txt b/docqueries/ordering/CMakeLists.txt index c7b6712ab1..9ae17c3d87 100644 --- a/docqueries/ordering/CMakeLists.txt +++ b/docqueries/ordering/CMakeLists.txt @@ -1,6 +1,7 @@ # Do not use extensions SET(LOCAL_FILES cuthillMckeeOrdering + topologicalSort ) foreach (f ${LOCAL_FILES}) @@ -8,4 +9,4 @@ foreach (f ${LOCAL_FILES}) list(APPEND LOCAL_DOC_FILES "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}.queries") endforeach() -set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE) \ No newline at end of file +set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE) diff --git a/docqueries/ordering/test.conf b/docqueries/ordering/test.conf index 257a2beef7..74ee3644ad 100644 --- a/docqueries/ordering/test.conf +++ b/docqueries/ordering/test.conf @@ -4,6 +4,7 @@ 'any' => { 'files' => [qw( cuthillMckeeOrdering.pg + topologicalSort.pg )] }, diff --git a/docqueries/topologicalSort/topologicalSort.pg b/docqueries/ordering/topologicalSort.pg similarity index 100% rename from docqueries/topologicalSort/topologicalSort.pg rename to docqueries/ordering/topologicalSort.pg diff --git a/docqueries/topologicalSort/topologicalSort.result b/docqueries/ordering/topologicalSort.result similarity index 100% rename from docqueries/topologicalSort/topologicalSort.result rename to docqueries/ordering/topologicalSort.result diff --git a/docqueries/pickDeliver/CMakeLists.txt b/docqueries/pickDeliver/CMakeLists.txt index 76b0015761..d9064c641f 100644 --- a/docqueries/pickDeliver/CMakeLists.txt +++ b/docqueries/pickDeliver/CMakeLists.txt @@ -2,6 +2,7 @@ SET(LOCAL_FILES pickDeliverEuclidean pickDeliver + vrpOneDepot lc101 ) diff --git a/docqueries/vrp_basic/oneDepotWrapper.pg b/docqueries/pickDeliver/oneDepotWrapper.pg similarity index 100% rename from docqueries/vrp_basic/oneDepotWrapper.pg rename to docqueries/pickDeliver/oneDepotWrapper.pg diff --git a/docqueries/vrp_basic/oneDepotWrapper.result b/docqueries/pickDeliver/oneDepotWrapper.result similarity index 100% rename from docqueries/vrp_basic/oneDepotWrapper.result rename to docqueries/pickDeliver/oneDepotWrapper.result diff --git a/docqueries/vrp_basic/solomon100-optimal.png b/docqueries/pickDeliver/solomon100-optimal.png similarity index 100% rename from docqueries/vrp_basic/solomon100-optimal.png rename to docqueries/pickDeliver/solomon100-optimal.png diff --git a/docqueries/pickDeliver/test.conf b/docqueries/pickDeliver/test.conf index 7b331a952e..ad136d8fae 100644 --- a/docqueries/pickDeliver/test.conf +++ b/docqueries/pickDeliver/test.conf @@ -2,9 +2,11 @@ %main::tests = ( 'any' => { + 'data' => ['../../tools/testers/solomon_100_rc101.data.sql'], 'files' => [qw( pickDeliver.pg pickDeliverEuclidean.pg + vrpOneDepot.pg lc101.pg )], diff --git a/docqueries/vrp_basic/vrpOneDepot.pg b/docqueries/pickDeliver/vrpOneDepot.pg similarity index 100% rename from docqueries/vrp_basic/vrpOneDepot.pg rename to docqueries/pickDeliver/vrpOneDepot.pg diff --git a/docqueries/vrp_basic/vrpOneDepot.result b/docqueries/pickDeliver/vrpOneDepot.result similarity index 100% rename from docqueries/vrp_basic/vrpOneDepot.result rename to docqueries/pickDeliver/vrpOneDepot.result diff --git a/docqueries/topologicalSort/CMakeLists.txt b/docqueries/topologicalSort/CMakeLists.txt deleted file mode 100644 index f2f5aae793..0000000000 --- a/docqueries/topologicalSort/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# Do not use extensions -SET(LOCAL_FILES - topologicalSort - ) - -foreach (f ${LOCAL_FILES}) - configure_file("${f}.result" "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}.queries") - list(APPEND LOCAL_DOC_FILES "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}.queries") -endforeach() - -set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE) diff --git a/docqueries/topologicalSort/test.conf b/docqueries/topologicalSort/test.conf deleted file mode 100644 index 4fb2719adf..0000000000 --- a/docqueries/topologicalSort/test.conf +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/perl -w - -%main::tests = ( - 'any' => { - 'files' => [qw( - topologicalSort.pg - )] - }, - -); - -1; diff --git a/docqueries/traversal/CMakeLists.txt b/docqueries/traversal/CMakeLists.txt index 6bc7709c8f..ade2fd2968 100644 --- a/docqueries/traversal/CMakeLists.txt +++ b/docqueries/traversal/CMakeLists.txt @@ -1,5 +1,7 @@ # Do not use extensions SET(LOCAL_FILES + binaryBreadthFirstSearch + breadthFirstSearch depthFirstSearch ) diff --git a/docqueries/breadthFirstSearch/binaryBreadthFirstSearch.pg b/docqueries/traversal/binaryBreadthFirstSearch.pg similarity index 100% rename from docqueries/breadthFirstSearch/binaryBreadthFirstSearch.pg rename to docqueries/traversal/binaryBreadthFirstSearch.pg diff --git a/docqueries/breadthFirstSearch/binaryBreadthFirstSearch.result b/docqueries/traversal/binaryBreadthFirstSearch.result similarity index 100% rename from docqueries/breadthFirstSearch/binaryBreadthFirstSearch.result rename to docqueries/traversal/binaryBreadthFirstSearch.result diff --git a/docqueries/breadthFirstSearch/breadthFirstSearch.pg b/docqueries/traversal/breadthFirstSearch.pg similarity index 100% rename from docqueries/breadthFirstSearch/breadthFirstSearch.pg rename to docqueries/traversal/breadthFirstSearch.pg diff --git a/docqueries/breadthFirstSearch/breadthFirstSearch.result b/docqueries/traversal/breadthFirstSearch.result similarity index 100% rename from docqueries/breadthFirstSearch/breadthFirstSearch.result rename to docqueries/traversal/breadthFirstSearch.result diff --git a/docqueries/traversal/test.conf b/docqueries/traversal/test.conf index 816840fe48..2ab2bd25b6 100644 --- a/docqueries/traversal/test.conf +++ b/docqueries/traversal/test.conf @@ -3,6 +3,8 @@ %main::tests = ( 'any' => { 'files' => [qw( + binaryBreadthFirstSearch.pg + breadthFirstSearch.pg depthFirstSearch.pg )] }, diff --git a/docqueries/vrp_basic/CMakeLists.txt b/docqueries/vrp_basic/CMakeLists.txt deleted file mode 100644 index b350952e7f..0000000000 --- a/docqueries/vrp_basic/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# Do not use extensions -SET(LOCAL_FILES - vrpOneDepot - ) - -foreach (f ${LOCAL_FILES}) - configure_file("${f}.result" "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}.queries") - list(APPEND LOCAL_DOC_FILES "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}.queries") -endforeach() - -set(PROJECT_DOC_FILES ${PROJECT_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE) diff --git a/docqueries/vrp_basic/test.conf b/docqueries/vrp_basic/test.conf deleted file mode 100644 index 63f256698e..0000000000 --- a/docqueries/vrp_basic/test.conf +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/perl -w - -%main::tests = ( - 'any' => { - 'data' => ['../../tools/testers/solomon_100_rc101.data.sql'], - 'files' => [qw( - vrpOneDepot.pg - )] - }, -); - -1; From e4cc807c87d6beaae60ca51233ec8f2972fe3d4c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 6 Jan 2025 09:29:45 -0600 Subject: [PATCH 066/141] Pump up to v3.7.2 --- .github/workflows/boost_version.yml | 2 +- .github/workflows/update.yml | 4 +- CMakeLists.txt | 3 +- NEWS.md | 5 + doc/src/release_notes.rst | 6 + docqueries/version/full_version.result | 2 +- docqueries/version/version.result | 2 +- locale/de/LC_MESSAGES/index.po | 4 +- .../de/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/en/LC_MESSAGES/index.po | 4 +- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 211 +++++++++++++----- locale/es/LC_MESSAGES/index.po | 4 +- .../es/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/ja/LC_MESSAGES/index.po | 4 +- .../ja/LC_MESSAGES/pgrouting_doc_strings.po | 2 +- locale/ko/LC_MESSAGES/index.po | 4 +- .../ko/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/pot/index.pot | 4 +- locale/pot/pgrouting_doc_strings.pot | 185 ++++++++++----- locale/zh_Hans/LC_MESSAGES/index.po | 4 +- .../LC_MESSAGES/pgrouting_doc_strings.po | 4 +- tools/developer/taptest.sh | 2 +- tools/testers/pg_prove_tests.sh | 2 +- 23 files changed, 331 insertions(+), 139 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 47836d5174..12446cd674 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -131,5 +131,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.7.1" + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.7.2" pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap" diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 09360eccb5..3999985ddf 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -29,7 +29,7 @@ jobs: fail-fast: false matrix: boost_minor: [56] - old_pgr: [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.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@v4 @@ -126,6 +126,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.7.1';" + psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.7.2';" 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/CMakeLists.txt b/CMakeLists.txt index c95d118d47..28ce8af810 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ include(pgr/BuildType) #--------------------------------------------- #--------------------------------------------- -project(PGROUTING VERSION 3.7.1 +project(PGROUTING VERSION 3.7.2 LANGUAGES C CXX ) set(PROJECT_VERSION_DEV "") string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER) @@ -33,6 +33,7 @@ string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC) set(MINORS 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6) set(OLD_SIGNATURES + 3.7.1 3.7.0 3.6.3 3.6.2 diff --git a/NEWS.md b/NEWS.md index eb011a8cf9..0214f3819a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -7,6 +7,11 @@ .. current + +### pgRouting 3.7.2 Release Notes + +No Changes Yet + ### pgRouting 3.7.1 Release Notes To see all issues & pull requests closed by this release see the [Git closed diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index ba1c510734..9901433cfe 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -37,6 +37,12 @@ pgRouting 3.7 .. current + +pgRouting 3.7.2 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + pgRouting 3.7.1 Release Notes ------------------------------------------------------------------------------- diff --git a/docqueries/version/full_version.result b/docqueries/version/full_version.result index 7d858d6672..0b919edee1 100644 --- a/docqueries/version/full_version.result +++ b/docqueries/version/full_version.result @@ -6,7 +6,7 @@ SET SELECT version, library FROM pgr_full_version(); version | library ---------+----------------- - 3.7.1 | pgrouting-3.7.1 + 3.7.2 | pgrouting-3.7.2 (1 row) /* -- q2 */ diff --git a/docqueries/version/version.result b/docqueries/version/version.result index 971b934de5..6a11e62607 100644 --- a/docqueries/version/version.result +++ b/docqueries/version/version.result @@ -6,7 +6,7 @@ SET SELECT pgr_version(); pgr_version ------------- - 3.7.1 + 3.7.2 (1 row) /* -- q2 */ diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po index f366a8d068..1535e61abb 100644 --- a/locale/de/LC_MESSAGES/index.po +++ b/locale/de/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po index ce77a916e0..ccfebb1940 100644 --- a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,10 +1,10 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po index e9864fc737..f160fd6b73 100644 --- a/locale/en/LC_MESSAGES/index.po +++ b/locale/en/LC_MESSAGES/index.po @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 43cec8140c..ecd3c5b6b4 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,21 +1,21 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-11 11:17-0600\n" +"POT-Creation-Date: 2025-01-06 09:19-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"Generated-By: Babel 2.16.0\n" msgid "BFS - Category" msgstr "" @@ -667,7 +667,7 @@ msgid "" "`__" msgstr "" -msgid "Vehicle Routing Functions - Category (Experimental)" +msgid "Vehicle Routing Functions - Category" msgstr "" msgid "Pickup and delivery problem" @@ -2587,9 +2587,6 @@ msgstr "" msgid ":doc:`aStar-family`" msgstr "" -msgid "Previous versions of this page" -msgstr "" - msgid "Bidirectional Dijkstra - Family of functions" msgstr "" @@ -3913,6 +3910,11 @@ msgid "" "of an undirected graph." msgstr "" +msgid "" +":doc:`pgr_topologicalSort` - Linear ordering of the vertices for directed" +" acyclic graph." +msgstr "" + msgid ":doc:`metrics-family`" msgstr "" @@ -3930,7 +3932,7 @@ msgstr "" msgid ":doc:`VRP-category`" msgstr "" -msgid "Unclassified" +msgid "Shortest Path Category" msgstr "" msgid ":doc:`pgr_bellmanFord`" @@ -3942,19 +3944,22 @@ msgstr "" msgid ":doc:`pgr_edwardMoore`" msgstr "" +msgid "Planar Family" +msgstr "" + msgid ":doc:`pgr_isPlanar`" msgstr "" -msgid ":doc:`pgr_stoerWagner`" +msgid "Miscellaneous Algoritms" msgstr "" -msgid ":doc:`pgr_topologicalSort`" +msgid ":doc:`pgr_lengauerTarjanDominatorTree`" msgstr "" -msgid ":doc:`pgr_transitiveClosure`" +msgid ":doc:`pgr_stoerWagner`" msgstr "" -msgid ":doc:`pgr_lengauerTarjanDominatorTree`" +msgid ":doc:`pgr_transitiveClosure`" msgstr "" msgid ":doc:`pgr_hawickCircuits`" @@ -4386,24 +4391,42 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" -msgid "pgRouting 4.0.0 Release Notes" +msgid "Current release" +msgstr "" + +msgid "pgRouting 3.7.2 Release Notes" +msgstr "" + +msgid "No Changes Yet" msgstr "" -msgid "Removal of deprecated functions and signatures" +msgid "pgRouting 3.7.1 Release Notes" msgstr "" +#, python-format msgid "" -"``pgr_trspviaedges(text,integer[],double " -"precision[],boolean,boolean,text)``" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.1 " +"`__" msgstr "" -msgid "pgRouting 3" +msgid "Bug fixes" msgstr "" -msgid "Minors 3.x" +msgid "" +"`#2680 `__ fails to " +"compile under mingw64 gcc 13.2" msgstr "" -msgid "pgRouting 3.7" +msgid "" +"`#2689 `__ When point " +"is a vertex, the withPoints family do not return results." +msgstr "" + +msgid "C/C++ code enhancemet" +msgstr "" + +msgid "TRSP family" msgstr "" msgid "pgRouting 3.7.0 Release Notes" @@ -4416,6 +4439,20 @@ msgid "" "`__" msgstr "" +msgid "Support" +msgstr "" + +msgid "" +"`#2656 `__ Stop support" +" of PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + msgid "New experimental functions" msgstr "" @@ -5493,29 +5530,38 @@ msgstr "" msgid ":doc:`pgr_trspVia`:" msgstr "" -msgid "Migration of pgr_trspViaEdges" +msgid "Migration of ``pgr_trspViaEdges``" msgstr "" -msgid "In this section this set of points is going to be used:" +msgid "" +"And will travel thru the following Via points " +":math:`4\\rightarrow3\\rightarrow6`" msgstr "" -msgid "Migrating pgr_trspViaEdges using pgr_withPointsVia" +msgid ":doc:`pgr_withPointsVia` when there are no restrictions," msgstr "" -msgid "Using :doc:`pgr_withPointsVia`." +msgid ":doc:`pgr_trspVia_withPoints` when there are restrictions." msgstr "" -msgid "" -"When the need of using the same (meaningless) names and and strict types " -"then convert the result to the deprecated function columns:" +msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia``" +msgstr "" + +msgid "Use :doc:`pgr_withPointsVia` instead." +msgstr "" + +msgid ":doc:`pgr_withPointsVia`:" msgstr "" -msgid "Migrating pgr_trspViaEdges using pgr_trspVia_withPoints" +msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints``" msgstr "" msgid "Use :doc:`pgr_trspVia_withPoints` instead." msgstr "" +msgid ":doc:`pgr_trspVia_withPoints`:" +msgstr "" + msgid ":doc:`withPoints-category`" msgstr "" @@ -7034,7 +7080,7 @@ msgid "Upgrading the database" msgstr "" msgid "" -"To upgrade pgRouting in the database to version 3.7.1 use the following " +"To upgrade pgRouting in the database to version 3.7.2 use the following " "command:" msgstr "" @@ -8232,9 +8278,6 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" -msgid "Support" -msgstr "" - msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -9732,9 +9775,6 @@ msgstr "" msgid "Name change from ``pgr_contractGraph``" msgstr "" -msgid "Bug fixes" -msgstr "" - msgid "" "Contraction reduces the size of the graph by removing some of the " "vertices and edges and, for example, might add edges that represent a " @@ -14255,6 +14295,11 @@ msgstr "" msgid "``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" msgstr "" +msgid "" +"``pgr_trspviaedges(text,integer[],double " +"precision[],boolean,boolean,text)``" +msgstr "" + msgid "New prototypes" msgstr "" @@ -14737,7 +14782,7 @@ msgid "pgr_turnRestrictedPath - Experimental" msgstr "" msgid "" -"``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex -Vertex routing " +"``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex - Vertex routing " "with restrictions" msgstr "" @@ -15560,7 +15605,7 @@ msgstr "" msgid "From the :doc:`TRSP-family`:" msgstr "" -msgid "Utilities" +msgid "Utilities Category" msgstr "" msgid ":doc:`pgr_findCloseEdges`" @@ -15580,18 +15625,81 @@ msgstr "" msgid "Mayors" msgstr "" -msgid "pgRouting 4" +msgid "pgRouting 3" msgstr "" -msgid "Minors 4.x" +msgid "Minors 3.x" msgstr "" -msgid "pgRouting 4.0" +msgid "pgRouting 3.7" msgstr "" msgid "pgRouting 3.6" msgstr "" +msgid "pgRouting 3.6.3 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.6.3 " +"`__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +msgid "postgis 3.0.0" +msgstr "" + +msgid "g++ 13+ is supported" +msgstr "" + +msgid "Code fixes" +msgstr "" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "" +"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" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "" + +msgid "pgr_stoerWagner" +msgstr "" + +msgid "pgtap tests" +msgstr "" + +msgid "bug fixes" +msgstr "" + msgid "pgRouting 3.6.2 Release Notes" msgstr "" @@ -15608,9 +15716,6 @@ msgstr "" msgid "The upgrade was failing for same minor" msgstr "" -msgid "Code fixes" -msgstr "" - msgid "Fix warnings from cpplint" msgstr "" @@ -15737,9 +15842,6 @@ msgid "" " simplification." msgstr "" -msgid "Documentation" -msgstr "" - msgid "" "`#2490 `__ Automatic " "page history links." @@ -15797,7 +15899,7 @@ msgstr "" msgid "" "`#2565 `__ " -"pgr_pgr_lengauerTarjanDominatorTree triggers an assertion" +"pgr_lengauerTarjanDominatorTree triggers an assertion" msgstr "" msgid "SQL enhancements" @@ -15808,9 +15910,6 @@ msgid "" "wildcards on SQL" msgstr "" -msgid "pgtap tests" -msgstr "" - msgid "" "`#2559 `__ pgtap test" " using sampledata" @@ -15974,6 +16073,9 @@ msgstr "" msgid "``pgr_degree``" msgstr "" +msgid "Utilities" +msgstr "" + msgid "``pgr_findCloseEdges`` (One point)" msgstr "" @@ -15986,6 +16088,9 @@ msgstr "" msgid "``pgr_cuthillMckeeOrdering``" msgstr "" +msgid "Unclassified" +msgstr "" + msgid "Flow functions" msgstr "" @@ -16268,9 +16373,6 @@ msgid "" " on Github." msgstr "" -msgid "Build" -msgstr "" - msgid "" "`#1850 `__: Change " "Boost min version to 1.56" @@ -16842,9 +16944,6 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" -msgid "pgr_stoerWagner" -msgstr "" - msgid "pgr_dagShortestpath" msgstr "" diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po index e176889b90..eab7937eab 100644 --- a/locale/es/LC_MESSAGES/index.po +++ b/locale/es/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-09-29 16:37+0000\n" diff --git a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po index f0d2299afe..89e257a6ce 100644 --- a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Pedro Jose Rios Vergara , 2022. @@ -8,7 +8,7 @@ # DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-10-10 19:43+0000\n" diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po index 1828aa5bb8..94d698138c 100644 --- a/locale/ja/LC_MESSAGES/index.po +++ b/locale/ja/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2024-05-01 03:45+0000\n" diff --git a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po index 8b981050cc..03a8e94e1d 100644 --- a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Translators: diff --git a/locale/ko/LC_MESSAGES/index.po b/locale/ko/LC_MESSAGES/index.po index e965b7f3d1..cbb8231af2 100644 --- a/locale/ko/LC_MESSAGES/index.po +++ b/locale/ko/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-11-15 15:30+0000\n" diff --git a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po index 091e4f5542..288efe44eb 100644 --- a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2022. # Hyung-Gyu Ryoo , 2022. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2022-12-13 12:30+0000\n" diff --git a/locale/pot/index.pot b/locale/pot/index.pot index ee39e02057..2938ac31f0 100644 --- a/locale/pot/index.pot +++ b/locale/pot/index.pot @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index fbf6ed4368..52b33b4fcf 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -1,14 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-11 11:17-0600\n" +"POT-Creation-Date: 2025-01-06 09:19-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -604,7 +604,7 @@ msgstr "" msgid "`Wikipedia: Traveling Salesman Problem `__" msgstr "" -msgid "Vehicle Routing Functions - Category (Experimental)" +msgid "Vehicle Routing Functions - Category" msgstr "" msgid "Pickup and delivery problem" @@ -2416,9 +2416,6 @@ msgstr "" msgid ":doc:`aStar-family`" msgstr "" -msgid "Previous versions of this page" -msgstr "" - msgid "Bidirectional Dijkstra - Family of functions" msgstr "" @@ -3532,6 +3529,9 @@ msgstr "" msgid ":doc:`pgr_cuthillMckeeOrdering` - Return reverse Cuthill-McKee ordering of an undirected graph." msgstr "" +msgid ":doc:`pgr_topologicalSort` - Linear ordering of the vertices for directed acyclic graph." +msgstr "" + msgid ":doc:`metrics-family`" msgstr "" @@ -3547,7 +3547,7 @@ msgstr "" msgid ":doc:`VRP-category`" msgstr "" -msgid "Unclassified" +msgid "Shortest Path Category" msgstr "" msgid ":doc:`pgr_bellmanFord`" @@ -3559,19 +3559,22 @@ msgstr "" msgid ":doc:`pgr_edwardMoore`" msgstr "" +msgid "Planar Family" +msgstr "" + msgid ":doc:`pgr_isPlanar`" msgstr "" -msgid ":doc:`pgr_stoerWagner`" +msgid "Miscellaneous Algoritms" msgstr "" -msgid ":doc:`pgr_topologicalSort`" +msgid ":doc:`pgr_lengauerTarjanDominatorTree`" msgstr "" -msgid ":doc:`pgr_transitiveClosure`" +msgid ":doc:`pgr_stoerWagner`" msgstr "" -msgid ":doc:`pgr_lengauerTarjanDominatorTree`" +msgid ":doc:`pgr_transitiveClosure`" msgstr "" msgid ":doc:`pgr_hawickCircuits`" @@ -3937,22 +3940,34 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" -msgid "pgRouting 4.0.0 Release Notes" +msgid "Current release" msgstr "" -msgid "Removal of deprecated functions and signatures" +msgid "pgRouting 3.7.2 Release Notes" msgstr "" -msgid "``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" +msgid "No Changes Yet" msgstr "" -msgid "pgRouting 3" +msgid "pgRouting 3.7.1 Release Notes" msgstr "" -msgid "Minors 3.x" +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.1 `__" msgstr "" -msgid "pgRouting 3.7" +msgid "Bug fixes" +msgstr "" + +msgid "`#2680 `__ fails to compile under mingw64 gcc 13.2" +msgstr "" + +msgid "`#2689 `__ When point is a vertex, the withPoints family do not return results." +msgstr "" + +msgid "C/C++ code enhancemet" +msgstr "" + +msgid "TRSP family" msgstr "" msgid "pgRouting 3.7.0 Release Notes" @@ -3961,6 +3976,18 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.0 `__" msgstr "" +msgid "Support" +msgstr "" + +msgid "`#2656 `__ Stop support of PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + msgid "New experimental functions" msgstr "" @@ -4903,27 +4930,36 @@ msgstr "" msgid ":doc:`pgr_trspVia`:" msgstr "" -msgid "Migration of pgr_trspViaEdges" +msgid "Migration of ``pgr_trspViaEdges``" +msgstr "" + +msgid "And will travel thru the following Via points :math:`4\\rightarrow3\\rightarrow6`" msgstr "" -msgid "In this section this set of points is going to be used:" +msgid ":doc:`pgr_withPointsVia` when there are no restrictions," msgstr "" -msgid "Migrating pgr_trspViaEdges using pgr_withPointsVia" +msgid ":doc:`pgr_trspVia_withPoints` when there are restrictions." msgstr "" -msgid "Using :doc:`pgr_withPointsVia`." +msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia``" msgstr "" -msgid "When the need of using the same (meaningless) names and and strict types then convert the result to the deprecated function columns:" +msgid "Use :doc:`pgr_withPointsVia` instead." msgstr "" -msgid "Migrating pgr_trspViaEdges using pgr_trspVia_withPoints" +msgid ":doc:`pgr_withPointsVia`:" +msgstr "" + +msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints``" msgstr "" msgid "Use :doc:`pgr_trspVia_withPoints` instead." msgstr "" +msgid ":doc:`pgr_trspVia_withPoints`:" +msgstr "" + msgid ":doc:`withPoints-category`" msgstr "" @@ -6172,7 +6208,7 @@ msgstr "" msgid "Upgrading the database" msgstr "" -msgid "To upgrade pgRouting in the database to version 3.7.1 use the following command:" +msgid "To upgrade pgRouting in the database to version 3.7.2 use the following command:" msgstr "" msgid "More information can be found in https://www.postgresql.org/docs/current/sql-createextension.html" @@ -7210,9 +7246,6 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" -msgid "Support" -msgstr "" - msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -8422,9 +8455,6 @@ msgstr "" msgid "Name change from ``pgr_contractGraph``" msgstr "" -msgid "Bug fixes" -msgstr "" - msgid "Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms." msgstr "" @@ -12214,6 +12244,9 @@ msgstr "" msgid "``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" msgstr "" +msgid "``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" +msgstr "" + msgid "New prototypes" msgstr "" @@ -12583,7 +12616,7 @@ msgstr "" msgid "pgr_turnRestrictedPath - Experimental" msgstr "" -msgid "``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex -Vertex routing with restrictions" +msgid "``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex - Vertex routing with restrictions" msgstr "" msgid "New experimental function" @@ -13216,7 +13249,7 @@ msgstr "" msgid "From the :doc:`TRSP-family`:" msgstr "" -msgid "Utilities" +msgid "Utilities Category" msgstr "" msgid ":doc:`pgr_findCloseEdges`" @@ -13234,18 +13267,75 @@ msgstr "" msgid "Mayors" msgstr "" -msgid "pgRouting 4" +msgid "pgRouting 3" msgstr "" -msgid "Minors 4.x" +msgid "Minors 3.x" msgstr "" -msgid "pgRouting 4.0" +msgid "pgRouting 3.7" msgstr "" msgid "pgRouting 3.6" msgstr "" +msgid "pgRouting 3.6.3 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.3 `__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "Explicit minimum requirements:" +msgstr "" + +msgid "postgres 11.0.0" +msgstr "" + +msgid "postgis 3.0.0" +msgstr "" + +msgid "g++ 13+ is supported" +msgstr "" + +msgid "Code fixes" +msgstr "" + +msgid "Fix warnings from cpplint." +msgstr "" + +msgid "Fix warnings from clang 18." +msgstr "" + +msgid "CI tests" +msgstr "" + +msgid "Add a clang tidy test on changed files." +msgstr "" + +msgid "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" +msgstr "" + +msgid "Documentation" +msgstr "" + +msgid "Results of documentation queries adujsted to boost 1.83.0 version:" +msgstr "" + +msgid "pgr_edgeDisjointPaths" +msgstr "" + +msgid "pgr_stoerWagner" +msgstr "" + +msgid "pgtap tests" +msgstr "" + +msgid "bug fixes" +msgstr "" + msgid "pgRouting 3.6.2 Release Notes" msgstr "" @@ -13258,9 +13348,6 @@ msgstr "" msgid "The upgrade was failing for same minor" msgstr "" -msgid "Code fixes" -msgstr "" - msgid "Fix warnings from cpplint" msgstr "" @@ -13351,9 +13438,6 @@ msgstr "" msgid "`#2522 `__ bdAstar code simplification." msgstr "" -msgid "Documentation" -msgstr "" - msgid "`#2490 `__ Automatic page history links." msgstr "" @@ -13399,7 +13483,7 @@ msgstr "" msgid "Issue fixes" msgstr "" -msgid "`#2565 `__ pgr_pgr_lengauerTarjanDominatorTree triggers an assertion" +msgid "`#2565 `__ pgr_lengauerTarjanDominatorTree triggers an assertion" msgstr "" msgid "SQL enhancements" @@ -13408,9 +13492,6 @@ msgstr "" msgid "`#2561 `__ Not use wildcards on SQL" msgstr "" -msgid "pgtap tests" -msgstr "" - msgid "`#2559 `__ pgtap test using sampledata" msgstr "" @@ -13543,6 +13624,9 @@ msgstr "" msgid "``pgr_degree``" msgstr "" +msgid "Utilities" +msgstr "" + msgid "``pgr_findCloseEdges`` (One point)" msgstr "" @@ -13555,6 +13639,9 @@ msgstr "" msgid "``pgr_cuthillMckeeOrdering``" msgstr "" +msgid "Unclassified" +msgstr "" + msgid "Flow functions" msgstr "" @@ -13768,9 +13855,6 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.2.0 `_ on Github." msgstr "" -msgid "Build" -msgstr "" - msgid "`#1850 `__: Change Boost min version to 1.56" msgstr "" @@ -14242,9 +14326,6 @@ msgstr "" msgid "pgr_turnRestrictedPath" msgstr "" -msgid "pgr_stoerWagner" -msgstr "" - msgid "pgr_dagShortestpath" msgstr "" diff --git a/locale/zh_Hans/LC_MESSAGES/index.po b/locale/zh_Hans/LC_MESSAGES/index.po index 47698a53d9..768909a5b9 100644 --- a/locale/zh_Hans/LC_MESSAGES/index.po +++ b/locale/zh_Hans/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2024-09-23 14:18+0000\n" diff --git a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po index acbac04c43..7812a76b3e 100644 --- a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.1 +# Copyright (C) pgRouting Contributors - Version v3.7.2 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. # Wangdapeng , 2023. @@ -9,7 +9,7 @@ # DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.1\n" +"Project-Id-Version: pgRouting v3.7.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-10-10 19:47+0000\n" diff --git a/tools/developer/taptest.sh b/tools/developer/taptest.sh index 25777967ec..e5461cee29 100755 --- a/tools/developer/taptest.sh +++ b/tools/developer/taptest.sh @@ -38,7 +38,7 @@ QUIET="-q" PGDATABASE="___pgr___test___" PGRVERSION="3.6.1 3.6.0 3.5.1 3.5.0 3.2.0 3.1.3 3.0.6" -PGRVERSION="3.7.0" +PGRVERSION="3.7.2" for v in ${PGRVERSION} diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh index 268f2cb2dd..841ec5c557 100755 --- a/tools/testers/pg_prove_tests.sh +++ b/tools/testers/pg_prove_tests.sh @@ -37,7 +37,7 @@ echo "$PGPORT" pushd ./tools/testers/ || exit 1 -bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.7.1" +bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.7.2" PGOPTIONS="-c client_min_messages=WARNING" pg_prove --failures --Q --recurse \ -S on_error_rollback=off \ From ae34f139fa1cf75b3811c882302510f2894e1193 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 6 Jan 2025 10:54:25 -0600 Subject: [PATCH 067/141] Fix #2706: pgr_betweennessCentrality --- NEWS.md | 5 +- doc/src/release_notes.rst | 5 +- include/cpp_common/to_postgres.hpp | 75 +++++++++++ include/metrics/betweennessCentrality.hpp | 122 +++++------------- .../betweennessCentrality/edge_cases.pg | 35 ++--- src/metrics/betweennessCentrality.c | 2 +- src/metrics/betweennessCentrality_driver.cpp | 9 +- 7 files changed, 139 insertions(+), 114 deletions(-) create mode 100644 include/cpp_common/to_postgres.hpp diff --git a/NEWS.md b/NEWS.md index 0214f3819a..6792f58d49 100644 --- a/NEWS.md +++ b/NEWS.md @@ -10,7 +10,10 @@ ### pgRouting 3.7.2 Release Notes -No Changes Yet +**Bug fixes** + +* [#2706](https://github.com/pgRouting/pgrouting/pull/2706) winnie crashing + on pgr_betweennessCentrality ### pgRouting 3.7.1 Release Notes diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 9901433cfe..356a0825ee 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -41,7 +41,10 @@ pgRouting 3.7 pgRouting 3.7.2 Release Notes ------------------------------------------------------------------------------- -No Changes Yet +.. rubric:: Bug fixes + +* `#2706 `__ winnie crashing + on pgr_betweennessCentrality pgRouting 3.7.1 Release Notes ------------------------------------------------------------------------------- diff --git a/include/cpp_common/to_postgres.hpp b/include/cpp_common/to_postgres.hpp new file mode 100644 index 0000000000..c671cbdd7a --- /dev/null +++ b/include/cpp_common/to_postgres.hpp @@ -0,0 +1,75 @@ +/*PGR-GNU***************************************************************** +File: to_postgres.hpp + +Copyright (c) 2015 pgRouting developers +Mail: project@pgrouting.org + +------ + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +********************************************************************PGR-GNU*/ + +#ifndef INCLUDE_CPP_COMMON_TO_POSTGRES_HPP_ +#define INCLUDE_CPP_COMMON_TO_POSTGRES_HPP_ +#pragma once + +#include +#include + +#include "c_types/iid_t_rt.h" + +#include "cpp_common/base_graph.hpp" +#include "cpp_common/alloc.hpp" + +namespace pgrouting { +namespace to_postgres { + +/** @brief Stored results on a vector are saved on a C array + * + * @param[in] graph Created graph with the base Graph + * @param[in] results results[i] -> the ith element of the vector contains the results + * @param[out] result_count The size of the vector + * @param[out] result_tuples The C array of + * + * = < i , 0, results[i] > + * + * Currently works for pgr_betweennessCentrality + */ +template +void vector_to_tuple( + const G &graph, + const std::vector results, + size_t &result_count, + IID_t_rt **result_tuples) { + result_count = results.size(); + *result_tuples = pgrouting::pgr_alloc(result_count, (*result_tuples)); + + size_t seq = 0; + for (typename G::V v_i = 0; v_i < graph.num_vertices(); ++v_i) { + (*result_tuples)[seq].from_vid = graph[v_i].id; + /* + * These 2 lines are specifically for pgr_betweennessCentrality + */ + (*result_tuples)[seq].to_vid = 0; + (*result_tuples)[seq].cost = graph.is_directed()? results[v_i] / 2.0 : results[v_i]; + seq++; + } +} + +} // namespace to_postgres +} // namespace pgrouting + +#endif // INCLUDE_CPP_COMMON_TO_POSTGRES_HPP_ diff --git a/include/metrics/betweennessCentrality.hpp b/include/metrics/betweennessCentrality.hpp index 8b145c0986..080dc16490 100644 --- a/include/metrics/betweennessCentrality.hpp +++ b/include/metrics/betweennessCentrality.hpp @@ -30,115 +30,53 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #pragma once #include -#include -#include #include #include -#include #include -#include #include "c_types/iid_t_rt.h" -#include "cpp_common/basePath_SSEC.hpp" #include "cpp_common/base_graph.hpp" #include "cpp_common/interruption.hpp" -#include "cpp_common/alloc.hpp" namespace pgrouting { -template class Pgr_metrics; +namespace metrics { template -void -pgr_betweennesscentrality( - G &graph, - size_t &result_tuple_count, - IID_t_rt **postgres_rows) { - Pgr_metrics fn_centrality; - fn_centrality.betweennessCentrality(graph, result_tuple_count, postgres_rows); -} - -template -class Pgr_metrics { - public: - using Graph = typename G::B_G; - using V = typename G::V; - using E = typename G::E; - typedef typename boost::graph_traits::directed_category directed_category; - - void betweennessCentrality( - const G &graph, - size_t &result_tuple_count, - IID_t_rt **postgres_rows) { - // required parameters - std::vector centrality(boost::num_vertices(graph.graph), 0.0); - auto centrality_map = boost::make_iterator_property_map(centrality.begin(), - boost::get(boost::vertex_index, graph.graph)); - std::vector distance(boost::num_vertices(graph.graph), 0.0); - auto distance_map = boost::make_iterator_property_map(distance.begin(), - boost::get(boost::vertex_index, graph.graph)); - // dummy parameters - std::vector edge_centrality(boost::num_edges(graph.graph), 0.0); - auto edge_centrality_map = boost::make_iterator_property_map(edge_centrality.begin(), - boost::get(&pgrouting::Basic_edge::cost, - graph.graph)); - std::vector> incoming(boost::num_vertices(graph.graph)); - auto incoming_map = boost::make_iterator_property_map(incoming.begin(), - boost::get(boost::vertex_index, graph.graph), - std::vector()); - std::vector dependency(boost::num_vertices(graph.graph), 0.0); - auto dependency_map = boost::make_iterator_property_map(dependency.begin(), - boost::get(boost::vertex_index, graph.graph)); - std::vector path_count(boost::num_vertices(graph.graph), 0); - auto path_count_map = boost::make_iterator_property_map(path_count.begin(), - boost::get(boost::vertex_index, graph.graph)); - auto vertex_index = boost::get(boost::vertex_index, graph.graph); - - /* abort in case of an interruption occurs (e.g. the query is being cancelled) */ - CHECK_FOR_INTERRUPTS(); - - boost::brandes_betweenness_centrality( +std::vector betweennessCentrality( + const G &graph + ) { + std::vector centrality(boost::num_vertices(graph.graph), 0.0); + auto centrality_map = boost::make_iterator_property_map(centrality.begin(), + boost::get(boost::vertex_index, graph.graph)); + + CHECK_FOR_INTERRUPTS(); + + try { + boost::brandes_betweenness_centrality( + graph.graph, + centrality_map); + + if (boost::num_vertices(graph.graph) > 2) { + boost::relative_betweenness_centrality( graph.graph, - centrality_map, - edge_centrality_map, - incoming_map, - distance_map, - dependency_map, - path_count_map, - vertex_index, - get(&pgrouting::Basic_edge::cost, graph.graph)); - - if (boost::num_vertices(graph.graph) > 2) { - boost::relative_betweenness_centrality( - graph.graph, - centrality_map); + centrality_map); + } + } catch (boost::exception const& ex) { + (void)ex; + throw; + } catch (std::exception &e) { + (void)e; + throw; + } catch (...) { + throw; } - generate_results(graph, centrality, result_tuple_count, postgres_rows); - } + return centrality; +} - private: - void generate_results( - const G &graph, - const std::vector centrality_results, - size_t &result_tuple_count, - IID_t_rt **postgres_rows) const { - result_tuple_count = centrality_results.size(); - *postgres_rows = pgr_alloc(result_tuple_count, (*postgres_rows)); - - size_t seq = 0; - for (typename G::V v_i = 0; v_i < graph.num_vertices(); ++v_i) { - (*postgres_rows)[seq].from_vid = graph[v_i].id; - (*postgres_rows)[seq].to_vid = 0; - (*postgres_rows)[seq].cost = centrality_results[v_i]; - if (std::is_same::value) { - (*postgres_rows)[seq].cost = centrality_results[v_i]/2.0; - } - seq++; - } - } -}; +} // namespace metrics } // namespace pgrouting #endif // INCLUDE_METRICS_BETWEENNESSCENTRALITY_HPP_ diff --git a/pgtap/metrics/betweennessCentrality/edge_cases.pg b/pgtap/metrics/betweennessCentrality/edge_cases.pg index d4582a4889..14bc11acb3 100644 --- a/pgtap/metrics/betweennessCentrality/edge_cases.pg +++ b/pgtap/metrics/betweennessCentrality/edge_cases.pg @@ -75,7 +75,7 @@ RETURN QUERY SELECT lives_ok('idless4_q'); RETURN QUERY -SELECT results_eq('idless4_q', 'idless4_r'); +SELECT results_eq('idless4_q', 'idless4_r', 'test 4'); PREPARE idless3_q AS @@ -95,7 +95,7 @@ RETURN QUERY SELECT lives_ok('idless3_q'); RETURN QUERY -SELECT results_eq('idless3_q', 'idless3_r'); +SELECT results_eq('idless3_q', 'idless3_r', 'test 6'); PREPARE idless2_q AS SELECT * FROM pgr_betweennessCentrality( @@ -120,7 +120,7 @@ SELECT results_eq('idless2_q', 'idless2_r'); PREPARE idless5ud_q AS SELECT * FROM pgr_betweennessCentrality( 'SELECT id, source, target, cost, reverse_cost - FROM edges WHERE id < 5', directed => false ) ORDER BY vid; + FROM edges WHERE id < 5', directed => false ) ORDER BY vid; PREPARE idless5ud_r AS SELECT * FROM (VALUES @@ -135,18 +135,20 @@ RETURN QUERY SELECT lives_ok('idless5ud_q'); RETURN QUERY -SELECT results_eq('idless5ud_q', 'idless5ud_r'); +SELECT results_eq('idless5ud_q', 'idless5ud_r', 'test 10'); + PREPARE idless4ud_q AS SELECT * FROM pgr_betweennessCentrality( 'SELECT id, source, target, cost, reverse_cost - FROM edges WHERE id < 4', directed => false ) ORDER BY vid; + FROM edges WHERE id < 4', directed => false) ORDER BY vid; PREPARE idless4ud_r AS SELECT * FROM (VALUES (5::BIGINT , 0::FLOAT), (6 , 0.6666666666666666), - (10 , 0.6666666666666666), (15 , 0)) + (10 , 0.6666666666666666), + (15 , 0)) AS t(vid, centrality); RETURN QUERY @@ -159,7 +161,7 @@ SELECT results_eq('idless4ud_q', 'idless4ud_r'); PREPARE idless3ud_q AS SELECT * FROM pgr_betweennessCentrality( 'SELECT id, source, target, cost, reverse_cost - FROM edges WHERE id < 3', directed => false ) ORDER BY vid; + FROM edges WHERE id < 3', directed => false) ORDER BY vid; PREPARE idless3ud_r AS SELECT * FROM (VALUES @@ -172,7 +174,7 @@ RETURN QUERY SELECT lives_ok('idless3ud_q'); RETURN QUERY -SELECT results_eq('idless3ud_q', 'idless3ud_r'); +SELECT results_eq('idless3ud_q', 'idless3ud_r', 'test 14'); PREPARE idless2ud_q AS SELECT * FROM pgr_betweennessCentrality( @@ -190,7 +192,7 @@ RETURN QUERY SELECT lives_ok('idless2ud_q'); RETURN QUERY -SELECT results_eq('idless2ud_q', 'idless2ud_r'); +SELECT results_eq('idless2ud_q', 'idless2ud_r', 'test 16'); /* Explicit Directed Cases */ @@ -198,7 +200,7 @@ SELECT results_eq('idless2ud_q', 'idless2ud_r'); PREPARE idless5d_q AS SELECT * FROM pgr_betweennessCentrality( 'SELECT id, source, target, cost, reverse_cost - FROM edges WHERE id < 5', directed => true ) ORDER BY vid; + FROM edges WHERE id < 5', directed => true ) ORDER BY vid; PREPARE idless5d_r AS SELECT * FROM (VALUES @@ -213,13 +215,13 @@ RETURN QUERY SELECT lives_ok('idless5d_q'); RETURN QUERY -SELECT results_eq('idless5d_q', 'idless5d_r'); +SELECT results_eq('idless5d_q', 'idless5d_r', 'test 18'); PREPARE idless4d_q AS SELECT * FROM pgr_betweennessCentrality( 'SELECT id, source, target, cost, reverse_cost - FROM edges WHERE id < 4', directed => true ) ORDER BY vid; + FROM edges WHERE id < 4', directed => true) ORDER BY vid; PREPARE idless4d_r AS SELECT * FROM (VALUES @@ -233,13 +235,13 @@ RETURN QUERY SELECT lives_ok('idless4d_q'); RETURN QUERY -SELECT results_eq('idless4d_q', 'idless4d_r'); +SELECT results_eq('idless4d_q', 'idless4d_r', 'test 20'); PREPARE idless3d_q AS SELECT * FROM pgr_betweennessCentrality( 'SELECT id, source, target, cost, reverse_cost - FROM edges WHERE id < 3', directed => true ) ORDER BY vid; + FROM edges WHERE id < 3', directed => true) ORDER BY vid; PREPARE idless3d_r AS SELECT * FROM (VALUES @@ -252,7 +254,8 @@ RETURN QUERY SELECT lives_ok('idless3d_q'); RETURN QUERY -SELECT results_eq('idless3d_q', 'idless3d_r'); +SELECT results_eq('idless3d_q', 'idless3d_r', 'test 22'); + PREPARE idless2d_q AS SELECT * FROM pgr_betweennessCentrality( @@ -270,7 +273,7 @@ RETURN QUERY SELECT lives_ok('idless2d_q'); RETURN QUERY -SELECT results_eq('idless2d_q', 'idless2d_r'); +SELECT results_eq('idless2d_q', 'idless2d_r', 'test 24'); END; $BODY$ diff --git a/src/metrics/betweennessCentrality.c b/src/metrics/betweennessCentrality.c index bbebd4f3cd..6890c259a9 100644 --- a/src/metrics/betweennessCentrality.c +++ b/src/metrics/betweennessCentrality.c @@ -60,7 +60,7 @@ process( result_count, &log_msg, &err_msg); - time_msg(" processing Centrality", start_t, clock()); + time_msg(" processing pgr_betweenessCentrality", start_t, clock()); if (err_msg && (*result_tuples)) { pfree(*result_tuples); diff --git a/src/metrics/betweennessCentrality_driver.cpp b/src/metrics/betweennessCentrality_driver.cpp index 5b71b13234..e015b2280b 100644 --- a/src/metrics/betweennessCentrality_driver.cpp +++ b/src/metrics/betweennessCentrality_driver.cpp @@ -35,7 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include "metrics/betweennessCentrality.hpp" #include "cpp_common/pgdata_getters.hpp" - +#include "cpp_common/to_postgres.hpp" #include "cpp_common/assert.hpp" @@ -61,6 +61,9 @@ pgr_do_betweennessCentrality( pgassert(!(*return_tuples)); pgassert(*return_count == 0); + using pgrouting::metrics::betweennessCentrality; + using pgrouting::to_postgres::vector_to_tuple; + hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, true); @@ -73,12 +76,12 @@ pgr_do_betweennessCentrality( log << "Processing Directed graph\n"; pgrouting::DirectedGraph digraph; digraph.insert_edges(edges); - pgr_betweennesscentrality(digraph, *return_count, return_tuples); + vector_to_tuple(digraph, betweennessCentrality(digraph), *return_count, return_tuples); } else { log << "Processing Undirected graph\n"; pgrouting::UndirectedGraph undigraph; undigraph.insert_edges(edges); - pgr_betweennesscentrality(undigraph, *return_count, return_tuples); + vector_to_tuple(undigraph, betweennessCentrality(undigraph), *return_count, return_tuples); } From 47365348c8ead20599aaf9e873ee47824e7b425c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 6 Jan 2025 13:24:31 -0600 Subject: [PATCH 068/141] Fix #2707 include cstdint - (C++) Adding include cstdint - (C++) fixing warning -Wtemplate-id-cdtor - Update NEWS & release_notes --- NEWS.md | 6 ++++++ doc/src/release_notes.rst | 6 ++++++ include/astar/astar.hpp | 1 + include/bdAstar/bdAstar.hpp | 1 + include/bellman_ford/bellman_ford.hpp | 2 ++ include/bellman_ford/edwardMoore.hpp | 1 + include/bgraph/graph_to_edges.hpp | 1 + include/bgraph/line_graph.hpp | 1 + include/breadthFirstSearch/binaryBreadthFirstSearch.hpp | 1 + include/breadthFirstSearch/breadthFirstSearch.hpp | 1 + include/chinese/chinesePostman.hpp | 1 + include/coloring/bipartite_driver.hpp | 1 + include/coloring/edgeColoring.hpp | 1 + include/coloring/sequentialVertexColoring.hpp | 1 + include/components/components.hpp | 1 + include/components/componentsResult.hpp | 1 + include/components/makeConnected.hpp | 1 + include/contraction/contract.hpp | 4 +++- include/contraction/contractionGraph.hpp | 3 ++- include/contraction/linearContraction.hpp | 1 + include/cpp_common/basePath_SSEC.hpp | 1 + include/cpp_common/base_graph.hpp | 5 +++-- include/cpp_common/basic_edge.hpp | 2 +- include/cpp_common/basic_vertex.hpp | 1 + include/cpp_common/bidirectional.hpp | 1 + include/cpp_common/ch_edge.hpp | 2 ++ include/cpp_common/ch_vertex.hpp | 2 ++ include/cpp_common/get_data.hpp | 1 + include/cpp_common/identifier.hpp | 5 +---- include/cpp_common/identifiers.hpp | 6 +++--- include/cpp_common/line_vertex.hpp | 1 + include/cpp_common/path_t.hpp | 2 +- include/cpp_common/pgdata_fetchers.hpp | 1 + include/cpp_common/trsp_pgfetch.hpp | 2 ++ include/cpp_common/xy_vertex.hpp | 1 + include/dagShortestPath/dagShortestPath.hpp | 1 + include/dijkstra/dijkstra.hpp | 1 + include/dijkstra/dijkstraVia.hpp | 1 + include/dijkstra/drivingDist.hpp | 1 + include/dominator/lengauerTarjanDominatorTree_driver.hpp | 1 + include/lineGraph/lineGraphFull.hpp | 5 +++-- include/max_flow/flowgraph.hpp | 2 ++ include/max_flow/maxflow.hpp | 1 + include/max_flow/maximumcardinalitymatching.hpp | 1 + include/max_flow/minCostMaxFlow.hpp | 1 + include/ordering/cuthillMckeeOrdering.hpp | 1 + include/planar/boyerMyrvold.hpp | 1 + include/spanningTree/details.hpp | 2 ++ include/spanningTree/kruskal.hpp | 2 ++ include/spanningTree/mst.hpp | 1 + include/spanningTree/prim.hpp | 1 + include/traversal/depthFirstSearch.hpp | 1 + include/trsp/edgeInfo.hpp | 1 + include/trsp/trspHandler.hpp | 1 + include/tsp/tsp.hpp | 1 + include/visitors/dfs_visitor.hpp | 1 + include/vrp/dnode.hpp | 2 ++ include/vrp/order.hpp | 2 ++ include/vrp/tw_node.hpp | 1 + include/vrp/vehicle.hpp | 1 + include/vrp/vehicle_pickDeliver.hpp | 2 ++ include/withPoints/withPoints.hpp | 2 ++ include/yen/ksp.hpp | 1 + include/yen/turnRestrictedPath.hpp | 1 + 64 files changed, 94 insertions(+), 15 deletions(-) diff --git a/NEWS.md b/NEWS.md index 6792f58d49..7dd2b08fb0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -10,8 +10,14 @@ ### 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 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%203.7.2%22) + **Bug fixes** +* [#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 diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 356a0825ee..b3dd61a4e5 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -41,8 +41,14 @@ pgRouting 3.7 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 +`__ + .. rubric:: Bug fixes +* `#2707 `__ Build failure in + pgRouting 3.7.1 on Alpine * `#2706 `__ winnie crashing on pgr_betweennessCentrality diff --git a/include/astar/astar.hpp b/include/astar/astar.hpp index 32736025f0..c00ec0c00d 100644 --- a/include/astar/astar.hpp +++ b/include/astar/astar.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include diff --git a/include/bdAstar/bdAstar.hpp b/include/bdAstar/bdAstar.hpp index cbaa86a308..3c0e160aa2 100644 --- a/include/bdAstar/bdAstar.hpp +++ b/include/bdAstar/bdAstar.hpp @@ -34,6 +34,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "cpp_common/bidirectional.hpp" #include "cpp_common/basePath_SSEC.hpp" diff --git a/include/bellman_ford/bellman_ford.hpp b/include/bellman_ford/bellman_ford.hpp index 06e704cfcc..3134c5bf9c 100644 --- a/include/bellman_ford/bellman_ford.hpp +++ b/include/bellman_ford/bellman_ford.hpp @@ -38,6 +38,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include + #include #include #include diff --git a/include/bellman_ford/edwardMoore.hpp b/include/bellman_ford/edwardMoore.hpp index d85ef2e2d7..d5fe38680e 100644 --- a/include/bellman_ford/edwardMoore.hpp +++ b/include/bellman_ford/edwardMoore.hpp @@ -30,6 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "cpp_common/basePath_SSEC.hpp" #include "cpp_common/base_graph.hpp" diff --git a/include/bgraph/graph_to_edges.hpp b/include/bgraph/graph_to_edges.hpp index 05e805e375..945c2b9989 100644 --- a/include/bgraph/graph_to_edges.hpp +++ b/include/bgraph/graph_to_edges.hpp @@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/bgraph/line_graph.hpp b/include/bgraph/line_graph.hpp index 4d6435e517..bb9567190f 100644 --- a/include/bgraph/line_graph.hpp +++ b/include/bgraph/line_graph.hpp @@ -27,6 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #define INCLUDE_BGRAPH_LINE_GRAPH_HPP_ #include +#include #include #include diff --git a/include/breadthFirstSearch/binaryBreadthFirstSearch.hpp b/include/breadthFirstSearch/binaryBreadthFirstSearch.hpp index 605733b53b..a3026be2c2 100644 --- a/include/breadthFirstSearch/binaryBreadthFirstSearch.hpp +++ b/include/breadthFirstSearch/binaryBreadthFirstSearch.hpp @@ -32,6 +32,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "cpp_common/basePath_SSEC.hpp" #include "cpp_common/base_graph.hpp" diff --git a/include/breadthFirstSearch/breadthFirstSearch.hpp b/include/breadthFirstSearch/breadthFirstSearch.hpp index 83e139ad58..32c43814f3 100644 --- a/include/breadthFirstSearch/breadthFirstSearch.hpp +++ b/include/breadthFirstSearch/breadthFirstSearch.hpp @@ -27,6 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include #include diff --git a/include/chinese/chinesePostman.hpp b/include/chinese/chinesePostman.hpp index 501769a111..dc6adba91e 100644 --- a/include/chinese/chinesePostman.hpp +++ b/include/chinese/chinesePostman.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "max_flow/minCostMaxFlow.hpp" #include "c_types/path_rt.h" diff --git a/include/coloring/bipartite_driver.hpp b/include/coloring/bipartite_driver.hpp index 10589a5523..038690ef8b 100644 --- a/include/coloring/bipartite_driver.hpp +++ b/include/coloring/bipartite_driver.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/coloring/edgeColoring.hpp b/include/coloring/edgeColoring.hpp index 897b3f4ace..119c77eb0a 100644 --- a/include/coloring/edgeColoring.hpp +++ b/include/coloring/edgeColoring.hpp @@ -30,6 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/coloring/sequentialVertexColoring.hpp b/include/coloring/sequentialVertexColoring.hpp index d9d3d117aa..87753aba98 100644 --- a/include/coloring/sequentialVertexColoring.hpp +++ b/include/coloring/sequentialVertexColoring.hpp @@ -28,6 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/components/components.hpp b/include/components/components.hpp index 350bcc1738..ff5ebebecf 100644 --- a/include/components/components.hpp +++ b/include/components/components.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/components/componentsResult.hpp b/include/components/componentsResult.hpp index a91883f0cc..5e13852aaa 100644 --- a/include/components/componentsResult.hpp +++ b/include/components/componentsResult.hpp @@ -30,6 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #pragma once #include +#include #include "c_types/ii_t_rt.h" diff --git a/include/components/makeConnected.hpp b/include/components/makeConnected.hpp index 89dbc3272b..69b4efc69d 100644 --- a/include/components/makeConnected.hpp +++ b/include/components/makeConnected.hpp @@ -28,6 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/contraction/contract.hpp b/include/contraction/contract.hpp index 474b6f5fa5..c270e48390 100644 --- a/include/contraction/contract.hpp +++ b/include/contraction/contract.hpp @@ -33,13 +33,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include -#include "cpp_common/assert.hpp" +#include #include "contraction/contractionGraph.hpp" #include "contraction/ch_graphs.hpp" #include "contraction/linearContraction.hpp" #include "contraction/deadEndContraction.hpp" +#include "cpp_common/assert.hpp" + namespace pgrouting { namespace contraction { diff --git a/include/contraction/contractionGraph.hpp b/include/contraction/contractionGraph.hpp index 75cd790ec9..7268aaa258 100644 --- a/include/contraction/contractionGraph.hpp +++ b/include/contraction/contractionGraph.hpp @@ -36,6 +36,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include @@ -58,7 +59,7 @@ class Pgr_contractionGraph : public Pgr_base_graph() + explicit Pgr_contractionGraph() : Pgr_base_graph() { } diff --git a/include/contraction/linearContraction.hpp b/include/contraction/linearContraction.hpp index 704d0f34f6..ff165f3743 100644 --- a/include/contraction/linearContraction.hpp +++ b/include/contraction/linearContraction.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/cpp_common/basePath_SSEC.hpp b/include/cpp_common/basePath_SSEC.hpp index aa7d4017fc..82e1ac293e 100644 --- a/include/cpp_common/basePath_SSEC.hpp +++ b/include/cpp_common/basePath_SSEC.hpp @@ -36,6 +36,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "cpp_common/undefPostgresDefine.hpp" diff --git a/include/cpp_common/base_graph.hpp b/include/cpp_common/base_graph.hpp index 72efb41d13..d0115001e7 100644 --- a/include/cpp_common/base_graph.hpp +++ b/include/cpp_common/base_graph.hpp @@ -36,6 +36,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include @@ -265,7 +266,7 @@ class Pgr_base_graph { - inserts the vertices - The vertices must be checked (if necessary) before calling the constructor */ - explicit Pgr_base_graph( + explicit Pgr_base_graph( const std::vector &vertices) : graph(vertices.size()), m_is_directed(t_directed), @@ -295,7 +296,7 @@ class Pgr_base_graph { /** Prepares the _graph_ to be of type gtype with 0 vertices */ - explicit Pgr_base_graph() + explicit Pgr_base_graph() : graph(0), m_is_directed(t_directed), vertIndex(boost::get(boost::vertex_index, graph)), diff --git a/include/cpp_common/basic_edge.hpp b/include/cpp_common/basic_edge.hpp index 5353ebf014..9ba784466d 100644 --- a/include/cpp_common/basic_edge.hpp +++ b/include/cpp_common/basic_edge.hpp @@ -31,7 +31,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #define INCLUDE_CPP_COMMON_BASIC_EDGE_HPP_ #pragma once -#include +#include namespace pgrouting { diff --git a/include/cpp_common/basic_vertex.hpp b/include/cpp_common/basic_vertex.hpp index e4300311e2..e5c4fa99c4 100644 --- a/include/cpp_common/basic_vertex.hpp +++ b/include/cpp_common/basic_vertex.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include "cpp_common/edge_t.hpp" diff --git a/include/cpp_common/bidirectional.hpp b/include/cpp_common/bidirectional.hpp index ded4d8129b..307a34affa 100644 --- a/include/cpp_common/bidirectional.hpp +++ b/include/cpp_common/bidirectional.hpp @@ -41,6 +41,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/cpp_common/ch_edge.hpp b/include/cpp_common/ch_edge.hpp index 879b9dd7a9..2c7466d795 100644 --- a/include/cpp_common/ch_edge.hpp +++ b/include/cpp_common/ch_edge.hpp @@ -33,6 +33,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include + #include "cpp_common/ch_vertex.hpp" namespace pgrouting { diff --git a/include/cpp_common/ch_vertex.hpp b/include/cpp_common/ch_vertex.hpp index 2de3697d5b..ec7053cc77 100644 --- a/include/cpp_common/ch_vertex.hpp +++ b/include/cpp_common/ch_vertex.hpp @@ -28,9 +28,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ #ifndef INCLUDE_CPP_COMMON_CH_VERTEX_HPP_ #define INCLUDE_CPP_COMMON_CH_VERTEX_HPP_ + #include #include #include +#include #include "cpp_common/edge_t.hpp" #include "cpp_common/identifiers.hpp" diff --git a/include/cpp_common/get_data.hpp b/include/cpp_common/get_data.hpp index b9b93393c0..91c6bc4388 100644 --- a/include/cpp_common/get_data.hpp +++ b/include/cpp_common/get_data.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include "cpp_common/info_t.hpp" #include "cpp_common/get_check_data.hpp" diff --git a/include/cpp_common/identifier.hpp b/include/cpp_common/identifier.hpp index 8606a4d556..073752ba9a 100644 --- a/include/cpp_common/identifier.hpp +++ b/include/cpp_common/identifier.hpp @@ -31,10 +31,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #define INCLUDE_CPP_COMMON_IDENTIFIER_HPP_ #pragma once -#if defined(__MINGW32__) || defined(_MSC_VER) -#include -#endif - +#include #include namespace pgrouting { diff --git a/include/cpp_common/identifiers.hpp b/include/cpp_common/identifiers.hpp index 4cc68806c3..3a6d75dda7 100644 --- a/include/cpp_common/identifiers.hpp +++ b/include/cpp_common/identifiers.hpp @@ -54,15 +54,15 @@ class Identifiers { //! @name constructors //@{ - Identifiers() = default; - Identifiers(const std::set& data) : m_ids(data) { + Identifiers() = default; + explicit Identifiers(const std::set& data) : m_ids(data) { } /* @brief initializes with {1 ~ number} * * @params [in] number */ - explicit Identifiers(const size_t number) { + explicit Identifiers(const size_t number) { size_t i(0); std::generate_n(std::inserter(m_ids, m_ids.begin()), number, diff --git a/include/cpp_common/line_vertex.hpp b/include/cpp_common/line_vertex.hpp index f5f6a3c519..983ab3f0dd 100644 --- a/include/cpp_common/line_vertex.hpp +++ b/include/cpp_common/line_vertex.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include "cpp_common/edge_t.hpp" diff --git a/include/cpp_common/path_t.hpp b/include/cpp_common/path_t.hpp index 5e862bab73..ff2b8048a3 100644 --- a/include/cpp_common/path_t.hpp +++ b/include/cpp_common/path_t.hpp @@ -31,7 +31,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #define INCLUDE_CPP_COMMON_PATH_T_HPP_ #pragma once -#include +#include struct Path_t { int64_t node; diff --git a/include/cpp_common/pgdata_fetchers.hpp b/include/cpp_common/pgdata_fetchers.hpp index 5a435476b6..46adc6b60b 100644 --- a/include/cpp_common/pgdata_fetchers.hpp +++ b/include/cpp_common/pgdata_fetchers.hpp @@ -45,6 +45,7 @@ extern "C" { } #include +#include #include "cpp_common/undefPostgresDefine.hpp" diff --git a/include/cpp_common/trsp_pgfetch.hpp b/include/cpp_common/trsp_pgfetch.hpp index cfecff79e0..32885aaeb2 100644 --- a/include/cpp_common/trsp_pgfetch.hpp +++ b/include/cpp_common/trsp_pgfetch.hpp @@ -57,6 +57,8 @@ extern "C" { } #include +#include + #include "cpp_common/undefPostgresDefine.hpp" using Edge_t = struct Edge_rt; diff --git a/include/cpp_common/xy_vertex.hpp b/include/cpp_common/xy_vertex.hpp index 50b475aeac..baff1e4dbf 100644 --- a/include/cpp_common/xy_vertex.hpp +++ b/include/cpp_common/xy_vertex.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include +#include #include "cpp_common/bpoint.hpp" #include "cpp_common/edge_xy_t.hpp" diff --git a/include/dagShortestPath/dagShortestPath.hpp b/include/dagShortestPath/dagShortestPath.hpp index 89797f1300..e15eecc66c 100644 --- a/include/dagShortestPath/dagShortestPath.hpp +++ b/include/dagShortestPath/dagShortestPath.hpp @@ -37,6 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/dijkstra/dijkstra.hpp b/include/dijkstra/dijkstra.hpp index a51505d7fa..7ba860d9bf 100644 --- a/include/dijkstra/dijkstra.hpp +++ b/include/dijkstra/dijkstra.hpp @@ -44,6 +44,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/dijkstra/dijkstraVia.hpp b/include/dijkstra/dijkstraVia.hpp index 0287870f90..d135c94258 100644 --- a/include/dijkstra/dijkstraVia.hpp +++ b/include/dijkstra/dijkstraVia.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "dijkstra/dijkstra.hpp" diff --git a/include/dijkstra/drivingDist.hpp b/include/dijkstra/drivingDist.hpp index 39858e4bf5..897cd4ef62 100644 --- a/include/dijkstra/drivingDist.hpp +++ b/include/dijkstra/drivingDist.hpp @@ -44,6 +44,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include diff --git a/include/dominator/lengauerTarjanDominatorTree_driver.hpp b/include/dominator/lengauerTarjanDominatorTree_driver.hpp index 52c1d844a8..9b73984bdf 100644 --- a/include/dominator/lengauerTarjanDominatorTree_driver.hpp +++ b/include/dominator/lengauerTarjanDominatorTree_driver.hpp @@ -34,6 +34,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include #include diff --git a/include/lineGraph/lineGraphFull.hpp b/include/lineGraph/lineGraphFull.hpp index a6cf3dff59..b7f5ba5967 100644 --- a/include/lineGraph/lineGraphFull.hpp +++ b/include/lineGraph/lineGraphFull.hpp @@ -36,6 +36,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include"c_types/line_graph_full_rt.h" #include "cpp_common/base_graph.hpp" @@ -55,12 +56,12 @@ class Pgr_lineGraphFull : public Pgr_base_graph { typedef typename boost::graph_traits < G >::in_edge_iterator EI_i; - explicit Pgr_lineGraphFull< G, T_V, T_E, t_directed>() + explicit Pgr_lineGraphFull() : Pgr_base_graph(), m_num_edges(0) { } - explicit Pgr_lineGraphFull(const pgrouting::DirectedGraph &digraph) + explicit Pgr_lineGraphFull(const pgrouting::DirectedGraph &digraph) : Pgr_base_graph() { apply_transformation(digraph); store_edge_costs(digraph); diff --git a/include/max_flow/flowgraph.hpp b/include/max_flow/flowgraph.hpp index dfd9b2fe36..8510d8f829 100644 --- a/include/max_flow/flowgraph.hpp +++ b/include/max_flow/flowgraph.hpp @@ -29,6 +29,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #define INCLUDE_MAX_FLOW_FLOWGRAPH_HPP_ #pragma once +#include + #include #include diff --git a/include/max_flow/maxflow.hpp b/include/max_flow/maxflow.hpp index ba8d4456e2..ba67cda6fe 100644 --- a/include/max_flow/maxflow.hpp +++ b/include/max_flow/maxflow.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "max_flow/flowgraph.hpp" #include diff --git a/include/max_flow/maximumcardinalitymatching.hpp b/include/max_flow/maximumcardinalitymatching.hpp index f10b2bd0e7..e081d3e468 100644 --- a/include/max_flow/maximumcardinalitymatching.hpp +++ b/include/max_flow/maximumcardinalitymatching.hpp @@ -39,6 +39,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/max_flow/minCostMaxFlow.hpp b/include/max_flow/minCostMaxFlow.hpp index 3d91bb2683..35a4ad0231 100644 --- a/include/max_flow/minCostMaxFlow.hpp +++ b/include/max_flow/minCostMaxFlow.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/ordering/cuthillMckeeOrdering.hpp b/include/ordering/cuthillMckeeOrdering.hpp index 29997bf3fd..121b4b3258 100644 --- a/include/ordering/cuthillMckeeOrdering.hpp +++ b/include/ordering/cuthillMckeeOrdering.hpp @@ -34,6 +34,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/planar/boyerMyrvold.hpp b/include/planar/boyerMyrvold.hpp index 2c8258df5b..c57333d8af 100644 --- a/include/planar/boyerMyrvold.hpp +++ b/include/planar/boyerMyrvold.hpp @@ -26,6 +26,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #pragma once #include +#include #include #include diff --git a/include/spanningTree/details.hpp b/include/spanningTree/details.hpp index 8cc64f3697..b67f64b5de 100644 --- a/include/spanningTree/details.hpp +++ b/include/spanningTree/details.hpp @@ -30,6 +30,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #pragma once #include +#include + #include "c_types/mst_rt.h" namespace pgrouting { diff --git a/include/spanningTree/kruskal.hpp b/include/spanningTree/kruskal.hpp index 23d588301a..1f6131709c 100644 --- a/include/spanningTree/kruskal.hpp +++ b/include/spanningTree/kruskal.hpp @@ -30,6 +30,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #pragma once #include +#include + #include #include "spanningTree/mst.hpp" #include "cpp_common/interruption.hpp" diff --git a/include/spanningTree/mst.hpp b/include/spanningTree/mst.hpp index af0e24b426..1dda2c6bf6 100644 --- a/include/spanningTree/mst.hpp +++ b/include/spanningTree/mst.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/spanningTree/prim.hpp b/include/spanningTree/prim.hpp index 48b21a6452..2c4726a21a 100644 --- a/include/spanningTree/prim.hpp +++ b/include/spanningTree/prim.hpp @@ -31,6 +31,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include #include diff --git a/include/traversal/depthFirstSearch.hpp b/include/traversal/depthFirstSearch.hpp index 30c10b708b..76327df136 100644 --- a/include/traversal/depthFirstSearch.hpp +++ b/include/traversal/depthFirstSearch.hpp @@ -27,6 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include #include #include diff --git a/include/trsp/edgeInfo.hpp b/include/trsp/edgeInfo.hpp index d015008c9c..d131511b8f 100644 --- a/include/trsp/edgeInfo.hpp +++ b/include/trsp/edgeInfo.hpp @@ -26,6 +26,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #define INCLUDE_TRSP_EDGEINFO_HPP_ #include +#include #include "cpp_common/edge_t.hpp" diff --git a/include/trsp/trspHandler.hpp b/include/trsp/trspHandler.hpp index c601f7ae3b..5305202e04 100644 --- a/include/trsp/trspHandler.hpp +++ b/include/trsp/trspHandler.hpp @@ -37,6 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "cpp_common/basePath_SSEC.hpp" diff --git a/include/tsp/tsp.hpp b/include/tsp/tsp.hpp index 9f35c6ea22..93786f426c 100644 --- a/include/tsp/tsp.hpp +++ b/include/tsp/tsp.hpp @@ -34,6 +34,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include #include diff --git a/include/visitors/dfs_visitor.hpp b/include/visitors/dfs_visitor.hpp index 3ddd341b75..0a4fcc1c75 100644 --- a/include/visitors/dfs_visitor.hpp +++ b/include/visitors/dfs_visitor.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include diff --git a/include/vrp/dnode.hpp b/include/vrp/dnode.hpp index 9954b6a857..955a0292e4 100644 --- a/include/vrp/dnode.hpp +++ b/include/vrp/dnode.hpp @@ -30,6 +30,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include +#include + #include "cpp_common/identifier.hpp" #include "cpp_common/messages.hpp" diff --git a/include/vrp/order.hpp b/include/vrp/order.hpp index 3d77aaaeb6..e63b494342 100644 --- a/include/vrp/order.hpp +++ b/include/vrp/order.hpp @@ -30,6 +30,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include +#include + #include "cpp_common/identifier.hpp" #include "cpp_common/identifiers.hpp" #include "vrp/vehicle_node.hpp" diff --git a/include/vrp/tw_node.hpp b/include/vrp/tw_node.hpp index 812edfff8a..484bd77dcc 100644 --- a/include/vrp/tw_node.hpp +++ b/include/vrp/tw_node.hpp @@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #pragma once #include +#include #include "cpp_common/orders_t.hpp" #include "cpp_common/vehicle_t.hpp" diff --git a/include/vrp/vehicle.hpp b/include/vrp/vehicle.hpp index f35c6af705..5c08f0826b 100644 --- a/include/vrp/vehicle.hpp +++ b/include/vrp/vehicle.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "cpp_common/identifier.hpp" diff --git a/include/vrp/vehicle_pickDeliver.hpp b/include/vrp/vehicle_pickDeliver.hpp index bb6a816e7f..166a8fe795 100644 --- a/include/vrp/vehicle_pickDeliver.hpp +++ b/include/vrp/vehicle_pickDeliver.hpp @@ -29,6 +29,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #pragma once #include +#include + #include "vrp/order.hpp" #include "vrp/pd_orders.hpp" #include "vrp/tw_node.hpp" diff --git a/include/withPoints/withPoints.hpp b/include/withPoints/withPoints.hpp index 6fa13398b2..05b3fc788c 100644 --- a/include/withPoints/withPoints.hpp +++ b/include/withPoints/withPoints.hpp @@ -29,7 +29,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #ifndef INCLUDE_WITHPOINTS_WITHPOINTS_HPP_ #define INCLUDE_WITHPOINTS_WITHPOINTS_HPP_ #pragma once + #include +#include #include "cpp_common/point_on_edge_t.hpp" #include "cpp_common/messages.hpp" diff --git a/include/yen/ksp.hpp b/include/yen/ksp.hpp index 11b10e36d7..ce610d9b22 100644 --- a/include/yen/ksp.hpp +++ b/include/yen/ksp.hpp @@ -41,6 +41,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "dijkstra/dijkstra.hpp" #include "cpp_common/assert.hpp" diff --git a/include/yen/turnRestrictedPath.hpp b/include/yen/turnRestrictedPath.hpp index a314b3a462..d6b737b15d 100644 --- a/include/yen/turnRestrictedPath.hpp +++ b/include/yen/turnRestrictedPath.hpp @@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include #include #include +#include #include "yen/ksp.hpp" #include "cpp_common/assert.hpp" From a1ebfe5cbbceb51ee2767e701e53c13dc2f4af48 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 7 Jan 2025 14:19:02 -0600 Subject: [PATCH 069/141] (build) Adding policies and cmake min version set to 3.12 --- CMakeLists.txt | 12 +++++++++++- NEWS.md | 8 ++++++++ README.md | 2 +- doc/src/release_notes.rst | 8 ++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 28ce8af810..4963f56ae9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2 FATAL_ERROR) +cmake_minimum_required(VERSION 3.12 FATAL_ERROR) if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(FATAL_ERROR "In-source builds not allowed. @@ -6,6 +6,16 @@ if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) You may need to remove CMakeCache.txt." ) endif() +if(POLICY CMP0144) + cmake_policy(SET CMP0144 OLD) +endif() + +if(POLICY CMP0167) + cmake_policy(SET CMP0167 OLD) +endif() + +cmake_policy(SET CMP0148 OLD) + #--------------------------------------------- # Setting kind of build #--------------------------------------------- diff --git a/NEWS.md b/NEWS.md index 7dd2b08fb0..00401e14bb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -14,6 +14,14 @@ 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) +**Build** + +* [#2713](https://github.com/pgRouting/pgrouting/pull/2713) cmake missing + some policies and min version + + - Using OLD policies: CMP0148, CMP0144, CMP0167 + - Minimum cmake version 3.12 + **Bug fixes** * [#2707](https://github.com/pgRouting/pgrouting/pull/2707) Build failure in diff --git a/README.md b/README.md index 3b4a0e0b17..29e6f15109 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ The latest documentation: https://docs.pgrouting.org/latest * Postgresql = Supported [version](https://www.postgresql.org/support/versioning/) by PostgreSQL * Not supporting v12 & under * The Boost Graph Library (BGL) >= 1.56 -* CMake >= 3.2 +* CMake >= 3.12 * 7.0 > Sphinx >= 4.0.0 ### User's requirements diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index b3dd61a4e5..d76886e4a1 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -45,6 +45,14 @@ To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.2 `__ +.. rubric:: Build + +* `#2713 `__ cmake missing + some policies and min version + + - Using OLD policies: CMP0148, CMP0144, CMP0167 + - Minimum cmake version 3.12 + .. rubric:: Bug fixes * `#2707 `__ Build failure in From da9e1257e1bd85974bcb604900a5b762bcdd3498 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 9 Jan 2025 09:01:51 -0600 Subject: [PATCH 070/141] (CI/winnie) simplify code of winnie build script --- ci/winnie/build_pgrouting.sh | 270 ++++++++++++++++------------------- tools/scripts/test_shell.sh | 2 +- 2 files changed, 126 insertions(+), 146 deletions(-) diff --git a/ci/winnie/build_pgrouting.sh b/ci/winnie/build_pgrouting.sh index 72ca229af9..bf820df0d7 100644 --- a/ci/winnie/build_pgrouting.sh +++ b/ci/winnie/build_pgrouting.sh @@ -20,185 +20,164 @@ # File used in Jenkis setup #------------------------- -JENKINS_DEBUG=1 - -#----------------- -# variables setup -# Variables recived by jenkins setup -#----------------- -#export OS_BUILD= -#export PG_VER= -#export PGHOST= -#export PGPORT= -#export PGROUTING_VER= -#export POSTIGS_VER= -#GCC_TYPE= -#export GIT_COMMIT= +# Setting defaults +if [[ "${OS_BUILD}" == '' ]] ; then + OS_BUILD=64 +fi; +if [[ "${PG_VER}" == '' ]] ; then + PG_VER=14 +fi; + +if [[ "${PGPORT}" == '' ]] ; then + PGPORT=54613 +fi; + +if [[ "${PGROUTING_VER}" == '' ]] ; then + PGROUTING_VER=cvvergara +fi; + +if [[ "${POSTGIS_VER}" == '' ]] ; then + POSTGIS_VER=3.3.2 +fi; + +if [[ "${GCC_TYPE}" == '' ]] ; then + GCC_TYPE=gcc81 +fi; + +if [[ "${BOOST_VER}" == '' ]] ; then + BOOST_VER=1.78.0 +fi; +BOOST_VER_WU=$(echo "${BOOST_VER//./_}") + +echo "DEBUG ${DEBUG}" + +# debugging options +if [[ "$DEBUG" == 'true' ]] +then + JENKINS_DEBUG=1 + VERBOSE=ON + BUILD_TYPE=Debug +else + JENKINS_DEBUG=0 + VERBOSE=OFF + BUILD_TYPE=Release +fi + +TAPTEST=${TAPTEST%%*([[:blank:]])} +TAPTEST=${TAPTEST##*([[:blank:]])} + +echo "GIT_COMMIT ${GIT_COMMIT}" if [ $JENKINS_DEBUG -eq 1 ] then - #--------------- echo echo "***************************" - echo Recived variables + echo Recived variables used in this script echo "**************************" - #--------------- + echo "OS_BUILD ${OS_BUILD}" echo "PG_VER ${PG_VER}" - echo "PGHOST ${PGHOST}" echo "PGPORT ${PGPORT}" echo "PGROUTING_VER ${PGROUTING_VER}" echo "POSTGIS_VER ${POSTGIS_VER}" echo "GCC_TYPE ${GCC_TYPE}" - echo "GIT_COMMIT ${GIT_COMMIT}" + echo "BOOST_VER ${BOOST_VER}" + echo "calculated BOOST_VER_WU ${BOOST_VER_WU}" + echo "TAPTEST ${TAPTEST}" + echo "DEBUG ${DEBUG}" fi -#--------------- -echo -echo "***************************" -echo Deduced variables -echo "***************************" -#--------------- - export PGUSER=postgres export PROJECTS=/projects -export PGPATHEDB=${PROJECTS}/postgresql/rel/pg${PG_VER}w${OS_BUILD}${GCC_TYPE}edb #this is so winnie know's where to copy the dlls for vc++ edb compiled postgresql testing + +#this is so winnie know's where to copy the dlls for vc++ edb compiled postgresql testing +export PGPATHEDB=${PROJECTS}/postgresql/rel/pg${PG_VER}w${OS_BUILD}${GCC_TYPE}edb + export PGPATH=${PROJECTS}/postgresql/rel/pg${PG_VER}w${OS_BUILD}${GCC_TYPE} -export PATHOLD=$PATH -#export PATHOLD="/mingw/bin:/mingw/include:/c/Windows/system32:/c/Windows" export PGWINVER=${PG_VER}w${OS_BUILD}${GCC_TYPE}edb -export PATH="${PATHOLD}:/usr/bin:${PGPATH}/bin:${PGPATH}/lib:${PGPATH}/include" +export BOOSTROOT_PATH="${PROJECTS}/boost/rel-${BOOST_VER_WU}w${OS_BUILD}${GCC_TYPE}" +export PATH="${PATH}:/usr/bin:${PGPATH}/bin:${PGPATH}/lib:${PGPATH}/include" export PATH="${PROJECTS}/rel-libiconv-1.13.1w${OS_BUILD}${GCC_TYPE}/include:${PATH}" +export PATH="${PATH}:${BOOSTROOT_PATH}/lib" +export PATH="${PATH}:/cmake/bin" +export PATH="${PATH}:.:/bin:/include" + if [ $JENKINS_DEBUG -eq 1 ] then + echo "***************************" + echo Paths + echo "***************************" + echo "PGUSER ${PGUSER}" echo "PROJECTS ${PROJECTS}" echo "PGPATHEDB ${PGPATHEDB}" echo "PGPATH ${PGPATH}" - echo "PATHOLD ${PATHOLD}" echo "PGWINVER ${PGWINVER}" echo "PATH ${PATH}" + echo "BOOSTROOT_PATH ${BOOSTROOT_PATH}" fi -BOOST_VER=1.78.0 -BOOST_VER_WU=1_78_0 -BOOST_VER_WUM=1_78 -ZLIB_VER=1.2.13 -echo "${BOOST_VER}" +#--------------- +echo "Cleanup ${PGPATH} & ${PGPATHEDB}" +rm -f ${PGPATH}/lib/libpgrouting* +rm -f ${PGPATH}/share/extension/pgrouting* +rm -f ${PGPATHEDB}/lib/libpgrouting* +rm -f ${PGPATHEDB}/share/extension/pgrouting* if [ $JENKINS_DEBUG -eq 1 ] then - echo "BOOST_VER_WU ${BOOST_VER_WU}" - echo "BOOST_VER_WUM ${BOOST_VER_WUM}" - echo "ZLIB_VER ${ZLIB_VER}" + echo "${PGPATH} & ${PGPATHEDB} pgrouting related files" + ls ${PGPATH}/lib/libpgrouting* 2>/dev/null + ls ${PGPATH}/share/extension/pgrouting* 2>/dev/null + ls ${PGPATHEDB}/lib/libpgrouting* 2>/dev/null + ls ${PGPATHEDB}/share/extension/pgrouting* 2>/dev/null fi -#zlib -ZLIB_PATH="${PROJECTS}/zlib/rel-${ZLIB_VER}w${OS_BUILD}${GCC_TYPE}" -PATH="${PATH}:${ZLIB_PATH}/include:${ZLIB_PATH}/lib:${ZLIB_PATH}/bin" - -#boost -BOOSTROOT_PATH="${PROJECTS}/boost/rel-${BOOST_VER_WU}w${OS_BUILD}${GCC_TYPE}" -PATH="${PATH}:${BOOSTROOT_PATH}/lib" - -#cmake -export PATH="${PATH}:/cmake/bin" -export PATH="${PATH}:.:/bin:/include" - cmake --version -echo "PATH ${PATH}" - cd "${PROJECTS}/pgrouting" || exit 1 +DATABASE="___pgr___test___" +PGR_VERSION=$(grep -Po '(?<=project\(PGROUTING VERSION )[^;]+' "branches/${PGROUTING_VER}/CMakeLists.txt") +if [ $JENKINS_DEBUG -eq 1 ] +then + echo "pgRouting VERSION ${PGR_VERSION}" +fi + rm -rf "build${PGROUTING_VER}w${OS_BUILD}${GCC_TYPE}" mkdir "build${PGROUTING_VER}w${OS_BUILD}${GCC_TYPE}" cd "build${PGROUTING_VER}w${OS_BUILD}${GCC_TYPE}" || exit 1 - -#--------------- -echo -echo "***************************" -echo "Current contents of PGPATH ${PGPATH}" -echo "***************************" -#--------------- -ls ${PGPATH}/lib/libpgrouting* -ls ${PGPATH}/share/extension/pgrouting* - -#--------------- -echo -echo "***************************" -echo "Current contents of PGPATHEDB ${PGPATHEDB}" -echo "***************************" -#--------------- -ls ${PGPATHEDB}/lib/libpgrouting* -ls ${PGPATHEDB}/share/extension/pgrouting* - -rm ${PGPATH}/lib/libpgrouting* -rm ${PGPATH}/share/extension/pgrouting* -rm ${PGPATHEDB}/lib/libpgrouting -rm ${PGPATHEDB}/share/extension/pgrouting* - -#--------------- -echo -echo "***************************" -echo "After removing in PGPATH ${PGPATH}" -echo "***************************" -#--------------- -ls ${PGPATH}/lib/libpgrouting* -ls ${PGPATH}/share/extension/pgrouting* - -#--------------- -echo -echo "***************************" -echo "After removing in PGPATHEDB ${PGPATHEDB}" -echo "***************************" -#--------------- -ls ${PGPATHEDB}/lib/libpgrouting* -ls ${PGPATHEDB}/share/extension/pgrouting* -cmake --version - -cmake -G "MSYS Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON \ +cmake -G "MSYS Makefiles" -DCMAKE_VERBOSE_MAKEFILE="${VERBOSE}" \ -DBOOST_ROOT:PATH="${BOOSTROOT_PATH}" \ -DBoost_USE_STATIC_LIBS=ON \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ "../branches/${PGROUTING_VER}" #--------------- echo echo "***************************" -echo make -echo "***************************" -#--------------- -make - -#--------------- -echo -echo "***************************" -echo make install +echo Building and installing echo "***************************" #--------------- make install -#--------------- -echo -echo "***************************" -echo "Current contents of PGPATH ${PGPATH}" -echo "***************************" -#--------------- -ls ${PGPATH}/lib/libpgrouting* -ls ${PGPATH}/share/extension/pgrouting* +if [ $JENKINS_DEBUG -eq 1 ] +then + echo "***************************" + echo "Installation on PGPATH ${PGPATH}" + echo "***************************" + ls ${PGPATH}/lib/libpgrouting* + ls ${PGPATH}/share/extension/pgrouting* -#--------------- -echo -echo "***************************" -echo "Current contents of PGPATHEDB ${PGPATHEDB}" -echo Should be empty -echo "***************************" -#--------------- -ls ${PGPATHEDB}/lib/libpgrouting* -ls ${PGPATHEDB}/share/extension/pgrouting* + echo "***************************" + echo "Current contents of PGPATHEDB ${PGPATHEDB}" + echo Should be empty + echo "***************************" + ls ${PGPATHEDB}/lib/libpgrouting* + ls ${PGPATHEDB}/share/extension/pgrouting* +fi #we need uninstall and reinstall copy to VC++ EDB instance if we want to test on standard Windows installed versions @@ -207,36 +186,37 @@ cp -r ${PGPATH}/lib/libpgrouting*.dll ${PGPATHEDB}/lib/ cp -r ${PGPATH}/share/extension/pgrouting*.sql ${PGPATHEDB}/share/extension/ cp -r ${PGPATH}/share/extension/pgrouting.control ${PGPATHEDB}/share/extension/ -#--------------- -echo -echo "***************************" -echo "After copying to PGPATHEDB ${PGPATHEDB}" -echo "***************************" -#--------------- -ls ${PGPATHEDB}/lib/libpgrouting* -ls ${PGPATHEDB}/share/extension/pgrouting* +if [ $JENKINS_DEBUG -eq 1 ] +then + echo + echo "***************************" + echo "Installation on PGPATHEDB ${PGPATHEDB}" + echo "***************************" + ls ${PGPATHEDB}/lib/libpgrouting* + ls ${PGPATHEDB}/share/extension/pgrouting* +fi cd "${PROJECTS}/pgrouting/branches/${PGROUTING_VER}" || exit 1 -#perl tools/test-runner.pl -pgver ${PG_VER} -pgport "${PGPORT}" -clean -#perl tools/testers/doc_queries_generator.pl -pgver ${PG_VER} -pgisver "${POSTGIS_VER}" -pgport "${PGPORT}" -alg common -clean -v -#perl tools/testers/doc_queries_generator.pl -pgver ${PG_VER} -pgisver "${POSTGIS_VER}" -pgport "${PGPORT}" -alg dijkstra -clean -v -#perl tools/testers/doc_queries_generator.pl -pgver ${PG_VER} -pgisver "${POSTGIS_VER}" -pgport "${PGPORT}" -alg contraction - -#perl tools/testers/doc_queries_generator.pl -pgver ${PG_VER} -pgisver "${POSTGIS_VER}" -pgport "${PGPORT}" +echo "***************************" +# Testing +echo "***************************" -if [ "${OS_BUILD}" -eq 32 ] +if [ -n "${TAPTEST}" ] then - perl tools/testers/doc_queries_generator.pl -pgver "${PG_VER}" -pgisver "${POSTGIS_VER}" -pgport "${PGPORT}" + psql -c "CREATE DATABASE ${DATABASE}" + bash tools/testers/setup_db.sh "${PGPORT}" "${DATABASE}" "${PGUSER}" "${PGR_VERSION}" + pg_prove -v --normalize --directives --recurse -p "${PGPORT}" -d "${DATABASE}" "${TAPTEST}" + psql -c "DROP DATABASE ${DATABASE}" -else +fi - psql -c "CREATE DATABASE ___pgr___test___" - tools/testers/pg_prove_tests.sh "${PGUSER}" "${PGPORT}" - psql -c "DROP DATABASE ___pgr___test___" -fi +psql -c "CREATE DATABASE ${DATABASE}" +tools/testers/pg_prove_tests.sh "${PGUSER}" "${PGPORT}" +psql -c "DROP DATABASE ${DATABASE}" + cd "${PROJECTS}/pgrouting/build${PGROUTING_VER}w${OS_BUILD}${GCC_TYPE}/lib" || exit 1 strip ./*.dll diff --git a/tools/scripts/test_shell.sh b/tools/scripts/test_shell.sh index e25fb3f7db..d63fa74b8f 100755 --- a/tools/scripts/test_shell.sh +++ b/tools/scripts/test_shell.sh @@ -29,7 +29,7 @@ do if [ "${f}" = "tools/developer/addNewVersionLink.sh" ] ; then result=$(shellcheck --exclude=SC2046,SC2016 "${f}") elif [ "${f}" = "ci/winnie/build_pgrouting.sh" ] ; then - result=$(shellcheck --exclude=SC2046,SC2016,SC2141,SC2086 "${f}") + result=$(shellcheck --exclude=SC2116,SC2046,SC2016,SC2141,SC2086 "${f}") else result=$(shellcheck --exclude=SC2141 "${f}") fi From f659ead1963d76b93dd4cc02e4e1a902ee14e813 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 10 Jan 2025 10:53:52 -0600 Subject: [PATCH 071/141] (doc) Standardizing the documentation * labels --- NEWS.md | 120 +++++++++--------- doc/allpairs/allpairs-family.rst | 8 +- doc/allpairs/pgr_floydWarshall.rst | 13 +- doc/allpairs/pgr_johnson.rst | 13 +- doc/alpha_shape/pgr_alphaShape.rst | 8 +- doc/astar/aStar-family.rst | 10 +- doc/astar/pgr_aStar.rst | 43 +++---- doc/astar/pgr_aStarCost.rst | 22 ++-- doc/astar/pgr_aStarCostMatrix.rst | 17 ++- doc/bdAstar/bdAstar-family.rst | 10 +- doc/bdAstar/pgr_bdAstar.rst | 47 ++++--- doc/bdAstar/pgr_bdAstarCost.rst | 20 ++- doc/bdAstar/pgr_bdAstarCostMatrix.rst | 15 +-- doc/bdDijkstra/bdDijkstra-family.rst | 8 +- doc/bdDijkstra/pgr_bdDijkstra.rst | 30 ++--- doc/bdDijkstra/pgr_bdDijkstraCost.rst | 18 +-- doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst | 15 +-- doc/bellman_ford/pgr_bellmanFord.rst | 45 +++---- doc/bellman_ford/pgr_edwardMoore.rst | 37 +++--- doc/categories/BFS-category.rst | 8 +- doc/categories/DFS-category.rst | 12 +- doc/categories/KSP-category.rst | 16 +-- doc/categories/VRP-category.rst | 14 +- doc/categories/cost-category.rst | 14 +- doc/categories/costMatrix-category.rst | 14 +- doc/categories/drivingDistance-category.rst | 16 +-- doc/categories/spanningTree-family.rst | 8 +- doc/categories/via-category.rst | 6 +- doc/categories/withPoints-category.rst | 6 +- doc/chinese/chinesePostmanProblem-family.rst | 9 +- doc/chinese/pgr_chinesePostman.rst | 18 +-- doc/chinese/pgr_chinesePostmanCost.rst | 17 ++- doc/circuits/pgr_hawickCircuits.rst | 18 +-- doc/coloring/coloring-family.rst | 33 ++--- doc/coloring/pgr_bipartite.rst | 31 ++--- doc/coloring/pgr_edgeColoring.rst | 33 ++--- doc/coloring/pgr_sequentialVertexColoring.rst | 34 ++--- doc/components/components-family.rst | 16 +-- doc/components/pgr_articulationPoints.rst | 17 +-- doc/components/pgr_biconnectedComponents.rst | 21 ++- doc/components/pgr_bridges.rst | 16 +-- doc/components/pgr_connectedComponents.rst | 26 ++-- doc/components/pgr_makeConnected.rst | 28 ++-- doc/components/pgr_strongComponents.rst | 17 +-- doc/conf.py.in | 4 + doc/contraction/contraction-family.rst | 8 +- doc/contraction/pgr_contraction.rst | 14 +- doc/dagShortestPath/pgr_dagShortestPath.rst | 38 +++--- doc/dijkstra/dijkstra-family.rst | 16 +-- doc/dijkstra/pgr_dijkstra.rst | 40 +++--- doc/dijkstra/pgr_dijkstraCost.rst | 19 ++- doc/dijkstra/pgr_dijkstraCostMatrix.rst | 15 +-- doc/dijkstra/pgr_dijkstraNear.rst | 38 +++--- doc/dijkstra/pgr_dijkstraNearCost.rst | 40 +++--- doc/dijkstra/pgr_dijkstraVia.rst | 29 ++--- .../pgr_lengauerTarjanDominatorTree.rst | 20 ++- doc/driving_distance/pgr_drivingDistance.rst | 17 +-- doc/ksp/pgr_KSP.rst | 34 +++-- doc/lineGraph/pgr_lineGraph.rst | 19 ++- doc/lineGraph/pgr_lineGraphFull.rst | 12 +- doc/lineGraph/transformation-family.rst | 18 +-- doc/max_flow/flow-family.rst | 16 +-- doc/max_flow/pgr_boykovKolmogorov.rst | 18 ++- doc/max_flow/pgr_edgeDisjointPaths.rst | 17 ++- doc/max_flow/pgr_edmondsKarp.rst | 20 ++- doc/max_flow/pgr_maxCardinalityMatch.rst | 22 ++-- doc/max_flow/pgr_maxFlow.rst | 22 ++-- doc/max_flow/pgr_maxFlowMinCost.rst | 45 ++++--- doc/max_flow/pgr_maxFlowMinCost_Cost.rst | 44 +++---- doc/max_flow/pgr_pushRelabel.rst | 20 ++- doc/metrics/metrics-family.rst | 12 +- doc/metrics/pgr_betweennessCentrality.rst | 23 ++-- doc/mincut/pgr_stoerWagner.rst | 17 +-- doc/ordering/ordering-family.rst | 12 +- doc/ordering/pgr_cuthillMckeeOrdering.rst | 19 ++- doc/ordering/pgr_topologicalSort.rst | 18 ++- doc/pickDeliver/pgr_pickDeliver.rst | 10 +- doc/pickDeliver/pgr_pickDeliverEuclidean.rst | 12 +- doc/pickDeliver/pgr_vrpOneDepot.rst | 12 +- doc/planar/pgr_isPlanar.rst | 20 ++- doc/spanningTree/kruskal-family.rst | 14 +- doc/spanningTree/pgr_kruskal.rst | 13 +- doc/spanningTree/pgr_kruskalBFS.rst | 9 +- doc/spanningTree/pgr_kruskalDD.rst | 11 +- doc/spanningTree/pgr_kruskalDFS.rst | 11 +- doc/spanningTree/pgr_prim.rst | 12 +- doc/spanningTree/pgr_primBFS.rst | 13 +- doc/spanningTree/pgr_primDD.rst | 13 +- doc/spanningTree/pgr_primDFS.rst | 13 +- doc/spanningTree/prim-family.rst | 13 +- doc/src/experimental.rst | 45 ++++--- doc/src/migration.rst | 89 +++++++------ doc/src/proposed.rst | 48 +++---- doc/src/release_notes.rst | 74 +++++------ doc/src/routingFunctions.rst | 82 ++++++------ doc/topology/pgr_analyzeGraph.rst | 10 +- doc/topology/pgr_analyzeOneWay.rst | 8 +- doc/topology/pgr_createTopology.rst | 11 +- doc/topology/pgr_createVerticesTable.rst | 11 +- doc/topology/pgr_degree.rst | 19 ++- doc/topology/pgr_extractVertices.rst | 14 +- doc/topology/pgr_nodeNetwork.rst | 6 +- doc/topology/topology-functions.rst | 38 +++--- .../pgr_transitiveClosure.rst | 17 +-- .../pgr_binaryBreadthFirstSearch.rst | 44 +++---- doc/traversal/pgr_breadthFirstSearch.rst | 38 +++--- doc/traversal/pgr_depthFirstSearch.rst | 36 +++--- doc/traversal/traversal-family.rst | 20 +-- doc/trsp/TRSP-family.rst | 18 +-- doc/trsp/pgr_trsp.rst | 37 +++--- doc/trsp/pgr_trspVia.rst | 20 ++- doc/trsp/pgr_trspVia_withPoints.rst | 21 ++- doc/trsp/pgr_trsp_withPoints.rst | 23 +--- doc/trsp/pgr_turnRestrictedPath.rst | 13 +- doc/tsp/TSP-family.rst | 10 +- doc/tsp/pgr_TSP.rst | 16 +-- doc/tsp/pgr_TSPeuclidean.rst | 17 +-- doc/utilities/pgr_findCloseEdges.rst | 30 ++--- doc/version/pgr_full_version.rst | 6 +- doc/version/pgr_version.rst | 4 +- doc/version/reference.rst | 8 +- doc/withPoints/pgr_withPoints.rst | 17 +-- doc/withPoints/pgr_withPointsCost.rst | 35 +++-- doc/withPoints/pgr_withPointsCostMatrix.rst | 21 ++- doc/withPoints/pgr_withPointsDD.rst | 40 +++--- doc/withPoints/pgr_withPointsKSP.rst | 33 ++--- doc/withPoints/pgr_withPointsVia.rst | 19 ++- doc/withPoints/withPoints-family.rst | 10 +- 128 files changed, 1293 insertions(+), 1544 deletions(-) diff --git a/NEWS.md b/NEWS.md index 00401e14bb..3a779d8b60 100644 --- a/NEWS.md +++ b/NEWS.md @@ -90,7 +90,7 @@ milestone for 3.7.0 * ``pgr_lineGraph`` - * Promoted to **proposed** signature. + * Function promoted to proposed. * Works for directed and undirected graphs. **Code enhancement** @@ -133,7 +133,7 @@ milestone for 3.6.3 **Documentation** -* Results of documentation queries adujsted to boost 1.83.0 version: +* Results of documentation queries adujsted to 1.83.0 version: * pgr_edgeDisjointPaths * pgr_stoerWagner @@ -185,39 +185,39 @@ milestone for 3.6.0 * Standarizing 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. + * 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) Standarize output pgr_bdAstar * Standarizing 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`` + * 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(One to Many) added ``end_vid`` column. + * pgr_bdAstar(Many to One) added ``start_vid`` column. * [#2547](https://github.com/pgRouting/pgrouting/pull/2547) Standarize output and modifying signature pgr_KSP * Result columns standarized to: ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)`` - * ``pgr_ksp`` (One to One) + * pgr_ksp(One to One) * Added ``start_vid`` and ``end_vid`` result columns. - * New overload functions: - * ``pgr_ksp`` (One to Many) - * ``pgr_ksp`` (Many to One) - * ``pgr_ksp`` (Many to Many) - * ``pgr_ksp`` (Combinations) + * New proposed signatures: + * pgr_ksp(One to Many) + * pgr_ksp(Many to One) + * pgr_ksp(Many to Many) + * pgr_ksp(Combinations) * [#2548](https://github.com/pgRouting/pgrouting/pull/2548) Standarize output pgr_drivingdistance * Standarizing output columns to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)`` - * ``pgr_drivingdistance`` (Single vertex) + * pgr_drivingdistance(Single vertex) * Added ``depth`` and ``start_vid`` result columns. - * ``pgr_drivingdistance`` (Multiple vertices) + * pgr_drivingdistance(Multiple vertices) * Result column name change: ``from_v`` to ``start_vid``. * Added ``depth`` and ``pred`` result columns. @@ -228,35 +228,35 @@ milestone for 3.6.0 * Signature change: ``driving_side`` parameter changed from named optional to unnamed compulsory **driving side**. - * ``pgr_withPointsDD`` (`Single vertex`) - * ``pgr_withPointsDD`` (`Multiple vertices`) + * pgr_withPointsDD(Single vertex) + * pgr_withPointsDD(Multiple vertices) * Standarizing output columns to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)`` - * ``pgr_withPointsDD`` (`Single vertex`) + * pgr_withPointsDD(Single vertex) * Added ``depth``, ``pred`` and ``start_vid`` column. - * ``pgr_withPointsDD`` (`Multiple vertices`) + * 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)`` + * 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) Standarize output and modifying signature pgr_withPointsKSP * Standarizing output columns to ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)`` - * ``pgr_withPointsKSP`` (One to One) + * 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 overload functions - * ``pgr_withPointsKSP`` (One to Many) - * ``pgr_withPointsKSP`` (Many to One) - * ``pgr_withPointsKSP`` (Many to Many) - * ``pgr_withPointsKSP`` (Combinations) + * 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)`` + * pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char,boolean)`` **C/C++ code enhancements** @@ -342,9 +342,9 @@ milestone for 3.5.0 * Standarizing 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. + * 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 @@ -386,59 +386,59 @@ milestone for 3.4.0 * [#1891](https://github.com/pgRouting/pgrouting/issues/1891): pgr_ksp doesn't give all correct shortest path -**New proposed functions** +**New proposed functions.** * With points - * ``pgr_withPointsVia`` (One Via) + * pgr_withPointsVia(One Via) * Turn Restrictions * Via with turn restrictions - * ``pgr_trspVia`` (One Via) - * ``pgr_trspVia_withPoints`` (One Via) + * pgr_trspVia(One Via) + * pgr_trspVia_withPoints(One Via) - * ``pgr_trsp`` + * 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(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) + * 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`` + * pgr_degree * Utilities - * ``pgr_findCloseEdges`` (One point) - * ``pgr_findCloseEdges`` (Many points) + * pgr_findCloseEdges(One point) + * pgr_findCloseEdges(Many points) **New experimental functions** * Ordering - * ``pgr_cuthillMckeeOrdering`` + * pgr_cuthillMckeeOrdering * Unclassified - * ``pgr_hawickCircuits`` + * pgr_hawickCircuits **Official functions changes** * Flow functions - * ``pgr_maxCardinalityMatch(text)`` + * pgr_maxCardinalityMatch(text)`` * Deprecating ``pgr_maxCardinalityMatch(text,boolean)`` @@ -446,10 +446,10 @@ milestone for 3.4.0 * Turn Restrictions - * ``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_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) ## pgRouting 3.3 @@ -485,7 +485,7 @@ milestone for 3.3.3 * Flow functions - * ``pgr_maxCardinalityMatch(text,boolean)`` + * pgr_maxCardinalityMatch(text,boolean) * Ignoring optional boolean parameter, as the algorithm works only for undirected graphs. @@ -671,7 +671,7 @@ on Github. * pgr_sequentialVertexColoring -**New proposed functions** +**New proposed functions.** * Astar @@ -782,7 +782,7 @@ 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. -**New proposed functions** +**New proposed functions.** * pgr_dijkstra(combinations) * pgr_dijkstraCost(combinations) diff --git a/doc/allpairs/allpairs-family.rst b/doc/allpairs/allpairs-family.rst index db94d58001..d963b68ae8 100644 --- a/doc/allpairs/allpairs-family.rst +++ b/doc/allpairs/allpairs-family.rst @@ -7,22 +7,22 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: All Pairs Family +| + All Pairs - Family of Functions =============================================================================== The following functions work on all vertices pair combinations -.. index from here +.. official-start * :doc:`pgr_floydWarshall` - Floyd-Warshall's algorithm. * :doc:`pgr_johnson` - Johnson's algorithm -.. index to here +.. official-end .. toctree:: :hidden: diff --git a/doc/allpairs/pgr_floydWarshall.rst b/doc/allpairs/pgr_floydWarshall.rst index bcdd839010..481fffac60 100644 --- a/doc/allpairs/pgr_floydWarshall.rst +++ b/doc/allpairs/pgr_floydWarshall.rst @@ -7,23 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: All Pairs Family ; pgr_floydWarshall single: floydWarshall +| + ``pgr_floydWarshall`` =============================================================================== ``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path for each pair of nodes in the graph using Floyd-Warshall algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html - - Boost Graph Inside - .. rubric:: Availability * Version 2.2.0 @@ -47,6 +42,8 @@ We use Boost's implementation which runs in :math:`\Theta(V^3)` time, :start-after: characteristics_start :end-before: characteristics_end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -102,9 +99,9 @@ See Also ------------------------------------------------------------------------------- * :doc:`pgr_johnson` +* :doc:`sampledata` * Boost `floyd-Warshall `_ -* Queries uses the :doc:`sampledata` network. .. rubric:: Indices and tables diff --git a/doc/allpairs/pgr_johnson.rst b/doc/allpairs/pgr_johnson.rst index e0930fa806..71b4ef00b3 100644 --- a/doc/allpairs/pgr_johnson.rst +++ b/doc/allpairs/pgr_johnson.rst @@ -7,23 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: All Pairs Family ; pgr_johnson single: johnson +| + ``pgr_johnson`` =============================================================================== ``pgr_johnson`` - Returns the sum of the costs of the shortest path for each pair of nodes in the graph using Floyd-Warshall algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html - - Boost Graph Inside - .. rubric:: Availability * Version 2.2.0 @@ -46,6 +41,8 @@ It usees the Boost's implementation which runs in :math:`O(V E \log V)` time, :start-after: characteristics_start :end-before: characteristics_end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -100,9 +97,9 @@ See Also ------------------------------------------------------------------------------- * :doc:`pgr_floydWarshall` +* :doc:`sampledata` * Boost `Johnson `_ -* Queries uses the :doc:`sampledata` network. .. rubric:: Indices and tables diff --git a/doc/alpha_shape/pgr_alphaShape.rst b/doc/alpha_shape/pgr_alphaShape.rst index d93dba3b72..d2883292ba 100644 --- a/doc/alpha_shape/pgr_alphaShape.rst +++ b/doc/alpha_shape/pgr_alphaShape.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: alphaShape +| + ``pgr_alphaShape`` =============================================================================== @@ -60,6 +60,8 @@ Characteristics * When the total number of points is less than 3, returns an EMPTY geometry +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- .. rubric:: Summary @@ -103,7 +105,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`pgr_drivingDistance` -* :doc:`sampledata` network. +* :doc:`sampledata` * `ST_ConcaveHull `__ .. rubric:: Indices and tables diff --git a/doc/astar/aStar-family.rst b/doc/astar/aStar-family.rst index 5e8995af1b..f281c51efd 100644 --- a/doc/astar/aStar-family.rst +++ b/doc/astar/aStar-family.rst @@ -7,10 +7,10 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: aStar Family +| + A* - Family of functions =============================================================================== @@ -18,13 +18,13 @@ The A* (pronounced "A Star") algorithm is based on Dijkstra's algorithm with a heuristic that allow it to solve most shortest path problems by evaluation only a sub-set of the overall graph. -.. index from here +.. official-start - :doc:`pgr_aStar` - A* algorithm for the shortest path. - :doc:`pgr_aStarCost` - Get the aggregate cost of the shortest paths. - :doc:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths. -.. index to here +.. official-end .. toctree:: :hidden: @@ -180,7 +180,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`bdAstar-family` -* https://www.boost.org/libs/graph/doc/astar_search.html +* `Boost: A* search `__ * https://en.wikipedia.org/wiki/A*_search_algorithm .. rubric:: Indices and tables diff --git a/doc/astar/pgr_aStar.rst b/doc/astar/pgr_aStar.rst index 1f55f98696..53cea64893 100644 --- a/doc/astar/pgr_aStar.rst +++ b/doc/astar/pgr_aStar.rst @@ -7,59 +7,54 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: aStar Family ; pgr_aStar single: aStar +| + ``pgr_aStar`` =============================================================================== ``pgr_aStar`` — Shortest path using the A* algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/astar_search.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.6.0 * Standarizing output columns to |short-generic-result| - * ``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(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. * Version 3.2.0 - * New **proposed** signature: + * New proposed signature: - * ``pgr_aStar`` (`Combinations`_) + * pgr_aStar(Combinations) * Version 3.0.0 - * **Official** function + * Function promoted to **official**. * 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 - * Signature change on ``pgr_astar`` (`One to One`_) + * Signature change on pgr_astar(One to One) * Old signature no longer supported * Version 2.0.0 - * **Official** ``pgr_aStar`` (`One to One`_) + * **Official** pgr_aStar(One to One) Description ------------------------------------------------------------------------------- @@ -73,10 +68,12 @@ Description * The results are equivalent to the union of the results of the `pgr_aStar(` `One to One`_ `)` on the: - * ``pgr_aStar`` (`One to Many`_) - * ``pgr_aStar`` (`Many to One`_) - * ``pgr_aStar`` (`Many to Many`_) - * ``pgr_aStar`` (`Combinations`_) + * pgr_aStar(One to Many) + * pgr_aStar(Many to One) + * pgr_aStar(Many to Many) + * pgr_aStar(Combinations) + +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- diff --git a/doc/astar/pgr_aStarCost.rst b/doc/astar/pgr_aStarCost.rst index d17283688d..d616aeeb56 100644 --- a/doc/astar/pgr_aStarCost.rst +++ b/doc/astar/pgr_aStarCost.rst @@ -7,38 +7,33 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: aStar Family ; pgr_aStarCost single: aStarCost -pgr_aStarCost +| + +``pgr_aStarCost`` =============================================================================== ``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/astar_search.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.2.0 - * New **proposed** signature: + * New proposed signature: - * ``pgr_aStarCost`` (`Combinations`_) + * pgr_aStarCost(Combinations) * Version 3.0.0 - * **Official** function + * Function promoted to **official**. * Version 2.4.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -67,6 +62,8 @@ using the A* algorithm. - `start_vid` ascending - `end_vid` ascending +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -275,6 +272,7 @@ See Also * :doc:`aStar-family` * :doc:`cost-category` * :doc:`sampledata` +* `Boost: A* search `__ .. rubric:: Indices and tables diff --git a/doc/astar/pgr_aStarCostMatrix.rst b/doc/astar/pgr_aStarCostMatrix.rst index 372e6bcf2a..22948b6bd2 100644 --- a/doc/astar/pgr_aStarCostMatrix.rst +++ b/doc/astar/pgr_aStarCostMatrix.rst @@ -7,32 +7,28 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: aStar Family ; pgr_aStarCostMatrix + single: Cost Matrix Category ; pgr_aStarCostMatrix single: aStarCostMatrix +| + ``pgr_aStarCostMatrix`` =============================================================================== ``pgr_aStarCostMatrix`` - Calculates the a cost matrix using :doc:`pgr_aStar`. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org//libs/graph/doc/astar_search.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 - * **Official** function + * Function promoted to **official**. * Version 2.4.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -56,6 +52,8 @@ Description * When the graph is **undirected** the cost matrix is symmetric +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -131,6 +129,7 @@ See Also * :doc:`costMatrix-category` * :doc:`TSP-family` * :doc:`sampledata` +* `Boost: A* search `__ .. rubric:: Indices and tables diff --git a/doc/bdAstar/bdAstar-family.rst b/doc/bdAstar/bdAstar-family.rst index 3950922c64..ce6d03aad0 100644 --- a/doc/bdAstar/bdAstar-family.rst +++ b/doc/bdAstar/bdAstar-family.rst @@ -7,17 +7,17 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Bidirectional A* Family +| + Bidirectional A* - Family of functions =============================================================================== The bidirectional A* (pronounced "A Star") algorithm is based on the A* algorithm. -.. index from here +.. official-start - :doc:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths. - :doc:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of @@ -25,7 +25,7 @@ algorithm. - :doc:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a cost matrix of paths. -.. index to here +.. official-end .. toctree:: :hidden: @@ -62,7 +62,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`aStar-family` -* https://www.boost.org/libs/graph/doc/astar_search.html +* `Boost `__ * https://en.wikipedia.org/wiki/A*_search_algorithm .. rubric:: Indices and tables diff --git a/doc/bdAstar/pgr_bdAstar.rst b/doc/bdAstar/pgr_bdAstar.rst index cae4c6e80b..f87a5051f7 100644 --- a/doc/bdAstar/pgr_bdAstar.rst +++ b/doc/bdAstar/pgr_bdAstar.rst @@ -7,37 +7,32 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Bidirectional A* Family ; pgr_bdAstar single: bdAstar +| + ``pgr_bdAstar`` =============================================================================== ``pgr_bdAstar`` — Shortest path using the bidirectional A* algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/astar_search.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.6.0 * Standarizing output columns to |short-generic-result| - * ``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(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. * Version 3.2.0 - * New **proposed** signature: + * New proposed signature: - * ``pgr_bdAstar`` (`Combinations`_) + * pgr_bdAstar(Combinations) * Version 3.0.0 @@ -47,17 +42,17 @@ * 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 * Version 2.0.0 - * **Official** ``pgr_bdAstar`` (`One to One`_) + * **Official** pgr_bdAstar(One to One) Description ------------------------------------------------------------------------------- @@ -68,13 +63,15 @@ 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 the + pgr_bdAStar(One to One) on the: - * ``pgr_bdAstar`` (`One to Many`_) - * ``pgr_bdAstar`` (`Many to One`_) - * ``pgr_bdAstar`` (`Many to Many`_) - * ``pgr_bdAstar`` (`Combinations`_) + * pgr_bdAstar(One to Many) + * pgr_bdAstar(Many to One) + * pgr_bdAstar(Many to Many) + * pgr_bdAstar(Combinations) + +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -106,7 +103,7 @@ One to One :class: signatures | pgr_bdAstar(`Edges SQL`_, **start vid**, **end vid**, [**options**]) - | **options:** ``[directed, heuristic, factor, epsilon]`` + | **options:** [directed, heuristic, factor, epsilon]`` | Returns set of |short-generic-result| | OR EMPTY SET @@ -286,7 +283,7 @@ See Also * :doc:`aStar-family` * :doc:`bdAstar-family` * :doc:`sampledata` -* https://www.boost.org/libs/graph/doc/astar_search.html +* `Boost: A* search `__ * https://en.wikipedia.org/wiki/A*_search_algorithm .. rubric:: Indices and tables diff --git a/doc/bdAstar/pgr_bdAstarCost.rst b/doc/bdAstar/pgr_bdAstarCost.rst index 3cf03800f6..c4a2df6b23 100644 --- a/doc/bdAstar/pgr_bdAstarCost.rst +++ b/doc/bdAstar/pgr_bdAstarCost.rst @@ -7,30 +7,25 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Bidirectional A* Family ; pgr_bdAstarCost single: bdAstarCost -pgr_bdAstarCost +| + +``pgr_bdAstarCost`` =============================================================================== ``pgr_bdAstarCost`` - Total cost of the shortest path using the bidirectional A* algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/astar_search.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.2.0 - * New **proposed** signature: + * New proposed signature: - * ``pgr_bdAstarCost`` (`Combinations`_) + * pgr_bdAstarCost(Combinations) * Version 3.0.0 @@ -38,7 +33,7 @@ A* algorithm. * Version 2.4.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -67,6 +62,8 @@ using the bidirectional A* algorithm. - `start_vid` ascending - `end_vid` ascending +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -275,6 +272,7 @@ See Also * :doc:`bdAstar-family` * :doc:`cost-category` * :doc:`sampledata` +* `Boost: A* search `__ .. rubric:: Indices and tables diff --git a/doc/bdAstar/pgr_bdAstarCostMatrix.rst b/doc/bdAstar/pgr_bdAstarCostMatrix.rst index 42d0258c6f..2f39f4ded4 100644 --- a/doc/bdAstar/pgr_bdAstarCostMatrix.rst +++ b/doc/bdAstar/pgr_bdAstarCostMatrix.rst @@ -7,22 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Bidirectional A* Family ; pgr_bdAstarCostMatrix + single: Cost Matrix Category ; pgr_bdAstarCostMatrix single: bdAstarCostMatrix +| + ``pgr_bdAstarCostMatrix`` =============================================================================== ``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using :doc:`pgr_aStar`. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org//libs/graph/doc/astar_search.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -31,7 +27,7 @@ * Version 2.5.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -55,6 +51,8 @@ Description * When the graph is **undirected** the cost matrix is symmetric +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -130,6 +128,7 @@ See Also * :doc:`costMatrix-category` * :doc:`TSP-family` * :doc:`sampledata` +* `Boost: A* search `__ .. rubric:: Indices and tables diff --git a/doc/bdDijkstra/bdDijkstra-family.rst b/doc/bdDijkstra/bdDijkstra-family.rst index 9fa6e4727a..e2c3dbf8f4 100644 --- a/doc/bdDijkstra/bdDijkstra-family.rst +++ b/doc/bdDijkstra/bdDijkstra-family.rst @@ -7,15 +7,15 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Bidirectional Dijkstra Family +| + Bidirectional Dijkstra - Family of functions =============================================================================== -.. index from here +.. official-start * :doc:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest paths. @@ -24,7 +24,7 @@ Bidirectional Dijkstra - Family of functions * :doc:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm to create a matrix of costs of the shortest paths. -.. index to here +.. official-end .. toctree:: :hidden: diff --git a/doc/bdDijkstra/pgr_bdDijkstra.rst b/doc/bdDijkstra/pgr_bdDijkstra.rst index 1bb422f7fe..ec47c72325 100644 --- a/doc/bdDijkstra/pgr_bdDijkstra.rst +++ b/doc/bdDijkstra/pgr_bdDijkstra.rst @@ -7,52 +7,47 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Bidirectional Dijkstra Family ; pgr_bdDijkstra single: bdDijkstra +| + ``pgr_bdDijkstra`` =============================================================================== ``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability: * Version 3.2.0 - * New **proposed** signature: + * New proposed signature: - * pgr_bdDijkstra(`Combinations`_) + * pgr_bdDijkstra(Combinations) * Version 3.0.0 - * **Official** function + * **Official** function. * Version 2.5.0 - * New **Proposed** functions: + * New Proposed signatures: - * ``pgr_bdDijkstra`` (`One to Many`_) - * ``pgr_bdDijkstra`` (`Many to One`_) - * ``pgr_bdDijkstra`` (`Many to Many`_) + * pgr_bdDijkstra(One to Many) + * pgr_bdDijkstra(Many to One) + * pgr_bdDijkstra(Many to Many) * Version 2.4.0 - * Signature change on ``pgr_bdDijsktra`` (`One to One`_) + * Signature change on pgr_bdDijsktra(One to One) * Old signature no longer supported * Version 2.0.0 - * **Official** ``pgr_bdDijkstra`` (`One to One`_) + * **Official** pgr_bdDijkstra(One to One) Description @@ -64,6 +59,8 @@ Description :start-after: description start :end-before: description end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -256,7 +253,6 @@ See Also * :doc:`bdDijkstra-family` * :doc:`sampledata` -* https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf * https://en.wikipedia.org/wiki/Bidirectional_search .. rubric:: Indices and tables diff --git a/doc/bdDijkstra/pgr_bdDijkstraCost.rst b/doc/bdDijkstra/pgr_bdDijkstraCost.rst index 876368e95a..018dab0c52 100644 --- a/doc/bdDijkstra/pgr_bdDijkstraCost.rst +++ b/doc/bdDijkstra/pgr_bdDijkstraCost.rst @@ -7,30 +7,25 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Bidirectional Dijkstra Family ; pgr_bdDijkstraCost single: bdDijkstraCost +| + ``pgr_bdDijkstraCost`` =============================================================================== ``pgr_bdDijkstraCost`` — Returns the shortest path's cost using Bidirectional Dijkstra algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.2.0 - * New **proposed** signature: + * New proposed signature: - * ``pgr_bdDijkstraCost`` (`Combinations`_) + * pgr_bdDijkstraCost(Combinations) * Version 3.0.0 @@ -38,7 +33,7 @@ Dijkstra algorithm. * Version 2.5.0 - * New **proposed** function + * New proposed function. Description @@ -55,6 +50,8 @@ using the bidirectional Dijkstra Algorithm. :start-after: cost_traits_start :end-before: cost_traits_end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -247,7 +244,6 @@ See Also * :doc:`bdDijkstra-family` * :doc:`sampledata` -* https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf * https://en.wikipedia.org/wiki/Bidirectional_search .. rubric:: Indices and tables diff --git a/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst b/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst index 2eed0d4256..fb6f971fe5 100644 --- a/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst +++ b/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst @@ -7,24 +7,19 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Bidirectional Dijkstra Family ; pgr_bdDijkstraCostMatrix + single: Cost Matrix Category ; pgr_bdDijkstraCostMatrix single: bdDijkstraCostMatrix +| + ``pgr_bdDijkstraCostMatrix`` =============================================================================== ``pgr_bdDijkstraCostMatrix`` - Calculates a cost matrix using :doc:`pgr_bdDijkstra`. - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -33,7 +28,7 @@ * Version 2.5.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -48,6 +43,8 @@ Using bidirectional Dijkstra algorithm, calculate and return a cost matrix. :start-after: costMatrix_details_start :end-before: costMatrix_details_end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/bellman_ford/pgr_bellmanFord.rst b/doc/bellman_ford/pgr_bellmanFord.rst index ce21eb94a0..6bd80b9070 100644 --- a/doc/bellman_ford/pgr_bellmanFord.rst +++ b/doc/bellman_ford/pgr_bellmanFord.rst @@ -7,42 +7,32 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Shortest Path Category; pgr_bellmanFord - single: bellmanFord + single: Shortest Path Category; pgr_bellmanFord - Experimental + single: bellmanFord - Experimental + +| ``pgr_bellmanFord - Experimental`` =============================================================================== ``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/bellman_ford_shortest.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** signature: + * New experimental signature: - * ``pgr_bellmanFord`` (`Combinations`_) + * pgr_bellmanFord(Combinations) * Version 3.0.0 - * New **experimental** signatures: - - * ``pgr_bellmanFord`` (`One to One`_) - * ``pgr_bellmanFord`` (`One to Many`_) - * ``pgr_bellmanFord`` (`Many to One`_) - * ``pgr_bellmanFord`` (`Many to Many`_) + * New experimental function. Description ------------------------------------------------------------------------------- @@ -81,6 +71,7 @@ implementation can be used with a directed graph and an undirected graph. * Running time: :math:`O(| start\_vids | * ( V * E))` +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -100,7 +91,7 @@ Signatures | OR EMPTY SET .. index:: - single: bellmanFord ; One to One - Experimental on v3.0 + single: bellmanFord - Experimental; One to One - Experimental on v3.0 One to One ............................................................................... @@ -120,7 +111,7 @@ One to One :end-before: -- q3 .. index:: - single: bellmanFord ; One to Many - Experimental on v3.0 + single: bellmanFord - Experimental ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -141,7 +132,7 @@ One to Many :end-before: -- q4 .. index:: - single: bellmanFord ; Many to One - Experimental on v3.0 + single: bellmanFord - Experimental ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -162,7 +153,7 @@ Many to One :end-before: -- q5 .. index:: - single: bellmanFord ; Many to Many - Experimental on v3.0 + single: bellmanFord - Experimental; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -183,7 +174,7 @@ Many to Many :end-before: -- q51 .. index:: - single: bellmanFord ; Combinations - Experimental on v3.2 + single: bellmanFord - Experimental; Combinations - Experimental on v3.2 Combinations ............................................................................... @@ -272,8 +263,12 @@ Additional Examples See Also ------------------------------------------------------------------------------- -* https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm * :doc:`sampledata` +* `Boost: Belman Ford `__ +* https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm + + Boost Graph Inside + .. rubric:: Indices and tables diff --git a/doc/bellman_ford/pgr_edwardMoore.rst b/doc/bellman_ford/pgr_edwardMoore.rst index 58ecf4fdd1..2073f17bcc 100644 --- a/doc/bellman_ford/pgr_edwardMoore.rst +++ b/doc/bellman_ford/pgr_edwardMoore.rst @@ -7,38 +7,33 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Shortest Path Category; pgr_edwardMoore - single: edwardMoore + single: Shortest Path Category; pgr_edwardMoore - Experimental + single: edwardMoore - Experimental + +| -``pgr_edwardMoore - Experimental`` +``pgr_edwardMoore`` - Experimental =============================================================================== ``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore algorithm. .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** signature: + * New experimental signature: - * ``pgr_edwardMoore`` (`Combinations`_) + * pgr_edwardMoore(Combinations) * Version 3.0.0 - * New **experimental** signatures: - - * ``pgr_edwardMoore`` (`One to One`_) - * ``pgr_edwardMoore`` (`One to Many`_) - * ``pgr_edwardMoore`` (`Many to One`_) - * ``pgr_edwardMoore`` (`Many to Many`_) + * New experimental function. Description ------------------------------------------------------------------------------- @@ -84,6 +79,8 @@ and is at-worst,as good as Bellman-Ford algorithm * Worst case: :math:`O(| V | * | E |)` * Average case: :math:`O( | E | )` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -102,7 +99,7 @@ Signatures | OR EMPTY SET .. index:: - single: edwardMoore ; One to One - Experimental on v3.0 + single: edwardMoore - Experimental ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -122,7 +119,7 @@ One to One :end-before: -- q3 .. index:: - single: edwardMoore ; One to Many - Experimental on v3.0 + single: edwardMoore - Experimental ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -143,7 +140,7 @@ One to Many :end-before: -- q4 .. index:: - single: edwardMoore ; Many to One - Experimental on v3.0 + single: edwardMoore - Experimental ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -164,7 +161,7 @@ Many to One :end-before: -- q5 .. index:: - single: edwardMoore ; Many to Many - Experimental on v3.0 + single: edwardMoore - Experimental ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -185,7 +182,7 @@ Many to Many :end-before: -- q51 .. index:: - single: edwardMoore ; Combinations - Experimental on v3.2 + single: edwardMoore - Experimental ; Combinations - Experimental on v3.2 Combinations ............................................................................... diff --git a/doc/categories/BFS-category.rst b/doc/categories/BFS-category.rst index a4f2debfbd..206d883a27 100644 --- a/doc/categories/BFS-category.rst +++ b/doc/categories/BFS-category.rst @@ -7,19 +7,19 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| +.. index:: Breadth First Search Category -.. index:: BFS Category +| BFS - Category =============================================================================== -.. index from here +.. official-start * :doc:`pgr_kruskalBFS` * :doc:`pgr_primBFS` -.. index to here +.. official-end Traversal using breadth first search. diff --git a/doc/categories/DFS-category.rst b/doc/categories/DFS-category.rst index 4432664d3e..58da1b3275 100644 --- a/doc/categories/DFS-category.rst +++ b/doc/categories/DFS-category.rst @@ -7,28 +7,28 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Depth First Search Category +| + DFS - Category =============================================================================== Traversal using Depth First Search. -.. index from here +.. official-start * :doc:`pgr_kruskalDFS` * :doc:`pgr_primDFS` -.. index to here +.. official-end .. rubric:: Proposed .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning * :doc:`pgr_depthFirstSearch` - Depth first search traversal of the graph. diff --git a/doc/categories/KSP-category.rst b/doc/categories/KSP-category.rst index d6a813cf4f..15a4692087 100644 --- a/doc/categories/KSP-category.rst +++ b/doc/categories/KSP-category.rst @@ -7,30 +7,30 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: K Shortest Paths Category +| + K shortest paths - Category =============================================================================== -.. index from here +.. official-start * :doc:`pgr_KSP` - Yen's algorithm based on pgr_dijkstra -.. index to here +.. official-end .. rubric:: Proposed .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning -.. index proposed from here +.. proposed-start * :doc:`pgr_withPointsKSP` - Yen's algorithm based on pgr_withPoints -.. index proposed to here +.. proposed-end .. rubric:: Indices and tables diff --git a/doc/categories/VRP-category.rst b/doc/categories/VRP-category.rst index b86592677d..6565fe75b9 100644 --- a/doc/categories/VRP-category.rst +++ b/doc/categories/VRP-category.rst @@ -7,18 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Vehicle Routing Functions Category +| + Vehicle Routing Functions - Category =============================================================================== .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index experimental from here +.. experimental-start * Pickup and delivery problem @@ -29,7 +29,7 @@ Vehicle Routing Functions - Category - :doc:`pgr_vrpOneDepot` - From a single depot, distributes orders -.. index experimental to here +.. experimental-end .. contents:: @@ -767,7 +767,7 @@ See Also ------------------------------------------------------------------------------- * https://en.wikipedia.org/wiki/Vehicle_routing_problem -* The queries use the :doc:`sampledata` network. +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/categories/cost-category.rst b/doc/categories/cost-category.rst index 56da99a0e6..b4740caf9a 100644 --- a/doc/categories/cost-category.rst +++ b/doc/categories/cost-category.rst @@ -7,16 +7,16 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Cost Category +| + Cost - Category =============================================================================== -.. index from here +.. official-start * :doc:`pgr_aStarCost` * :doc:`pgr_bdAstarCost` @@ -24,19 +24,19 @@ Cost - Category * :doc:`pgr_bdDijkstraCost` * :doc:`pgr_dijkstraNearCost` -.. index to here +.. official-end .. rubric:: Proposed .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. index proposed from here +.. proposed-start * :doc:`pgr_withPointsCost` -.. index proposed to here +.. proposed-end General Information diff --git a/doc/categories/costMatrix-category.rst b/doc/categories/costMatrix-category.rst index 3650b16ee9..c4c28b1e72 100644 --- a/doc/categories/costMatrix-category.rst +++ b/doc/categories/costMatrix-category.rst @@ -7,34 +7,34 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Cost Matrix Category +| + Cost Matrix - Category =============================================================================== -.. index from here +.. official-start * :doc:`pgr_aStarCostMatrix` * :doc:`pgr_dijkstraCostMatrix` * :doc:`pgr_bdAstarCostMatrix` * :doc:`pgr_bdDijkstraCostMatrix` -.. index to here +.. official-end .. rubric:: proposed .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. index proposed from here +.. proposed-start * :doc:`pgr_withPointsCostMatrix` -.. index proposed to here +.. proposed-end General Information ------------------------------------------------------------------------------- diff --git a/doc/categories/drivingDistance-category.rst b/doc/categories/drivingDistance-category.rst index 3cff77aef4..5efdadd935 100644 --- a/doc/categories/drivingDistance-category.rst +++ b/doc/categories/drivingDistance-category.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Driving Distance Category +| + Driving Distance - Category =============================================================================== -.. index from here +.. official-start * :doc:`pgr_drivingDistance` - Driving Distance based on Dijkstra's algorithm * :doc:`pgr_primDD` - Driving Distance based on Prim's algorithm @@ -23,19 +23,19 @@ Driving Distance - Category * :doc:`pgr_alphaShape` - Alpha shape computation -.. index to here +.. official-end .. rubric:: Proposed .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning -.. index proposed from here +.. proposed-start * :doc:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints -.. index proposed to here +.. proposed-end .. toctree:: :hidden: diff --git a/doc/categories/spanningTree-family.rst b/doc/categories/spanningTree-family.rst index 133a3160bd..24b9a30819 100644 --- a/doc/categories/spanningTree-family.rst +++ b/doc/categories/spanningTree-family.rst @@ -7,19 +7,19 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Spanning Tree Category +| + Spanning Tree - Category =============================================================================== -.. index from here +.. official-start * :doc:`kruskal-family` * :doc:`prim-family` -.. index to here +.. official-end A spanning tree of an undirected graph is a tree that includes all the vertices of G with the minimum possible number of edges. diff --git a/doc/categories/via-category.rst b/doc/categories/via-category.rst index 62fafe8109..5f7a69f40f 100644 --- a/doc/categories/via-category.rst +++ b/doc/categories/via-category.rst @@ -7,17 +7,17 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Via Category +| + Via - Category =============================================================================== .. rubric:: proposed .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning .. proposed start diff --git a/doc/categories/withPoints-category.rst b/doc/categories/withPoints-category.rst index f27ebc428c..0f4a2a9d04 100644 --- a/doc/categories/withPoints-category.rst +++ b/doc/categories/withPoints-category.rst @@ -7,17 +7,17 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: With Points Category +| + withPoints - Category =============================================================================== When points are added to the graph. .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning .. proposed start diff --git a/doc/chinese/chinesePostmanProblem-family.rst b/doc/chinese/chinesePostmanProblem-family.rst index eb5b026687..dd1e84a8da 100644 --- a/doc/chinese/chinesePostmanProblem-family.rst +++ b/doc/chinese/chinesePostmanProblem-family.rst @@ -9,16 +9,15 @@ | - Chinese Postman Problem - Family of functions (Experimental) =============================================================================== -.. index from here +.. official-start * :doc:`pgr_chinesePostman` * :doc:`pgr_chinesePostmanCost` -.. index to here +.. official-end .. toctree:: :hidden: @@ -27,8 +26,8 @@ Chinese Postman Problem - Family of functions (Experimental) pgr_chinesePostmanCost .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning Description ------------------------------------------------------------------------------- diff --git a/doc/chinese/pgr_chinesePostman.rst b/doc/chinese/pgr_chinesePostman.rst index 4991c9bc25..3b9ee31196 100644 --- a/doc/chinese/pgr_chinesePostman.rst +++ b/doc/chinese/pgr_chinesePostman.rst @@ -7,9 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| +.. index:: + single: Cost Category ; pgr_chinesePostman - Experimental + single: Miscellaneous Algorithms ; pgr_chinesePostman - Experimental + single: chinesePostman - Experimental on v3.0 -* **Supported versions** +| ``pgr_chinesePostman`` - Experimental =============================================================================== @@ -18,14 +21,14 @@ every edge in a directed graph and starts and ends on the same vertex. .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 - * New **experimental** signature + * New experimental function. Description ------------------------------------------------------------------------------- @@ -36,12 +39,11 @@ Description - Returns ``EMPTY SET`` on a disconnected graph +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- -.. index:: - single: chinesePostman - Experimental on v3.0 - .. admonition:: \ \ :class: signatures diff --git a/doc/chinese/pgr_chinesePostmanCost.rst b/doc/chinese/pgr_chinesePostmanCost.rst index 99fcdaa617..7e21ca97c0 100644 --- a/doc/chinese/pgr_chinesePostmanCost.rst +++ b/doc/chinese/pgr_chinesePostmanCost.rst @@ -7,8 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| +.. index:: + single: Cost Category ; pgr_chinesePostmanCost - Experimental + single: Miscellaneous Algorithms ; pgr_chinesePostmanCost - Experimental + single: chinesePostmanCost - Experimental on v3.0 +| ``pgr_chinesePostmanCost`` - Experimental =============================================================================== @@ -18,14 +22,14 @@ which contains every edge in a directed graph and starts and ends on the same vertex. .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 - * New **experimental** signature + * New experimental function. Description ------------------------------------------------------------------------------- @@ -36,12 +40,11 @@ Description - Return value when the graph if disconnected +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- -.. index:: - single: chinesePostmanCost - Experimental on v3.0 - .. admonition:: \ \ :class: signatures diff --git a/doc/circuits/pgr_hawickCircuits.rst b/doc/circuits/pgr_hawickCircuits.rst index ec364f2837..9dc6d657a1 100644 --- a/doc/circuits/pgr_hawickCircuits.rst +++ b/doc/circuits/pgr_hawickCircuits.rst @@ -7,32 +7,26 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Miscellaneous Algorithms ; pgr_hawickCircuits single: Hawick Circuits - Experimental on v3.4 +| + ``pgr_hawickCircuits - Experimental`` =============================================================================== ``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/hawick_circuits.html - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.4.0 - * New **experimental** signature: - - * ``pgr_hawickCircuits`` - + * New experimental function. Description ------------------------------------------------------------------------------- @@ -61,6 +55,8 @@ implemenent this variation. - :math:`|V|` is the number of vertices in the graph. - :math:`|c|` is the number of circuts in the graph. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/coloring/coloring-family.rst b/doc/coloring/coloring-family.rst index fde5da3568..96babb6bfa 100644 --- a/doc/coloring/coloring-family.rst +++ b/doc/coloring/coloring-family.rst @@ -7,9 +7,9 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - +.. index:: Coloring Family +| Coloring - Family of functions =============================================================================== @@ -17,29 +17,29 @@ Coloring - Family of functions .. rubric:: Proposed .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning -.. index proposed from here +.. proposed-start * :doc:`pgr_sequentialVertexColoring` - Vertex coloring algorithm using greedy approach. -.. index proposed to here +.. proposed-end .. rubric:: Experimental .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index from here +.. official-start * :doc:`pgr_bipartite` - Bipartite graph algorithm using a DFS-based coloring approach. * :doc:`pgr_edgeColoring` - Edge Coloring algorithm using Vizing's theorem. -.. index to here +.. official-end .. toctree:: @@ -88,18 +88,7 @@ Column Type Description See Also ------------------------------------------------------------------------------- -.. include:: pgr_sequentialVertexColoring.rst - :start-after: see also start - :end-before: see also end - -.. include:: pgr_bipartite.rst - :start-after: see also start - :end-before: see also end - -.. include:: pgr_edgeColoring.rst - :start-after: see also start - :end-before: see also end - +* `Boost: `__ .. rubric:: Indices and tables diff --git a/doc/coloring/pgr_bipartite.rst b/doc/coloring/pgr_bipartite.rst index 732ca04c93..971b9d0c4b 100644 --- a/doc/coloring/pgr_bipartite.rst +++ b/doc/coloring/pgr_bipartite.rst @@ -7,30 +7,27 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| +.. index:: + single: Coloring Family ; pgr_bipartite - Experimental + single: bipartite - Experimental on v3.2 +| -pgr_bipartite -Experimental +``pgr_bipartite`` - Experimental =============================================================================== ``pgr_bipartite`` — Disjoint sets of vertices such that no two vertices within the same set are adjacent. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/is_bipartite.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** signature - + * New experimental function. Description ------------------------------------------------------------------------------- @@ -49,13 +46,11 @@ colored with the same color. - If graph is not bipartite then algorithm returns empty set. - Running time: :math:`O(V + E)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- -.. index:: - single: bipartite - Experimental on v3.2 - - .. admonition:: \ \ :class: signatures @@ -118,16 +113,12 @@ Edges in blue represent odd length cycle subgraph. See Also ------------------------------------------------------------------------------- -.. see also start - * `Boost: is_bipartite `__ * `Wikipedia: bipartite graph `__ -.. see also end - -* :doc:`sampledata` network. +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/coloring/pgr_edgeColoring.rst b/doc/coloring/pgr_edgeColoring.rst index 509ee6e850..b4968f9f63 100644 --- a/doc/coloring/pgr_edgeColoring.rst +++ b/doc/coloring/pgr_edgeColoring.rst @@ -7,30 +7,27 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| +.. index:: + single: Coloring Family ; pgr_edgeColoring - Experimental + single: edgeColoring - Experimental on v3.3 +| -pgr_edgeColoring - Experimental +``pgr_edgeColoring`` - Experimental =============================================================================== ``pgr_edgeColoring`` — Returns the edge coloring of undirected and loop-free graphs -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/edge_coloring.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-exp + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.3.0 - * New **experimental** signature - + * New experimental function. Description ------------------------------------------------------------------------------- @@ -70,12 +67,11 @@ no two adjacent edges have the same color. - where :math:`|E|` is the number of edges in the graph, - :math:`|V|` is the number of vertices in the graph. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------ -.. index:: - single: edgeColoring - Experimental on v3.3 - .. admonition:: \ \ :class: signatures @@ -120,16 +116,11 @@ Result columns See Also ------------------------------------------------------------------------------- -* The queries use the :doc:`sampledata` network. - -.. see also start - -* `Boost: Edge Coloring Algorithm documentation +* :doc:`sampledata` +* `Boost: Edge Coloring `__ * `Wikipedia: Graph coloring `__ -.. see also end - .. rubric:: Indices and tables * :ref:`genindex` diff --git a/doc/coloring/pgr_sequentialVertexColoring.rst b/doc/coloring/pgr_sequentialVertexColoring.rst index 568fa305a8..6d027eb00d 100644 --- a/doc/coloring/pgr_sequentialVertexColoring.rst +++ b/doc/coloring/pgr_sequentialVertexColoring.rst @@ -7,33 +7,31 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| +.. index:: + single: Coloring Family ; pgr_sequentialVertexColoring - Proposed + single: sequentialVertexColoring - Proposed on v3.3 +| -pgr_sequentialVertexColoring - Proposed +``pgr_sequentialVertexColoring`` - Proposed =============================================================================== ``pgr_sequentialVertexColoring`` — Returns the vertex coloring of an undirected graph, using greedy approach. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/sequential_vertex_coloring.html - - Boost Graph Inside - .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.3.0 - * Promoted to **proposed** signature + * Function promoted to proposed. * Version 3.2.0 - * New **experimental** signature + * New experimental function. Description @@ -60,12 +58,11 @@ manner, such that no edge connects two identically colored vertices. - :math:`d` is the maximum degree of the vertices in the graph, - :math:`k` is the number of colors used. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------ -.. index:: - single: sequentialVertexColoring - Proposed on v3.3 - .. admonition:: \ \ :class: signatures @@ -110,16 +107,11 @@ Result columns See Also ------------------------------------------------------------------------------- -* The queries use the :doc:`sampledata` network. - -.. see also start - -* `Boost: Sequential Vertex Coloring algorithm documentation +* :doc:`sampledata` +* `Boost: Sequential Vertex Coloring `__ * `Wikipedia: Graph coloring `__ -.. see also end - .. rubric:: Indices and tables * :ref:`genindex` diff --git a/doc/components/components-family.rst b/doc/components/components-family.rst index 8c64f637dd..3225c95f56 100644 --- a/doc/components/components-family.rst +++ b/doc/components/components-family.rst @@ -7,15 +7,15 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Components Family +| + Components - Family of functions =============================================================================== -.. index from here +.. official-start * :doc:`pgr_connectedComponents` - Connected components of an undirected graph. * :doc:`pgr_strongComponents` - Strongly connected components of a directed @@ -25,19 +25,19 @@ Components - Family of functions * :doc:`pgr_articulationPoints` - Articulation points of an undirected graph. * :doc:`pgr_bridges` - Bridges of an undirected graph. -.. index to here +.. official-end .. rubric:: Experimental .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index experimental from here +.. experimental-start * :doc:`pgr_makeConnected` - Details of edges to make graph connected. -.. index experimental to here +.. experimental-end .. toctree:: diff --git a/doc/components/pgr_articulationPoints.rst b/doc/components/pgr_articulationPoints.rst index 6eb9f27896..a9be880cbb 100644 --- a/doc/components/pgr_articulationPoints.rst +++ b/doc/components/pgr_articulationPoints.rst @@ -7,24 +7,19 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Components Family ; pgr_articulationPoints single: articulationPoints +| + ``pgr_articulationPoints`` =============================================================================== ``pgr_articulationPoints`` - Return the articulation points of an undirected graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/biconnected_components.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -34,7 +29,7 @@ graph. * Version 2.5.0 - * New **experimental** function + * New experimental function. Description ------------------------------------------------------------------------------- @@ -54,6 +49,8 @@ This implementation can only be used with an undirected graph. - Running time: :math:`O(V + E)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -114,8 +111,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`components-family` -* The queries use the :doc:`sampledata` network. -* Boost: `Biconnected components & articulation points +* :doc:`sampledata` +* `Boost: Biconnected components & articulation points `__ * wikipedia: `Biconnected component `__ diff --git a/doc/components/pgr_biconnectedComponents.rst b/doc/components/pgr_biconnectedComponents.rst index 332a0bbb42..e97ec73ec6 100644 --- a/doc/components/pgr_biconnectedComponents.rst +++ b/doc/components/pgr_biconnectedComponents.rst @@ -7,37 +7,32 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Components Family ; pgr_biconnectedComponents single: biconnectedComponents +| + ``pgr_biconnectedComponents`` =============================================================================== ``pgr_biconnectedComponents`` — Biconnected components of an undirected graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/biconnected_components.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 * Result columns change: - * ``n_seq`` is removed - * ``seq`` changed type to ``BIGINT`` + * n_seq`` is removed + * seq`` changed type to ``BIGINT`` * **Official** function * Version 2.5.0 - * New **experimental** function + * New experimental function. Description @@ -62,6 +57,8 @@ only be contained in a single biconnected component. - Running time: :math:`O(V + E)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -128,8 +125,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`components-family` -* The queries use the :doc:`sampledata` network. -* Boost: `Biconnected components +* :doc:`sampledata` +* `Boost: Biconnected components & articulation points `__ * wikipedia: `Biconnected component `__ diff --git a/doc/components/pgr_bridges.rst b/doc/components/pgr_bridges.rst index c9529ea780..7cb13e65cf 100644 --- a/doc/components/pgr_bridges.rst +++ b/doc/components/pgr_bridges.rst @@ -7,22 +7,17 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Components Family ; pgr_bridges single: bridges +| + ``pgr_bridges`` =============================================================================== ``pgr_bridges`` - Return the bridges of an undirected graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/connected_components.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -32,7 +27,7 @@ * Version 2.5.0 - * New **experimental** function + * New experimental function. Description ------------------------------------------------------------------------------- @@ -50,6 +45,8 @@ This implementation can only be used with an undirected graph. - Running time: :math:`O(E * (V + E))` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -108,7 +105,8 @@ See Also ------------------------------------------------------------------------------- * https://en.wikipedia.org/wiki/Bridge_%28graph_theory%29 -* The queries use the :doc:`sampledata` network. +* :doc:`sampledata` +* `Boost: connected components `__ .. rubric:: Indices and tables diff --git a/doc/components/pgr_connectedComponents.rst b/doc/components/pgr_connectedComponents.rst index 65f8ce74b5..ff777d94d9 100644 --- a/doc/components/pgr_connectedComponents.rst +++ b/doc/components/pgr_connectedComponents.rst @@ -7,37 +7,32 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Components Family ; pgr_connectedComponents single: connectedComponents -pgr_connectedComponents +| + +``pgr_connectedComponents`` =============================================================================== ``pgr_connectedComponents`` — Connected components of an undirected graph using a DFS-based approach. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/connected_components.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 * Result columns change: - * ``n_seq`` is removed - * ``seq`` changed type to ``BIGINT`` + * n_seq`` is removed + * seq`` changed type to ``BIGINT`` - * **Official** function + * Function propoted to **Official**. * Version 2.5.0 - * New **experimental** function + * New experimental function. Description @@ -59,8 +54,7 @@ from each other. - Running time: :math:`O(V + E)` -.. index:: - single: connectedComponents +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -143,8 +137,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`components-family` -* The queries use the :doc:`sampledata` network. -* Boost: `Connected components +* :doc:`sampledata` +* `Boost: Connected components `__ * wikipedia: `Connected component `__ diff --git a/doc/components/pgr_makeConnected.rst b/doc/components/pgr_makeConnected.rst index 018407bc26..f58c7d762d 100644 --- a/doc/components/pgr_makeConnected.rst +++ b/doc/components/pgr_makeConnected.rst @@ -7,31 +7,27 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Components Family ; pgr_makeConnected + single: Components Family ; pgr_makeConnected - Experimental single: makeConnected - Experimental on v3.2 + +| + ``pgr_makeConnected`` - Experimental =============================================================================== ``pgr_makeConnected`` — Set of edges that will connect the graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/make_connected.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** function + * New experimental function. Description @@ -55,6 +51,8 @@ The main characteristics are: - The algorithm does not considers geometric topology in the calculations. - Running time: :math:`O(V + E)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -66,8 +64,7 @@ Signatures | Returns set of |result-component-make| | OR EMPTY SET -:Example: Query done on :doc:`sampledata` network gives the list of edges that - are needed to connect the graph. +:Example: List of edges that are needed to connect the graph. .. literalinclude:: makeConnected.queries :start-after: -- q1 @@ -116,8 +113,9 @@ Returns set of |result-component-make| See Also ------------------------------------------------------------------------------- -* https://www.boost.org/libs/graph/doc/make_connected.html -* The queries use the :doc:`sampledata` network. +* `Boost: make connected + `__ +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/components/pgr_strongComponents.rst b/doc/components/pgr_strongComponents.rst index a6a571d533..d1f8b07126 100644 --- a/doc/components/pgr_strongComponents.rst +++ b/doc/components/pgr_strongComponents.rst @@ -7,23 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Components Family ; pgr_strongComponents single: strongComponents +| + ``pgr_strongComponents`` =============================================================================== ``pgr_strongComponents`` — Strongly connected components of a directed graph using Tarjan's algorithm based on DFS. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/strong_components.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -37,7 +32,7 @@ using Tarjan's algorithm based on DFS. * Version 2.5.0 - * New **experimental** function + * New experimental function. Description @@ -57,6 +52,8 @@ all reachable from each other. - Running time: :math:`O(V + E)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -106,8 +103,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`components-family` -* The queries use the :doc:`sampledata` network. -* Boost: `Strong components +* :doc:`sampledata` +* `Boost: Strong components `__ * wikipedia: `Strongly connected component `__ diff --git a/doc/conf.py.in b/doc/conf.py.in index f7848e052d..afd1b30d95 100644 --- a/doc/conf.py.in +++ b/doc/conf.py.in @@ -392,6 +392,10 @@ rst_epilog=""" .. |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 + :target: https://www.boost.org/libs/graph + :alt: Boost Graph inside + :height: 18 .. |epilog_end| replace:: just a marker for notes2news """ diff --git a/doc/contraction/contraction-family.rst b/doc/contraction/contraction-family.rst index aede7e9270..0c79ee1dbc 100644 --- a/doc/contraction/contraction-family.rst +++ b/doc/contraction/contraction-family.rst @@ -7,19 +7,19 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Contraction Family +| + Contraction - Family of functions =============================================================================== -.. index from here +.. official-start * :doc:`pgr_contraction` -.. index to here +.. official-end .. toctree:: :hidden: diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index 5a0796d565..dc23ddda99 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -7,10 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| +.. index:: + single: Contraction Family ; pgr_contraction + single: contraction -.. index:: Contraction Family ; pgr_contraction +| ``pgr_contraction`` =============================================================================== @@ -18,11 +20,6 @@ ``pgr_contraction`` — Performs graph contraction and returns the contracted vertices and edges. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -34,7 +31,7 @@ vertices and edges. * Version 2.3.0 - * New **experimental** function + * New experimental function. Description @@ -66,6 +63,7 @@ The main Characteristics are: - column ``id`` ascending when type is ``v`` - column ``id`` descending when type is ``e`` +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- diff --git a/doc/dagShortestPath/pgr_dagShortestPath.rst b/doc/dagShortestPath/pgr_dagShortestPath.rst index 316e5a7a4b..005799c942 100644 --- a/doc/dagShortestPath/pgr_dagShortestPath.rst +++ b/doc/dagShortestPath/pgr_dagShortestPath.rst @@ -7,40 +7,35 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Shortest Path Category ; pgr_dagShortestPath - single: Directed Acyclic Graph Category ; pgr_dagShortestPath - single: dagShortestPath + single: Shortest Path Category ; pgr_dagShortestPath - Experimental + single: Directed Acyclic Graph Category ; pgr_dagShortestPath - Experimental + single: dagShortestPath - Experimental + +| -pgr_dagShortestPath - Experimental +``pgr_dagShortestPath`` - Experimental =============================================================================== ``pgr_dagShortestPath`` — Returns the shortest path for weighted directed acyclic graphs(DAG). In particular, the DAG shortest paths algorithm implemented by Boost.Graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/dag_shortest_paths.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** function: + * New experimental function. * pgr_dagShortestPath(Combinations) * Version 3.0.0 - * New **experimental** function + * New experimental function. Description @@ -82,6 +77,7 @@ The main characteristics are: * Running time: :math:`O(| start\_vids | * (V + E))` +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -102,7 +98,7 @@ Signatures .. index:: - single: dagShortestPath ; One to One - Experimental on v3.0 + single: dagShortestPath - Experimental ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -122,7 +118,7 @@ One to One :end-before: -- q3 .. index:: - single: dagShortestPath ; One to Many - Experimental on v3.0 + single: dagShortestPath - Experimental ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -142,7 +138,7 @@ One to Many :end-before: -- q4 .. index:: - single: dagShortestPath ; Many to One - Experimental on v3.0 + single: dagShortestPath - Experimental ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -162,7 +158,7 @@ Many to One :end-before: -- q5 .. index:: - single: dagShortestPath ; Many to Many - Experimental on v3.0 + single: dagShortestPath - Experimental ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -183,7 +179,7 @@ Many to Many :end-before: -- q51 .. index:: - single: dagShortestPath ; Combinations - Experimental on v3.2 + single: dagShortestPath - Experimental ; Combinations - Experimental on v3.2 Combinations ............................................................................... @@ -266,6 +262,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`sampledata` +* `Boost: DAG shortest paths + `__ * https://en.wikipedia.org/wiki/Topological_sorting .. rubric:: Indices and tables diff --git a/doc/dijkstra/dijkstra-family.rst b/doc/dijkstra/dijkstra-family.rst index e28fabb6c3..65c23da0f8 100644 --- a/doc/dijkstra/dijkstra-family.rst +++ b/doc/dijkstra/dijkstra-family.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Dijkstra Family +| + Dijkstra - Family of functions =============================================================================== -.. index from here +.. official-start * :doc:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths. * :doc:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths. @@ -24,22 +24,22 @@ Dijkstra - Family of functions * :doc:`pgr_KSP` - Use Yen algorithm with pgr_dijkstra to get the K shortest paths. -.. index to here +.. official-end .. rubric:: Proposed .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning -.. index proposed from here +.. proposed-start * :doc:`pgr_dijkstraVia` - Get a route of a seuence of vertices. * :doc:`pgr_dijkstraNear` - Get the route to the nearest vertex. * :doc:`pgr_dijkstraNearCost` - Get the cost to the nearest vertex. -.. index proposed to here +.. proposed-end .. toctree:: :hidden: diff --git a/doc/dijkstra/pgr_dijkstra.rst b/doc/dijkstra/pgr_dijkstra.rst index 4a779f4dc7..8943976c11 100644 --- a/doc/dijkstra/pgr_dijkstra.rst +++ b/doc/dijkstra/pgr_dijkstra.rst @@ -7,58 +7,53 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Dijkstra Family ; pgr_dijkstra single: Shortest Path Category ; pgr_dijkstra single: dijkstra +| + ``pgr_dijkstra`` =============================================================================== ``pgr_dijkstra`` — Shortest path using Dijkstra algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.5.0 * Standarizing output columns to |short-generic-result| - * ``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(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. * Version 3.1.0 - * New **Proposed** functions: + * New proposed signature: - * ``pgr_dijkstra`` (`Combinations`_) + * pgr_dijkstra(Combinations) * Version 3.0.0 - * **Official** functions + * **Official** function. * Version 2.2.0 - * New **proposed** functions: + * New proposed signatures: - * ``pgr_dijkstra`` (`One to Many`_) - * ``pgr_dijkstra`` (`Many to One`_) - * ``pgr_dijkstra`` (`Many to Many`_) + * pgr_dijkstra(One to Many) + * pgr_dijkstra(Many to One) + * pgr_dijkstra(Many to Many) * Version 2.1.0 - * Signature change on ``pgr_dijkstra`` (`One to One`_) + * Signature change on pgr_dijkstra(One to One) * Version 2.0.0 - * **Official** ``pgr_dijkstra`` (`One to One`_) + * **Official** pgr_dijkstra(One to One) Description @@ -72,6 +67,7 @@ Description :start-after: dijkstra_details_start :end-before: dijkstra_details_end +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -600,11 +596,13 @@ The following examples find the path for :math:`\{6\}\rightarrow\{10\}` :start-after: -- q154 :end-before: -- q16 -See Also +e Also ------------------------------------------------------------------------------- +* :doc:`sampledata` +* `Boost: Dijkstra shortest paths + `__ * https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm -* The queries use the :doc:`sampledata` network. .. rubric:: Indices and tables diff --git a/doc/dijkstra/pgr_dijkstraCost.rst b/doc/dijkstra/pgr_dijkstraCost.rst index 6349623362..db494a62c2 100644 --- a/doc/dijkstra/pgr_dijkstraCost.rst +++ b/doc/dijkstra/pgr_dijkstraCost.rst @@ -7,36 +7,31 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Dijkstra Family ; pgr_dijkstraCost single: Cost Category ; pgr_dijkstraCost single: dijkstraCost +| + ``pgr_dijkstraCost`` =============================================================================== ``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.1.0 - * New **proposed** signature: + * New proposed signature: - * ``pgr_dijkstraCost`` (`Combinations`_) + * pgr_dijkstraCost(Combinations) * Version 2.2.0 - * New **Official** function + * New **official** function. Description @@ -57,6 +52,8 @@ using Dijkstra Algorithm. :start-after: cost_traits_start :end-before: cost_traits_end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -249,6 +246,8 @@ See Also * :doc:`dijkstra-family` * :doc:`sampledata` +* `Boost: Dijkstra shortest paths + `__ * https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm .. rubric:: Indices and tables diff --git a/doc/dijkstra/pgr_dijkstraCostMatrix.rst b/doc/dijkstra/pgr_dijkstraCostMatrix.rst index 1161320d14..f4fc45a90b 100644 --- a/doc/dijkstra/pgr_dijkstraCostMatrix.rst +++ b/doc/dijkstra/pgr_dijkstraCostMatrix.rst @@ -7,23 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Dijkstra Family ; pgr_dijkstraCostMatrix single: Cost Matrix Category ; pgr_dijkstraCostMatrix single: dijkstraCostMatrix +| + ``pgr_dijkstraCostMatrix`` =============================================================================== ``pgr_dijkstraCostMatrix`` - Calculates a cost matrix using :doc:`pgr_dijkstra`. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -32,7 +27,7 @@ * Version 2.3.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -47,6 +42,8 @@ Using Dijkstra algorithm, calculate and return a cost matrix. :start-after: costMatrix_details_start :end-before: costMatrix_details_end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -114,6 +111,8 @@ See Also * :doc:`costMatrix-category` * :doc:`TSP-family` * :doc:`sampledata` +* `Boost: Dijkstra shortest paths + `__ .. rubric:: Indices and tables diff --git a/doc/dijkstra/pgr_dijkstraNear.rst b/doc/dijkstra/pgr_dijkstraNear.rst index 5378822b05..5f7bd2186b 100644 --- a/doc/dijkstra/pgr_dijkstraNear.rst +++ b/doc/dijkstra/pgr_dijkstraNear.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Dijkstra Family ; pgr_dijkstraNear - single: Near Category ; pgr_dijkstraNear - single: dijkstraNear + single: Dijkstra Family ; pgr_dijkstraNear - Proposed + single: Near Category ; pgr_dijkstraNear - Proposed + single: dijkstraNear - Proposed + +| ``pgr_dijkstraNear`` - Proposed =============================================================================== @@ -21,23 +21,18 @@ the nearest vertex. .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.3.0 - * Promoted to **proposed** function + * Function promoted to proposed. * Version 3.2.0 - * New **experimental** function + * New experimental function. Description @@ -78,6 +73,8 @@ Characteristics .. dijkstraNear characteristics end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -97,7 +94,7 @@ Signatures | OR EMPTY SET .. index:: - single: dijkstraNear ; One to Many - Proposed on v3.3 + single: dijkstraNear - Proposed; One to Many - Proposed on v3.3 One to Many ............................................................................... @@ -130,7 +127,7 @@ One to Many The result shows that station at vertex :math:`11` is the nearest. .. index:: - single: dijkstraNear ; Many to One - Proposed on v3.3 + single: dijkstraNear - Proposed; Many to One - Proposed on v3.3 Many to One ............................................................................... @@ -161,7 +158,7 @@ The result shows that station at vertex :math:`10` is the nearest and the next best is :math:`11`. .. index:: - single: dijkstraNear ; Many to Many - Proposed on v3.3 + single: dijkstraNear - Proposed; Many to Many - Proposed on v3.3 Many to Many ............................................................................... @@ -197,7 +194,7 @@ the first subway line and at vertex :math:`10` of the second subway line. Only `one` route is returned because `global` is ``true`` and `cap` is ``1`` .. index:: - single: dijkstraNear ; Combinations - Proposed on v3.3 + single: dijkstraNear - Proposed; Combinations - Proposed on v3.3 Combinations ............................................................................... @@ -329,8 +326,9 @@ See Also * :doc:`dijkstra-family` * :doc:`pgr_dijkstraNearCost` -* :doc:`sampledata` network. -* boost: https://www.boost.org/libs/graph/doc/table_of_contents.html +* :doc:`sampledata` +* `Boost: Dijkstra shortest paths + `__ * Wikipedia: https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm .. rubric:: Indices and tables diff --git a/doc/dijkstra/pgr_dijkstraNearCost.rst b/doc/dijkstra/pgr_dijkstraNearCost.rst index f0d245ec53..34b4fa8b66 100644 --- a/doc/dijkstra/pgr_dijkstraNearCost.rst +++ b/doc/dijkstra/pgr_dijkstraNearCost.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Dijkstra Family ; pgr_dijkstraNearCost - single: Near Category ; pgr_dijkstraNearCost - single: Cost Category ; pgr_dijkstraNearCost - single: dijkstraNearCost + single: Dijkstra Family ; pgr_dijkstraNearCost - Proposed + single: Near Category ; pgr_dijkstraNearCost - Proposed + single: Cost Category ; pgr_dijkstraNearCost - Proposed + single: dijkstraNearCost - Proposed + +| ``pgr_dijkstraNearCost`` - Proposed =============================================================================== @@ -23,23 +23,18 @@ to the nearest vertex. .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.3.0 - * Promoted to **proposed** function + * Function promoted to proposed. * Version 3.2.0 - * New **experimental** function + * New experimental function. Description @@ -55,6 +50,8 @@ Characteristics :start-after: dijkstraNear characteristics start :end-before: dijkstraNear characteristics end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -74,7 +71,7 @@ Signatures | OR EMPTY SET .. index:: - single: dijkstraNearCost ; One to Many - Proposed on v3.3 + single: dijkstraNearCost - Proposed ; One to Many - Proposed on v3.3 One to Many ............................................................................... @@ -107,7 +104,7 @@ One to Many The result shows that station at vertex :math:`11` is the nearest. .. index:: - single: dijkstraNearCost ; Many to One - Proposed on v3.3 + single: dijkstraNearCost - Proposed ; Many to One - Proposed on v3.3 Many to One ............................................................................... @@ -138,7 +135,7 @@ The result shows that station at vertex :math:`10` is the nearest and the next best is :math:`11`. .. index:: - single: dijkstraNearCost ; Many to Many - Proposed on v3.3 + single: dijkstraNearCost - Proposed ; Many to Many - Proposed on v3.3 Many to Many ............................................................................... @@ -174,7 +171,7 @@ the first subway line and at vertex :math:`10` of the second subway line. Only `one` route is returned because `global` is ``true`` and `cap` is ``1`` .. index:: - single: dijkstraNearCost ; Combinations - Proposed on v3.3 + single: dijkstraNearCost - Proposed ; Combinations - Proposed on v3.3 Combinations ............................................................................... @@ -285,8 +282,9 @@ See Also * :doc:`dijkstra-family` * :doc:`pgr_dijkstraNear` -* :doc:`sampledata` network. -* boost: https://www.boost.org/libs/graph/doc/table_of_contents.html +* :doc:`sampledata` +* `Boost: Dijkstra shortest paths + `__ * Wikipedia: https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm .. rubric:: Indices and tables diff --git a/doc/dijkstra/pgr_dijkstraVia.rst b/doc/dijkstra/pgr_dijkstraVia.rst index 6a3809bce1..c410b5938c 100644 --- a/doc/dijkstra/pgr_dijkstraVia.rst +++ b/doc/dijkstra/pgr_dijkstraVia.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Dijkstra Family ; pgr_dijkstraVia - single: Via Category ; pgr_dijkstraVia - single: dijkstraVia + single: Dijkstra Family ; pgr_dijkstraVia - Proposed + single: Via Category ; pgr_dijkstraVia - Proposed + single: dijkstraVia - Proposed + +| ``pgr_dijkstraVia`` - Proposed =============================================================================== @@ -20,19 +20,14 @@ ``pgr_dijkstraVia`` — Route that goes through a list of vertices. .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 2.2.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -44,11 +39,13 @@ shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :math:`i :Route: is a sequence of paths. :Path: is a section of the route. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- .. index:: - single: dijkstraVia - Proposed on 2.2 + single: dijkstraVia - Proposed ; One Via - Proposed on 2.2 One Via ............................................................................... @@ -163,7 +160,9 @@ See Also * :doc:`via-category`. * :doc:`dijkstra-family`. -* :doc:`sampledata` network. +* :doc:`sampledata` +* `Boost: Dijkstra shortest paths + `__ * https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm .. rubric:: Indices and tables diff --git a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst index 2c1fe650ad..0768112e0d 100644 --- a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst +++ b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst @@ -7,33 +7,27 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Miscellaneous Algorithms ; pgr_lengauerTarjanDominatorTree single: lengauerTarjanDominatorTree - Experimental on v3.2 +| -pgr_lengauerTarjanDominatorTree -Experimental +``pgr_lengauerTarjanDominatorTree`` -Experimental =============================================================================== ``pgr_lengauerTarjanDominatorTree`` — Returns the immediate dominator of all vertices. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/lengauer_tarjan_dominator.htm - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** function + * New experimental function. Description @@ -50,6 +44,8 @@ The algorithm calculates the *immidiate dominator* of each vertex called - If the *root vertex* not present in the graph then it returns empty set. - Running time: :math:`O((V+E)log(V+E))` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -118,7 +114,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`sampledata` -* `Boost: Lengauer-Tarjan dominator tree algorithm +* `Boost: Lengauer-Tarjan dominator `__ * `Wikipedia: dominator tree `__ diff --git a/doc/driving_distance/pgr_drivingDistance.rst b/doc/driving_distance/pgr_drivingDistance.rst index bb0ddf9677..74d376a3d9 100644 --- a/doc/driving_distance/pgr_drivingDistance.rst +++ b/doc/driving_distance/pgr_drivingDistance.rst @@ -7,33 +7,28 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Driving Distance Category ; pgr_drivingDistance single: drivingDistance +| + ``pgr_drivingDistance`` =============================================================================== ``pgr_drivingDistance`` - Returns the driving distance from a start node. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability .. rubric:: Version 3.6.0 * Standarizing output columns to |result-spantree| - * ``pgr_drivingdistance`` (Single vertex) + * pgr_drivingdistance(Single vertex) * Added ``depth`` and ``start_vid`` result columns. - * ``pgr_drivingdistance`` (Multiple vertices) + * pgr_drivingdistance(Multiple vertices) * Result column name change: ``from_v`` to ``start_vid``. * Added ``depth`` and ``pred`` result columns. @@ -55,6 +50,8 @@ Using the Dijkstra algorithm, extracts all the nodes that have costs less than or equal to the value ``distance``. The edges extracted will conform to the corresponding spaning tree. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -176,7 +173,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`pgr_alphaShape` - Alpha shape computation -* :doc:`sampledata` network. +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/ksp/pgr_KSP.rst b/doc/ksp/pgr_KSP.rst index 86df4b4c47..548efd5d65 100644 --- a/doc/ksp/pgr_KSP.rst +++ b/doc/ksp/pgr_KSP.rst @@ -7,38 +7,32 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: K Shortest Paths Category ; pgr_KSP single: KSP -pgr_KSP +| + +``pgr_KSP`` =============================================================================== ``pgr_KSP`` — Yen's algorithm for K shortest paths using Dijkstra. - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability .. rubric:: Version 3.6.0 * Result columns standarized to: |nksp-result| -* ``pgr_ksp`` (One to One) +* pgr_ksp(One to One) * Added ``start_vid`` and ``end_vid`` result columns. -* New overload functions: +* New proposed signatures: - * ``pgr_ksp`` (One to Many) - * ``pgr_ksp`` (Many to One) - * ``pgr_ksp`` (Many to Many) - * ``pgr_ksp`` (Combinations) + * pgr_ksp(One to Many) + * pgr_ksp(Many to One) + * pgr_ksp(Many to Many) + * pgr_ksp(Combinations) .. rubric:: Version 2.1.0 @@ -57,6 +51,8 @@ Description The K shortest path routing algorithm based on Yen's algorithm. "K" is the number of shortest paths desired. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -97,7 +93,7 @@ One to One :end-before: --q2 .. index:: - single: KSP ; One to Many + single: KSP ; One to Many - Proposed on 3.6 One to Many ............................................................................... @@ -118,7 +114,7 @@ One to Many :end-before: --q3 .. index:: - single: KSP ; Many to One + single: KSP ; Many to One - Proposed in 3.6 Many to One ............................................................................... @@ -139,7 +135,7 @@ Many to One :end-before: --q4 .. index:: - single: KSP ; Many to Many + single: KSP ; Many to Many - Proposed in 3.6 Many to Many ............................................................................... @@ -160,7 +156,7 @@ Many to Many :end-before: --q5 .. index:: - single: KSP ; Combinations + single: KSP ; Combinations - Proposed in 3.6 Combinations ............................................................................... diff --git a/doc/lineGraph/pgr_lineGraph.rst b/doc/lineGraph/pgr_lineGraph.rst index 32267610b4..15da9818db 100644 --- a/doc/lineGraph/pgr_lineGraph.rst +++ b/doc/lineGraph/pgr_lineGraph.rst @@ -7,32 +7,27 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Transformation Family ; pgr_lineGraph single: lineGraph - Proposed on v3.7 -pgr_lineGraph - Proposed +| + +``pgr_lineGraph`` - Proposed =============================================================================== ``pgr_lineGraph`` — Transforms the given graph into its corresponding edge-based graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html - - Boost Graph Inside - .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.7.0 - * Promoted to **proposed** signature. + * Function promoted to proposed. * Works for directed and undirected graphs. * Version 2.5.0 @@ -63,6 +58,8 @@ Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that: - The ``reverse_cost`` is always :math:`-1`. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/lineGraph/pgr_lineGraphFull.rst b/doc/lineGraph/pgr_lineGraphFull.rst index 8d55084164..b739fa8221 100644 --- a/doc/lineGraph/pgr_lineGraphFull.rst +++ b/doc/lineGraph/pgr_lineGraphFull.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Transformation Family ; pgr_lineGraphFull single: lineGraphFull - Experimental on v2.6 +| + ``pgr_lineGraphFull`` - Experimental =============================================================================== @@ -20,8 +20,8 @@ the vertices from the original graph are converted to line graphs. .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability @@ -57,6 +57,8 @@ The main characteristics are: - Results are undefined when a duplicated edge id is used in the input graph. - Running time: TBD +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -141,7 +143,7 @@ Additional Examples .. contents:: :local: -The examples of this section are based on the :doc:`sampledata` network. +The examples of this section are based on the :doc:`sampledata` The examples include the subgraph including edges 4, 7, 8, and 10 with ``reverse_cost``. diff --git a/doc/lineGraph/transformation-family.rst b/doc/lineGraph/transformation-family.rst index eb271737b4..18e123702e 100644 --- a/doc/lineGraph/transformation-family.rst +++ b/doc/lineGraph/transformation-family.rst @@ -10,29 +10,31 @@ .. index:: Transformation Family +| + Transformation - Family of functions =============================================================================== .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning -.. index proposed from here +.. proposed-start * :doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph. -.. index proposed to here +.. proposed-end .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index experimental from here +.. experimental-start * :doc:`pgr_lineGraphFull` - Transformation algorithm for generating a Line Graph out of each vertex in the input graph. -.. index experimental to here +.. experimental-end .. toctree:: diff --git a/doc/max_flow/flow-family.rst b/doc/max_flow/flow-family.rst index 76b5b7ecfb..8c09e321b6 100644 --- a/doc/max_flow/flow-family.rst +++ b/doc/max_flow/flow-family.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Flow Family +| + Flow - Family of functions =================================== -.. index from here +.. official-start * :doc:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel algorithm. @@ -31,20 +31,20 @@ Flow - Family of functions * :doc:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching in a graph. -.. index to here +.. official-end .. rubric:: Experimental .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index experimental from here +.. experimental-start * :doc:`pgr_maxFlowMinCost` - Details of flow and cost on edges. * :doc:`pgr_maxFlowMinCost_Cost` - Only the Min Cost calculation. -.. index experimental to here +.. experimental-end .. toctree:: :hidden: diff --git a/doc/max_flow/pgr_boykovKolmogorov.rst b/doc/max_flow/pgr_boykovKolmogorov.rst index f9cd70cc1d..1e82bad7a3 100644 --- a/doc/max_flow/pgr_boykovKolmogorov.rst +++ b/doc/max_flow/pgr_boykovKolmogorov.rst @@ -7,30 +7,25 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Flow Family ; pgr_boykovKolmogorov single: boykovKolmogorov +| + ``pgr_boykovKolmogorov`` =============================================================================== ``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Boykov Kolmogorov algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html - - Boost Graph Inside - .. Rubric:: Availability * Version 3.2.0 - * New **proposed** signature + * New proposed signature - * ``pgr_boykovKolmogorov`` (`Combinations`_) + * pgr_boykovKolmogorov(Combinations) * Version 3.0.0 @@ -55,6 +50,8 @@ Description * Running time: Polynomial +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -229,7 +226,8 @@ See Also * :doc:`pgr_edmondsKarp` * :doc:`pgr_pushRelabel` -* https://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html +* `Boost: Boykov Kolmogorov max flow + `__ .. rubric:: Indices and tables diff --git a/doc/max_flow/pgr_edgeDisjointPaths.rst b/doc/max_flow/pgr_edgeDisjointPaths.rst index 01d42ccc13..6d0f6eb413 100644 --- a/doc/max_flow/pgr_edgeDisjointPaths.rst +++ b/doc/max_flow/pgr_edgeDisjointPaths.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Flow Family ; edgeDisjointPaths + single: Flow Family ; pgr_edgeDisjointPaths single: edgeDisjointPaths +| + ``pgr_edgeDisjointPaths`` =============================================================================== @@ -20,16 +20,11 @@ vertices. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html - - Boost Graph Inside - .. Rubric:: Availability * Version 3.2.0 - * New **proposed** function: + * New proposed signature: * pgr_edgeDisjointPaths(Combinations) @@ -58,6 +53,8 @@ The main characterics are: - The graph can be directed or undirected. - Uses :doc:`pgr_boykovKolmogorov` to calculate the paths. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -237,6 +234,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`flow-family` +* `Boost: Boykov Kolmogorov max flow + `__ .. rubric:: Indices and tables diff --git a/doc/max_flow/pgr_edmondsKarp.rst b/doc/max_flow/pgr_edmondsKarp.rst index 9b8e4e1b54..f0d7c5441b 100644 --- a/doc/max_flow/pgr_edmondsKarp.rst +++ b/doc/max_flow/pgr_edmondsKarp.rst @@ -7,30 +7,25 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Flow Family ; edmondsKarp + single: Flow Family ; pgr_edmondsKarp single: edmondsKarp +| + ``pgr_edmondsKarp`` =============================================================================== ``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Edmonds Karp Algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html - - Boost Graph Inside - .. Rubric:: Availability * Version 3.2.0 - * New **proposed** signature + * New proposed signature - * ``pgr_edmondsKarp`` (`Combinations`_) + * pgr_edmondsKarp(Combinations) * Version 3.0.0 @@ -55,6 +50,8 @@ Description * Running time: :math:`O( V * E ^ 2)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -229,7 +226,8 @@ See Also * :doc:`pgr_boykovKolmogorov` * :doc:`pgr_pushRelabel` -* https://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html +* `Boost: edmonds_karp_max_flow + `__ * https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm .. rubric:: Indices and tables diff --git a/doc/max_flow/pgr_maxCardinalityMatch.rst b/doc/max_flow/pgr_maxCardinalityMatch.rst index 3aaf2a47f5..dcf1e0f2cb 100644 --- a/doc/max_flow/pgr_maxCardinalityMatch.rst +++ b/doc/max_flow/pgr_maxCardinalityMatch.rst @@ -7,23 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Flow Family ; pgr_maxCardinalityMatch single: maxCardinalityMatch -pgr_maxCardinalityMatch +| + +``pgr_maxCardinalityMatch`` =============================================================================== ``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/maximum_matching.html - - Boost Graph Inside - .. Rubric:: Availability * Version 3.4.0 @@ -33,13 +28,13 @@ graph. * Works for undirected graphs. * New signature - * ``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column. + * pgr_maxCardinalityMatch(text)`` returns only ``edge`` column. * Deprecated signature - * ``pgr_maxCardinalityMatch(text,boolean)`` + * pgr_maxCardinalityMatch(text,boolean)`` - * ``directed => false`` when used. + * directed => false`` when used. * Version 3.0.0 @@ -75,6 +70,8 @@ The main characteristics are: .. _Ackermann function: https://en.wikipedia.org/wiki/Ackermann_function +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -162,7 +159,8 @@ See Also * :doc:`flow-family` * :doc:`migration` -* https://www.boost.org/libs/graph/doc/maximum_matching.html +* `Boost: maximum_matching + `__ * https://en.wikipedia.org/wiki/Matching_%28graph_theory%29 * https://en.wikipedia.org/wiki/Ackermann_function diff --git a/doc/max_flow/pgr_maxFlow.rst b/doc/max_flow/pgr_maxFlow.rst index 66a0d95849..5e01cbbf80 100644 --- a/doc/max_flow/pgr_maxFlow.rst +++ b/doc/max_flow/pgr_maxFlow.rst @@ -7,38 +7,33 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Flow Family ; pgr_maxFlow single: maxFlow +| + ``pgr_maxFlow`` =============================================================================== ``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the source(s) to the targets(s) using the Push Relabel algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html - - Boost Graph Inside - .. Rubric:: Availability * Version 3.2.0 - * New **proposed** signature + * New proposed signature - * ``pgr_maxFlow`` (`Combinations`_) + * pgr_maxFlow(Combinations) * Version 3.0.0 - * **Official** function + * Function promoted to **official**. * Version 2.4.0 - * New **Proposed** function + * New **Proposed** function. Description @@ -57,6 +52,8 @@ Description * Running time: :math:`O( V ^ 3)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -226,7 +223,8 @@ See Also * :doc:`pgr_pushRelabel` -* https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html +* `Boost: push relabel max flow + `__ * https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm .. rubric:: Indices and tables diff --git a/doc/max_flow/pgr_maxFlowMinCost.rst b/doc/max_flow/pgr_maxFlowMinCost.rst index 463b9082d6..4c02e1871c 100644 --- a/doc/max_flow/pgr_maxFlowMinCost.rst +++ b/doc/max_flow/pgr_maxFlowMinCost.rst @@ -7,11 +7,11 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Flow Family ; pgr_maxFlowMinCost - single: maxFlowMinCost + single: Flow Family ; pgr_maxFlowMinCost - Experimental + single: maxFlowMinCost - Experimental + +| ``pgr_maxFlowMinCost`` - Experimental =============================================================================== @@ -19,31 +19,23 @@ ``pgr_maxFlowMinCost`` — Calculates the edges that minimizes the total cost of the maximum flow on a graph -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html - - Boost Graph Inside - -.. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr - .. rubric:: Availability * Version 3.2.0 - * New **experimental** function: + * New experimental signature: - * ``pgr_maxFlowMinCost`` (`Combinations`_) + * pgr_maxFlowMinCost(Combinations) * Version 3.0.0 -* New **experimental** function - + * New experimental function. Description ------------------------------------------------------------------------------- +|boost| graph inside. + .. include:: flow-family.rst :start-after: characteristics_start :end-before: characteristics_end @@ -60,6 +52,12 @@ Description * :math:`U` is upper bound on number of iterations. In many real world cases number of iterations is much smaller than :math:`U`. +.. include:: experimental.rst + :start-after: warning-begin + :end-before: end-warning + +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -78,7 +76,7 @@ Signatures | OR EMPTY SET .. index:: - single: maxFlowMinCost ; One to One - Experimental on v3.0 + single: maxFlowMinCost - Experimental ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -98,7 +96,7 @@ One to One :end-before: -- q2 .. index:: - single: maxFlowMinCost ; One to Many - Experimental on v3.0 + single: maxFlowMinCost - Experimental ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -118,7 +116,7 @@ One to Many :end-before: -- q3 .. index:: - single: maxFlowMinCost ; Many to One - Experimental on v3.0 + single: maxFlowMinCost - Experimental ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -138,7 +136,7 @@ Many to One :end-before: -- q4 .. index:: - single: maxFlowMinCost ; Many to Many - Experimental on v3.0 + single: maxFlowMinCost - Experimental ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -158,7 +156,7 @@ Many to Many :end-before: -- q5 .. index:: - single: maxFlowMinCost ; Combinations -- Experimental on v3.2 + single: maxFlowMinCost - Experimental ; Combinations -- Experimental on v3.2 Combinations ............................................................................... @@ -230,7 +228,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`flow-family` -* https://www.boost.org/libs/graph/doc/successive_shortest_path_nonnegative_weights.html +* `Boost: push relabel max flow + `__ .. rubric:: Indices and tables diff --git a/doc/max_flow/pgr_maxFlowMinCost_Cost.rst b/doc/max_flow/pgr_maxFlowMinCost_Cost.rst index 69c4dab525..5de1974f93 100644 --- a/doc/max_flow/pgr_maxFlowMinCost_Cost.rst +++ b/doc/max_flow/pgr_maxFlowMinCost_Cost.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Flow Family ; pgr_maxFlowMinCost_Cost - single: Cost Category ; pgr_maxFlowMinCost_Cost - single: maxFlowMinCost_Cost + single: Flow Family ; pgr_maxFlowMinCost_Cost - Experimental + single: Cost Category ; pgr_maxFlowMinCost_Cost - Experimental + single: maxFlowMinCost_Cost - Experimental + +| ``pgr_maxFlowMinCost_Cost`` - Experimental =============================================================================== @@ -20,26 +20,17 @@ ``pgr_maxFlowMinCost_Cost`` — Calculates the minimum total cost of the maximum flow on a graph -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html - - Boost Graph Inside - -.. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr - .. rubric:: Availability * Version 3.2.0 - * New **experimental** function: + * New experimental signature: - * ``pgr_maxFlowMinCost_Cost`` (`Combinations`_) + * pgr_maxFlowMinCost_Cost(Combinations) * Version 3.0.0 - * New **experimental** function + * New experimental function. Description @@ -66,6 +57,12 @@ Description * :math:`U` is upper bound on number of iterations. In many real world cases number of iterations is much smaller than :math:`U`. +.. include:: experimental.rst + :start-after: warning-begin + :end-before: end-warning + +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -83,7 +80,7 @@ Signatures | RETURNS FLOAT .. index:: - single: maxFlowMinCost_Cost ; One to One - Experimental on v3.0 + single: maxFlowMinCost_Cost - Experimental ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -102,7 +99,7 @@ One to One :end-before: -- q2 .. index:: - single: maxFlowMinCost_Cost ; One to Many - Experimental on v3.0 + single: maxFlowMinCost_Cost - Experimental ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -121,7 +118,7 @@ One to Many :end-before: -- q4 .. index:: - single: maxFlowMinCost_Cost ; Many to One - Experimental on v3.0 + single: maxFlowMinCost_Cost - Experimental ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -140,7 +137,7 @@ Many to One :end-before: -- q3 .. index:: - single: maxFlowMinCost_Cost ; Many to Many - Experimental on v3.0 + single: maxFlowMinCost_Cost - Experimental ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -160,7 +157,7 @@ Many to Many :end-before: -- q5 .. index:: - single: maxFlowMinCost_Cost ; Combinations - Experimental on v3.2 + single: maxFlowMinCost_Cost - Experimental ; Combinations - Experimental on v3.2 Combinations ............................................................................... @@ -233,7 +230,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`flow-family` -* https://www.boost.org/libs/graph/doc/successive_shortest_path_nonnegative_weights.html +* `Boost: push relabel max flow + `__ .. rubric:: Indices and tables diff --git a/doc/max_flow/pgr_pushRelabel.rst b/doc/max_flow/pgr_pushRelabel.rst index 896d3424fe..780077a6f0 100644 --- a/doc/max_flow/pgr_pushRelabel.rst +++ b/doc/max_flow/pgr_pushRelabel.rst @@ -7,30 +7,25 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Flow Family ; pgr_pushRelabel single: pushRelabel +| + ``pgr_pushRelabel`` =============================================================================== ``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Push Relabel Algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html - - Boost Graph Inside - .. Rubric:: Availability * Version 3.2.0 - * New **proposed** signature + * New proposed signature - * ``pgr_pushRelabel`` (`Combinations`_) + * pgr_pushRelabel(Combinations) * Version 3.0.0 @@ -43,7 +38,7 @@ flow from the sources to the targets using Push Relabel Algorithm. * Version 2.3.0 - * New **Experimental** function + * New experimental function. Description @@ -55,6 +50,8 @@ Description * Running time: :math:`O( V ^ 3)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -229,7 +226,8 @@ See Also * :doc:`pgr_boykovKolmogorov` * :doc:`pgr_edmondsKarp` -* https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html +* `Boost: push relabel max flow + `__ * https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm .. rubric:: Indices and tables diff --git a/doc/metrics/metrics-family.rst b/doc/metrics/metrics-family.rst index 7f543a63a6..7485598441 100644 --- a/doc/metrics/metrics-family.rst +++ b/doc/metrics/metrics-family.rst @@ -7,25 +7,25 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Metrics Family +| + Metrics - Family of functions =============================================================================== .. rubric:: Experimental .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index experimental from here +.. experimental-start * :doc:`pgr_betweennessCentrality` - Calculates relative betweenness centrality using Brandes Algorithm -.. index experimental to here +.. experimental-end .. toctree:: diff --git a/doc/metrics/pgr_betweennessCentrality.rst b/doc/metrics/pgr_betweennessCentrality.rst index 92af7a5714..91f16170a5 100644 --- a/doc/metrics/pgr_betweennessCentrality.rst +++ b/doc/metrics/pgr_betweennessCentrality.rst @@ -7,30 +7,25 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Metrics Family ; pgr_betweennessCentrality + single: Metrics Family ; pgr_betweennessCentrality - Experimental single: betweennessCentrality - Experimental on v3.7 -``pgr_betweennessCentrality`` +| + +``pgr_betweennessCentrality`` - Experimental =============================================================================== ``pgr_betweennessCentrality`` - Calculates the relative betweeness centrality using Brandes Algorithm -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/doc/libs/1_84_0/libs/graph/doc/betweenness_centrality.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.7.0 - * New **experimental** function: + * New experimental function. - * ``pgr_betweennessCentrality`` + * pgr_betweennessCentrality`` Description ------------------------------------------------------------------------------- @@ -53,6 +48,8 @@ This implementation work for both directed and undirected graphs. - Running space: :math:`\Theta(VE)` - Throws when there are no edges in the graph +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -141,9 +138,9 @@ Result columns See Also ------------------------------------------------------------------------------- -* Boost's `betweenness_centrality +* :doc:`sampledata` +* `Boost: betweenness centrality `_ -* Queries use the :doc:`sampledata` network. .. rubric:: Indices and tables diff --git a/doc/mincut/pgr_stoerWagner.rst b/doc/mincut/pgr_stoerWagner.rst index c9a73e53f3..8f35354a65 100644 --- a/doc/mincut/pgr_stoerWagner.rst +++ b/doc/mincut/pgr_stoerWagner.rst @@ -11,19 +11,16 @@ single: Miscellaneous Algorithms ; pgr_stoerWagner single: stoerWagner - Experimental on v3.0 -pgr_stoerWagner - Experimental +| + +``pgr_stoerWagner`` - Experimental =============================================================================== ``pgr_stoerWagner`` — The min-cut of graph using stoerWagner algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/stoer_wagner_min_cut.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability @@ -68,6 +65,8 @@ weight on the cut determines whether it is a minimum cut. * Running time: :math:`O(V*E + V^2*log V)`. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -135,6 +134,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`sampledata` +* `Boost: Stoer Wagner min cut + `__ * https://en.wikipedia.org/wiki/Stoer%E2%80%93Wagner_algorithm .. rubric:: Indices and tables diff --git a/doc/ordering/ordering-family.rst b/doc/ordering/ordering-family.rst index ed9a69fd0e..272780d140 100644 --- a/doc/ordering/ordering-family.rst +++ b/doc/ordering/ordering-family.rst @@ -7,27 +7,27 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Ordering Family +| + Ordering - Family of functions =============================================================================== .. rubric:: Experimental .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index from here +.. official-start * :doc:`pgr_cuthillMckeeOrdering` - Return reverse Cuthill-McKee ordering of an undirected graph. * :doc:`pgr_topologicalSort` - Linear ordering of the vertices for directed acyclic graph. -.. index to here +.. official-end .. toctree:: :hidden: diff --git a/doc/ordering/pgr_cuthillMckeeOrdering.rst b/doc/ordering/pgr_cuthillMckeeOrdering.rst index cbfdeff030..a09ed6bbcf 100644 --- a/doc/ordering/pgr_cuthillMckeeOrdering.rst +++ b/doc/ordering/pgr_cuthillMckeeOrdering.rst @@ -7,32 +7,27 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Ordering Family ; pgr_cuthillMckeeOrdering single: pgr_cuthillMckeeOrdering +| + ``pgr_cuthillMckeeOrdering`` - Experimental =============================================================================== ``pgr_cuthillMckeeOrdering`` — Returns the reverse Cuthill-Mckee ordering of an undirected graphs -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/cuthill_mckee_ordering.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-exp + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.4.0 - * New **experimental** function + * New experimental function. Description @@ -55,6 +50,8 @@ each step, the adjacent vertices are placed in the queue in order of increasing - where :math:`|V|` is the number of vertices, - :math:`m` is the maximum degree of the vertices in the graph. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------ @@ -109,7 +106,7 @@ Column Type Description See Also ------------------------------------------------------------------------------- -* The queries use the :doc:`sampledata` network. +* :doc:`sampledata` * `Boost: Cuthill-McKee Ordering `__ * `Wikipedia: Cuthill-McKee Ordering diff --git a/doc/ordering/pgr_topologicalSort.rst b/doc/ordering/pgr_topologicalSort.rst index 3ee4029ee1..c65c30f534 100644 --- a/doc/ordering/pgr_topologicalSort.rst +++ b/doc/ordering/pgr_topologicalSort.rst @@ -7,32 +7,27 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Ordering Family ; pgr_topologicalSort single: topologicalSort - Experimental on v3.0 +| + ``pgr_topologicalSort`` - Experimental =============================================================================== ``pgr_topologicalSort`` — Linear ordering of the vertices for directed acyclic graphs (DAG). -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/topological_sort.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 - * New **experimental** function + * New experimental function. Description ------------------------------------------------------------------------------- @@ -53,6 +48,7 @@ The main characteristics are: * Running time: :math:`O(V + E)` +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -129,6 +125,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`sampledata` +* `Boost: topological sort + `__ * https://en.wikipedia.org/wiki/Topological_sorting .. rubric:: Indices and tables diff --git a/doc/pickDeliver/pgr_pickDeliver.rst b/doc/pickDeliver/pgr_pickDeliver.rst index 7dfc2ac598..6981b0aaf4 100644 --- a/doc/pickDeliver/pgr_pickDeliver.rst +++ b/doc/pickDeliver/pgr_pickDeliver.rst @@ -7,26 +7,26 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Vehicle Routing Functions Category ; pgr_pickDeliver single: pickDeliver - Experimental on v3.0 +| + ``pgr_pickDeliver`` - Experimental =============================================================================== ``pgr_pickDeliver`` - Pickup and delivery Vehicle Routing Problem .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 - * New **experimental** function + * New experimental function. Synopsis diff --git a/doc/pickDeliver/pgr_pickDeliverEuclidean.rst b/doc/pickDeliver/pgr_pickDeliverEuclidean.rst index f303fa0dd6..3b406c6ee1 100644 --- a/doc/pickDeliver/pgr_pickDeliverEuclidean.rst +++ b/doc/pickDeliver/pgr_pickDeliverEuclidean.rst @@ -7,27 +7,27 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Vehicle Routing Functions Category ; pgr_pickDeliverEuclidean single: pickDeliverEuclidean - Experimental on 3.0 +| + ``pgr_pickDeliverEuclidean`` - Experimental =============================================================================== ``pgr_pickDeliverEuclidean`` - Pickup and delivery Vehicle Routing Problem .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 * Replaces ``pgr_gsoc_vrppdtw`` - * New **experimental** function + * New experimental function. Synopsis @@ -200,7 +200,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`VRP-category` -* The queries use the :doc:`sampledata` network. +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/pickDeliver/pgr_vrpOneDepot.rst b/doc/pickDeliver/pgr_vrpOneDepot.rst index 2b835e245f..17e7e127fa 100644 --- a/doc/pickDeliver/pgr_vrpOneDepot.rst +++ b/doc/pickDeliver/pgr_vrpOneDepot.rst @@ -7,18 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Vehicle Routing Functions Category ; pgr_vrpOneDepot single: vrpOneDepot - Experimental on v2.1.0 -pgr_vrpOneDepot - Experimental +| + +``pgr_vrpOneDepot`` - Experimental =============================================================================== .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning **No documentation available** @@ -26,7 +26,7 @@ pgr_vrpOneDepot - Experimental * Version 2.1.0 - * New **experimental** function + * New experimental function. * **TBD** diff --git a/doc/planar/pgr_isPlanar.rst b/doc/planar/pgr_isPlanar.rst index d6a1872ac4..8e1654a6bf 100644 --- a/doc/planar/pgr_isPlanar.rst +++ b/doc/planar/pgr_isPlanar.rst @@ -7,31 +7,26 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Planar Family ; pgr_isPlanar single: isPlanar - Experimental on v3.2 +| + ``pgr_isPlanar`` - Experimental =============================================================================== ``pgr_isPlanar`` — Returns a boolean depending upon the planarity of the graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/boyer_myrvold.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** function + * New experimental function. Description @@ -52,6 +47,8 @@ The main characteristics are: * The algorithm does not considers traversal costs in the calculations. * Running time: :math:`O(|V|)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -123,7 +120,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`sampledata` -* https://www.boost.org/libs/graph/doc/boyer_myrvold.html +* `Boost: Boyer Myrvold + `__ .. rubric:: Indices and tables diff --git a/doc/spanningTree/kruskal-family.rst b/doc/spanningTree/kruskal-family.rst index 65a12a8c0d..eea7f750b6 100644 --- a/doc/spanningTree/kruskal-family.rst +++ b/doc/spanningTree/kruskal-family.rst @@ -7,28 +7,23 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Spanning Tree Category ; Kruskal Family single: Kruskal Family +| + Kruskal - Family of functions =============================================================================== -.. index from here +.. official-start * :doc:`pgr_kruskal` * :doc:`pgr_kruskalBFS` * :doc:`pgr_kruskalDD` * :doc:`pgr_kruskalDFS` -.. index to here - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/kruskal_min_spanning_tree.html - - Boost Graph Inside +.. official-end .. toctree:: :hidden: @@ -70,6 +65,7 @@ See Also * :doc:`spanningTree-family` * `Boost: Kruskal's algorithm `__ +* `Boost: Prim's algorithm `__ * `Wikipedia: Kruskal's algorithm `__ .. rubric:: Indices and tables diff --git a/doc/spanningTree/pgr_kruskal.rst b/doc/spanningTree/pgr_kruskal.rst index ab8e396318..85b92b88b2 100644 --- a/doc/spanningTree/pgr_kruskal.rst +++ b/doc/spanningTree/pgr_kruskal.rst @@ -7,23 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Kruskal Family ; pgr_kruska + single: Kruskal Family ; pgr_kruskal single: Spanning Tree Category ; pgr_kruskal single: kruskal +| + ``pgr_kruskal`` =============================================================================== ``pgr_kruskal`` — Minimum spanning tree of a graph using Kruskal's algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/kruskal_min_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -93,7 +88,7 @@ See Also * :doc:`spanningTree-family` * :doc:`kruskal-family` -* The queries use the :doc:`sampledata` network. +* :doc:`sampledata` * `Boost: Kruskal's algorithm `__ * `Wikipedia: Kruskal's algorithm diff --git a/doc/spanningTree/pgr_kruskalBFS.rst b/doc/spanningTree/pgr_kruskalBFS.rst index 168edabb86..8ec6e773d4 100644 --- a/doc/spanningTree/pgr_kruskalBFS.rst +++ b/doc/spanningTree/pgr_kruskalBFS.rst @@ -7,25 +7,20 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Kruskal Family ; pgr_kruskalBFS single: Spanning Tree Category ; pgr_kruskalBFS single: Breadth First Search Category ; pgr_kruskalBFS single: kruskalBFS +| + ``pgr_kruskalBFS`` =============================================================================== ``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with breadth First Search ordering. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/kruskal_min_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability :Version 3.7.0: diff --git a/doc/spanningTree/pgr_kruskalDD.rst b/doc/spanningTree/pgr_kruskalDD.rst index bd1810c1d3..04f9fff123 100644 --- a/doc/spanningTree/pgr_kruskalDD.rst +++ b/doc/spanningTree/pgr_kruskalDD.rst @@ -7,8 +7,6 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Kruskal Family ; pgr_kruskalDD @@ -16,16 +14,13 @@ single: Driving Distance Category ; pgr_kruskalDD single: kruskalDD +| + ``pgr_kruskalDD`` =============================================================================== ``pgr_kruskalDD`` — Catchament nodes using Kruskal's algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/kruskal_min_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability :Version 3.7.0: @@ -58,6 +53,8 @@ calculated minimum spanning tree. - Returned tree nodes from a root vertex are on Depth First Search order. - Depth First Search running time: :math:`O(E + V)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/spanningTree/pgr_kruskalDFS.rst b/doc/spanningTree/pgr_kruskalDFS.rst index dbc7aff7b0..daef861789 100644 --- a/doc/spanningTree/pgr_kruskalDFS.rst +++ b/doc/spanningTree/pgr_kruskalDFS.rst @@ -7,25 +7,20 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Kruskal Family ; pgr_kruskalDFS single: Spanning Tree Category ; pgr_kruskalDFS single: Depth First Search Category ; pgr_kruskalBFS single: kruskalDFS +| + ``pgr_kruskalDFS`` =============================================================================== ``pgr_kruskalDFS`` — Kruskal's algorithm for Minimum Spanning Tree with Depth First Search ordering. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/kruskal_min_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability :Version 3.7.0: @@ -54,6 +49,8 @@ of the Minimum Spanning Tree created using Kruskal's algorithm. - Returned tree nodes from a root vertex are on Depth First Search order - Depth First Search Running time: :math:`O(E + V)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/spanningTree/pgr_prim.rst b/doc/spanningTree/pgr_prim.rst index 2cf6c9d77b..14f1131c08 100644 --- a/doc/spanningTree/pgr_prim.rst +++ b/doc/spanningTree/pgr_prim.rst @@ -7,23 +7,18 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Prim Family ; pgr_prim single: Spanning Tree Category ; pgr_prim single: prim +| + ``pgr_prim`` =============================================================================== ``pgr_prim`` — Minimum spanning forest of a graph using Prim's algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/prim_minimum_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.0.0 @@ -44,6 +39,7 @@ graph using Prim's algorithm. - EMPTY SET is returned when there are no edges in the graph. +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -94,7 +90,7 @@ See Also * :doc:`spanningTree-family` * :doc:`prim-family` -* The queries use the :doc:`sampledata` network. +* :doc:`sampledata` * `Boost: Prim's algorithm documentation `__ * `Wikipedia: Prim's algorithm diff --git a/doc/spanningTree/pgr_primBFS.rst b/doc/spanningTree/pgr_primBFS.rst index e6e5bd06fb..08672bf408 100644 --- a/doc/spanningTree/pgr_primBFS.rst +++ b/doc/spanningTree/pgr_primBFS.rst @@ -7,25 +7,20 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Prim Family ; pgr_primBFS single: Spanning Tree Category ; pgr_primBFS single: Breadth First Search Category ; pgr_primBFS single: primBFS +| + ``pgr_primBFS`` =============================================================================== ``pgr_primBFS`` — Prim's algorithm for Minimum Spanning Tree with Depth First Search ordering. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/prim_minimum_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability :Version 3.7.0: @@ -53,6 +48,8 @@ of the Minimum Spanning Tree created using Prims's algorithm. - Returned tree nodes from a root vertex are on Breath First Search order - Breath First Search Running time: :math:`O(E + V)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -140,7 +137,7 @@ See Also * :doc:`spanningTree-family` * :doc:`prim-family` * :doc:`sampledata` -* `Boost: Prim's algorithm documentation +* `Boost: Prim's algorithm `__ * `Wikipedia: Prim's algorithm `__ diff --git a/doc/spanningTree/pgr_primDD.rst b/doc/spanningTree/pgr_primDD.rst index 2c0e1c5980..56fd4e9fd4 100644 --- a/doc/spanningTree/pgr_primDD.rst +++ b/doc/spanningTree/pgr_primDD.rst @@ -7,24 +7,19 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Prim Family ; pgr_primDD single: Spanning Tree Category ; pgr_primDD single: Driving Distance Category ; pgr_primDD single: primDD +| + ``pgr_primDD`` =============================================================================== ``pgr_primDD`` — Catchament nodes using Prim's algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/prim_minimum_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability .. rubric:: Version 3.7.0 @@ -57,6 +52,8 @@ calculated minimum spanning tree. - Returned tree nodes from a root vertex are on Depth First Search order. - Depth First Search running time: :math:`O(E + V)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -138,7 +135,7 @@ See Also * :doc:`spanningTree-family` * :doc:`prim-family` * :doc:`sampledata` -* `Boost: Prim's algorithm documentation +* `Boost: Prim's algorithm `__ * `Wikipedia: Prim's algorithm `__ diff --git a/doc/spanningTree/pgr_primDFS.rst b/doc/spanningTree/pgr_primDFS.rst index 9fa27cbdff..9e6151506d 100644 --- a/doc/spanningTree/pgr_primDFS.rst +++ b/doc/spanningTree/pgr_primDFS.rst @@ -7,25 +7,20 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Prim Family ; pgr_primDFS single: Spanning Tree Category ; pgr_primDFS single: Depth First Search Category ; pgr_primDFS single: primDFS +| + ``pgr_primDFS`` =============================================================================== ``pgr_primDFS`` — Prim algorithm for Minimum Spanning Tree with Depth First Search ordering. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/prim_minimum_spanning_tree.html - - Boost Graph Inside - .. rubric:: Availability :Version 3.7.0: @@ -53,6 +48,8 @@ of the Minimum Spanning Tree created using Prims's algorithm. - Returned tree nodes from a root vertex are on Depth First Search order - Depth First Search Running time: :math:`O(E + V)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -140,7 +137,7 @@ See Also * :doc:`spanningTree-family` * :doc:`prim-family` * :doc:`sampledata` -* `Boost: Prim's algorithm documentation +* `Boost: Prim's algorithm `__ * `Wikipedia: Prim's algorithm `__ diff --git a/doc/spanningTree/prim-family.rst b/doc/spanningTree/prim-family.rst index 81bb390898..97d2f80a3f 100644 --- a/doc/spanningTree/prim-family.rst +++ b/doc/spanningTree/prim-family.rst @@ -7,28 +7,23 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Spanning Tree Category ; Prim Family single: Prim Family +| + Prim - Family of functions =============================================================================== -.. index from here +.. official-start * :doc:`pgr_prim` * :doc:`pgr_primBFS` * :doc:`pgr_primDD` * :doc:`pgr_primDFS` -.. index to here - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/prim_minimum_spanning_tree.html - - Boost Graph Inside +.. official-end .. toctree:: :hidden: diff --git a/doc/src/experimental.rst b/doc/src/experimental.rst index 977cf4604c..9794001291 100644 --- a/doc/src/experimental.rst +++ b/doc/src/experimental.rst @@ -9,11 +9,10 @@ | - Experimental Functions =============================================================================== -.. begin-warn-expr +.. warning-begin .. warning:: Possible server crash @@ -37,63 +36,63 @@ Experimental Functions - Might depend on a proposed function of pgRouting - Might depend on a deprecated function of pgRouting -.. end-warn-expr +.. end-warning .. rubric:: Families :doc:`flow-family` .. include:: flow-family.rst - :start-after: index experimental from here - :end-before: index experimental to here + :start-after: experimental-start + :end-before: experimental-end :doc:`chinesePostmanProblem-family` .. include:: chinesePostmanProblem-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`coloring-family` .. include:: coloring-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`transformation-family` .. include:: transformation-family.rst - :start-after: index experimental from here - :end-before: index experimental to here + :start-after: experimental-start + :end-before: experimental-end :doc:`traversal-family` .. include:: traversal-family.rst - :start-after: index experimental from here - :end-before: index experimental to here + :start-after: experimental-start + :end-before: experimental-end :doc:`components-family` .. include:: components-family.rst - :start-after: index experimental from here - :end-before: index experimental to here + :start-after: experimental-start + :end-before: experimental-end :doc:`ordering-family` .. include:: ordering-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`metrics-family` .. include:: metrics-family.rst - :start-after: index experimental from here - :end-before: index experimental to here + :start-after: experimental-start + :end-before: experimental-end :doc:`TRSP-family` .. include:: TRSP-family.rst - :start-after: index experimental from here - :end-before: index experimental to here + :start-after: experimental-start + :end-before: experimental-end .. toctree:: :hidden: @@ -109,8 +108,8 @@ Experimental Functions :doc:`VRP-category` .. include:: VRP-category.rst - :start-after: index experimental from here - :end-before: index experimental to here + :start-after: experimental-start + :end-before: experimental-end .. toctree:: :hidden: diff --git a/doc/src/migration.rst b/doc/src/migration.rst index 072e60275a..d8771c4f87 100644 --- a/doc/src/migration.rst +++ b/doc/src/migration.rst @@ -9,7 +9,6 @@ | - Migration guide =============================================================================== @@ -30,16 +29,16 @@ Migration of functions :local: -Migration of ``pgr_aStar`` +Migration of pgr_aStar`` ------------------------------------------------------------------------------- Starting from `v3.6.0 `__ Signatures to be migrated: -* ``pgr_aStar`` (`One to One`) -* ``pgr_aStar`` (`One to Many`) -* ``pgr_aStar`` (`Many to One`) +* pgr_aStar(One to One) +* pgr_aStar(One to Many) +* pgr_aStar(Many to One) :Before Migration: @@ -48,24 +47,24 @@ Signatures to be migrated: * Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing: - * ``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``. + * 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``. :Migration: * Be aware of the existence of the additional columns. -* In ``pgr_aStar`` (`One to One`) +* In pgr_aStar(One to One) - * ``start_vid`` contains the **start vid** parameter value. - * ``end_vid`` contains the **end vid** parameter value. + * start_vid`` contains the **start vid** parameter value. + * end_vid`` contains the **end vid** parameter value. .. literalinclude:: migration.queries :start-after: --astar1 :end-before: --astar2 -* In ``pgr_aStar`` (`One to Many`) +* In pgr_aStar(One to Many) * ``start_vid`` contains the **start vid** parameter value. @@ -73,7 +72,7 @@ Signatures to be migrated: :start-after: --astar2 :end-before: --astar3 -* In ``pgr_aStar`` (`Many to One`) +* In pgr_aStar(Many to One) * ``end_vid`` contains the **end vid** parameter value. @@ -106,9 +105,9 @@ Starting from `v3.6.0 `__ Signatures to be migrated: -* ``pgr_bdAstar`` (`One to One`) -* ``pgr_bdAstar`` (`One to Many`) -* ``pgr_bdAstar`` (`Many to One`) +* pgr_bdAstar(One to One) +* pgr_bdAstar(One to Many) +* pgr_bdAstar(Many to One) :Before Migration: @@ -117,15 +116,15 @@ Signatures to be migrated: * Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing: - * ``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``. + * 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``. :Migration: * Be aware of the existence of the additional columns. -* In ``pgr_bdAstar`` (`One to One`) +* In pgr_bdAstar(One to One) * ``start_vid`` contains the **start vid** parameter value. * ``end_vid`` contains the **end vid** parameter value. @@ -134,7 +133,7 @@ Signatures to be migrated: :start-after: --bdastar1 :end-before: --bdastar2 -* In ``pgr_bdAstar`` (`One to Many`) +* In pgr_bdAstar(One to Many) * ``start_vid`` contains the **start vid** parameter value. @@ -142,7 +141,7 @@ Signatures to be migrated: :start-after: --bdastar2 :end-before: --bdastar3 -* In ``pgr_bdAstar`` (`Many to One`) +* In pgr_bdAstar(Many to One) * ``end_vid`` contains the **end vid** parameter value. @@ -174,9 +173,9 @@ Starting from `v3.5.0 `__ Signatures to be migrated: -* ``pgr_dijkstra`` (`One to One`) -* ``pgr_dijkstra`` (`One to Many`) -* ``pgr_dijkstra`` (`Many to One`) +* pgr_dijkstra(One to One) +* pgr_dijkstra(One to Many) +* pgr_dijkstra(Many to One) :Before Migration: @@ -185,16 +184,16 @@ Signatures to be migrated: * Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing: - * ``pgr_dijkstra`` (`One to One`) does not have ``start_vid`` and + * 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``. + * pgr_dijkstra(One to Many) does not have ``start_vid``. + * pgr_dijkstra(Many to One) does not have ``end_vid``. :Migration: * Be aware of the existence of the additional columns. -* In ``pgr_dijkstra`` (`One to One`) +* In pgr_dijkstra(One to One) * ``start_vid`` contains the **start vid** parameter value. * ``end_vid`` contains the **end vid** parameter value. @@ -203,7 +202,7 @@ Signatures to be migrated: :start-after: --dijkstra1 :end-before: --dijkstra2 -* In ``pgr_dijkstra`` (`One to Many`) +* In pgr_dijkstra(One to Many) * ``start_vid`` contains the **start vid** parameter value. @@ -211,7 +210,7 @@ Signatures to be migrated: :start-after: --dijkstra2 :end-before: --dijkstra3 -* In ``pgr_dijkstra`` (`Many to One`) +* In pgr_dijkstra(Many to One) * ``end_vid`` contains the **end vid** parameter value. @@ -244,18 +243,18 @@ Starting from `v3.6.0 `__ Signatures to be migrated: -* ``pgr_drivingdistance`` (Single vertex) -* ``pgr_drivingdistance`` (Multiple vertices) +* pgr_drivingdistance(Single vertex) +* pgr_drivingdistance(Multiple vertices) :Before Migration: Output columns were |result-dij-dd| -* ``pgr_drivingdistance`` (Single vertex) +* pgr_drivingdistance(Single vertex) * Does not have ``start_vid`` and ``depth`` result columns. -* ``pgr_drivingdistance`` (Multiple vertices) +* pgr_drivingdistance(Multiple vertices) * Has ``from_v`` instead of ``start_vid`` result column. * does not have ``depth`` result column. @@ -349,7 +348,7 @@ Output columns were |result-bfs| Kruskal single vertex ............................................................................... -Using ``pgr_KruskalDD`` as example. +Using pgr_KruskalDD`` as example. Migration is similar to al the affected functions. Comparing with `this @@ -402,7 +401,7 @@ Starting from `v3.6.0 `__ Signatures to be migrated: -* ``pgr_KSP`` (One to One) +* pgr_KSP(One to One) :Before Migration: @@ -410,7 +409,7 @@ Signatures to be migrated: * the columns ``start_vid`` and ``end_vid`` do not exist. - * ``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``. + * pgr_KSP(One to One) does not have ``start_vid`` and ``end_vid``. :Migration: @@ -459,7 +458,7 @@ Migration is needed, because: * Works for undirected graphs. * New signature - * ``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column. + * pgr_maxCardinalityMatch(text)`` returns only ``edge`` column. * The optional flag ``directed`` is removed. :Before migration: @@ -489,7 +488,7 @@ Migration is needed, because: :start-after: --maxcard2 :end-before: --maxcard3 -Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS`` +Migration of pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS`` ------------------------------------------------------------------------------- Starting from `v3.7.0 `__ @@ -553,7 +552,7 @@ columns Prim multiple vertices ............................................................................... -Using ``pgr_primDD`` as example. +Using pgr_primDD`` as example. Migration is similar to al the affected functions. Comparing with `this @@ -598,7 +597,7 @@ Signatures to be migrated: * Does not have ``start_vid``, ``pred`` and ``depth`` result columns. * ``driving_side`` parameter was named optional now it is compulsory unnamed. -* ``pgr_withPointsDD`` (`Multiple vertices`) +* ``pgr_withPointsDD`` (Multiple vertices) * Output columns were |result-m-1-no-seq| * Does not have ``depth`` and ``pred`` result columns. @@ -728,7 +727,7 @@ And ``driving side`` parameter changed from named optional to unnamed compulsory Signatures to be migrated: -* ``pgr_withPointsKSP`` (`One to One`) +* pgr_withPointsKSP(One to One) :Before Migration: @@ -749,7 +748,7 @@ Signatures to be migrated: * In undirected graph: valid values are [``b``, ``B``] * Using an invalid value throws an ``ERROR``. -``pgr_withPointsKSP`` (`One to One`) +``pgr_withPointsKSP`` (One to One) ............................................................................... Using @@ -1024,7 +1023,7 @@ function been migrated then: * ``id1`` is the node * ``id2`` is the edge -Migration of ``pgr_trsp`` (Edges) +Migration of pgr_trsp(Edges) ------------------------------------------------------------------------------- Signature to be migrated: diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index 058615816a..6b67f28f4d 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -13,7 +13,7 @@ Proposed Functions ================================== -.. stable-begin-warning +.. warning-begin .. warning:: Proposed functions for next mayor release. @@ -27,27 +27,27 @@ Proposed Functions - pgTap tests have being done. But might need more. - Documentation might need refinement. -.. stable-end-warning +.. end-warning .. rubric:: Families :doc:`dijkstra-family` .. include:: dijkstra-family.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`withPoints-family` .. include:: withPoints-family.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`TRSP-family` .. include:: TRSP-family.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end .. toctree:: :hidden: @@ -57,26 +57,26 @@ Proposed Functions :doc:`topology-functions` .. include:: topology-functions.rst - :start-after: topology_proposed_start - :end-before: topology_proposed_end + :start-after: proposed-start + :end-before: proposed-end :doc:`transformation-family` .. include:: transformation-family.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`coloring-family` .. include:: coloring-family.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`traversal-family` .. include:: traversal-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end .. toctree:: :hidden: @@ -89,26 +89,26 @@ Proposed Functions :doc:`cost-category` .. include:: cost-category.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`costMatrix-category` .. include:: costMatrix-category.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`drivingDistance-category` .. include:: drivingDistance-category.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`KSP-category` .. include:: KSP-category.rst - :start-after: index proposed from here - :end-before: index proposed to here + :start-after: proposed-start + :end-before: proposed-end :doc:`via-category` diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index d76886e4a1..5c9e397102 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -228,19 +228,19 @@ milestone for 3.6.0 * Standarizing output columns to |short-generic-result| - * ``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(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 `__ Standarize output pgr_bdAstar * Standarizing output columns to |short-generic-result| - * ``pgr_bdAstar`` (`One to One`) added ``start_vid`` and ``end_vid`` + * 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(One to Many) added ``end_vid`` column. + * pgr_bdAstar(Many to One) added ``start_vid`` column. * `#2547 `__ Standarize output and modifying signature pgr_KSP @@ -362,9 +362,9 @@ milestone for 3.5.0 * Standarizing output columns to |short-generic-result| - * ``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(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 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -413,59 +413,59 @@ milestone for 3.4.0 * `#1891 `__: pgr_ksp doesn't give all correct shortest path -.. rubric:: New proposed functions +.. rubric:: New proposed functions. * With points - * ``pgr_withPointsVia`` (One Via) + * pgr_withPointsVia(One Via) * Turn Restrictions * Via with turn restrictions - * ``pgr_trspVia`` (One Via) - * ``pgr_trspVia_withPoints`` (One Via) + * pgr_trspVia(One Via) + * pgr_trspVia_withPoints(One Via) - * ``pgr_trsp`` + * 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(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) + * 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`` + * pgr_degree * Utilities - * ``pgr_findCloseEdges`` (One point) - * ``pgr_findCloseEdges`` (Many points) + * pgr_findCloseEdges(One point) + * pgr_findCloseEdges(Many points) .. rubric:: New experimental functions * Ordering - * ``pgr_cuthillMckeeOrdering`` + * pgr_cuthillMckeeOrdering * Unclassified - * ``pgr_hawickCircuits`` + * pgr_hawickCircuits .. rubric:: Official functions changes * Flow functions - * ``pgr_maxCardinalityMatch(text)`` + * pgr_maxCardinalityMatch(text)`` * Deprecating ``pgr_maxCardinalityMatch(text,boolean)`` @@ -473,10 +473,10 @@ milestone for 3.4.0 * Turn Restrictions - * ``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_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) pgRouting 3.3 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -519,7 +519,7 @@ milestone for 3.3.3 * Flow functions - * ``pgr_maxCardinalityMatch(text,boolean)`` + * pgr_maxCardinalityMatch(text,boolean) * Ignoring optional boolean parameter, as the algorithm works only for undirected graphs. @@ -715,7 +715,7 @@ on Github. * pgr_sequentialVertexColoring -.. rubric:: New proposed functions +.. rubric:: New proposed functions. * Astar @@ -835,7 +835,7 @@ milestone for 3.1.0 `_ on Github. -.. rubric:: New proposed functions +.. rubric:: New proposed functions. * pgr_dijkstra(combinations) * pgr_dijkstraCost(combinations) diff --git a/doc/src/routingFunctions.rst b/doc/src/routingFunctions.rst index 0ef8428df4..b8579f2572 100644 --- a/doc/src/routingFunctions.rst +++ b/doc/src/routingFunctions.rst @@ -7,8 +7,6 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - ******************************************************************************* Function Families @@ -21,81 +19,81 @@ Function Families :doc:`allpairs-family` .. include:: allpairs-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`aStar-family` .. include:: aStar-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`bdAstar-family` .. include:: bdAstar-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`bdDijkstra-family` .. include:: bdDijkstra-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`components-family` .. include:: components-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`contraction-family` .. include:: contraction-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`dijkstra-family` .. include:: dijkstra-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`flow-family` .. include:: flow-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`kruskal-family` .. include:: kruskal-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`prim-family` .. include:: prim-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`reference` .. include:: reference.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`topology-functions` .. include:: topology-functions.rst - :start-after: topology_index_start - :end-before: topology_index_end + :start-after: official-start + :end-before: official-end :doc:`TSP-family` .. include:: TSP-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP) @@ -106,45 +104,45 @@ Functions by categories :doc:`cost-category` .. include:: cost-category.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`costMatrix-category` .. include:: costMatrix-category.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`drivingDistance-category` .. include:: drivingDistance-category.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`KSP-category` .. include:: KSP-category.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`spanningTree-family` .. include:: spanningTree-family.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`BFS-category` .. include:: BFS-category.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end :doc:`DFS-category` .. include:: DFS-category.rst - :start-after: index from here - :end-before: index to here + :start-after: official-start + :end-before: official-end .. to-here diff --git a/doc/topology/pgr_analyzeGraph.rst b/doc/topology/pgr_analyzeGraph.rst index 7e9c4892db..1bcf55120f 100644 --- a/doc/topology/pgr_analyzeGraph.rst +++ b/doc/topology/pgr_analyzeGraph.rst @@ -7,13 +7,13 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Topology Family ; pgr_analyzeGraph single: analyzeGraph -pgr_analyzeGraph +| + +``pgr_analyzeGraph`` =============================================================================== ``pgr_analyzeGraph`` — Analyzes the network topology. @@ -278,12 +278,10 @@ Additional Examples :start-after: -- q28 :end-before: -- q28.1 -The examples use the :doc:`sampledata` network. - - See Also ------------------------------------------------------------------------------- +* :doc:`sampledata` * :doc:`topology-functions` * :doc:`pgr_analyzeOneWay` * :doc:`pgr_createVerticesTable` diff --git a/doc/topology/pgr_analyzeOneWay.rst b/doc/topology/pgr_analyzeOneWay.rst index b8da0df6b8..adf267a53a 100644 --- a/doc/topology/pgr_analyzeOneWay.rst +++ b/doc/topology/pgr_analyzeOneWay.rst @@ -7,13 +7,13 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Topology Family ; pgr_analyzeOneWay single: analyzeOneWay -pgr_analyzeOneWay +| + +``pgr_analyzeOneWay`` =============================================================================== ``pgr_analyzeOneWay`` — Analyzes oneway Sstreets and identifies flipped segments. @@ -60,6 +60,8 @@ table _vertices_pgr that stores the vertices information. - Use :doc:`pgr_createVerticesTable` to create the vertices table. - Use :doc:`pgr_createTopology` to create the topology and the vertices table. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/topology/pgr_createTopology.rst b/doc/topology/pgr_createTopology.rst index a4bd3ad8fc..329c62b052 100644 --- a/doc/topology/pgr_createTopology.rst +++ b/doc/topology/pgr_createTopology.rst @@ -7,13 +7,13 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Topology Family ; pgr_createTopology single: createTopology -pgr_createTopology +| + +``pgr_createTopology`` =============================================================================== ``pgr_createTopology`` — Builds a network topology based on the geometry @@ -35,6 +35,8 @@ The function returns: created. - ``FAIL`` when the network topology was not built due to an error. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -271,11 +273,10 @@ the rest of the edges. :start-after: --q17 :end-before: --q17.1 -The example uses the :doc:`sampledata` network. - See Also ------------------------------------------------------------------------------- +* :doc:`sampledata` * :doc:`topology-functions` * :doc:`pgr_createVerticesTable` * :doc:`pgr_analyzeGraph` diff --git a/doc/topology/pgr_createVerticesTable.rst b/doc/topology/pgr_createVerticesTable.rst index dc24df9bcf..0e965ec28a 100644 --- a/doc/topology/pgr_createVerticesTable.rst +++ b/doc/topology/pgr_createVerticesTable.rst @@ -7,13 +7,13 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Topology Family ; pgr_createVerticesTable single: createVerticesTable -pgr_createVerticesTable +| + +``pgr_createVerticesTable`` =============================================================================== ``pgr_createVerticesTable`` — Reconstructs the vertices table based on the @@ -34,6 +34,8 @@ The function returns: - ``OK`` after the vertices table has been reconstructed. - ``FAIL`` when the vertices table was not reconstructed due to an error. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -274,11 +276,10 @@ values for the column names do not match the column names of the table. :start-after: --q17 :end-before: --q17.1 -The example uses the :doc:`sampledata` network. - See Also ------------------------------------------------------------------------------- +* :doc:`sampledata` * :doc:`topology-functions` for an overview of a topology for routing algorithms. * :doc:`pgr_createTopology` ` to create a topology based on diff --git a/doc/topology/pgr_degree.rst b/doc/topology/pgr_degree.rst index f9fda191b6..8eea85a7df 100644 --- a/doc/topology/pgr_degree.rst +++ b/doc/topology/pgr_degree.rst @@ -7,11 +7,11 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Topology Family ; pgr_degree - single: degree + single: Topology Family ; pgr_degree - Proposed + single: degree - Proposed on v3.4 + +| ``pgr_degree`` -- Proposed =============================================================================== @@ -20,14 +20,14 @@ .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.4.0 - * New **proposed** function + * New proposed function. Description @@ -36,12 +36,11 @@ Description Calculates the degree of the vertices of an **undirected** graph +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- -.. index:: - single: pgr_degree - Proposed on v3.4 - .. admonition:: \ \ :class: signatures diff --git a/doc/topology/pgr_extractVertices.rst b/doc/topology/pgr_extractVertices.rst index 938d1b7059..2787f5c719 100644 --- a/doc/topology/pgr_extractVertices.rst +++ b/doc/topology/pgr_extractVertices.rst @@ -7,21 +7,21 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Topology Family ; pgr_extractVertices single: extractVertices - Proposed on v3.3 -pgr_extractVertices -- Proposed +| + +``pgr_extractVertices`` -- Proposed =============================================================================== ``pgr_extractVertices`` — Extracts the vertices information .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability @@ -31,7 +31,7 @@ pgr_extractVertices -- Proposed * Version 3.0.0 - * New **experimental** function + * New experimental function. Description @@ -44,6 +44,8 @@ of edges of a graph. edges +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/topology/pgr_nodeNetwork.rst b/doc/topology/pgr_nodeNetwork.rst index b0d27165f1..8ca1517680 100644 --- a/doc/topology/pgr_nodeNetwork.rst +++ b/doc/topology/pgr_nodeNetwork.rst @@ -7,13 +7,13 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Topology Family ; pgr_nodeNetwork single: nodeNetwork -pgr_nodeNetwork +| + +``pgr_nodeNetwork`` =============================================================================== ``pgr_nodeNetwork`` - Nodes an network edge table. diff --git a/doc/topology/topology-functions.rst b/doc/topology/topology-functions.rst index 8648f7f7a3..41c2563e33 100644 --- a/doc/topology/topology-functions.rst +++ b/doc/topology/topology-functions.rst @@ -7,10 +7,10 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Topology Family +| + Topology - Family of Functions =============================================================================== @@ -22,19 +22,7 @@ undirected, if an edge is one way on a directed graph, and depending on the final application needs, suitable topology(s) need to be created. -pgRouting suplies some functions to create a routing topology and to analyze the -topology. - -Additional functions to create a graph: - -* :doc:`contraction-family` - -Additional functions to analyze a graph: - -* :doc:`components-family` - - -.. topology_index_start +.. official-start The following functions modify the database directly therefore the user must have special permissions given by the administrators to use them. @@ -47,17 +35,27 @@ have special permissions given by the administrators to use them. - :doc:`pgr_analyzeOneWay` - to analyze directionality of the edges. - :doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table. -.. topology_index_end +.. official-end + +pgRouting supplies some functions to create a routing topology and to analyze the +topology. + +Additional functions to create a graph: + +* :doc:`contraction-family` +Additional functions to analyze a graph: + +* :doc:`components-family` .. rubric:: Proposed .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning -.. topology_proposed_start +.. proposed-start These proposed functions do not modify the database. @@ -65,7 +63,7 @@ These proposed functions do not modify the database. - :doc:`pgr_extractVertices` - Extracts vertex information based on the edge table information. -.. topology_proposed_end +.. proposed-end .. toctree:: :hidden: diff --git a/doc/transitiveClosure/pgr_transitiveClosure.rst b/doc/transitiveClosure/pgr_transitiveClosure.rst index aae0359f21..340cd472e2 100644 --- a/doc/transitiveClosure/pgr_transitiveClosure.rst +++ b/doc/transitiveClosure/pgr_transitiveClosure.rst @@ -7,31 +7,26 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Miscellaneous Algorithms ; pgr_transitiveClosure single: transitiveClosure - Experimental on v3.0 +| + ``pgr_transitiveClosure`` - Experimental =============================================================================== ``pgr_transitiveClosure`` — Transitive closure graph of a directed graph. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/transitive_closure.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 - * New **experimental** function + * New experimental function. Description @@ -52,6 +47,7 @@ The main characteristics are: * The returned graph is compresed * Running time: :math:`O(|V||E|)` +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -119,6 +115,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`sampledata` +* `Boost: transitive closure `__ * https://en.wikipedia.org/wiki/Transitive_closure .. rubric:: Indices and tables diff --git a/doc/traversal/pgr_binaryBreadthFirstSearch.rst b/doc/traversal/pgr_binaryBreadthFirstSearch.rst index 248b358c8b..ebdedac726 100644 --- a/doc/traversal/pgr_binaryBreadthFirstSearch.rst +++ b/doc/traversal/pgr_binaryBreadthFirstSearch.rst @@ -7,12 +7,12 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Traversal Family ; pgr_binaryBreadthFirstSearch - single: Breadth First Search Category ; pgr_binaryBreadthFirstSearch - single: binaryBreadthFirstSearch + single: Traversal Family ; pgr_binaryBreadthFirstSearch - Experimental + single: Breadth First Search Category ; pgr_binaryBreadthFirstSearch - Experimental + single: binaryBreadthFirstSearch - Experimental + +| ``pgr_binaryBreadthFirstSearch`` - Experimental =============================================================================== @@ -23,31 +23,21 @@ graph. Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any non-negative integer, is termed as a 'binary graph'. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/breadth_first_search.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.2.0 - * New **experimental** signature: + * New experimental signature: - * pgr_binaryBreadthFirstSearch(`Combinations`_) + * pgr_binaryBreadthFirstSearch(Combinations) * Version 3.0.0 - * New **experimental** signatures: - - * pgr_binaryBreadthFirstSearch(`One to One`_) - * pgr_binaryBreadthFirstSearch(`One to Many`_) - * pgr_binaryBreadthFirstSearch(`Many to One`_) - * pgr_binaryBreadthFirstSearch(`Many to Many`_) + * New experimental function. Description ------------------------------------------------------------------------------- @@ -81,6 +71,8 @@ edge belongs to the set {0,X}, where 'X' is any non-negative real integer. * Running time: :math:`O(| start\_vids | * |E|)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -102,7 +94,7 @@ Signatures :math:`1``) .. index:: - single: binaryBreadthFirstSearch ; One to One - Experimental on v3.0 + single: binaryBreadthFirstSearch - Experimental ; One to One - Experimental on v3.0 One to One ............................................................................... @@ -122,7 +114,7 @@ One to One :end-before: -- q2 .. index:: - single: binaryBreadthFirstSearch ; One to Many - Experimental on v3.0 + single: binaryBreadthFirstSearch - Experimental ; One to Many - Experimental on v3.0 One to Many ............................................................................... @@ -143,7 +135,7 @@ One to Many :end-before: -- q3 .. index:: - single: binaryBreadthFirstSearch ; Many to One - Experimental on v3.0 + single: binaryBreadthFirstSearch - Experimental ; Many to One - Experimental on v3.0 Many to One ............................................................................... @@ -164,7 +156,7 @@ Many to One :end-before: -- q4 .. index:: - single: binaryBreadthFirstSearch ; Many to Many - Experimental on v3.0 + single: binaryBreadthFirstSearch - Experimental ; Many to Many - Experimental on v3.0 Many to Many ............................................................................... @@ -185,7 +177,7 @@ Many to Many :end-before: -- q5 .. index:: - single: binaryBreadthFirstSearch ; Combinations - Experimental on v3.2 + single: binaryBreadthFirstSearch - Experimental ; Combinations - Experimental on v3.2 Combinations ............................................................................... @@ -263,6 +255,8 @@ Additional Examples See Also ------------------------------------------------------------------------------- * :doc:`sampledata` +* `Boost: Breadth First Search + `__ * https://cp-algorithms.com/graph/01_bfs.html * https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Specialized_variants diff --git a/doc/traversal/pgr_breadthFirstSearch.rst b/doc/traversal/pgr_breadthFirstSearch.rst index 8ffecd3ab0..8708b0c063 100644 --- a/doc/traversal/pgr_breadthFirstSearch.rst +++ b/doc/traversal/pgr_breadthFirstSearch.rst @@ -7,12 +7,12 @@ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Traversal Family ; pgr_breadthFirstSearch - single: Breadth First Search Category ; pgr_breadthFirstSearch - single: breadthFirstSearch + single: Traversal Family ; pgr_breadthFirstSearch - Experimental + single: Breadth First Search Category ; pgr_breadthFirstSearch - Experimental + single: breadthFirstSearch - Experimental + +| ``pgr_breadthFirstSearch`` - Experimental =============================================================================== @@ -20,23 +20,15 @@ ``pgr_breadthFirstSearch`` — Returns the traversal order(s) using Breadth First Search algorithm. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/breadth_first_search.html - - Boost Graph Inside - .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 - * New **experimental** signature: - - * ``pgr_breadthFirstSearch`` (`Single Vertex`_) - * ``pgr_breadthFirstSearch`` (`Multiple Vertices`_) + * New experimental function. Description ------------------------------------------------------------------------------- @@ -51,6 +43,8 @@ particular depth. target depth level. * Running time: :math:`O(E + V)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -61,12 +55,12 @@ Signatures | pgr_breadthFirstSearch(`Edges SQL`_, **root vid**, [**options**]) | pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**]) - | **options:** ``[max_depth, directed]`` + | **options:** [max_depth, directed]`` | Returns set of |result-bfs| .. index:: - single: breadthFirstSearch ; Single vertex - Experimental on v3.0 + single: breadthFirstSearch - Experimental ; Single vertex - Experimental on v3.0 Single vertex ............................................................................... @@ -75,7 +69,7 @@ Single vertex :class: signatures | pgr_breadthFirstSearch(`Edges SQL`_, **root vid**, [**options**]) - | **options:** ``[max_depth, directed]`` + | **options:** [max_depth, directed]`` | Returns set of |result-bfs| @@ -87,7 +81,7 @@ Single vertex :end-before: -- q2 .. index:: - single: breadthFirstSearch ; Multiple vertices - Experimental on v3.0 + single: breadthFirstSearch - Experimental ; Multiple vertices - Experimental on v3.0 Multiple vertices ............................................................................... @@ -96,7 +90,7 @@ Multiple vertices :class: signatures | pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**]) - | **options:** ``[max_depth, directed]`` + | **options:** [max_depth, directed]`` | Returns set of |result-bfs| @@ -178,7 +172,7 @@ See Also * :doc:`BFS-category` * :doc:`sampledata` -* `Boost: Breadth First Search algorithm documentation +* `Boost: Breadth First Search `__ * `Wikipedia: Breadth First Search algorithm `__ diff --git a/doc/traversal/pgr_depthFirstSearch.rst b/doc/traversal/pgr_depthFirstSearch.rst index d46152879c..c9c8b35128 100644 --- a/doc/traversal/pgr_depthFirstSearch.rst +++ b/doc/traversal/pgr_depthFirstSearch.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Traversal Family ; pgr_depthFirstSearch - single: Depth First Search Category ; pgr_depthFirstSearch - single: depthFirstSearch + single: Traversal Family ; pgr_depthFirstSearch - Proposed + single: Depth First Search Category ; pgr_depthFirstSearch - Proposed + single: depthFirstSearch - Proposed + +| ``pgr_depthFirstSearch`` - Proposed =============================================================================== @@ -20,27 +20,19 @@ ``pgr_depthFirstSearch`` — Returns a depth first search traversal of the graph. The graph can be directed or undirected. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/depth_first_search.html - - Boost Graph Inside - .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.3.0 - * Promoted to **proposed** function + * Function promoted to proposed. * Version 3.2.0 - * New **experimental** signatures: - - * ``pgr_depthFirstSearch`` (`Single Vertex`_) - * ``pgr_depthFirstSearch`` (`Multiple Vertices`_) + * New experimental function. Description ------------------------------------------------------------------------------- @@ -64,6 +56,8 @@ continues until all the vertices reachable from the root vertex are visited. - The returned values are ordered in ascending order of `start_vid`. - Depth First Search Running time: :math:`O(E + V)` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -79,7 +73,7 @@ Signatures | Returns set of |result-bfs| .. index:: - single: depthFirstSearch ; Single vertex - Proposed on v3.3 + single: depthFirstSearch - Proposed ; Single vertex - Proposed on v3.3 Single vertex ............................................................................... @@ -100,7 +94,7 @@ Single vertex :end-before: -- q2 .. index:: - single: depthFirstSearch ; Multiple vertices - Proposed on v3.3 + single: depthFirstSearch - Proposed ; Multiple vertices - Proposed on v3.3 Multiple vertices ............................................................................... @@ -187,9 +181,9 @@ See Also * :doc:`DFS-category` * :doc:`sampledata` -* `Boost: Depth First Search algorithm documentation +* `Boost: Depth First Search `__ -* `Boost: Undirected DFS algorithm documentation +* `Boost: Undirected DFS `__ * `Wikipedia: Depth First Search algorithm `__ diff --git a/doc/traversal/traversal-family.rst b/doc/traversal/traversal-family.rst index 088ef3de80..ea986999ae 100644 --- a/doc/traversal/traversal-family.rst +++ b/doc/traversal/traversal-family.rst @@ -7,38 +7,38 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Traversal Family +| + Traversal - Family of functions =============================================================================== .. rubric:: Proposed .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning -.. index from here +.. official-start * :doc:`pgr_depthFirstSearch` - Depth first search traversal of the graph. -.. index to here +.. official-end .. rubric:: Experimental .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index experimental from here +.. experimental-start * :doc:`pgr_breadthFirstSearch` - Breath first search traversal of the graph. * :doc:`pgr_binaryBreadthFirstSearch` - Breath first search traversal of the graph. -.. index experimental to here +.. experimental-end Aditionaly there are 2 categories under this family diff --git a/doc/trsp/TRSP-family.rst b/doc/trsp/TRSP-family.rst index d3b4252c1d..ceb782c39f 100644 --- a/doc/trsp/TRSP-family.rst +++ b/doc/trsp/TRSP-family.rst @@ -7,10 +7,10 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Turn Restriction Shortest Path Family +| + TRSP - Family of functions =============================================================================== @@ -19,17 +19,17 @@ When points are also given as input: .. rubric:: Proposed .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. index proposed from here +.. proposed-start - :doc:`pgr_trsp` - Vertex - Vertex routing with restrictions. - :doc:`pgr_trspVia` - Via Vertices routing with restrictions. - :doc:`pgr_trsp_withPoints` - Vertex/Point routing with restrictions. - :doc:`pgr_trspVia_withPoints` - Via Vertex/point routing with restrictions. -.. index proposed to here +.. proposed-end .. Warning:: Read the :doc:`migration` about how to migrate from the deprecated TRSP functionality to the new signatures or replacement functions. @@ -37,14 +37,14 @@ When points are also given as input: .. rubric:: Experimental .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning -.. index experimental from here +.. experimental-start - :doc:`pgr_turnRestrictedPath` - Routing with restrictions. -.. index experimental to here +.. experimental-end .. toctree:: :hidden: diff --git a/doc/trsp/pgr_trsp.rst b/doc/trsp/pgr_trsp.rst index fd00a368e3..0221d8a075 100644 --- a/doc/trsp/pgr_trsp.rst +++ b/doc/trsp/pgr_trsp.rst @@ -7,26 +7,21 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Turn Restriction Shortest Path Family ; pgr_trsp single: Shortest Path Category ; pgr_trsp single: Restrictions Category ; pgr_trsp single: trsp -pgr_trsp - Proposed +| + +``pgr_trsp`` - Proposed =============================================================================== ``pgr_trsp`` - routing vertices with restrictions. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning .. rubric:: Availability @@ -35,25 +30,25 @@ pgr_trsp - Proposed * New proposed signatures - * ``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(One to One) + * pgr_trsp(One to Many) + * pgr_trsp(Many to One) + * pgr_trsp(Many to Many) + * pgr_trsp(Combinations) * Deprecated signatures - * ``pgr_trsp(text,integer,integer,boolean,boolean,text)`` - * ``pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)`` - * ``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)`` - * ``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)`` + * pgr_trsp(text,integer,integer,boolean,boolean,text)`` + * pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)`` + * pgr_trspViaVertices(text,anyarray,boolean,boolean,text)`` + * pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)`` * Version 2.1.0 * New prototypes - * ``pgr_trspViaVertices`` - * ``pgr_trspViaEdges`` + * pgr_trspViaVertices`` + * pgr_trspViaEdges`` * Version 2.0.0 @@ -77,6 +72,8 @@ The general algorithm is as follows: * Execute the **TRSP** algorithm with restrictions. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/trsp/pgr_trspVia.rst b/doc/trsp/pgr_trspVia.rst index a3704c95e1..99f0f5a060 100644 --- a/doc/trsp/pgr_trspVia.rst +++ b/doc/trsp/pgr_trspVia.rst @@ -7,35 +7,30 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Turn Restriction Shortest Path Family ; pgr_trspVia single: Via Category ; pgr_trspVia single: Restrictions Category ; pgr_trspVia single: trspVia +| + ``pgr_trspVia`` - Proposed =============================================================================== ``pgr_trspVia`` Route that goes through a list of vertices with restrictions. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.4.0 - * New proposed function: + * New proposed function. - * ``pgr_trspVia`` (`One Via`_) + * pgr_trspVia(One Via) Description ------------------------------------------------------------------------------- @@ -54,6 +49,7 @@ The general algorithm is as follows: * Execute the **TRSP** algorithm with restrictions for the paths. * **NOTE** when this is done, ``U_turn_on_edge`` flag is ignored. +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -236,7 +232,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`via-category` -* :doc:`sampledata` network. +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/trsp/pgr_trspVia_withPoints.rst b/doc/trsp/pgr_trspVia_withPoints.rst index 98600fc817..40ae2342c8 100644 --- a/doc/trsp/pgr_trspVia_withPoints.rst +++ b/doc/trsp/pgr_trspVia_withPoints.rst @@ -7,8 +7,6 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Turn Restriction Shortest Path Family ; pgr_trspVia_withPoints single: Via Category ; pgr_trspVia_withPoints @@ -16,28 +14,23 @@ single: With Points Category ; pgr_trspVia_withPoints single: trspVia_withPoints +| + ``pgr_trspVia_withPoints`` - Proposed =============================================================================== ``pgr_trspVia_withPoints`` - Route that goes through a list of vertices and/or points with restrictions. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.4.0 - * New proposed function: - - ``pgr_trspVia_withPoints`` (`One Via`_) + * New proposed function. Description ------------------------------------------------------------------------------- @@ -66,6 +59,8 @@ The general algorithm is as follows: .. Note:: Do not use negative values on identifiers of the inner queries. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -287,7 +282,7 @@ See Also * :doc:`TRSP-family` * :doc:`via-category` * :doc:`withPoints-category` -* :doc:`sampledata` network. +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/trsp/pgr_trsp_withPoints.rst b/doc/trsp/pgr_trsp_withPoints.rst index f9293ec878..71b437779c 100644 --- a/doc/trsp/pgr_trsp_withPoints.rst +++ b/doc/trsp/pgr_trsp_withPoints.rst @@ -7,8 +7,6 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Turn Restriction Shortest Path Family ; pgr_trsp_withPoints single: Shortest Path Category ; pgr_trsp_withPoints @@ -16,31 +14,22 @@ single: With Points Category ; pgr_trsp_withPoints single: trsp_withPoints -pgr_trsp_withPoints - Proposed +| + +``pgr_trsp_withPoints`` - Proposed =============================================================================== ``pgr_trsp_withPoints`` Routing Vertex/Point with restrictions. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning .. rubric:: Availability * Version 3.4.0 - * New proposed signatures: - - * ``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`_) + * New proposed function. Description ------------------------------------------------------------------------------- @@ -75,6 +64,8 @@ Characteristics: * Running time: :math:`O(|start\_vids|\times(V \log V + E))` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/trsp/pgr_turnRestrictedPath.rst b/doc/trsp/pgr_turnRestrictedPath.rst index da88abbf2c..a07fe2d365 100644 --- a/doc/trsp/pgr_turnRestrictedPath.rst +++ b/doc/trsp/pgr_turnRestrictedPath.rst @@ -7,30 +7,29 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Turn Restriction Shortest Path Family ; pgr_turnRestrictedPath single: Shortest Path Category ; pgr_turnRestrictedPath single: Restrictions Category ; pgr_turnRestrictedPath single: turnRestrictedPath +| -pgr_turnRestrictedPath - Experimental +``pgr_turnRestrictedPath`` - Experimental =============================================================================== ``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex - Vertex routing with restrictions .. include:: experimental.rst - :start-after: begin-warn-expr - :end-before: end-warn-expr + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.0.0 - * New experimental function + * New experimental function. Description ------------------------------------------------------------------------------- @@ -38,6 +37,8 @@ Description Using Yen's algorithm to obtain K shortest paths and analyze the paths to select the paths that do not use the restrictions +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/tsp/TSP-family.rst b/doc/tsp/TSP-family.rst index 2193922771..3b21d57ef3 100644 --- a/doc/tsp/TSP-family.rst +++ b/doc/tsp/TSP-family.rst @@ -7,19 +7,19 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: Traveling Sales Person Family +| + Traveling Sales Person - Family of functions =============================================================================== -.. index from here +.. official-start * :doc:`pgr_TSP` - When input is given as matrix cell information. * :doc:`pgr_TSPeuclidean` - When input are coordinates. -.. index to here +.. official-end .. toctree:: :hidden: @@ -139,7 +139,7 @@ See Also .. rubric:: References -* `Boost's metric appro's metric approximation +* `Boost: metric TSP approx `__ * `University of Waterloo TSP `__ * `Wikipedia: Traveling Salesman Problem diff --git a/doc/tsp/pgr_TSP.rst b/doc/tsp/pgr_TSP.rst index 77dd8f0956..f3e97638f6 100644 --- a/doc/tsp/pgr_TSP.rst +++ b/doc/tsp/pgr_TSP.rst @@ -7,22 +7,16 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Traveling Sales Person Family ; pgr_TSP single: pgr_TSP +| + ``pgr_TSP`` =============================================================================== -* ``pgr_TSP`` - Aproximation using *metric* algorithm. - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/metric_tsp_approx.html - - Boost Graph Inside - +* pgr_TSP`` - Aproximation using *metric* algorithm. .. rubric:: Availability: @@ -108,6 +102,8 @@ Description - the missing values will be calculated with dijkstra algorithm. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -236,7 +232,7 @@ See Also * :doc:`TSP-family` * :doc:`sampledata` -* `Boost's metric appro's metric approximation +* `Boost: metric TSP approx `__ * `Wikipedia: Traveling Salesman Problem `__ diff --git a/doc/tsp/pgr_TSPeuclidean.rst b/doc/tsp/pgr_TSPeuclidean.rst index 484332f4cf..f65c651c31 100644 --- a/doc/tsp/pgr_TSPeuclidean.rst +++ b/doc/tsp/pgr_TSPeuclidean.rst @@ -7,22 +7,16 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Traveling Sales Person Family ; pgr_TSPeuclidean single: pgr_TSPeuclidean +| + ``pgr_TSPeuclidean`` ============================================================================= -* ``pgr_TSPeuclidean`` - Aproximation using *metric* algorithm. - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/metric_tsp_approx.html - - Boost Graph Inside - +* pgr_TSPeuclidean`` - Aproximation using *metric* algorithm. .. rubric:: Availability: @@ -73,6 +67,7 @@ Description 2, 3.5, 1.0 2, 3.6, 1.1 +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -197,8 +192,8 @@ See Also ------------------------------------------------------------------------------- * :doc:`TSP-family` -* :doc:`sampledata` network. -* `Boost's metric appro's metric approximation +* :doc:`sampledata` +* `Boost: metric TSP approx `__ * `University of Waterloo TSP `__ * `Wikipedia: Traveling Salesman Problem diff --git a/doc/utilities/pgr_findCloseEdges.rst b/doc/utilities/pgr_findCloseEdges.rst index c0189e14f1..5a3afe9fbf 100644 --- a/doc/utilities/pgr_findCloseEdges.rst +++ b/doc/utilities/pgr_findCloseEdges.rst @@ -7,30 +7,22 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: Utilities ; pgr_findCloseEdges + single: Utilities ; pgr_findCloseEdges - Proposed single: findCloseEdges -``pgr_findCloseEdges`` +| + +``pgr_findCloseEdges`` - Proposed =============================================================================== ``pgr_findCloseEdges`` - Finds the close edges to a point geometry. -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.4.0 - * New **proposed** signatures: - - * ``pgr_findCloseEdges`` (`One point`_) - * ``pgr_findCloseEdges`` (`Many points`_) + * New proposed function. Description ------------------------------------------------------------------------------- @@ -41,7 +33,9 @@ point geometry. * The geometries must be in the same coordinate system (have the same SRID). * The code to do the calculations can be obtained for further specific adjustments needed by the application. -* ``EMTPY SET`` is returned on dryrun executions +* EMTPY SET`` is returned on dryrun executions + +|Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- @@ -53,13 +47,13 @@ Signatures | pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**]) | pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**]) - | **options:** ``[cap, partial, dryrun]`` + | **options:** [cap, partial, dryrun]`` | Returns set of |result-find| | OR EMPTY SET .. index:: - single: findCloseEdges ; One point - Proposed on 3.4 + single: findCloseEdges - Proposed ; One point - Proposed on 3.4 One point ............................................................................... @@ -68,7 +62,7 @@ One point :class: signatures | pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**]) - | **options:** ``[cap, partial, dryrun]`` + | **options:** [cap, partial, dryrun]`` | Returns set of |result-find| | OR EMPTY SET @@ -94,7 +88,7 @@ One point :end-before: -- q2 .. index:: - single: findCloseEdges ; Many points - Proposed on 3.4 + single: findCloseEdges - Proposed ; Many points - Proposed on 3.4 Many points ............................................................................... diff --git a/doc/version/pgr_full_version.rst b/doc/version/pgr_full_version.rst index 29ce83271d..1f51a26800 100644 --- a/doc/version/pgr_full_version.rst +++ b/doc/version/pgr_full_version.rst @@ -7,12 +7,12 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Reference ; pgr_full_version single: full_version +| + ``pgr_full_version`` =============================================================================== @@ -30,6 +30,8 @@ Description Get complete details of pgRouting version information +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/version/pgr_version.rst b/doc/version/pgr_version.rst index 75583b0a8d..33bb65fe6e 100644 --- a/doc/version/pgr_version.rst +++ b/doc/version/pgr_version.rst @@ -7,13 +7,13 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Reference ; pgr_version single: version +| + ``pgr_version`` =============================================================================== diff --git a/doc/version/reference.rst b/doc/version/reference.rst index e58b09e57a..79c34e41c1 100644 --- a/doc/version/reference.rst +++ b/doc/version/reference.rst @@ -7,20 +7,20 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: Reference +| + Reference =============================================================================== -.. index from here +.. official-start * :doc:`pgr_version` * :doc:`pgr_full_version` -.. index to here +.. official-end .. toctree:: :hidden: diff --git a/doc/withPoints/pgr_withPoints.rst b/doc/withPoints/pgr_withPoints.rst index 2908471d04..e9bd1ccf53 100644 --- a/doc/withPoints/pgr_withPoints.rst +++ b/doc/withPoints/pgr_withPoints.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: withPoints Family ; pgr_withPoints single: With Points Category ; pgr_withPoints single: Shortest Path Category ; pgr_withPoints single: withPoints +| + ``pgr_withPoints`` - Proposed =============================================================================== @@ -22,25 +22,20 @@ temporary vertices. .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.2.0 - * New **proposed** function: + * New proposed function. * pgr_withPoints(Combinations) * Version 2.2.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -73,6 +68,8 @@ Using Dijkstra algorithm, find the shortest path * Running time: :math:`O(|start\_vids|\times(V \log V + E))` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/withPoints/pgr_withPointsCost.rst b/doc/withPoints/pgr_withPointsCost.rst index 00203b2354..94efbb45cb 100644 --- a/doc/withPoints/pgr_withPointsCost.rst +++ b/doc/withPoints/pgr_withPointsCost.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: withPoints Family ; pgr_withPointsCost - single: With Points Category ; pgr_withPointsCost - single: Cost Category ; pgr_withPointsCost + single: withPoints Family ; pgr_withPointsCost - Proposed + single: With Points Category ; pgr_withPointsCost - Proposed + single: Cost Category ; pgr_withPointsCost - Proposed single: withPointsCost +| + ``pgr_withPointsCost`` - Proposed =============================================================================== @@ -23,25 +23,20 @@ aggregate cost of the shortest path found, for the combination of points given. .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability * Version 3.2.0 - * New **proposed** function: + * New proposed signature: * pgr_withPointsCost(Combinations) * Version 2.2.0 - * New **proposed** function + * New proposed function. Description @@ -92,6 +87,8 @@ The main characteristics are: - Running time: :math:`O(|start\_vids|\times(V \log V + E))` +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -114,7 +111,7 @@ Signatures withPoints family of functions. .. index:: - single: withPointsCost ; One To One - Proposed on v2.2 + single: withPointsCost - Proposed ; One To One - Proposed on v2.2 One to One ............................................................................... @@ -135,7 +132,7 @@ One to One :end-before: -- q2 .. index:: - single: withPointsCost ; One To Many - Proposed on v2.2 + single: withPointsCost - Proposed ; One To Many - Proposed on v2.2 One to Many ............................................................................... @@ -157,7 +154,7 @@ One to Many :end-before: -- q3 .. index:: - single: withPointsCost ; Many To One - Proposed on v2.2 + single: withPointsCost - Proposed ; Many To One - Proposed on v2.2 Many to One ............................................................................... @@ -178,7 +175,7 @@ Many to One :end-before: -- q4 .. index:: - single: withPointsCost ; Many To Many - Proposed on v2.2 + single: withPointsCost - Proposed ; Many To Many - Proposed on v2.2 Many to Many ............................................................................... @@ -200,7 +197,7 @@ Many to Many :end-before: -- q5 .. index:: - single: withPointsCost ; Combinations -- Proposed on v3.2 + single: withPointsCost - Proposed ; Combinations -- Proposed on v3.2 Combinations ............................................................................... @@ -363,7 +360,7 @@ Traveling from point :math:`1` and vertex :math:`5` to points :math:`\{2, 3, :start-after: -- q8 :end-before: -- q9 -The queries use the :doc:`sampledata` network. +:doc:`sampledata` See Also ------------------------------------------------------------------------------- diff --git a/doc/withPoints/pgr_withPointsCostMatrix.rst b/doc/withPoints/pgr_withPointsCostMatrix.rst index 2fa30db32b..707055c402 100644 --- a/doc/withPoints/pgr_withPointsCostMatrix.rst +++ b/doc/withPoints/pgr_withPointsCostMatrix.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: withPoints Family ; pgr_withPointsCostMatrix - single: With Points Category ; pgr_withPointsCostMatrix - single: Cost Matrix Category ; pgr_withPointsCostMatrix + single: withPoints Family ; pgr_withPointsCostMatrix - Proposed + single: With Points Category ; pgr_withPointsCostMatrix - Proposed + single: Cost Matrix Category ; pgr_withPointsCostMatrix - Proposed single: withPointsCostMatrix - proposed on v2.0 +| + ``pgr_withPointsCostMatrix`` - proposed =============================================================================== @@ -22,19 +22,14 @@ :doc:`pgr_withPoints`. .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - .. rubric:: Availability * Version 2.2.0 - * New **proposed** function + * New proposed function. Description ------------------------------------------------------------------------------- @@ -49,6 +44,8 @@ Using Dijkstra algorithm, calculate and return a cost matrix. :start-after: costMatrix_details_start :end-before: costMatrix_details_end +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- diff --git a/doc/withPoints/pgr_withPointsDD.rst b/doc/withPoints/pgr_withPointsDD.rst index 39f76a552b..17ea44b1bd 100644 --- a/doc/withPoints/pgr_withPointsDD.rst +++ b/doc/withPoints/pgr_withPointsDD.rst @@ -7,13 +7,13 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: - single: withPoints Family ; pgr_withPointsDD - single: With Points Category ; pgr_withPointsDD - single: Driving Distance Category ; pgr_withPointsDD - single: withPointsDD + single: withPoints Family ; pgr_withPointsDD - Proposed + single: With Points Category ; pgr_withPointsDD - Proposed + single: Driving Distance Category ; pgr_withPointsDD - Proposed + single: withPointsDD - Proposed + +| ``pgr_withPointsDD`` - Proposed =============================================================================== @@ -21,15 +21,9 @@ ``pgr_withPointsDD`` - Returns the driving **distance** from a starting point. .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - - .. rubric:: Availability .. rubric:: Version 3.6.0 @@ -37,16 +31,16 @@ * Signature change: ``driving_side`` parameter changed from named optional to unnamed compulsory **driving side**. - * ``pgr_withPointsDD`` (`Single vertex`) - * ``pgr_withPointsDD`` (`Multiple vertices`) + * pgr_withPointsDD(Single vertex) + * pgr_withPointsDD(Multiple vertices) * Standarizing output columns to |result-spantree| - * ``pgr_withPointsDD`` (`Single vertex`) + * pgr_withPointsDD(Single vertex) * Added ``depth``, ``pred`` and ``start_vid`` column. - * ``pgr_withPointsDD`` (`Multiple vertices`) + * pgr_withPointsDD(Multiple vertices) * Added ``depth``, ``pred`` columns. @@ -57,12 +51,12 @@ * Deprecated signatures - * ``pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)`` - * ``pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)`` + * pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)`` + * pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)`` .. rubric:: Version 2.2.0 -* New **proposed** function +* New proposed function. Description @@ -73,6 +67,8 @@ the nodes and points that have costs less than or equal to the value ``**distance**`` from the starting point. The edges extracted will conform the corresponding spanning tree. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -88,7 +84,7 @@ Signatures | OR EMPTY SET .. index:: - single: withPointsDD ; Single Vertex - Proposed on v2.2 + single: withPointsDD - Proposed ; Single Vertex - Proposed on v2.2 Single vertex ............................................................................... @@ -110,7 +106,7 @@ Single vertex :end-before: -- q3 .. index:: - single: withPointsDD ; Multiple Vertices - Proposed on v2.2 + single: withPointsDD - Proposed ; Multiple Vertices - Proposed on v2.2 Multiple vertices ............................................................................... diff --git a/doc/withPoints/pgr_withPointsKSP.rst b/doc/withPoints/pgr_withPointsKSP.rst index 8baa48baad..99510d3da5 100644 --- a/doc/withPoints/pgr_withPointsKSP.rst +++ b/doc/withPoints/pgr_withPointsKSP.rst @@ -7,53 +7,46 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: withPoints Family ; pgr_withPointsKSP single: With Points Category ; pgr_withPointsKSP single: K Shortest Paths Category ; pgr_withPointsKSP single: withPointsKSP +| + pgr_withPointsKSP - Proposed =============================================================================== ``pgr_withPointsKSP`` — Yen's algorithm for K shortest paths using Dijkstra. .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside - -.. rubric:: Availability - .. rubric:: Version 3.6.0 * Standarizing output columns to |nksp-result| -* ``pgr_withPointsKSP`` (One to One) +* 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 overload functions +* New proposed signatures - * ``pgr_withPointsKSP`` (One to Many) - * ``pgr_withPointsKSP`` (Many to One) - * ``pgr_withPointsKSP`` (Many to Many) - * ``pgr_withPointsKSP`` (Combinations) + * 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)`` + * pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char,boolean)`` .. rubric:: Version 2.2.0 -* New **proposed** function +* New proposed function. Description @@ -62,6 +55,8 @@ Description Modifies the graph to include the points defined in the `Points SQL`_ and using Yen algorithm, finds the :math:`K` shortest paths. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -335,8 +330,6 @@ point :math:`2` with heap paths and details. :start-after: --q8 :end-before: --q9 -The queries use the :doc:`sampledata` network. - See Also ------------------------------------------------------------------------------- diff --git a/doc/withPoints/pgr_withPointsVia.rst b/doc/withPoints/pgr_withPointsVia.rst index 74c7798936..76551a37ad 100644 --- a/doc/withPoints/pgr_withPointsVia.rst +++ b/doc/withPoints/pgr_withPointsVia.rst @@ -7,14 +7,14 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: single: withPoints Family ; pgr_withPointsVia single: With Points Category ; pgr_withPointsVia single: Via Category ; pgr_withPointsVia single: withPointsVia +| + ``pgr_withPointsVia`` - Proposed =============================================================================== @@ -22,19 +22,14 @@ points. .. include:: proposed.rst - :start-after: stable-begin-warning - :end-before: stable-end-warning - -.. figure:: images/boost-inside.jpeg - :target: https://www.boost.org/libs/graph/doc/table_of_contents.html - - Boost Graph Inside + :start-after: warning-begin + :end-before: end-warning .. rubric:: Availability * Version 3.4.0 - * New **proposed** function ``pgr_withPointsVia`` (`One Via`_) + * New proposed function. Description ------------------------------------------------------------------------------- @@ -56,6 +51,8 @@ The general algorithm is as follows: * Execute a :doc:`pgr_dijkstraVia`. +|Boost| Boost Graph Inside + Signatures ------------------------------------------------------------------------------- @@ -208,7 +205,7 @@ See Also * :doc:`withPoints-family` * :doc:`via-category` -* :doc:`sampledata` network. +* :doc:`sampledata` .. rubric:: Indices and tables diff --git a/doc/withPoints/withPoints-family.rst b/doc/withPoints/withPoints-family.rst index 28bc5b9da3..83e47ee841 100644 --- a/doc/withPoints/withPoints-family.rst +++ b/doc/withPoints/withPoints-family.rst @@ -7,20 +7,20 @@ Alike 3.0 License: https://creativecommons.org/licenses/by-sa/3.0/ **************************************************************************** -| - .. index:: withPoints Family +| + withPoints - Family of functions =============================================================================== When points are also given as input: .. include:: proposed.rst - :start-after: begin-warning + :start-after: warning-begin :end-before: end-warning -.. index proposed from here +.. proposed-start - :doc:`pgr_withPoints` - Route from/to points anywhere on the graph. - :doc:`pgr_withPointsCost` - Costs of the shortest paths. @@ -29,7 +29,7 @@ When points are also given as input: - :doc:`pgr_withPointsDD` - Driving distance. - :doc:`pgr_withPointsVia` - Via routing -.. index proposed to here +.. proposed-end .. toctree:: :hidden: From 2ec6c76919d0a5451fe9c50df2a09282c7c46359 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 15 Jan 2025 09:43:02 -0600 Subject: [PATCH 072/141] (doc) standardize documentation --- NEWS.md | 12 ++++++------ doc/allpairs/pgr_floydWarshall.rst | 2 +- doc/allpairs/pgr_johnson.rst | 2 +- doc/alpha_shape/pgr_alphaShape.rst | 2 +- doc/astar/pgr_aStar.rst | 4 ++-- doc/astar/pgr_aStarCost.rst | 2 +- doc/astar/pgr_aStarCostMatrix.rst | 2 +- doc/bdAstar/pgr_bdAstar.rst | 6 +++--- doc/bdAstar/pgr_bdAstarCost.rst | 2 +- doc/bdAstar/pgr_bdAstarCostMatrix.rst | 2 +- doc/bdDijkstra/pgr_bdDijkstra.rst | 4 ++-- doc/bdDijkstra/pgr_bdDijkstraCost.rst | 2 +- doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst | 2 +- doc/components/pgr_articulationPoints.rst | 2 +- doc/components/pgr_biconnectedComponents.rst | 2 +- doc/components/pgr_bridges.rst | 2 +- doc/components/pgr_connectedComponents.rst | 2 +- doc/components/pgr_strongComponents.rst | 2 +- doc/contraction/pgr_contraction.rst | 2 +- doc/dijkstra/pgr_dijkstra.rst | 4 ++-- doc/dijkstra/pgr_dijkstraCost.rst | 2 +- doc/dijkstra/pgr_dijkstraCostMatrix.rst | 2 +- doc/driving_distance/pgr_drivingDistance.rst | 6 +++--- doc/ksp/pgr_KSP.rst | 2 +- doc/lineGraph/pgr_lineGraph.rst | 2 +- doc/lineGraph/pgr_lineGraphFull.rst | 2 +- doc/max_flow/pgr_boykovKolmogorov.rst | 8 ++++---- doc/max_flow/pgr_edgeDisjointPaths.rst | 6 +++--- doc/max_flow/pgr_edmondsKarp.rst | 8 ++++---- doc/max_flow/pgr_maxCardinalityMatch.rst | 6 +++--- doc/max_flow/pgr_maxFlow.rst | 6 +++--- doc/max_flow/pgr_pushRelabel.rst | 6 +++--- doc/mincut/pgr_stoerWagner.rst | 2 +- doc/spanningTree/pgr_kruskal.rst | 2 +- doc/spanningTree/pgr_kruskalBFS.rst | 2 +- doc/spanningTree/pgr_kruskalDD.rst | 2 +- doc/spanningTree/pgr_kruskalDFS.rst | 2 +- doc/spanningTree/pgr_prim.rst | 2 +- doc/spanningTree/pgr_primBFS.rst | 2 +- doc/spanningTree/pgr_primDD.rst | 2 +- doc/spanningTree/pgr_primDFS.rst | 2 +- doc/src/release_notes.rst | 10 +++++----- doc/topology/pgr_analyzeGraph.rst | 2 +- doc/topology/pgr_analyzeOneWay.rst | 2 +- doc/topology/pgr_createTopology.rst | 2 +- doc/topology/pgr_createVerticesTable.rst | 2 +- doc/topology/pgr_nodeNetwork.rst | 2 +- doc/trsp/pgr_trsp.rst | 4 ++-- doc/tsp/pgr_TSP.rst | 2 +- doc/tsp/pgr_TSPeuclidean.rst | 2 +- doc/version/pgr_full_version.rst | 2 +- doc/version/pgr_version.rst | 2 +- doc/withPoints/pgr_withPointsKSP.rst | 2 +- 53 files changed, 84 insertions(+), 84 deletions(-) diff --git a/NEWS.md b/NEWS.md index 3a779d8b60..f4bb47a7a5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -250,7 +250,7 @@ milestone for 3.6.0 * 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 + * New proposed signatures: * pgr_withPointsKSP(One to Many) * pgr_withPointsKSP(Many to One) * pgr_withPointsKSP(Many to Many) @@ -1284,7 +1284,7 @@ on Github. * pgr_bdAstar(one to one) -**New Proposed functions** +**New proposed functions.** * pgr_bdAstar(one to many) * pgr_bdAstar(many to one) @@ -1365,12 +1365,12 @@ To see the issues closed by this release see the [Git closed issues for 2.4.0 ](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed) on Github. -**New Signatures** +**New Function.** * pgr_bdDijkstra -**New Proposed Signatures** +**New proposed signatures:** * pgr_maxFlow * pgr_astar(one to many) @@ -1382,7 +1382,7 @@ on Github. * pgr_astarCost(many to many) * pgr_astarCostMatrix -**Deprecated signatures** +**Deprecated signatures.** * pgr_bddijkstra - use pgr_bdDijkstra instead @@ -1446,7 +1446,7 @@ on Github. * pgr_eucledianTSP -**New Proposed functions** +**New proposed functions.** * pgr_dijkstraCostMatrix * pgr_withPointsCostMatrix diff --git a/doc/allpairs/pgr_floydWarshall.rst b/doc/allpairs/pgr_floydWarshall.rst index 481fffac60..d23f2a1096 100644 --- a/doc/allpairs/pgr_floydWarshall.rst +++ b/doc/allpairs/pgr_floydWarshall.rst @@ -28,7 +28,7 @@ each pair of nodes in the graph using Floyd-Warshall algorithm. * Version 2.0.0 - * **Official** function + * Official function. Description ------------------------------------------------------------------------------- diff --git a/doc/allpairs/pgr_johnson.rst b/doc/allpairs/pgr_johnson.rst index 71b4ef00b3..2e4f094e47 100644 --- a/doc/allpairs/pgr_johnson.rst +++ b/doc/allpairs/pgr_johnson.rst @@ -28,7 +28,7 @@ pair of nodes in the graph using Floyd-Warshall algorithm. * Version 2.0.0 - * **Official** function + * Official function. Description ------------------------------------------------------------------------------- diff --git a/doc/alpha_shape/pgr_alphaShape.rst b/doc/alpha_shape/pgr_alphaShape.rst index d2883292ba..91e7ccf2e2 100644 --- a/doc/alpha_shape/pgr_alphaShape.rst +++ b/doc/alpha_shape/pgr_alphaShape.rst @@ -36,7 +36,7 @@ * Version 2.0.0 - * **Official** function + * Official function. * Renamed from version 1.x .. rubric:: Support diff --git a/doc/astar/pgr_aStar.rst b/doc/astar/pgr_aStar.rst index 53cea64893..6cd85f7313 100644 --- a/doc/astar/pgr_aStar.rst +++ b/doc/astar/pgr_aStar.rst @@ -36,7 +36,7 @@ * Version 3.0.0 - * Function promoted to **official**. + * Function promoted to official. * Version 2.4.0 @@ -54,7 +54,7 @@ * Version 2.0.0 - * **Official** pgr_aStar(One to One) + * Official function. Description ------------------------------------------------------------------------------- diff --git a/doc/astar/pgr_aStarCost.rst b/doc/astar/pgr_aStarCost.rst index d616aeeb56..694241bcbf 100644 --- a/doc/astar/pgr_aStarCost.rst +++ b/doc/astar/pgr_aStarCost.rst @@ -29,7 +29,7 @@ * Version 3.0.0 - * Function promoted to **official**. + * Function promoted to official. * Version 2.4.0 diff --git a/doc/astar/pgr_aStarCostMatrix.rst b/doc/astar/pgr_aStarCostMatrix.rst index 22948b6bd2..526914e8cc 100644 --- a/doc/astar/pgr_aStarCostMatrix.rst +++ b/doc/astar/pgr_aStarCostMatrix.rst @@ -24,7 +24,7 @@ * Version 3.0.0 - * Function promoted to **official**. + * Function promoted to official. * Version 2.4.0 diff --git a/doc/bdAstar/pgr_bdAstar.rst b/doc/bdAstar/pgr_bdAstar.rst index f87a5051f7..3aa0b91889 100644 --- a/doc/bdAstar/pgr_bdAstar.rst +++ b/doc/bdAstar/pgr_bdAstar.rst @@ -36,11 +36,11 @@ * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 - * New **Proposed** signatures: + * New proposed signatures: * pgr_bdAstar(One to Many) * pgr_bdAstar(Many to One) @@ -52,7 +52,7 @@ * Version 2.0.0 - * **Official** pgr_bdAstar(One to One) + * Official function. Description ------------------------------------------------------------------------------- diff --git a/doc/bdAstar/pgr_bdAstarCost.rst b/doc/bdAstar/pgr_bdAstarCost.rst index c4a2df6b23..8c9719b95f 100644 --- a/doc/bdAstar/pgr_bdAstarCost.rst +++ b/doc/bdAstar/pgr_bdAstarCost.rst @@ -29,7 +29,7 @@ A* algorithm. * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.4.0 diff --git a/doc/bdAstar/pgr_bdAstarCostMatrix.rst b/doc/bdAstar/pgr_bdAstarCostMatrix.rst index 2f39f4ded4..f3521951a6 100644 --- a/doc/bdAstar/pgr_bdAstarCostMatrix.rst +++ b/doc/bdAstar/pgr_bdAstarCostMatrix.rst @@ -23,7 +23,7 @@ * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 diff --git a/doc/bdDijkstra/pgr_bdDijkstra.rst b/doc/bdDijkstra/pgr_bdDijkstra.rst index ec47c72325..2a4fc7943b 100644 --- a/doc/bdDijkstra/pgr_bdDijkstra.rst +++ b/doc/bdDijkstra/pgr_bdDijkstra.rst @@ -29,7 +29,7 @@ algorithm. * Version 3.0.0 - * **Official** function. + * Function promoted to official. * Version 2.5.0 @@ -47,7 +47,7 @@ algorithm. * Version 2.0.0 - * **Official** pgr_bdDijkstra(One to One) + * Official function. Description diff --git a/doc/bdDijkstra/pgr_bdDijkstraCost.rst b/doc/bdDijkstra/pgr_bdDijkstraCost.rst index 018dab0c52..444bc29d45 100644 --- a/doc/bdDijkstra/pgr_bdDijkstraCost.rst +++ b/doc/bdDijkstra/pgr_bdDijkstraCost.rst @@ -29,7 +29,7 @@ Dijkstra algorithm. * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 diff --git a/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst b/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst index fb6f971fe5..4006da9b8d 100644 --- a/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst +++ b/doc/bdDijkstra/pgr_bdDijkstraCostMatrix.rst @@ -24,7 +24,7 @@ * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 diff --git a/doc/components/pgr_articulationPoints.rst b/doc/components/pgr_articulationPoints.rst index a9be880cbb..e8d25e9ef4 100644 --- a/doc/components/pgr_articulationPoints.rst +++ b/doc/components/pgr_articulationPoints.rst @@ -25,7 +25,7 @@ graph. * Version 3.0.0 * Result columns change: ``seq`` is removed - * **Official** function + * Function promoted to official. * Version 2.5.0 diff --git a/doc/components/pgr_biconnectedComponents.rst b/doc/components/pgr_biconnectedComponents.rst index e97ec73ec6..c4b08868f3 100644 --- a/doc/components/pgr_biconnectedComponents.rst +++ b/doc/components/pgr_biconnectedComponents.rst @@ -28,7 +28,7 @@ * n_seq`` is removed * seq`` changed type to ``BIGINT`` - * **Official** function + * Function promoted to official. * Version 2.5.0 diff --git a/doc/components/pgr_bridges.rst b/doc/components/pgr_bridges.rst index 7cb13e65cf..8aab292948 100644 --- a/doc/components/pgr_bridges.rst +++ b/doc/components/pgr_bridges.rst @@ -23,7 +23,7 @@ * Version 3.0.0 * Result columns change: ``seq`` is removed - * **Official** function + * Function promoted to official. * Version 2.5.0 diff --git a/doc/components/pgr_connectedComponents.rst b/doc/components/pgr_connectedComponents.rst index ff777d94d9..a2d932595a 100644 --- a/doc/components/pgr_connectedComponents.rst +++ b/doc/components/pgr_connectedComponents.rst @@ -28,7 +28,7 @@ a DFS-based approach. * n_seq`` is removed * seq`` changed type to ``BIGINT`` - * Function propoted to **Official**. + * Function promoted to official. * Version 2.5.0 diff --git a/doc/components/pgr_strongComponents.rst b/doc/components/pgr_strongComponents.rst index d1f8b07126..04371159e1 100644 --- a/doc/components/pgr_strongComponents.rst +++ b/doc/components/pgr_strongComponents.rst @@ -28,7 +28,7 @@ using Tarjan's algorithm based on DFS. * ``n_seq`` is removed * ``seq`` changed type to ``BIGINT`` - * **Official** function + * Function promoted to official. * Version 2.5.0 diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index dc23ddda99..98f7fd2a94 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -27,7 +27,7 @@ vertices and edges. * Result columns change: ``seq`` is removed * Name change from ``pgr_contractGraph`` * Bug fixes - * **Official** function + * Function promoted to official. * Version 2.3.0 diff --git a/doc/dijkstra/pgr_dijkstra.rst b/doc/dijkstra/pgr_dijkstra.rst index 8943976c11..f98042a866 100644 --- a/doc/dijkstra/pgr_dijkstra.rst +++ b/doc/dijkstra/pgr_dijkstra.rst @@ -37,7 +37,7 @@ * Version 3.0.0 - * **Official** function. + * Function promoted to official. * Version 2.2.0 @@ -53,7 +53,7 @@ * Version 2.0.0 - * **Official** pgr_dijkstra(One to One) + * Official function. Description diff --git a/doc/dijkstra/pgr_dijkstraCost.rst b/doc/dijkstra/pgr_dijkstraCost.rst index db494a62c2..9bc8e08d1d 100644 --- a/doc/dijkstra/pgr_dijkstraCost.rst +++ b/doc/dijkstra/pgr_dijkstraCost.rst @@ -31,7 +31,7 @@ algorithm. * Version 2.2.0 - * New **official** function. + * Official function. Description diff --git a/doc/dijkstra/pgr_dijkstraCostMatrix.rst b/doc/dijkstra/pgr_dijkstraCostMatrix.rst index f4fc45a90b..89b42cbd21 100644 --- a/doc/dijkstra/pgr_dijkstraCostMatrix.rst +++ b/doc/dijkstra/pgr_dijkstraCostMatrix.rst @@ -23,7 +23,7 @@ * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.3.0 diff --git a/doc/driving_distance/pgr_drivingDistance.rst b/doc/driving_distance/pgr_drivingDistance.rst index 74d376a3d9..920c4be147 100644 --- a/doc/driving_distance/pgr_drivingDistance.rst +++ b/doc/driving_distance/pgr_drivingDistance.rst @@ -35,12 +35,12 @@ .. rubric:: Version 2.1.0 -* Signature change pgr_drivingDistance(single vertex) -* New **Official** pgr_drivingDistance(multiple vertices) +* Signature change: pgr_drivingDistance(single vertex) +* New official.ignature: pgr_drivingDistance(multiple vertices) .. rubric:: Version 2.0.0 -* Official:: pgr_drivingDistance(single vertex) +* Official function. Description diff --git a/doc/ksp/pgr_KSP.rst b/doc/ksp/pgr_KSP.rst index 548efd5d65..bfdf24c4c6 100644 --- a/doc/ksp/pgr_KSP.rst +++ b/doc/ksp/pgr_KSP.rst @@ -42,7 +42,7 @@ .. rubric:: Version 2.0.0 -* **Official** function +* Official function. Description diff --git a/doc/lineGraph/pgr_lineGraph.rst b/doc/lineGraph/pgr_lineGraph.rst index 15da9818db..dfe3f581b8 100644 --- a/doc/lineGraph/pgr_lineGraph.rst +++ b/doc/lineGraph/pgr_lineGraph.rst @@ -32,7 +32,7 @@ graph. * Version 2.5.0 - * New **Experimental** function + * New experimental function. Description diff --git a/doc/lineGraph/pgr_lineGraphFull.rst b/doc/lineGraph/pgr_lineGraphFull.rst index b739fa8221..c14af36feb 100644 --- a/doc/lineGraph/pgr_lineGraphFull.rst +++ b/doc/lineGraph/pgr_lineGraphFull.rst @@ -27,7 +27,7 @@ the vertices from the original graph are converted to line graphs. * Version 2.6.0 - * New **Experimental** function + * New experimental function. Description diff --git a/doc/max_flow/pgr_boykovKolmogorov.rst b/doc/max_flow/pgr_boykovKolmogorov.rst index 1e82bad7a3..0b82bbe8da 100644 --- a/doc/max_flow/pgr_boykovKolmogorov.rst +++ b/doc/max_flow/pgr_boykovKolmogorov.rst @@ -23,22 +23,22 @@ the flow from the sources to the targets using Boykov Kolmogorov algorithm. * Version 3.2.0 - * New proposed signature + * New proposed signature: * pgr_boykovKolmogorov(Combinations) * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 * Renamed from ``pgr_maxFlowBoykovKolmogorov`` - * **Proposed** function + * Function promoted to proposed. * Version 2.3.0 - * New **Experimental** function + * New experimental function. Description diff --git a/doc/max_flow/pgr_edgeDisjointPaths.rst b/doc/max_flow/pgr_edgeDisjointPaths.rst index 6d0f6eb413..893c63732f 100644 --- a/doc/max_flow/pgr_edgeDisjointPaths.rst +++ b/doc/max_flow/pgr_edgeDisjointPaths.rst @@ -30,15 +30,15 @@ vertices. * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 - * **Proposed** function + * Function promoted to proposed. * Version 2.3.0 - * New **Experimental** function + * New experimental function. Description diff --git a/doc/max_flow/pgr_edmondsKarp.rst b/doc/max_flow/pgr_edmondsKarp.rst index f0d7c5441b..3b77fa23e3 100644 --- a/doc/max_flow/pgr_edmondsKarp.rst +++ b/doc/max_flow/pgr_edmondsKarp.rst @@ -23,22 +23,22 @@ flow from the sources to the targets using Edmonds Karp Algorithm. * Version 3.2.0 - * New proposed signature + * New proposed signature: * pgr_edmondsKarp(Combinations) * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 * Renamed from ``pgr_maxFlowEdmondsKarp`` - * **Proposed** function + * Function promoted to proposed. * Version 2.3.0 - * New **Experimental** function + * New experimental function. Description diff --git a/doc/max_flow/pgr_maxCardinalityMatch.rst b/doc/max_flow/pgr_maxCardinalityMatch.rst index dcf1e0f2cb..e60359d753 100644 --- a/doc/max_flow/pgr_maxCardinalityMatch.rst +++ b/doc/max_flow/pgr_maxCardinalityMatch.rst @@ -38,16 +38,16 @@ graph. * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 * Renamed from ``pgr_maximumCardinalityMatching`` - * **Proposed** function + * Function promoted to proposed. * Version 2.3.0 - * New **Experimental** function + * New experimental function. Description diff --git a/doc/max_flow/pgr_maxFlow.rst b/doc/max_flow/pgr_maxFlow.rst index 5e01cbbf80..ee3e858a01 100644 --- a/doc/max_flow/pgr_maxFlow.rst +++ b/doc/max_flow/pgr_maxFlow.rst @@ -23,17 +23,17 @@ source(s) to the targets(s) using the Push Relabel algorithm. * Version 3.2.0 - * New proposed signature + * New proposed signature: * pgr_maxFlow(Combinations) * Version 3.0.0 - * Function promoted to **official**. + * Function promoted to official. * Version 2.4.0 - * New **Proposed** function. + * New proposed function. Description diff --git a/doc/max_flow/pgr_pushRelabel.rst b/doc/max_flow/pgr_pushRelabel.rst index 780077a6f0..8e9b7d0414 100644 --- a/doc/max_flow/pgr_pushRelabel.rst +++ b/doc/max_flow/pgr_pushRelabel.rst @@ -23,18 +23,18 @@ flow from the sources to the targets using Push Relabel Algorithm. * Version 3.2.0 - * New proposed signature + * New proposed signature: * pgr_pushRelabel(Combinations) * Version 3.0.0 - * **Official** function + * Function promoted to official. * Version 2.5.0 * Renamed from ``pgr_maxFlowPushRelabel`` - * **Proposed** function + * Function promoted to proposed. * Version 2.3.0 diff --git a/doc/mincut/pgr_stoerWagner.rst b/doc/mincut/pgr_stoerWagner.rst index 8f35354a65..aec41d25d3 100644 --- a/doc/mincut/pgr_stoerWagner.rst +++ b/doc/mincut/pgr_stoerWagner.rst @@ -26,7 +26,7 @@ * Version 3.0 - * New **Experimental** function + * New experimental function. Description diff --git a/doc/spanningTree/pgr_kruskal.rst b/doc/spanningTree/pgr_kruskal.rst index 85b92b88b2..2b2a6855e5 100644 --- a/doc/spanningTree/pgr_kruskal.rst +++ b/doc/spanningTree/pgr_kruskal.rst @@ -23,7 +23,7 @@ * Version 3.0.0 - * New **Official** function + * New official function. Description diff --git a/doc/spanningTree/pgr_kruskalBFS.rst b/doc/spanningTree/pgr_kruskalBFS.rst index 8ec6e773d4..2e2114f0c9 100644 --- a/doc/spanningTree/pgr_kruskalBFS.rst +++ b/doc/spanningTree/pgr_kruskalBFS.rst @@ -31,7 +31,7 @@ First Search ordering. :Version 3.0.0: - * New **Official** function + * New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/spanningTree/pgr_kruskalDD.rst b/doc/spanningTree/pgr_kruskalDD.rst index 04f9fff123..43d6bd0e05 100644 --- a/doc/spanningTree/pgr_kruskalDD.rst +++ b/doc/spanningTree/pgr_kruskalDD.rst @@ -31,7 +31,7 @@ :Version 3.0.0: - * New **Official** function + * New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/spanningTree/pgr_kruskalDFS.rst b/doc/spanningTree/pgr_kruskalDFS.rst index daef861789..31fc9be98b 100644 --- a/doc/spanningTree/pgr_kruskalDFS.rst +++ b/doc/spanningTree/pgr_kruskalDFS.rst @@ -31,7 +31,7 @@ First Search ordering. :Version 3.0.0: - * New **Official** function + * New official function. Description diff --git a/doc/spanningTree/pgr_prim.rst b/doc/spanningTree/pgr_prim.rst index 14f1131c08..d67df544fb 100644 --- a/doc/spanningTree/pgr_prim.rst +++ b/doc/spanningTree/pgr_prim.rst @@ -23,7 +23,7 @@ * Version 3.0.0 - * New **Official** function + * New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/spanningTree/pgr_primBFS.rst b/doc/spanningTree/pgr_primBFS.rst index 08672bf408..34a0fdac87 100644 --- a/doc/spanningTree/pgr_primBFS.rst +++ b/doc/spanningTree/pgr_primBFS.rst @@ -31,7 +31,7 @@ Search ordering. :Version 3.0.0: - * New **Official** function + * New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/spanningTree/pgr_primDD.rst b/doc/spanningTree/pgr_primDD.rst index 56fd4e9fd4..5cd56315e5 100644 --- a/doc/spanningTree/pgr_primDD.rst +++ b/doc/spanningTree/pgr_primDD.rst @@ -30,7 +30,7 @@ .. rubric:: Version 3.0.0 -* New **Official** function +* New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/spanningTree/pgr_primDFS.rst b/doc/spanningTree/pgr_primDFS.rst index 9e6151506d..5d7231539d 100644 --- a/doc/spanningTree/pgr_primDFS.rst +++ b/doc/spanningTree/pgr_primDFS.rst @@ -31,7 +31,7 @@ Search ordering. :Version 3.0.0: - * New **Official** function + * New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 5c9e397102..0e00e9b526 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -1373,7 +1373,7 @@ on Github. * pgr_bdAstar(one to one) -.. rubric:: New Proposed functions +.. rubric:: New proposed functions. * pgr_bdAstar(one to many) * pgr_bdAstar(many to one) @@ -1461,12 +1461,12 @@ To see the issues closed by this release see the `Git closed issues for 2.4.0 `_ on Github. -.. rubric:: New Signatures +.. rubric:: New Function. * pgr_bdDijkstra -.. rubric:: New Proposed Signatures +.. rubric:: New proposed signatures: * pgr_maxFlow * pgr_astar(one to many) @@ -1478,7 +1478,7 @@ on Github. * pgr_astarCost(many to many) * pgr_astarCostMatrix -.. rubric:: Deprecated signatures +.. rubric:: Deprecated signatures. * pgr_bddijkstra - use pgr_bdDijkstra instead @@ -1546,7 +1546,7 @@ on Github. * pgr_eucledianTSP -.. rubric:: New Proposed functions +.. rubric:: New proposed functions. * pgr_dijkstraCostMatrix * pgr_withPointsCostMatrix diff --git a/doc/topology/pgr_analyzeGraph.rst b/doc/topology/pgr_analyzeGraph.rst index 1bcf55120f..0c13122df5 100644 --- a/doc/topology/pgr_analyzeGraph.rst +++ b/doc/topology/pgr_analyzeGraph.rst @@ -22,7 +22,7 @@ * Version 2.0.0 - * **Official** function + * Official function. Description diff --git a/doc/topology/pgr_analyzeOneWay.rst b/doc/topology/pgr_analyzeOneWay.rst index adf267a53a..c2d864b43f 100644 --- a/doc/topology/pgr_analyzeOneWay.rst +++ b/doc/topology/pgr_analyzeOneWay.rst @@ -25,7 +25,7 @@ segments. * Version 2.0.0 - * **Official** function + * Official function. Description diff --git a/doc/topology/pgr_createTopology.rst b/doc/topology/pgr_createTopology.rst index 329c62b052..b5c1499d99 100644 --- a/doc/topology/pgr_createTopology.rst +++ b/doc/topology/pgr_createTopology.rst @@ -23,8 +23,8 @@ information. * Version 2.0.0 + * Official function. * Renamed from version 1.x - * **Official** function Description ------------------------------------------------------------------------------- diff --git a/doc/topology/pgr_createVerticesTable.rst b/doc/topology/pgr_createVerticesTable.rst index 0e965ec28a..0ad78639cb 100644 --- a/doc/topology/pgr_createVerticesTable.rst +++ b/doc/topology/pgr_createVerticesTable.rst @@ -23,8 +23,8 @@ source and target information. * Version 2.0.0 + * Official function. * Renamed from version 1.x - * **Official** function Description ------------------------------------------------------------------------------- diff --git a/doc/topology/pgr_nodeNetwork.rst b/doc/topology/pgr_nodeNetwork.rst index 8ca1517680..2ded2fa5d6 100644 --- a/doc/topology/pgr_nodeNetwork.rst +++ b/doc/topology/pgr_nodeNetwork.rst @@ -38,7 +38,7 @@ edges into a new table. * Version 2.0.0 - * **Official** function + * Official function. Description diff --git a/doc/trsp/pgr_trsp.rst b/doc/trsp/pgr_trsp.rst index 0221d8a075..2f3bc67f5b 100644 --- a/doc/trsp/pgr_trsp.rst +++ b/doc/trsp/pgr_trsp.rst @@ -28,7 +28,7 @@ * Version 3.4.0 - * New proposed signatures + * New proposed signatures: * pgr_trsp(One to One) * pgr_trsp(One to Many) @@ -52,7 +52,7 @@ * Version 2.0.0 - * **Official** function + * Official function. Description ------------------------------------------------------------------------------- diff --git a/doc/tsp/pgr_TSP.rst b/doc/tsp/pgr_TSP.rst index f3e97638f6..b0f8e9b47c 100644 --- a/doc/tsp/pgr_TSP.rst +++ b/doc/tsp/pgr_TSP.rst @@ -40,7 +40,7 @@ * Version 2.0.0 - * **Official** function + * Official function. Description diff --git a/doc/tsp/pgr_TSPeuclidean.rst b/doc/tsp/pgr_TSPeuclidean.rst index f65c651c31..b803633f99 100644 --- a/doc/tsp/pgr_TSPeuclidean.rst +++ b/doc/tsp/pgr_TSPeuclidean.rst @@ -38,7 +38,7 @@ * Version 2.3.0 - * New **Official** function + * New official function. Description diff --git a/doc/version/pgr_full_version.rst b/doc/version/pgr_full_version.rst index 1f51a26800..f771b6f4ca 100644 --- a/doc/version/pgr_full_version.rst +++ b/doc/version/pgr_full_version.rst @@ -22,7 +22,7 @@ * Version 3.0.0 - * New **official** function + * Official function. Description diff --git a/doc/version/pgr_version.rst b/doc/version/pgr_version.rst index 33bb65fe6e..53d5fa5588 100644 --- a/doc/version/pgr_version.rst +++ b/doc/version/pgr_version.rst @@ -28,7 +28,7 @@ * Version 2.0.0 - * **Official** function + * Official function. Description diff --git a/doc/withPoints/pgr_withPointsKSP.rst b/doc/withPoints/pgr_withPointsKSP.rst index 99510d3da5..9355b7969a 100644 --- a/doc/withPoints/pgr_withPointsKSP.rst +++ b/doc/withPoints/pgr_withPointsKSP.rst @@ -33,7 +33,7 @@ pgr_withPointsKSP - Proposed unnamed compulsory **driving side**. * Added ``start_vid`` and ``end_vid`` result columns. -* New proposed signatures +* New proposed signatures: * pgr_withPointsKSP(One to Many) * pgr_withPointsKSP(Many to One) From 4a68cd3ce6644e35febdef9b6c90ae79ada160e2 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 15 Jan 2025 11:03:57 -0600 Subject: [PATCH 073/141] (doc) fixing typo --- doc/driving_distance/pgr_drivingDistance.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/driving_distance/pgr_drivingDistance.rst b/doc/driving_distance/pgr_drivingDistance.rst index 920c4be147..5cb648bdc5 100644 --- a/doc/driving_distance/pgr_drivingDistance.rst +++ b/doc/driving_distance/pgr_drivingDistance.rst @@ -35,8 +35,13 @@ .. rubric:: Version 2.1.0 -* Signature change: pgr_drivingDistance(single vertex) -* New official.ignature: pgr_drivingDistance(multiple vertices) +* Signature change: + + * pgr_drivingDistance(single vertex) + +* New official signature: + + * pgr_drivingDistance(multiple vertices) .. rubric:: Version 2.0.0 From c16f1b5feedfd0937eb9922e48ca9a112c3ba5aa Mon Sep 17 00:00:00 2001 From: Vicky Vergara Date: Sun, 19 Jan 2025 07:38:50 -0600 Subject: [PATCH 074/141] Fixing docqueries generator flag -level & updating developer tools (#2723) * Fixing docqueries generator flag -level & updating developer tools --- tools/developer/run.sh | 61 ++++++++++++++----- tools/developer/taptest.sh | 83 ++++++++++++++++---------- tools/testers/doc_queries_generator.pl | 5 +- 3 files changed, 102 insertions(+), 47 deletions(-) diff --git a/tools/developer/run.sh b/tools/developer/run.sh index 1a6480008e..e863501185 100755 --- a/tools/developer/run.sh +++ b/tools/developer/run.sh @@ -59,16 +59,18 @@ function set_cmake { #cmake -DWITH_DOC=ON -DBUILD_DOXY=ON .. # Building using clang - #CXX=clang++ CC=clang cmake -DPOSTGRESQL_BIN=${PGBIN} -DCMAKE_BUILD_TYPE=Debug .. + #CXX=clang++ CC=clang cmake -DPOSTGRESQL_BIN=${PGBIN} -DCMAKE_BUILD_TYPE=Debug -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=OFF .. + # Building with debug on #cmake -DPOSTGRESQL_BIN=${PGBIN} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DBUILD_LATEX=ON -DCMAKE_BUILD_TYPE=Debug -DES=ON -DPROJECT_DEBUG=ON .. - # building languages -DES=ON -DJA=ON -DZH_HANS=ON -DDE=ON -DKO=ON - #cmake -DPOSTGRESQL_BIN=${PGBIN} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DBUILD_LATEX=ON -DES=ON -DCMAKE_BUILD_TYPE=Debug .. + # building languages -DES=ON -DJA=ON -DZH_HANS=ON -DDE=ON -DKO=ON and CMAKE_EXPORT_COMPILE_COMMANDS for static analysis tools. + #cmake -DPOSTGRESQL_BIN=${PGBIN} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DBUILD_LATEX=ON -DES=ON -DCMAKE_BUILD_TYPE=Debug .. # check link in documentation #cmake -DPOSTGRESQL_BIN=${PGBIN} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DES=ON -DLINKCHECK=ON -DCMAKE_BUILD_TYPE=Release .. + # build only english cmake -DPOSTGRESQL_BIN=${PGBIN} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DBUILD_LATEX=ON -DCMAKE_BUILD_TYPE=Debug .. } @@ -105,14 +107,16 @@ function set_compiler { echo ------------------------------------ if [ -n "$1" ]; then - update-alternatives --set gcc "/usr/bin/gcc-$1" + export CC="/usr/bin/gcc-$1" + export CXX="/usr/bin/g++-$1" fi } function build_doc { pushd build > /dev/null || exit 1 #rm -rf doc/* ; rm -rf locale/*/*/*.mo - rm -rf doc/* + # Clean only generated files while preserving custom content + find doc -type f \( -name "*.html" -o -name "*.pdf" \) -delete make doc #example on how to only build spanish html #make html-es @@ -123,6 +127,30 @@ function build_doc { popd > /dev/null || exit 1 } +function check { + pushd build > /dev/null || exit 1 + cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + + # Run with error handling and report generation + cppcheck --project=compile_commands.json \ + --enable=all \ + --suppress=missingIncludeSystem \ + --error-exitcode=1 \ + --output-file=cppcheck-report.txt 2>&1 || { + echo "Static analysis failed. See build/cppcheck-report.txt for details" + return 1 + } + popd > /dev/null || exit 1 +} + +function tidy_with_clang { + local base_branch=${1:-"upstream/develop"} + .github/scripts/tidy-vs-commit.sh "$base_branch" || { + echo "clang-tidy checks failed" + return 1 + } +} + function build { pushd build > /dev/null || exit 1 set_cmake @@ -141,25 +169,30 @@ function test_compile { build echo -------------------------------------------- - echo Execute tap_directories + echo Execute documentation queries echo -------------------------------------------- - for d in ${TAP_DIRS} + for d in ${QUERIES_DIRS} do - time bash taptest.sh "${d}" "-p ${PGPORT}" + # generate the documentation queries + #tools/testers/doc_queries_generator.pl -alg "docqueries/${d}" -documentation -pgport "${PGPORT}" + # Show warnings + #tools/testers/doc_queries_generator.pl -alg "docqueries/${d}" -level WARNING -pgport "${PGPORT}" + # Compare differences on results + tools/testers/doc_queries_generator.pl -alg "docqueries/${d}" -pgport "${PGPORT}" done echo -------------------------------------------- - echo Execute documentation queries + echo Execute tap_directories echo -------------------------------------------- - for d in ${QUERIES_DIRS} + for d in ${TAP_DIRS} do - #tools/testers/doc_queries_generator.pl -alg "docqueries/${d}" -documentation -pgport "${PGPORT}" - #tools/testers/doc_queries_generator.pl -alg "docqueries/${d}" -debug1 -pgport "${PGPORT}" - tools/testers/doc_queries_generator.pl -alg "docqueries/${d}" -pgport "${PGPORT}" + time bash taptest.sh "${d}" "-p ${PGPORT}" done + tap_test + tools/testers/doc_queries_generator.pl -pgport $PGPORT + build_doc - #exit 0 tap_test action_tests } diff --git a/tools/developer/taptest.sh b/tools/developer/taptest.sh index e5461cee29..b3ab90269e 100755 --- a/tools/developer/taptest.sh +++ b/tools/developer/taptest.sh @@ -26,16 +26,35 @@ if [[ -z $1 ]]; then exit 1; fi +# run from root of repository +if ! DIR=$(git rev-parse --show-toplevel 2>/dev/null); then + echo "Error: Must be run from within the git repository" >&2 + exit 1 +fi +pushd "${DIR}" > /dev/null || exit 1 DIR="$1" shift PGFLAGS=$* +if ! VERSION=$(grep -E '^[[:space:]]*project\(PGROUTING[[:space:]]+VERSION[[:space:]]+([^[:space:];]+)' CMakeLists.txt | sed -E 's/.*VERSION[[:space:]]+([^[:space:];]+).*/\1/'); then + echo "Error: Failed to extract version from CMakeLists.txt" >&2 + exit 1 +fi + +if [[ -z "${VERSION}" ]]; then + echo "Error: Version not found in CMakeLists.txt" >&2 + exit 1 +fi echo "dir ${DIR}" echo "pgflags ${PGFLAGS}" +echo "VERSION ${VERSION}" QUIET="-v" QUIET="-q" +PGPORT="${PGPORT:-5432}" +PGUSER="${PGUSER:-$USER}" + PGDATABASE="___pgr___test___" PGRVERSION="3.6.1 3.6.0 3.5.1 3.5.0 3.2.0 3.1.3 3.0.6" PGRVERSION="3.7.2" @@ -46,49 +65,51 @@ do pushd tools/testers/ echo "--------------------------" echo " Running with version ${v}" + echo " test ${DIR}" echo "--------------------------" + # give time to developer to read message + sleep 3 dropdb --if-exists "${PGFLAGS}" "${PGDATABASE}" createdb "${PGFLAGS}" "${PGDATABASE}" - psql "$PGFLAGS" -d "$PGDATABASE" -X -q --set client_min_messages=WARNING --set ON_ERROR_STOP=1 --pset pager=off \ - -c "CREATE EXTENSION IF NOT EXISTS pgtap; CREATE EXTENSION IF NOT EXISTS pgrouting WITH VERSION '${v}' CASCADE;" - + if ! bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "${v}"; then + echo "Error: Database setup failed" >&2 + exit 1 + fi echo "--------------------------" echo " Installed version" echo "--------------------------" psql "${PGFLAGS}" -d "$PGDATABASE" -c "SELECT * FROM pgr_full_version();" - #psql "${PGFLAGS}" -d "$PGDATABASE" -c "SET client_min_messages TO DEBUG3; ALTER EXTENSION pgrouting UPDATE TO '3.7.0';" - echo "--------------------------" - echo " update version" - echo "--------------------------" - psql "${PGFLAGS}" -d "$PGDATABASE" -c "SELECT * FROM pgr_full_version();" + popd - psql "${PGFLAGS}" -d "$PGDATABASE" -X -q --set client_min_messages=WARNING --set ON_ERROR_STOP=1 --pset pager=off \ - -f sampledata.sql \ - -f solomon_100_rc101.data.sql \ - -f innerQuery.sql \ - -f innerQuery_old.sql \ - -f inner_styles.sql \ - -f old_inner_styles.sql \ - -f no_crash_test.sql \ - -f alphaShapeTester.sql \ - -f general_pgtap_tests.sql \ - -f no_crash_general.sql \ - -f dijkstra_pgtap_tests.sql \ - -f flow_pgtap_tests.sql \ - -f trsp_tests.sql \ - -f spanningtree.sql \ - -f types_check.sql \ - -f via_compare.sql \ - -f astar_pgtap_tests.sql \ - -f compare_dijkstra.sql \ - -f allpairs_tests.sql \ - -f contraction_tapfuncs.sql\ - -f tsp_pgtap_tests.sql + if [[ "${v}" != "${VERSION}" ]] + then + # run tests on old version + pg_prove "$QUIET" --normalize --directives --recurse "${PGFLAGS}" -d "${PGDATABASE}" "pgtap/${DIR}" + + # update to this version + echo "--------------------------" + echo " update version" + echo "--------------------------" + if ! psql "${PGFLAGS}" -d "$PGDATABASE" -c "SET client_min_messages TO DEBUG3; ALTER EXTENSION pgrouting UPDATE TO '${VERSION}';"; then + echo "Error: Failed to update pgrouting extension to version ${VERSION}" >&2 + exit 1 + fi + + psql "${PGFLAGS}" -q -t -d "$PGDATABASE" -c "SELECT extversion FROM pg_extension WHERE extname = 'pgrouting';" + + # Verify update success + if ! psql "${PGFLAGS}" -q -t -d "$PGDATABASE" -c "SELECT extversion FROM pg_extension WHERE extname = 'pgrouting';" | grep -q "${VERSION}"; then + echo "Error: Extension version mismatch after update" >&2 + exit 1 + fi + fi + + # run this version's test + psql "${PGFLAGS}" -d "$PGDATABASE" -c "SELECT * FROM pgr_full_version();" - popd pg_prove "$QUIET" --normalize --directives --recurse "${PGFLAGS}" -d "${PGDATABASE}" "pgtap/${DIR}" #dropdb --if-exists "${PGFLAGS}" "${PGDATABASE}" done diff --git a/tools/testers/doc_queries_generator.pl b/tools/testers/doc_queries_generator.pl index 34cb9b5628..edcdf5f16f 100755 --- a/tools/testers/doc_queries_generator.pl +++ b/tools/testers/doc_queries_generator.pl @@ -124,8 +124,9 @@ sub Usage { elsif ($a =~ /^-c/i) { $clean = 1; } - elsif ($a =~ /^-l$/i) { - $LEVEL = $psql = shift @ARGV || Usage(); + elsif ($a =~ /^-l(evel)?/i) { + $LEVEL = shift @ARGV || Usage(); + print "The level $LEVEL\n"; } elsif ($a =~ /^-v/i) { $VERBOSE = 1; From bf1d91e0113d73f23b2439c5e10c30b701db1559 Mon Sep 17 00:00:00 2001 From: Vicky Vergara Date: Sun, 19 Jan 2025 16:15:15 -0600 Subject: [PATCH 075/141] =?UTF-8?q?(C++/performance)=20Removing=20passing?= =?UTF-8?q?=20c=5Fstr()=20to=20a=20function=20that=20takes=20s=E2=80=A6=20?= =?UTF-8?q?(#2725)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (C++/performance) Removing passing c_str() to a function that takes std::string as argument * - rename pgr_msg -> to_pg_msg * -Adding overload of to_pg_msg * - Using the new functions * (docqueries) empty hint is not shown anymore --- docqueries/ordering/topologicalSort.result | 1 - include/c_common/e_report.h | 2 +- include/cpp_common/alloc.hpp | 5 +- src/allpairs/floydWarshall_driver.cpp | 24 ++++---- src/allpairs/johnson_driver.cpp | 24 ++++---- src/alpha_shape/alphaShape_driver.cpp | 30 +++++----- src/astar/astar_driver.cpp | 36 ++++++------ src/bdAstar/bdAstar_driver.cpp | 36 ++++++------ src/bdDijkstra/bdDijkstra_driver.cpp | 36 ++++++------ src/bellman_ford/bellman_ford_driver.cpp | 36 ++++++------ src/bellman_ford/bellman_ford_neg_driver.cpp | 36 ++++++------ src/bellman_ford/edwardMoore_driver.cpp | 36 ++++++------ .../binaryBreadthFirstSearch_driver.cpp | 40 ++++++------- .../breadthFirstSearch_driver.cpp | 32 +++++------ src/chinese/chinesePostman_driver.cpp | 32 +++++------ src/circuits/hawickCircuits_driver.cpp | 32 +++++------ src/coloring/bipartite_driver.cpp | 38 +++++-------- src/coloring/edgeColoring_driver.cpp | 28 +++++----- .../sequentialVertexColoring_driver.cpp | 32 +++++------ src/common/alloc.cpp | 12 +++- src/common/e_report.c | 2 +- src/components/articulationPoints_driver.cpp | 30 +++++----- .../biconnectedComponents_driver.cpp | 30 +++++----- src/components/bridges_driver.cpp | 30 +++++----- src/components/connectedComponents_driver.cpp | 30 +++++----- src/components/makeConnected_driver.cpp | 32 +++++------ src/components/strongComponents_driver.cpp | 30 +++++----- src/contraction/contractGraph_driver.cpp | 34 +++++------ src/cpp_common/trsp_pgget.cpp | 6 +- .../dagShortestPath_driver.cpp | 36 ++++++------ src/dijkstra/dijkstraVia_driver.cpp | 32 +++++------ src/dijkstra/dijkstra_driver.cpp | 36 ++++++------ .../lengauerTarjanDominatorTree_driver.cpp | 38 +++++-------- .../driving_distance_driver.cpp | 32 +++++------ .../driving_distance_withPoints_driver.cpp | 36 ++++++------ src/ksp/ksp_driver.cpp | 36 ++++++------ src/ksp/turnRestrictedPath_driver.cpp | 30 +++++----- src/ksp/withPoints_ksp_driver.cpp | 42 +++++++------- src/lineGraph/lineGraphFull_driver.cpp | 32 +++++------ src/lineGraph/lineGraph_driver.cpp | 28 +++++----- src/max_flow/edge_disjoint_paths_driver.cpp | 34 +++++------ src/max_flow/max_flow_driver.cpp | 36 ++++++------ .../maximum_cardinality_matching_driver.cpp | 30 +++++----- src/max_flow/minCostMaxFlow_driver.cpp | 36 ++++++------ src/metrics/betweennessCentrality_driver.cpp | 24 ++++---- src/mincut/stoerWagner_driver.cpp | 30 +++++----- src/ordering/cuthillMckeeOrdering_driver.cpp | 28 +++++----- .../pickDeliverEuclidean_driver.cpp | 42 +++++++------- src/pickDeliver/pickDeliver_driver.cpp | 56 +++++++++---------- src/planar/boyerMyrvold_driver.cpp | 28 ++++------ src/planar/isPlanar_driver.cpp | 26 ++++----- src/spanningTree/kruskal_driver.cpp | 32 +++++------ src/spanningTree/mst_common.cpp | 14 ++--- src/spanningTree/prim_driver.cpp | 32 +++++------ .../randomSpanningTree_driver.cpp | 30 +++++----- .../topologicalSort_driver.cpp | 30 +++++----- .../transitiveClosure_driver.cpp | 30 +++++----- src/traversal/depthFirstSearch_driver.cpp | 32 +++++------ src/trsp/trspVia_driver.cpp | 32 +++++------ src/trsp/trspVia_withPoints_driver.cpp | 36 ++++++------ src/trsp/trsp_driver.cpp | 36 ++++++------ src/trsp/trsp_withPoints_driver.cpp | 40 ++++++------- src/tsp/TSP_driver.cpp | 38 ++++++------- src/tsp/euclideanTSP_driver.cpp | 38 ++++++------- src/withPoints/get_new_queries.cpp | 6 +- src/withPoints/withPointsVia_driver.cpp | 36 ++++++------ src/withPoints/withPoints_driver.cpp | 40 ++++++------- 67 files changed, 901 insertions(+), 1121 deletions(-) diff --git a/docqueries/ordering/topologicalSort.result b/docqueries/ordering/topologicalSort.result index f055e8336f..ac0fd1cad1 100644 --- a/docqueries/ordering/topologicalSort.result +++ b/docqueries/ordering/topologicalSort.result @@ -62,7 +62,6 @@ SELECT * FROM pgr_topologicalsort( SELECT * FROM pgr_topologicalsort( $$SELECT id, source, target, cost, reverse_cost FROM edges$$); ERROR: Graph is not DAG -HINT: CONTEXT: SQL function "pgr_topologicalsort" statement 1 /* -- q4 */ ROLLBACK; diff --git a/include/c_common/e_report.h b/include/c_common/e_report.h index d11ac238ba..957f12db8d 100644 --- a/include/c_common/e_report.h +++ b/include/c_common/e_report.h @@ -41,7 +41,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ~~~~{.c} * std::ostringstream log; * log << "the message"; - * *log_msg = pgr_msg(log.str().c_str()); + * *log_msg = to_pg_msg(log.str()); * ~~~~ * * diff --git a/include/cpp_common/alloc.hpp b/include/cpp_common/alloc.hpp index e0ed3d400f..664788b3b2 100644 --- a/include/cpp_common/alloc.hpp +++ b/include/cpp_common/alloc.hpp @@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. #include +#include extern "C" { @@ -86,8 +87,8 @@ pgr_free(T* ptr) { return nullptr; } -char * -pgr_msg(const std::string &msg); +char* to_pg_msg(const std::string&); +char* to_pg_msg(const std::ostringstream&); } // namespace pgrouting diff --git a/src/allpairs/floydWarshall_driver.cpp b/src/allpairs/floydWarshall_driver.cpp index a016e03d09..a4ef3b5028 100644 --- a/src/allpairs/floydWarshall_driver.cpp +++ b/src/allpairs/floydWarshall_driver.cpp @@ -49,7 +49,7 @@ pgr_do_floydWarshall( size_t *return_count, char ** log_msg, char ** err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -85,35 +85,33 @@ pgr_do_floydWarshall( if (*return_count == 0) { err << "No result generated, report this error\n"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); *return_tuples = NULL; *return_count = 0; return; } - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); + *log_msg = to_pg_msg(log); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/allpairs/johnson_driver.cpp b/src/allpairs/johnson_driver.cpp index dea9c9f8f1..8573bb7246 100644 --- a/src/allpairs/johnson_driver.cpp +++ b/src/allpairs/johnson_driver.cpp @@ -48,7 +48,7 @@ pgr_do_johnson( size_t *return_count, char ** log_msg, char ** err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -84,35 +84,33 @@ pgr_do_johnson( if (*return_count == 0) { err << "No result generated, report this error\n"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); *return_tuples = NULL; *return_count = 0; return; } - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); + *log_msg = to_pg_msg(log); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/alpha_shape/alphaShape_driver.cpp b/src/alpha_shape/alphaShape_driver.cpp index e3441771d8..86f8d14af6 100644 --- a/src/alpha_shape/alphaShape_driver.cpp +++ b/src/alpha_shape/alphaShape_driver.cpp @@ -73,7 +73,7 @@ pgr_do_alphaShape( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -180,7 +180,7 @@ pgr_do_alphaShape( *return_tuples = pgr_alloc(*return_count, (*return_tuples)); std::stringstream ss; ss << "MULTIPOLYGON EMPTY"; - (*return_tuples)[0].geom = pgr_msg(ss.str().c_str()); + (*return_tuples)[0].geom = to_pg_msg(ss.str()); } else { *return_count = results.size(); *return_tuples = pgr_alloc(*return_count, (*return_tuples)); @@ -188,38 +188,34 @@ pgr_do_alphaShape( for (const auto &r : results) { std::stringstream ss; ss << bg::wkt(r); - (*return_tuples)[row].geom = pgr_msg(ss.str().c_str()); + (*return_tuples)[row].geom = to_pg_msg(ss.str()); ++row; } } - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/astar/astar_driver.cpp b/src/astar/astar_driver.cpp index 6a14a78f90..d69288098a 100644 --- a/src/astar/astar_driver.cpp +++ b/src/astar/astar_driver.cpp @@ -61,7 +61,7 @@ void pgr_do_astar( char** log_msg, char** notice_msg, char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -85,8 +85,8 @@ void pgr_do_astar( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -96,8 +96,8 @@ void pgr_do_astar( hint = nullptr; if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = pgr_msg(edges_sql); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = to_pg_msg(edges_sql); return; } @@ -128,39 +128,35 @@ void pgr_do_astar( (*return_tuples) = nullptr; (*return_count) = 0; notice << "No paths found\n"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/bdAstar/bdAstar_driver.cpp b/src/bdAstar/bdAstar_driver.cpp index 8f685608e4..47d78db4d3 100644 --- a/src/bdAstar/bdAstar_driver.cpp +++ b/src/bdAstar/bdAstar_driver.cpp @@ -62,7 +62,7 @@ void pgr_do_bdAstar( char** log_msg, char** notice_msg, char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -83,8 +83,8 @@ void pgr_do_bdAstar( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -92,8 +92,8 @@ void pgr_do_bdAstar( auto edges = pgrouting::pgget::get_edges_xy(std::string(edges_sql), true); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -118,39 +118,35 @@ void pgr_do_bdAstar( (*return_tuples) = nullptr; (*return_count) = 0; notice << "No paths found\n"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/bdDijkstra/bdDijkstra_driver.cpp b/src/bdDijkstra/bdDijkstra_driver.cpp index 1411dd50fd..92b2bf256b 100644 --- a/src/bdDijkstra/bdDijkstra_driver.cpp +++ b/src/bdDijkstra/bdDijkstra_driver.cpp @@ -95,7 +95,7 @@ pgr_do_bdDijkstra( char **err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -116,8 +116,8 @@ pgr_do_bdDijkstra( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -127,8 +127,8 @@ pgr_do_bdDijkstra( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -151,39 +151,35 @@ pgr_do_bdDijkstra( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/bellman_ford/bellman_ford_driver.cpp b/src/bellman_ford/bellman_ford_driver.cpp index 2203aad4a6..5e302992a5 100644 --- a/src/bellman_ford/bellman_ford_driver.cpp +++ b/src/bellman_ford/bellman_ford_driver.cpp @@ -79,7 +79,7 @@ pgr_do_bellman_ford( char ** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; using pgrouting::pgget::get_edges; @@ -103,8 +103,8 @@ pgr_do_bellman_ford( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -112,8 +112,8 @@ pgr_do_bellman_ford( auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -136,39 +136,35 @@ pgr_do_bellman_ford( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/bellman_ford/bellman_ford_neg_driver.cpp b/src/bellman_ford/bellman_ford_neg_driver.cpp index 200946d105..1dc919c59d 100644 --- a/src/bellman_ford/bellman_ford_neg_driver.cpp +++ b/src/bellman_ford/bellman_ford_neg_driver.cpp @@ -81,7 +81,7 @@ pgr_do_bellman_ford_neg( char ** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; using pgrouting::pgget::get_edges; @@ -105,8 +105,8 @@ pgr_do_bellman_ford_neg( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -117,8 +117,8 @@ pgr_do_bellman_ford_neg( auto neg_edges = get_edges(std::string(neg_edges_sql), true, false); if (edges.size() + neg_edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -143,39 +143,35 @@ pgr_do_bellman_ford_neg( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/bellman_ford/edwardMoore_driver.cpp b/src/bellman_ford/edwardMoore_driver.cpp index 1905212205..bf859d5eea 100644 --- a/src/bellman_ford/edwardMoore_driver.cpp +++ b/src/bellman_ford/edwardMoore_driver.cpp @@ -79,7 +79,7 @@ pgr_do_edwardMoore( char ** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; using pgrouting::pgget::get_edges; @@ -103,8 +103,8 @@ pgr_do_edwardMoore( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -112,8 +112,8 @@ pgr_do_edwardMoore( auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -136,39 +136,35 @@ pgr_do_edwardMoore( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/breadthFirstSearch/binaryBreadthFirstSearch_driver.cpp b/src/breadthFirstSearch/binaryBreadthFirstSearch_driver.cpp index d2a0d9fa77..9506cbb2c8 100644 --- a/src/breadthFirstSearch/binaryBreadthFirstSearch_driver.cpp +++ b/src/breadthFirstSearch/binaryBreadthFirstSearch_driver.cpp @@ -136,7 +136,7 @@ pgr_do_binaryBreadthFirstSearch( char ** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; using pgrouting::pgget::get_edges; @@ -162,8 +162,8 @@ pgr_do_binaryBreadthFirstSearch( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -172,8 +172,8 @@ pgr_do_binaryBreadthFirstSearch( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } @@ -184,7 +184,7 @@ pgr_do_binaryBreadthFirstSearch( if (!(costCheck(digraph))) { err << c_err_msg; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } paths = binaryBreadthFirstSearch(digraph, combinations); @@ -195,7 +195,7 @@ pgr_do_binaryBreadthFirstSearch( if (!(costCheck(undigraph))) { err << c_err_msg; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } @@ -210,7 +210,7 @@ pgr_do_binaryBreadthFirstSearch( (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -218,32 +218,28 @@ pgr_do_binaryBreadthFirstSearch( log << "\nConverting a set of paths into the tuples"; (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/breadthFirstSearch/breadthFirstSearch_driver.cpp b/src/breadthFirstSearch/breadthFirstSearch_driver.cpp index 06eb026f2a..282df2dea2 100644 --- a/src/breadthFirstSearch/breadthFirstSearch_driver.cpp +++ b/src/breadthFirstSearch/breadthFirstSearch_driver.cpp @@ -67,7 +67,7 @@ pgr_do_breadthFirstSearch( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intSet; @@ -91,8 +91,8 @@ pgr_do_breadthFirstSearch( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -117,7 +117,7 @@ pgr_do_breadthFirstSearch( (*return_tuples) = NULL; (*return_count) = 0; notice << "No traversal found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -127,32 +127,28 @@ pgr_do_breadthFirstSearch( *((*return_tuples) + i) = results[i]; } - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/chinese/chinesePostman_driver.cpp b/src/chinese/chinesePostman_driver.cpp index 6685c91627..e4968f0293 100644 --- a/src/chinese/chinesePostman_driver.cpp +++ b/src/chinese/chinesePostman_driver.cpp @@ -52,7 +52,7 @@ pgr_do_directedChPP( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -71,8 +71,8 @@ pgr_do_directedChPP( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -101,7 +101,7 @@ pgr_do_directedChPP( (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -112,33 +112,29 @@ pgr_do_directedChPP( } *return_count = count; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/circuits/hawickCircuits_driver.cpp b/src/circuits/hawickCircuits_driver.cpp index b506deee1b..5e8a626441 100644 --- a/src/circuits/hawickCircuits_driver.cpp +++ b/src/circuits/hawickCircuits_driver.cpp @@ -70,7 +70,7 @@ pgr_do_hawickCircuits( char ** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -88,8 +88,8 @@ pgr_do_hawickCircuits( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -107,7 +107,7 @@ pgr_do_hawickCircuits( (*return_tuples) = NULL; (*return_count) = 0; notice << "No Circuit found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -118,32 +118,28 @@ pgr_do_hawickCircuits( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/coloring/bipartite_driver.cpp b/src/coloring/bipartite_driver.cpp index 66f1f779eb..3ed6ec8e7a 100644 --- a/src/coloring/bipartite_driver.cpp +++ b/src/coloring/bipartite_driver.cpp @@ -53,7 +53,7 @@ pgr_do_bipartite( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -74,8 +74,8 @@ pgr_do_bipartite( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -92,12 +92,8 @@ pgr_do_bipartite( if (count == 0) { (*return_tuples) = NULL; (*return_count) = 0; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); @@ -107,32 +103,28 @@ pgr_do_bipartite( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/coloring/edgeColoring_driver.cpp b/src/coloring/edgeColoring_driver.cpp index a69188ad68..916d92dc37 100644 --- a/src/coloring/edgeColoring_driver.cpp +++ b/src/coloring/edgeColoring_driver.cpp @@ -47,7 +47,7 @@ void pgr_do_edgeColoring( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -65,8 +65,8 @@ void pgr_do_edgeColoring( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -84,7 +84,7 @@ void pgr_do_edgeColoring( (*return_tuples) = NULL; (*return_count) = 0; notice << "No results found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -95,28 +95,28 @@ void pgr_do_edgeColoring( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty() ? *log_msg : pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty() ? *notice_msg : pgr_msg(notice.str().c_str()); + *log_msg = log.str().empty() ? *log_msg : to_pg_msg(log); + *notice_msg = notice.str().empty() ? *notice_msg : to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/coloring/sequentialVertexColoring_driver.cpp b/src/coloring/sequentialVertexColoring_driver.cpp index 40cb7908da..7d54418216 100644 --- a/src/coloring/sequentialVertexColoring_driver.cpp +++ b/src/coloring/sequentialVertexColoring_driver.cpp @@ -65,7 +65,7 @@ pgr_do_sequentialVertexColoring( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -83,8 +83,8 @@ pgr_do_sequentialVertexColoring( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -103,7 +103,7 @@ pgr_do_sequentialVertexColoring( (*return_tuples) = NULL; (*return_count) = 0; notice << "No traversal found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -114,32 +114,28 @@ pgr_do_sequentialVertexColoring( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/common/alloc.cpp b/src/common/alloc.cpp index 1ff667663e..710409915f 100644 --- a/src/common/alloc.cpp +++ b/src/common/alloc.cpp @@ -31,13 +31,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. namespace pgrouting { -char * -pgr_msg(const std::string &msg) { - char* duplicate = NULL; +char* +to_pg_msg(const std::string &msg) { + if (msg.empty()) return nullptr; + char* duplicate = nullptr; duplicate = pgr_alloc(msg.size() + 1, duplicate); memcpy(duplicate, msg.c_str(), msg.size()); duplicate[msg.size()] = '\0'; return duplicate; } +char* +to_pg_msg(const std::ostringstream &msg) { + return to_pg_msg(msg.str()); +} + } // namespace pgrouting diff --git a/src/common/e_report.c b/src/common/e_report.c index 15500c849d..4c7d0f4e93 100644 --- a/src/common/e_report.c +++ b/src/common/e_report.c @@ -44,7 +44,7 @@ pgr_throw_error(char *err, char *hint) { * ~~~~{.c} * std::ostringstream log; * log << "the message"; - * *log_msg = to_pg_msg(log.str().c_str()); + * *log_msg = to_pg_msg(log); * ~~~~ * * Then on the C side diff --git a/src/components/articulationPoints_driver.cpp b/src/components/articulationPoints_driver.cpp index 7feb62160e..86a8db677b 100644 --- a/src/components/articulationPoints_driver.cpp +++ b/src/components/articulationPoints_driver.cpp @@ -52,7 +52,7 @@ pgr_do_articulationPoints( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -71,8 +71,8 @@ pgr_do_articulationPoints( hint = edges_sql; auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -100,33 +100,29 @@ pgr_do_articulationPoints( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/components/biconnectedComponents_driver.cpp b/src/components/biconnectedComponents_driver.cpp index 58bef62d84..fff2fe935b 100644 --- a/src/components/biconnectedComponents_driver.cpp +++ b/src/components/biconnectedComponents_driver.cpp @@ -53,7 +53,7 @@ pgr_do_biconnectedComponents( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -72,8 +72,8 @@ pgr_do_biconnectedComponents( hint = edges_sql; auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -99,33 +99,29 @@ pgr_do_biconnectedComponents( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/components/bridges_driver.cpp b/src/components/bridges_driver.cpp index 6cf50be12c..44ab23442e 100644 --- a/src/components/bridges_driver.cpp +++ b/src/components/bridges_driver.cpp @@ -51,7 +51,7 @@ pgr_do_bridges( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -70,8 +70,8 @@ pgr_do_bridges( hint = edges_sql; auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -98,33 +98,29 @@ pgr_do_bridges( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/components/connectedComponents_driver.cpp b/src/components/connectedComponents_driver.cpp index 3145192392..51bbadd205 100644 --- a/src/components/connectedComponents_driver.cpp +++ b/src/components/connectedComponents_driver.cpp @@ -52,7 +52,7 @@ pgr_do_connectedComponents( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -71,8 +71,8 @@ pgr_do_connectedComponents( hint = edges_sql; auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -97,33 +97,29 @@ pgr_do_connectedComponents( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/components/makeConnected_driver.cpp b/src/components/makeConnected_driver.cpp index ecfd615543..ffb34bb079 100644 --- a/src/components/makeConnected_driver.cpp +++ b/src/components/makeConnected_driver.cpp @@ -51,7 +51,7 @@ pgr_do_makeConnected( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -73,8 +73,8 @@ pgr_do_makeConnected( hint = edges_sql; auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -93,7 +93,7 @@ pgr_do_makeConnected( (*return_count) = 0; notice << "No Vertices"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -105,32 +105,28 @@ pgr_do_makeConnected( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/components/strongComponents_driver.cpp b/src/components/strongComponents_driver.cpp index fb12e1d14e..237385a1ac 100644 --- a/src/components/strongComponents_driver.cpp +++ b/src/components/strongComponents_driver.cpp @@ -53,7 +53,7 @@ pgr_do_strongComponents( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -72,8 +72,8 @@ pgr_do_strongComponents( hint = edges_sql; auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -98,33 +98,29 @@ pgr_do_strongComponents( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/contraction/contractGraph_driver.cpp b/src/contraction/contractGraph_driver.cpp index fcd6a8d258..829b2f1687 100644 --- a/src/contraction/contractGraph_driver.cpp +++ b/src/contraction/contractGraph_driver.cpp @@ -184,7 +184,7 @@ pgr_do_contractGraph( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; using pgrouting::pgget::get_edges; @@ -205,8 +205,8 @@ pgr_do_contractGraph( hint = edges_sql; auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -216,9 +216,9 @@ pgr_do_contractGraph( for (const auto kind : ordering) { if (!pgrouting::contraction::is_valid_contraction(static_cast(kind))) { - *err_msg = pgr_msg("Invalid contraction type found"); + *err_msg = to_pg_msg("Invalid contraction type found"); log << "Contraction type " << kind << " not valid"; - *log_msg = pgr_msg(log.str().c_str()); + *log_msg = to_pg_msg(log); return; } } @@ -249,32 +249,28 @@ pgr_do_contractGraph( } pgassert(err.str().empty()); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/cpp_common/trsp_pgget.cpp b/src/cpp_common/trsp_pgget.cpp index 59dfe49a16..1991786ba6 100644 --- a/src/cpp_common/trsp_pgget.cpp +++ b/src/cpp_common/trsp_pgget.cpp @@ -85,7 +85,7 @@ pgr_get_edges( bool normal, bool ignore_id, char **err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::Column_info_t; try { @@ -100,11 +100,11 @@ pgr_get_edges( } catch (const std::string &ex) { (*rows) = pgr_free(*rows); (*total_rows) = 0; - *err_msg = pgr_msg(ex.c_str()); + *err_msg = to_pg_msg(ex); } catch(...) { (*rows) = pgr_free(*rows); (*total_rows) = 0; - *err_msg = pgr_msg("Caught unknown exception!"); + *err_msg = to_pg_msg("Caught unknown exception!"); } } diff --git a/src/dagShortestPath/dagShortestPath_driver.cpp b/src/dagShortestPath/dagShortestPath_driver.cpp index 10923ae6ea..91df4d52cb 100644 --- a/src/dagShortestPath/dagShortestPath_driver.cpp +++ b/src/dagShortestPath/dagShortestPath_driver.cpp @@ -77,7 +77,7 @@ pgr_do_dagShortestPath( char **err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; using pgrouting::pgget::get_edges; @@ -100,8 +100,8 @@ pgr_do_dagShortestPath( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -111,8 +111,8 @@ pgr_do_dagShortestPath( auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -134,39 +134,35 @@ pgr_do_dagShortestPath( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/dijkstra/dijkstraVia_driver.cpp b/src/dijkstra/dijkstraVia_driver.cpp index 0fb0842e17..3713d0e7e0 100644 --- a/src/dijkstra/dijkstraVia_driver.cpp +++ b/src/dijkstra/dijkstraVia_driver.cpp @@ -103,7 +103,7 @@ pgr_do_dijkstraVia( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; using pgrouting::pgget::get_edges; @@ -128,8 +128,8 @@ pgr_do_dijkstraVia( auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -164,7 +164,7 @@ pgr_do_dijkstraVia( (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -174,32 +174,28 @@ pgr_do_dijkstraVia( (*return_count) = (get_route(return_tuples, paths)); (*return_tuples)[count - 1].edge = -2; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/dijkstra/dijkstra_driver.cpp b/src/dijkstra/dijkstra_driver.cpp index 5c9aecc51f..44984b6ab3 100644 --- a/src/dijkstra/dijkstra_driver.cpp +++ b/src/dijkstra/dijkstra_driver.cpp @@ -122,7 +122,7 @@ pgr_do_dijkstra( char **err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; using pgrouting::pgget::get_edges; @@ -144,8 +144,8 @@ pgr_do_dijkstra( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -155,8 +155,8 @@ pgr_do_dijkstra( auto edges = get_edges(std::string(edges_sql), normal, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -182,39 +182,35 @@ pgr_do_dijkstra( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/dominator/lengauerTarjanDominatorTree_driver.cpp b/src/dominator/lengauerTarjanDominatorTree_driver.cpp index b9d014dc2b..01eb126c37 100644 --- a/src/dominator/lengauerTarjanDominatorTree_driver.cpp +++ b/src/dominator/lengauerTarjanDominatorTree_driver.cpp @@ -56,7 +56,7 @@ pgr_do_LTDTree( char **err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -74,8 +74,8 @@ pgr_do_LTDTree( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -97,12 +97,8 @@ pgr_do_LTDTree( (*return_tuples) = NULL; (*return_count) = 0; notice << "No result found"; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); @@ -112,32 +108,28 @@ pgr_do_LTDTree( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/driving_distance/driving_distance_driver.cpp b/src/driving_distance/driving_distance_driver.cpp index e41e38967d..a2343469ef 100644 --- a/src/driving_distance/driving_distance_driver.cpp +++ b/src/driving_distance/driving_distance_driver.cpp @@ -56,7 +56,7 @@ pgr_do_drivingDistance( char **err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::algorithm::drivingDistance; using pgrouting::pgget::get_intSet; @@ -80,8 +80,8 @@ pgr_do_drivingDistance( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -103,7 +103,7 @@ pgr_do_drivingDistance( if (count == 0) { log << "\nNo return values were found"; - *notice_msg = pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg(log); return; } @@ -124,32 +124,28 @@ pgr_do_drivingDistance( } (*return_count) = count; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch( ... ) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/driving_distance/driving_distance_withPoints_driver.cpp b/src/driving_distance/driving_distance_withPoints_driver.cpp index 6816f2589a..d01620938f 100644 --- a/src/driving_distance/driving_distance_withPoints_driver.cpp +++ b/src/driving_distance/driving_distance_withPoints_driver.cpp @@ -67,7 +67,7 @@ pgr_do_withPointsDD( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intSet; using pgrouting::utilities::get_combinations; @@ -99,8 +99,8 @@ pgr_do_withPointsDD( auto edges = get_edges(std::string(edges_sql), true, false); if (edges.size() + edges_of_points.size() == 0) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -114,8 +114,8 @@ pgr_do_withPointsDD( if (pg_graph.has_error()) { log << pg_graph.get_log(); err << pg_graph.get_error(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } @@ -148,7 +148,7 @@ pgr_do_withPointsDD( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -176,32 +176,28 @@ pgr_do_withPointsDD( std::stable_sort((*return_tuples), (*return_tuples) + count, [](const MST_rt &l, const MST_rt &r) {return l.from_v < r.from_v;}); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/ksp/ksp_driver.cpp b/src/ksp/ksp_driver.cpp index 96a8a5fd1d..0dc4d23c38 100644 --- a/src/ksp/ksp_driver.cpp +++ b/src/ksp/ksp_driver.cpp @@ -64,7 +64,7 @@ void pgr_do_ksp( char **err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; using pgrouting::yen::Pgr_ksp; @@ -92,8 +92,8 @@ void pgr_do_ksp( } if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -101,8 +101,8 @@ void pgr_do_ksp( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -126,7 +126,7 @@ void pgr_do_ksp( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -139,32 +139,28 @@ void pgr_do_ksp( } *return_count = count; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/ksp/turnRestrictedPath_driver.cpp b/src/ksp/turnRestrictedPath_driver.cpp index d79b49a9c5..a041c01f6a 100644 --- a/src/ksp/turnRestrictedPath_driver.cpp +++ b/src/ksp/turnRestrictedPath_driver.cpp @@ -99,7 +99,7 @@ pgr_do_turnRestrictedPath( char ** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::yen::Pgr_turnRestrictedPath; using pgrouting::trsp::Rule; @@ -123,8 +123,8 @@ pgr_do_turnRestrictedPath( auto edges = get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -205,33 +205,29 @@ pgr_do_turnRestrictedPath( pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); pgassert(!log.str().empty()); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/ksp/withPoints_ksp_driver.cpp b/src/ksp/withPoints_ksp_driver.cpp index dae3a9e856..ba64f2dbe0 100644 --- a/src/ksp/withPoints_ksp_driver.cpp +++ b/src/ksp/withPoints_ksp_driver.cpp @@ -70,7 +70,7 @@ pgr_do_withPointsKsp( char ** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::yen::Pgr_ksp; using pgrouting::utilities::get_combinations; @@ -99,8 +99,8 @@ pgr_do_withPointsKsp( } if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -116,8 +116,8 @@ pgr_do_withPointsKsp( auto edges = get_edges(std::string(edges_sql), true, false); if (edges.size() + edges_of_points.size() == 0) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -130,8 +130,8 @@ pgr_do_withPointsKsp( if (pg_graph.has_error()) { log << pg_graph.get_log(); err << pg_graph.get_error(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } @@ -163,7 +163,7 @@ pgr_do_withPointsKsp( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -180,37 +180,33 @@ pgr_do_withPointsKsp( if (count != sequence) { (*return_count) = 0; notice << "Something went wrong"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_count) = sequence; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/lineGraph/lineGraphFull_driver.cpp b/src/lineGraph/lineGraphFull_driver.cpp index ac19b177dc..19255dd534 100644 --- a/src/lineGraph/lineGraphFull_driver.cpp +++ b/src/lineGraph/lineGraphFull_driver.cpp @@ -75,7 +75,7 @@ pgr_do_lineGraphFull( char ** log_msg, char ** notice_msg, char ** err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -93,8 +93,8 @@ pgr_do_lineGraphFull( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -128,36 +128,32 @@ pgr_do_lineGraphFull( (*return_count) = sequence; } #if 1 - log << line.log.str().c_str() << "\n\n\n"; + log << line.log.str() << "\n\n\n"; log << line << "\n"; #endif pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/lineGraph/lineGraph_driver.cpp b/src/lineGraph/lineGraph_driver.cpp index 2f837e5282..71592c0c87 100644 --- a/src/lineGraph/lineGraph_driver.cpp +++ b/src/lineGraph/lineGraph_driver.cpp @@ -65,7 +65,7 @@ pgr_do_lineGraph( char ** log_msg, char ** notice_msg, char ** err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -84,8 +84,8 @@ pgr_do_lineGraph( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -106,7 +106,7 @@ pgr_do_lineGraph( if (count == 0) { (*return_tuples) = NULL; (*return_count) = 0; - *log_msg = pgr_msg(log.str().c_str()); + *log_msg = to_pg_msg(log); return; } @@ -122,28 +122,28 @@ pgr_do_lineGraph( (*return_count) = sequence; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? *log_msg : pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? *notice_msg : pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/max_flow/edge_disjoint_paths_driver.cpp b/src/max_flow/edge_disjoint_paths_driver.cpp index 35fadb4069..cf1b30af65 100644 --- a/src/max_flow/edge_disjoint_paths_driver.cpp +++ b/src/max_flow/edge_disjoint_paths_driver.cpp @@ -83,7 +83,7 @@ pgr_do_edge_disjoint_paths( char** notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -104,8 +104,8 @@ pgr_do_edge_disjoint_paths( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -114,8 +114,8 @@ pgr_do_edge_disjoint_paths( hint = nullptr; if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = pgr_msg(edges_sql); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = to_pg_msg(edges_sql); return; } @@ -184,32 +184,28 @@ pgr_do_edge_disjoint_paths( *return_count = paths.size(); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/max_flow/max_flow_driver.cpp b/src/max_flow/max_flow_driver.cpp index 7f7fd67cd6..b59db20d36 100644 --- a/src/max_flow/max_flow_driver.cpp +++ b/src/max_flow/max_flow_driver.cpp @@ -58,7 +58,7 @@ pgr_do_max_flow( char** notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -79,8 +79,8 @@ pgr_do_max_flow( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -95,7 +95,7 @@ pgr_do_max_flow( vertices.insert(targets.begin(), targets.end()); if (vertices.size() != (sources.size() + targets.size())) { - *err_msg = pgr_msg("A source found as sink"); + *err_msg = to_pg_msg("A source found as sink"); return; } @@ -104,7 +104,7 @@ pgr_do_max_flow( hint = nullptr; if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); + *notice_msg = to_pg_msg("No edges found"); *log_msg = edges_sql; return; } @@ -123,7 +123,7 @@ pgr_do_max_flow( max_flow = digraph.boykov_kolmogorov(); } else { log << "Unspecified algorithm!\n"; - *err_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(log); (*return_tuples) = NULL; (*return_count) = 0; return; @@ -145,32 +145,28 @@ pgr_do_max_flow( *return_count = flow_edges.size(); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/max_flow/maximum_cardinality_matching_driver.cpp b/src/max_flow/maximum_cardinality_matching_driver.cpp index fc1587e7dd..9693cce2ed 100644 --- a/src/max_flow/maximum_cardinality_matching_driver.cpp +++ b/src/max_flow/maximum_cardinality_matching_driver.cpp @@ -58,7 +58,7 @@ pgr_do_maximum_cardinality_matching( char** notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -71,8 +71,8 @@ pgr_do_maximum_cardinality_matching( auto edges = pgrouting::pgget::get_basic_edges(std::string(edges_sql)); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -86,32 +86,28 @@ pgr_do_maximum_cardinality_matching( } *return_count = matched_vertices.size(); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/max_flow/minCostMaxFlow_driver.cpp b/src/max_flow/minCostMaxFlow_driver.cpp index 512b39c227..0e5d505424 100644 --- a/src/max_flow/minCostMaxFlow_driver.cpp +++ b/src/max_flow/minCostMaxFlow_driver.cpp @@ -59,7 +59,7 @@ pgr_do_minCostMaxFlow( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -80,8 +80,8 @@ pgr_do_minCostMaxFlow( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -96,7 +96,7 @@ pgr_do_minCostMaxFlow( vertices.insert(targets.begin(), targets.end()); if (vertices.size() != (sources.size() + targets.size())) { - *err_msg = pgr_msg("A source found as sink"); + *err_msg = to_pg_msg("A source found as sink"); return; } @@ -104,8 +104,8 @@ pgr_do_minCostMaxFlow( auto edges = pgrouting::pgget::get_costFlow_edges(std::string(edges_sql)); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -140,32 +140,28 @@ pgr_do_minCostMaxFlow( *return_count = flow_edges.size(); pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/metrics/betweennessCentrality_driver.cpp b/src/metrics/betweennessCentrality_driver.cpp index e015b2280b..4b3791f062 100644 --- a/src/metrics/betweennessCentrality_driver.cpp +++ b/src/metrics/betweennessCentrality_driver.cpp @@ -48,7 +48,7 @@ pgr_do_betweennessCentrality( size_t *return_count, char ** log_msg, char ** err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -87,35 +87,33 @@ pgr_do_betweennessCentrality( if (*return_count == 0) { err << "No result generated, report this error\n"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); *return_tuples = NULL; *return_count = 0; return; } - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); + *log_msg = to_pg_msg(log); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/mincut/stoerWagner_driver.cpp b/src/mincut/stoerWagner_driver.cpp index 14200fddf8..2a923eb265 100644 --- a/src/mincut/stoerWagner_driver.cpp +++ b/src/mincut/stoerWagner_driver.cpp @@ -61,7 +61,7 @@ pgr_do_stoerWagner( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -79,8 +79,8 @@ pgr_do_stoerWagner( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -109,32 +109,28 @@ pgr_do_stoerWagner( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/ordering/cuthillMckeeOrdering_driver.cpp b/src/ordering/cuthillMckeeOrdering_driver.cpp index cc2315d7a1..0171a20c9c 100644 --- a/src/ordering/cuthillMckeeOrdering_driver.cpp +++ b/src/ordering/cuthillMckeeOrdering_driver.cpp @@ -79,7 +79,7 @@ void pgr_do_cuthillMckeeOrdering( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -97,8 +97,8 @@ void pgr_do_cuthillMckeeOrdering( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -114,7 +114,7 @@ void pgr_do_cuthillMckeeOrdering( (*return_tuples) = NULL; (*return_count) = 0; notice << "No results found"; - *log_msg = pgr_msg(log.str().c_str()); + *log_msg = to_pg_msg(log); } (*return_tuples) = pgr_alloc(count, (*return_tuples)); @@ -126,30 +126,30 @@ void pgr_do_cuthillMckeeOrdering( pgassert(*err_msg == NULL); *log_msg = log.str().empty() ? *log_msg : - pgr_msg(log.str().c_str()); + to_pg_msg(log); *notice_msg = notice.str().empty() ? *notice_msg : - pgr_msg(notice.str().c_str()); + to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/pickDeliver/pickDeliverEuclidean_driver.cpp b/src/pickDeliver/pickDeliverEuclidean_driver.cpp index f21e95d4f4..ccb66f8a7d 100644 --- a/src/pickDeliver/pickDeliverEuclidean_driver.cpp +++ b/src/pickDeliver/pickDeliverEuclidean_driver.cpp @@ -61,7 +61,7 @@ pgr_do_pickDeliverEuclidean( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -76,16 +76,16 @@ pgr_do_pickDeliverEuclidean( hint = customers_sql; auto orders = pgrouting::pgget::get_orders(std::string(customers_sql), false); if (orders.size() == 0) { - *notice_msg = pgr_msg("Insufficient data found on inner query"); - *log_msg = hint? pgr_msg(hint) : nullptr; + *notice_msg = to_pg_msg("Insufficient data found on inner query"); + *log_msg = hint? to_pg_msg(hint) : nullptr; return; } hint = vehicles_sql; auto vehicles = pgrouting::pgget::get_vehicles(std::string(vehicles_sql), false); if (vehicles.size() == 0) { - *notice_msg = pgr_msg("Insufficient data found on inner query"); - *log_msg = hint? pgr_msg(hint) : nullptr; + *notice_msg = to_pg_msg("Insufficient data found on inner query"); + *log_msg = hint? to_pg_msg(hint) : nullptr; return; } @@ -141,8 +141,8 @@ pgr_do_pickDeliverEuclidean( log.clear(); log << pd_problem.msg.get_error(); log << pd_problem.msg.get_log(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } log << pd_problem.msg.get_log(); @@ -179,40 +179,36 @@ pgr_do_pickDeliverEuclidean( log << pd_problem.msg.get_log(); pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - nullptr : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - nullptr : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { if (*return_tuples) free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (std::exception& except) { if (*return_tuples) free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (const std::pair& ex) { (*return_count) = 0; err << ex.first; log.str(""); log.clear(); log << ex.second; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { if (*return_tuples) free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/pickDeliver/pickDeliver_driver.cpp b/src/pickDeliver/pickDeliver_driver.cpp index 275f0ff056..00df3db3ed 100644 --- a/src/pickDeliver/pickDeliver_driver.cpp +++ b/src/pickDeliver/pickDeliver_driver.cpp @@ -66,7 +66,7 @@ pgr_do_pickDeliver( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -84,16 +84,16 @@ pgr_do_pickDeliver( hint = customers_sql; auto orders = pgrouting::pgget::get_orders(std::string(customers_sql), true); if (orders.size() == 0) { - *notice_msg = pgr_msg("Insufficient data found on inner query"); - *log_msg = hint? pgr_msg(hint) : nullptr; + *notice_msg = to_pg_msg("Insufficient data found on inner query"); + *log_msg = hint? to_pg_msg(hint) : nullptr; return; } hint = vehicles_sql; auto vehicles = pgrouting::pgget::get_vehicles(std::string(vehicles_sql), true); if (vehicles.size() == 0) { - *notice_msg = pgr_msg("Insufficient data found on inner query"); - *log_msg = hint? pgr_msg(hint) : nullptr; + *notice_msg = to_pg_msg("Insufficient data found on inner query"); + *log_msg = hint? to_pg_msg(hint) : nullptr; return; } @@ -101,8 +101,8 @@ pgr_do_pickDeliver( auto data_costs = pgrouting::pgget::get_matrixRows(std::string(matrix_sql)); if (data_costs.size() == 0) { - *notice_msg = pgr_msg("Insufficient data found on inner query"); - *log_msg = hint? pgr_msg(hint) : nullptr; + *notice_msg = to_pg_msg("Insufficient data found on inner query"); + *log_msg = hint? to_pg_msg(hint) : nullptr; return; } hint = nullptr; @@ -121,7 +121,7 @@ pgr_do_pickDeliver( for (const auto &v : vehicles) { if (v.start_node_id != depot_node && v.end_node_id != depot_node) { err << "All vehicles must depart & arrive to same node"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } } @@ -132,7 +132,7 @@ pgr_do_pickDeliver( for (const auto &o : orders) { if (o.pick_node_id != depot_node) { err << "All orders must be picked at depot"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } } @@ -140,7 +140,7 @@ pgr_do_pickDeliver( if (!cost_matrix.has_no_infinity()) { err << "An Infinity value was found on the Matrix"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } @@ -156,8 +156,8 @@ pgr_do_pickDeliver( err << pd_problem.msg.get_error(); if (!err.str().empty()) { log << pd_problem.msg.get_log(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } log << pd_problem.msg.get_log(); @@ -198,48 +198,44 @@ pgr_do_pickDeliver( (*return_count) = solution.size(); pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - nullptr : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - nullptr : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { if (*return_tuples) free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (std::exception& except) { if (*return_tuples) free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (const std::pair& ex) { (*return_count) = 0; err << ex.first; log.str(""); log.clear(); log << ex.second; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::pair& ex) { (*return_count) = 0; err << ex.first; log.str(""); log.clear(); log << "Node missing on matrix: id = " << ex.second; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { if (*return_tuples) free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/planar/boyerMyrvold_driver.cpp b/src/planar/boyerMyrvold_driver.cpp index dea82dfb12..1d9ccd334b 100644 --- a/src/planar/boyerMyrvold_driver.cpp +++ b/src/planar/boyerMyrvold_driver.cpp @@ -53,7 +53,7 @@ pgr_do_boyerMyrvold( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -97,7 +97,7 @@ pgr_do_boyerMyrvold( (*return_count) = 0; notice << "No Vertices"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -108,32 +108,28 @@ pgr_do_boyerMyrvold( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/planar/isPlanar_driver.cpp b/src/planar/isPlanar_driver.cpp index bc707f9859..4e37463a56 100644 --- a/src/planar/isPlanar_driver.cpp +++ b/src/planar/isPlanar_driver.cpp @@ -50,7 +50,7 @@ pgr_do_isPlanar( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_edges; @@ -79,28 +79,24 @@ pgr_do_isPlanar( result = fn_isPlanar.isPlanar(undigraph); pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); return result; } catch (AssertFailedException &except) { err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } return false; } diff --git a/src/spanningTree/kruskal_driver.cpp b/src/spanningTree/kruskal_driver.cpp index 91d9b2328a..8fc6181273 100644 --- a/src/spanningTree/kruskal_driver.cpp +++ b/src/spanningTree/kruskal_driver.cpp @@ -58,7 +58,7 @@ pgr_do_kruskal( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; @@ -92,8 +92,8 @@ pgr_do_kruskal( if (edges.empty()) { results = pgrouting::details::get_no_edge_graph_result(roots); - *notice_msg = pgr_msg("No edges found"); - *log_msg = pgr_msg(edges_sql); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = to_pg_msg(edges_sql); } else { if (suffix == "") { results = kruskal.kruskal(undigraph); @@ -105,7 +105,7 @@ pgr_do_kruskal( results = kruskal.kruskalDD(undigraph, roots, distance); } else { err << "Unknown Kruskal function"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } } @@ -119,32 +119,28 @@ pgr_do_kruskal( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/spanningTree/mst_common.cpp b/src/spanningTree/mst_common.cpp index 1f2a4f6818..c9fbaacb80 100644 --- a/src/spanningTree/mst_common.cpp +++ b/src/spanningTree/mst_common.cpp @@ -35,7 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. int get_order(char * fn_suffix, char ** err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; std::ostringstream err; try { pgassert(!(*err_msg)); @@ -45,10 +45,10 @@ get_order(char * fn_suffix, char ** err_msg) { if (suffix == "BFS") return 2; if (suffix == "DD") return 1; err << "Unknown function suffix" << suffix; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); } catch (std::exception &except) { err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); } return -1; } @@ -56,7 +56,7 @@ get_order(char * fn_suffix, char ** err_msg) { char * get_name(int fn_id, char * fn_suffix, char ** err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; std::ostringstream err; try { pgassert(!(*err_msg)); @@ -68,15 +68,15 @@ get_name(int fn_id, char * fn_suffix, char ** err_msg) { break; default : name = "unknown"; err << "Unknown function name"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); } std::string suffix(fn_suffix); name += suffix; - char * full_name = pgr_msg(name.c_str()); + char * full_name = to_pg_msg(name.c_str()); return full_name; } catch (std::exception &except) { err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); } return nullptr; } diff --git a/src/spanningTree/prim_driver.cpp b/src/spanningTree/prim_driver.cpp index de2f06b5ff..b194b2ac33 100644 --- a/src/spanningTree/prim_driver.cpp +++ b/src/spanningTree/prim_driver.cpp @@ -60,7 +60,7 @@ pgr_do_prim( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; @@ -94,8 +94,8 @@ pgr_do_prim( if (edges.empty()) { results = pgrouting::details::get_no_edge_graph_result(roots); - *notice_msg = pgr_msg("No edges found"); - *log_msg = pgr_msg(edges_sql); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = to_pg_msg(edges_sql); } else { if (suffix == "") { results = prim.prim(undigraph); @@ -107,7 +107,7 @@ pgr_do_prim( results = prim.primDD(undigraph, roots, distance); } else { err << "Unknown Prim function"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } } @@ -121,32 +121,28 @@ pgr_do_prim( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/spanningTree/randomSpanningTree_driver.cpp b/src/spanningTree/randomSpanningTree_driver.cpp index 9c5fca8549..c56c59fe90 100644 --- a/src/spanningTree/randomSpanningTree_driver.cpp +++ b/src/spanningTree/randomSpanningTree_driver.cpp @@ -61,7 +61,7 @@ pgr_do_randomSpanningTree( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -81,8 +81,8 @@ pgr_do_randomSpanningTree( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -123,32 +123,28 @@ pgr_do_randomSpanningTree( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/topologicalSort/topologicalSort_driver.cpp b/src/topologicalSort/topologicalSort_driver.cpp index 8e98f706af..339587822f 100644 --- a/src/topologicalSort/topologicalSort_driver.cpp +++ b/src/topologicalSort/topologicalSort_driver.cpp @@ -66,7 +66,7 @@ pgr_do_topologicalSort( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -84,8 +84,8 @@ pgr_do_topologicalSort( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -113,32 +113,28 @@ pgr_do_topologicalSort( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/transitiveClosure/transitiveClosure_driver.cpp b/src/transitiveClosure/transitiveClosure_driver.cpp index d2e0dd9278..e4f3d34449 100644 --- a/src/transitiveClosure/transitiveClosure_driver.cpp +++ b/src/transitiveClosure/transitiveClosure_driver.cpp @@ -102,7 +102,7 @@ pgr_do_transitiveClosure( char **log_msg, char **notice_msg, char **err_msg) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -120,8 +120,8 @@ pgr_do_transitiveClosure( hint = edges_sql; auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -134,32 +134,28 @@ pgr_do_transitiveClosure( return_tuples, return_count); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/traversal/depthFirstSearch_driver.cpp b/src/traversal/depthFirstSearch_driver.cpp index 7f23c2c17f..2e41e78c6c 100644 --- a/src/traversal/depthFirstSearch_driver.cpp +++ b/src/traversal/depthFirstSearch_driver.cpp @@ -94,7 +94,7 @@ pgr_do_depthFirstSearch( char ** notice_msg, char ** err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; @@ -119,8 +119,8 @@ pgr_do_depthFirstSearch( if (edges.empty()) { results = pgrouting::details::get_no_edge_graph_result(roots); - *notice_msg = pgr_msg("No edges found"); - *log_msg = pgr_msg(edges_sql); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = to_pg_msg(edges_sql); } else { if (directed) { pgrouting::DirectedGraph digraph; @@ -149,7 +149,7 @@ pgr_do_depthFirstSearch( (*return_tuples) = NULL; (*return_count) = 0; notice << "No traversal found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -160,32 +160,28 @@ pgr_do_depthFirstSearch( (*return_count) = count; pgassert(*err_msg == NULL); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/trsp/trspVia_driver.cpp b/src/trsp/trspVia_driver.cpp index a80124bbfd..1ac8825a02 100644 --- a/src/trsp/trspVia_driver.cpp +++ b/src/trsp/trspVia_driver.cpp @@ -148,7 +148,7 @@ pgr_do_trspVia( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; @@ -171,8 +171,8 @@ pgr_do_trspVia( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = pgr_msg(edges_sql); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = to_pg_msg(edges_sql); return; } hint = nullptr; @@ -207,7 +207,7 @@ pgr_do_trspVia( if (count == 0) { notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -257,32 +257,28 @@ pgr_do_trspVia( (*return_count) = (get_route(return_tuples, paths)); (*return_tuples)[count - 1].edge = -2; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/trsp/trspVia_withPoints_driver.cpp b/src/trsp/trspVia_withPoints_driver.cpp index a0bdabd075..2068fa9dfa 100644 --- a/src/trsp/trspVia_withPoints_driver.cpp +++ b/src/trsp/trspVia_withPoints_driver.cpp @@ -151,7 +151,7 @@ pgr_do_trspVia_withPoints( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; @@ -179,8 +179,8 @@ pgr_do_trspVia_withPoints( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.size() + edges_of_points.size() == 0) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } @@ -199,8 +199,8 @@ pgr_do_trspVia_withPoints( if (pg_graph.has_error()) { log << pg_graph.get_log(); err << pg_graph.get_error(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } @@ -240,7 +240,7 @@ pgr_do_trspVia_withPoints( if (count == 0) { notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -287,32 +287,28 @@ pgr_do_trspVia_withPoints( (*return_count) = (get_route(return_tuples, paths)); (*return_tuples)[count - 1].edge = -2; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/trsp/trsp_driver.cpp b/src/trsp/trsp_driver.cpp index 56a1bf8c8e..0ab7c8a108 100644 --- a/src/trsp/trsp_driver.cpp +++ b/src/trsp/trsp_driver.cpp @@ -111,7 +111,7 @@ pgr_do_trsp( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -132,8 +132,8 @@ pgr_do_trsp( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -142,8 +142,8 @@ pgr_do_trsp( hint = nullptr; if (edges.empty()) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = pgr_msg(edges_sql); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = to_pg_msg(edges_sql); return; } @@ -172,7 +172,7 @@ pgr_do_trsp( if (count == 0) { notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -222,32 +222,28 @@ pgr_do_trsp( (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = collapse_paths(return_tuples, paths); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/trsp/trsp_withPoints_driver.cpp b/src/trsp/trsp_withPoints_driver.cpp index ba5b7a63ff..310a943414 100644 --- a/src/trsp/trsp_withPoints_driver.cpp +++ b/src/trsp/trsp_withPoints_driver.cpp @@ -96,7 +96,7 @@ pgr_do_trsp_withPoints( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -117,8 +117,8 @@ pgr_do_trsp_withPoints( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -132,8 +132,8 @@ pgr_do_trsp_withPoints( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.size() + edges_of_points.size() == 0) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } @@ -155,8 +155,8 @@ pgr_do_trsp_withPoints( if (pg_graph.has_error()) { log << pg_graph.get_log(); err << pg_graph.get_error(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } @@ -194,7 +194,7 @@ pgr_do_trsp_withPoints( if (count == 0) { notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -255,32 +255,28 @@ pgr_do_trsp_withPoints( (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = collapse_paths(return_tuples, paths); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/tsp/TSP_driver.cpp b/src/tsp/TSP_driver.cpp index 8c5c19d70a..128cf1de65 100644 --- a/src/tsp/TSP_driver.cpp +++ b/src/tsp/TSP_driver.cpp @@ -58,7 +58,7 @@ pgr_do_tsp( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -71,8 +71,8 @@ pgr_do_tsp( auto distances = pgrouting::pgget::get_matrixRows(std::string(matrix_sql)); if (distances.size() == 0) { - *notice_msg = pgr_msg("Insufficient data found on inner query"); - *log_msg = hint? pgr_msg(hint) : nullptr; + *notice_msg = to_pg_msg("Insufficient data found on inner query"); + *log_msg = hint? to_pg_msg(hint) : nullptr; return; } hint = nullptr; @@ -81,13 +81,13 @@ pgr_do_tsp( if (start_vid != 0 && !fn_tsp.has_vertex(start_vid)) { err << "Parameter 'start_id' do not exist on the data"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } if (end_vid != 0 && !fn_tsp.has_vertex(end_vid)) { err << "Parameter 'end_id' do not exist on the data"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } @@ -107,36 +107,32 @@ pgr_do_tsp( } } - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::pair& ex) { (*return_count) = 0; - *err_msg = pgr_msg(ex.first.c_str()); - *log_msg = pgr_msg(ex.second.c_str()); + *err_msg = to_pg_msg(ex.first.c_str()); + *log_msg = to_pg_msg(ex.second.c_str()); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/tsp/euclideanTSP_driver.cpp b/src/tsp/euclideanTSP_driver.cpp index 5d03b48257..48cbe6fc00 100644 --- a/src/tsp/euclideanTSP_driver.cpp +++ b/src/tsp/euclideanTSP_driver.cpp @@ -55,7 +55,7 @@ pgr_do_euclideanTSP( char **notice_msg, char **err_msg) { using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; std::ostringstream log; @@ -68,8 +68,8 @@ pgr_do_euclideanTSP( auto coordinates = pgrouting::pgget::get_coordinates(std::string(coordinates_sql)); if (coordinates.size() == 0) { - *notice_msg = pgr_msg("No coordinates found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No coordinates found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -78,13 +78,13 @@ pgr_do_euclideanTSP( if (start_vid != 0 && !fn_tsp.has_vertex(start_vid)) { err << "Parameter 'start_id' do not exist on the data"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } if (end_vid != 0 && !fn_tsp.has_vertex(end_vid)) { err << "Parameter 'end_id' do not exist on the data"; - *err_msg = pgr_msg(err.str().c_str()); + *err_msg = to_pg_msg(err); return; } @@ -104,36 +104,32 @@ pgr_do_euclideanTSP( } } - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::pair& ex) { (*return_count) = 0; - *err_msg = pgr_msg(ex.first.c_str()); - *log_msg = pgr_msg(ex.second.c_str()); + *err_msg = to_pg_msg(ex.first.c_str()); + *log_msg = to_pg_msg(ex.second.c_str()); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/withPoints/get_new_queries.cpp b/src/withPoints/get_new_queries.cpp index 0aa4b4cd71..2d80291946 100644 --- a/src/withPoints/get_new_queries.cpp +++ b/src/withPoints/get_new_queries.cpp @@ -47,7 +47,7 @@ get_new_queries( char *points_sql, char **edges_of_points_query, char **edges_no_points_query) { - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; std::ostringstream edges_of_points_sql; std::ostringstream edges_no_points_sql; @@ -55,7 +55,7 @@ get_new_queries( << " edges AS (" << edges_sql << "), " << " points AS (" << points_sql << ")" << " SELECT DISTINCT edges.* FROM edges JOIN points ON (id = edge_id)"; - *edges_of_points_query = pgr_msg(edges_of_points_sql.str().c_str()); + *edges_of_points_query = to_pg_msg(edges_of_points_sql.str()); edges_no_points_sql << "WITH " << " edges AS (" << edges_sql << "), " @@ -63,6 +63,6 @@ get_new_queries( << " SELECT edges.*" << " FROM edges" << " WHERE NOT EXISTS (SELECT edge_id FROM points WHERE id = edge_id)"; - *edges_no_points_query = pgr_msg(edges_no_points_sql.str().c_str()); + *edges_no_points_query = to_pg_msg(edges_no_points_sql.str()); } diff --git a/src/withPoints/withPointsVia_driver.cpp b/src/withPoints/withPointsVia_driver.cpp index 9551c5a9bd..515abe4196 100644 --- a/src/withPoints/withPointsVia_driver.cpp +++ b/src/withPoints/withPointsVia_driver.cpp @@ -111,7 +111,7 @@ pgr_do_withPointsVia( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::pgget::get_intArray; @@ -141,8 +141,8 @@ pgr_do_withPointsVia( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), true, false); if (edges.size() + edges_of_points.size() == 0) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -159,8 +159,8 @@ pgr_do_withPointsVia( if (pg_graph.has_error()) { log << pg_graph.get_log(); err << pg_graph.get_error(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } @@ -203,7 +203,7 @@ pgr_do_withPointsVia( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } @@ -211,32 +211,28 @@ pgr_do_withPointsVia( (*return_count) = (get_route(return_tuples, paths)); (*return_tuples)[count - 1].edge = -2; - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } diff --git a/src/withPoints/withPoints_driver.cpp b/src/withPoints/withPoints_driver.cpp index 914a258474..fa3530bce1 100644 --- a/src/withPoints/withPoints_driver.cpp +++ b/src/withPoints/withPoints_driver.cpp @@ -98,7 +98,7 @@ pgr_do_withPoints( char** err_msg) { using pgrouting::Path; using pgrouting::pgr_alloc; - using pgrouting::pgr_msg; + using pgrouting::to_pg_msg; using pgrouting::pgr_free; using pgrouting::utilities::get_combinations; @@ -121,8 +121,8 @@ pgr_do_withPoints( hint = nullptr; if (combinations.empty() && combinations_sql) { - *notice_msg = pgr_msg("No (source, target) pairs found"); - *log_msg = pgr_msg(combinations_sql); + *notice_msg = to_pg_msg("No (source, target) pairs found"); + *log_msg = to_pg_msg(combinations_sql); return; } @@ -137,8 +137,8 @@ pgr_do_withPoints( auto edges = pgrouting::pgget::get_edges(std::string(edges_sql), normal, false); if (edges.size() + edges_of_points.size() == 0) { - *notice_msg = pgr_msg("No edges found"); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *notice_msg = to_pg_msg("No edges found"); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); return; } hint = nullptr; @@ -154,8 +154,8 @@ pgr_do_withPoints( if (pg_graph.has_error()) { log << pg_graph.get_log(); err << pg_graph.get_error(); - *log_msg = pgr_msg(log.str().c_str()); - *err_msg = pgr_msg(err.str().c_str()); + *log_msg = to_pg_msg(log); + *err_msg = to_pg_msg(err); return; } @@ -205,39 +205,35 @@ pgr_do_withPoints( (*return_tuples) = NULL; (*return_count) = 0; notice << "No paths found"; - *log_msg = pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(notice); return; } (*return_tuples) = pgr_alloc(count, (*return_tuples)); (*return_count) = (collapse_paths(return_tuples, paths)); - *log_msg = log.str().empty()? - *log_msg : - pgr_msg(log.str().c_str()); - *notice_msg = notice.str().empty()? - *notice_msg : - pgr_msg(notice.str().c_str()); + *log_msg = to_pg_msg(log); + *notice_msg = to_pg_msg(notice); } catch (AssertFailedException &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch (const std::string &ex) { - *err_msg = pgr_msg(ex.c_str()); - *log_msg = hint? pgr_msg(hint) : pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(ex); + *log_msg = hint? to_pg_msg(hint) : to_pg_msg(log); } catch (std::exception &except) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << except.what(); - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } catch(...) { (*return_tuples) = pgr_free(*return_tuples); (*return_count) = 0; err << "Caught unknown exception!"; - *err_msg = pgr_msg(err.str().c_str()); - *log_msg = pgr_msg(log.str().c_str()); + *err_msg = to_pg_msg(err); + *log_msg = to_pg_msg(log); } } From f2053eec844f4e804609894bb178cc03c5b71512 Mon Sep 17 00:00:00 2001 From: "wifi:)" Date: Thu, 23 Jan 2025 11:27:09 +0800 Subject: [PATCH 076/141] Added wifiBlack to contributors in pgRouting-introduction.rst --- doc/src/pgRouting-introduction.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst index fec62a3fac..3c59954406 100644 --- a/doc/src/pgRouting-introduction.rst +++ b/doc/src/pgRouting-introduction.rst @@ -70,7 +70,7 @@ Individuals in this release v3.7.x (in alphabetical order) Regina Obe, Vicky Vergara -FAN WU + @@ -152,6 +152,7 @@ Veenit Kumar, Vidhan Jain, Virginia Vergara, Yige Huang +FAN WU Corporate Sponsors (in alphabetical order) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From d02970ca2be0cb73d38df7d9a4a4097279fc2b3b Mon Sep 17 00:00:00 2001 From: Wifi <123433008+wifiBlack@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:35:47 +0800 Subject: [PATCH 077/141] Update doc/src/pgRouting-introduction.rst Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- doc/src/pgRouting-introduction.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst index 3c59954406..0f5439fbd5 100644 --- a/doc/src/pgRouting-introduction.rst +++ b/doc/src/pgRouting-introduction.rst @@ -152,7 +152,13 @@ Veenit Kumar, Vidhan Jain, Virginia Vergara, Yige Huang -FAN WU +Esteban Zimanyi, +FAN WU, +Florian Thurkow, +Frederic Junod, +Gerald Fenoy, +Gudesa Venkata Sai Akhil, +Hang Wu Corporate Sponsors (in alphabetical order) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From acd98947a52352981db2bc890e9f6ac925eaa83a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauren=C8=9Biu=20Nicola?= Date: Thu, 23 Jan 2025 16:59:38 +0200 Subject: [PATCH 078/141] Make sure `CMP0148` exists Might help building on pre-3.27 CMake like in Debian 12. --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4963f56ae9..f199796f4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,9 @@ if(POLICY CMP0167) cmake_policy(SET CMP0167 OLD) endif() -cmake_policy(SET CMP0148 OLD) +if(POLICY CMP0148) + cmake_policy(SET CMP0148 OLD) +endif() #--------------------------------------------- # Setting kind of build From 90ddfc7b457b386ecf78ed1c50faf9b91258c91b Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 26 Jan 2025 22:53:00 -0600 Subject: [PATCH 079/141] Pumpup to 3.7.3 and documenting fix --- .github/workflows/boost_version.yml | 2 +- .github/workflows/update.yml | 4 ++-- CMakeLists.txt | 3 ++- NEWS.md | 6 ++++++ doc/src/release_notes.rst | 7 +++++++ docqueries/version/full_version.result | 2 +- docqueries/version/version.result | 2 +- tools/testers/pg_prove_tests.sh | 2 +- 8 files changed, 21 insertions(+), 7 deletions(-) diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 12446cd674..03b703eb73 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -131,5 +131,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.7.2" + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.7.3" pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap" diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 3999985ddf..8784c017c5 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -29,7 +29,7 @@ jobs: fail-fast: false matrix: boost_minor: [56] - old_pgr: [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.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@v4 @@ -126,6 +126,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.7.2';" + psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.7.3';" 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/CMakeLists.txt b/CMakeLists.txt index f199796f4b..9fd92c90b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ include(pgr/BuildType) #--------------------------------------------- #--------------------------------------------- -project(PGROUTING VERSION 3.7.2 +project(PGROUTING VERSION 3.7.3 LANGUAGES C CXX ) set(PROJECT_VERSION_DEV "") string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER) @@ -45,6 +45,7 @@ string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC) set(MINORS 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6) set(OLD_SIGNATURES + 3.7.2 3.7.1 3.7.0 3.6.3 diff --git a/NEWS.md b/NEWS.md index f4bb47a7a5..2dd32ff866 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,7 +6,13 @@ .. current +### 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 diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 0e00e9b526..fd452677e8 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -36,7 +36,14 @@ pgRouting 3.7 .. current +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 +`__ +* `#2731 `__ Build Failure on Ubuntu 22 pgRouting 3.7.2 Release Notes ------------------------------------------------------------------------------- diff --git a/docqueries/version/full_version.result b/docqueries/version/full_version.result index 0b919edee1..c13195ad42 100644 --- a/docqueries/version/full_version.result +++ b/docqueries/version/full_version.result @@ -6,7 +6,7 @@ SET SELECT version, library FROM pgr_full_version(); version | library ---------+----------------- - 3.7.2 | pgrouting-3.7.2 + 3.7.3 | pgrouting-3.7.3 (1 row) /* -- q2 */ diff --git a/docqueries/version/version.result b/docqueries/version/version.result index 6a11e62607..7ee2961238 100644 --- a/docqueries/version/version.result +++ b/docqueries/version/version.result @@ -6,7 +6,7 @@ SET SELECT pgr_version(); pgr_version ------------- - 3.7.2 + 3.7.3 (1 row) /* -- q2 */ diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh index 841ec5c557..7132a5a181 100755 --- a/tools/testers/pg_prove_tests.sh +++ b/tools/testers/pg_prove_tests.sh @@ -37,7 +37,7 @@ echo "$PGPORT" pushd ./tools/testers/ || exit 1 -bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.7.2" +bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.7.3" PGOPTIONS="-c client_min_messages=WARNING" pg_prove --failures --Q --recurse \ -S on_error_rollback=off \ From 2fb54e474a1a4710335c76baa25566a9856ecddb Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 12 Feb 2025 11:19:32 -0600 Subject: [PATCH 080/141] Adjusting pumpup to set minor version in locale files --- doc/conf.py.in | 4 ++-- tools/developer/pumpup_version.sh | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/conf.py.in b/doc/conf.py.in index afd1b30d95..3b5ae03cd7 100644 --- a/doc/conf.py.in +++ b/doc/conf.py.in @@ -73,14 +73,14 @@ master_doc = 'index' # General information about the project. project = u'pgRouting' -copyright = u'pgRouting Contributors - Version @PROJECT_FULL_VERSION@' +copyright = u'pgRouting Contributors - Version v@PROJECT_LIB_VERSION@' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '@PROJECT_FULL_VERSION@' +version = 'v@PROJECT_LIB_VERSION@' # The full version, including alpha/beta/rc tags. release = '@PROJECT_FULL_VERSION@' diff --git a/tools/developer/pumpup_version.sh b/tools/developer/pumpup_version.sh index 92bb3abd2c..d6dacf8976 100755 --- a/tools/developer/pumpup_version.sh +++ b/tools/developer/pumpup_version.sh @@ -151,8 +151,8 @@ fi # ------ # Documentation related # ------ -perl -pi -e 's/# Copyright(.*) v(.*)$/# Copyright$1 v'"${NEW_VERSION}${NEW_KIND}"'/' locale/pot/*.pot -perl -pi -e 's/# Copyright(.*) v(.*)$/# Copyright$1 v'"${NEW_VERSION}${NEW_KIND}"'/' locale/*/*/*.po -perl -pi -e 's/('"${MAYOR}.${MINOR}"')/'"${NEW_MAYOR}.${NEW_MINOR}\', \'${MAYOR}.${MINOR}"'/g' doc/_static/page_history.js bash tools/transifex/update_locale.sh +perl -pi -e 's/# Copyright(.*) v(.*)$/# Copyright$1 v'"${NEW_MAYOR}.${NEW_MINOR}"'/' locale/pot/*.pot locale/*/*/*.po +perl -pi -e 's/Id-Version: pgRouting v'"${MAYOR}.${MINOR}"'/Id-Version: pgRouting v'"${NEW_MAYOR}.${NEW_MINOR}"'/' locale/*/*/*.po locale/pot/*.pot +perl -pi -e "s/versionsArr = \[/versionsArr = \['${NEW_MAYOR}.${NEW_MINOR}',/" doc/_static/page_history.js From acb9bd1b63a9f6b4c368ab012b9636c81e4731f6 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 23 Feb 2025 09:30:37 -0600 Subject: [PATCH 081/141] Pump up to 3.8.0 --- .github/workflows/boost_version.yml | 2 +- .github/workflows/update.yml | 4 +- CMakeLists.txt | 5 +- NEWS.md | 8 +- doc/_static/page_history.js | 2 +- doc/src/index.rst | 2 +- doc/src/release_notes.rst | 10 +- docqueries/version/full_version.result | 2 +- docqueries/version/version.result | 2 +- locale/de/LC_MESSAGES/index.po | 4 +- .../de/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/en/LC_MESSAGES/index.po | 4 +- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 964 ++++++++---------- locale/es/LC_MESSAGES/index.po | 4 +- .../es/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/ja/LC_MESSAGES/index.po | 4 +- .../ja/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/ko/LC_MESSAGES/index.po | 4 +- .../ko/LC_MESSAGES/pgrouting_doc_strings.po | 4 +- locale/pot/index.pot | 4 +- locale/pot/pgrouting_doc_strings.pot | 865 +++++++--------- locale/zh_Hans/LC_MESSAGES/index.po | 4 +- .../LC_MESSAGES/pgrouting_doc_strings.po | 4 +- sql/scripts/build-extension-update-files.pl | 3 +- sql/sigs/pgrouting--3.8.sig | 344 +++++++ tools/testers/pg_prove_tests.sh | 2 +- 26 files changed, 1161 insertions(+), 1102 deletions(-) create mode 100644 sql/sigs/pgrouting--3.8.sig diff --git a/.github/workflows/boost_version.yml b/.github/workflows/boost_version.yml index 03b703eb73..9ce684a522 100644 --- a/.github/workflows/boost_version.yml +++ b/.github/workflows/boost_version.yml @@ -131,5 +131,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.7.3" + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.8.0" pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap" diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 8784c017c5..3f6c97fd1f 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -29,7 +29,7 @@ jobs: fail-fast: false matrix: boost_minor: [56] - old_pgr: [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.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@v4 @@ -126,6 +126,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.7.3';" + psql -p "${PGPORT}" -d ___pgr___test___ -c "ALTER EXTENSION pgrouting UPDATE TO '3.8.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/CMakeLists.txt b/CMakeLists.txt index 9fd92c90b5..58a4e0c0f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ include(pgr/BuildType) #--------------------------------------------- #--------------------------------------------- -project(PGROUTING VERSION 3.7.3 +project(PGROUTING VERSION 3.8.0 LANGUAGES C CXX ) set(PROJECT_VERSION_DEV "") string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER) @@ -43,8 +43,9 @@ set(PROJECT_LIB_NAME "${PROJECT_NAME_LOWER}-${PROJECT_LIB_VERSION}") string(TIMESTAMP COMPILATION_DATE "%Y/%m/%d" UTC) -set(MINORS 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.6) +set(MINORS 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 diff --git a/NEWS.md b/NEWS.md index 2dd32ff866..110b020c35 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,11 +1,17 @@ # pgRouting 3 -## pgRouting 3.7 +## pgRouting 3.8 .. current +### pgRouting 3.8.0 Release Notes + +No Changes Yet + +## pgRouting 3.7 + ### pgRouting 3.7.3 Release Notes To see all issues & pull requests closed by this release see the [Git closed diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js index c29bbf5d25..81f8a89c04 100644 --- a/doc/_static/page_history.js +++ b/doc/_static/page_history.js @@ -4,7 +4,7 @@ function createInfo(file, newat, altnames = '') { this.altnames = altnames; } -var versionsArr = ['3.7', '3.6', '3.5', '3.4', '3.3', '3.2', '3.1', '3.0']; +var 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']; var titles = [ {k: 'en', v: ['Supported versions', 'Unsupported versions']}, diff --git a/doc/src/index.rst b/doc/src/index.rst index 32579ef430..9d6b6b9648 100644 --- a/doc/src/index.rst +++ b/doc/src/index.rst @@ -94,7 +94,7 @@ Current release .. include:: release_notes.rst :start-after: current - :end-before: pgRouting 3.6 + :end-before: pgRouting 3.7 All releases ------------------------------------------------------------------------------- diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index fd452677e8..f1b4c125bb 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -27,7 +27,7 @@ pgRouting 3 :local: :depth: 1 -pgRouting 3.7 +pgRouting 3.8 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. contents:: Contents @@ -36,6 +36,14 @@ pgRouting 3.7 .. current +pgRouting 3.8.0 Release Notes +------------------------------------------------------------------------------- + +No Changes Yet + +pgRouting 3.7 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + pgRouting 3.7.3 Release Notes ------------------------------------------------------------------------------- diff --git a/docqueries/version/full_version.result b/docqueries/version/full_version.result index c13195ad42..ba1ce30f16 100644 --- a/docqueries/version/full_version.result +++ b/docqueries/version/full_version.result @@ -6,7 +6,7 @@ SET SELECT version, library FROM pgr_full_version(); version | library ---------+----------------- - 3.7.3 | pgrouting-3.7.3 + 3.8.0 | pgrouting-3.8.0 (1 row) /* -- q2 */ diff --git a/docqueries/version/version.result b/docqueries/version/version.result index 7ee2961238..088d0c3eb2 100644 --- a/docqueries/version/version.result +++ b/docqueries/version/version.result @@ -6,7 +6,7 @@ SET SELECT pgr_version(); pgr_version ------------- - 3.7.3 + 3.8.0 (1 row) /* -- q2 */ diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po index 1535e61abb..1536bd3127 100644 --- a/locale/de/LC_MESSAGES/index.po +++ b/locale/de/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po index ccfebb1940..167f0c0d45 100644 --- a/locale/de/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/de/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,10 +1,10 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po index f160fd6b73..f1a267e61d 100644 --- a/locale/en/LC_MESSAGES/index.po +++ b/locale/en/LC_MESSAGES/index.po @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index ecd3c5b6b4..7717d98642 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,14 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-06 09:19-0600\n" +"POT-Creation-Date: 2025-02-23 10:17-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -282,6 +282,9 @@ msgstr "" msgid ":ref:`search`" msgstr "" +msgid "Boost Graph inside" +msgstr "" + msgid "DFS - Category" msgstr "" @@ -655,7 +658,7 @@ msgid "References" msgstr "" msgid "" -"`Boost's metric appro's metric approximation " +"`Boost: metric TSP approx " "`__" msgstr "" @@ -1615,7 +1618,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Vehicle_routing_problem" msgstr "" -msgid "The queries use the :doc:`sampledata` network." +msgid ":doc:`sampledata`" msgstr "" msgid "A* - Family of functions" @@ -1777,7 +1780,9 @@ msgstr "" msgid ":doc:`bdAstar-family`" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/astar_search.html" +msgid "" +"`Boost: A* search " +"`__" msgstr "" msgid "https://en.wikipedia.org/wiki/A*_search_algorithm" @@ -2587,6 +2592,9 @@ msgstr "" msgid ":doc:`aStar-family`" msgstr "" +msgid "`Boost `__" +msgstr "" + msgid "Bidirectional Dijkstra - Family of functions" msgstr "" @@ -2729,29 +2737,7 @@ msgstr "" msgid "Identifier of the color of the edge." msgstr "" -msgid "" -"`Boost: Sequential Vertex Coloring algorithm documentation " -"`__" -msgstr "" - -msgid "" -"`Wikipedia: Graph coloring " -"`__" -msgstr "" - -msgid "" -"`Boost: is_bipartite " -"`__" -msgstr "" - -msgid "" -"`Wikipedia: bipartite graph " -"`__" -msgstr "" - -msgid "" -"`Boost: Edge Coloring Algorithm documentation " -"`__" +msgid "`Boost: `__" msgstr "" msgid "Components - Family of functions" @@ -3301,9 +3287,6 @@ msgstr "" msgid "Now, the routing graph has an edge connecting with node :math:`7`." msgstr "" -msgid ":doc:`sampledata`" -msgstr "" - msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" @@ -4394,25 +4377,74 @@ msgstr "" msgid "Current release" msgstr "" -msgid "pgRouting 3.7.2 Release Notes" +msgid "pgRouting 3.8.0 Release Notes" msgstr "" msgid "No Changes Yet" msgstr "" -msgid "pgRouting 3.7.1 Release Notes" +msgid "pgRouting 3.7.3 Release Notes" msgstr "" #, python-format msgid "" "To see all issues & pull requests closed by this release see the `Git " -"closed milestone for 3.7.1 " -"`__" +"closed milestone for 3.7.3 " +"`__" +msgstr "" + +msgid "" +"`#2731 `__ Build " +"Failure on Ubuntu 22" +msgstr "" + +msgid "pgRouting 3.7.2 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.2 " +"`__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "" +"`#2713 `__ cmake " +"missing some policies and min version" +msgstr "" + +msgid "Using OLD policies: CMP0148, CMP0144, CMP0167" +msgstr "" + +msgid "Minimum cmake version 3.12" msgstr "" msgid "Bug fixes" msgstr "" +msgid "" +"`#2707 `__ Build " +"failure in pgRouting 3.7.1 on Alpine" +msgstr "" + +msgid "" +"`#2706 `__ winnie " +"crashing on pgr_betweennessCentrality" +msgstr "" + +msgid "pgRouting 3.7.1 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.1 " +"`__" +msgstr "" + msgid "" "`#2680 `__ fails to " "compile under mingw64 gcc 13.2" @@ -4509,7 +4541,7 @@ msgstr "" msgid "``pgr_lineGraph``" msgstr "" -msgid "Promoted to **proposed** signature." +msgid "Function promoted to proposed." msgstr "" msgid "Works for directed and undirected graphs." @@ -4539,9 +4571,6 @@ msgstr "" msgid "Kruskal - Family of functions" msgstr "" -msgid "Boost Graph Inside" -msgstr "" - msgid "" "Kruskal's algorithm is a greedy minimum spanning tree algorithm that in " "each cycle finds and adds the edge of the least possible weight that " @@ -4580,7 +4609,7 @@ msgstr "" msgid "Migrating functions" msgstr "" -msgid "Migration of ``pgr_aStar``" +msgid "Migration of pgr_aStar``" msgstr "" msgid "" @@ -4591,13 +4620,13 @@ msgstr "" msgid "Signatures to be migrated:" msgstr "" -msgid "``pgr_aStar`` (`One to One`)" +msgid "pgr_aStar(One to One)" msgstr "" -msgid "``pgr_aStar`` (`One to Many`)" +msgid "pgr_aStar(One to Many)" msgstr "" -msgid "``pgr_aStar`` (`Many to One`)" +msgid "pgr_aStar(Many to One)" msgstr "" msgid "Before Migration" @@ -4611,13 +4640,13 @@ msgid "" " might be missing:" msgstr "" -msgid "``pgr_aStar`` (`One to One`) does not have ``start_vid`` and ``end_vid``." +msgid "pgr_aStar(One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "``pgr_aStar`` (`One to Many`) does not have ``start_vid``." +msgid "pgr_aStar(One to Many) does not have ``start_vid``." msgstr "" -msgid "``pgr_aStar`` (`Many to One`) does not have ``end_vid``." +msgid "pgr_aStar(Many to One) does not have ``end_vid``." msgstr "" msgid "Migration" @@ -4626,19 +4655,25 @@ msgstr "" msgid "Be aware of the existence of the additional columns." msgstr "" -msgid "In ``pgr_aStar`` (`One to One`)" +msgid "In pgr_aStar(One to One)" msgstr "" -msgid "``start_vid`` contains the **start vid** parameter value." +msgid "start_vid`` contains the **start vid** parameter value." msgstr "" -msgid "``end_vid`` contains the **end vid** parameter value." +msgid "end_vid`` contains the **end vid** parameter value." +msgstr "" + +msgid "In pgr_aStar(One to Many)" msgstr "" -msgid "In ``pgr_aStar`` (`One to Many`)" +msgid "``start_vid`` contains the **start vid** parameter value." msgstr "" -msgid "In ``pgr_aStar`` (`Many to One`)" +msgid "In pgr_aStar(Many to One)" +msgstr "" + +msgid "``end_vid`` contains the **end vid** parameter value." msgstr "" msgid "If needed filter out the added columns, for example:" @@ -4666,33 +4701,31 @@ msgstr "" msgid "Migration of ``pgr_bdAstar``" msgstr "" -msgid "``pgr_bdAstar`` (`One to One`)" +msgid "pgr_bdAstar(One to One)" msgstr "" -msgid "``pgr_bdAstar`` (`One to Many`)" +msgid "pgr_bdAstar(One to Many)" msgstr "" -msgid "``pgr_bdAstar`` (`Many to One`)" +msgid "pgr_bdAstar(Many to One)" msgstr "" -msgid "" -"``pgr_bdAstar`` (`One to One`) does not have ``start_vid`` and " -"``end_vid``." +msgid "pgr_bdAstar(One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "``pgr_bdAstar`` (`One to Many`) does not have ``start_vid``." +msgid "pgr_bdAstar(One to Many) does not have ``start_vid``." msgstr "" -msgid "``pgr_bdAstar`` (`Many to One`) does not have ``end_vid``." +msgid "pgr_bdAstar(Many to One) does not have ``end_vid``." msgstr "" -msgid "In ``pgr_bdAstar`` (`One to One`)" +msgid "In pgr_bdAstar(One to One)" msgstr "" -msgid "In ``pgr_bdAstar`` (`One to Many`)" +msgid "In pgr_bdAstar(One to Many)" msgstr "" -msgid "In ``pgr_bdAstar`` (`Many to One`)" +msgid "In pgr_bdAstar(Many to One)" msgstr "" msgid "Migration of ``pgr_dijkstra``" @@ -4703,33 +4736,31 @@ msgid "" "`__" msgstr "" -msgid "``pgr_dijkstra`` (`One to One`)" +msgid "pgr_dijkstra(One to One)" msgstr "" -msgid "``pgr_dijkstra`` (`One to Many`)" +msgid "pgr_dijkstra(One to Many)" msgstr "" -msgid "``pgr_dijkstra`` (`Many to One`)" +msgid "pgr_dijkstra(Many to One)" msgstr "" -msgid "" -"``pgr_dijkstra`` (`One to One`) does not have ``start_vid`` and " -"``end_vid``." +msgid "pgr_dijkstra(One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "``pgr_dijkstra`` (`One to Many`) does not have ``start_vid``." +msgid "pgr_dijkstra(One to Many) does not have ``start_vid``." msgstr "" -msgid "``pgr_dijkstra`` (`Many to One`) does not have ``end_vid``." +msgid "pgr_dijkstra(Many to One) does not have ``end_vid``." msgstr "" -msgid "In ``pgr_dijkstra`` (`One to One`)" +msgid "In pgr_dijkstra(One to One)" msgstr "" -msgid "In ``pgr_dijkstra`` (`One to Many`)" +msgid "In pgr_dijkstra(One to Many)" msgstr "" -msgid "In ``pgr_dijkstra`` (`Many to One`)" +msgid "In pgr_dijkstra(Many to One)" msgstr "" msgid "If needed add the new columns, for example:" @@ -4756,10 +4787,10 @@ msgstr "" msgid "|result-spantree|" msgstr "" -msgid "``pgr_drivingdistance`` (Single vertex)" +msgid "pgr_drivingdistance(Single vertex)" msgstr "" -msgid "``pgr_drivingdistance`` (Multiple vertices)" +msgid "pgr_drivingdistance(Multiple vertices)" msgstr "" msgid "Output columns were |result-dij-dd|" @@ -4777,6 +4808,9 @@ msgstr "" msgid "Be aware of the existence and name change of the result columns." msgstr "" +msgid "``pgr_drivingdistance`` (Single vertex)" +msgstr "" + msgid "" "Using `this `__ example." @@ -4793,6 +4827,9 @@ msgid "" "original columns" msgstr "" +msgid "``pgr_drivingdistance`` (Multiple vertices)" +msgstr "" + msgid "" "Using `this `__ example." @@ -4844,8 +4881,8 @@ msgid "Kruskal single vertex" msgstr "" msgid "" -"Using ``pgr_KruskalDD`` as example. Migration is similar to al the " -"affected functions." +"Using pgr_KruskalDD`` as example. Migration is similar to al the affected" +" functions." msgstr "" msgid "" @@ -4860,6 +4897,11 @@ msgstr "" msgid "Kruskal multiple vertices" msgstr "" +msgid "" +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the " +"affected functions." +msgstr "" + msgid "" "Comparing with `this " "`__" @@ -4881,7 +4923,7 @@ msgstr "" msgid "|nksp-result|" msgstr "" -msgid "``pgr_KSP`` (One to One)" +msgid "pgr_KSP(One to One)" msgstr "" msgid "Output columns were |ksp-result|" @@ -4890,7 +4932,10 @@ msgstr "" msgid "the columns ``start_vid`` and ``end_vid`` do not exist." msgstr "" -msgid "``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``." +msgid "pgr_KSP(One to One) does not have ``start_vid`` and ``end_vid``." +msgstr "" + +msgid "``pgr_KSP`` (One to One)" msgstr "" msgid "" @@ -4934,7 +4979,7 @@ msgstr "" msgid "New signature" msgstr "" -msgid "``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." +msgid "pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." msgstr "" msgid "The optional flag ``directed`` is removed." @@ -4972,7 +5017,7 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" -msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgid "Migration of pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" msgstr "" msgid "" @@ -4998,6 +5043,11 @@ msgstr "" msgid "Prim multiple vertices" msgstr "" +msgid "" +"Using pgr_primDD`` as example. Migration is similar to al the affected " +"functions." +msgstr "" + msgid "" "Comparing with `this `__ example." @@ -5038,9 +5088,6 @@ msgid "" "unnamed." msgstr "" -msgid "``pgr_withPointsDD`` (`Multiple vertices`)" -msgstr "" - msgid "Output columns were |result-m-1-no-seq|" msgstr "" @@ -5158,7 +5205,7 @@ msgid "" "undirected graphs." msgstr "" -msgid "``pgr_withPointsKSP`` (`One to One`)" +msgid "pgr_withPointsKSP(One to One)" msgstr "" msgid "Output columns were |old-pid-result|" @@ -5167,6 +5214,9 @@ msgstr "" msgid "New output columns are |nksp-result|" msgstr "" +msgid "``pgr_withPointsKSP`` (One to One)" +msgstr "" + msgid "" "Using `this " "`__ " @@ -5444,7 +5494,7 @@ msgstr "" msgid ":doc:`pgr_trsp`:" msgstr "" -msgid "Migration of ``pgr_trsp`` (Edges)" +msgid "Migration of pgr_trsp(Edges)" msgstr "" msgid "The integral types of the ``sql`` can only be ``INTEGER``." @@ -7080,7 +7130,7 @@ msgid "Upgrading the database" msgstr "" msgid "" -"To upgrade pgRouting in the database to version 3.7.2 use the following " +"To upgrade pgRouting in the database to version 3.8.0 use the following " "command:" msgstr "" @@ -7533,7 +7583,7 @@ msgstr "" msgid ":doc:`migration`" msgstr "" -msgid "pgr_KSP" +msgid "``pgr_KSP``" msgstr "" msgid "``pgr_KSP`` — Yen's algorithm for K shortest paths using Dijkstra." @@ -7548,25 +7598,25 @@ msgstr "" msgid "Result columns standarized to: |nksp-result|" msgstr "" -msgid "``pgr_ksp`` (One to One)" +msgid "pgr_ksp(One to One)" msgstr "" msgid "Added ``start_vid`` and ``end_vid`` result columns." msgstr "" -msgid "New overload functions:" +msgid "New proposed signatures:" msgstr "" -msgid "``pgr_ksp`` (One to Many)" +msgid "pgr_ksp(One to Many)" msgstr "" -msgid "``pgr_ksp`` (Many to One)" +msgid "pgr_ksp(Many to One)" msgstr "" -msgid "``pgr_ksp`` (Many to Many)" +msgid "pgr_ksp(Many to Many)" msgstr "" -msgid "``pgr_ksp`` (Combinations)" +msgid "pgr_ksp(Combinations)" msgstr "" msgid "Version 2.1.0" @@ -7581,7 +7631,7 @@ msgstr "" msgid "Version 2.0.0" msgstr "" -msgid "**Official** function" +msgid "Official function." msgstr "" msgid "" @@ -7589,6 +7639,9 @@ msgid "" "the number of shortest paths desired." msgstr "" +msgid "|Boost| Boost Graph Inside" +msgstr "" + msgid "Signatures" msgstr "" @@ -7710,7 +7763,7 @@ msgstr "" msgid "``pgr_TSP``" msgstr "" -msgid "``pgr_TSP`` - Aproximation using *metric* algorithm." +msgid "pgr_TSP`` - Aproximation using *metric* algorithm." msgstr "" msgid "Availability:" @@ -7926,7 +7979,7 @@ msgstr "" msgid "``pgr_TSPeuclidean``" msgstr "" -msgid "``pgr_TSPeuclidean`` - Aproximation using *metric* algorithm." +msgid "pgr_TSPeuclidean`` - Aproximation using *metric* algorithm." msgstr "" msgid "" @@ -7942,7 +7995,7 @@ msgstr "" msgid "Name change from pgr_eucledianTSP" msgstr "" -msgid "New **Official** function" +msgid "New official function." msgstr "" msgid "" @@ -8025,9 +8078,6 @@ msgid "" "image is the solution obtained with ``pgr_TSPeuclidean``." msgstr "" -msgid ":doc:`sampledata` network." -msgstr "" - msgid "``pgr_aStar``" msgstr "" @@ -8037,43 +8087,34 @@ msgstr "" msgid "Standarizing output columns to |short-generic-result|" msgstr "" -msgid "``pgr_aStar`` (`One to One`_) added ``start_vid`` and ``end_vid`` columns." +msgid "pgr_aStar(One to One) added ``start_vid`` and ``end_vid`` columns." msgstr "" -msgid "``pgr_aStar`` (`One to Many`_) added ``end_vid`` column." +msgid "pgr_aStar(One to Many) added ``end_vid`` column." msgstr "" -msgid "``pgr_aStar`` (`Many to One`_) added ``start_vid`` column." +msgid "pgr_aStar(Many to One) added ``start_vid`` column." msgstr "" msgid "Version 3.2.0" msgstr "" -msgid "New **proposed** signature:" -msgstr "" - -msgid "``pgr_aStar`` (`Combinations`_)" -msgstr "" - -msgid "Version 2.4.0" -msgstr "" - -msgid "New **Proposed** signatures:" +msgid "New proposed signature:" msgstr "" -msgid "``pgr_aStar`` (`One to Many`_)" +msgid "pgr_aStar(Combinations)" msgstr "" -msgid "``pgr_aStar`` (`Many to One`_)" +msgid "Function promoted to official." msgstr "" -msgid "``pgr_aStar`` (`Many to Many`_)" +msgid "Version 2.4.0" msgstr "" -msgid "Signature change on ``pgr_astar`` (`One to One`_)" +msgid "pgr_aStar(Many to Many)" msgstr "" -msgid "**Official** ``pgr_aStar`` (`One to One`_)" +msgid "Signature change on pgr_astar(One to One)" msgstr "" msgid "" @@ -8148,7 +8189,10 @@ msgstr "" msgid "Manually assigned vertex combinations." msgstr "" -msgid "pgr_aStarCost" +msgid "https://www.boost.org/libs/graph/doc/astar_search.html" +msgstr "" + +msgid "``pgr_aStarCost``" msgstr "" msgid "" @@ -8156,10 +8200,10 @@ msgid "" "algorithm." msgstr "" -msgid "``pgr_aStarCost`` (`Combinations`_)" +msgid "pgr_aStarCost(Combinations)" msgstr "" -msgid "New **proposed** function" +msgid "New proposed function." msgstr "" msgid "" @@ -8348,7 +8392,7 @@ msgstr "" msgid "`ST_ConcaveHull `__" msgstr "" -msgid "pgr_analyzeGraph" +msgid "``pgr_analyzeGraph``" msgstr "" msgid "``pgr_analyzeGraph`` — Analyzes the network topology." @@ -8612,9 +8656,6 @@ msgid "" "table ``othertable``. (note the use of quote_literal)" msgstr "" -msgid "The examples use the :doc:`sampledata` network." -msgstr "" - msgid ":doc:`pgr_analyzeOneWay`" msgstr "" @@ -8624,7 +8665,7 @@ msgstr "" msgid ":doc:`pgr_nodeNetwork` to create nodes to a not noded edge table." msgstr "" -msgid "pgr_analyzeOneWay" +msgid "``pgr_analyzeOneWay``" msgstr "" msgid "" @@ -8775,7 +8816,7 @@ msgstr "" msgid "Version 2.5.0" msgstr "" -msgid "New **experimental** function" +msgid "New experimental function." msgstr "" msgid "" @@ -8808,7 +8849,7 @@ msgid "Nodes in red are the articulation points." msgstr "" msgid "" -"Boost: `Biconnected components & articulation points " +"`Boost: Biconnected components & articulation points " "`__" msgstr "" @@ -8823,38 +8864,27 @@ msgstr "" msgid "``pgr_bdAstar`` — Shortest path using the bidirectional A* algorithm." msgstr "" -msgid "" -"``pgr_bdAstar`` (`One to One`_) added ``start_vid`` and ``end_vid`` " -"columns." -msgstr "" - -msgid "``pgr_bdAstar`` (`One to Many`_) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_bdAstar`` (`Many to One`_) added ``start_vid`` column." -msgstr "" - -msgid "``pgr_bdAstar`` (`Combinations`_)" +msgid "pgr_bdAstar(One to One) added ``start_vid`` and ``end_vid`` columns." msgstr "" -msgid "``pgr_bdAstar`` (`One to Many`_)" +msgid "pgr_bdAstar(One to Many) added ``end_vid`` column." msgstr "" -msgid "``pgr_bdAstar`` (`Many to One`_)" +msgid "pgr_bdAstar(Many to One) added ``start_vid`` column." msgstr "" -msgid "``pgr_bdAstar`` (`Many to Many`_)" +msgid "pgr_bdAstar(Combinations)" msgstr "" -msgid "Signature change on ``pgr_bdAstar`` (`One to One`_)" +msgid "pgr_bdAstar(Many to Many)" msgstr "" -msgid "**Official** ``pgr_bdAstar`` (`One to One`_)" +msgid "Signature change on pgr_bdAstar(One to One)" msgstr "" msgid "" "The results are equivalent to the union of the results of the " -"`pgr_bdAStar(` `One to One`_ `)` on the:" +"pgr_bdAStar(One to One) on the:" msgstr "" msgid "pgr_bdAstar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -8872,7 +8902,10 @@ msgstr "" msgid "pgr_bdAstar(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgstr "" -msgid "pgr_bdAstarCost" +msgid "**options:** [directed, heuristic, factor, epsilon]``" +msgstr "" + +msgid "``pgr_bdAstarCost``" msgstr "" msgid "" @@ -8880,7 +8913,7 @@ msgid "" "bidirectional A* algorithm." msgstr "" -msgid "``pgr_bdAstarCost`` (`Combinations`_)" +msgid "pgr_bdAstarCost(Combinations)" msgstr "" msgid "" @@ -8925,25 +8958,22 @@ msgid "" "Dijkstra algorithm." msgstr "" -msgid "pgr_bdDijkstra(`Combinations`_)" -msgstr "" - -msgid "New **Proposed** functions:" +msgid "pgr_bdDijkstra(Combinations)" msgstr "" -msgid "``pgr_bdDijkstra`` (`One to Many`_)" +msgid "New Proposed signatures:" msgstr "" -msgid "``pgr_bdDijkstra`` (`Many to One`_)" +msgid "pgr_bdDijkstra(One to Many)" msgstr "" -msgid "``pgr_bdDijkstra`` (`Many to Many`_)" +msgid "pgr_bdDijkstra(Many to One)" msgstr "" -msgid "Signature change on ``pgr_bdDijsktra`` (`One to One`_)" +msgid "pgr_bdDijkstra(Many to Many)" msgstr "" -msgid "**Official** ``pgr_bdDijkstra`` (`One to One`_)" +msgid "Signature change on pgr_bdDijsktra(One to One)" msgstr "" msgid "pgr_bdDijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -8994,10 +9024,6 @@ msgstr "" msgid "Using a combinations table on an **undirected** graph" msgstr "" -#, python-format -msgid "https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf" -msgstr "" - msgid "https://en.wikipedia.org/wiki/Bidirectional_search" msgstr "" @@ -9009,7 +9035,7 @@ msgid "" "Bidirectional Dijkstra algorithm." msgstr "" -msgid "``pgr_bdDijkstraCost`` (`Combinations`_)" +msgid "pgr_bdDijkstraCost(Combinations)" msgstr "" msgid "" @@ -9073,25 +9099,10 @@ msgstr "" msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" -msgid "New **experimental** signature:" -msgstr "" - -msgid "``pgr_bellmanFord`` (`Combinations`_)" -msgstr "" - -msgid "New **experimental** signatures:" +msgid "New experimental signature:" msgstr "" -msgid "``pgr_bellmanFord`` (`One to One`_)" -msgstr "" - -msgid "``pgr_bellmanFord`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_bellmanFord`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_bellmanFord`` (`Many to Many`_)" +msgid "pgr_bellmanFord(Combinations)" msgstr "" msgid "" @@ -9163,11 +9174,19 @@ msgstr "" msgid "Using a combinations table on an **undirected** graph." msgstr "" +msgid "" +"`Boost: Belman Ford " +"`__" +msgstr "" + #, python-format msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "" -msgid "``pgr_betweennessCentrality``" +msgid "Boost Graph Inside" +msgstr "" + +msgid "``pgr_betweennessCentrality`` - Experimental" msgstr "" msgid "" @@ -9178,7 +9197,7 @@ msgstr "" msgid "Version 3.7.0" msgstr "" -msgid "New **experimental** function:" +msgid "pgr_betweennessCentrality``" msgstr "" msgid "" @@ -9252,13 +9271,10 @@ msgid "" msgstr "" msgid "" -"Boost's `betweenness_centrality " +"`Boost: betweenness centrality " "`_" msgstr "" -msgid "Queries use the :doc:`sampledata` network." -msgstr "" - msgid "``pgr_biconnectedComponents``" msgstr "" @@ -9270,10 +9286,10 @@ msgstr "" msgid "Result columns change:" msgstr "" -msgid "``n_seq`` is removed" +msgid "n_seq`` is removed" msgstr "" -msgid "``seq`` changed type to ``BIGINT``" +msgid "seq`` changed type to ``BIGINT``" msgstr "" msgid "" @@ -9315,11 +9331,6 @@ msgstr "" msgid "Identifier of the edge that belongs to the ``component``." msgstr "" -msgid "" -"Boost: `Biconnected components " -"`__" -msgstr "" - msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "" @@ -9333,19 +9344,7 @@ msgid "" "non-negative integer, is termed as a 'binary graph'." msgstr "" -msgid "pgr_binaryBreadthFirstSearch(`Combinations`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`One to One`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`One to Many`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`Many to One`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`Many to Many`_)" +msgid "pgr_binaryBreadthFirstSearch(Combinations)" msgstr "" msgid "" @@ -9407,6 +9406,11 @@ msgid "" "(i.e :math:`1``)" msgstr "" +msgid "" +"`Boost: Breadth First Search " +"`__" +msgstr "" + msgid "https://cp-algorithms.com/graph/01_bfs.html" msgstr "" @@ -9414,7 +9418,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Specialized_variants" msgstr "" -msgid "pgr_bipartite -Experimental" +msgid "``pgr_bipartite`` - Experimental" msgstr "" msgid "" @@ -9422,9 +9426,6 @@ msgid "" "within the same set are adjacent." msgstr "" -msgid "New **experimental** signature" -msgstr "" - msgid "" "A bipartite graph is a graph with two sets of vertices which are " "connected to each other, but not within themselves. A bipartite graph is " @@ -9471,6 +9472,16 @@ msgstr "" msgid "Edges in blue represent odd length cycle subgraph." msgstr "" +msgid "" +"`Boost: is_bipartite " +"`__" +msgstr "" + +msgid "" +"`Wikipedia: bipartite graph " +"`__" +msgstr "" + msgid "``pgr_boykovKolmogorov``" msgstr "" @@ -9480,21 +9491,12 @@ msgid "" "Kolmogorov algorithm." msgstr "" -msgid "New **proposed** signature" -msgstr "" - -msgid "``pgr_boykovKolmogorov`` (`Combinations`_)" +msgid "pgr_boykovKolmogorov(Combinations)" msgstr "" msgid "Renamed from ``pgr_maxFlowBoykovKolmogorov``" msgstr "" -msgid "**Proposed** function" -msgstr "" - -msgid "New **Experimental** function" -msgstr "" - msgid "Running time: Polynomial" msgstr "" @@ -9533,7 +9535,9 @@ msgid "" "vertices :math:`\\{5, 6\\}` to vertices :math:`\\{10, 15, 14\\}`." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html" +msgid "" +"`Boost: Boykov Kolmogorov max flow " +"`__" msgstr "" msgid "``pgr_breadthFirstSearch`` - Experimental" @@ -9544,12 +9548,6 @@ msgid "" " First Search algorithm." msgstr "" -msgid "``pgr_breadthFirstSearch`` (`Single Vertex`_)" -msgstr "" - -msgid "``pgr_breadthFirstSearch`` (`Multiple Vertices`_)" -msgstr "" - msgid "" "Provides the Breadth First Search traversal order from a root vertex to a" " particular depth." @@ -9572,7 +9570,7 @@ msgstr "" msgid "pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**])" msgstr "" -msgid "**options:** ``[max_depth, directed]``" +msgid "**options:** [max_depth, directed]``" msgstr "" msgid "Returns set of |result-bfs|" @@ -9614,11 +9612,6 @@ msgstr "" msgid "descending" msgstr "" -msgid "" -"`Boost: Breadth First Search algorithm documentation " -"`__" -msgstr "" - msgid "" "`Wikipedia: Breadth First Search algorithm `__" @@ -9658,7 +9651,9 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bridge_%28graph_theory%29" msgstr "" -msgid "**Supported versions**" +msgid "" +"`Boost: connected components " +"`__" msgstr "" msgid "``pgr_chinesePostman`` - Experimental" @@ -9717,7 +9712,7 @@ msgstr "" msgid "Minimum costs of a circuit path." msgstr "" -msgid "pgr_connectedComponents" +msgid "``pgr_connectedComponents``" msgstr "" msgid "" @@ -9755,7 +9750,7 @@ msgid "Connecting disconnected components" msgstr "" msgid "" -"Boost: `Connected components " +"`Boost: Connected components " "`__" msgstr "" @@ -9932,7 +9927,7 @@ msgstr "" msgid "Only linear contraction" msgstr "" -msgid "pgr_createTopology" +msgid "``pgr_createTopology``" msgstr "" msgid "" @@ -10136,10 +10131,7 @@ msgid "" "incremented to the rest of the edges." msgstr "" -msgid "The example uses the :doc:`sampledata` network." -msgstr "" - -msgid "pgr_createVerticesTable" +msgid "``pgr_createVerticesTable``" msgstr "" msgid "" @@ -10357,7 +10349,7 @@ msgid "" "`__" msgstr "" -msgid "pgr_dagShortestPath - Experimental" +msgid "``pgr_dagShortestPath`` - Experimental" msgstr "" msgid "" @@ -10436,6 +10428,11 @@ msgstr "" msgid "Making **start_vids** the same as **end_vids**" msgstr "" +msgid "" +"`Boost: DAG shortest paths " +"`__" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Topological_sorting" msgstr "" @@ -10555,15 +10552,6 @@ msgstr "" msgid "Version 3.3.0" msgstr "" -msgid "Promoted to **proposed** function" -msgstr "" - -msgid "``pgr_depthFirstSearch`` (`Single Vertex`_)" -msgstr "" - -msgid "``pgr_depthFirstSearch`` (`Multiple Vertices`_)" -msgstr "" - msgid "" "Depth First Search algorithm is a traversal algorithm which starts from a" " root vertex, goes as deep as possible, and backtracks once a vertex is " @@ -10617,12 +10605,12 @@ msgid "Same as `Single vertex`_ but with edges in descending order of ``id``." msgstr "" msgid "" -"`Boost: Depth First Search algorithm documentation " +"`Boost: Depth First Search " "`__" msgstr "" msgid "" -"`Boost: Undirected DFS algorithm documentation " +"`Boost: Undirected DFS " "`__" msgstr "" @@ -10640,45 +10628,28 @@ msgstr "" msgid "Version 3.5.0" msgstr "" -msgid "" -"``pgr_dijkstra`` (`One to One`_) added ``start_vid`` and ``end_vid`` " -"columns." +msgid "pgr_dijkstra(One to One) added ``start_vid`` and ``end_vid`` columns." msgstr "" -msgid "``pgr_dijkstra`` (`One to Many`_) added ``end_vid`` column." +msgid "pgr_dijkstra(One to Many) added ``end_vid`` column." msgstr "" -msgid "``pgr_dijkstra`` (`Many to One`_) added ``start_vid`` column." +msgid "pgr_dijkstra(Many to One) added ``start_vid`` column." msgstr "" msgid "Version 3.1.0" msgstr "" -msgid "``pgr_dijkstra`` (`Combinations`_)" -msgstr "" - -msgid "**Official** functions" +msgid "pgr_dijkstra(Combinations)" msgstr "" msgid "Version 2.2.0" msgstr "" -msgid "New **proposed** functions:" +msgid "pgr_dijkstra(Many to Many)" msgstr "" -msgid "``pgr_dijkstra`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_dijkstra`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_dijkstra`` (`Many to Many`_)" -msgstr "" - -msgid "Signature change on ``pgr_dijkstra`` (`One to One`_)" -msgstr "" - -msgid "**Official** ``pgr_dijkstra`` (`One to One`_)" +msgid "Signature change on pgr_dijkstra(One to One)" msgstr "" msgid "pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -10864,6 +10835,14 @@ msgstr "" msgid "37) Using `Combinations`_" msgstr "" +msgid "e Also" +msgstr "" + +msgid "" +"`Boost: Dijkstra shortest paths " +"`__" +msgstr "" + #, python-format msgid "https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" msgstr "" @@ -10876,7 +10855,7 @@ msgid "" "algorithm." msgstr "" -msgid "``pgr_dijkstraCost`` (`Combinations`_)" +msgid "pgr_dijkstraCost(Combinations)" msgstr "" msgid "" @@ -11167,9 +11146,6 @@ msgstr "" msgid "When ``false``: ``cap`` limit per ``Start vid`` will be returned" msgstr "" -msgid "boost: https://www.boost.org/libs/graph/doc/table_of_contents.html" -msgstr "" - #, python-format msgid "Wikipedia: https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" msgstr "" @@ -11344,13 +11320,16 @@ msgstr "" msgid "Added ``depth`` and ``pred`` result columns." msgstr "" -msgid "Signature change pgr_drivingDistance(single vertex)" +msgid "Signature change:" +msgstr "" + +msgid "pgr_drivingDistance(single vertex)" msgstr "" -msgid "New **Official** pgr_drivingDistance(multiple vertices)" +msgid "New official signature:" msgstr "" -msgid "Official:: pgr_drivingDistance(single vertex)" +msgid "pgr_drivingDistance(multiple vertices)" msgstr "" msgid "" @@ -11407,7 +11386,7 @@ msgid "" "undirected graph" msgstr "" -msgid "pgr_edgeColoring - Experimental" +msgid "``pgr_edgeColoring`` - Experimental" msgstr "" msgid "" @@ -11479,6 +11458,16 @@ msgstr "" msgid "Graph coloring of pgRouting :doc:`sampledata`" msgstr "" +msgid "" +"`Boost: Edge Coloring " +"`__" +msgstr "" + +msgid "" +"`Wikipedia: Graph coloring " +"`__" +msgstr "" + msgid "``pgr_edgeDisjointPaths``" msgstr "" @@ -11487,9 +11476,6 @@ msgid "" "groups of vertices." msgstr "" -msgid "New **proposed** function:" -msgstr "" - msgid "pgr_edgeDisjointPaths(Combinations)" msgstr "" @@ -11571,7 +11557,7 @@ msgid "" "Algorithm." msgstr "" -msgid "``pgr_edmondsKarp`` (`Combinations`_)" +msgid "pgr_edmondsKarp(Combinations)" msgstr "" msgid "Renamed from ``pgr_maxFlowEdmondsKarp``" @@ -11595,14 +11581,16 @@ msgstr "" msgid "pgr_edmondsKarp(`Edges SQL`_, `Combinations SQL`_)" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html" +msgid "" +"`Boost: edmonds_karp_max_flow " +"`__" msgstr "" #, python-format msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm" msgstr "" -msgid "``pgr_edwardMoore - Experimental``" +msgid "``pgr_edwardMoore`` - Experimental" msgstr "" msgid "" @@ -11610,19 +11598,7 @@ msgid "" "algorithm." msgstr "" -msgid "``pgr_edwardMoore`` (`Combinations`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`One to One`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`Many to Many`_)" +msgid "pgr_edwardMoore(Combinations)" msgstr "" msgid "" @@ -11683,7 +11659,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Shortest_Path_Faster_Algorithm" msgstr "" -msgid "pgr_extractVertices -- Proposed" +msgid "``pgr_extractVertices`` -- Proposed" msgstr "" msgid "``pgr_extractVertices`` — Extracts the vertices information" @@ -11785,21 +11761,12 @@ msgid "" "``dryrun := true``." msgstr "" -msgid "``pgr_findCloseEdges``" +msgid "``pgr_findCloseEdges`` - Proposed" msgstr "" msgid "``pgr_findCloseEdges`` - Finds the close edges to a point geometry." msgstr "" -msgid "New **proposed** signatures:" -msgstr "" - -msgid "``pgr_findCloseEdges`` (`One point`_)" -msgstr "" - -msgid "``pgr_findCloseEdges`` (`Many points`_)" -msgstr "" - msgid "" "``pgr_findCloseEdges`` - An utility function that finds the closest edge " "to a point geometry." @@ -11813,7 +11780,7 @@ msgid "" "adjustments needed by the application." msgstr "" -msgid "``EMTPY SET`` is returned on dryrun executions" +msgid "EMTPY SET`` is returned on dryrun executions" msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**])" @@ -11822,7 +11789,7 @@ msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**])" msgstr "" -msgid "**options:** ``[cap, partial, dryrun]``" +msgid "**options:** [cap, partial, dryrun]``" msgstr "" msgid "Returns set of |result-find|" @@ -11861,6 +11828,9 @@ msgstr "" msgid "Many points" msgstr "" +msgid "**options:** ``[cap, partial, dryrun]``" +msgstr "" + msgid "" "Find at most :math:`2` edges close to all vertices on the points of " "interest table." @@ -12273,18 +12243,12 @@ msgid "" "`_" msgstr "" -msgid "Queries uses the :doc:`sampledata` network." -msgstr "" - msgid "``pgr_full_version``" msgstr "" msgid "``pgr_full_version`` — Get the details of pgRouting version information." msgstr "" -msgid "New **official** function" -msgstr "" - msgid "Get complete details of pgRouting version information" msgstr "" @@ -12359,9 +12323,6 @@ msgid "" "circuits algorithm." msgstr "" -msgid "``pgr_hawickCircuits``" -msgstr "" - msgid "" "Hawick Circuit algorithm, is published in 2008 by Ken Hawick and Health " "A. James. This algorithm solves the problem of detecting and enumerating " @@ -12484,7 +12445,9 @@ msgid "" "in blue represent :math:`K_5` subgraph." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/boyer_myrvold.html" +msgid "" +"`Boost: Boyer Myrvold " +"`__" msgstr "" msgid "``pgr_johnson``" @@ -12615,7 +12578,7 @@ msgstr "" msgid "pgr_kruskalDFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "pgr_lengauerTarjanDominatorTree -Experimental" +msgid "``pgr_lengauerTarjanDominatorTree`` -Experimental" msgstr "" msgid "" @@ -12672,7 +12635,7 @@ msgid "Dominator tree of another component." msgstr "" msgid "" -"`Boost: Lengauer-Tarjan dominator tree algorithm " +"`Boost: Lengauer-Tarjan dominator " "`__" msgstr "" @@ -12681,7 +12644,7 @@ msgid "" "`__" msgstr "" -msgid "pgr_lineGraph - Proposed" +msgid "``pgr_lineGraph`` - Proposed" msgstr "" msgid "" @@ -12952,8 +12915,8 @@ msgid "Full line graph of subgraph of edges :math:`\\{4, 7, 8, 10\\}`" msgstr "" msgid "" -"The examples of this section are based on the :doc:`sampledata` network. " -"The examples include the subgraph including edges 4, 7, 8, and 10 with " +"The examples of this section are based on the :doc:`sampledata` The " +"examples include the subgraph including edges 4, 7, 8, and 10 with " "``reverse_cost``." msgstr "" @@ -13171,15 +13134,15 @@ msgstr "" msgid "Returns set of |result-component-make|" msgstr "" -msgid "" -"Query done on :doc:`sampledata` network gives the list of edges that are " -"needed to connect the graph." +msgid "List of edges that are needed to connect the graph." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/make_connected.html" +msgid "" +"`Boost: make connected " +"`__" msgstr "" -msgid "pgr_maxCardinalityMatch" +msgid "``pgr_maxCardinalityMatch``" msgstr "" msgid "" @@ -13190,10 +13153,10 @@ msgstr "" msgid "Deprecated signature" msgstr "" -msgid "``pgr_maxCardinalityMatch(text,boolean)``" +msgid "pgr_maxCardinalityMatch(text,boolean)``" msgstr "" -msgid "``directed => false`` when used." +msgid "directed => false`` when used." msgstr "" msgid "Renamed from ``pgr_maximumCardinalityMatching``" @@ -13243,7 +13206,9 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" +msgid "" +"`Boost: maximum_matching " +"`__" msgstr "" #, python-format @@ -13261,10 +13226,7 @@ msgid "" "the source(s) to the targets(s) using the Push Relabel algorithm." msgstr "" -msgid "``pgr_maxFlow`` (`Combinations`_)" -msgstr "" - -msgid "New **Proposed** function" +msgid "pgr_maxFlow(Combinations)" msgstr "" msgid "Calculates the maximum flow from the sources to the targets." @@ -13302,7 +13264,9 @@ msgstr "" msgid "Maximum flow possible from the source(s) to the target(s)" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html" +msgid "" +"`Boost: push relabel max flow " +"`__" msgstr "" #, python-format @@ -13317,7 +13281,10 @@ msgid "" "cost of the maximum flow on a graph" msgstr "" -msgid "``pgr_maxFlowMinCost`` (`Combinations`_)" +msgid "pgr_maxFlowMinCost(Combinations)" +msgstr "" + +msgid "|boost| graph inside." msgstr "" msgid "**TODO** check which statement is true:" @@ -13361,9 +13328,6 @@ msgstr "" msgid "Returns set of |result-flow-mincost|" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/successive_shortest_path_nonnegative_weights.html" -msgstr "" - msgid "``pgr_maxFlowMinCost_Cost`` - Experimental" msgstr "" @@ -13372,7 +13336,7 @@ msgid "" "maximum flow on a graph" msgstr "" -msgid "``pgr_maxFlowMinCost_Cost`` (`Combinations`_)" +msgid "pgr_maxFlowMinCost_Cost(Combinations)" msgstr "" msgid "**The cost value of all input edges must be nonnegative.**" @@ -13405,7 +13369,7 @@ msgstr "" msgid "Minimum Cost Maximum Flow possible from the source(s) to the target(s)" msgstr "" -msgid "pgr_nodeNetwork" +msgid "``pgr_nodeNetwork``" msgstr "" msgid "``pgr_nodeNetwork`` - Nodes an network edge table." @@ -13943,7 +13907,7 @@ msgid "" "Algorithm." msgstr "" -msgid "``pgr_pushRelabel`` (`Combinations`_)" +msgid "pgr_pushRelabel(Combinations)" msgstr "" msgid "Renamed from ``pgr_maxFlowPushRelabel``" @@ -13964,7 +13928,7 @@ msgstr "" msgid "pgr_pushRelabel(`Edges SQL`_, `Combinations SQL`_)" msgstr "" -msgid "pgr_sequentialVertexColoring - Proposed" +msgid "``pgr_sequentialVertexColoring`` - Proposed" msgstr "" msgid "" @@ -13972,9 +13936,6 @@ msgid "" "undirected graph, using greedy approach." msgstr "" -msgid "Promoted to **proposed** signature" -msgstr "" - msgid "" "Sequential vertex coloring algorithm is a graph coloring algorithm in " "which color identifiers are assigned to the vertices of a graph in a " @@ -14019,7 +13980,12 @@ msgstr "" msgid "pgr_sequentialVertexColoring(`Edges SQL`_)" msgstr "" -msgid "pgr_stoerWagner - Experimental" +msgid "" +"`Boost: Sequential Vertex Coloring " +"`__" +msgstr "" + +msgid "``pgr_stoerWagner`` - Experimental" msgstr "" msgid "``pgr_stoerWagner`` — The min-cut of graph using stoerWagner algorithm." @@ -14106,6 +14072,11 @@ msgstr "" msgid "Using :doc:`pgr_connectedComponents`" msgstr "" +msgid "" +"`Boost: Stoer Wagner min cut " +"`__" +msgstr "" + #, python-format msgid "https://en.wikipedia.org/wiki/Stoer%E2%80%93Wagner_algorithm" msgstr "" @@ -14118,6 +14089,12 @@ msgid "" "graph using Tarjan's algorithm based on DFS." msgstr "" +msgid "``n_seq`` is removed" +msgstr "" + +msgid "``seq`` changed type to ``BIGINT``" +msgstr "" + msgid "" "A strongly connected component of a directed graph is a set of vertices " "that are all reachable from each other." @@ -14136,7 +14113,7 @@ msgid "The strong components of the graph" msgstr "" msgid "" -"Boost: `Strong components " +"`Boost: Strong components " "`__" msgstr "" @@ -14200,6 +14177,11 @@ msgstr "" msgid "Graph is not a DAG" msgstr "" +msgid "" +"`Boost: topological sort " +"`__" +msgstr "" + msgid "``pgr_transitiveClosure`` - Experimental" msgstr "" @@ -14256,57 +14238,57 @@ msgstr "" msgid "Identifiers of the vertices that are reachable from vertex v." msgstr "" -msgid "https://en.wikipedia.org/wiki/Transitive_closure" +msgid "" +"`Boost: transitive closure " +"`__" msgstr "" -msgid "pgr_trsp - Proposed" +msgid "https://en.wikipedia.org/wiki/Transitive_closure" msgstr "" -msgid "``pgr_trsp`` - routing vertices with restrictions." +msgid "``pgr_trsp`` - Proposed" msgstr "" -msgid "New proposed signatures" +msgid "``pgr_trsp`` - routing vertices with restrictions." msgstr "" -msgid "``pgr_trsp`` (`One to One`_)" +msgid "pgr_trsp(One to One)" msgstr "" -msgid "``pgr_trsp`` (`One to Many`_)" +msgid "pgr_trsp(One to Many)" msgstr "" -msgid "``pgr_trsp`` (`Many to One`_)" +msgid "pgr_trsp(Many to One)" msgstr "" -msgid "``pgr_trsp`` (`Many to Many`_)" +msgid "pgr_trsp(Many to Many)" msgstr "" -msgid "``pgr_trsp`` (`Combinations`_)" +msgid "pgr_trsp(Combinations)" msgstr "" msgid "Deprecated signatures" msgstr "" -msgid "``pgr_trsp(text,integer,integer,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)``" msgstr "" -msgid "``pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)``" msgstr "" -msgid "``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" +msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" msgstr "" -msgid "" -"``pgr_trspviaedges(text,integer[],double " -"precision[],boolean,boolean,text)``" +msgid "pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" msgstr "" msgid "New prototypes" msgstr "" -msgid "``pgr_trspViaVertices``" +msgid "pgr_trspViaVertices``" msgstr "" -msgid "``pgr_trspViaEdges``" +msgid "pgr_trspViaEdges``" msgstr "" msgid "" @@ -14389,10 +14371,7 @@ msgid "" "restrictions." msgstr "" -msgid "New proposed function:" -msgstr "" - -msgid "``pgr_trspVia`` (`One Via`_)" +msgid "pgr_trspVia(One Via)" msgstr "" msgid "" @@ -14483,9 +14462,6 @@ msgid "" "and/or points with restrictions." msgstr "" -msgid "``pgr_trspVia_withPoints`` (`One Via`_)" -msgstr "" - msgid "" "Given a graph, a set of restriction on the graph edges, a set of points " "on the graphs edges and a list of vertices, this function is equivalent " @@ -14647,30 +14623,12 @@ msgid "" "same edge." msgstr "" -msgid "pgr_trsp_withPoints - Proposed" +msgid "``pgr_trsp_withPoints`` - Proposed" msgstr "" msgid "``pgr_trsp_withPoints`` Routing Vertex/Point with restrictions." msgstr "" -msgid "New proposed signatures:" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`One to One`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`Many to Many`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`Combinations`_)" -msgstr "" - msgid "" "Modify the graph to include points defined by points_sql. Using Dijkstra " "algorithm, find the shortest path" @@ -14778,7 +14736,7 @@ msgid "" ":math:`1` on an undirected graph, with details." msgstr "" -msgid "pgr_turnRestrictedPath - Experimental" +msgid "``pgr_turnRestrictedPath`` - Experimental" msgstr "" msgid "" @@ -14786,9 +14744,6 @@ msgid "" "with restrictions" msgstr "" -msgid "New experimental function" -msgstr "" - msgid "" "Using Yen's algorithm to obtain K shortest paths and analyze the paths to" " select the paths that do not use the restrictions" @@ -14859,7 +14814,7 @@ msgstr "" msgid "pgRouting Version for this documentation" msgstr "" -msgid "pgr_vrpOneDepot - Experimental" +msgid "``pgr_vrpOneDepot`` - Experimental" msgstr "" msgid "**No documentation available**" @@ -15201,7 +15156,10 @@ msgid "" "to unnamed compulsory **driving side**." msgstr "" -msgid "``pgr_withPointsDD`` (`Single vertex`)" +msgid "pgr_withPointsDD(Single vertex)" +msgstr "" + +msgid "pgr_withPointsDD(Multiple vertices)" msgstr "" msgid "Added ``depth``, ``pred`` and ``start_vid`` column." @@ -15219,12 +15177,12 @@ msgid "" msgstr "" msgid "" -"``pgr_withpointsdd(text,text,bigint,double " +"pgr_withpointsdd(text,text,bigint,double " "precision,boolean,character,boolean)``" msgstr "" msgid "" -"``pgr_withpointsdd(text,text,anyarray,double " +"pgr_withpointsdd(text,text,anyarray,double " "precision,boolean,character,boolean,boolean)``" msgstr "" @@ -15343,25 +15301,19 @@ msgstr "" msgid "Standarizing output columns to |nksp-result|" msgstr "" -msgid "``pgr_withPointsKSP`` (One to One)" +msgid "pgr_withPointsKSP(One to Many)" msgstr "" -msgid "New overload functions" +msgid "pgr_withPointsKSP(Many to One)" msgstr "" -msgid "``pgr_withPointsKSP`` (One to Many)" +msgid "pgr_withPointsKSP(Many to Many)" msgstr "" -msgid "``pgr_withPointsKSP`` (Many to One)" +msgid "pgr_withPointsKSP(Combinations)" msgstr "" -msgid "``pgr_withPointsKSP`` (Many to Many)" -msgstr "" - -msgid "``pgr_withPointsKSP`` (Combinations)" -msgstr "" - -msgid "``pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char,boolean)``" +msgid "pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char,boolean)``" msgstr "" msgid "" @@ -15484,9 +15436,6 @@ msgid "" " points." msgstr "" -msgid "New **proposed** function ``pgr_withPointsVia`` (`One Via`_)" -msgstr "" - msgid "" "Given a graph, a set of points on the graphs edges and a list of " "vertices, this function is equivalent to finding the shortest path " @@ -15647,9 +15596,6 @@ msgid "" "`__" msgstr "" -msgid "Build" -msgstr "" - msgid "Explicit minimum requirements:" msgstr "" @@ -15758,31 +15704,11 @@ msgid "" "output pgr_aStar" msgstr "" -msgid "``pgr_aStar`` (`One to One`) added ``start_vid`` and ``end_vid`` columns." -msgstr "" - -msgid "``pgr_aStar`` (`One to Many`) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_aStar`` (`Many to One`) added ``start_vid`` column." -msgstr "" - msgid "" "`#2523 `__ Standarize " "output pgr_bdAstar" msgstr "" -msgid "" -"``pgr_bdAstar`` (`One to One`) added ``start_vid`` and ``end_vid`` " -"columns." -msgstr "" - -msgid "``pgr_bdAstar`` (`One to Many`) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_bdAstar`` (`Many to One`) added ``start_vid`` column." -msgstr "" - msgid "" "`#2547 `__ Standarize " "output and modifying signature pgr_KSP" @@ -15940,17 +15866,6 @@ msgstr "" msgid "Dijkstra" msgstr "" -msgid "" -"``pgr_dijkstra`` (`One to One`) added ``start_vid`` and ``end_vid`` " -"columns." -msgstr "" - -msgid "``pgr_dijkstra`` (`One to Many`) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." -msgstr "" - msgid "pgRouting 3.4" msgstr "" @@ -16010,13 +15925,13 @@ msgid "" "doesn't give all correct shortest path" msgstr "" -msgid "New proposed functions" +msgid "New proposed functions." msgstr "" msgid "With points" msgstr "" -msgid "``pgr_withPointsVia`` (One Via)" +msgid "pgr_withPointsVia(One Via)" msgstr "" msgid "Turn Restrictions" @@ -16025,76 +15940,58 @@ msgstr "" msgid "Via with turn restrictions" msgstr "" -msgid "``pgr_trspVia`` (One Via)" +msgid "pgr_trspVia_withPoints(One Via)" msgstr "" -msgid "``pgr_trspVia_withPoints`` (One Via)" -msgstr "" - -msgid "``pgr_trsp``" -msgstr "" - -msgid "``pgr_trsp`` (One to One)" -msgstr "" - -msgid "``pgr_trsp`` (One to Many)" -msgstr "" - -msgid "``pgr_trsp`` (Many to One)" -msgstr "" - -msgid "``pgr_trsp`` (Many to Many)" -msgstr "" - -msgid "``pgr_trsp`` (Combinations)" +msgid "pgr_trsp" msgstr "" msgid "``pgr_trsp_withPoints``" msgstr "" -msgid "``pgr_trsp_withPoints`` (One to One)" +msgid "pgr_trsp_withPoints(One to One)" msgstr "" -msgid "``pgr_trsp_withPoints`` (One to Many)" +msgid "pgr_trsp_withPoints(One to Many)" msgstr "" -msgid "``pgr_trsp_withPoints`` (Many to One)" +msgid "pgr_trsp_withPoints(Many to One)" msgstr "" -msgid "``pgr_trsp_withPoints`` (Many to Many)" +msgid "pgr_trsp_withPoints(Many to Many)" msgstr "" -msgid "``pgr_trsp_withPoints`` (Combinations)" +msgid "pgr_trsp_withPoints(Combinations)" msgstr "" msgid "Topology" msgstr "" -msgid "``pgr_degree``" -msgstr "" - msgid "Utilities" msgstr "" -msgid "``pgr_findCloseEdges`` (One point)" +msgid "pgr_findCloseEdges(One point)" msgstr "" -msgid "``pgr_findCloseEdges`` (Many points)" +msgid "pgr_findCloseEdges(Many points)" msgstr "" msgid "Ordering" msgstr "" -msgid "``pgr_cuthillMckeeOrdering``" +msgid "pgr_cuthillMckeeOrdering" msgstr "" msgid "Unclassified" msgstr "" +msgid "pgr_hawickCircuits" +msgstr "" + msgid "Flow functions" msgstr "" -msgid "``pgr_maxCardinalityMatch(text)``" +msgid "pgr_maxCardinalityMatch(text)``" msgstr "" msgid "Deprecating ``pgr_maxCardinalityMatch(text,boolean)``" @@ -16103,10 +16000,16 @@ msgstr "" msgid "Deprecated Functions" msgstr "" -msgid "``pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)" msgstr "" -msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)" +msgstr "" + +msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)" +msgstr "" + +msgid "pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)" msgstr "" msgid "pgRouting 3.3" @@ -16140,6 +16043,9 @@ msgid "" "`_" msgstr "" +msgid "pgr_maxCardinalityMatch(text,boolean)" +msgstr "" + msgid "" "Ignoring optional boolean parameter, as the algorithm works only for " "undirected graphs." @@ -16381,12 +16287,6 @@ msgstr "" msgid "Removing support for Boost v1.53, v1.54 & v1.55" msgstr "" -msgid "pgr_bellmanFord(Combinations)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(Combinations)" -msgstr "" - msgid "pgr_bipartite" msgstr "" @@ -16396,9 +16296,6 @@ msgstr "" msgid "Dijkstra Near" msgstr "" -msgid "pgr_edwardMoore(Combinations)" -msgstr "" - msgid "pgr_isPlanar" msgstr "" @@ -16408,51 +16305,15 @@ msgstr "" msgid "pgr_makeConnected" msgstr "" -msgid "pgr_maxFlowMinCost(Combinations)" -msgstr "" - -msgid "pgr_maxFlowMinCost_Cost(Combinations)" -msgstr "" - msgid "Astar" msgstr "" -msgid "pgr_aStar(Combinations)" -msgstr "" - -msgid "pgr_aStarCost(Combinations)" -msgstr "" - msgid "Bidirectional Astar" msgstr "" -msgid "pgr_bdAstar(Combinations)" -msgstr "" - -msgid "pgr_bdAstarCost(Combinations)" -msgstr "" - msgid "Bidirectional Dijkstra" msgstr "" -msgid "pgr_bdDijkstra(Combinations)" -msgstr "" - -msgid "pgr_bdDijkstraCost(Combinations)" -msgstr "" - -msgid "pgr_boykovKolmogorov(Combinations)" -msgstr "" - -msgid "pgr_edmondsKarp(Combinations)" -msgstr "" - -msgid "pgr_maxFlow(Combinations)" -msgstr "" - -msgid "pgr_pushRelabel(Combinations)" -msgstr "" - msgid "pgRouting 3.1" msgstr "" @@ -16914,6 +16775,9 @@ msgstr "" msgid "Components family" msgstr "" +msgid "pgr_connectedComponents" +msgstr "" + msgid "pgr_strongComponents" msgstr "" @@ -17127,6 +16991,9 @@ msgstr "" msgid "pgr_drivingDistance" msgstr "" +msgid "pgr_KSP" +msgstr "" + msgid "pgr_dijkstraVia (proposed)" msgstr "" @@ -17347,9 +17214,6 @@ msgstr "" msgid "pgr_bdAstar(one to one)" msgstr "" -msgid "New Proposed functions" -msgstr "" - msgid "pgr_bdAstarCostMatrix" msgstr "" @@ -17436,10 +17300,10 @@ msgid "" " on Github." msgstr "" -msgid "pgr_bdDijkstra" +msgid "New Function." msgstr "" -msgid "New Proposed Signatures" +msgid "pgr_bdDijkstra" msgstr "" msgid "pgr_astar(one to many)" @@ -17466,6 +17330,9 @@ msgstr "" msgid "pgr_astarCostMatrix" msgstr "" +msgid "Deprecated signatures." +msgstr "" + msgid "pgr_bddijkstra - use pgr_bdDijkstra instead" msgstr "" @@ -17687,6 +17554,9 @@ msgstr "" msgid "Improvements" msgstr "" +msgid "pgr_nodeNetwork" +msgstr "" + msgid "Adding a row_where and outall optional parameters" msgstr "" @@ -17790,18 +17660,12 @@ msgstr "" msgid "pgr_dijkstra(many to many)" msgstr "" -msgid "pgr_drivingDistance(multiple vertices)" -msgstr "" - msgid "Refactored" msgstr "" msgid "pgr_dijkstra(one to one)" msgstr "" -msgid "pgr_drivingDistance(single vertex)" -msgstr "" - msgid "" "pgr_alphaShape function now can generate better (multi)polygon with holes" " and alpha parameter." @@ -18516,7 +18380,7 @@ msgid "" msgstr "" msgid "" -"pgRouting suplies some functions to create a routing topology and to " +"pgRouting supplies some functions to create a routing topology and to " "analyze the topology." msgstr "" diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po index eab7937eab..1f7a4e7c0e 100644 --- a/locale/es/LC_MESSAGES/index.po +++ b/locale/es/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-09-29 16:37+0000\n" diff --git a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po index 89e257a6ce..a518ce74fa 100644 --- a/locale/es/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/es/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Pedro Jose Rios Vergara , 2022. @@ -8,7 +8,7 @@ # DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-10-10 19:43+0000\n" diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po index 94d698138c..bcd74129d6 100644 --- a/locale/ja/LC_MESSAGES/index.po +++ b/locale/ja/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2024-05-01 03:45+0000\n" diff --git a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po index 03a8e94e1d..b066408dc9 100644 --- a/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ja/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , 2022. # Translators: @@ -18,7 +18,7 @@ # Celia Virginia Vergara Castillo , 2024. msgid "" msgstr "" -"Project-Id-Version: PROJECT VERSION 3.7.1\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-09-23 01:16+0000\n" diff --git a/locale/ko/LC_MESSAGES/index.po b/locale/ko/LC_MESSAGES/index.po index cbb8231af2..9b4ec98d7a 100644 --- a/locale/ko/LC_MESSAGES/index.po +++ b/locale/ko/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2022-11-15 15:30+0000\n" diff --git a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po index 288efe44eb..ceb795f699 100644 --- a/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/ko/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2022. # Hyung-Gyu Ryoo , 2022. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2022-12-13 12:30+0000\n" diff --git a/locale/pot/index.pot b/locale/pot/index.pot index 2938ac31f0..5eb079c0e4 100644 --- a/locale/pot/index.pot +++ b/locale/pot/index.pot @@ -1,12 +1,12 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 52b33b4fcf..5a847a53fc 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -1,14 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-06 09:19-0600\n" +"POT-Creation-Date: 2025-02-23 10:17-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -268,6 +268,9 @@ msgstr "" msgid ":ref:`search`" msgstr "" +msgid "Boost Graph inside" +msgstr "" + msgid "DFS - Category" msgstr "" @@ -595,7 +598,7 @@ msgstr "" msgid "References" msgstr "" -msgid "`Boost's metric appro's metric approximation `__" +msgid "`Boost: metric TSP approx `__" msgstr "" msgid "`University of Waterloo TSP `__" @@ -1486,7 +1489,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Vehicle_routing_problem" msgstr "" -msgid "The queries use the :doc:`sampledata` network." +msgid ":doc:`sampledata`" msgstr "" msgid "A* - Family of functions" @@ -1636,7 +1639,7 @@ msgstr "" msgid ":doc:`bdAstar-family`" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/astar_search.html" +msgid "`Boost: A* search `__" msgstr "" msgid "https://en.wikipedia.org/wiki/A*_search_algorithm" @@ -2416,6 +2419,9 @@ msgstr "" msgid ":doc:`aStar-family`" msgstr "" +msgid "`Boost `__" +msgstr "" + msgid "Bidirectional Dijkstra - Family of functions" msgstr "" @@ -2530,19 +2536,7 @@ msgstr "" msgid "Identifier of the color of the edge." msgstr "" -msgid "`Boost: Sequential Vertex Coloring algorithm documentation `__" -msgstr "" - -msgid "`Wikipedia: Graph coloring `__" -msgstr "" - -msgid "`Boost: is_bipartite `__" -msgstr "" - -msgid "`Wikipedia: bipartite graph `__" -msgstr "" - -msgid "`Boost: Edge Coloring Algorithm documentation `__" +msgid "`Boost: `__" msgstr "" msgid "Components - Family of functions" @@ -3007,9 +3001,6 @@ msgstr "" msgid "Now, the routing graph has an edge connecting with node :math:`7`." msgstr "" -msgid ":doc:`sampledata`" -msgstr "" - msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" @@ -3943,21 +3934,54 @@ msgstr "" msgid "Current release" msgstr "" -msgid "pgRouting 3.7.2 Release Notes" +msgid "pgRouting 3.8.0 Release Notes" msgstr "" msgid "No Changes Yet" msgstr "" -msgid "pgRouting 3.7.1 Release Notes" +msgid "pgRouting 3.7.3 Release Notes" msgstr "" -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.1 `__" +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.3 `__" +msgstr "" + +msgid "`#2731 `__ Build Failure on Ubuntu 22" +msgstr "" + +msgid "pgRouting 3.7.2 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.2 `__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "`#2713 `__ cmake missing some policies and min version" +msgstr "" + +msgid "Using OLD policies: CMP0148, CMP0144, CMP0167" +msgstr "" + +msgid "Minimum cmake version 3.12" msgstr "" msgid "Bug fixes" msgstr "" +msgid "`#2707 `__ Build failure in pgRouting 3.7.1 on Alpine" +msgstr "" + +msgid "`#2706 `__ winnie crashing on pgr_betweennessCentrality" +msgstr "" + +msgid "pgRouting 3.7.1 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.1 `__" +msgstr "" + msgid "`#2680 `__ fails to compile under mingw64 gcc 13.2" msgstr "" @@ -4039,7 +4063,7 @@ msgstr "" msgid "``pgr_lineGraph``" msgstr "" -msgid "Promoted to **proposed** signature." +msgid "Function promoted to proposed." msgstr "" msgid "Works for directed and undirected graphs." @@ -4063,9 +4087,6 @@ msgstr "" msgid "Kruskal - Family of functions" msgstr "" -msgid "Boost Graph Inside" -msgstr "" - msgid "Kruskal's algorithm is a greedy minimum spanning tree algorithm that in each cycle finds and adds the edge of the least possible weight that connects any two trees in the forest." msgstr "" @@ -4099,7 +4120,7 @@ msgstr "" msgid "Migrating functions" msgstr "" -msgid "Migration of ``pgr_aStar``" +msgid "Migration of pgr_aStar``" msgstr "" msgid "Starting from `v3.6.0 `__" @@ -4108,13 +4129,13 @@ msgstr "" msgid "Signatures to be migrated:" msgstr "" -msgid "``pgr_aStar`` (`One to One`)" +msgid "pgr_aStar(One to One)" msgstr "" -msgid "``pgr_aStar`` (`One to Many`)" +msgid "pgr_aStar(One to Many)" msgstr "" -msgid "``pgr_aStar`` (`Many to One`)" +msgid "pgr_aStar(Many to One)" msgstr "" msgid "Before Migration" @@ -4126,13 +4147,13 @@ msgstr "" msgid "Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing:" msgstr "" -msgid "``pgr_aStar`` (`One to One`) does not have ``start_vid`` and ``end_vid``." +msgid "pgr_aStar(One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "``pgr_aStar`` (`One to Many`) does not have ``start_vid``." +msgid "pgr_aStar(One to Many) does not have ``start_vid``." msgstr "" -msgid "``pgr_aStar`` (`Many to One`) does not have ``end_vid``." +msgid "pgr_aStar(Many to One) does not have ``end_vid``." msgstr "" msgid "Migration" @@ -4141,19 +4162,25 @@ msgstr "" msgid "Be aware of the existence of the additional columns." msgstr "" -msgid "In ``pgr_aStar`` (`One to One`)" +msgid "In pgr_aStar(One to One)" msgstr "" -msgid "``start_vid`` contains the **start vid** parameter value." +msgid "start_vid`` contains the **start vid** parameter value." msgstr "" -msgid "``end_vid`` contains the **end vid** parameter value." +msgid "end_vid`` contains the **end vid** parameter value." msgstr "" -msgid "In ``pgr_aStar`` (`One to Many`)" +msgid "In pgr_aStar(One to Many)" msgstr "" -msgid "In ``pgr_aStar`` (`Many to One`)" +msgid "``start_vid`` contains the **start vid** parameter value." +msgstr "" + +msgid "In pgr_aStar(Many to One)" +msgstr "" + +msgid "``end_vid`` contains the **end vid** parameter value." msgstr "" msgid "If needed filter out the added columns, for example:" @@ -4171,31 +4198,31 @@ msgstr "" msgid "Migration of ``pgr_bdAstar``" msgstr "" -msgid "``pgr_bdAstar`` (`One to One`)" +msgid "pgr_bdAstar(One to One)" msgstr "" -msgid "``pgr_bdAstar`` (`One to Many`)" +msgid "pgr_bdAstar(One to Many)" msgstr "" -msgid "``pgr_bdAstar`` (`Many to One`)" +msgid "pgr_bdAstar(Many to One)" msgstr "" -msgid "``pgr_bdAstar`` (`One to One`) does not have ``start_vid`` and ``end_vid``." +msgid "pgr_bdAstar(One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "``pgr_bdAstar`` (`One to Many`) does not have ``start_vid``." +msgid "pgr_bdAstar(One to Many) does not have ``start_vid``." msgstr "" -msgid "``pgr_bdAstar`` (`Many to One`) does not have ``end_vid``." +msgid "pgr_bdAstar(Many to One) does not have ``end_vid``." msgstr "" -msgid "In ``pgr_bdAstar`` (`One to One`)" +msgid "In pgr_bdAstar(One to One)" msgstr "" -msgid "In ``pgr_bdAstar`` (`One to Many`)" +msgid "In pgr_bdAstar(One to Many)" msgstr "" -msgid "In ``pgr_bdAstar`` (`Many to One`)" +msgid "In pgr_bdAstar(Many to One)" msgstr "" msgid "Migration of ``pgr_dijkstra``" @@ -4204,31 +4231,31 @@ msgstr "" msgid "Starting from `v3.5.0 `__" msgstr "" -msgid "``pgr_dijkstra`` (`One to One`)" +msgid "pgr_dijkstra(One to One)" msgstr "" -msgid "``pgr_dijkstra`` (`One to Many`)" +msgid "pgr_dijkstra(One to Many)" msgstr "" -msgid "``pgr_dijkstra`` (`Many to One`)" +msgid "pgr_dijkstra(Many to One)" msgstr "" -msgid "``pgr_dijkstra`` (`One to One`) does not have ``start_vid`` and ``end_vid``." +msgid "pgr_dijkstra(One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "``pgr_dijkstra`` (`One to Many`) does not have ``start_vid``." +msgid "pgr_dijkstra(One to Many) does not have ``start_vid``." msgstr "" -msgid "``pgr_dijkstra`` (`Many to One`) does not have ``end_vid``." +msgid "pgr_dijkstra(Many to One) does not have ``end_vid``." msgstr "" -msgid "In ``pgr_dijkstra`` (`One to One`)" +msgid "In pgr_dijkstra(One to One)" msgstr "" -msgid "In ``pgr_dijkstra`` (`One to Many`)" +msgid "In pgr_dijkstra(One to Many)" msgstr "" -msgid "In ``pgr_dijkstra`` (`Many to One`)" +msgid "In pgr_dijkstra(Many to One)" msgstr "" msgid "If needed add the new columns, for example:" @@ -4252,10 +4279,10 @@ msgstr "" msgid "|result-spantree|" msgstr "" -msgid "``pgr_drivingdistance`` (Single vertex)" +msgid "pgr_drivingdistance(Single vertex)" msgstr "" -msgid "``pgr_drivingdistance`` (Multiple vertices)" +msgid "pgr_drivingdistance(Multiple vertices)" msgstr "" msgid "Output columns were |result-dij-dd|" @@ -4273,6 +4300,9 @@ msgstr "" msgid "Be aware of the existence and name change of the result columns." msgstr "" +msgid "``pgr_drivingdistance`` (Single vertex)" +msgstr "" + msgid "Using `this `__ example." msgstr "" @@ -4285,6 +4315,9 @@ msgstr "" msgid "If needed filter out the added columns, for example, to return the original columns" msgstr "" +msgid "``pgr_drivingdistance`` (Multiple vertices)" +msgstr "" + msgid "Using `this `__ example." msgstr "" @@ -4327,7 +4360,7 @@ msgstr "" msgid "Kruskal single vertex" msgstr "" -msgid "Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected functions." +msgid "Using pgr_KruskalDD`` as example. Migration is similar to al the affected functions." msgstr "" msgid "Comparing with `this `__ example." @@ -4339,6 +4372,9 @@ msgstr "" msgid "Kruskal multiple vertices" msgstr "" +msgid "Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected functions." +msgstr "" + msgid "Comparing with `this `__ example." msgstr "" @@ -4354,7 +4390,7 @@ msgstr "" msgid "|nksp-result|" msgstr "" -msgid "``pgr_KSP`` (One to One)" +msgid "pgr_KSP(One to One)" msgstr "" msgid "Output columns were |ksp-result|" @@ -4363,7 +4399,10 @@ msgstr "" msgid "the columns ``start_vid`` and ``end_vid`` do not exist." msgstr "" -msgid "``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``." +msgid "pgr_KSP(One to One) does not have ``start_vid`` and ``end_vid``." +msgstr "" + +msgid "``pgr_KSP`` (One to One)" msgstr "" msgid "Using `this `__ example." @@ -4399,7 +4438,7 @@ msgstr "" msgid "New signature" msgstr "" -msgid "``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." +msgid "pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." msgstr "" msgid "The optional flag ``directed`` is removed." @@ -4429,7 +4468,7 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" -msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgid "Migration of pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" msgstr "" msgid "Starting from `v3.7.0 `__ :doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns are being standardized." @@ -4447,6 +4486,9 @@ msgstr "" msgid "Prim multiple vertices" msgstr "" +msgid "Using pgr_primDD`` as example. Migration is similar to al the affected functions." +msgstr "" + msgid "Comparing with `this `__ example." msgstr "" @@ -4477,9 +4519,6 @@ msgstr "" msgid "``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "" -msgid "``pgr_withPointsDD`` (`Multiple vertices`)" -msgstr "" - msgid "Output columns were |result-m-1-no-seq|" msgstr "" @@ -4579,7 +4618,7 @@ msgstr "" msgid "And ``driving side`` parameter changed from named optional to unnamed compulsory **driving side** and its validity differ for directed and undirected graphs." msgstr "" -msgid "``pgr_withPointsKSP`` (`One to One`)" +msgid "pgr_withPointsKSP(One to One)" msgstr "" msgid "Output columns were |old-pid-result|" @@ -4588,6 +4627,9 @@ msgstr "" msgid "New output columns are |nksp-result|" msgstr "" +msgid "``pgr_withPointsKSP`` (One to One)" +msgstr "" + msgid "Using `this `__ example." msgstr "" @@ -4846,7 +4888,7 @@ msgstr "" msgid ":doc:`pgr_trsp`:" msgstr "" -msgid "Migration of ``pgr_trsp`` (Edges)" +msgid "Migration of pgr_trsp(Edges)" msgstr "" msgid "The integral types of the ``sql`` can only be ``INTEGER``." @@ -6208,7 +6250,7 @@ msgstr "" msgid "Upgrading the database" msgstr "" -msgid "To upgrade pgRouting in the database to version 3.7.2 use the following command:" +msgid "To upgrade pgRouting in the database to version 3.8.0 use the following command:" msgstr "" msgid "More information can be found in https://www.postgresql.org/docs/current/sql-createextension.html" @@ -6592,7 +6634,7 @@ msgstr "" msgid ":doc:`migration`" msgstr "" -msgid "pgr_KSP" +msgid "``pgr_KSP``" msgstr "" msgid "``pgr_KSP`` — Yen's algorithm for K shortest paths using Dijkstra." @@ -6607,25 +6649,25 @@ msgstr "" msgid "Result columns standarized to: |nksp-result|" msgstr "" -msgid "``pgr_ksp`` (One to One)" +msgid "pgr_ksp(One to One)" msgstr "" msgid "Added ``start_vid`` and ``end_vid`` result columns." msgstr "" -msgid "New overload functions:" +msgid "New proposed signatures:" msgstr "" -msgid "``pgr_ksp`` (One to Many)" +msgid "pgr_ksp(One to Many)" msgstr "" -msgid "``pgr_ksp`` (Many to One)" +msgid "pgr_ksp(Many to One)" msgstr "" -msgid "``pgr_ksp`` (Many to Many)" +msgid "pgr_ksp(Many to Many)" msgstr "" -msgid "``pgr_ksp`` (Combinations)" +msgid "pgr_ksp(Combinations)" msgstr "" msgid "Version 2.1.0" @@ -6640,12 +6682,15 @@ msgstr "" msgid "Version 2.0.0" msgstr "" -msgid "**Official** function" +msgid "Official function." msgstr "" msgid "The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the number of shortest paths desired." msgstr "" +msgid "|Boost| Boost Graph Inside" +msgstr "" + msgid "Signatures" msgstr "" @@ -6757,7 +6802,7 @@ msgstr "" msgid "``pgr_TSP``" msgstr "" -msgid "``pgr_TSP`` - Aproximation using *metric* algorithm." +msgid "pgr_TSP`` - Aproximation using *metric* algorithm." msgstr "" msgid "Availability:" @@ -6934,7 +6979,7 @@ msgstr "" msgid "``pgr_TSPeuclidean``" msgstr "" -msgid "``pgr_TSPeuclidean`` - Aproximation using *metric* algorithm." +msgid "pgr_TSPeuclidean`` - Aproximation using *metric* algorithm." msgstr "" msgid "The Simulated Annealing Algorithm related parameters are ignored: `max_processing_time`, `tries_per_temperature`, `max_changes_per_temperature`, `max_consecutive_non_changes`, `initial_temperature`, `final_temperature`, `cooling_factor`, `randomize`" @@ -6946,7 +6991,7 @@ msgstr "" msgid "Name change from pgr_eucledianTSP" msgstr "" -msgid "New **Official** function" +msgid "New official function." msgstr "" msgid "Any duplicated identifier will be ignored. The coordinates that will be kept" @@ -7015,9 +7060,6 @@ msgstr "" msgid "Visualy, The first image is the `optimal solution `__ and the second image is the solution obtained with ``pgr_TSPeuclidean``." msgstr "" -msgid ":doc:`sampledata` network." -msgstr "" - msgid "``pgr_aStar``" msgstr "" @@ -7027,43 +7069,34 @@ msgstr "" msgid "Standarizing output columns to |short-generic-result|" msgstr "" -msgid "``pgr_aStar`` (`One to One`_) added ``start_vid`` and ``end_vid`` columns." +msgid "pgr_aStar(One to One) added ``start_vid`` and ``end_vid`` columns." msgstr "" -msgid "``pgr_aStar`` (`One to Many`_) added ``end_vid`` column." +msgid "pgr_aStar(One to Many) added ``end_vid`` column." msgstr "" -msgid "``pgr_aStar`` (`Many to One`_) added ``start_vid`` column." +msgid "pgr_aStar(Many to One) added ``start_vid`` column." msgstr "" msgid "Version 3.2.0" msgstr "" -msgid "New **proposed** signature:" +msgid "New proposed signature:" msgstr "" -msgid "``pgr_aStar`` (`Combinations`_)" -msgstr "" - -msgid "Version 2.4.0" -msgstr "" - -msgid "New **Proposed** signatures:" -msgstr "" - -msgid "``pgr_aStar`` (`One to Many`_)" +msgid "pgr_aStar(Combinations)" msgstr "" -msgid "``pgr_aStar`` (`Many to One`_)" +msgid "Function promoted to official." msgstr "" -msgid "``pgr_aStar`` (`Many to Many`_)" +msgid "Version 2.4.0" msgstr "" -msgid "Signature change on ``pgr_astar`` (`One to One`_)" +msgid "pgr_aStar(Many to Many)" msgstr "" -msgid "**Official** ``pgr_aStar`` (`One to One`_)" +msgid "Signature change on pgr_astar(One to One)" msgstr "" msgid "The results are equivalent to the union of the results of the `pgr_aStar(` `One to One`_ `)` on the:" @@ -7126,16 +7159,19 @@ msgstr "" msgid "Manually assigned vertex combinations." msgstr "" -msgid "pgr_aStarCost" +msgid "https://www.boost.org/libs/graph/doc/astar_search.html" +msgstr "" + +msgid "``pgr_aStarCost``" msgstr "" msgid "``pgr_aStarCost`` - Total cost of the shortest path using the A* algorithm." msgstr "" -msgid "``pgr_aStarCost`` (`Combinations`_)" +msgid "pgr_aStarCost(Combinations)" msgstr "" -msgid "New **proposed** function" +msgid "New proposed function." msgstr "" msgid "The ``pgr_aStarCost`` function sumarizes of the cost of the shortest path using the A* algorithm." @@ -7312,7 +7348,7 @@ msgstr "" msgid "`ST_ConcaveHull `__" msgstr "" -msgid "pgr_analyzeGraph" +msgid "``pgr_analyzeGraph``" msgstr "" msgid "``pgr_analyzeGraph`` — Analyzes the network topology." @@ -7525,9 +7561,6 @@ msgstr "" msgid "Selecting the rows WHERE the geometry is near the place='myhouse' of the table ``othertable``. (note the use of quote_literal)" msgstr "" -msgid "The examples use the :doc:`sampledata` network." -msgstr "" - msgid ":doc:`pgr_analyzeOneWay`" msgstr "" @@ -7537,7 +7570,7 @@ msgstr "" msgid ":doc:`pgr_nodeNetwork` to create nodes to a not noded edge table." msgstr "" -msgid "pgr_analyzeOneWay" +msgid "``pgr_analyzeOneWay``" msgstr "" msgid "``pgr_analyzeOneWay`` — Analyzes oneway Sstreets and identifies flipped segments." @@ -7642,7 +7675,7 @@ msgstr "" msgid "Version 2.5.0" msgstr "" -msgid "New **experimental** function" +msgid "New experimental function." msgstr "" msgid "Those vertices that belong to more than one biconnected component are called articulation points or, equivalently, cut vertices. Articulation points are vertices whose removal would increase the number of connected components in the graph. This implementation can only be used with an undirected graph." @@ -7669,7 +7702,7 @@ msgstr "" msgid "Nodes in red are the articulation points." msgstr "" -msgid "Boost: `Biconnected components & articulation points `__" +msgid "`Boost: Biconnected components & articulation points `__" msgstr "" msgid "wikipedia: `Biconnected component `__" @@ -7681,34 +7714,25 @@ msgstr "" msgid "``pgr_bdAstar`` — Shortest path using the bidirectional A* algorithm." msgstr "" -msgid "``pgr_bdAstar`` (`One to One`_) added ``start_vid`` and ``end_vid`` columns." -msgstr "" - -msgid "``pgr_bdAstar`` (`One to Many`_) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_bdAstar`` (`Many to One`_) added ``start_vid`` column." +msgid "pgr_bdAstar(One to One) added ``start_vid`` and ``end_vid`` columns." msgstr "" -msgid "``pgr_bdAstar`` (`Combinations`_)" +msgid "pgr_bdAstar(One to Many) added ``end_vid`` column." msgstr "" -msgid "``pgr_bdAstar`` (`One to Many`_)" +msgid "pgr_bdAstar(Many to One) added ``start_vid`` column." msgstr "" -msgid "``pgr_bdAstar`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_bdAstar`` (`Many to Many`_)" +msgid "pgr_bdAstar(Combinations)" msgstr "" -msgid "Signature change on ``pgr_bdAstar`` (`One to One`_)" +msgid "pgr_bdAstar(Many to Many)" msgstr "" -msgid "**Official** ``pgr_bdAstar`` (`One to One`_)" +msgid "Signature change on pgr_bdAstar(One to One)" msgstr "" -msgid "The results are equivalent to the union of the results of the `pgr_bdAStar(` `One to One`_ `)` on the:" +msgid "The results are equivalent to the union of the results of the pgr_bdAStar(One to One) on the:" msgstr "" msgid "pgr_bdAstar(`Edges SQL`_, **start vid**, **end vid**, [**options**])" @@ -7726,13 +7750,16 @@ msgstr "" msgid "pgr_bdAstar(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgstr "" -msgid "pgr_bdAstarCost" +msgid "**options:** [directed, heuristic, factor, epsilon]``" +msgstr "" + +msgid "``pgr_bdAstarCost``" msgstr "" msgid "``pgr_bdAstarCost`` - Total cost of the shortest path using the bidirectional A* algorithm." msgstr "" -msgid "``pgr_bdAstarCost`` (`Combinations`_)" +msgid "pgr_bdAstarCost(Combinations)" msgstr "" msgid "The ``pgr_bdAstarCost`` function sumarizes of the cost of the shortest path using the bidirectional A* algorithm." @@ -7771,25 +7798,22 @@ msgstr "" msgid "``pgr_bdDijkstra`` — Returns the shortest path using Bidirectional Dijkstra algorithm." msgstr "" -msgid "pgr_bdDijkstra(`Combinations`_)" -msgstr "" - -msgid "New **Proposed** functions:" +msgid "pgr_bdDijkstra(Combinations)" msgstr "" -msgid "``pgr_bdDijkstra`` (`One to Many`_)" +msgid "New Proposed signatures:" msgstr "" -msgid "``pgr_bdDijkstra`` (`Many to One`_)" +msgid "pgr_bdDijkstra(One to Many)" msgstr "" -msgid "``pgr_bdDijkstra`` (`Many to Many`_)" +msgid "pgr_bdDijkstra(Many to One)" msgstr "" -msgid "Signature change on ``pgr_bdDijsktra`` (`One to One`_)" +msgid "pgr_bdDijkstra(Many to Many)" msgstr "" -msgid "**Official** ``pgr_bdDijkstra`` (`One to One`_)" +msgid "Signature change on pgr_bdDijsktra(One to One)" msgstr "" msgid "pgr_bdDijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -7834,9 +7858,6 @@ msgstr "" msgid "Using a combinations table on an **undirected** graph" msgstr "" -msgid "https://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf" -msgstr "" - msgid "https://en.wikipedia.org/wiki/Bidirectional_search" msgstr "" @@ -7846,7 +7867,7 @@ msgstr "" msgid "``pgr_bdDijkstraCost`` — Returns the shortest path's cost using Bidirectional Dijkstra algorithm." msgstr "" -msgid "``pgr_bdDijkstraCost`` (`Combinations`_)" +msgid "pgr_bdDijkstraCost(Combinations)" msgstr "" msgid "The ``pgr_bdDijkstraCost`` function sumarizes of the cost of the shortest path using the bidirectional Dijkstra Algorithm." @@ -7894,25 +7915,10 @@ msgstr "" msgid "``pgr_bellmanFord`` — Shortest path using Bellman-Ford algorithm." msgstr "" -msgid "New **experimental** signature:" -msgstr "" - -msgid "``pgr_bellmanFord`` (`Combinations`_)" -msgstr "" - -msgid "New **experimental** signatures:" -msgstr "" - -msgid "``pgr_bellmanFord`` (`One to One`_)" +msgid "New experimental signature:" msgstr "" -msgid "``pgr_bellmanFord`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_bellmanFord`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_bellmanFord`` (`Many to Many`_)" +msgid "pgr_bellmanFord(Combinations)" msgstr "" msgid "Bellman-Ford's algorithm, is named after Richard Bellman and Lester Ford, who first published it in 1958 and 1956, respectively.It is a graph search algorithm that computes shortest paths from a starting vertex (``start_vid``) to an ending vertex (``end_vid``) in a graph where some of the edge weights may be negative. Though it is more versatile, it is slower than Dijkstra's algorithm.This implementation can be used with a directed graph and an undirected graph." @@ -7960,10 +7966,16 @@ msgstr "" msgid "Using a combinations table on an **undirected** graph." msgstr "" +msgid "`Boost: Belman Ford `__" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" msgstr "" -msgid "``pgr_betweennessCentrality``" +msgid "Boost Graph Inside" +msgstr "" + +msgid "``pgr_betweennessCentrality`` - Experimental" msgstr "" msgid "``pgr_betweennessCentrality`` - Calculates the relative betweeness centrality using Brandes Algorithm" @@ -7972,7 +7984,7 @@ msgstr "" msgid "Version 3.7.0" msgstr "" -msgid "New **experimental** function:" +msgid "pgr_betweennessCentrality``" msgstr "" msgid "The Brandes Algorithm takes advantage of the sparse graphs for evaluating the betweenness centrality score of all vertices." @@ -8032,10 +8044,7 @@ msgstr "" msgid "Relative betweenness centrality score of the vertex (will be in range [0,1])" msgstr "" -msgid "Boost's `betweenness_centrality `_" -msgstr "" - -msgid "Queries use the :doc:`sampledata` network." +msgid "`Boost: betweenness centrality `_" msgstr "" msgid "``pgr_biconnectedComponents``" @@ -8047,10 +8056,10 @@ msgstr "" msgid "Result columns change:" msgstr "" -msgid "``n_seq`` is removed" +msgid "n_seq`` is removed" msgstr "" -msgid "``seq`` changed type to ``BIGINT``" +msgid "seq`` changed type to ``BIGINT``" msgstr "" msgid "The biconnected components of an undirected graph are the maximal subsets of vertices such that the removal of a vertex from particular component will not disconnect the component. Unlike connected components, vertices may belong to multiple biconnected components. Vertices can be present in multiple biconnected components, but each edge can only be contained in a single biconnected component." @@ -8086,9 +8095,6 @@ msgstr "" msgid "Identifier of the edge that belongs to the ``component``." msgstr "" -msgid "Boost: `Biconnected components `__" -msgstr "" - msgid "``pgr_binaryBreadthFirstSearch`` - Experimental" msgstr "" @@ -8098,19 +8104,7 @@ msgstr "" msgid "Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any non-negative integer, is termed as a 'binary graph'." msgstr "" -msgid "pgr_binaryBreadthFirstSearch(`Combinations`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`One to One`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`One to Many`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`Many to One`_)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(`Many to Many`_)" +msgid "pgr_binaryBreadthFirstSearch(Combinations)" msgstr "" msgid "It is well-known that the shortest paths between a single source and all other vertices can be found using Breadth First Search in :math:`O(|E|)` in an unweighted graph, i.e. the distance is the minimal number of edges that you need to traverse from the source to another vertex. We can interpret such a graph also as a weighted graph, where every edge has the weight :math:`1`. If not alledges in graph have the same weight, that we need a more general algorithm, like Dijkstra's Algorithm which runs in :math:`O(|E|log|V|)` time." @@ -8143,21 +8137,21 @@ msgstr "" msgid "**Note:** Using the :doc:`sampledata` Network as all weights are same (i.e :math:`1``)" msgstr "" +msgid "`Boost: Breadth First Search `__" +msgstr "" + msgid "https://cp-algorithms.com/graph/01_bfs.html" msgstr "" msgid "https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Specialized_variants" msgstr "" -msgid "pgr_bipartite -Experimental" +msgid "``pgr_bipartite`` - Experimental" msgstr "" msgid "``pgr_bipartite`` — Disjoint sets of vertices such that no two vertices within the same set are adjacent." msgstr "" -msgid "New **experimental** signature" -msgstr "" - msgid "A bipartite graph is a graph with two sets of vertices which are connected to each other, but not within themselves. A bipartite graph is possible if the graph coloring is possible using two colors such that vertices in a set are colored with the same color." msgstr "" @@ -8194,25 +8188,22 @@ msgstr "" msgid "Edges in blue represent odd length cycle subgraph." msgstr "" -msgid "``pgr_boykovKolmogorov``" -msgstr "" - -msgid "``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Boykov Kolmogorov algorithm." +msgid "`Boost: is_bipartite `__" msgstr "" -msgid "New **proposed** signature" +msgid "`Wikipedia: bipartite graph `__" msgstr "" -msgid "``pgr_boykovKolmogorov`` (`Combinations`_)" +msgid "``pgr_boykovKolmogorov``" msgstr "" -msgid "Renamed from ``pgr_maxFlowBoykovKolmogorov``" +msgid "``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Boykov Kolmogorov algorithm." msgstr "" -msgid "**Proposed** function" +msgid "pgr_boykovKolmogorov(Combinations)" msgstr "" -msgid "New **Experimental** function" +msgid "Renamed from ``pgr_maxFlowBoykovKolmogorov``" msgstr "" msgid "Running time: Polynomial" @@ -8251,7 +8242,7 @@ msgstr "" msgid "Using a combinations table, equivalent to calculating result from vertices :math:`\\{5, 6\\}` to vertices :math:`\\{10, 15, 14\\}`." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html" +msgid "`Boost: Boykov Kolmogorov max flow `__" msgstr "" msgid "``pgr_breadthFirstSearch`` - Experimental" @@ -8260,12 +8251,6 @@ msgstr "" msgid "``pgr_breadthFirstSearch`` — Returns the traversal order(s) using Breadth First Search algorithm." msgstr "" -msgid "``pgr_breadthFirstSearch`` (`Single Vertex`_)" -msgstr "" - -msgid "``pgr_breadthFirstSearch`` (`Multiple Vertices`_)" -msgstr "" - msgid "Provides the Breadth First Search traversal order from a root vertex to a particular depth." msgstr "" @@ -8284,7 +8269,7 @@ msgstr "" msgid "pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**])" msgstr "" -msgid "**options:** ``[max_depth, directed]``" +msgid "**options:** [max_depth, directed]``" msgstr "" msgid "Returns set of |result-bfs|" @@ -8320,9 +8305,6 @@ msgstr "" msgid "descending" msgstr "" -msgid "`Boost: Breadth First Search algorithm documentation `__" -msgstr "" - msgid "`Wikipedia: Breadth First Search algorithm `__" msgstr "" @@ -8356,7 +8338,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bridge_%28graph_theory%29" msgstr "" -msgid "**Supported versions**" +msgid "`Boost: connected components `__" msgstr "" msgid "``pgr_chinesePostman`` - Experimental" @@ -8407,7 +8389,7 @@ msgstr "" msgid "Minimum costs of a circuit path." msgstr "" -msgid "pgr_connectedComponents" +msgid "``pgr_connectedComponents``" msgstr "" msgid "``pgr_connectedComponents`` — Connected components of an undirected graph using a DFS-based approach." @@ -8440,7 +8422,7 @@ msgstr "" msgid "Connecting disconnected components" msgstr "" -msgid "Boost: `Connected components `__" +msgid "`Boost: Connected components `__" msgstr "" msgid "wikipedia: `Connected component `__" @@ -8596,7 +8578,7 @@ msgstr "" msgid "Only linear contraction" msgstr "" -msgid "pgr_createTopology" +msgid "``pgr_createTopology``" msgstr "" msgid "``pgr_createTopology`` — Builds a network topology based on the geometry information." @@ -8755,10 +8737,7 @@ msgstr "" msgid "This example start a clean topology, with 5 edges, and then its incremented to the rest of the edges." msgstr "" -msgid "The example uses the :doc:`sampledata` network." -msgstr "" - -msgid "pgr_createVerticesTable" +msgid "``pgr_createVerticesTable``" msgstr "" msgid "``pgr_createVerticesTable`` — Reconstructs the vertices table based on the source and target information." @@ -8929,7 +8908,7 @@ msgstr "" msgid "`Wikipedia: Cuthill-McKee Ordering `__" msgstr "" -msgid "pgr_dagShortestPath - Experimental" +msgid "``pgr_dagShortestPath`` - Experimental" msgstr "" msgid "``pgr_dagShortestPath`` — Returns the shortest path for weighted directed acyclic graphs(DAG). In particular, the DAG shortest paths algorithm implemented by Boost.Graph." @@ -8992,6 +8971,9 @@ msgstr "" msgid "Making **start_vids** the same as **end_vids**" msgstr "" +msgid "`Boost: DAG shortest paths `__" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Topological_sorting" msgstr "" @@ -9091,15 +9073,6 @@ msgstr "" msgid "Version 3.3.0" msgstr "" -msgid "Promoted to **proposed** function" -msgstr "" - -msgid "``pgr_depthFirstSearch`` (`Single Vertex`_)" -msgstr "" - -msgid "``pgr_depthFirstSearch`` (`Multiple Vertices`_)" -msgstr "" - msgid "Depth First Search algorithm is a traversal algorithm which starts from a root vertex, goes as deep as possible, and backtracks once a vertex is reached with no adjacent vertices or with all visited adjacent vertices. The traversal continues until all the vertices reachable from the root vertex are visited." msgstr "" @@ -9139,10 +9112,10 @@ msgstr "" msgid "Same as `Single vertex`_ but with edges in descending order of ``id``." msgstr "" -msgid "`Boost: Depth First Search algorithm documentation `__" +msgid "`Boost: Depth First Search `__" msgstr "" -msgid "`Boost: Undirected DFS algorithm documentation `__" +msgid "`Boost: Undirected DFS `__" msgstr "" msgid "`Wikipedia: Depth First Search algorithm `__" @@ -9157,43 +9130,28 @@ msgstr "" msgid "Version 3.5.0" msgstr "" -msgid "``pgr_dijkstra`` (`One to One`_) added ``start_vid`` and ``end_vid`` columns." +msgid "pgr_dijkstra(One to One) added ``start_vid`` and ``end_vid`` columns." msgstr "" -msgid "``pgr_dijkstra`` (`One to Many`_) added ``end_vid`` column." +msgid "pgr_dijkstra(One to Many) added ``end_vid`` column." msgstr "" -msgid "``pgr_dijkstra`` (`Many to One`_) added ``start_vid`` column." +msgid "pgr_dijkstra(Many to One) added ``start_vid`` column." msgstr "" msgid "Version 3.1.0" msgstr "" -msgid "``pgr_dijkstra`` (`Combinations`_)" -msgstr "" - -msgid "**Official** functions" +msgid "pgr_dijkstra(Combinations)" msgstr "" msgid "Version 2.2.0" msgstr "" -msgid "New **proposed** functions:" -msgstr "" - -msgid "``pgr_dijkstra`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_dijkstra`` (`Many to One`_)" +msgid "pgr_dijkstra(Many to Many)" msgstr "" -msgid "``pgr_dijkstra`` (`Many to Many`_)" -msgstr "" - -msgid "Signature change on ``pgr_dijkstra`` (`One to One`_)" -msgstr "" - -msgid "**Official** ``pgr_dijkstra`` (`One to One`_)" +msgid "Signature change on pgr_dijkstra(One to One)" msgstr "" msgid "pgr_dijkstra(`Edges SQL`_, **start vid**, **end vid**, [``directed``])" @@ -9373,6 +9331,12 @@ msgstr "" msgid "37) Using `Combinations`_" msgstr "" +msgid "e Also" +msgstr "" + +msgid "`Boost: Dijkstra shortest paths `__" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" msgstr "" @@ -9382,7 +9346,7 @@ msgstr "" msgid "``pgr_dijkstraCost`` - Total cost of the shortest path using Dijkstra algorithm." msgstr "" -msgid "``pgr_dijkstraCost`` (`Combinations`_)" +msgid "pgr_dijkstraCost(Combinations)" msgstr "" msgid "The ``pgr_dijkstraCost`` function sumarizes of the cost of the shortest path using Dijkstra Algorithm." @@ -9625,9 +9589,6 @@ msgstr "" msgid "When ``false``: ``cap`` limit per ``Start vid`` will be returned" msgstr "" -msgid "boost: https://www.boost.org/libs/graph/doc/table_of_contents.html" -msgstr "" - msgid "Wikipedia: https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" msgstr "" @@ -9772,13 +9733,16 @@ msgstr "" msgid "Added ``depth`` and ``pred`` result columns." msgstr "" -msgid "Signature change pgr_drivingDistance(single vertex)" +msgid "Signature change:" +msgstr "" + +msgid "pgr_drivingDistance(single vertex)" msgstr "" -msgid "New **Official** pgr_drivingDistance(multiple vertices)" +msgid "New official signature:" msgstr "" -msgid "Official:: pgr_drivingDistance(single vertex)" +msgid "pgr_drivingDistance(multiple vertices)" msgstr "" msgid "Using the Dijkstra algorithm, extracts all the nodes that have costs less than or equal to the value ``distance``. The edges extracted will conform to the corresponding spaning tree." @@ -9820,7 +9784,7 @@ msgstr "" msgid "From vertices :math:`\\{11, 16\\}` for a distance of :math:`3.0` on an undirected graph" msgstr "" -msgid "pgr_edgeColoring - Experimental" +msgid "``pgr_edgeColoring`` - Experimental" msgstr "" msgid "``pgr_edgeColoring`` — Returns the edge coloring of undirected and loop-free graphs" @@ -9880,13 +9844,16 @@ msgstr "" msgid "Graph coloring of pgRouting :doc:`sampledata`" msgstr "" -msgid "``pgr_edgeDisjointPaths``" +msgid "`Boost: Edge Coloring `__" msgstr "" -msgid "``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two groups of vertices." +msgid "`Wikipedia: Graph coloring `__" msgstr "" -msgid "New **proposed** function:" +msgid "``pgr_edgeDisjointPaths``" +msgstr "" + +msgid "``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two groups of vertices." msgstr "" msgid "pgr_edgeDisjointPaths(Combinations)" @@ -9952,7 +9919,7 @@ msgstr "" msgid "``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Edmonds Karp Algorithm." msgstr "" -msgid "``pgr_edmondsKarp`` (`Combinations`_)" +msgid "pgr_edmondsKarp(Combinations)" msgstr "" msgid "Renamed from ``pgr_maxFlowEdmondsKarp``" @@ -9976,31 +9943,19 @@ msgstr "" msgid "pgr_edmondsKarp(`Edges SQL`_, `Combinations SQL`_)" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html" +msgid "`Boost: edmonds_karp_max_flow `__" msgstr "" msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm" msgstr "" -msgid "``pgr_edwardMoore - Experimental``" +msgid "``pgr_edwardMoore`` - Experimental" msgstr "" msgid "``pgr_edwardMoore`` — Returns the shortest path using Edward-Moore algorithm." msgstr "" -msgid "``pgr_edwardMoore`` (`Combinations`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`One to One`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_edwardMoore`` (`Many to Many`_)" +msgid "pgr_edwardMoore(Combinations)" msgstr "" msgid "Edward Moore’s Algorithm is an improvement of the Bellman-Ford Algorithm. It can compute the shortest paths from a single source vertex to all other vertices in a weighted directed graph. The main difference between Edward Moore's Algorithm and Bellman Ford's Algorithm lies in the run time." @@ -10045,7 +10000,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Shortest_Path_Faster_Algorithm" msgstr "" -msgid "pgr_extractVertices -- Proposed" +msgid "``pgr_extractVertices`` -- Proposed" msgstr "" msgid "``pgr_extractVertices`` — Extracts the vertices information" @@ -10132,21 +10087,12 @@ msgstr "" msgid "To get the query generated used to get the vertex information, use ``dryrun := true``." msgstr "" -msgid "``pgr_findCloseEdges``" +msgid "``pgr_findCloseEdges`` - Proposed" msgstr "" msgid "``pgr_findCloseEdges`` - Finds the close edges to a point geometry." msgstr "" -msgid "New **proposed** signatures:" -msgstr "" - -msgid "``pgr_findCloseEdges`` (`One point`_)" -msgstr "" - -msgid "``pgr_findCloseEdges`` (`Many points`_)" -msgstr "" - msgid "``pgr_findCloseEdges`` - An utility function that finds the closest edge to a point geometry." msgstr "" @@ -10156,7 +10102,7 @@ msgstr "" msgid "The code to do the calculations can be obtained for further specific adjustments needed by the application." msgstr "" -msgid "``EMTPY SET`` is returned on dryrun executions" +msgid "EMTPY SET`` is returned on dryrun executions" msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**])" @@ -10165,7 +10111,7 @@ msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**])" msgstr "" -msgid "**options:** ``[cap, partial, dryrun]``" +msgid "**options:** [cap, partial, dryrun]``" msgstr "" msgid "Returns set of |result-find|" @@ -10204,6 +10150,9 @@ msgstr "" msgid "Many points" msgstr "" +msgid "**options:** ``[cap, partial, dryrun]``" +msgstr "" + msgid "Find at most :math:`2` edges close to all vertices on the points of interest table." msgstr "" @@ -10540,18 +10489,12 @@ msgstr "" msgid "Boost `floyd-Warshall `_" msgstr "" -msgid "Queries uses the :doc:`sampledata` network." -msgstr "" - msgid "``pgr_full_version``" msgstr "" msgid "``pgr_full_version`` — Get the details of pgRouting version information." msgstr "" -msgid "New **official** function" -msgstr "" - msgid "Get complete details of pgRouting version information" msgstr "" @@ -10624,9 +10567,6 @@ msgstr "" msgid "``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits algorithm." msgstr "" -msgid "``pgr_hawickCircuits``" -msgstr "" - msgid "Hawick Circuit algorithm, is published in 2008 by Ken Hawick and Health A. James. This algorithm solves the problem of detecting and enumerating circuits in graphs. It is capable of circuit enumeration in graphs with directed-arcs, multiple-arcs and self-arcs with a memory efficient and high-performance im-plementation. It is an extension of Johnson's Algorithm of finding all the elementary circuits of a directed graph." msgstr "" @@ -10723,7 +10663,7 @@ msgstr "" msgid "The new graph is not planar because it has a :math:`K_5` subgraph. Edges in blue represent :math:`K_5` subgraph." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/boyer_myrvold.html" +msgid "`Boost: Boyer Myrvold `__" msgstr "" msgid "``pgr_johnson``" @@ -10825,7 +10765,7 @@ msgstr "" msgid "pgr_kruskalDFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "pgr_lengauerTarjanDominatorTree -Experimental" +msgid "``pgr_lengauerTarjanDominatorTree`` -Experimental" msgstr "" msgid "``pgr_lengauerTarjanDominatorTree`` — Returns the immediate dominator of all vertices." @@ -10876,13 +10816,13 @@ msgstr "" msgid "Dominator tree of another component." msgstr "" -msgid "`Boost: Lengauer-Tarjan dominator tree algorithm `__" +msgid "`Boost: Lengauer-Tarjan dominator `__" msgstr "" msgid "`Wikipedia: dominator tree `__" msgstr "" -msgid "pgr_lineGraph - Proposed" +msgid "``pgr_lineGraph`` - Proposed" msgstr "" msgid "``pgr_lineGraph`` — Transforms the given graph into its corresponding edge-based graph." @@ -11098,7 +11038,7 @@ msgstr "" msgid "Full line graph of subgraph of edges :math:`\\{4, 7, 8, 10\\}`" msgstr "" -msgid "The examples of this section are based on the :doc:`sampledata` network. The examples include the subgraph including edges 4, 7, 8, and 10 with ``reverse_cost``." +msgid "The examples of this section are based on the :doc:`sampledata` The examples include the subgraph including edges 4, 7, 8, and 10 with ``reverse_cost``." msgstr "" msgid "The data" @@ -11275,13 +11215,13 @@ msgstr "" msgid "Returns set of |result-component-make|" msgstr "" -msgid "Query done on :doc:`sampledata` network gives the list of edges that are needed to connect the graph." +msgid "List of edges that are needed to connect the graph." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/make_connected.html" +msgid "`Boost: make connected `__" msgstr "" -msgid "pgr_maxCardinalityMatch" +msgid "``pgr_maxCardinalityMatch``" msgstr "" msgid "``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a graph." @@ -11290,10 +11230,10 @@ msgstr "" msgid "Deprecated signature" msgstr "" -msgid "``pgr_maxCardinalityMatch(text,boolean)``" +msgid "pgr_maxCardinalityMatch(text,boolean)``" msgstr "" -msgid "``directed => false`` when used." +msgid "directed => false`` when used." msgstr "" msgid "Renamed from ``pgr_maximumCardinalityMatching``" @@ -11335,7 +11275,7 @@ msgstr "" msgid "Identifier of the edge in the original query." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/maximum_matching.html" +msgid "`Boost: maximum_matching `__" msgstr "" msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29" @@ -11350,10 +11290,7 @@ msgstr "" msgid "``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the source(s) to the targets(s) using the Push Relabel algorithm." msgstr "" -msgid "``pgr_maxFlow`` (`Combinations`_)" -msgstr "" - -msgid "New **Proposed** function" +msgid "pgr_maxFlow(Combinations)" msgstr "" msgid "Calculates the maximum flow from the sources to the targets." @@ -11389,7 +11326,7 @@ msgstr "" msgid "Maximum flow possible from the source(s) to the target(s)" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/push_relabel_max_flow.html" +msgid "`Boost: push relabel max flow `__" msgstr "" msgid "https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm" @@ -11401,7 +11338,10 @@ msgstr "" msgid "``pgr_maxFlowMinCost`` — Calculates the edges that minimizes the total cost of the maximum flow on a graph" msgstr "" -msgid "``pgr_maxFlowMinCost`` (`Combinations`_)" +msgid "pgr_maxFlowMinCost(Combinations)" +msgstr "" + +msgid "|boost| graph inside." msgstr "" msgid "**TODO** check which statement is true:" @@ -11443,16 +11383,13 @@ msgstr "" msgid "Returns set of |result-flow-mincost|" msgstr "" -msgid "https://www.boost.org/libs/graph/doc/successive_shortest_path_nonnegative_weights.html" -msgstr "" - msgid "``pgr_maxFlowMinCost_Cost`` - Experimental" msgstr "" msgid "``pgr_maxFlowMinCost_Cost`` — Calculates the minimum total cost of the maximum flow on a graph" msgstr "" -msgid "``pgr_maxFlowMinCost_Cost`` (`Combinations`_)" +msgid "pgr_maxFlowMinCost_Cost(Combinations)" msgstr "" msgid "**The cost value of all input edges must be nonnegative.**" @@ -11485,7 +11422,7 @@ msgstr "" msgid "Minimum Cost Maximum Flow possible from the source(s) to the target(s)" msgstr "" -msgid "pgr_nodeNetwork" +msgid "``pgr_nodeNetwork``" msgstr "" msgid "``pgr_nodeNetwork`` - Nodes an network edge table." @@ -11944,7 +11881,7 @@ msgstr "" msgid "``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Push Relabel Algorithm." msgstr "" -msgid "``pgr_pushRelabel`` (`Combinations`_)" +msgid "pgr_pushRelabel(Combinations)" msgstr "" msgid "Renamed from ``pgr_maxFlowPushRelabel``" @@ -11965,15 +11902,12 @@ msgstr "" msgid "pgr_pushRelabel(`Edges SQL`_, `Combinations SQL`_)" msgstr "" -msgid "pgr_sequentialVertexColoring - Proposed" +msgid "``pgr_sequentialVertexColoring`` - Proposed" msgstr "" msgid "``pgr_sequentialVertexColoring`` — Returns the vertex coloring of an undirected graph, using greedy approach." msgstr "" -msgid "Promoted to **proposed** signature" -msgstr "" - msgid "Sequential vertex coloring algorithm is a graph coloring algorithm in which color identifiers are assigned to the vertices of a graph in a sequential manner, such that no edge connects two identically colored vertices." msgstr "" @@ -12007,7 +11941,10 @@ msgstr "" msgid "pgr_sequentialVertexColoring(`Edges SQL`_)" msgstr "" -msgid "pgr_stoerWagner - Experimental" +msgid "`Boost: Sequential Vertex Coloring `__" +msgstr "" + +msgid "``pgr_stoerWagner`` - Experimental" msgstr "" msgid "``pgr_stoerWagner`` — The min-cut of graph using stoerWagner algorithm." @@ -12076,6 +12013,9 @@ msgstr "" msgid "Using :doc:`pgr_connectedComponents`" msgstr "" +msgid "`Boost: Stoer Wagner min cut `__" +msgstr "" + msgid "https://en.wikipedia.org/wiki/Stoer%E2%80%93Wagner_algorithm" msgstr "" @@ -12085,6 +12025,12 @@ msgstr "" msgid "``pgr_strongComponents`` — Strongly connected components of a directed graph using Tarjan's algorithm based on DFS." msgstr "" +msgid "``n_seq`` is removed" +msgstr "" + +msgid "``seq`` changed type to ``BIGINT``" +msgstr "" + msgid "A strongly connected component of a directed graph is a set of vertices that are all reachable from each other." msgstr "" @@ -12100,7 +12046,7 @@ msgstr "" msgid "The strong components of the graph" msgstr "" -msgid "Boost: `Strong components `__" +msgid "`Boost: Strong components `__" msgstr "" msgid "wikipedia: `Strongly connected component `__" @@ -12154,6 +12100,9 @@ msgstr "" msgid "Graph is not a DAG" msgstr "" +msgid "`Boost: topological sort `__" +msgstr "" + msgid "``pgr_transitiveClosure`` - Experimental" msgstr "" @@ -12205,55 +12154,55 @@ msgstr "" msgid "Identifiers of the vertices that are reachable from vertex v." msgstr "" -msgid "https://en.wikipedia.org/wiki/Transitive_closure" +msgid "`Boost: transitive closure `__" msgstr "" -msgid "pgr_trsp - Proposed" +msgid "https://en.wikipedia.org/wiki/Transitive_closure" msgstr "" -msgid "``pgr_trsp`` - routing vertices with restrictions." +msgid "``pgr_trsp`` - Proposed" msgstr "" -msgid "New proposed signatures" +msgid "``pgr_trsp`` - routing vertices with restrictions." msgstr "" -msgid "``pgr_trsp`` (`One to One`_)" +msgid "pgr_trsp(One to One)" msgstr "" -msgid "``pgr_trsp`` (`One to Many`_)" +msgid "pgr_trsp(One to Many)" msgstr "" -msgid "``pgr_trsp`` (`Many to One`_)" +msgid "pgr_trsp(Many to One)" msgstr "" -msgid "``pgr_trsp`` (`Many to Many`_)" +msgid "pgr_trsp(Many to Many)" msgstr "" -msgid "``pgr_trsp`` (`Combinations`_)" +msgid "pgr_trsp(Combinations)" msgstr "" msgid "Deprecated signatures" msgstr "" -msgid "``pgr_trsp(text,integer,integer,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)``" msgstr "" -msgid "``pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)``" msgstr "" -msgid "``pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" +msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" msgstr "" -msgid "``pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" +msgid "pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" msgstr "" msgid "New prototypes" msgstr "" -msgid "``pgr_trspViaVertices``" +msgid "pgr_trspViaVertices``" msgstr "" -msgid "``pgr_trspViaEdges``" +msgid "pgr_trspViaEdges``" msgstr "" msgid "Turn restricted shortest path (TRSP) is an algorithm that receives turn restrictions in form of a query like those found in real world navigable road networks." @@ -12313,10 +12262,7 @@ msgstr "" msgid "``pgr_trspVia`` Route that goes through a list of vertices with restrictions." msgstr "" -msgid "New proposed function:" -msgstr "" - -msgid "``pgr_trspVia`` (`One Via`_)" +msgid "pgr_trspVia(One Via)" msgstr "" msgid "Given a list of vertices and a graph, this function is equivalent to finding the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :math:`i < size\\_of(via\\;vertices)` trying not to use restricted paths." @@ -12382,9 +12328,6 @@ msgstr "" msgid "``pgr_trspVia_withPoints`` - Route that goes through a list of vertices and/or points with restrictions." msgstr "" -msgid "``pgr_trspVia_withPoints`` (`One Via`_)" -msgstr "" - msgid "Given a graph, a set of restriction on the graph edges, a set of points on the graphs edges and a list of vertices, this function is equivalent to finding the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` (where :math:`vertex` can be a vertex or a point on the graph) for all :math:`i < size\\_of(via\\;vertices)` trying not to use restricted paths." msgstr "" @@ -12508,30 +12451,12 @@ msgstr "" msgid "Therefore the result ignores the ``U_turn_on_edge`` flag when set to ``false``. From the :doc:`pgr_withPointsVia` result it removes the conflicting paths and builds the solution with the results of the :doc:`pgr_trsp` algorithm. In this case a U turn is been done using the same edge." msgstr "" -msgid "pgr_trsp_withPoints - Proposed" +msgid "``pgr_trsp_withPoints`` - Proposed" msgstr "" msgid "``pgr_trsp_withPoints`` Routing Vertex/Point with restrictions." msgstr "" -msgid "New proposed signatures:" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`One to One`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`One to Many`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`Many to One`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`Many to Many`_)" -msgstr "" - -msgid "``pgr_trsp_withPoints`` (`Combinations`_)" -msgstr "" - msgid "Modify the graph to include points defined by points_sql. Using Dijkstra algorithm, find the shortest path" msgstr "" @@ -12613,15 +12538,12 @@ msgstr "" msgid "From point :math:`1` and vertex :math:`6` to point :math:`3` to vertex :math:`1` on an undirected graph, with details." msgstr "" -msgid "pgr_turnRestrictedPath - Experimental" +msgid "``pgr_turnRestrictedPath`` - Experimental" msgstr "" msgid "``pgr_turnRestrictedPath`` Using Yen's algorithm Vertex - Vertex routing with restrictions" msgstr "" -msgid "New experimental function" -msgstr "" - msgid "Using Yen's algorithm to obtain K shortest paths and analyze the paths to select the paths that do not use the restrictions" msgstr "" @@ -12688,7 +12610,7 @@ msgstr "" msgid "pgRouting Version for this documentation" msgstr "" -msgid "pgr_vrpOneDepot - Experimental" +msgid "``pgr_vrpOneDepot`` - Experimental" msgstr "" msgid "**No documentation available**" @@ -12946,7 +12868,10 @@ msgstr "" msgid "Signature change: ``driving_side`` parameter changed from named optional to unnamed compulsory **driving side**." msgstr "" -msgid "``pgr_withPointsDD`` (`Single vertex`)" +msgid "pgr_withPointsDD(Single vertex)" +msgstr "" + +msgid "pgr_withPointsDD(Multiple vertices)" msgstr "" msgid "Added ``depth``, ``pred`` and ``start_vid`` column." @@ -12961,10 +12886,10 @@ msgstr "" msgid "Only points that are visited are removed, that is, points reached within the distance are included" msgstr "" -msgid "``pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)``" +msgid "pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)``" msgstr "" -msgid "``pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)``" +msgid "pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)``" msgstr "" msgid "Modify the graph to include points and using Dijkstra algorithm, extracts all the nodes and points that have costs less than or equal to the value ``**distance**`` from the starting point. The edges extracted will conform the corresponding spanning tree." @@ -13054,25 +12979,19 @@ msgstr "" msgid "Standarizing output columns to |nksp-result|" msgstr "" -msgid "``pgr_withPointsKSP`` (One to One)" -msgstr "" - -msgid "New overload functions" +msgid "pgr_withPointsKSP(One to Many)" msgstr "" -msgid "``pgr_withPointsKSP`` (One to Many)" +msgid "pgr_withPointsKSP(Many to One)" msgstr "" -msgid "``pgr_withPointsKSP`` (Many to One)" +msgid "pgr_withPointsKSP(Many to Many)" msgstr "" -msgid "``pgr_withPointsKSP`` (Many to Many)" +msgid "pgr_withPointsKSP(Combinations)" msgstr "" -msgid "``pgr_withPointsKSP`` (Combinations)" -msgstr "" - -msgid "``pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char,boolean)``" +msgid "pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,char,boolean)``" msgstr "" msgid "Modifies the graph to include the points defined in the `Points SQL`_ and using Yen algorithm, finds the :math:`K` shortest paths." @@ -13165,9 +13084,6 @@ msgstr "" msgid "``pgr_withPointsVia`` - Route that goes through a list of vertices and/or points." msgstr "" -msgid "New **proposed** function ``pgr_withPointsVia`` (`One Via`_)" -msgstr "" - msgid "Given a graph, a set of points on the graphs edges and a list of vertices, this function is equivalent to finding the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` (where :math:`vertex` can be a vertex or a point on the graph) for all :math:`i < size\\_of(via\\;vertices)`." msgstr "" @@ -13285,9 +13201,6 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.3 `__" msgstr "" -msgid "Build" -msgstr "" - msgid "Explicit minimum requirements:" msgstr "" @@ -13378,27 +13291,9 @@ msgstr "" msgid "`#2516 `__ Standarize output pgr_aStar" msgstr "" -msgid "``pgr_aStar`` (`One to One`) added ``start_vid`` and ``end_vid`` columns." -msgstr "" - -msgid "``pgr_aStar`` (`One to Many`) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_aStar`` (`Many to One`) added ``start_vid`` column." -msgstr "" - msgid "`#2523 `__ Standarize output pgr_bdAstar" msgstr "" -msgid "``pgr_bdAstar`` (`One to One`) added ``start_vid`` and ``end_vid`` columns." -msgstr "" - -msgid "``pgr_bdAstar`` (`One to Many`) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_bdAstar`` (`Many to One`) added ``start_vid`` column." -msgstr "" - msgid "`#2547 `__ Standarize output and modifying signature pgr_KSP" msgstr "" @@ -13516,15 +13411,6 @@ msgstr "" msgid "Dijkstra" msgstr "" -msgid "``pgr_dijkstra`` (`One to One`) added ``start_vid`` and ``end_vid`` columns." -msgstr "" - -msgid "``pgr_dijkstra`` (`One to Many`) added ``end_vid`` column." -msgstr "" - -msgid "``pgr_dijkstra`` (`Many to One`) added ``start_vid`` column." -msgstr "" - msgid "pgRouting 3.4" msgstr "" @@ -13561,13 +13447,13 @@ msgstr "" msgid "`#1891 `__: pgr_ksp doesn't give all correct shortest path" msgstr "" -msgid "New proposed functions" +msgid "New proposed functions." msgstr "" msgid "With points" msgstr "" -msgid "``pgr_withPointsVia`` (One Via)" +msgid "pgr_withPointsVia(One Via)" msgstr "" msgid "Turn Restrictions" @@ -13576,76 +13462,58 @@ msgstr "" msgid "Via with turn restrictions" msgstr "" -msgid "``pgr_trspVia`` (One Via)" +msgid "pgr_trspVia_withPoints(One Via)" msgstr "" -msgid "``pgr_trspVia_withPoints`` (One Via)" -msgstr "" - -msgid "``pgr_trsp``" -msgstr "" - -msgid "``pgr_trsp`` (One to One)" -msgstr "" - -msgid "``pgr_trsp`` (One to Many)" -msgstr "" - -msgid "``pgr_trsp`` (Many to One)" -msgstr "" - -msgid "``pgr_trsp`` (Many to Many)" -msgstr "" - -msgid "``pgr_trsp`` (Combinations)" +msgid "pgr_trsp" msgstr "" msgid "``pgr_trsp_withPoints``" msgstr "" -msgid "``pgr_trsp_withPoints`` (One to One)" +msgid "pgr_trsp_withPoints(One to One)" msgstr "" -msgid "``pgr_trsp_withPoints`` (One to Many)" +msgid "pgr_trsp_withPoints(One to Many)" msgstr "" -msgid "``pgr_trsp_withPoints`` (Many to One)" +msgid "pgr_trsp_withPoints(Many to One)" msgstr "" -msgid "``pgr_trsp_withPoints`` (Many to Many)" +msgid "pgr_trsp_withPoints(Many to Many)" msgstr "" -msgid "``pgr_trsp_withPoints`` (Combinations)" +msgid "pgr_trsp_withPoints(Combinations)" msgstr "" msgid "Topology" msgstr "" -msgid "``pgr_degree``" -msgstr "" - msgid "Utilities" msgstr "" -msgid "``pgr_findCloseEdges`` (One point)" +msgid "pgr_findCloseEdges(One point)" msgstr "" -msgid "``pgr_findCloseEdges`` (Many points)" +msgid "pgr_findCloseEdges(Many points)" msgstr "" msgid "Ordering" msgstr "" -msgid "``pgr_cuthillMckeeOrdering``" +msgid "pgr_cuthillMckeeOrdering" msgstr "" msgid "Unclassified" msgstr "" +msgid "pgr_hawickCircuits" +msgstr "" + msgid "Flow functions" msgstr "" -msgid "``pgr_maxCardinalityMatch(text)``" +msgid "pgr_maxCardinalityMatch(text)``" msgstr "" msgid "Deprecating ``pgr_maxCardinalityMatch(text,boolean)``" @@ -13654,10 +13522,16 @@ msgstr "" msgid "Deprecated Functions" msgstr "" -msgid "``pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)" +msgstr "" + +msgid "pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)" +msgstr "" + +msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)" msgstr "" -msgid "``pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)``" +msgid "pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)" msgstr "" msgid "pgRouting 3.3" @@ -13681,6 +13555,9 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.3.3 `_" msgstr "" +msgid "pgr_maxCardinalityMatch(text,boolean)" +msgstr "" + msgid "Ignoring optional boolean parameter, as the algorithm works only for undirected graphs." msgstr "" @@ -13861,12 +13738,6 @@ msgstr "" msgid "Removing support for Boost v1.53, v1.54 & v1.55" msgstr "" -msgid "pgr_bellmanFord(Combinations)" -msgstr "" - -msgid "pgr_binaryBreadthFirstSearch(Combinations)" -msgstr "" - msgid "pgr_bipartite" msgstr "" @@ -13876,9 +13747,6 @@ msgstr "" msgid "Dijkstra Near" msgstr "" -msgid "pgr_edwardMoore(Combinations)" -msgstr "" - msgid "pgr_isPlanar" msgstr "" @@ -13888,51 +13756,15 @@ msgstr "" msgid "pgr_makeConnected" msgstr "" -msgid "pgr_maxFlowMinCost(Combinations)" -msgstr "" - -msgid "pgr_maxFlowMinCost_Cost(Combinations)" -msgstr "" - msgid "Astar" msgstr "" -msgid "pgr_aStar(Combinations)" -msgstr "" - -msgid "pgr_aStarCost(Combinations)" -msgstr "" - msgid "Bidirectional Astar" msgstr "" -msgid "pgr_bdAstar(Combinations)" -msgstr "" - -msgid "pgr_bdAstarCost(Combinations)" -msgstr "" - msgid "Bidirectional Dijkstra" msgstr "" -msgid "pgr_bdDijkstra(Combinations)" -msgstr "" - -msgid "pgr_bdDijkstraCost(Combinations)" -msgstr "" - -msgid "pgr_boykovKolmogorov(Combinations)" -msgstr "" - -msgid "pgr_edmondsKarp(Combinations)" -msgstr "" - -msgid "pgr_maxFlow(Combinations)" -msgstr "" - -msgid "pgr_pushRelabel(Combinations)" -msgstr "" - msgid "pgRouting 3.1" msgstr "" @@ -14296,6 +14128,9 @@ msgstr "" msgid "Components family" msgstr "" +msgid "pgr_connectedComponents" +msgstr "" + msgid "pgr_strongComponents" msgstr "" @@ -14482,6 +14317,9 @@ msgstr "" msgid "pgr_drivingDistance" msgstr "" +msgid "pgr_KSP" +msgstr "" + msgid "pgr_dijkstraVia (proposed)" msgstr "" @@ -14662,9 +14500,6 @@ msgstr "" msgid "pgr_bdAstar(one to one)" msgstr "" -msgid "New Proposed functions" -msgstr "" - msgid "pgr_bdAstarCostMatrix" msgstr "" @@ -14737,10 +14572,10 @@ msgstr "" msgid "To see the issues closed by this release see the `Git closed issues for 2.4.0 `_ on Github." msgstr "" -msgid "pgr_bdDijkstra" +msgid "New Function." msgstr "" -msgid "New Proposed Signatures" +msgid "pgr_bdDijkstra" msgstr "" msgid "pgr_astar(one to many)" @@ -14767,6 +14602,9 @@ msgstr "" msgid "pgr_astarCostMatrix" msgstr "" +msgid "Deprecated signatures." +msgstr "" + msgid "pgr_bddijkstra - use pgr_bdDijkstra instead" msgstr "" @@ -14956,6 +14794,9 @@ msgstr "" msgid "Improvements" msgstr "" +msgid "pgr_nodeNetwork" +msgstr "" + msgid "Adding a row_where and outall optional parameters" msgstr "" @@ -15055,18 +14896,12 @@ msgstr "" msgid "pgr_dijkstra(many to many)" msgstr "" -msgid "pgr_drivingDistance(multiple vertices)" -msgstr "" - msgid "Refactored" msgstr "" msgid "pgr_dijkstra(one to one)" msgstr "" -msgid "pgr_drivingDistance(single vertex)" -msgstr "" - msgid "pgr_alphaShape function now can generate better (multi)polygon with holes and alpha parameter." msgstr "" @@ -15652,7 +15487,7 @@ msgstr "" msgid "Attributes associated to the tables help to indicate if the graph is directed or undirected, if an edge is one way on a directed graph, and depending on the final application needs, suitable topology(s) need to be created." msgstr "" -msgid "pgRouting suplies some functions to create a routing topology and to analyze the topology." +msgid "pgRouting supplies some functions to create a routing topology and to analyze the topology." msgstr "" msgid "Additional functions to create a graph:" diff --git a/locale/zh_Hans/LC_MESSAGES/index.po b/locale/zh_Hans/LC_MESSAGES/index.po index 768909a5b9..dcb38e1c1a 100644 --- a/locale/zh_Hans/LC_MESSAGES/index.po +++ b/locale/zh_Hans/LC_MESSAGES/index.po @@ -1,11 +1,11 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-25 12:55-0500\n" "PO-Revision-Date: 2024-09-23 14:18+0000\n" diff --git a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po index 7812a76b3e..801fd08936 100644 --- a/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/zh_Hans/LC_MESSAGES/pgrouting_doc_strings.po @@ -1,5 +1,5 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) pgRouting Contributors - Version v3.7.2 +# Copyright (C) pgRouting Contributors - Version v3.8 # This file is distributed under the same license as the pgRouting package. # Regina Obe , 2023. # Wangdapeng , 2023. @@ -9,7 +9,7 @@ # DeepL , 2024. msgid "" msgstr "" -"Project-Id-Version: pgRouting v3.7.2\n" +"Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-10-17 00:50+0000\n" "PO-Revision-Date: 2024-10-10 19:47+0000\n" diff --git a/sql/scripts/build-extension-update-files.pl b/sql/scripts/build-extension-update-files.pl index 8fa5358852..84894310b4 100755 --- a/sql/scripts/build-extension-update-files.pl +++ b/sql/scripts/build-extension-update-files.pl @@ -64,6 +64,7 @@ my $version_3_5 = qr/(3.5.[\d+])/; my $version_3_6 = qr/(3.6.[\d+])/; my $version_3_7 = qr/(3.7.[\d+])/; +my $version_3_8 = qr/(3.8.[\d+])/; # add minor here my $version_2 = qr/(2.[\d+].[\d+])/; @@ -73,7 +74,7 @@ my $mayor_format = qr/([\d+]).[\d+].[\d+]/; -my $current = $version_3_7; +my $current = $version_3_8; sub Usage { diff --git a/sql/sigs/pgrouting--3.8.sig b/sql/sigs/pgrouting--3.8.sig new file mode 100644 index 0000000000..460e9e69d6 --- /dev/null +++ b/sql/sigs/pgrouting--3.8.sig @@ -0,0 +1,344 @@ +pgr_alphashape(geometry,double precision) +_pgr_alphashape(text,double precision) +pgr_analyzegraph(text,double precision,text,text,text,text,text) +pgr_analyzeoneway(text,text[],text[],text[],text[],boolean,text,text,text) +_pgr_array_reverse(anyarray) +_pgr_articulationpoints(text) +pgr_articulationpoints(text) +pgr_astarcostmatrix(text,anyarray,boolean,integer,double precision,double precision) +pgr_astarcost(text,anyarray,anyarray,boolean,integer,double precision,double precision) +pgr_astarcost(text,anyarray,bigint,boolean,integer,double precision,double precision) +pgr_astarcost(text,bigint,anyarray,boolean,integer,double precision,double precision) +pgr_astarcost(text,bigint,bigint,boolean,integer,double precision,double precision) +pgr_astarcost(text,text,boolean,integer,double precision,double precision) +pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision) +_pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean,boolean) +pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision) +pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision) +pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision) +pgr_astar(text,text,boolean,integer,double precision,double precision) +_pgr_astar(text,text,boolean,integer,double precision,double precision,boolean) +pgr_bdastarcostmatrix(text,anyarray,boolean,integer,numeric,numeric) +pgr_bdastarcost(text,anyarray,anyarray,boolean,integer,numeric,numeric) +pgr_bdastarcost(text,anyarray,bigint,boolean,integer,numeric,numeric) +pgr_bdastarcost(text,bigint,anyarray,boolean,integer,numeric,numeric) +pgr_bdastarcost(text,bigint,bigint,boolean,integer,numeric,numeric) +pgr_bdastarcost(text,text,boolean,integer,numeric,numeric) +_pgr_bdastar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean) +pgr_bdastar(text,anyarray,anyarray,boolean,integer,numeric,numeric) +pgr_bdastar(text,anyarray,bigint,boolean,integer,numeric,numeric) +pgr_bdastar(text,bigint,anyarray,boolean,integer,numeric,numeric) +pgr_bdastar(text,bigint,bigint,boolean,integer,numeric,numeric) +_pgr_bdastar(text,text,boolean,integer,double precision,double precision,boolean) +pgr_bdastar(text,text,boolean,integer,numeric,numeric) +pgr_bddijkstracostmatrix(text,anyarray,boolean) +pgr_bddijkstracost(text,anyarray,anyarray,boolean) +pgr_bddijkstracost(text,anyarray,bigint,boolean) +pgr_bddijkstracost(text,bigint,anyarray,boolean) +pgr_bddijkstracost(text,bigint,bigint,boolean) +pgr_bddijkstracost(text,text,boolean) +pgr_bddijkstra(text,anyarray,anyarray,boolean) +_pgr_bddijkstra(text,anyarray,anyarray,boolean,boolean) +pgr_bddijkstra(text,anyarray,bigint,boolean) +pgr_bddijkstra(text,bigint,anyarray,boolean) +pgr_bddijkstra(text,bigint,bigint,boolean) +pgr_bddijkstra(text,text,boolean) +_pgr_bddijkstra(text,text,boolean,boolean) +pgr_bellmanford(text,anyarray,anyarray,boolean) +_pgr_bellmanford(text,anyarray,anyarray,boolean,boolean) +pgr_bellmanford(text,anyarray,bigint,boolean) +pgr_bellmanford(text,bigint,anyarray,boolean) +pgr_bellmanford(text,bigint,bigint,boolean) +pgr_bellmanford(text,text,boolean) +_pgr_bellmanford(text,text,boolean,boolean) +_pgr_betweennesscentrality(text,boolean) +pgr_betweennesscentrality(text,boolean) +_pgr_biconnectedcomponents(text) +pgr_biconnectedcomponents(text) +_pgr_binarybreadthfirstsearch(text,anyarray,anyarray,boolean) +pgr_binarybreadthfirstsearch(text,anyarray,anyarray,boolean) +pgr_binarybreadthfirstsearch(text,anyarray,bigint,boolean) +pgr_binarybreadthfirstsearch(text,bigint,anyarray,boolean) +pgr_binarybreadthfirstsearch(text,bigint,bigint,boolean) +_pgr_binarybreadthfirstsearch(text,text,boolean) +pgr_binarybreadthfirstsearch(text,text,boolean) +_pgr_bipartite(text) +pgr_bipartite(text) +_pgr_boost_version() +pgr_boykovkolmogorov(text,anyarray,anyarray) +pgr_boykovkolmogorov(text,anyarray,bigint) +pgr_boykovkolmogorov(text,bigint,anyarray) +pgr_boykovkolmogorov(text,bigint,bigint) +pgr_boykovkolmogorov(text,text) +_pgr_breadthfirstsearch(text,anyarray,bigint,boolean) +pgr_breadthfirstsearch(text,anyarray,bigint,boolean) +pgr_breadthfirstsearch(text,bigint,bigint,boolean) +_pgr_bridges(text) +pgr_bridges(text) +_pgr_build_type() +_pgr_checkcolumn(text,text,text,boolean,boolean) +_pgr_checkquery(text) +_pgr_checkverttab(text,text[],integer,text) +pgr_chinesepostmancost(text) +pgr_chinesepostman(text) +_pgr_chinesepostman(text,boolean) +_pgr_compilation_date() +_pgr_compiler_version() +_pgr_connectedcomponents(text) +pgr_connectedcomponents(text) +_pgr_contraction(text,bigint[],integer,bigint[],boolean) +pgr_contraction(text,bigint[],integer,bigint[],boolean) +_pgr_createindex(text,text,text,integer,text) +_pgr_createindex(text,text,text,text,integer,text) +pgr_createtopology(text,double precision,text,text,text,text,text,boolean) +pgr_createverticestable(text,text,text,text,text) +_pgr_cuthillmckeeordering(text) +pgr_cuthillmckeeordering(text) +pgr_dagshortestpath(text,anyarray,anyarray) +_pgr_dagshortestpath(text,anyarray,anyarray,boolean,boolean) +pgr_dagshortestpath(text,anyarray,bigint) +pgr_dagshortestpath(text,bigint,anyarray) +pgr_dagshortestpath(text,bigint,bigint) +pgr_dagshortestpath(text,text) +_pgr_dagshortestpath(text,text,boolean,boolean) +pgr_degree(text,text,boolean) +_pgr_depthfirstsearch(text,anyarray,boolean,bigint) +pgr_depthfirstsearch(text,anyarray,boolean,bigint) +pgr_depthfirstsearch(text,bigint,boolean,bigint) +pgr_dijkstracostmatrix(text,anyarray,boolean) +pgr_dijkstracost(text,anyarray,anyarray,boolean) +pgr_dijkstracost(text,anyarray,bigint,boolean) +pgr_dijkstracost(text,bigint,anyarray,boolean) +pgr_dijkstracost(text,bigint,bigint,boolean) +pgr_dijkstracost(text,text,boolean) +pgr_dijkstranearcost(text,anyarray,anyarray,boolean,bigint,boolean) +pgr_dijkstranearcost(text,anyarray,bigint,boolean,bigint) +pgr_dijkstranearcost(text,bigint,anyarray,boolean,bigint) +pgr_dijkstranearcost(text,text,boolean,bigint,boolean) +_pgr_dijkstranear(text,anyarray,anyarray,bigint,boolean) +pgr_dijkstranear(text,anyarray,anyarray,boolean,bigint,boolean) +_pgr_dijkstranear(text,anyarray,bigint,bigint,boolean) +pgr_dijkstranear(text,anyarray,bigint,boolean,bigint) +_pgr_dijkstranear(text,bigint,anyarray,bigint,boolean) +pgr_dijkstranear(text,bigint,anyarray,boolean,bigint) +pgr_dijkstranear(text,text,boolean,bigint,boolean) +pgr_dijkstra(text,anyarray,anyarray,boolean) +_pgr_dijkstra(text,anyarray,anyarray,boolean,boolean,boolean,bigint) +_pgr_dijkstra(text,anyarray,anyarray,boolean,boolean,boolean,bigint,boolean) +pgr_dijkstra(text,anyarray,bigint,boolean) +pgr_dijkstra(text,bigint,anyarray,boolean) +pgr_dijkstra(text,bigint,bigint,boolean) +pgr_dijkstra(text,text,boolean) +_pgr_dijkstra(text,text,boolean,boolean,bigint,boolean) +_pgr_dijkstra(text,text,boolean,boolean,boolean) +_pgr_dijkstravia(text,anyarray,boolean,boolean,boolean) +pgr_dijkstravia(text,anyarray,boolean,boolean,boolean) +_pgr_drivingdistance(text,anyarray,double precision,boolean,boolean) +pgr_drivingdistance(text,anyarray,double precision,boolean,boolean) +pgr_drivingdistance(text,bigint,double precision,boolean) +_pgr_drivingdistancev4(text,anyarray,double precision,boolean,boolean) +_pgr_edgecoloring(text) +pgr_edgecoloring(text) +_pgr_edgedisjointpaths(text,anyarray,anyarray,boolean) +pgr_edgedisjointpaths(text,anyarray,anyarray,boolean) +pgr_edgedisjointpaths(text,anyarray,bigint,boolean) +pgr_edgedisjointpaths(text,bigint,anyarray,boolean) +pgr_edgedisjointpaths(text,bigint,bigint,boolean) +_pgr_edgedisjointpaths(text,text,boolean) +pgr_edgedisjointpaths(text,text,boolean) +pgr_edmondskarp(text,anyarray,anyarray) +pgr_edmondskarp(text,anyarray,bigint) +pgr_edmondskarp(text,bigint,anyarray) +pgr_edmondskarp(text,bigint,bigint) +pgr_edmondskarp(text,text) +_pgr_edwardmoore(text,anyarray,anyarray,boolean) +pgr_edwardmoore(text,anyarray,anyarray,boolean) +pgr_edwardmoore(text,anyarray,bigint,boolean) +pgr_edwardmoore(text,bigint,anyarray,boolean) +pgr_edwardmoore(text,bigint,bigint,boolean) +_pgr_edwardmoore(text,text,boolean) +pgr_edwardmoore(text,text,boolean) +_pgr_endpoint(geometry) +pgr_extractvertices(text,boolean) +pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean) +pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean) +_pgr_floydwarshall(text,boolean) +pgr_floydwarshall(text,boolean) +pgr_full_version() +_pgr_getcolumnname(text,text,integer,text) +_pgr_getcolumnname(text,text,text,integer,text) +_pgr_getcolumntype(text,text,integer,text) +_pgr_getcolumntype(text,text,text,integer,text) +_pgr_get_statement(text) +_pgr_gettablename(text,integer,text) +_pgr_git_hash() +_pgr_hawickcircuits(text) +pgr_hawickcircuits(text) +_pgr_iscolumnindexed(text,text,integer,text) +_pgr_iscolumnindexed(text,text,text,integer,text) +_pgr_iscolumnintable(text,text) +_pgr_isplanar(text) +pgr_isplanar(text) +_pgr_johnson(text,boolean) +pgr_johnson(text,boolean) +pgr_kruskalbfs(text,anyarray,bigint) +pgr_kruskalbfs(text,bigint,bigint) +pgr_kruskaldd(text,anyarray,double precision) +pgr_kruskaldd(text,anyarray,numeric) +pgr_kruskaldd(text,bigint,double precision) +pgr_kruskaldd(text,bigint,numeric) +pgr_kruskaldfs(text,anyarray,bigint) +pgr_kruskaldfs(text,bigint,bigint) +pgr_kruskal(text) +_pgr_kruskal(text,anyarray,text,bigint,double precision) +_pgr_kruskalv4(text,anyarray,text,bigint,double precision) +pgr_ksp(text,anyarray,anyarray,integer,boolean,boolean) +_pgr_ksp(text,anyarray,anyarray,integer,boolean,boolean,boolean) +pgr_ksp(text,anyarray,bigint,integer,boolean,boolean) +pgr_ksp(text,bigint,anyarray,integer,boolean,boolean) +_pgr_ksp(text,bigint,bigint,integer,boolean,boolean) +pgr_ksp(text,bigint,bigint,integer,boolean,boolean) +_pgr_ksp(text,text,integer,boolean,boolean) +pgr_ksp(text,text,integer,boolean,boolean) +_pgr_lengauertarjandominatortree(text,bigint) +pgr_lengauertarjandominatortree(text,bigint) +_pgr_lib_version() +_pgr_linegraphfull(text) +pgr_linegraphfull(text) +_pgr_linegraph(text,boolean) +pgr_linegraph(text,boolean) +_pgr_makeconnected(text) +pgr_makeconnected(text) +pgr_maxcardinalitymatch(text) +_pgr_maxcardinalitymatch(text,boolean) +pgr_maxcardinalitymatch(text,boolean) +pgr_maxflowmincost_cost(text,anyarray,anyarray) +pgr_maxflowmincost_cost(text,anyarray,bigint) +pgr_maxflowmincost_cost(text,bigint,anyarray) +pgr_maxflowmincost_cost(text,bigint,bigint) +pgr_maxflowmincost_cost(text,text) +pgr_maxflowmincost(text,anyarray,anyarray) +_pgr_maxflowmincost(text,anyarray,anyarray,boolean) +pgr_maxflowmincost(text,anyarray,bigint) +pgr_maxflowmincost(text,bigint,anyarray) +pgr_maxflowmincost(text,bigint,bigint) +pgr_maxflowmincost(text,text) +_pgr_maxflowmincost(text,text,boolean) +pgr_maxflow(text,anyarray,anyarray) +_pgr_maxflow(text,anyarray,anyarray,integer,boolean) +pgr_maxflow(text,anyarray,bigint) +pgr_maxflow(text,bigint,anyarray) +pgr_maxflow(text,bigint,bigint) +pgr_maxflow(text,text) +_pgr_maxflow(text,text,integer,boolean) +_pgr_msg(integer,text,text) +pgr_nodenetwork(text,double precision,text,text,text,text,boolean) +_pgr_onerror(boolean,integer,text,text,text,text) +_pgr_operating_system() +_pgr_parameter_check(text,text,boolean) +_pgr_pgsql_version() +_pgr_pickdelivereuclidean(text,text,double precision,integer,integer) +pgr_pickdelivereuclidean(text,text,double precision,integer,integer) +_pgr_pickdeliver(text,text,text,double precision,integer,integer) +pgr_pickdeliver(text,text,text,double precision,integer,integer) +_pgr_pointtoid(geometry,double precision,text,integer) +pgr_primbfs(text,anyarray,bigint) +pgr_primbfs(text,bigint,bigint) +pgr_primdd(text,anyarray,double precision) +pgr_primdd(text,anyarray,numeric) +pgr_primdd(text,bigint,double precision) +pgr_primdd(text,bigint,numeric) +pgr_primdfs(text,anyarray,bigint) +pgr_primdfs(text,bigint,bigint) +pgr_prim(text) +_pgr_prim(text,anyarray,text,bigint,double precision) +_pgr_primv4(text,anyarray,text,bigint,double precision) +pgr_pushrelabel(text,anyarray,anyarray) +pgr_pushrelabel(text,anyarray,bigint) +pgr_pushrelabel(text,bigint,anyarray) +pgr_pushrelabel(text,bigint,bigint) +pgr_pushrelabel(text,text) +_pgr_quote_ident(text) +_pgr_sequentialvertexcoloring(text) +pgr_sequentialvertexcoloring(text) +_pgr_startpoint(geometry) +_pgr_stoerwagner(text) +pgr_stoerwagner(text) +_pgr_strongcomponents(text) +pgr_strongcomponents(text) +_pgr_topologicalsort(text) +pgr_topologicalsort(text) +_pgr_transitiveclosure(text) +pgr_transitiveclosure(text) +_pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text) +pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text) +pgr_trsp(text,integer,integer,boolean,boolean,text) +_pgr_trsp(text,text,anyarray,anyarray,boolean) +pgr_trsp(text,text,anyarray,anyarray,boolean) +_pgr_trsp(text,text,anyarray,bigint,boolean) +pgr_trsp(text,text,anyarray,bigint,boolean) +_pgr_trsp(text,text,bigint,anyarray,boolean) +pgr_trsp(text,text,bigint,anyarray,boolean) +_pgr_trsp(text,text,bigint,bigint,boolean) +pgr_trsp(text,text,bigint,bigint,boolean) +pgr_trsp(text,text,text,boolean) +_pgr_trspv4(text,text,anyarray,anyarray,boolean) +_pgr_trspv4(text,text,text,boolean) +pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text) +_pgr_trspvia(text,text,anyarray,boolean,boolean,boolean) +pgr_trspvia(text,text,anyarray,boolean,boolean,boolean) +pgr_trspviavertices(text,anyarray,boolean,boolean,text) +_pgr_trspviavertices(text,integer[],boolean,boolean,text) +_pgr_trspvia_withpoints(text,text,text,anyarray,boolean,boolean,boolean,character,boolean) +pgr_trspvia_withpoints(text,text,text,anyarray,boolean,boolean,boolean,character,boolean) +_pgr_trsp_withpoints(text,text,text,anyarray,anyarray,boolean,character,boolean) +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_trsp_withpoints(text,text,text,text,boolean,character,boolean) +_pgr_tspeuclidean(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean) +pgr_tspeuclidean(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean) +_pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean) +pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean) +_pgr_turnrestrictedpath(text,text,bigint,bigint,integer,boolean,boolean,boolean,boolean) +pgr_turnrestrictedpath(text,text,bigint,bigint,integer,boolean,boolean,boolean,boolean) +pgr_version() +_pgr_versionless(text,text) +_pgr_vrponedepot(text,text,text,integer) +pgr_vrponedepot(text,text,text,integer) +pgr_withpointscostmatrix(text,text,anyarray,boolean,character) +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_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean) +pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean) +pgr_withpointsdd(text,text,anyarray,double precision,character,boolean,boolean,boolean) +pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean) +pgr_withpointsdd(text,text,bigint,double precision,character,boolean,boolean) +_pgr_withpointsddv4(text,text,anyarray,double precision,character,boolean,boolean,boolean) +pgr_withpointsksp(text,text,anyarray,anyarray,integer,character,boolean,boolean,boolean) +_pgr_withpointsksp(text,text,anyarray,anyarray,integer,character,boolean,boolean,boolean,boolean) +pgr_withpointsksp(text,text,anyarray,bigint,integer,character,boolean,boolean,boolean) +pgr_withpointsksp(text,text,bigint,anyarray,integer,character,boolean,boolean,boolean) +_pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,character,boolean) +pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,character,boolean) +pgr_withpointsksp(text,text,bigint,bigint,integer,character,boolean,boolean,boolean) +_pgr_withpointsksp(text,text,text,integer,character,boolean,boolean,boolean) +pgr_withpointsksp(text,text,text,integer,character,boolean,boolean,boolean) +pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean) +_pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean,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_withpoints(text,text,text,boolean,character,boolean,boolean) +_pgr_withpointsvia(text,bigint[],double precision[],boolean) +_pgr_withpointsvia(text,text,anyarray,boolean,boolean,boolean,character,boolean) +pgr_withpointsvia(text,text,anyarray,boolean,boolean,boolean,character,boolean) +_trsp(text,text,anyarray,anyarray,boolean) +_v4trsp(text,text,anyarray,anyarray,boolean) +_v4trsp(text,text,text,boolean) diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh index 7132a5a181..99867249fc 100755 --- a/tools/testers/pg_prove_tests.sh +++ b/tools/testers/pg_prove_tests.sh @@ -37,7 +37,7 @@ echo "$PGPORT" pushd ./tools/testers/ || exit 1 -bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.7.3" +bash setup_db.sh "${PGPORT}" "${PGDATABASE}" "${PGUSER}" "3.8.0" PGOPTIONS="-c client_min_messages=WARNING" pg_prove --failures --Q --recurse \ -S on_error_rollback=off \ From 3a16043078be184dcc5afb9ed781bb57cf1c1931 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 10 Feb 2025 23:10:52 -0600 Subject: [PATCH 082/141] (doc) Simplifying migration, backport doc fixes from develop --- NEWS.md | 225 +++--- doc/CMakeLists.txt | 4 +- doc/allpairs/pgr_floydWarshall.rst | 2 +- doc/allpairs/pgr_johnson.rst | 2 +- doc/alpha_shape/pgr_alphaShape.rst | 4 +- doc/astar/pgr_aStar.rst | 6 +- doc/bdAstar/bdAstar-family.rst | 4 +- doc/bdAstar/pgr_bdAstar.rst | 4 +- doc/bdAstar/pgr_bdAstarCostMatrix.rst | 2 - doc/bdDijkstra/pgr_bdDijkstra.rst | 4 +- doc/bellman_ford/pgr_bellmanFord.rst | 2 +- doc/circuits/pgr_hawickCircuits.rst | 4 +- doc/components/pgr_biconnectedComponents.rst | 4 +- doc/components/pgr_bridges.rst | 3 +- doc/components/pgr_connectedComponents.rst | 4 +- .../pgr_lengauerTarjanDominatorTree.rst | 2 +- doc/driving_distance/pgr_drivingDistance.rst | 4 +- doc/lineGraph/pgr_lineGraphFull.rst | 6 +- doc/max_flow/pgr_maxCardinalityMatch.rst | 6 +- doc/metrics/pgr_betweennessCentrality.rst | 6 +- doc/src/index.rst | 3 - doc/src/migration.rst | 717 +++++------------- doc/src/release_notes.rst | 221 +++--- doc/traversal/pgr_breadthFirstSearch.rst | 6 +- doc/trsp/pgr_trsp.rst | 14 +- doc/trsp/pgr_trspVia.rst | 2 - doc/tsp/pgr_TSP.rst | 2 +- doc/tsp/pgr_TSPeuclidean.rst | 4 +- doc/utilities/pgr_findCloseEdges.rst | 4 +- doc/withPoints/pgr_withPoints.rst | 2 +- doc/withPoints/pgr_withPointsCost.rst | 8 +- doc/withPoints/pgr_withPointsCostMatrix.rst | 2 - doc/withPoints/pgr_withPointsKSP.rst | 2 +- 33 files changed, 476 insertions(+), 809 deletions(-) diff --git a/NEWS.md b/NEWS.md index 110b020c35..07445be9e4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -224,12 +224,12 @@ milestone for 3.6.0 * pgr_ksp(Combinations) * [#2548](https://github.com/pgRouting/pgrouting/pull/2548) Standarize output - pgr_drivingdistance + pgr_drivingDistance * Standarizing output columns to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)`` - * pgr_drivingdistance(Single vertex) + * pgr_drivingDistance(Single vertex) * Added ``depth`` and ``start_vid`` result columns. - * pgr_drivingdistance(Multiple vertices) + * pgr_drivingDistance(Multiple vertices) * Result column name change: ``from_v`` to ``start_vid``. * Added ``depth`` and ``pred`` result columns. @@ -450,9 +450,9 @@ milestone for 3.4.0 * Flow functions - * pgr_maxCardinalityMatch(text)`` + * pgr_maxCardinalityMatch(text) - * Deprecating ``pgr_maxCardinalityMatch(text,boolean)`` + * Deprecating: pgr_maxCardinalityMatch(text,boolean) **Deprecated Functions** @@ -925,7 +925,7 @@ on Github. * [#1006](https://github.com/pgRouting/pgrouting/issues/1006): No loss of information -**New functions** +**New Functions** * Kruskal family @@ -946,66 +946,57 @@ on Github. * 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(one to one) - * pgr_aStarCostMatrix(one to many) - * pgr_aStarCostMatrix(many to one) - * pgr_aStarCostMatrix(many to many) + * 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(one to one) - * pgr_bdAstarCostMatrix(one to many) - * pgr_bdAstarCostMatrix(many to one) - * pgr_bdAstarCostMatrix(many to many) + * 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(one to one) - * pgr_bdDijkstraCostMatrix(one to many) - * pgr_bdDijkstraCostMatrix(many to one) - * pgr_bdDijkstraCostMatrix(many to many) + * 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_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) + * pgr_edgeDisjointPaths(One to One) + * pgr_edgeDisjointPaths(One to Many) + * pgr_edgeDisjointPaths(Many to One) + * pgr_edgeDisjointPaths(Many to Many) * Components family @@ -1120,7 +1111,7 @@ on Github. * pgr_floydWarshall * pgr_johnson - * pgr_astar + * pgr_aStar * pgr_bdAstar * pgr_bdDijstra * pgr_alphashape @@ -1203,13 +1194,15 @@ on Github. ### pgRouting 2.5.4 Release Notes -To see the issues closed by this release see the [Git closed milestone for 2.5.4](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.4%22%20) on Github. +To see the issues closed by this release see the [Git closed milestone for 2.5.4 +](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.5.4%22%20) +on Github. * Fixes server crash on several functions. * pgr_floydWarshall * pgr_johnson - * pgr_astar + * pgr_aStar * pgr_bdAstar * pgr_bdDijstra * pgr_alphashape @@ -1290,29 +1283,29 @@ on Github. * Added path_id, cost and agg_cost columns on the result * Parameter names changed - * The many version results are the union of the one to one version + * The many version results are the union of the One to One version **New Signatures** -* pgr_bdAstar(one to one) +* pgr_bdAstar(One to One) **New proposed functions.** -* pgr_bdAstar(one to many) -* pgr_bdAstar(many to one) -* pgr_bdAstar(many to many) -* pgr_bdAstarCost(one to one) -* pgr_bdAstarCost(one to many) -* pgr_bdAstarCost(many to one) -* pgr_bdAstarCost(many to many) +* pgr_bdAstar(One to Many) +* pgr_bdAstar(Many to One) +* pgr_bdAstar(Many to Many) +* pgr_bdAstarCost(One to One) +* pgr_bdAstarCost(One to Many) +* pgr_bdAstarCost(Many to One) +* pgr_bdAstarCost(Many to Many) * pgr_bdAstarCostMatrix -* pgr_bdDijkstra(one to many) -* pgr_bdDijkstra(many to one) -* pgr_bdDijkstra(many to many) -* pgr_bdDijkstraCost(one to one) -* pgr_bdDijkstraCost(one to many) -* pgr_bdDijkstraCost(many to one) -* pgr_bdDijkstraCost(many to many) +* pgr_bdDijkstra(One to Many) +* pgr_bdDijkstra(Many to One) +* pgr_bdDijkstra(Many to Many) +* pgr_bdDijkstraCost(One to One) +* pgr_bdDijkstraCost(One to Many) +* pgr_bdDijkstraCost(Many to One) +* pgr_bdDijkstraCost(Many to Many) * pgr_bdDijkstraCostMatrix * pgr_lineGraph * pgr_lineGraphFull @@ -1377,7 +1370,7 @@ To see the issues closed by this release see the [Git closed issues for 2.4.0 ](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed) on Github. -**New Function.** +**New Functions** * pgr_bdDijkstra @@ -1385,14 +1378,14 @@ on Github. **New proposed signatures:** * pgr_maxFlow -* pgr_astar(one to many) -* pgr_astar(many to one) -* pgr_astar(many to many) -* pgr_astarCost(one to one) -* pgr_astarCost(one to many) -* pgr_astarCost(many to one) -* pgr_astarCost(many to many) -* pgr_astarCostMatrix +* pgr_aStar(One to Many) +* pgr_aStar(Many to One) +* pgr_aStar(Many to Many) +* pgr_aStarCost(One to One) +* pgr_aStarCost(One to Many) +* pgr_aStarCost(Many to One) +* pgr_aStarCost(Many to Many) +* pgr_aStarCostMatrix **Deprecated signatures.** @@ -1462,30 +1455,30 @@ on Github. * pgr_dijkstraCostMatrix * pgr_withPointsCostMatrix -* pgr_maxFlowPushRelabel(one to one) -* pgr_maxFlowPushRelabel(one to many) -* pgr_maxFlowPushRelabel(many to one) -* pgr_maxFlowPushRelabel(many to many) -* pgr_maxFlowEdmondsKarp(one to one) -* pgr_maxFlowEdmondsKarp(one to many) -* pgr_maxFlowEdmondsKarp(many to one) -* pgr_maxFlowEdmondsKarp(many to many) -* pgr_maxFlowBoykovKolmogorov (one to one) -* pgr_maxFlowBoykovKolmogorov (one to many) -* pgr_maxFlowBoykovKolmogorov (many to one) -* pgr_maxFlowBoykovKolmogorov (many to many) +* pgr_maxFlowPushRelabel(One to One) +* pgr_maxFlowPushRelabel(One to Many) +* pgr_maxFlowPushRelabel(Many to One) +* pgr_maxFlowPushRelabel(Many to Many) +* pgr_maxFlowEdmondsKarp(One to One) +* pgr_maxFlowEdmondsKarp(One to Many) +* pgr_maxFlowEdmondsKarp(Many to One) +* pgr_maxFlowEdmondsKarp(Many to Many) +* pgr_maxFlowBoykovKolmogorov (One to One) +* pgr_maxFlowBoykovKolmogorov (One to Many) +* pgr_maxFlowBoykovKolmogorov (Many to One) +* pgr_maxFlowBoykovKolmogorov (Many to Many) * pgr_maximumCardinalityMatching -* pgr_edgeDisjointPaths(one to one) -* pgr_edgeDisjointPaths(one to many) -* pgr_edgeDisjointPaths(many to one) -* pgr_edgeDisjointPaths(many to many) +* pgr_edgeDisjointPaths(One to One) +* pgr_edgeDisjointPaths(One to Many) +* pgr_edgeDisjointPaths(Many to One) +* pgr_edgeDisjointPaths(Many to Many) * pgr_contractGraph **Deprecated signatures** * pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead -* pgr_astar - use pgr_aStar instead +* pgr_aStar - use pgr_aStar instead **Deprecated Functions** @@ -1569,21 +1562,21 @@ on Github. - pgr_floydWarshall - pgr_Johnson -- pgr_dijkstraCost(one to one) -- pgr_dijkstraCost(one to many) -- pgr_dijkstraCost(many to one) -- pgr_dijkstraCost(many to many) +- pgr_dijkstraCost(One to One) +- pgr_dijkstraCost(One to Many) +- pgr_dijkstraCost(Many to One) +- pgr_dijkstraCost(Many to Many) **Proposed Functionality** -- pgr_withPoints(one to one) -- pgr_withPoints(one to many) -- pgr_withPoints(many to one) -- pgr_withPoints(many to many) -- pgr_withPointsCost(one to one) -- pgr_withPointsCost(one to many) -- pgr_withPointsCost(many to one) -- pgr_withPointsCost(many to many) +- pgr_withPoints(One to One) +- pgr_withPoints(One to Many) +- pgr_withPoints(Many to One) +- pgr_withPoints(Many to Many) +- pgr_withPointsCost(One to One) +- pgr_withPointsCost(One to Many) +- pgr_withPointsCost(Many to One) +- pgr_withPointsCost(Many to Many) - pgr_withPointsDD(single vertex) - pgr_withPointsDD(multiple vertices) - pgr_withPointsKSP @@ -1612,14 +1605,14 @@ on Github. **New Signatures** -- pgr_dijkstra(one to many) -- pgr_dijkstra(many to one) -- pgr_dijkstra(many to many) +- pgr_dijkstra(One to Many) +- pgr_dijkstra(Many to One) +- pgr_dijkstra(Many to Many) - pgr_drivingDistance(multiple vertices) **Refactored** -- pgr_dijkstra(one to one) +- pgr_dijkstra(One to One) - pgr_ksp - pgr_drivingDistance(single vertex) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 75e79524e2..9608406041 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -264,7 +264,7 @@ if (LOCALE) "${PGR_DOCUMENTATION_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/locale/pot" - COMMAND sphinx-intl update -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 -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 @@ -295,6 +295,8 @@ foreach (target ${PROJECT_DOC_TARGETS}) #-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 diff --git a/doc/allpairs/pgr_floydWarshall.rst b/doc/allpairs/pgr_floydWarshall.rst index d23f2a1096..c9709d91c2 100644 --- a/doc/allpairs/pgr_floydWarshall.rst +++ b/doc/allpairs/pgr_floydWarshall.rst @@ -28,7 +28,7 @@ each pair of nodes in the graph using Floyd-Warshall algorithm. * Version 2.0.0 - * Official function. + * New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/allpairs/pgr_johnson.rst b/doc/allpairs/pgr_johnson.rst index 2e4f094e47..d489b26a50 100644 --- a/doc/allpairs/pgr_johnson.rst +++ b/doc/allpairs/pgr_johnson.rst @@ -28,7 +28,7 @@ pair of nodes in the graph using Floyd-Warshall algorithm. * Version 2.0.0 - * Official function. + * New official function. Description ------------------------------------------------------------------------------- diff --git a/doc/alpha_shape/pgr_alphaShape.rst b/doc/alpha_shape/pgr_alphaShape.rst index 91e7ccf2e2..e57f1a75ad 100644 --- a/doc/alpha_shape/pgr_alphaShape.rst +++ b/doc/alpha_shape/pgr_alphaShape.rst @@ -36,7 +36,7 @@ * Version 2.0.0 - * Official function. + * New official function. * Renamed from version 1.x .. rubric:: Support @@ -64,7 +64,7 @@ Characteristics Signatures ------------------------------------------------------------------------------- -.. rubric:: Summary + .. admonition:: \ \ :class: signatures diff --git a/doc/astar/pgr_aStar.rst b/doc/astar/pgr_aStar.rst index 6cd85f7313..15e057a179 100644 --- a/doc/astar/pgr_aStar.rst +++ b/doc/astar/pgr_aStar.rst @@ -48,13 +48,13 @@ * 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 * Version 2.0.0 - * Official function. + * New official function. Description ------------------------------------------------------------------------------- @@ -285,7 +285,7 @@ See Also * :doc:`aStar-family` * :doc:`bdAstar-family` * :doc:`sampledata` -* https://www.boost.org/libs/graph/doc/astar_search.html +* `Boost: A* search `__ * https://en.wikipedia.org/wiki/A*_search_algorithm .. rubric:: Indices and tables diff --git a/doc/bdAstar/bdAstar-family.rst b/doc/bdAstar/bdAstar-family.rst index ce6d03aad0..71086c8d0f 100644 --- a/doc/bdAstar/bdAstar-family.rst +++ b/doc/bdAstar/bdAstar-family.rst @@ -53,7 +53,7 @@ The main Characteristics are: * For large graphs where there is a path bewtween the starting vertex and ending vertex: - * It is expected to terminate faster than pgr_astar + * It is expected to terminate faster than pgr_aStar See :ref:`heuristics ` available and :ref:`factor ` handling. @@ -62,7 +62,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`aStar-family` -* `Boost `__ +* `Boost: A* search `__ * https://en.wikipedia.org/wiki/A*_search_algorithm .. rubric:: Indices and tables diff --git a/doc/bdAstar/pgr_bdAstar.rst b/doc/bdAstar/pgr_bdAstar.rst index 3aa0b91889..53b3a5914f 100644 --- a/doc/bdAstar/pgr_bdAstar.rst +++ b/doc/bdAstar/pgr_bdAstar.rst @@ -52,7 +52,7 @@ * Version 2.0.0 - * Official function. + * New official function. Description ------------------------------------------------------------------------------- @@ -103,7 +103,7 @@ One to One :class: signatures | pgr_bdAstar(`Edges SQL`_, **start vid**, **end vid**, [**options**]) - | **options:** [directed, heuristic, factor, epsilon]`` + | **options:** ``[directed, heuristic, factor, epsilon]`` | Returns set of |short-generic-result| | OR EMPTY SET diff --git a/doc/bdAstar/pgr_bdAstarCostMatrix.rst b/doc/bdAstar/pgr_bdAstarCostMatrix.rst index f3521951a6..c0464bc4f3 100644 --- a/doc/bdAstar/pgr_bdAstarCostMatrix.rst +++ b/doc/bdAstar/pgr_bdAstarCostMatrix.rst @@ -56,8 +56,6 @@ Description Signatures ------------------------------------------------------------------------------- -.. rubric:: Summary - .. admonition:: \ \ :class: signatures diff --git a/doc/bdDijkstra/pgr_bdDijkstra.rst b/doc/bdDijkstra/pgr_bdDijkstra.rst index 2a4fc7943b..67379e72bd 100644 --- a/doc/bdDijkstra/pgr_bdDijkstra.rst +++ b/doc/bdDijkstra/pgr_bdDijkstra.rst @@ -33,7 +33,7 @@ algorithm. * Version 2.5.0 - * New Proposed signatures: + * New proposed signatures: * pgr_bdDijkstra(One to Many) * pgr_bdDijkstra(Many to One) @@ -47,7 +47,7 @@ algorithm. * Version 2.0.0 - * Official function. + * New official function. Description diff --git a/doc/bellman_ford/pgr_bellmanFord.rst b/doc/bellman_ford/pgr_bellmanFord.rst index 6bd80b9070..9c185a95a4 100644 --- a/doc/bellman_ford/pgr_bellmanFord.rst +++ b/doc/bellman_ford/pgr_bellmanFord.rst @@ -264,7 +264,7 @@ See Also ------------------------------------------------------------------------------- * :doc:`sampledata` -* `Boost: Belman Ford `__ +* `Boost: Bellman Ford `__ * https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm Boost Graph Inside diff --git a/doc/circuits/pgr_hawickCircuits.rst b/doc/circuits/pgr_hawickCircuits.rst index 9dc6d657a1..7c5853213e 100644 --- a/doc/circuits/pgr_hawickCircuits.rst +++ b/doc/circuits/pgr_hawickCircuits.rst @@ -13,7 +13,7 @@ | -``pgr_hawickCircuits - Experimental`` +``pgr_hawickCircuits`` - Experimental =============================================================================== ``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits algorithm. @@ -60,8 +60,6 @@ implemenent this variation. Signatures ------------------------------------------------------------------------------- -.. rubric:: Summary - .. admonition:: \ \ :class: signatures diff --git a/doc/components/pgr_biconnectedComponents.rst b/doc/components/pgr_biconnectedComponents.rst index c4b08868f3..edce2172d4 100644 --- a/doc/components/pgr_biconnectedComponents.rst +++ b/doc/components/pgr_biconnectedComponents.rst @@ -25,8 +25,8 @@ * Result columns change: - * n_seq`` is removed - * seq`` changed type to ``BIGINT`` + * ``n_seq`` is removed + * ``seq`` changed type to ``BIGINT`` * Function promoted to official. diff --git a/doc/components/pgr_bridges.rst b/doc/components/pgr_bridges.rst index 8aab292948..ee459a1121 100644 --- a/doc/components/pgr_bridges.rst +++ b/doc/components/pgr_bridges.rst @@ -106,7 +106,8 @@ See Also * https://en.wikipedia.org/wiki/Bridge_%28graph_theory%29 * :doc:`sampledata` -* `Boost: connected components `__ +* `Boost: Connected components + `__ .. rubric:: Indices and tables diff --git a/doc/components/pgr_connectedComponents.rst b/doc/components/pgr_connectedComponents.rst index a2d932595a..d4d787edcb 100644 --- a/doc/components/pgr_connectedComponents.rst +++ b/doc/components/pgr_connectedComponents.rst @@ -25,8 +25,8 @@ a DFS-based approach. * Result columns change: - * n_seq`` is removed - * seq`` changed type to ``BIGINT`` + * ``n_seq`` is removed + * ``seq`` changed type to ``BIGINT`` * Function promoted to official. diff --git a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst index 0768112e0d..b32d04f5ce 100644 --- a/doc/dominator/pgr_lengauerTarjanDominatorTree.rst +++ b/doc/dominator/pgr_lengauerTarjanDominatorTree.rst @@ -13,7 +13,7 @@ | -``pgr_lengauerTarjanDominatorTree`` -Experimental +``pgr_lengauerTarjanDominatorTree`` - Experimental =============================================================================== ``pgr_lengauerTarjanDominatorTree`` — Returns the immediate dominator of all diff --git a/doc/driving_distance/pgr_drivingDistance.rst b/doc/driving_distance/pgr_drivingDistance.rst index 5cb648bdc5..437e35765f 100644 --- a/doc/driving_distance/pgr_drivingDistance.rst +++ b/doc/driving_distance/pgr_drivingDistance.rst @@ -24,11 +24,11 @@ * Standarizing output columns to |result-spantree| - * pgr_drivingdistance(Single vertex) + * pgr_drivingDistance(Single vertex) * Added ``depth`` and ``start_vid`` result columns. - * pgr_drivingdistance(Multiple vertices) + * pgr_drivingDistance(Multiple vertices) * Result column name change: ``from_v`` to ``start_vid``. * Added ``depth`` and ``pred`` result columns. diff --git a/doc/lineGraph/pgr_lineGraphFull.rst b/doc/lineGraph/pgr_lineGraphFull.rst index c14af36feb..3d98206e81 100644 --- a/doc/lineGraph/pgr_lineGraphFull.rst +++ b/doc/lineGraph/pgr_lineGraphFull.rst @@ -143,9 +143,9 @@ Additional Examples .. contents:: :local: -The examples of this section are based on the :doc:`sampledata` -The examples include the subgraph including edges 4, 7, 8, and 10 with -``reverse_cost``. +* The examples of this section are based on the :doc:`sampledata` network. +* The examples include the subgraph including edges 4, 7, 8, and 10 with + ``reverse_cost``. The data ............................................................................... diff --git a/doc/max_flow/pgr_maxCardinalityMatch.rst b/doc/max_flow/pgr_maxCardinalityMatch.rst index e60359d753..86aac8566e 100644 --- a/doc/max_flow/pgr_maxCardinalityMatch.rst +++ b/doc/max_flow/pgr_maxCardinalityMatch.rst @@ -28,13 +28,13 @@ graph. * Works for undirected graphs. * New signature - * pgr_maxCardinalityMatch(text)`` returns only ``edge`` column. + * pgr_maxCardinalityMatch(text) returns only ``edge`` column. * Deprecated signature - * pgr_maxCardinalityMatch(text,boolean)`` + * pgr_maxCardinalityMatch(text,boolean) - * directed => false`` when used. + * directed => ``false`` when used. * Version 3.0.0 diff --git a/doc/metrics/pgr_betweennessCentrality.rst b/doc/metrics/pgr_betweennessCentrality.rst index 91f16170a5..ffee73eb18 100644 --- a/doc/metrics/pgr_betweennessCentrality.rst +++ b/doc/metrics/pgr_betweennessCentrality.rst @@ -16,7 +16,7 @@ ``pgr_betweennessCentrality`` - Experimental =============================================================================== -``pgr_betweennessCentrality`` - Calculates the relative betweeness centrality +``pgr_betweennessCentrality`` - Calculates the relative betweenness centrality using Brandes Algorithm .. rubric:: Availability @@ -25,8 +25,6 @@ using Brandes Algorithm * New experimental function. - * pgr_betweennessCentrality`` - Description ------------------------------------------------------------------------------- @@ -140,7 +138,7 @@ See Also * :doc:`sampledata` * `Boost: betweenness centrality - `_ + `_ .. rubric:: Indices and tables diff --git a/doc/src/index.rst b/doc/src/index.rst index 9d6b6b9648..34aa2eb40a 100644 --- a/doc/src/index.rst +++ b/doc/src/index.rst @@ -89,9 +89,6 @@ Available Functions but not official pgRouting functions :doc:`release_notes` =============================================================================== -Current release -------------------------------------------------------------------------------- - .. include:: release_notes.rst :start-after: current :end-before: pgRouting 3.7 diff --git a/doc/src/migration.rst b/doc/src/migration.rst index d8771c4f87..606e035fec 100644 --- a/doc/src/migration.rst +++ b/doc/src/migration.rst @@ -9,6 +9,7 @@ | + Migration guide =============================================================================== @@ -21,24 +22,18 @@ Results can be different because of the changes. All deprecated functions will be removed on next mayor version 4.0.0 .. contents:: Contents + :depth: 2 -Migration of functions -******************************************************************************* - -.. contents:: Migrating functions - :local: - - -Migration of pgr_aStar`` +Migration of ``pgr_aStar`` ------------------------------------------------------------------------------- Starting from `v3.6.0 `__ Signatures to be migrated: -* pgr_aStar(One to One) -* pgr_aStar(One to Many) -* pgr_aStar(Many to One) +* ``pgr_aStar`` (`One to One`) +* ``pgr_aStar`` (`One to Many`) +* ``pgr_aStar`` (`Many to One`) :Before Migration: @@ -47,24 +42,24 @@ Signatures to be migrated: * Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing: - * 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``. + * ``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``. :Migration: * Be aware of the existence of the additional columns. -* In pgr_aStar(One to One) +* In ``pgr_aStar`` (`One to One`) - * start_vid`` contains the **start vid** parameter value. - * end_vid`` contains the **end vid** parameter value. + * ``start_vid`` contains the **start vid** parameter value. + * ``end_vid`` contains the **end vid** parameter value. .. literalinclude:: migration.queries :start-after: --astar1 :end-before: --astar2 -* In pgr_aStar(One to Many) +* In ``pgr_aStar`` (`One to Many`) * ``start_vid`` contains the **start vid** parameter value. @@ -72,7 +67,7 @@ Signatures to be migrated: :start-after: --astar2 :end-before: --astar3 -* In pgr_aStar(Many to One) +* In ``pgr_aStar`` (`Many to One`) * ``end_vid`` contains the **end vid** parameter value. @@ -105,9 +100,9 @@ Starting from `v3.6.0 `__ Signatures to be migrated: -* pgr_bdAstar(One to One) -* pgr_bdAstar(One to Many) -* pgr_bdAstar(Many to One) +* ``pgr_bdAstar`` (`One to One`) +* ``pgr_bdAstar`` (`One to Many`) +* ``pgr_bdAstar`` (`Many to One`) :Before Migration: @@ -116,15 +111,15 @@ Signatures to be migrated: * Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing: - * 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``. + * ``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``. :Migration: * Be aware of the existence of the additional columns. -* In pgr_bdAstar(One to One) +* In ``pgr_bdAstar`` (`One to One`) * ``start_vid`` contains the **start vid** parameter value. * ``end_vid`` contains the **end vid** parameter value. @@ -133,7 +128,7 @@ Signatures to be migrated: :start-after: --bdastar1 :end-before: --bdastar2 -* In pgr_bdAstar(One to Many) +* In ``pgr_bdAstar`` (`One to Many`) * ``start_vid`` contains the **start vid** parameter value. @@ -141,7 +136,7 @@ Signatures to be migrated: :start-after: --bdastar2 :end-before: --bdastar3 -* In pgr_bdAstar(Many to One) +* In ``pgr_bdAstar`` (`Many to One`) * ``end_vid`` contains the **end vid** parameter value. @@ -173,9 +168,9 @@ Starting from `v3.5.0 `__ Signatures to be migrated: -* pgr_dijkstra(One to One) -* pgr_dijkstra(One to Many) -* pgr_dijkstra(Many to One) +* ``pgr_dijkstra`` (`One to One`) +* ``pgr_dijkstra`` (`One to Many`) +* ``pgr_dijkstra`` (`Many to One`) :Before Migration: @@ -184,16 +179,16 @@ Signatures to be migrated: * Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing: - * pgr_dijkstra(One to One) does not have ``start_vid`` and + * ``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``. + * ``pgr_dijkstra`` (`One to Many`) does not have ``start_vid``. + * ``pgr_dijkstra`` (`Many to One`) does not have ``end_vid``. :Migration: * Be aware of the existence of the additional columns. -* In pgr_dijkstra(One to One) +* In ``pgr_dijkstra`` (`One to One`) * ``start_vid`` contains the **start vid** parameter value. * ``end_vid`` contains the **end vid** parameter value. @@ -202,7 +197,7 @@ Signatures to be migrated: :start-after: --dijkstra1 :end-before: --dijkstra2 -* In pgr_dijkstra(One to Many) +* In ``pgr_dijkstra`` (`One to Many`) * ``start_vid`` contains the **start vid** parameter value. @@ -210,7 +205,7 @@ Signatures to be migrated: :start-after: --dijkstra2 :end-before: --dijkstra3 -* In pgr_dijkstra(Many to One) +* In ``pgr_dijkstra`` (`Many to One`) * ``end_vid`` contains the **end vid** parameter value. @@ -232,7 +227,7 @@ Signatures to be migrated: the function ``my_dijkstra`` returns the new additional columns of ``pgr_dijkstra``. -Migration of ``pgr_drivingdistance`` +Migration of ``pgr_drivingDistance`` ------------------------------------------------------------------------------- Starting from `v3.6.0 `__ @@ -243,18 +238,18 @@ Starting from `v3.6.0 `__ Signatures to be migrated: -* pgr_drivingdistance(Single vertex) -* pgr_drivingdistance(Multiple vertices) +* pgr_drivingDistance(Single vertex) +* pgr_drivingDistance(Multiple vertices) :Before Migration: Output columns were |result-dij-dd| -* pgr_drivingdistance(Single vertex) +* pgr_drivingDistance(Single vertex) * Does not have ``start_vid`` and ``depth`` result columns. -* pgr_drivingdistance(Multiple vertices) +* pgr_drivingDistance(Multiple vertices) * Has ``from_v`` instead of ``start_vid`` result column. * does not have ``depth`` result column. @@ -263,7 +258,7 @@ Output columns were |result-dij-dd| * Be aware of the existence and name change of the result columns. -``pgr_drivingdistance`` (Single vertex) +pgr_drivingDistance(Single vertex) ............................................................................... Using `this @@ -284,7 +279,7 @@ If needed filter out the added columns, for example, to return the original colu :start-after: --drivingdistance2 :end-before: --drivingdistance3 -``pgr_drivingdistance`` (Multiple vertices) +pgr_drivingDistance(Multiple vertices) ............................................................................... Using `this @@ -348,7 +343,7 @@ Output columns were |result-bfs| Kruskal single vertex ............................................................................... -Using pgr_KruskalDD`` as example. +Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected functions. Comparing with `this @@ -401,7 +396,7 @@ Starting from `v3.6.0 `__ Signatures to be migrated: -* pgr_KSP(One to One) +* ``pgr_KSP`` (One to One) :Before Migration: @@ -409,7 +404,7 @@ Signatures to be migrated: * the columns ``start_vid`` and ``end_vid`` do not exist. - * pgr_KSP(One to One) does not have ``start_vid`` and ``end_vid``. + * ``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``. :Migration: @@ -458,7 +453,7 @@ Migration is needed, because: * Works for undirected graphs. * New signature - * pgr_maxCardinalityMatch(text)`` returns only ``edge`` column. + * ``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column. * The optional flag ``directed`` is removed. :Before migration: @@ -488,7 +483,7 @@ Migration is needed, because: :start-after: --maxcard2 :end-before: --maxcard3 -Migration of pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS`` +Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS`` ------------------------------------------------------------------------------- Starting from `v3.7.0 `__ @@ -552,7 +547,7 @@ columns Prim multiple vertices ............................................................................... -Using pgr_primDD`` as example. +Using ``pgr_primDD`` as example. Migration is similar to al the affected functions. Comparing with `this @@ -597,7 +592,7 @@ Signatures to be migrated: * Does not have ``start_vid``, ``pred`` and ``depth`` result columns. * ``driving_side`` parameter was named optional now it is compulsory unnamed. -* ``pgr_withPointsDD`` (Multiple vertices) +* ``pgr_withPointsDD`` (`Multiple vertices`) * Output columns were |result-m-1-no-seq| * Does not have ``depth`` and ``pred`` result columns. @@ -727,7 +722,7 @@ And ``driving side`` parameter changed from named optional to unnamed compulsory Signatures to be migrated: -* pgr_withPointsKSP(One to One) +* ``pgr_withPointsKSP`` (`One to One`) :Before Migration: @@ -748,7 +743,7 @@ Signatures to be migrated: * In undirected graph: valid values are [``b``, ``B``] * Using an invalid value throws an ``ERROR``. -``pgr_withPointsKSP`` (One to One) +``pgr_withPointsKSP`` (`One to One`) ............................................................................... Using @@ -769,200 +764,39 @@ columns: :start-after: --withPointsKSP2 :end-before: --withPointsKSP3 -Migration of turn restrictions -******************************************************************************* - -.. contents:: Contents - :local: - -Migration of restrictions -------------------------------------------------------------------------------- - -Starting from `v3.4.0 `__ - -The structure of the restrictions have changed: - -Old restrictions structure -............................................................................... - -On the deprecated signatures: - -* Column ``rid`` is ignored -* ``via_path`` - - * Must be in reverse order. - * Is of type ``TEXT``. - * When more than one via edge must be separated with ``,``. - -* ``target_id`` - - * Is the last edge of the forbidden path. - * Is of type ``INTEGER``. - -* ``to_cost`` - - * Is of type ``FLOAT``. - -Creation of the old restrictions table - -.. literalinclude:: migration.queries - :start-after: --rest00 - :end-before: --rest01 - -Old restrictions fill up - -.. literalinclude:: migration.queries - :start-after: --rest01 - :end-before: --rest1 - -Old restrictions contents -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -.. literalinclude:: migration.queries - :start-after: --rest1 - :end-before: --rest2 - -The restriction with ``rid = 2`` is representing :math:`3 \rightarrow 5 -\rightarrow9` - -* :math:`3\rightarrow5` - - * is on column ``via_path`` in reverse order - * is of type ``TEXT`` - -* :math:`9` - - * is on column ``target_id`` - * is of type ``INTEGER`` - - -New restrictions structure -............................................................................... - -* Column ``id`` is ignored -* Column ``path`` - - * Is of type ``ARRAY[ANY-INTEGER]``. - * Contains all the edges involved on the restriction. - * The array has the ordered edges of the restriction. - -* Column ``cost`` - - * Is of type ``ANY-NUMERICAL`` - -.. include:: sampledata.rst - :start-after: the_restrictions_start - :end-before: the_restrictions_end - - -The restriction with ``rid = 2`` represents the path :math:`3 \rightarrow5 -\rightarrow9`. - -* By inspection the path is clear. - -Migration -............................................................................... - -To transform the old restrictions table to the new restrictions structure, - -* Create a new table with the new restrictions structure. - - * In this migration guide ``new_restrictions`` is been used. - -* For this migration pgRouting supplies an auxiliary function for reversal of an - array ``_pgr_array_reverse`` needed for the migration. - - * ``_pgr_array_reverse``: - - * Was created temporally for this migration - * Is not documented. - * Will be removed on the next mayor version 4.0.0 - -.. literalinclude:: migration.queries - :start-after: --rest3 - :end-before: --rest4 - -The migrated table contents: - -.. literalinclude:: migration.queries - :start-after: --rest4 - :end-before: --rest5 - Migration of ``pgr_trsp`` (Vertices) ------------------------------------------------------------------------------- -:doc:`pgr_trsp` signatures have changed and many issues have been fixed in the -new signatures. This section will show how to migrate from the old signatures to -the new replacement functions. This also affects the restrictions. - -Starting from `v3.4.0 `__ - -Signature to be migrated: +Signature: .. parsed-literal:: - pgr_trsp(Edges SQL, source, target, - directed boolean, has_rcost boolean + pgr_trsp(Edges SQL, source, target, directed boolean, has_rcost boolean [,restrict_sql text]); RETURNS SETOF (seq, id1, id2, cost) -* The integral type of the ``Edges SQL`` can only be ``INTEGER``. -* The floating point type of the ``Edges SQL`` can only be ``FLOAT``. -* ``directed`` flag is compulsory. +:Deprecated: `v3.4.0 `__ - * Does not have a default value. - -* Does not autodetect if ``reverse_cost`` column exist. - - * User must be careful to match the existence of the column with the value of - ``has_rcost`` parameter. - -* The restrictions inner query is optional. -* The output column names are meaningless - -Migrate by using: +.. contents:: + :local: -* :doc:`pgr_dijkstra` when there are no restrictions, -* :doc:`pgr_trsp` (One to One) when there are restrictions. +.. rubric:: See Also +- :doc:`pgr_dijkstra` +- :doc:`pgr_trsp` +- `Migration of restrictions`_ -Migrating ``pgr_trsp`` (Vertices) using ``pgr_dijkstra`` +Use ``pgr_dijkstra`` when there are no restrictions. ............................................................................... -The following query does not have restrictions. - -.. literalinclude:: migration.queries - :start-after: --verticesv1 - :end-before: --verticesv2 - -* A message about deprecation is shown - - * Deprecated functions will be removed on the next mayor version 4.0.0 - Use :doc:`pgr_dijkstra` instead. - .. literalinclude:: migration.queries :start-after: --verticesv2 :end-before: --verticesv3 -* The types casting has been removed. -* :doc:`pgr_dijkstra`: - - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. - - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. - - * The flag has been omitted and the default is been used. - -When the need of using strictly the same (meaningless) names and types of the -function been migrated then: +To get the original column names: .. literalinclude:: migration.queries :start-after: --verticesv3 @@ -971,50 +805,16 @@ function been migrated then: * ``id1`` is the node * ``id2`` is the edge - -Migrating ``pgr_trsp`` (Vertices) using ``pgr_trsp`` +Use ``pgr_trsp`` when there are restrictions. ............................................................................... -The following query has restrictions. - -.. literalinclude:: migration.queries - :start-after: --verticesv4 - :end-before: --verticesv5 - -* A message about deprecation is shown - - * Deprecated functions will be removed on the next mayor version 4.0.0 - -* The restrictions are the last parameter of the function - - * Using the old structure of restrictions - Use :doc:`pgr_trsp` (One to One) instead. .. literalinclude:: migration.queries :start-after: --verticesv5 :end-before: --verticesv6 -* The new structure of restrictions is been used. - - * It is the second parameter. - -* The types casting has been removed. -* :doc:`pgr_trsp`: - - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. - - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. - - * The flag has been omitted and the default is been used. - -When the need of using strictly the same (meaningless) names and types of the -function been migrated then: +To get the original column names: .. literalinclude:: migration.queries :start-after: --verticesv6 @@ -1023,10 +823,10 @@ function been migrated then: * ``id1`` is the node * ``id2`` is the edge -Migration of pgr_trsp(Edges) +Migration of ``pgr_trsp`` (Edges) ------------------------------------------------------------------------------- -Signature to be migrated: +Signature: .. parsed-literal:: @@ -1036,67 +836,27 @@ Signature to be migrated: [,restrict_sql text]); RETURNS SETOF (seq, id1, id2, cost) -* The integral types of the ``sql`` can only be ``INTEGER``. -* The floating point type of the ``sql`` can only be ``FLOAT``. -* ``directed`` flag is compulsory. - - * Does not have a default value. - -* Does not autodetect if ``reverse_cost`` column exist. +:Deprecated: `v3.4.0 `__ - * User must be careful to match the existence of the column with the value of - ``has_rcost`` parameter. - -* The restrictions inner query is optional. - -For these migration guide the following points will be used: - -.. literalinclude:: migration.queries - :start-after: --verticesv7 - :end-before: --edgesv1 +.. contents:: + :local: -Migrate by using: +.. rubric:: See Also -* :doc:`pgr_withPoints` when there are no restrictions, -* :doc:`pgr_trsp_withPoints` (One to One) when there are restrictions. +- :doc:`pgr_withPoints` +- :doc:`pgr_trsp_withPoints` +- `Migration of restrictions`_ -Migrating ``pgr_trsp`` (Edges) using ``pgr_withPoints`` +Use ``pgr_withPoints`` when there are no restrictions. ............................................................................... -The following query does not have restrictions. - -.. literalinclude:: migration.queries - :start-after: --edgesv1 - :end-before: --edgesv2 - -* A message about deprecation is shown - - * Deprecated functions will be removed on the next mayor version 4.0.0 - -Use :doc:`pgr_withPoints` instead. +Use :doc:`pgr_withPoints` (One to One) instead. .. literalinclude:: migration.queries :start-after: --edgesv2 :end-before: --edgesv3 -* The types casting has been removed. -* Do not show details, as the deprecated function does not show details. -* :doc:`pgr_withPoints`: - - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. - - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. - - * The flag has been omitted and the default is been used. - * On the points query do not include the ``side`` column. - -When the need of using strictly the same (meaningless) names and types, and node -values of the function been migrated then: +To get the original column names: .. literalinclude:: migration.queries :start-after: --edgesv3 @@ -1105,52 +865,16 @@ values of the function been migrated then: * ``id1`` is the node * ``id2`` is the edge - -Migrating ``pgr_trsp`` (Edges) using ``pgr_trsp_withPoints`` +Use ``pgr_trsp_withPoints`` when there are restrictions. ............................................................................... -The following query has restrictions. - -.. literalinclude:: migration.queries - :start-after: --edgesv4 - :end-before: --edgesv5 - -* A message about deprecation is shown - - * Deprecated functions will be removed on the next mayor version 4.0.0 - -* The restrictions are the last parameter of the function - - * Using the old structure of restrictions - Use :doc:`pgr_trsp_withPoints` instead. .. literalinclude:: migration.queries :start-after: --edgesv5 :end-before: --edgesv6 -* The new structure of restrictions is been used. - - * It is the second parameter. - -* The types casting has been removed. -* Do not show details, as the deprecated function does not show details. -* :doc:`pgr_trsp_withPoints`: - - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. - - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. - - * The flag has been omitted and the default is been used. - * On the points query do not include the ``side`` column. - -When the need of using strictly the same (meaningless) names and types, and node -values of the function been migrated then: +To get the original column names: .. literalinclude:: migration.queries :start-after: --edgesv6 @@ -1162,7 +886,7 @@ values of the function been migrated then: Migration of ``pgr_trspViaVertices`` ------------------------------------------------------------------------------- -Signature to be migrated: +Signature: .. parsed-literal:: @@ -1171,62 +895,28 @@ Signature to be migrated: [, turn_restrict_sql text]); RETURNS SETOF (seq, id1, id2, id3, cost) +:Deprecated: `v3.4.0 `__ -* The integral types of the ``Edges SQL`` can only be ``INTEGER``. -* The floating point type of the ``Edges SQL`` can only be ``FLOAT``. -* ``directed`` flag is compulsory. - - * Does not have a default value. - -* Does not autodetect if ``reverse_cost`` column exist. - - * User must be careful to match the existence of the column with the value of - ``has_rcost`` parameter. - -* The restrictions inner query is optional. - +.. contents:: + :local: + :depth: 1 -Migrate by using: +.. rubric:: See Also -* :doc:`pgr_dijkstraVia` when there are no restrictions, -* :doc:`pgr_trspVia` when there are restrictions. +- :doc:`pgr_dijkstraVia` +- :doc:`pgr_trspVia` +- `Migration of restrictions`_ -Migrating ``pgr_trspViaVertices`` using ``pgr_dijkstraVia`` +Use ``pgr_dijkstraVia`` when there are no restrictions ............................................................................... -The following query does not have restrictions. - -.. literalinclude:: migration.queries - :start-after: --viav1 - :end-before: --viav2 - -* A message about deprecation is shown - - * Deprecated functions will be removed on the next mayor version 4.0.0 - Use :doc:`pgr_dijkstraVia` instead. .. literalinclude:: migration.queries :start-after: --viav2 :end-before: --viav3 -* The types casting has been removed. -* :doc:`pgr_dijkstraVia`: - - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. - - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. - - * The flag has been omitted and the default is been used. - * On the points query do not include the ``side`` column. - -When the need of using strictly the same (meaningless) names and types of the -function been migrated then: +To get the original column names: .. literalinclude:: migration.queries :start-after: --viav3 @@ -1236,51 +926,16 @@ function been migrated then: * ``id2`` is the node * ``id3`` is the edge - -Migrating ``pgr_trspViaVertices`` using ``pgr_trspVia`` +Use ``pgr_trspVia`` when there are restrictions ............................................................................... -The following query has restrictions. - -.. literalinclude:: migration.queries - :start-after: --viav4 - :end-before: --viav5 - -* A message about deprecation is shown - - * Deprecated functions will be removed on the next mayor version 4.0.0 - -* The restrictions are the last parameter of the function - - * Using the old structure of restrictions - Use :doc:`pgr_trspVia` instead. .. literalinclude:: migration.queries :start-after: --viav5 :end-before: --viav6 -* The new structure of restrictions is been used. - - * It is the second parameter. - -* The types casting has been removed. -* :doc:`pgr_trspVia`: - - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. - - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. - - * The flag has been omitted and the default is been used. - * On the points query do not include the ``side`` column. - -When the need of using strictly the same (meaningless) names and types of the -function been migrated then: +To get the original column names: .. literalinclude:: migration.queries :start-after: --viav6 @@ -1293,7 +948,7 @@ function been migrated then: Migration of ``pgr_trspViaEdges`` ------------------------------------------------------------------------------- -Signature to be migrated: +Signature: .. parsed-literal:: @@ -1302,132 +957,168 @@ Signature to be migrated: [, turn_restrict_sql text]); RETURNS SETOF (seq, id1, id2, id3, cost) +:Deprecated: `v3.4.0 `__ -* The integral types of the ``Edges SQL`` can only be ``INTEGER``. -* The floating point type of the ``Edges SQL`` can only be ``FLOAT``. -* ``directed`` flag is compulsory. - - * Does not have a default value. +.. contents:: + :local: + :depth: 1 -* Does not autodetect if ``reverse_cost`` column exist. +.. rubric:: See Also - * User must be careful to match the existence of the column with the value of - ``has_rcost`` parameter. +- :doc:`pgr_withPointsVia` +- :doc:`pgr_trspVia_withPoints` +- `Migration of restrictions`_ -* The restrictions inner query is optional. +Use ``pgr_withPointsVia`` when there are no restrictions +............................................................................... -For these migration guide the following points will be used: +Use :doc:`pgr_withPointsVia` instead. .. literalinclude:: migration.queries - :start-after: --viav7 - :end-before: --edgesvia1 + :start-after: --edgesvia2 + :end-before: --edgesvia3 -And will travel thru the following Via points :math:`4\rightarrow3\rightarrow6` +To get the original column names: -Migrate by using: +.. literalinclude:: migration.queries + :start-after: --edgesvia3 + :end-before: --edgesvia4 -* :doc:`pgr_withPointsVia` when there are no restrictions, -* :doc:`pgr_trspVia_withPoints` when there are restrictions. +* ``id1`` is the path identifier +* ``id2`` is the node +* ``id3`` is the edge -Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia`` +Use ``pgr_trspVia_withPoints`` when there are restrictions ............................................................................... -The following query does not have restrictions. +Use :doc:`pgr_trspVia_withPoints` instead. .. literalinclude:: migration.queries - :start-after: --edgesvia1 - :end-before: --edgesvia2 + :start-after: --edgesvia5 + :end-before: --edgesvia6 -* A message about deprecation is shown +To get the original column names: - * Deprecated functions will be removed on the next mayor version 4.0.0 +.. literalinclude:: migration.queries + :start-after: --edgesvia6 + :end-before: --edgesvia7 -Use :doc:`pgr_withPointsVia` instead. +* ``id1`` is the path identifier +* ``id2`` is the node +* ``id3`` is the edge -.. literalinclude:: migration.queries - :start-after: --edgesvia2 - :end-before: --edgesvia3 +Migration of restrictions +------------------------------------------------------------------------------- -* The types casting has been removed. -* Do not show details, as the deprecated function does not show details. -* :doc:`pgr_withPointsVia`: +Starting from `v3.4.0 `__ - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. +The structure of the restrictions have changed: - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. +Old restrictions structure +............................................................................... - * The flag has been omitted and the default is been used. - * On the points query do not include the ``side`` column. +On the deprecated signatures: -When the need of using strictly the same (meaningless) names and types, and node -values of the function been migrated then: +* Column ``rid`` is ignored +* ``via_path`` + + * Must be in reverse order. + * Is of type ``TEXT``. + * When more than one via edge must be separated with ``,``. + +* ``target_id`` + + * Is the last edge of the forbidden path. + * Is of type ``INTEGER``. + +* ``to_cost`` + + * Is of type ``FLOAT``. + +Creation of the old restrictions table .. literalinclude:: migration.queries - :start-after: --edgesvia3 - :end-before: --edgesvia4 + :start-after: --rest00 + :end-before: --rest01 -* ``id1`` is the path identifier -* ``id2`` is the node -* ``id3`` is the edge +Old restrictions fill up -Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints`` -............................................................................... +.. literalinclude:: migration.queries + :start-after: --rest01 + :end-before: --rest1 -The following query has restrictions. +Old restrictions contents ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. literalinclude:: migration.queries - :start-after: --edgesvia4 - :end-before: --edgesvia5 + :start-after: --rest1 + :end-before: --rest2 -* A message about deprecation is shown +The restriction with ``rid = 2`` is representing :math:`3 \rightarrow 5 +\rightarrow9` - * Deprecated functions will be removed on the next mayor version 4.0.0 +* :math:`3\rightarrow5` -* The restrictions are the last parameter of the function + * is on column ``via_path`` in reverse order + * is of type ``TEXT`` - * Using the old structure of restrictions +* :math:`9` -Use :doc:`pgr_trspVia_withPoints` instead. + * is on column ``target_id`` + * is of type ``INTEGER`` -.. literalinclude:: migration.queries - :start-after: --edgesvia5 - :end-before: --edgesvia6 -* The new structure of restrictions is been used. +New restrictions structure +............................................................................... - * It is the second parameter. +* Column ``id`` is ignored +* Column ``path`` -* The types casting has been removed. -* Do not show details, as the deprecated function does not show details. -* :doc:`pgr_trspVia_withPoints`: + * Is of type ``ARRAY[ANY-INTEGER]``. + * Contains all the edges involved on the restriction. + * The array has the ordered edges of the restriction. + +* Column ``cost`` + + * Is of type ``ANY-NUMERICAL`` + +.. include:: sampledata.rst + :start-after: the_restrictions_start + :end-before: the_restrictions_end - * Autodetects if ``reverse_cost`` column is in the edges - SQL. - * Accepts ``ANY-INTEGER`` on integral types - * Accepts ``ANY-NUMERICAL`` on floating point types - * ``directed`` flag has a default value of ``true``. - * Use the same value that on the original query. - * In this example it is ``true`` which is the default value. +The restriction with ``rid = 2`` represents the path :math:`3 \rightarrow5 +\rightarrow9`. + +* By inspection the path is clear. - * The flag has been omitted and the default is been used. - * On the points query do not include the ``side`` column. +Migration +............................................................................... -When the need of using strictly the same (meaningless) names and types, and node -values of the function been migrated then: +To transform the old restrictions table to the new restrictions structure, + +* Create a new table with the new restrictions structure. + + * In this migration guide ``new_restrictions`` is been used. + +* For this migration pgRouting supplies an auxiliary function for reversal of an + array ``_pgr_array_reverse`` needed for the migration. + + * ``_pgr_array_reverse``: + + * Was created temporally for this migration + * Is not documented. + * Will be removed on the next mayor version 4.0.0 .. literalinclude:: migration.queries - :start-after: --edgesvia6 - :end-before: --edgesvia7 + :start-after: --rest3 + :end-before: --rest4 -* ``id1`` is the path identifier -* ``id2`` is the node -* ``id3`` is the edge +The migrated table contents: + +.. literalinclude:: migration.queries + :start-after: --rest4 + :end-before: --rest5 See Also diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index f1b4c125bb..f621169b4f 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -265,7 +265,7 @@ milestone for 3.6.0 :end-before: .. rubric * `#2548 `__ Standarize output - pgr_drivingdistance + pgr_drivingDistance .. include:: pgr_drivingDistance.rst :start-after: Version 3.6.0 @@ -480,9 +480,9 @@ milestone for 3.4.0 * Flow functions - * pgr_maxCardinalityMatch(text)`` + * pgr_maxCardinalityMatch(text) - * Deprecating ``pgr_maxCardinalityMatch(text,boolean)`` + * Deprecating: pgr_maxCardinalityMatch(text,boolean) .. rubric:: Deprecated Functions @@ -995,7 +995,7 @@ on Github. * `#1006 `__: No loss of information -.. rubric:: New functions +.. rubric:: New Functions * Kruskal family @@ -1016,66 +1016,57 @@ on Github. * 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(one to one) - * pgr_aStarCostMatrix(one to many) - * pgr_aStarCostMatrix(many to one) - * pgr_aStarCostMatrix(many to many) + * 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(one to one) - * pgr_bdAstarCostMatrix(one to many) - * pgr_bdAstarCostMatrix(many to one) - * pgr_bdAstarCostMatrix(many to many) + * 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(one to one) - * pgr_bdDijkstraCostMatrix(one to many) - * pgr_bdDijkstraCostMatrix(many to one) - * pgr_bdDijkstraCostMatrix(many to many) + * 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_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) + * pgr_edgeDisjointPaths(One to One) + * pgr_edgeDisjointPaths(One to Many) + * pgr_edgeDisjointPaths(Many to One) + * pgr_edgeDisjointPaths(Many to Many) * Components family @@ -1201,7 +1192,7 @@ on Github. * pgr_floydWarshall * pgr_johnson - * pgr_astar + * pgr_aStar * pgr_bdAstar * pgr_bdDijstra * pgr_alphashape @@ -1291,13 +1282,15 @@ on Github. pgRouting 2.5.4 Release Notes ------------------------------------------------------------------------------- -To see the issues closed by this release see the `Git closed milestone for 2.5.4 `_ on Github. +To see the issues closed by this release see the `Git closed milestone for 2.5.4 +`_ +on Github. * Fixes server crash on several functions. * pgr_floydWarshall * pgr_johnson - * pgr_astar + * pgr_aStar * pgr_bdAstar * pgr_bdDijstra * pgr_alphashape @@ -1382,29 +1375,29 @@ on Github. * Added path_id, cost and agg_cost columns on the result * Parameter names changed - * The many version results are the union of the one to one version + * The many version results are the union of the One to One version .. rubric:: New Signatures -* pgr_bdAstar(one to one) +* pgr_bdAstar(One to One) .. rubric:: New proposed functions. -* pgr_bdAstar(one to many) -* pgr_bdAstar(many to one) -* pgr_bdAstar(many to many) -* pgr_bdAstarCost(one to one) -* pgr_bdAstarCost(one to many) -* pgr_bdAstarCost(many to one) -* pgr_bdAstarCost(many to many) +* pgr_bdAstar(One to Many) +* pgr_bdAstar(Many to One) +* pgr_bdAstar(Many to Many) +* pgr_bdAstarCost(One to One) +* pgr_bdAstarCost(One to Many) +* pgr_bdAstarCost(Many to One) +* pgr_bdAstarCost(Many to Many) * pgr_bdAstarCostMatrix -* pgr_bdDijkstra(one to many) -* pgr_bdDijkstra(many to one) -* pgr_bdDijkstra(many to many) -* pgr_bdDijkstraCost(one to one) -* pgr_bdDijkstraCost(one to many) -* pgr_bdDijkstraCost(many to one) -* pgr_bdDijkstraCost(many to many) +* pgr_bdDijkstra(One to Many) +* pgr_bdDijkstra(Many to One) +* pgr_bdDijkstra(Many to Many) +* pgr_bdDijkstraCost(One to One) +* pgr_bdDijkstraCost(One to Many) +* pgr_bdDijkstraCost(Many to One) +* pgr_bdDijkstraCost(Many to Many) * pgr_bdDijkstraCostMatrix * pgr_lineGraph * pgr_lineGraphFull @@ -1476,7 +1469,7 @@ To see the issues closed by this release see the `Git closed issues for 2.4.0 `_ on Github. -.. rubric:: New Function. +.. rubric:: New Functions * pgr_bdDijkstra @@ -1484,14 +1477,14 @@ on Github. .. rubric:: New proposed signatures: * pgr_maxFlow -* pgr_astar(one to many) -* pgr_astar(many to one) -* pgr_astar(many to many) -* pgr_astarCost(one to one) -* pgr_astarCost(one to many) -* pgr_astarCost(many to one) -* pgr_astarCost(many to many) -* pgr_astarCostMatrix +* 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 .. rubric:: Deprecated signatures. @@ -1565,30 +1558,30 @@ on Github. * pgr_dijkstraCostMatrix * pgr_withPointsCostMatrix -* pgr_maxFlowPushRelabel(one to one) -* pgr_maxFlowPushRelabel(one to many) -* pgr_maxFlowPushRelabel(many to one) -* pgr_maxFlowPushRelabel(many to many) -* pgr_maxFlowEdmondsKarp(one to one) -* pgr_maxFlowEdmondsKarp(one to many) -* pgr_maxFlowEdmondsKarp(many to one) -* pgr_maxFlowEdmondsKarp(many to many) -* pgr_maxFlowBoykovKolmogorov (one to one) -* pgr_maxFlowBoykovKolmogorov (one to many) -* pgr_maxFlowBoykovKolmogorov (many to one) -* pgr_maxFlowBoykovKolmogorov (many to many) +* pgr_maxFlowPushRelabel(One to One) +* pgr_maxFlowPushRelabel(One to Many) +* pgr_maxFlowPushRelabel(Many to One) +* pgr_maxFlowPushRelabel(Many to Many) +* pgr_maxFlowEdmondsKarp(One to One) +* pgr_maxFlowEdmondsKarp(One to Many) +* pgr_maxFlowEdmondsKarp(Many to One) +* pgr_maxFlowEdmondsKarp(Many to Many) +* pgr_maxFlowBoykovKolmogorov (One to One) +* pgr_maxFlowBoykovKolmogorov (One to Many) +* pgr_maxFlowBoykovKolmogorov (Many to One) +* pgr_maxFlowBoykovKolmogorov (Many to Many) * pgr_maximumCardinalityMatching -* pgr_edgeDisjointPaths(one to one) -* pgr_edgeDisjointPaths(one to many) -* pgr_edgeDisjointPaths(many to one) -* pgr_edgeDisjointPaths(many to many) +* pgr_edgeDisjointPaths(One to One) +* pgr_edgeDisjointPaths(One to Many) +* pgr_edgeDisjointPaths(Many to One) +* pgr_edgeDisjointPaths(Many to Many) * pgr_contractGraph .. rubric:: Deprecated signatures * pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead -* pgr_astar - use pgr_aStar instead +* pgr_aStar - use pgr_aStar instead .. rubric:: Deprecated Functions @@ -1681,21 +1674,21 @@ on Github. - pgr_floydWarshall - pgr_Johnson -- pgr_dijkstraCost(one to one) -- pgr_dijkstraCost(one to many) -- pgr_dijkstraCost(many to one) -- pgr_dijkstraCost(many to many) +- pgr_dijkstraCost(One to One) +- pgr_dijkstraCost(One to Many) +- pgr_dijkstraCost(Many to One) +- pgr_dijkstraCost(Many to Many) .. rubric:: Proposed Functionality -- pgr_withPoints(one to one) -- pgr_withPoints(one to many) -- pgr_withPoints(many to one) -- pgr_withPoints(many to many) -- pgr_withPointsCost(one to one) -- pgr_withPointsCost(one to many) -- pgr_withPointsCost(many to one) -- pgr_withPointsCost(many to many) +- pgr_withPoints(One to One) +- pgr_withPoints(One to Many) +- pgr_withPoints(Many to One) +- pgr_withPoints(Many to Many) +- pgr_withPointsCost(One to One) +- pgr_withPointsCost(One to Many) +- pgr_withPointsCost(Many to One) +- pgr_withPointsCost(Many to Many) - pgr_withPointsDD(single vertex) - pgr_withPointsDD(multiple vertices) - pgr_withPointsKSP @@ -1729,14 +1722,14 @@ on Github. .. rubric:: New Signatures -- pgr_dijkstra(one to many) -- pgr_dijkstra(many to one) -- pgr_dijkstra(many to many) +- pgr_dijkstra(One to Many) +- pgr_dijkstra(Many to One) +- pgr_dijkstra(Many to Many) - pgr_drivingDistance(multiple vertices) .. rubric:: Refactored -- pgr_dijkstra(one to one) +- pgr_dijkstra(One to One) - pgr_ksp - pgr_drivingDistance(single vertex) diff --git a/doc/traversal/pgr_breadthFirstSearch.rst b/doc/traversal/pgr_breadthFirstSearch.rst index 8708b0c063..d8638e6dd0 100644 --- a/doc/traversal/pgr_breadthFirstSearch.rst +++ b/doc/traversal/pgr_breadthFirstSearch.rst @@ -55,7 +55,7 @@ Signatures | pgr_breadthFirstSearch(`Edges SQL`_, **root vid**, [**options**]) | pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**]) - | **options:** [max_depth, directed]`` + | **options:** ``[max_depth, directed]`` | Returns set of |result-bfs| @@ -69,7 +69,7 @@ Single vertex :class: signatures | pgr_breadthFirstSearch(`Edges SQL`_, **root vid**, [**options**]) - | **options:** [max_depth, directed]`` + | **options:** ``[max_depth, directed]`` | Returns set of |result-bfs| @@ -90,7 +90,7 @@ Multiple vertices :class: signatures | pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**]) - | **options:** [max_depth, directed]`` + | **options:** ``[max_depth, directed]`` | Returns set of |result-bfs| diff --git a/doc/trsp/pgr_trsp.rst b/doc/trsp/pgr_trsp.rst index 2f3bc67f5b..005ffbc653 100644 --- a/doc/trsp/pgr_trsp.rst +++ b/doc/trsp/pgr_trsp.rst @@ -38,17 +38,17 @@ * Deprecated signatures - * pgr_trsp(text,integer,integer,boolean,boolean,text)`` - * pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)`` - * pgr_trspViaVertices(text,anyarray,boolean,boolean,text)`` - * pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)`` + * pgr_trsp(text,integer,integer,boolean,boolean,text) + * pgr_trsp(text,integer,float,integer,float,boolean,boolean,text) + * pgr_trspViaVertices(text,anyarray,boolean,boolean,text) + * pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text) * Version 2.1.0 * New prototypes - * pgr_trspViaVertices`` - * pgr_trspViaEdges`` + * pgr_trspViaVertices + * pgr_trspViaEdges * Version 2.0.0 @@ -77,7 +77,7 @@ The general algorithm is as follows: Signatures ------------------------------------------------------------------------------- -.. rubric:: Proposed +.. rubric:: Summary .. admonition:: \ \ :class: signatures diff --git a/doc/trsp/pgr_trspVia.rst b/doc/trsp/pgr_trspVia.rst index 99f0f5a060..e578332a53 100644 --- a/doc/trsp/pgr_trspVia.rst +++ b/doc/trsp/pgr_trspVia.rst @@ -30,8 +30,6 @@ * New proposed function. - * pgr_trspVia(One Via) - Description ------------------------------------------------------------------------------- diff --git a/doc/tsp/pgr_TSP.rst b/doc/tsp/pgr_TSP.rst index b0f8e9b47c..53d059e164 100644 --- a/doc/tsp/pgr_TSP.rst +++ b/doc/tsp/pgr_TSP.rst @@ -16,7 +16,7 @@ ``pgr_TSP`` =============================================================================== -* pgr_TSP`` - Aproximation using *metric* algorithm. +* ``pgr_TSP`` - Aproximation using *metric* algorithm. .. rubric:: Availability: diff --git a/doc/tsp/pgr_TSPeuclidean.rst b/doc/tsp/pgr_TSPeuclidean.rst index b803633f99..06c7cfd342 100644 --- a/doc/tsp/pgr_TSPeuclidean.rst +++ b/doc/tsp/pgr_TSPeuclidean.rst @@ -16,13 +16,13 @@ ``pgr_TSPeuclidean`` ============================================================================= -* pgr_TSPeuclidean`` - Aproximation using *metric* algorithm. +* ``pgr_TSPeuclidean`` - Aproximation using *metric* algorithm. .. rubric:: Availability: * Version 3.2.1 - * Metric Algorithm from `Boost library + * Using `Boost: metric TSP approx `__ * Simulated Annealing Algorithm no longer supported diff --git a/doc/utilities/pgr_findCloseEdges.rst b/doc/utilities/pgr_findCloseEdges.rst index 5a3afe9fbf..f52c3634de 100644 --- a/doc/utilities/pgr_findCloseEdges.rst +++ b/doc/utilities/pgr_findCloseEdges.rst @@ -33,7 +33,7 @@ point geometry. * The geometries must be in the same coordinate system (have the same SRID). * The code to do the calculations can be obtained for further specific adjustments needed by the application. -* EMTPY SET`` is returned on dryrun executions +* ``EMTPY SET`` is returned on dryrun executions |Boost| Boost Graph Inside @@ -47,7 +47,7 @@ Signatures | pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**]) | pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**]) - | **options:** [cap, partial, dryrun]`` + | **options:** ``[cap, partial, dryrun]`` | Returns set of |result-find| | OR EMPTY SET diff --git a/doc/withPoints/pgr_withPoints.rst b/doc/withPoints/pgr_withPoints.rst index e9bd1ccf53..4925007c11 100644 --- a/doc/withPoints/pgr_withPoints.rst +++ b/doc/withPoints/pgr_withPoints.rst @@ -29,7 +29,7 @@ temporary vertices. * Version 3.2.0 - * New proposed function. + * New proposed signature: * pgr_withPoints(Combinations) diff --git a/doc/withPoints/pgr_withPointsCost.rst b/doc/withPoints/pgr_withPointsCost.rst index 94efbb45cb..43d3d52f28 100644 --- a/doc/withPoints/pgr_withPointsCost.rst +++ b/doc/withPoints/pgr_withPointsCost.rst @@ -111,7 +111,7 @@ Signatures withPoints family of functions. .. index:: - single: withPointsCost - Proposed ; One To One - Proposed on v2.2 + single: withPointsCost - Proposed ; One to One - Proposed on v2.2 One to One ............................................................................... @@ -132,7 +132,7 @@ One to One :end-before: -- q2 .. index:: - single: withPointsCost - Proposed ; One To Many - Proposed on v2.2 + single: withPointsCost - Proposed ; One to Many - Proposed on v2.2 One to Many ............................................................................... @@ -154,7 +154,7 @@ One to Many :end-before: -- q3 .. index:: - single: withPointsCost - Proposed ; Many To One - Proposed on v2.2 + single: withPointsCost - Proposed ; Many to One - Proposed on v2.2 Many to One ............................................................................... @@ -175,7 +175,7 @@ Many to One :end-before: -- q4 .. index:: - single: withPointsCost - Proposed ; Many To Many - Proposed on v2.2 + single: withPointsCost - Proposed ; Many to Many - Proposed on v2.2 Many to Many ............................................................................... diff --git a/doc/withPoints/pgr_withPointsCostMatrix.rst b/doc/withPoints/pgr_withPointsCostMatrix.rst index 707055c402..30f4592148 100644 --- a/doc/withPoints/pgr_withPointsCostMatrix.rst +++ b/doc/withPoints/pgr_withPointsCostMatrix.rst @@ -49,8 +49,6 @@ Using Dijkstra algorithm, calculate and return a cost matrix. Signatures ------------------------------------------------------------------------------- -.. rubric:: Summary - .. admonition:: \ \ :class: signatures diff --git a/doc/withPoints/pgr_withPointsKSP.rst b/doc/withPoints/pgr_withPointsKSP.rst index 9355b7969a..4a11bdafab 100644 --- a/doc/withPoints/pgr_withPointsKSP.rst +++ b/doc/withPoints/pgr_withPointsKSP.rst @@ -15,7 +15,7 @@ | -pgr_withPointsKSP - Proposed +``pgr_withPointsKSP`` - Proposed =============================================================================== ``pgr_withPointsKSP`` — Yen's algorithm for K shortest paths using Dijkstra. From 0d227162cb094d115e13dc5b6684ca722dea8ed3 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 11 Feb 2025 20:17:26 -0600 Subject: [PATCH 083/141] (CI) adjusting update-locale to work on push --- .github/workflows/update-locale.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-locale.yml b/.github/workflows/update-locale.yml index 9e93208483..912abe38be 100644 --- a/.github/workflows/update-locale.yml +++ b/.github/workflows/update-locale.yml @@ -8,8 +8,12 @@ name: Update Locale on: workflow_dispatch: push: - branches: - - 'develop' + paths: + - '.github/workflows/update-locale.yml' + - 'doc/**' + + branches-ignore: + - 'gh-pages' permissions: contents: read @@ -20,7 +24,6 @@ jobs: contents: write # for Git to git push name: Update Locale runs-on: ubuntu-latest - if: ${{ github.repository_owner == 'pgRouting' }} strategy: fail-fast: false From 26d7d9f6a531cf1cd701f774c669a59ceca05810 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 27 Feb 2025 10:28:28 -0600 Subject: [PATCH 084/141] Fix spelling: Adjecent -> Adjacent --- doc/contraction/contraction-family.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/contraction/contraction-family.rst b/doc/contraction/contraction-family.rst index 0c79ee1dbc..5d54ef4592 100644 --- a/doc/contraction/contraction-family.rst +++ b/doc/contraction/contraction-family.rst @@ -99,7 +99,7 @@ Dead end vertex on undirected graph :header-rows: 1 * - Node - - Adjecent nodes + - Adjacent nodes - Number of adjacent nodes * - :math:`a` - :math:`\{u\}` @@ -140,7 +140,7 @@ Dead end vertex on directed graph :header-rows: 1 * - Node - - Adjecent nodes + - Adjacent nodes - Number of adjacent nodes - Number of incoming edges - Number of outgoing edges @@ -282,7 +282,7 @@ Linear vertex on undirected graph :header-rows: 1 * - Node - - Adjecent nodes + - Adjacent nodes - Number of adjacent nodes * - :math:`v` - :math:`\{u, w\}` @@ -320,7 +320,7 @@ Linear vertex on directed graph :header-rows: 1 * - Node - - Adjecent nodes + - Adjacent nodes - Number of adjacent nodes - Is symmetrical? * - :math:`a` From 6095aa328971377468a792f9f61a5d73a1be8923 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 27 Feb 2025 10:45:08 -0600 Subject: [PATCH 085/141] Fixing code rabit issues --- doc/_static/page_history.js | 2 +- doc/circuits/pgr_hawickCircuits.rst | 2 +- doc/tsp/pgr_TSP.rst | 2 +- doc/tsp/pgr_TSPeuclidean.rst | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js index 81f8a89c04..7ca90a091a 100644 --- a/doc/_static/page_history.js +++ b/doc/_static/page_history.js @@ -4,7 +4,7 @@ function createInfo(file, newat, altnames = '') { this.altnames = altnames; } -var versionsArr = ['3.8','3.7', '3.6', '3.5', '3.4', '3.3', '3.2', '3.1', '3.0']; +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']; var titles = [ {k: 'en', v: ['Supported versions', 'Unsupported versions']}, diff --git a/doc/circuits/pgr_hawickCircuits.rst b/doc/circuits/pgr_hawickCircuits.rst index 7c5853213e..30a7c42fdd 100644 --- a/doc/circuits/pgr_hawickCircuits.rst +++ b/doc/circuits/pgr_hawickCircuits.rst @@ -16,7 +16,7 @@ ``pgr_hawickCircuits`` - Experimental =============================================================================== -``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits algorithm. +``pgr_hawickCircuits`` — Returns the list of ciruits using hawick circuits algorithm. .. include:: experimental.rst :start-after: warning-begin diff --git a/doc/tsp/pgr_TSP.rst b/doc/tsp/pgr_TSP.rst index 53d059e164..28feb2bc26 100644 --- a/doc/tsp/pgr_TSP.rst +++ b/doc/tsp/pgr_TSP.rst @@ -16,7 +16,7 @@ ``pgr_TSP`` =============================================================================== -* ``pgr_TSP`` - Aproximation using *metric* algorithm. +* ``pgr_TSP`` - Approximation using *metric* algorithm. .. rubric:: Availability: diff --git a/doc/tsp/pgr_TSPeuclidean.rst b/doc/tsp/pgr_TSPeuclidean.rst index 06c7cfd342..8de9f3817c 100644 --- a/doc/tsp/pgr_TSPeuclidean.rst +++ b/doc/tsp/pgr_TSPeuclidean.rst @@ -16,7 +16,7 @@ ``pgr_TSPeuclidean`` ============================================================================= -* ``pgr_TSPeuclidean`` - Aproximation using *metric* algorithm. +* ``pgr_TSPeuclidean`` - Approximation using *metric* algorithm. .. rubric:: Availability: From 68eb5a4b48fc586cd464b26836ce0eb09c60ae28 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 16:46:53 +0000 Subject: [PATCH 086/141] Update locale: commit 6095aa328 --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 1311 ++++++++--------- locale/pot/pgrouting_doc_strings.pot | 1063 +++++-------- 2 files changed, 978 insertions(+), 1396 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 7717d98642..85bf160908 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-23 10:17-0600\n" +"POT-Creation-Date: 2025-02-27 16:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" msgid "BFS - Category" msgstr "" @@ -282,9 +282,6 @@ msgstr "" msgid ":ref:`search`" msgstr "" -msgid "Boost Graph inside" -msgstr "" - msgid "DFS - Category" msgstr "" @@ -1122,6 +1119,7 @@ msgstr "" msgid "``vehicle_seq``" msgstr "" +#, python-brace-format msgid "" "Sequential value starting from **1** for current vehicles. The " ":math:`n_{th}` vehicle in the solution." @@ -1151,6 +1149,7 @@ msgstr "" msgid "INTEGER" msgstr "" +#, python-brace-format msgid "" "Sequential value starting from **1** for the stops made by the current " "vehicle. The :math:`m_{th}` stop of the current vehicle." @@ -1579,6 +1578,7 @@ msgstr "" msgid ":math:`10 m/s`" msgstr "" +#, python-brace-format msgid ":math:`\\frac{1}{10m/s}`" msgstr "" @@ -1591,6 +1591,7 @@ msgstr "" msgid ":math:`600 m/min`" msgstr "" +#, python-brace-format msgid ":math:`\\frac{1}{600m/min}`" msgstr "" @@ -1606,6 +1607,7 @@ msgstr "" msgid ":math:`36 km/hr`" msgstr "" +#, python-brace-format msgid ":math:`\\frac{1}{36 km/hr}`" msgstr "" @@ -1919,6 +1921,7 @@ msgstr "" msgid "DENSITY" msgstr "" +#, python-brace-format msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`." msgstr "" @@ -2586,15 +2589,12 @@ msgid "" "ending vertex:" msgstr "" -msgid "It is expected to terminate faster than pgr_astar" +msgid "It is expected to terminate faster than pgr_aStar" msgstr "" msgid ":doc:`aStar-family`" msgstr "" -msgid "`Boost `__" -msgstr "" - msgid "Bidirectional Dijkstra - Family of functions" msgstr "" @@ -2846,7 +2846,7 @@ msgstr "" msgid "Node" msgstr "" -msgid "Adjecent nodes" +msgid "Adjacent nodes" msgstr "" msgid "Number of adjacent nodes" @@ -2855,12 +2855,14 @@ msgstr "" msgid ":math:`a`" msgstr "" +#, python-brace-format msgid ":math:`\\{u\\}`" msgstr "" msgid ":math:`b`" msgstr "" +#, python-brace-format msgid ":math:`\\{v\\}`" msgstr "" @@ -2879,6 +2881,7 @@ msgstr "" msgid ":math:`c`" msgstr "" +#, python-brace-format msgid ":math:`\\{v, w\\}`" msgstr "" @@ -2888,20 +2891,24 @@ msgstr "" msgid ":math:`d`" msgstr "" +#, python-brace-format msgid ":math:`\\{x\\}`" msgstr "" msgid ":math:`e`" msgstr "" +#, python-brace-format msgid ":math:`\\{x, y\\}`" msgstr "" +#, python-brace-format msgid "" "From above, nodes :math:`\\{a, b, d\\}` are dead ends because the number " "of adjacent vertices is 1. No further checks are needed for those nodes." msgstr "" +#, python-brace-format msgid "" "On the following table, nodes :math:`\\{c, e\\}` because the even that " "the number of adjacent vertices is not 1 for" @@ -2962,6 +2969,7 @@ msgstr "" msgid ":math:`v`" msgstr "" +#, python-brace-format msgid ":math:`\\{u, w\\}`" msgstr "" @@ -2980,15 +2988,18 @@ msgstr "" msgid "Is symmetrical?" msgstr "" +#, python-brace-format msgid ":math:`\\{u, v\\}`" msgstr "" msgid "yes" msgstr "" +#, python-brace-format msgid ":math:`\\{w, x\\}`" msgstr "" +#, python-brace-format msgid ":math:`\\{y, z\\}`" msgstr "" @@ -3602,9 +3613,11 @@ msgstr "" msgid "Given the following query:" msgstr "" +#, python-brace-format msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)" msgstr "" +#, python-brace-format msgid "" "where :math:`sql = \\{(id_i, source_i, target_i, cost_i, " "reverse\\_cost_i)\\}`" @@ -3676,12 +3689,15 @@ msgstr "" msgid "Given:" msgstr "" +#, python-brace-format msgid ":math:`start_{vid} \\in V` a starting vertex" msgstr "" +#, python-brace-format msgid ":math:`end_{vid} \\in V` an ending vertex" msgstr "" +#, python-brace-format msgid "" ":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed =" " true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ " @@ -3691,6 +3707,7 @@ msgstr "" msgid "Then:" msgstr "" +#, python-brace-format msgid "" ":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, " "agg\\_cost_i)\\}`" @@ -3702,18 +3719,22 @@ msgstr "" msgid ":math:`path\\_seq_i = i`" msgstr "" +#, python-brace-format msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`" msgstr "" msgid ":math:`node_i \\in V`" msgstr "" +#, python-brace-format msgid ":math:`node_1 = start_{vid}`" msgstr "" +#, python-brace-format msgid ":math:`node_{| \\pi |} = end_{vid}`" msgstr "" +#, python-brace-format msgid "" ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) " "\\in E`" @@ -3734,6 +3755,7 @@ msgid "" " \\text{when } i \\neq 1 \\\\ \\end{cases}`" msgstr "" +#, python-brace-format msgid "" "In other words: The algorithm returns a the shortest path between " ":math:`start_{vid}` and :math:`end_{vid}`, if it exists, in terms of a " @@ -3748,6 +3770,7 @@ msgstr "" msgid ":math:`cost` is the cost of the edge to be used to go to the next node." msgstr "" +#, python-brace-format msgid "" ":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the " "node." @@ -4168,6 +4191,7 @@ msgstr "" msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`" msgstr "" +#, python-brace-format msgid "" "where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, " "reverse\\_capacity_i)\\}`" @@ -4209,14 +4233,17 @@ msgstr "" msgid ":math:`sink\\_vertex \\in V` the sink vertex" msgstr "" +#, python-brace-format msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`" msgstr "" +#, python-brace-format msgid "" ":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, " "flow_i, residual\\_capacity_i)}`" msgstr "" +#, python-brace-format msgid "" ":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their " "residual capacity and flow. The maximum flow through the graph can be " @@ -4374,197 +4401,12 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" -msgid "Current release" -msgstr "" - msgid "pgRouting 3.8.0 Release Notes" msgstr "" msgid "No Changes Yet" msgstr "" -msgid "pgRouting 3.7.3 Release Notes" -msgstr "" - -#, python-format -msgid "" -"To see all issues & pull requests closed by this release see the `Git " -"closed milestone for 3.7.3 " -"`__" -msgstr "" - -msgid "" -"`#2731 `__ Build " -"Failure on Ubuntu 22" -msgstr "" - -msgid "pgRouting 3.7.2 Release Notes" -msgstr "" - -#, python-format -msgid "" -"To see all issues & pull requests closed by this release see the `Git " -"closed milestone for 3.7.2 " -"`__" -msgstr "" - -msgid "Build" -msgstr "" - -msgid "" -"`#2713 `__ cmake " -"missing some policies and min version" -msgstr "" - -msgid "Using OLD policies: CMP0148, CMP0144, CMP0167" -msgstr "" - -msgid "Minimum cmake version 3.12" -msgstr "" - -msgid "Bug fixes" -msgstr "" - -msgid "" -"`#2707 `__ Build " -"failure in pgRouting 3.7.1 on Alpine" -msgstr "" - -msgid "" -"`#2706 `__ winnie " -"crashing on pgr_betweennessCentrality" -msgstr "" - -msgid "pgRouting 3.7.1 Release Notes" -msgstr "" - -#, python-format -msgid "" -"To see all issues & pull requests closed by this release see the `Git " -"closed milestone for 3.7.1 " -"`__" -msgstr "" - -msgid "" -"`#2680 `__ fails to " -"compile under mingw64 gcc 13.2" -msgstr "" - -msgid "" -"`#2689 `__ When point " -"is a vertex, the withPoints family do not return results." -msgstr "" - -msgid "C/C++ code enhancemet" -msgstr "" - -msgid "TRSP family" -msgstr "" - -msgid "pgRouting 3.7.0 Release Notes" -msgstr "" - -#, python-format -msgid "" -"To see all issues & pull requests closed by this release see the `Git " -"closed milestone for 3.7.0 " -"`__" -msgstr "" - -msgid "Support" -msgstr "" - -msgid "" -"`#2656 `__ Stop support" -" of PostgreSQL12 on pgrouting v3.7" -msgstr "" - -msgid "Stopping support of PostgreSQL 12" -msgstr "" - -msgid "CI does not test for PostgreSQL 12" -msgstr "" - -msgid "New experimental functions" -msgstr "" - -msgid "Metrics" -msgstr "" - -msgid "pgr_betweennessCentrality" -msgstr "" - -msgid "Official functions changes" -msgstr "" - -msgid "" -"`#2605 `__ Standarize " -"spanning tree functions output" -msgstr "" - -msgid "Functions:" -msgstr "" - -msgid "``pgr_kruskalDD``" -msgstr "" - -msgid "``pgr_kruskalDFS``" -msgstr "" - -msgid "``pgr_kruskalBFS``" -msgstr "" - -msgid "``pgr_primDD``" -msgstr "" - -msgid "``pgr_primDFS``" -msgstr "" - -msgid "``pgr_primBFS``" -msgstr "" - -msgid "Standarizing output columns to |result-spantree|" -msgstr "" - -msgid "Added ``pred`` result columns." -msgstr "" - -msgid "Experimental promoted to proposed." -msgstr "" - -msgid "" -"`#2635 `__ " -"pgr_LineGraph ignores directed flag and use negative values for " -"identifiers." -msgstr "" - -msgid "``pgr_lineGraph``" -msgstr "" - -msgid "Function promoted to proposed." -msgstr "" - -msgid "Works for directed and undirected graphs." -msgstr "" - -msgid "Code enhancement" -msgstr "" - -msgid "" -"`#2599 `__ Driving " -"distance cleanup" -msgstr "" - -msgid "" -"`#2607 `__ Read " -"postgresql data on C++" -msgstr "" - -msgid "" -"`#2614 `__ Clang tidy " -"does not work" -msgstr "" - msgid "All releases" msgstr "" @@ -4603,13 +4445,7 @@ msgstr "" msgid "All deprecated functions will be removed on next mayor version 4.0.0" msgstr "" -msgid "Migration of functions" -msgstr "" - -msgid "Migrating functions" -msgstr "" - -msgid "Migration of pgr_aStar``" +msgid "Migration of ``pgr_aStar``" msgstr "" msgid "" @@ -4620,13 +4456,13 @@ msgstr "" msgid "Signatures to be migrated:" msgstr "" -msgid "pgr_aStar(One to One)" +msgid "``pgr_aStar`` (`One to One`)" msgstr "" -msgid "pgr_aStar(One to Many)" +msgid "``pgr_aStar`` (`One to Many`)" msgstr "" -msgid "pgr_aStar(Many to One)" +msgid "``pgr_aStar`` (`Many to One`)" msgstr "" msgid "Before Migration" @@ -4640,13 +4476,13 @@ msgid "" " might be missing:" msgstr "" -msgid "pgr_aStar(One to One) does not have ``start_vid`` and ``end_vid``." +msgid "``pgr_aStar`` (`One to One`) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "pgr_aStar(One to Many) does not have ``start_vid``." +msgid "``pgr_aStar`` (`One to Many`) does not have ``start_vid``." msgstr "" -msgid "pgr_aStar(Many to One) does not have ``end_vid``." +msgid "``pgr_aStar`` (`Many to One`) does not have ``end_vid``." msgstr "" msgid "Migration" @@ -4655,25 +4491,19 @@ msgstr "" msgid "Be aware of the existence of the additional columns." msgstr "" -msgid "In pgr_aStar(One to One)" -msgstr "" - -msgid "start_vid`` contains the **start vid** parameter value." -msgstr "" - -msgid "end_vid`` contains the **end vid** parameter value." +msgid "In ``pgr_aStar`` (`One to One`)" msgstr "" -msgid "In pgr_aStar(One to Many)" +msgid "``start_vid`` contains the **start vid** parameter value." msgstr "" -msgid "``start_vid`` contains the **start vid** parameter value." +msgid "``end_vid`` contains the **end vid** parameter value." msgstr "" -msgid "In pgr_aStar(Many to One)" +msgid "In ``pgr_aStar`` (`One to Many`)" msgstr "" -msgid "``end_vid`` contains the **end vid** parameter value." +msgid "In ``pgr_aStar`` (`Many to One`)" msgstr "" msgid "If needed filter out the added columns, for example:" @@ -4701,31 +4531,33 @@ msgstr "" msgid "Migration of ``pgr_bdAstar``" msgstr "" -msgid "pgr_bdAstar(One to One)" +msgid "``pgr_bdAstar`` (`One to One`)" msgstr "" -msgid "pgr_bdAstar(One to Many)" +msgid "``pgr_bdAstar`` (`One to Many`)" msgstr "" -msgid "pgr_bdAstar(Many to One)" +msgid "``pgr_bdAstar`` (`Many to One`)" msgstr "" -msgid "pgr_bdAstar(One to One) does not have ``start_vid`` and ``end_vid``." +msgid "" +"``pgr_bdAstar`` (`One to One`) does not have ``start_vid`` and " +"``end_vid``." msgstr "" -msgid "pgr_bdAstar(One to Many) does not have ``start_vid``." +msgid "``pgr_bdAstar`` (`One to Many`) does not have ``start_vid``." msgstr "" -msgid "pgr_bdAstar(Many to One) does not have ``end_vid``." +msgid "``pgr_bdAstar`` (`Many to One`) does not have ``end_vid``." msgstr "" -msgid "In pgr_bdAstar(One to One)" +msgid "In ``pgr_bdAstar`` (`One to One`)" msgstr "" -msgid "In pgr_bdAstar(One to Many)" +msgid "In ``pgr_bdAstar`` (`One to Many`)" msgstr "" -msgid "In pgr_bdAstar(Many to One)" +msgid "In ``pgr_bdAstar`` (`Many to One`)" msgstr "" msgid "Migration of ``pgr_dijkstra``" @@ -4736,37 +4568,39 @@ msgid "" "`__" msgstr "" -msgid "pgr_dijkstra(One to One)" +msgid "``pgr_dijkstra`` (`One to One`)" msgstr "" -msgid "pgr_dijkstra(One to Many)" +msgid "``pgr_dijkstra`` (`One to Many`)" msgstr "" -msgid "pgr_dijkstra(Many to One)" +msgid "``pgr_dijkstra`` (`Many to One`)" msgstr "" -msgid "pgr_dijkstra(One to One) does not have ``start_vid`` and ``end_vid``." +msgid "" +"``pgr_dijkstra`` (`One to One`) does not have ``start_vid`` and " +"``end_vid``." msgstr "" -msgid "pgr_dijkstra(One to Many) does not have ``start_vid``." +msgid "``pgr_dijkstra`` (`One to Many`) does not have ``start_vid``." msgstr "" -msgid "pgr_dijkstra(Many to One) does not have ``end_vid``." +msgid "``pgr_dijkstra`` (`Many to One`) does not have ``end_vid``." msgstr "" -msgid "In pgr_dijkstra(One to One)" +msgid "In ``pgr_dijkstra`` (`One to One`)" msgstr "" -msgid "In pgr_dijkstra(One to Many)" +msgid "In ``pgr_dijkstra`` (`One to Many`)" msgstr "" -msgid "In pgr_dijkstra(Many to One)" +msgid "In ``pgr_dijkstra`` (`Many to One`)" msgstr "" msgid "If needed add the new columns, for example:" msgstr "" -msgid "Migration of ``pgr_drivingdistance``" +msgid "Migration of ``pgr_drivingDistance``" msgstr "" msgid "" @@ -4787,10 +4621,10 @@ msgstr "" msgid "|result-spantree|" msgstr "" -msgid "pgr_drivingdistance(Single vertex)" +msgid "pgr_drivingDistance(Single vertex)" msgstr "" -msgid "pgr_drivingdistance(Multiple vertices)" +msgid "pgr_drivingDistance(Multiple vertices)" msgstr "" msgid "Output columns were |result-dij-dd|" @@ -4808,9 +4642,6 @@ msgstr "" msgid "Be aware of the existence and name change of the result columns." msgstr "" -msgid "``pgr_drivingdistance`` (Single vertex)" -msgstr "" - msgid "" "Using `this `__ example." @@ -4827,9 +4658,6 @@ msgid "" "original columns" msgstr "" -msgid "``pgr_drivingdistance`` (Multiple vertices)" -msgstr "" - msgid "" "Using `this `__ example." @@ -4856,12 +4684,21 @@ msgstr "" msgid "|result-bfs|" msgstr "" +msgid "``pgr_kruskalDD``" +msgstr "" + msgid "Single vertex" msgstr "" msgid "Multiple vertices" msgstr "" +msgid "``pgr_kruskalDFS``" +msgstr "" + +msgid "``pgr_kruskalBFS``" +msgstr "" + msgid "Output columns were |result-bfs|" msgstr "" @@ -4881,8 +4718,8 @@ msgid "Kruskal single vertex" msgstr "" msgid "" -"Using pgr_KruskalDD`` as example. Migration is similar to al the affected" -" functions." +"Using ``pgr_KruskalDD`` as example. Migration is similar to al the " +"affected functions." msgstr "" msgid "" @@ -4897,11 +4734,6 @@ msgstr "" msgid "Kruskal multiple vertices" msgstr "" -msgid "" -"Using ``pgr_KruskalDD`` as example. Migration is similar to al the " -"affected functions." -msgstr "" - msgid "" "Comparing with `this " "`__" @@ -4923,7 +4755,7 @@ msgstr "" msgid "|nksp-result|" msgstr "" -msgid "pgr_KSP(One to One)" +msgid "``pgr_KSP`` (One to One)" msgstr "" msgid "Output columns were |ksp-result|" @@ -4932,10 +4764,7 @@ msgstr "" msgid "the columns ``start_vid`` and ``end_vid`` do not exist." msgstr "" -msgid "pgr_KSP(One to One) does not have ``start_vid`` and ``end_vid``." -msgstr "" - -msgid "``pgr_KSP`` (One to One)" +msgid "``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" msgid "" @@ -4979,7 +4808,7 @@ msgstr "" msgid "New signature" msgstr "" -msgid "pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." +msgid "``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." msgstr "" msgid "The optional flag ``directed`` is removed." @@ -5017,7 +4846,7 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" -msgid "Migration of pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" msgstr "" msgid "" @@ -5027,6 +4856,15 @@ msgid "" "standardized." msgstr "" +msgid "``pgr_primDD``" +msgstr "" + +msgid "``pgr_primDFS``" +msgstr "" + +msgid "``pgr_primBFS``" +msgstr "" + msgid "Prim single vertex" msgstr "" @@ -5043,11 +4881,6 @@ msgstr "" msgid "Prim multiple vertices" msgstr "" -msgid "" -"Using pgr_primDD`` as example. Migration is similar to al the affected " -"functions." -msgstr "" - msgid "" "Comparing with `this `__ example." @@ -5088,6 +4921,9 @@ msgid "" "unnamed." msgstr "" +msgid "``pgr_withPointsDD`` (`Multiple vertices`)" +msgstr "" + msgid "Output columns were |result-m-1-no-seq|" msgstr "" @@ -5205,7 +5041,7 @@ msgid "" "undirected graphs." msgstr "" -msgid "pgr_withPointsKSP(One to One)" +msgid "``pgr_withPointsKSP`` (`One to One`)" msgstr "" msgid "Output columns were |old-pid-result|" @@ -5214,9 +5050,6 @@ msgstr "" msgid "New output columns are |nksp-result|" msgstr "" -msgid "``pgr_withPointsKSP`` (One to One)" -msgstr "" - msgid "" "Using `this " "`__ " @@ -5228,388 +5061,262 @@ msgid "" "original columns:" msgstr "" -msgid "Migration of turn restrictions" +msgid "Migration of ``pgr_trsp`` (Vertices)" msgstr "" -msgid "Migration of restrictions" +msgid "Signature:" msgstr "" -msgid "The structure of the restrictions have changed:" +msgid "Deprecated" msgstr "" -msgid "Old restrictions structure" -msgstr "" - -msgid "On the deprecated signatures:" -msgstr "" - -msgid "Column ``rid`` is ignored" -msgstr "" - -msgid "``via_path``" -msgstr "" - -msgid "Must be in reverse order." -msgstr "" - -msgid "Is of type ``TEXT``." -msgstr "" - -msgid "When more than one via edge must be separated with ``,``." -msgstr "" - -msgid "``target_id``" -msgstr "" - -msgid "Is the last edge of the forbidden path." -msgstr "" - -msgid "Is of type ``INTEGER``." -msgstr "" - -msgid "``to_cost``" -msgstr "" - -msgid "Is of type ``FLOAT``." -msgstr "" - -msgid "Creation of the old restrictions table" -msgstr "" - -msgid "Old restrictions fill up" -msgstr "" - -msgid "Old restrictions contents" -msgstr "" - -msgid "" -"The restriction with ``rid = 2`` is representing :math:`3 \\rightarrow 5 " -"\\rightarrow9`" +msgid "`v3.4.0 `__" msgstr "" -msgid ":math:`3\\rightarrow5`" -msgstr "" - -msgid "is on column ``via_path`` in reverse order" -msgstr "" - -msgid "is of type ``TEXT``" -msgstr "" - -msgid ":math:`9`" +msgid ":doc:`pgr_dijkstra`" msgstr "" -msgid "is on column ``target_id``" +msgid ":doc:`pgr_trsp`" msgstr "" -msgid "is of type ``INTEGER``" +msgid "`Migration of restrictions`_" msgstr "" -msgid "New restrictions structure" +msgid "Use ``pgr_dijkstra`` when there are no restrictions." msgstr "" -msgid "Column ``id`` is ignored" +msgid "Use :doc:`pgr_dijkstra` instead." msgstr "" -msgid "Column ``path``" +msgid "To get the original column names:" msgstr "" -msgid "Is of type ``ARRAY[ANY-INTEGER]``." +msgid "``id1`` is the node" msgstr "" -msgid "Contains all the edges involved on the restriction." +msgid "``id2`` is the edge" msgstr "" -msgid "The array has the ordered edges of the restriction." +msgid "Use ``pgr_trsp`` when there are restrictions." msgstr "" -msgid "Column ``cost``" +msgid "Use :doc:`pgr_trsp` (One to One) instead." msgstr "" -msgid "Is of type ``ANY-NUMERICAL``" +msgid "Migration of ``pgr_trsp`` (Edges)" msgstr "" -msgid "The creation of the restrictions table" +msgid ":doc:`pgr_withPoints`" msgstr "" -msgid "Adding the restrictions" +msgid ":doc:`pgr_trsp_withPoints`" msgstr "" -msgid "Restrictions data" +msgid "Use ``pgr_withPoints`` when there are no restrictions." msgstr "" -msgid "" -"The restriction with ``rid = 2`` represents the path :math:`3 " -"\\rightarrow5 \\rightarrow9`." +msgid "Use :doc:`pgr_withPoints` (One to One) instead." msgstr "" -msgid "By inspection the path is clear." +msgid "Use ``pgr_trsp_withPoints`` when there are restrictions." msgstr "" -msgid "To transform the old restrictions table to the new restrictions structure," +msgid "Use :doc:`pgr_trsp_withPoints` instead." msgstr "" -msgid "Create a new table with the new restrictions structure." +msgid "Migration of ``pgr_trspViaVertices``" msgstr "" -msgid "In this migration guide ``new_restrictions`` is been used." +msgid ":doc:`pgr_dijkstraVia`" msgstr "" -msgid "" -"For this migration pgRouting supplies an auxiliary function for reversal " -"of an array ``_pgr_array_reverse`` needed for the migration." +msgid ":doc:`pgr_trspVia`" msgstr "" -msgid "``_pgr_array_reverse``:" +msgid "Use ``pgr_dijkstraVia`` when there are no restrictions" msgstr "" -msgid "Was created temporally for this migration" +msgid "Use :doc:`pgr_dijkstraVia` instead." msgstr "" -msgid "Is not documented." +msgid "``id1`` is the path identifier" msgstr "" -msgid "Will be removed on the next mayor version 4.0.0" +msgid "``id2`` is the node" msgstr "" -msgid "The migrated table contents:" +msgid "``id3`` is the edge" msgstr "" -msgid "Migration of ``pgr_trsp`` (Vertices)" +msgid "Use ``pgr_trspVia`` when there are restrictions" msgstr "" -msgid "" -":doc:`pgr_trsp` signatures have changed and many issues have been fixed " -"in the new signatures. This section will show how to migrate from the old" -" signatures to the new replacement functions. This also affects the " -"restrictions." +msgid "Use :doc:`pgr_trspVia` instead." msgstr "" -msgid "The integral type of the ``Edges SQL`` can only be ``INTEGER``." +msgid "Migration of ``pgr_trspViaEdges``" msgstr "" -msgid "The floating point type of the ``Edges SQL`` can only be ``FLOAT``." +msgid ":doc:`pgr_withPointsVia`" msgstr "" -msgid "``directed`` flag is compulsory." +msgid ":doc:`pgr_trspVia_withPoints`" msgstr "" -msgid "Does not autodetect if ``reverse_cost`` column exist." +msgid "Use ``pgr_withPointsVia`` when there are no restrictions" msgstr "" -msgid "" -"User must be careful to match the existence of the column with the value " -"of ``has_rcost`` parameter." +msgid "Use :doc:`pgr_withPointsVia` instead." msgstr "" -msgid "The restrictions inner query is optional." +msgid "Use ``pgr_trspVia_withPoints`` when there are restrictions" msgstr "" -msgid "The output column names are meaningless" +msgid "Use :doc:`pgr_trspVia_withPoints` instead." msgstr "" -msgid "Migrate by using:" +msgid "Migration of restrictions" msgstr "" -msgid ":doc:`pgr_dijkstra` when there are no restrictions," +msgid "The structure of the restrictions have changed:" msgstr "" -msgid ":doc:`pgr_trsp` (One to One) when there are restrictions." +msgid "Old restrictions structure" msgstr "" -msgid "Migrating ``pgr_trsp`` (Vertices) using ``pgr_dijkstra``" +msgid "On the deprecated signatures:" msgstr "" -msgid "The following query does not have restrictions." +msgid "Column ``rid`` is ignored" msgstr "" -msgid "A message about deprecation is shown" +msgid "``via_path``" msgstr "" -msgid "Deprecated functions will be removed on the next mayor version 4.0.0" +msgid "Must be in reverse order." msgstr "" -msgid "Use :doc:`pgr_dijkstra` instead." +msgid "Is of type ``TEXT``." msgstr "" -msgid "The types casting has been removed." +msgid "When more than one via edge must be separated with ``,``." msgstr "" -msgid ":doc:`pgr_dijkstra`:" +msgid "``target_id``" msgstr "" -msgid "Autodetects if ``reverse_cost`` column is in the edges SQL." +msgid "Is the last edge of the forbidden path." msgstr "" -msgid "Accepts ``ANY-INTEGER`` on integral types" +msgid "Is of type ``INTEGER``." msgstr "" -msgid "Accepts ``ANY-NUMERICAL`` on floating point types" +msgid "``to_cost``" msgstr "" -msgid "``directed`` flag has a default value of ``true``." +msgid "Is of type ``FLOAT``." msgstr "" -msgid "Use the same value that on the original query." +msgid "Creation of the old restrictions table" msgstr "" -msgid "In this example it is ``true`` which is the default value." +msgid "Old restrictions fill up" msgstr "" -msgid "The flag has been omitted and the default is been used." +msgid "Old restrictions contents" msgstr "" msgid "" -"When the need of using strictly the same (meaningless) names and types of" -" the function been migrated then:" -msgstr "" - -msgid "``id1`` is the node" -msgstr "" - -msgid "``id2`` is the edge" -msgstr "" - -msgid "Migrating ``pgr_trsp`` (Vertices) using ``pgr_trsp``" -msgstr "" - -msgid "The following query has restrictions." +"The restriction with ``rid = 2`` is representing :math:`3 \\rightarrow 5 " +"\\rightarrow9`" msgstr "" -msgid "The restrictions are the last parameter of the function" +msgid ":math:`3\\rightarrow5`" msgstr "" -msgid "Using the old structure of restrictions" +msgid "is on column ``via_path`` in reverse order" msgstr "" -msgid "Use :doc:`pgr_trsp` (One to One) instead." +msgid "is of type ``TEXT``" msgstr "" -msgid "The new structure of restrictions is been used." +msgid ":math:`9`" msgstr "" -msgid "It is the second parameter." +msgid "is on column ``target_id``" msgstr "" -msgid ":doc:`pgr_trsp`:" +msgid "is of type ``INTEGER``" msgstr "" -msgid "Migration of pgr_trsp(Edges)" +msgid "New restrictions structure" msgstr "" -msgid "The integral types of the ``sql`` can only be ``INTEGER``." +msgid "Column ``id`` is ignored" msgstr "" -msgid "The floating point type of the ``sql`` can only be ``FLOAT``." +msgid "Column ``path``" msgstr "" -msgid "For these migration guide the following points will be used:" +msgid "Is of type ``ARRAY[ANY-INTEGER]``." msgstr "" -msgid ":doc:`pgr_withPoints` when there are no restrictions," +msgid "Contains all the edges involved on the restriction." msgstr "" -msgid ":doc:`pgr_trsp_withPoints` (One to One) when there are restrictions." +msgid "The array has the ordered edges of the restriction." msgstr "" -msgid "Migrating ``pgr_trsp`` (Edges) using ``pgr_withPoints``" +msgid "Column ``cost``" msgstr "" -msgid "Use :doc:`pgr_withPoints` instead." +msgid "Is of type ``ANY-NUMERICAL``" msgstr "" -msgid "Do not show details, as the deprecated function does not show details." +msgid "The creation of the restrictions table" msgstr "" -msgid ":doc:`pgr_withPoints`:" +msgid "Adding the restrictions" msgstr "" -msgid "On the points query do not include the ``side`` column." +msgid "Restrictions data" msgstr "" msgid "" -"When the need of using strictly the same (meaningless) names and types, " -"and node values of the function been migrated then:" -msgstr "" - -msgid "Migrating ``pgr_trsp`` (Edges) using ``pgr_trsp_withPoints``" -msgstr "" - -msgid "Use :doc:`pgr_trsp_withPoints` instead." -msgstr "" - -msgid ":doc:`pgr_trsp_withPoints`:" -msgstr "" - -msgid "Migration of ``pgr_trspViaVertices``" -msgstr "" - -msgid "The integral types of the ``Edges SQL`` can only be ``INTEGER``." -msgstr "" - -msgid ":doc:`pgr_dijkstraVia` when there are no restrictions," -msgstr "" - -msgid ":doc:`pgr_trspVia` when there are restrictions." -msgstr "" - -msgid "Migrating ``pgr_trspViaVertices`` using ``pgr_dijkstraVia``" -msgstr "" - -msgid "Use :doc:`pgr_dijkstraVia` instead." -msgstr "" - -msgid ":doc:`pgr_dijkstraVia`:" -msgstr "" - -msgid "``id1`` is the path identifier" -msgstr "" - -msgid "``id2`` is the node" -msgstr "" - -msgid "``id3`` is the edge" +"The restriction with ``rid = 2`` represents the path :math:`3 " +"\\rightarrow5 \\rightarrow9`." msgstr "" -msgid "Migrating ``pgr_trspViaVertices`` using ``pgr_trspVia``" +msgid "By inspection the path is clear." msgstr "" -msgid "Use :doc:`pgr_trspVia` instead." +msgid "To transform the old restrictions table to the new restrictions structure," msgstr "" -msgid ":doc:`pgr_trspVia`:" +msgid "Create a new table with the new restrictions structure." msgstr "" -msgid "Migration of ``pgr_trspViaEdges``" +msgid "In this migration guide ``new_restrictions`` is been used." msgstr "" msgid "" -"And will travel thru the following Via points " -":math:`4\\rightarrow3\\rightarrow6`" -msgstr "" - -msgid ":doc:`pgr_withPointsVia` when there are no restrictions," -msgstr "" - -msgid ":doc:`pgr_trspVia_withPoints` when there are restrictions." -msgstr "" - -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia``" +"For this migration pgRouting supplies an auxiliary function for reversal " +"of an array ``_pgr_array_reverse`` needed for the migration." msgstr "" -msgid "Use :doc:`pgr_withPointsVia` instead." +msgid "``_pgr_array_reverse``:" msgstr "" -msgid ":doc:`pgr_withPointsVia`:" +msgid "Was created temporally for this migration" msgstr "" -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints``" +msgid "Is not documented." msgstr "" -msgid "Use :doc:`pgr_trspVia_withPoints` instead." +msgid "Will be removed on the next mayor version 4.0.0" msgstr "" -msgid ":doc:`pgr_trspVia_withPoints`:" +msgid "The migrated table contents:" msgstr "" msgid ":doc:`withPoints-category`" @@ -5635,27 +5342,32 @@ msgstr "" msgid ":math:`V` is a set of vertices, also called nodes." msgstr "" +#, python-brace-format msgid ":math:`E \\subseteq \\{( u, v ) \\mid u , v \\in V \\}`" msgstr "" msgid "There are different kinds of graphs:" msgstr "" +#, python-brace-format msgid ":math:`E \\subseteq \\{( u, v ) \\mid u , v \\in V\\}`" msgstr "" msgid "Undirected simple graph" msgstr "" +#, python-brace-format msgid ":math:`E \\subseteq \\{( u, v ) \\mid u , v \\in V, u \\neq v\\}`" msgstr "" +#, python-brace-format msgid ":math:`E \\subseteq \\{( u, v ) \\mid (u , v) \\in (V X V) \\}`" msgstr "" msgid "Directed simple graph" msgstr "" +#, python-brace-format msgid ":math:`E \\subseteq \\{( u, v ) \\mid (u , v) \\in (V X V), u \\neq v\\}`" msgstr "" @@ -5736,6 +5448,7 @@ msgstr "" msgid "All vertices in ``source`` and ``target`` are part of the graph." msgstr "" +#, python-brace-format msgid "" "In a directed graph the edge :math:`(source_{id}, target_{id}, " "cost_{id})` has directionality: :math:`source_{id} \\rightarrow " @@ -5751,17 +5464,20 @@ msgstr "" msgid "The data is representing the following graph:" msgstr "" +#, python-brace-format msgid "" "In an undirected graph the edge :math:`(source_{id}, target_{id}, " "cost_{id})` does not have directionality: :math:`source_{id} " "\\frac{\\;\\;\\;\\;\\;}{} target_{id}`" msgstr "" +#, python-brace-format msgid "" "In terms of a directed graph is like having two edges: :math:`source_{id}" " \\leftrightarrow target_{id}`" msgstr "" +#, python-brace-format msgid "" "Edge :math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`) is not part of the" " graph." @@ -5802,11 +5518,13 @@ msgstr "" msgid "In a directed graph both edges have directionality" msgstr "" +#, python-brace-format msgid "" "edge :math:`(source_{id}, target_{id}, cost_{id})` has directionality: " ":math:`source_{id} \\rightarrow target_{id}`" msgstr "" +#, python-brace-format msgid "" "edge :math:`(target_{id}, source_{id}, reverse\\_cost_{id})` has " "directionality: :math:`target_{id} \\rightarrow source_{id}`" @@ -5824,11 +5542,13 @@ msgstr "" msgid "In a directed graph both edges do not have directionality" msgstr "" +#, python-brace-format msgid "" "Edge :math:`(source_{id}, target_{id}, cost_{id})` is :math:`source_{id} " "\\frac{\\;\\;\\;\\;\\;}{} target_{id}`" msgstr "" +#, python-brace-format msgid "" "Edge :math:`(target_{id}, source_{id}, reverse\\_cost_{id})` is " ":math:`target_{id} \\frac{\\;\\;\\;\\;\\;}{} source_{id}`" @@ -5843,9 +5563,11 @@ msgstr "" msgid ":math:`target_i \\leftrightarrow source_i`" msgstr "" +#, python-brace-format msgid ":math:`2` (:math:`1 \\frac{\\;\\;\\;\\;\\;}{} 3`)" msgstr "" +#, python-brace-format msgid ":math:`3` (:math:`3 \\frac{\\;\\;\\;\\;\\;}{} 2`)" msgstr "" @@ -5881,12 +5603,14 @@ msgstr "" msgid "No geometries associated to the vertices or edges" msgstr "" +#, python-brace-format msgid "Has 6 vertices :math:`\\{1,2,3,4,5,6\\}`" msgstr "" msgid "Has 9 edges:" msgstr "" +#, python-brace-format msgid "" ":math:`\\begin{split} \\begin{align} E = & \\{(1,2,7), (1,3,9), (1,6,14)," " \\\\ & (2,3,10), (2,4,13), \\\\ & (3,4,11), (3,6,2), \\\\ & (4,5,6), " @@ -6339,6 +6063,7 @@ msgstr "" msgid "To get the graph connectivity:" msgstr "" +#, python-brace-format msgid "" "In this example, the component :math:`2` consists of vertices " ":math:`\\{2, 4\\}` and both vertices are also part of the dead end result" @@ -6746,9 +6471,6 @@ msgstr "" msgid "Parameters for the Via functions" msgstr "" -msgid ":doc:`pgr_dijkstraVia`" -msgstr "" - msgid "SQL query as described." msgstr "" @@ -6788,9 +6510,6 @@ msgstr "" msgid "For the TRSP functions" msgstr "" -msgid ":doc:`pgr_trsp`" -msgstr "" - msgid "Array of identifiers of destination vertices." msgstr "" @@ -6842,9 +6561,6 @@ msgstr "" msgid "Used in functions the following:" msgstr "" -msgid ":doc:`pgr_withPoints`" -msgstr "" - msgid "" "Returns set of ``(seq, path_seq [, start_pid] [, end_pid], node, edge, " "cost, agg_cost)``" @@ -7642,6 +7358,9 @@ msgstr "" msgid "|Boost| Boost Graph Inside" msgstr "" +msgid "Boost Graph inside" +msgstr "" + msgid "Signatures" msgstr "" @@ -7678,16 +7397,19 @@ msgstr "" msgid "Get 2 paths from :math:`6` to :math:`17` on a directed graph." msgstr "" +#, python-brace-format msgid "" "Get 2 paths from vertex :math:`6` to vertices :math:`\\{10, 17\\}` on a " "directed graph." msgstr "" +#, python-brace-format msgid "" "Get 2 paths from vertices :math:`\\{6, 1\\}` to vertex :math:`17` on a " "directed graph." msgstr "" +#, python-brace-format msgid "" "Get 2 paths vertices :math:`\\{6, 1\\}` to vertices :math:`\\{10, 17\\}` " "on a directed graph." @@ -7752,6 +7474,7 @@ msgstr "" msgid "Get 2 paths using combinations table on an undirected graph" msgstr "" +#, python-brace-format msgid "" "Get 2 paths from vertices :math:`\\{6, 1\\}` to vertex :math:`17` on a " "undirected graph." @@ -7763,7 +7486,7 @@ msgstr "" msgid "``pgr_TSP``" msgstr "" -msgid "pgr_TSP`` - Aproximation using *metric* algorithm." +msgid "``pgr_TSP`` - Approximation using *metric* algorithm." msgstr "" msgid "Availability:" @@ -7884,6 +7607,7 @@ msgstr "" msgid "Using :doc:`pgr_dijkstraCostMatrix` to generate the matrix information" msgstr "" +#, python-brace-format msgid "" "**Line 4** Vertices :math:`\\{2, 4, 13, 14\\}` are not included because " "they are not connected." @@ -7966,6 +7690,7 @@ msgstr "" msgid "Connected incomplete data" msgstr "" +#, python-brace-format msgid "" "Using selected edges :math:`\\{2, 4, 5, 8, 9, 15\\}` the matrix is not " "complete." @@ -7979,7 +7704,12 @@ msgstr "" msgid "``pgr_TSPeuclidean``" msgstr "" -msgid "pgr_TSPeuclidean`` - Aproximation using *metric* algorithm." +msgid "``pgr_TSPeuclidean`` - Approximation using *metric* algorithm." +msgstr "" + +msgid "" +"Using `Boost: metric TSP approx " +"`__" msgstr "" msgid "" @@ -8111,10 +7841,16 @@ msgstr "" msgid "Version 2.4.0" msgstr "" +msgid "pgr_aStar(One to Many)" +msgstr "" + +msgid "pgr_aStar(Many to One)" +msgstr "" + msgid "pgr_aStar(Many to Many)" msgstr "" -msgid "Signature change on pgr_astar(One to One)" +msgid "Signature change on pgr_aStar(One to One)" msgstr "" msgid "" @@ -8151,16 +7887,19 @@ msgid "" "heuristic :math:`2`" msgstr "" +#, python-brace-format msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 12\\}` on a **directed** " "graph with heuristic :math:`3` and factor :math:`3.5`" msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{6, 8\\}` to vertex :math:`10` on an " "**undirected** graph with heuristic :math:`4`" msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{6, 8\\}` to vertices :math:`\\{10, 12\\}` on a " "**directed** graph with factor :math:`0.5`" @@ -8189,9 +7928,6 @@ msgstr "" msgid "Manually assigned vertex combinations." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/astar_search.html" -msgstr "" - msgid "``pgr_aStarCost``" msgstr "" @@ -8287,6 +8023,7 @@ msgstr "" msgid "pgr_aStarCostMatrix(`Edges SQL`_, **start vids**, [**options**])" msgstr "" +#, python-brace-format msgid "" "Symmetric cost matrix for vertices :math:`\\{5, 6, 10, 15\\}` on an " "**undirected** graph using heuristic :math:`2`" @@ -8322,6 +8059,9 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" +msgid "Support" +msgstr "" + msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -8876,6 +8616,12 @@ msgstr "" msgid "pgr_bdAstar(Combinations)" msgstr "" +msgid "pgr_bdAstar(One to Many)" +msgstr "" + +msgid "pgr_bdAstar(Many to One)" +msgstr "" + msgid "pgr_bdAstar(Many to Many)" msgstr "" @@ -8902,9 +8648,6 @@ msgstr "" msgid "pgr_bdAstar(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgstr "" -msgid "**options:** [directed, heuristic, factor, epsilon]``" -msgstr "" - msgid "``pgr_bdAstarCost``" msgstr "" @@ -8961,9 +8704,6 @@ msgstr "" msgid "pgr_bdDijkstra(Combinations)" msgstr "" -msgid "New Proposed signatures:" -msgstr "" - msgid "pgr_bdDijkstra(One to Many)" msgstr "" @@ -9003,6 +8743,7 @@ msgstr "" msgid "Returns set of |result-1-m|" msgstr "" +#, python-brace-format msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 17\\}` on a **directed** " "graph" @@ -9011,11 +8752,13 @@ msgstr "" msgid "Returns set of |result-m-1|" msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{6, 1\\}` to vertex :math:`17` on a **directed** " "graph" msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{6, 1\\}` to vertices :math:`\\{10, 17\\}` on an " "**undirected** graph" @@ -9085,6 +8828,7 @@ msgstr "" msgid "pgr_bdDijkstraCostMatrix(`Edges SQL`_, **start vids**, [``directed``])" msgstr "" +#, python-brace-format msgid "" "Symmetric cost matrix for vertices :math:`\\{5, 6, 10, 15\\}` on an " "**undirected** graph" @@ -9166,6 +8910,7 @@ msgstr "" msgid "pgr_bellmanFord(`Edges SQL`_, `Combinations SQL`_, [``directed``])" msgstr "" +#, python-brace-format msgid "" "From vertex :math:`6` to vertices :math:`\\{ 10, 17\\}` on a **directed**" " graph" @@ -9175,7 +8920,7 @@ msgid "Using a combinations table on an **undirected** graph." msgstr "" msgid "" -"`Boost: Belman Ford " +"`Boost: Bellman Ford " "`__" msgstr "" @@ -9190,16 +8935,13 @@ msgid "``pgr_betweennessCentrality`` - Experimental" msgstr "" msgid "" -"``pgr_betweennessCentrality`` - Calculates the relative betweeness " +"``pgr_betweennessCentrality`` - Calculates the relative betweenness " "centrality using Brandes Algorithm" msgstr "" msgid "Version 3.7.0" msgstr "" -msgid "pgr_betweennessCentrality``" -msgstr "" - msgid "" "The Brandes Algorithm takes advantage of the sparse graphs for evaluating" " the betweenness centrality score of all vertices." @@ -9236,6 +8978,7 @@ msgstr "" msgid "Returns set of ``(vid, centrality)``" msgstr "" +#, python-brace-format msgid "For a directed graph with edges :math:`\\{1, 2, 3, 4\\}`." msgstr "" @@ -9272,7 +9015,7 @@ msgstr "" msgid "" "`Boost: betweenness centrality " -"`_" +"`_" msgstr "" msgid "``pgr_biconnectedComponents``" @@ -9286,10 +9029,10 @@ msgstr "" msgid "Result columns change:" msgstr "" -msgid "n_seq`` is removed" +msgid "``n_seq`` is removed" msgstr "" -msgid "seq`` changed type to ``BIGINT``" +msgid "``seq`` changed type to ``BIGINT``" msgstr "" msgid "" @@ -9339,6 +9082,7 @@ msgid "" "graph." msgstr "" +#, python-brace-format msgid "" "Any graph whose edge-weights belongs to the set {0,X}, where 'X' is any " "non-negative integer, is termed as a 'binary graph'." @@ -9358,6 +9102,7 @@ msgid "" ":math:`O(|E|log|V|)` time." msgstr "" +#, python-brace-format msgid "" "However if the weights are more constrained, we can use a faster " "algorithm. This algorithm, termed as 'Binary Breadth First Search' as " @@ -9367,6 +9112,7 @@ msgid "" "where 'X' is any non-negative real integer." msgstr "" +#, python-brace-format msgid "" "Process is done only on 'binary graphs'. ('Binary Graph': Any graph whose" " edge-weights belongs to the set {0,X}, where 'X' is any non-negative " @@ -9463,6 +9209,7 @@ msgstr "" msgid "The odd length cyclic graph can not be bipartite." msgstr "" +#, python-brace-format msgid "" "The edge :math:`5 \\rightarrow 1` will make subgraph with vertices " ":math:`\\{1, 3, 7, 6, 5\\}` an odd length cyclic graph, as the cycle has " @@ -9497,7 +9244,10 @@ msgstr "" msgid "Renamed from ``pgr_maxFlowBoykovKolmogorov``" msgstr "" -msgid "Running time: Polynomial" +msgid "Function promoted to proposed." +msgstr "" + +msgid "Running time: Polynomial" msgstr "" msgid "pgr_boykovKolmogorov(`Edges SQL`_, **start vid**, **end vid**)" @@ -9521,15 +9271,19 @@ msgstr "" msgid "From vertex :math:`11` to vertex :math:`12`" msgstr "" +#, python-brace-format msgid "From vertex :math:`11` to vertices :math:`\\{5, 10, 12\\}`" msgstr "" +#, python-brace-format msgid "From vertices :math:`\\{11, 3, 17\\}` to vertex :math:`12`" msgstr "" +#, python-brace-format msgid "From vertices :math:`\\{11, 3, 17\\}` to vertices :math:`\\{5, 10, 12\\}`" msgstr "" +#, python-brace-format msgid "" "Using a combinations table, equivalent to calculating result from " "vertices :math:`\\{5, 6\\}` to vertices :math:`\\{10, 15, 14\\}`." @@ -9570,7 +9324,7 @@ msgstr "" msgid "pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**])" msgstr "" -msgid "**options:** [max_depth, directed]``" +msgid "**options:** ``[max_depth, directed]``" msgstr "" msgid "Returns set of |result-bfs|" @@ -9581,6 +9335,7 @@ msgid "" "ascending order of ``id``" msgstr "" +#, python-brace-format msgid "" "From root vertices :math:`\\{12, 6\\}` on an **undirected** graph with " "**depth** :math:`<= 2` and edges in ascending order of ``id``" @@ -9652,7 +9407,7 @@ msgid "https://en.wikipedia.org/wiki/Bridge_%28graph_theory%29" msgstr "" msgid "" -"`Boost: connected components " +"`Boost: Connected components " "`__" msgstr "" @@ -9749,11 +9504,6 @@ msgstr "" msgid "Connecting disconnected components" msgstr "" -msgid "" -"`Boost: Connected components " -"`__" -msgstr "" - msgid "" "wikipedia: `Connected component " "`__" @@ -9770,6 +9520,9 @@ msgstr "" msgid "Name change from ``pgr_contractGraph``" msgstr "" +msgid "Bug fixes" +msgstr "" + msgid "" "Contraction reduces the size of the graph by removing some of the " "vertices and edges and, for example, might add edges that represent a " @@ -10411,12 +10164,15 @@ msgstr "" msgid "From vertex :math:`5` to vertex :math:`11` on a **directed** graph" msgstr "" +#, python-brace-format msgid "From vertex :math:`5` to vertices :math:`\\{7, 11\\}`" msgstr "" +#, python-brace-format msgid "From vertices :math:`\\{5, 10\\}` to vertex :math:`11`" msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{5, 15\\}` to vertices :math:`\\{11, 17\\}` on an " "**undirected** graph" @@ -10646,6 +10402,12 @@ msgstr "" msgid "Version 2.2.0" msgstr "" +msgid "pgr_dijkstra(One to Many)" +msgstr "" + +msgid "pgr_dijkstra(Many to One)" +msgstr "" + msgid "pgr_dijkstra(Many to Many)" msgstr "" @@ -10672,6 +10434,7 @@ msgid "" "columns to the new result columns." msgstr "" +#, python-brace-format msgid "From vertex :math:`6` to vertices :math:`\\{10, 17\\}` on a **directed**" msgstr "" @@ -10699,24 +10462,28 @@ msgstr "" msgid "5) Using `One to Many`_ to get the solution of examples 1 and 2" msgstr "" +#, python-brace-format msgid "Paths :math:`\\{6\\}\\rightarrow\\{10, 7\\}`" msgstr "" msgid "6) Using `Many to One`_ to get the solution of examples 2 and 4" msgstr "" +#, python-brace-format msgid "Paths :math:`\\{6, 12\\}\\rightarrow\\{7\\}`" msgstr "" msgid "7) Using `Many to Many`_ to get the solution of examples 1 to 4" msgstr "" +#, python-brace-format msgid "Paths :math:`\\{6, 12\\}\\rightarrow\\{10, 7\\}`" msgstr "" msgid "8) Using `Combinations`_ to get the solution of examples 1 to 3" msgstr "" +#, python-brace-format msgid "" "Paths :math:`\\{6\\}\\rightarrow\\{10, " "7\\}\\cup\\{12\\}\\rightarrow\\{10\\}`" @@ -10815,6 +10582,7 @@ msgstr "" msgid "Equvalences between signatures" msgstr "" +#, python-brace-format msgid "" "The following examples find the path for " ":math:`\\{6\\}\\rightarrow\\{10\\}`" @@ -10993,6 +10761,7 @@ msgstr "" msgid "Using a **directed** graph for car routing." msgstr "" +#, python-brace-format msgid "The subway stations are on the following vertices :math:`\\{1, 10, 11\\}`" msgstr "" @@ -11041,9 +10810,11 @@ msgstr "" msgid "Unsing an **undirected** graph for pedestrian routing" msgstr "" +#, python-brace-format msgid "The first subway line stations are at :math:`\\{15, 16\\}`" msgstr "" +#, python-brace-format msgid "The second subway line stations stops are at :math:`\\{1, 10, 11\\}`" msgstr "" @@ -11070,9 +10841,11 @@ msgstr "" msgid "Find the best car connection between all the stations of two subway lines" msgstr "" +#, python-brace-format msgid "The first subway line stations stops are at :math:`\\{1, 10, 11\\}`" msgstr "" +#, python-brace-format msgid "The second subway line stations are at :math:`\\{15, 16\\}`" msgstr "" @@ -11095,11 +10868,13 @@ msgstr "" msgid "From the results:" msgstr "" +#, python-brace-format msgid "" "making a connection from the first subway line :math:`\\{1, 10, 11\\}` to" " the second :math:`\\{15, 16\\}`:" msgstr "" +#, python-brace-format msgid "" "The best connections from all the stations from the first line are: " ":math:`{(1 \\rightarrow 16) (10 \\rightarrow 16) (11 \\rightarrow 16)}`" @@ -11110,11 +10885,13 @@ msgid "" "(lines: `11` and `12`)" msgstr "" +#, python-brace-format msgid "" "making a connection from the second subway line :math:`\\{15, 16\\}` to " "the first :math:`\\{1, 10, 11\\}`:" msgstr "" +#, python-brace-format msgid "" "The best connections from all the stations from the second line are: " ":math:`{(15 \\rightarrow 10) (16 \\rightarrow 11)}`" @@ -11218,6 +10995,7 @@ msgstr "" msgid "``pgr_dijkstraVia`` — Route that goes through a list of vertices." msgstr "" +#, python-brace-format msgid "" "Given a list of vertices and a graph, this function is equivalent to " "finding the shortest path between :math:`vertex_i` and " @@ -11248,6 +11026,7 @@ msgstr "" msgid "Returns set of |via-result|" msgstr "" +#, python-brace-format msgid "" "Find the route that visits the vertices :math:`\\{5, 1, 8\\}` in that " "order on an directed graph." @@ -11276,6 +11055,7 @@ msgid "" "current ``seq``." msgstr "" +#, python-brace-format msgid "" "All this examples are about the route that visits the vertices " ":math:`\\{5, 7, 1, 8, 15\\}` in that order on a **directed** graph." @@ -11311,6 +11091,9 @@ msgstr "" msgid "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "" +msgid "Standarizing output columns to |result-spantree|" +msgstr "" + msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "" @@ -11360,6 +11143,7 @@ msgstr "" msgid "Multiple Vertices" msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{11, 16\\}` for a distance of :math:`3.0` with " "equi-cost on a directed graph" @@ -11381,6 +11165,7 @@ msgid "" "signature." msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{11, 16\\}` for a distance of :math:`3.0` on an " "undirected graph" @@ -11539,6 +11324,7 @@ msgstr "" msgid "Returns set of |result-disjoint-m-m|" msgstr "" +#, python-brace-format msgid "" "Using a combinations table, equivalent to calculating result from " "vertices :math:`\\{5, 6\\}` to vertices :math:`\\{10, 15, 14\\}` on an " @@ -11780,7 +11566,7 @@ msgid "" "adjustments needed by the application." msgstr "" -msgid "EMTPY SET`` is returned on dryrun executions" +msgid "``EMTPY SET`` is returned on dryrun executions" msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**])" @@ -11789,7 +11575,7 @@ msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**])" msgstr "" -msgid "**options:** [cap, partial, dryrun]``" +msgid "**options:** ``[cap, partial, dryrun]``" msgstr "" msgid "Returns set of |result-find|" @@ -11798,6 +11584,9 @@ msgstr "" msgid "One point" msgstr "" +msgid "**options:** [cap, partial, dryrun]``" +msgstr "" + msgid "Default: ``cap => 1``" msgstr "" @@ -11828,9 +11617,6 @@ msgstr "" msgid "Many points" msgstr "" -msgid "**options:** ``[cap, partial, dryrun]``" -msgstr "" - msgid "" "Find at most :math:`2` edges close to all vertices on the points of " "interest table." @@ -11992,6 +11778,7 @@ msgstr "" msgid "``edge_id`` identifier of the edge close to the **original point**" msgstr "" +#, python-brace-format msgid "" "Two edges are withing :math:`0.5` distance units from the **original " "point**: :math:`{5, 8}`" @@ -12045,6 +11832,7 @@ msgstr "" msgid "``edge_id`` identifier of the edge **closest** to the **original point**" msgstr "" +#, python-brace-format msgid "" "From all edges within :math:`0.5` distance units from the **original " "point**: :math:`{5}` is the closest one." @@ -12235,6 +12023,7 @@ msgstr "" msgid "pgr_floydWarshall(`Edges SQL`_, [``directed``])" msgstr "" +#, python-brace-format msgid "For a directed subgraph with edges :math:`\\{1, 2, 3, 4\\}`." msgstr "" @@ -12315,11 +12104,11 @@ msgstr "" msgid "Git hash of pgRouting build" msgstr "" -msgid "``pgr_hawickCircuits - Experimental``" +msgid "``pgr_hawickCircuits`` - Experimental" msgstr "" msgid "" -"``pgr_hawickCircuits`` — Returns the list of cirucits using hawick " +"``pgr_hawickCircuits`` — Returns the list of ciruits using hawick " "circuits algorithm." msgstr "" @@ -12393,6 +12182,7 @@ msgid "" "graph." msgstr "" +#, python-brace-format msgid "" "A graph is planar if it can be drawn in two-dimensional space with no two" " of its edges crossing. Such a drawing of a planar graph is called a " @@ -12435,6 +12225,7 @@ msgstr "" msgid "`false` when the graph is not planar." msgstr "" +#, python-brace-format msgid "" "The following edges will make the subgraph with vertices {10, 15, 11, 16," " 13} a :math:`K_1` graph." @@ -12503,6 +12294,9 @@ msgid "" "breadth First Search ordering." msgstr "" +msgid "Added ``pred`` result columns." +msgstr "" + msgid "" "Visits and extracts the nodes information in Breath First Search ordering" " of the Minimum Spanning Tree created using Kruskal's algorithm." @@ -12523,6 +12317,7 @@ msgstr "" msgid "The Minimum Spanning Tree having as root vertex :math:`6`" msgstr "" +#, python-brace-format msgid "" "The Minimum Spanning Tree starting on vertices :math:`\\{9, 6\\}` with " ":math:`depth \\leq 3`" @@ -12554,6 +12349,7 @@ msgid "" ":math:`distance \\leq 3.5`" msgstr "" +#, python-brace-format msgid "" "The Minimum Spanning Tree starting on vertices :math:`\\{9, 6\\}` with " ":math:`distance \\leq 3.5`" @@ -12578,7 +12374,7 @@ msgstr "" msgid "pgr_kruskalDFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "``pgr_lengauerTarjanDominatorTree`` -Experimental" +msgid "``pgr_lengauerTarjanDominatorTree`` - Experimental" msgstr "" msgid "" @@ -12652,6 +12448,9 @@ msgid "" "edge-based graph." msgstr "" +msgid "Works for directed and undirected graphs." +msgstr "" + msgid "Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" msgstr "" @@ -12688,6 +12487,7 @@ msgstr "" msgid "Returns set of |result-lineg|" msgstr "" +#, python-brace-format msgid "For an undirected graph with edges :math:'{2,4,5,8}'" msgstr "" @@ -12725,6 +12525,7 @@ msgstr "" msgid "Given the following directed graph" msgstr "" +#, python-brace-format msgid "" ":math:`G(V,E) = G(\\{1,2,3,4\\},\\{ 1 \\rightarrow 2, 1 \\rightarrow 4, 2" " \\rightarrow 3, 3 \\rightarrow 1, 3 \\rightarrow 2, 3 \\rightarrow 4, 4 " @@ -12771,11 +12572,13 @@ msgid "" "column is used." msgstr "" +#, python-brace-format msgid "" "Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with " "one edge row with :math:`id=203`." msgstr "" +#, python-brace-format msgid "" "Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with " "one edge row with :math:`id=304`." @@ -12823,11 +12626,13 @@ msgid "" "column is not used." msgstr "" +#, python-brace-format msgid "" "Edges :math:`{2 \\rightarrow 3, 3 \\rightarrow 2}` are represented with " "two edges :math:`id=203` and :math:`id=302` respectively." msgstr "" +#, python-brace-format msgid "" "Edges :math:`{3 \\rightarrow 4, 4 \\rightarrow 3}` are represented with " "two edges :math:`id=304` and :math:`id=403` respectively." @@ -12911,12 +12716,12 @@ msgstr "" msgid "Returns set of |result-linegf|" msgstr "" +#, python-brace-format msgid "Full line graph of subgraph of edges :math:`\\{4, 7, 8, 10\\}`" msgstr "" msgid "" -"The examples of this section are based on the :doc:`sampledata` The " -"examples include the subgraph including edges 4, 7, 8, and 10 with " +"The examples include the subgraph including edges 4, 7, 8, and 10 with " "``reverse_cost``." msgstr "" @@ -13150,13 +12955,16 @@ msgid "" "in a graph." msgstr "" +msgid "pgr_maxCardinalityMatch(text) returns only ``edge`` column." +msgstr "" + msgid "Deprecated signature" msgstr "" -msgid "pgr_maxCardinalityMatch(text,boolean)``" +msgid "pgr_maxCardinalityMatch(text,boolean)" msgstr "" -msgid "directed => false`` when used." +msgid "directed => ``false`` when used." msgstr "" msgid "Renamed from ``pgr_maximumCardinalityMatching``" @@ -14089,12 +13897,6 @@ msgid "" "graph using Tarjan's algorithm based on DFS." msgstr "" -msgid "``n_seq`` is removed" -msgstr "" - -msgid "``seq`` changed type to ``BIGINT``" -msgstr "" - msgid "" "A strongly connected component of a directed graph is a set of vertices " "that are all reachable from each other." @@ -14270,25 +14072,25 @@ msgstr "" msgid "Deprecated signatures" msgstr "" -msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)" msgstr "" -msgid "pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)" msgstr "" -msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" +msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)" msgstr "" -msgid "pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" +msgid "pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)" msgstr "" msgid "New prototypes" msgstr "" -msgid "pgr_trspViaVertices``" +msgid "pgr_trspViaVertices" msgstr "" -msgid "pgr_trspViaEdges``" +msgid "pgr_trspViaEdges" msgstr "" msgid "" @@ -14342,14 +14144,17 @@ msgstr "" msgid "From vertex :math:`6` to vertex :math:`10` on an undirected graph." msgstr "" +#, python-brace-format msgid "" "From vertex :math:`6` to vertices :math:`\\{10, 1\\}` on an undirected " "graph." msgstr "" +#, python-brace-format msgid "From vertices :math:`\\{6, 1\\}` to vertex :math:`8` on a directed graph." msgstr "" +#, python-brace-format msgid "" "From vertices :math:`\\{6, 1\\}` to vertices :math:`\\{10, 8\\}` on an " "undirected graph." @@ -14371,9 +14176,7 @@ msgid "" "restrictions." msgstr "" -msgid "pgr_trspVia(One Via)" -msgstr "" - +#, python-brace-format msgid "" "Given a list of vertices and a graph, this function is equivalent to " "finding the shortest path between :math:`vertex_i` and " @@ -14403,6 +14206,7 @@ msgid "" "[**options**])" msgstr "" +#, python-brace-format msgid "" "All this examples are about the route that visits the vertices " ":math:`\\{5, 7, 1, 8, 15\\}` in that order on a directed graph." @@ -14462,6 +14266,7 @@ msgid "" "and/or points with restrictions." msgstr "" +#, python-brace-format msgid "" "Given a graph, a set of restriction on the graph edges, a set of points " "on the graphs edges and a list of vertices, this function is equivalent " @@ -14500,6 +14305,7 @@ msgid "" "**via vertices**, [**options**])" msgstr "" +#, python-brace-format msgid "" "Find the route that visits the vertices :math:`\\{-6, 15, -5\\}` in that " "order on an directed graph." @@ -14575,6 +14381,7 @@ msgstr "" msgid "Usage variations" msgstr "" +#, python-brace-format msgid "" "All this examples are about the route that visits the vertices " ":math:`\\{-6, 7, -4, 8, -2\\}` in that order on a directed graph." @@ -14952,6 +14759,7 @@ msgstr "" msgid "Use :doc:`pgr_findCloseEdges` in the `Points SQL`_." msgstr "" +#, python-brace-format msgid "" "All the examples are about traveling from point :math:`1` and vertex " ":math:`5` to points :math:`\\{2, 3, 6\\}` and vertices :math:`\\{10, " @@ -15100,6 +14908,7 @@ msgstr "" msgid "Right side driving topology" msgstr "" +#, python-brace-format msgid "" "Traveling from point :math:`1` and vertex :math:`5` to points " ":math:`\\{2, 3, 6\\}` and vertices :math:`\\{10, 11\\}`" @@ -15124,6 +14933,7 @@ msgid "" "[**options**])" msgstr "" +#, python-brace-format msgid "" "Cost matrix for points :math:`\\{1, 6\\}` and vertices :math:`\\{10, " "11\\}` on an **undirected** graph" @@ -15290,7 +15100,7 @@ msgstr "" msgid ":doc:`pgr_alphaShape`" msgstr "" -msgid "pgr_withPointsKSP - Proposed" +msgid "``pgr_withPointsKSP`` - Proposed" msgstr "" msgid "" @@ -15301,6 +15111,9 @@ msgstr "" msgid "Standarizing output columns to |nksp-result|" msgstr "" +msgid "pgr_withPointsKSP(One to One)" +msgstr "" + msgid "pgr_withPointsKSP(One to Many)" msgstr "" @@ -15436,6 +15249,7 @@ msgid "" " points." msgstr "" +#, python-brace-format msgid "" "Given a graph, a set of points on the graphs edges and a list of " "vertices, this function is equivalent to finding the shortest path " @@ -15449,6 +15263,7 @@ msgid "" "[**options**])" msgstr "" +#, python-brace-format msgid "" "Find the route that visits the vertices :math:`\\{ -6, 15, -1\\}` in that" " order on a **directed** graph." @@ -15457,6 +15272,7 @@ msgstr "" msgid "Use :doc:`pgr_findCloseEdges` in the `Points SQL`_" msgstr "" +#, python-brace-format msgid "" "All this examples are about the route that visits the vertices " ":math:`\\{-1, 7, -3, 16, 15\\}` in that order on a **directed** graph." @@ -15539,15 +15355,6 @@ msgid "" "Graph." msgstr "" -msgid ":doc:`pgr_withPointsVia`" -msgstr "" - -msgid ":doc:`pgr_trspVia`" -msgstr "" - -msgid ":doc:`pgr_trspVia_withPoints`" -msgstr "" - msgid ":doc:`withPoints-family` - Functions based on Dijkstra algorithm." msgstr "" @@ -15580,9 +15387,158 @@ msgstr "" msgid "Minors 3.x" msgstr "" +msgid "pgRouting 3.8" +msgstr "" + msgid "pgRouting 3.7" msgstr "" +msgid "pgRouting 3.7.3 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.3 " +"`__" +msgstr "" + +msgid "" +"`#2731 `__ Build " +"Failure on Ubuntu 22" +msgstr "" + +msgid "pgRouting 3.7.2 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.2 " +"`__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "" +"`#2713 `__ cmake " +"missing some policies and min version" +msgstr "" + +msgid "Using OLD policies: CMP0148, CMP0144, CMP0167" +msgstr "" + +msgid "Minimum cmake version 3.12" +msgstr "" + +msgid "" +"`#2707 `__ Build " +"failure in pgRouting 3.7.1 on Alpine" +msgstr "" + +msgid "" +"`#2706 `__ winnie " +"crashing on pgr_betweennessCentrality" +msgstr "" + +msgid "pgRouting 3.7.1 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.1 " +"`__" +msgstr "" + +msgid "" +"`#2680 `__ fails to " +"compile under mingw64 gcc 13.2" +msgstr "" + +msgid "" +"`#2689 `__ When point " +"is a vertex, the withPoints family do not return results." +msgstr "" + +msgid "C/C++ code enhancemet" +msgstr "" + +msgid "TRSP family" +msgstr "" + +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +#, python-format +msgid "" +"To see all issues & pull requests closed by this release see the `Git " +"closed milestone for 3.7.0 " +"`__" +msgstr "" + +msgid "" +"`#2656 `__ Stop support" +" of PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + +msgid "New experimental functions" +msgstr "" + +msgid "Metrics" +msgstr "" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "" + +msgid "" +"`#2605 `__ Standarize " +"spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "" + +msgid "Experimental promoted to proposed." +msgstr "" + +msgid "" +"`#2635 `__ " +"pgr_LineGraph ignores directed flag and use negative values for " +"identifiers." +msgstr "" + +msgid "``pgr_lineGraph``" +msgstr "" + +msgid "Code enhancement" +msgstr "" + +msgid "" +"`#2599 `__ Driving " +"distance cleanup" +msgstr "" + +msgid "" +"`#2607 `__ Read " +"postgresql data on C++" +msgstr "" + +msgid "" +"`#2614 `__ Clang tidy " +"does not work" +msgstr "" + msgid "pgRouting 3.6" msgstr "" @@ -15716,7 +15672,7 @@ msgstr "" msgid "" "`#2548 `__ Standarize " -"output pgr_drivingdistance" +"output pgr_drivingDistance" msgstr "" msgid "Proposed functions changes" @@ -15940,6 +15896,9 @@ msgstr "" msgid "Via with turn restrictions" msgstr "" +msgid "pgr_trspVia(One Via)" +msgstr "" + msgid "pgr_trspVia_withPoints(One Via)" msgstr "" @@ -15991,24 +15950,18 @@ msgstr "" msgid "Flow functions" msgstr "" -msgid "pgr_maxCardinalityMatch(text)``" +msgid "pgr_maxCardinalityMatch(text)" msgstr "" -msgid "Deprecating ``pgr_maxCardinalityMatch(text,boolean)``" +msgid "Deprecating: pgr_maxCardinalityMatch(text,boolean)" msgstr "" msgid "Deprecated Functions" msgstr "" -msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)" -msgstr "" - msgid "pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)" msgstr "" -msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)" -msgstr "" - msgid "pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)" msgstr "" @@ -16043,9 +15996,6 @@ msgid "" "`_" msgstr "" -msgid "pgr_maxCardinalityMatch(text,boolean)" -msgstr "" - msgid "" "Ignoring optional boolean parameter, as the algorithm works only for " "undirected graphs." @@ -16571,7 +16521,7 @@ msgid "" "of information" msgstr "" -msgid "New functions" +msgid "New Functions" msgstr "" msgid "Kruskal family" @@ -16610,148 +16560,94 @@ msgstr "" msgid "aStar Family" msgstr "" -msgid "pgr_aStar(one to many)" -msgstr "" - -msgid "pgr_aStar(many to one)" +msgid "pgr_aStarCost(One to One)" msgstr "" -msgid "pgr_aStar(many to many)" +msgid "pgr_aStarCost(One to Many)" msgstr "" -msgid "pgr_aStarCost(one to one)" +msgid "pgr_aStarCost(Many to One)" msgstr "" -msgid "pgr_aStarCost(one to many)" +msgid "pgr_aStarCost(Many to Many)" msgstr "" -msgid "pgr_aStarCost(many to one)" -msgstr "" - -msgid "pgr_aStarCost(many to many)" -msgstr "" - -msgid "pgr_aStarCostMatrix(one to one)" -msgstr "" - -msgid "pgr_aStarCostMatrix(one to many)" -msgstr "" - -msgid "pgr_aStarCostMatrix(many to one)" -msgstr "" - -msgid "pgr_aStarCostMatrix(many to many)" +msgid "pgr_aStarCostMatrix" msgstr "" msgid "bdAstar Family" msgstr "" -msgid "pgr_bdAstar(one to many)" -msgstr "" - -msgid "pgr_bdAstar(many to one)" -msgstr "" - -msgid "pgr_bdAstar(many to many)" -msgstr "" - -msgid "pgr_bdAstarCost(one to one)" -msgstr "" - -msgid "pgr_bdAstarCost(one to many)" -msgstr "" - -msgid "pgr_bdAstarCost(many to one)" +msgid "pgr_bdAstarCost(One to One)" msgstr "" -msgid "pgr_bdAstarCost(many to many)" +msgid "pgr_bdAstarCost(One to Many)" msgstr "" -msgid "pgr_bdAstarCostMatrix(one to one)" +msgid "pgr_bdAstarCost(Many to One)" msgstr "" -msgid "pgr_bdAstarCostMatrix(one to many)" +msgid "pgr_bdAstarCost(Many to Many)" msgstr "" -msgid "pgr_bdAstarCostMatrix(many to one)" -msgstr "" - -msgid "pgr_bdAstarCostMatrix(many to many)" +msgid "pgr_bdAstarCostMatrix" msgstr "" msgid "bdDijkstra Family" msgstr "" -msgid "pgr_bdDijkstra(one to many)" -msgstr "" - -msgid "pgr_bdDijkstra(many to one)" -msgstr "" - -msgid "pgr_bdDijkstra(many to many)" -msgstr "" - -msgid "pgr_bdDijkstraCost(one to one)" +msgid "pgr_bdDijkstraCost(One to One)" msgstr "" -msgid "pgr_bdDijkstraCost(one to many)" +msgid "pgr_bdDijkstraCost(One to Many)" msgstr "" -msgid "pgr_bdDijkstraCost(many to one)" +msgid "pgr_bdDijkstraCost(Many to One)" msgstr "" -msgid "pgr_bdDijkstraCost(many to many)" +msgid "pgr_bdDijkstraCost(Many to Many)" msgstr "" -msgid "pgr_bdDijkstraCostMatrix(one to one)" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix(one to many)" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix(many to one)" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix(many to many)" +msgid "pgr_bdDijkstraCostMatrix" msgstr "" msgid "Flow Family" msgstr "" -msgid "pgr_pushRelabel(one to one)" +msgid "pgr_pushRelabel(One to One)" msgstr "" -msgid "pgr_pushRelabel(one to many)" +msgid "pgr_pushRelabel(One to Many)" msgstr "" -msgid "pgr_pushRelabel(many to one)" +msgid "pgr_pushRelabel(Many to One)" msgstr "" -msgid "pgr_pushRelabel(many to many)" +msgid "pgr_pushRelabel(Many to Many)" msgstr "" -msgid "pgr_edmondsKarp(one to one)" +msgid "pgr_edmondsKarp(One to One)" msgstr "" -msgid "pgr_edmondsKarp(one to many)" +msgid "pgr_edmondsKarp(One to Many)" msgstr "" -msgid "pgr_edmondsKarp(many to one)" +msgid "pgr_edmondsKarp(Many to One)" msgstr "" -msgid "pgr_edmondsKarp(many to many)" +msgid "pgr_edmondsKarp(Many to Many)" msgstr "" -msgid "pgr_boykovKolmogorov (one to one)" +msgid "pgr_boykovKolmogorov (One to One)" msgstr "" -msgid "pgr_boykovKolmogorov (one to many)" +msgid "pgr_boykovKolmogorov (One to Many)" msgstr "" -msgid "pgr_boykovKolmogorov (many to one)" +msgid "pgr_boykovKolmogorov (Many to One)" msgstr "" -msgid "pgr_boykovKolmogorov (many to many)" +msgid "pgr_boykovKolmogorov (Many to Many)" msgstr "" msgid "pgr_maxCardinalityMatching" @@ -16760,16 +16656,16 @@ msgstr "" msgid "pgr_maxFlow" msgstr "" -msgid "pgr_edgeDisjointPaths(one to one)" +msgid "pgr_edgeDisjointPaths(One to One)" msgstr "" -msgid "pgr_edgeDisjointPaths(one to many)" +msgid "pgr_edgeDisjointPaths(One to Many)" msgstr "" -msgid "pgr_edgeDisjointPaths(many to one)" +msgid "pgr_edgeDisjointPaths(Many to One)" msgstr "" -msgid "pgr_edgeDisjointPaths(many to many)" +msgid "pgr_edgeDisjointPaths(Many to Many)" msgstr "" msgid "Components family" @@ -16970,7 +16866,7 @@ msgstr "" msgid "pgr_johnson" msgstr "" -msgid "pgr_astar" +msgid "pgr_aStar" msgstr "" msgid "pgr_bdAstar" @@ -17205,19 +17101,13 @@ msgstr "" msgid "Parameter names changed" msgstr "" -msgid "The many version results are the union of the one to one version" +msgid "The many version results are the union of the One to One version" msgstr "" msgid "New Signatures" msgstr "" -msgid "pgr_bdAstar(one to one)" -msgstr "" - -msgid "pgr_bdAstarCostMatrix" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix" +msgid "pgr_bdAstar(One to One)" msgstr "" msgid "pgr_lineGraph" @@ -17300,36 +17190,9 @@ msgid "" " on Github." msgstr "" -msgid "New Function." -msgstr "" - msgid "pgr_bdDijkstra" msgstr "" -msgid "pgr_astar(one to many)" -msgstr "" - -msgid "pgr_astar(many to one)" -msgstr "" - -msgid "pgr_astar(many to many)" -msgstr "" - -msgid "pgr_astarCost(one to one)" -msgstr "" - -msgid "pgr_astarCost(one to many)" -msgstr "" - -msgid "pgr_astarCost(many to one)" -msgstr "" - -msgid "pgr_astarCost(many to many)" -msgstr "" - -msgid "pgr_astarCostMatrix" -msgstr "" - msgid "Deprecated signatures." msgstr "" @@ -17405,52 +17268,46 @@ msgstr "" msgid "pgr_TSP" msgstr "" -msgid "pgr_aStar" -msgstr "" - -msgid "New Functions" -msgstr "" - msgid "pgr_eucledianTSP" msgstr "" msgid "pgr_withPointsCostMatrix" msgstr "" -msgid "pgr_maxFlowPushRelabel(one to one)" +msgid "pgr_maxFlowPushRelabel(One to One)" msgstr "" -msgid "pgr_maxFlowPushRelabel(one to many)" +msgid "pgr_maxFlowPushRelabel(One to Many)" msgstr "" -msgid "pgr_maxFlowPushRelabel(many to one)" +msgid "pgr_maxFlowPushRelabel(Many to One)" msgstr "" -msgid "pgr_maxFlowPushRelabel(many to many)" +msgid "pgr_maxFlowPushRelabel(Many to Many)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(one to one)" +msgid "pgr_maxFlowEdmondsKarp(One to One)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(one to many)" +msgid "pgr_maxFlowEdmondsKarp(One to Many)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(many to one)" +msgid "pgr_maxFlowEdmondsKarp(Many to One)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(many to many)" +msgid "pgr_maxFlowEdmondsKarp(Many to Many)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (one to one)" +msgid "pgr_maxFlowBoykovKolmogorov (One to One)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (one to many)" +msgid "pgr_maxFlowBoykovKolmogorov (One to Many)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (many to one)" +msgid "pgr_maxFlowBoykovKolmogorov (Many to One)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (many to many)" +msgid "pgr_maxFlowBoykovKolmogorov (Many to Many)" msgstr "" msgid "pgr_maximumCardinalityMatching" @@ -17462,7 +17319,7 @@ msgstr "" msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead" msgstr "" -msgid "pgr_astar - use pgr_aStar instead" +msgid "pgr_aStar - use pgr_aStar instead" msgstr "" msgid "pgr_flip_edges" @@ -17569,43 +17426,43 @@ msgstr "" msgid "pgr_Johnson" msgstr "" -msgid "pgr_dijkstraCost(one to one)" +msgid "pgr_dijkstraCost(One to One)" msgstr "" -msgid "pgr_dijkstraCost(one to many)" +msgid "pgr_dijkstraCost(One to Many)" msgstr "" -msgid "pgr_dijkstraCost(many to one)" +msgid "pgr_dijkstraCost(Many to One)" msgstr "" -msgid "pgr_dijkstraCost(many to many)" +msgid "pgr_dijkstraCost(Many to Many)" msgstr "" msgid "Proposed Functionality" msgstr "" -msgid "pgr_withPoints(one to one)" +msgid "pgr_withPoints(One to One)" msgstr "" -msgid "pgr_withPoints(one to many)" +msgid "pgr_withPoints(One to Many)" msgstr "" -msgid "pgr_withPoints(many to one)" +msgid "pgr_withPoints(Many to One)" msgstr "" -msgid "pgr_withPoints(many to many)" +msgid "pgr_withPoints(Many to Many)" msgstr "" -msgid "pgr_withPointsCost(one to one)" +msgid "pgr_withPointsCost(One to One)" msgstr "" -msgid "pgr_withPointsCost(one to many)" +msgid "pgr_withPointsCost(One to Many)" msgstr "" -msgid "pgr_withPointsCost(many to one)" +msgid "pgr_withPointsCost(Many to One)" msgstr "" -msgid "pgr_withPointsCost(many to many)" +msgid "pgr_withPointsCost(Many to Many)" msgstr "" msgid "pgr_withPointsDD(single vertex)" @@ -17651,19 +17508,10 @@ msgid "" " on Github." msgstr "" -msgid "pgr_dijkstra(one to many)" -msgstr "" - -msgid "pgr_dijkstra(many to one)" -msgstr "" - -msgid "pgr_dijkstra(many to many)" -msgstr "" - msgid "Refactored" msgstr "" -msgid "pgr_dijkstra(one to one)" +msgid "pgr_dijkstra(One to One)" msgstr "" msgid "" @@ -18410,6 +18258,7 @@ msgstr "" msgid "This category intends to solve the general problem:" msgstr "" +#, python-brace-format msgid "" "Given a graph and a list of vertices, find the shortest path between " ":math:`vertex_i` and :math:`vertex_{i+1}` for all vertices" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 5a847a53fc..ad5e96c11a 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-23 10:17-0600\n" +"POT-Creation-Date: 2025-02-27 16:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -268,9 +268,6 @@ msgstr "" msgid ":ref:`search`" msgstr "" -msgid "Boost Graph inside" -msgstr "" - msgid "DFS - Category" msgstr "" @@ -2413,15 +2410,12 @@ msgstr "" msgid "For large graphs where there is a path bewtween the starting vertex and ending vertex:" msgstr "" -msgid "It is expected to terminate faster than pgr_astar" +msgid "It is expected to terminate faster than pgr_aStar" msgstr "" msgid ":doc:`aStar-family`" msgstr "" -msgid "`Boost `__" -msgstr "" - msgid "Bidirectional Dijkstra - Family of functions" msgstr "" @@ -2626,7 +2620,7 @@ msgstr "" msgid "Node" msgstr "" -msgid "Adjecent nodes" +msgid "Adjacent nodes" msgstr "" msgid "Number of adjacent nodes" @@ -3931,156 +3925,12 @@ msgstr "" msgid ":doc:`release_notes`" msgstr "" -msgid "Current release" -msgstr "" - msgid "pgRouting 3.8.0 Release Notes" msgstr "" msgid "No Changes Yet" msgstr "" -msgid "pgRouting 3.7.3 Release Notes" -msgstr "" - -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.3 `__" -msgstr "" - -msgid "`#2731 `__ Build Failure on Ubuntu 22" -msgstr "" - -msgid "pgRouting 3.7.2 Release Notes" -msgstr "" - -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.2 `__" -msgstr "" - -msgid "Build" -msgstr "" - -msgid "`#2713 `__ cmake missing some policies and min version" -msgstr "" - -msgid "Using OLD policies: CMP0148, CMP0144, CMP0167" -msgstr "" - -msgid "Minimum cmake version 3.12" -msgstr "" - -msgid "Bug fixes" -msgstr "" - -msgid "`#2707 `__ Build failure in pgRouting 3.7.1 on Alpine" -msgstr "" - -msgid "`#2706 `__ winnie crashing on pgr_betweennessCentrality" -msgstr "" - -msgid "pgRouting 3.7.1 Release Notes" -msgstr "" - -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.1 `__" -msgstr "" - -msgid "`#2680 `__ fails to compile under mingw64 gcc 13.2" -msgstr "" - -msgid "`#2689 `__ When point is a vertex, the withPoints family do not return results." -msgstr "" - -msgid "C/C++ code enhancemet" -msgstr "" - -msgid "TRSP family" -msgstr "" - -msgid "pgRouting 3.7.0 Release Notes" -msgstr "" - -msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.0 `__" -msgstr "" - -msgid "Support" -msgstr "" - -msgid "`#2656 `__ Stop support of PostgreSQL12 on pgrouting v3.7" -msgstr "" - -msgid "Stopping support of PostgreSQL 12" -msgstr "" - -msgid "CI does not test for PostgreSQL 12" -msgstr "" - -msgid "New experimental functions" -msgstr "" - -msgid "Metrics" -msgstr "" - -msgid "pgr_betweennessCentrality" -msgstr "" - -msgid "Official functions changes" -msgstr "" - -msgid "`#2605 `__ Standarize spanning tree functions output" -msgstr "" - -msgid "Functions:" -msgstr "" - -msgid "``pgr_kruskalDD``" -msgstr "" - -msgid "``pgr_kruskalDFS``" -msgstr "" - -msgid "``pgr_kruskalBFS``" -msgstr "" - -msgid "``pgr_primDD``" -msgstr "" - -msgid "``pgr_primDFS``" -msgstr "" - -msgid "``pgr_primBFS``" -msgstr "" - -msgid "Standarizing output columns to |result-spantree|" -msgstr "" - -msgid "Added ``pred`` result columns." -msgstr "" - -msgid "Experimental promoted to proposed." -msgstr "" - -msgid "`#2635 `__ pgr_LineGraph ignores directed flag and use negative values for identifiers." -msgstr "" - -msgid "``pgr_lineGraph``" -msgstr "" - -msgid "Function promoted to proposed." -msgstr "" - -msgid "Works for directed and undirected graphs." -msgstr "" - -msgid "Code enhancement" -msgstr "" - -msgid "`#2599 `__ Driving distance cleanup" -msgstr "" - -msgid "`#2607 `__ Read postgresql data on C++" -msgstr "" - -msgid "`#2614 `__ Clang tidy does not work" -msgstr "" - msgid "All releases" msgstr "" @@ -4114,13 +3964,7 @@ msgstr "" msgid "All deprecated functions will be removed on next mayor version 4.0.0" msgstr "" -msgid "Migration of functions" -msgstr "" - -msgid "Migrating functions" -msgstr "" - -msgid "Migration of pgr_aStar``" +msgid "Migration of ``pgr_aStar``" msgstr "" msgid "Starting from `v3.6.0 `__" @@ -4129,13 +3973,13 @@ msgstr "" msgid "Signatures to be migrated:" msgstr "" -msgid "pgr_aStar(One to One)" +msgid "``pgr_aStar`` (`One to One`)" msgstr "" -msgid "pgr_aStar(One to Many)" +msgid "``pgr_aStar`` (`One to Many`)" msgstr "" -msgid "pgr_aStar(Many to One)" +msgid "``pgr_aStar`` (`Many to One`)" msgstr "" msgid "Before Migration" @@ -4147,13 +3991,13 @@ msgstr "" msgid "Depending on the overload used, the columns ``start_vid`` and ``end_vid`` might be missing:" msgstr "" -msgid "pgr_aStar(One to One) does not have ``start_vid`` and ``end_vid``." +msgid "``pgr_aStar`` (`One to One`) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "pgr_aStar(One to Many) does not have ``start_vid``." +msgid "``pgr_aStar`` (`One to Many`) does not have ``start_vid``." msgstr "" -msgid "pgr_aStar(Many to One) does not have ``end_vid``." +msgid "``pgr_aStar`` (`Many to One`) does not have ``end_vid``." msgstr "" msgid "Migration" @@ -4162,25 +4006,19 @@ msgstr "" msgid "Be aware of the existence of the additional columns." msgstr "" -msgid "In pgr_aStar(One to One)" +msgid "In ``pgr_aStar`` (`One to One`)" msgstr "" -msgid "start_vid`` contains the **start vid** parameter value." -msgstr "" - -msgid "end_vid`` contains the **end vid** parameter value." -msgstr "" - -msgid "In pgr_aStar(One to Many)" +msgid "``start_vid`` contains the **start vid** parameter value." msgstr "" -msgid "``start_vid`` contains the **start vid** parameter value." +msgid "``end_vid`` contains the **end vid** parameter value." msgstr "" -msgid "In pgr_aStar(Many to One)" +msgid "In ``pgr_aStar`` (`One to Many`)" msgstr "" -msgid "``end_vid`` contains the **end vid** parameter value." +msgid "In ``pgr_aStar`` (`Many to One`)" msgstr "" msgid "If needed filter out the added columns, for example:" @@ -4198,31 +4036,31 @@ msgstr "" msgid "Migration of ``pgr_bdAstar``" msgstr "" -msgid "pgr_bdAstar(One to One)" +msgid "``pgr_bdAstar`` (`One to One`)" msgstr "" -msgid "pgr_bdAstar(One to Many)" +msgid "``pgr_bdAstar`` (`One to Many`)" msgstr "" -msgid "pgr_bdAstar(Many to One)" +msgid "``pgr_bdAstar`` (`Many to One`)" msgstr "" -msgid "pgr_bdAstar(One to One) does not have ``start_vid`` and ``end_vid``." +msgid "``pgr_bdAstar`` (`One to One`) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "pgr_bdAstar(One to Many) does not have ``start_vid``." +msgid "``pgr_bdAstar`` (`One to Many`) does not have ``start_vid``." msgstr "" -msgid "pgr_bdAstar(Many to One) does not have ``end_vid``." +msgid "``pgr_bdAstar`` (`Many to One`) does not have ``end_vid``." msgstr "" -msgid "In pgr_bdAstar(One to One)" +msgid "In ``pgr_bdAstar`` (`One to One`)" msgstr "" -msgid "In pgr_bdAstar(One to Many)" +msgid "In ``pgr_bdAstar`` (`One to Many`)" msgstr "" -msgid "In pgr_bdAstar(Many to One)" +msgid "In ``pgr_bdAstar`` (`Many to One`)" msgstr "" msgid "Migration of ``pgr_dijkstra``" @@ -4231,37 +4069,37 @@ msgstr "" msgid "Starting from `v3.5.0 `__" msgstr "" -msgid "pgr_dijkstra(One to One)" +msgid "``pgr_dijkstra`` (`One to One`)" msgstr "" -msgid "pgr_dijkstra(One to Many)" +msgid "``pgr_dijkstra`` (`One to Many`)" msgstr "" -msgid "pgr_dijkstra(Many to One)" +msgid "``pgr_dijkstra`` (`Many to One`)" msgstr "" -msgid "pgr_dijkstra(One to One) does not have ``start_vid`` and ``end_vid``." +msgid "``pgr_dijkstra`` (`One to One`) does not have ``start_vid`` and ``end_vid``." msgstr "" -msgid "pgr_dijkstra(One to Many) does not have ``start_vid``." +msgid "``pgr_dijkstra`` (`One to Many`) does not have ``start_vid``." msgstr "" -msgid "pgr_dijkstra(Many to One) does not have ``end_vid``." +msgid "``pgr_dijkstra`` (`Many to One`) does not have ``end_vid``." msgstr "" -msgid "In pgr_dijkstra(One to One)" +msgid "In ``pgr_dijkstra`` (`One to One`)" msgstr "" -msgid "In pgr_dijkstra(One to Many)" +msgid "In ``pgr_dijkstra`` (`One to Many`)" msgstr "" -msgid "In pgr_dijkstra(Many to One)" +msgid "In ``pgr_dijkstra`` (`Many to One`)" msgstr "" msgid "If needed add the new columns, for example:" msgstr "" -msgid "Migration of ``pgr_drivingdistance``" +msgid "Migration of ``pgr_drivingDistance``" msgstr "" msgid "Starting from `v3.6.0 `__ :doc:`pgr_drivingDistance` result columns are being standardized." @@ -4279,10 +4117,10 @@ msgstr "" msgid "|result-spantree|" msgstr "" -msgid "pgr_drivingdistance(Single vertex)" +msgid "pgr_drivingDistance(Single vertex)" msgstr "" -msgid "pgr_drivingdistance(Multiple vertices)" +msgid "pgr_drivingDistance(Multiple vertices)" msgstr "" msgid "Output columns were |result-dij-dd|" @@ -4300,9 +4138,6 @@ msgstr "" msgid "Be aware of the existence and name change of the result columns." msgstr "" -msgid "``pgr_drivingdistance`` (Single vertex)" -msgstr "" - msgid "Using `this `__ example." msgstr "" @@ -4315,9 +4150,6 @@ msgstr "" msgid "If needed filter out the added columns, for example, to return the original columns" msgstr "" -msgid "``pgr_drivingdistance`` (Multiple vertices)" -msgstr "" - msgid "Using `this `__ example." msgstr "" @@ -4336,12 +4168,21 @@ msgstr "" msgid "|result-bfs|" msgstr "" +msgid "``pgr_kruskalDD``" +msgstr "" + msgid "Single vertex" msgstr "" msgid "Multiple vertices" msgstr "" +msgid "``pgr_kruskalDFS``" +msgstr "" + +msgid "``pgr_kruskalBFS``" +msgstr "" + msgid "Output columns were |result-bfs|" msgstr "" @@ -4360,7 +4201,7 @@ msgstr "" msgid "Kruskal single vertex" msgstr "" -msgid "Using pgr_KruskalDD`` as example. Migration is similar to al the affected functions." +msgid "Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected functions." msgstr "" msgid "Comparing with `this `__ example." @@ -4372,9 +4213,6 @@ msgstr "" msgid "Kruskal multiple vertices" msgstr "" -msgid "Using ``pgr_KruskalDD`` as example. Migration is similar to al the affected functions." -msgstr "" - msgid "Comparing with `this `__ example." msgstr "" @@ -4390,7 +4228,7 @@ msgstr "" msgid "|nksp-result|" msgstr "" -msgid "pgr_KSP(One to One)" +msgid "``pgr_KSP`` (One to One)" msgstr "" msgid "Output columns were |ksp-result|" @@ -4399,10 +4237,7 @@ msgstr "" msgid "the columns ``start_vid`` and ``end_vid`` do not exist." msgstr "" -msgid "pgr_KSP(One to One) does not have ``start_vid`` and ``end_vid``." -msgstr "" - -msgid "``pgr_KSP`` (One to One)" +msgid "``pgr_KSP`` (One to One) does not have ``start_vid`` and ``end_vid``." msgstr "" msgid "Using `this `__ example." @@ -4438,7 +4273,7 @@ msgstr "" msgid "New signature" msgstr "" -msgid "pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." +msgid "``pgr_maxCardinalityMatch(text)`` returns only ``edge`` column." msgstr "" msgid "The optional flag ``directed`` is removed." @@ -4468,12 +4303,21 @@ msgstr "" msgid "In the query returns only ``edge`` column." msgstr "" -msgid "Migration of pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" +msgid "Migration of ``pgr_primDD`` / ``pgr_primBFS`` / ``pgr_primDFS``" msgstr "" msgid "Starting from `v3.7.0 `__ :doc:`pgr_primDD`, :doc:`pgr_primBFS` and :doc:`pgr_primDFS` result columns are being standardized." msgstr "" +msgid "``pgr_primDD``" +msgstr "" + +msgid "``pgr_primDFS``" +msgstr "" + +msgid "``pgr_primBFS``" +msgstr "" + msgid "Prim single vertex" msgstr "" @@ -4486,9 +4330,6 @@ msgstr "" msgid "Prim multiple vertices" msgstr "" -msgid "Using pgr_primDD`` as example. Migration is similar to al the affected functions." -msgstr "" - msgid "Comparing with `this `__ example." msgstr "" @@ -4519,6 +4360,9 @@ msgstr "" msgid "``driving_side`` parameter was named optional now it is compulsory unnamed." msgstr "" +msgid "``pgr_withPointsDD`` (`Multiple vertices`)" +msgstr "" + msgid "Output columns were |result-m-1-no-seq|" msgstr "" @@ -4618,7 +4462,7 @@ msgstr "" msgid "And ``driving side`` parameter changed from named optional to unnamed compulsory **driving side** and its validity differ for directed and undirected graphs." msgstr "" -msgid "pgr_withPointsKSP(One to One)" +msgid "``pgr_withPointsKSP`` (`One to One`)" msgstr "" msgid "Output columns were |old-pid-result|" @@ -4627,379 +4471,262 @@ msgstr "" msgid "New output columns are |nksp-result|" msgstr "" -msgid "``pgr_withPointsKSP`` (One to One)" -msgstr "" - msgid "Using `this `__ example." msgstr "" msgid "If needed filter out the additional columns, for example, to return the original columns:" msgstr "" -msgid "Migration of turn restrictions" -msgstr "" - -msgid "Migration of restrictions" -msgstr "" - -msgid "The structure of the restrictions have changed:" -msgstr "" - -msgid "Old restrictions structure" -msgstr "" - -msgid "On the deprecated signatures:" -msgstr "" - -msgid "Column ``rid`` is ignored" -msgstr "" - -msgid "``via_path``" -msgstr "" - -msgid "Must be in reverse order." -msgstr "" - -msgid "Is of type ``TEXT``." -msgstr "" - -msgid "When more than one via edge must be separated with ``,``." -msgstr "" - -msgid "``target_id``" -msgstr "" - -msgid "Is the last edge of the forbidden path." -msgstr "" - -msgid "Is of type ``INTEGER``." -msgstr "" - -msgid "``to_cost``" -msgstr "" - -msgid "Is of type ``FLOAT``." -msgstr "" - -msgid "Creation of the old restrictions table" -msgstr "" - -msgid "Old restrictions fill up" -msgstr "" - -msgid "Old restrictions contents" -msgstr "" - -msgid "The restriction with ``rid = 2`` is representing :math:`3 \\rightarrow 5 \\rightarrow9`" -msgstr "" - -msgid ":math:`3\\rightarrow5`" -msgstr "" - -msgid "is on column ``via_path`` in reverse order" -msgstr "" - -msgid "is of type ``TEXT``" -msgstr "" - -msgid ":math:`9`" -msgstr "" - -msgid "is on column ``target_id``" -msgstr "" - -msgid "is of type ``INTEGER``" -msgstr "" - -msgid "New restrictions structure" -msgstr "" - -msgid "Column ``id`` is ignored" -msgstr "" - -msgid "Column ``path``" -msgstr "" - -msgid "Is of type ``ARRAY[ANY-INTEGER]``." -msgstr "" - -msgid "Contains all the edges involved on the restriction." -msgstr "" - -msgid "The array has the ordered edges of the restriction." -msgstr "" - -msgid "Column ``cost``" -msgstr "" - -msgid "Is of type ``ANY-NUMERICAL``" -msgstr "" - -msgid "The creation of the restrictions table" -msgstr "" - -msgid "Adding the restrictions" -msgstr "" - -msgid "Restrictions data" -msgstr "" - -msgid "The restriction with ``rid = 2`` represents the path :math:`3 \\rightarrow5 \\rightarrow9`." -msgstr "" - -msgid "By inspection the path is clear." -msgstr "" - -msgid "To transform the old restrictions table to the new restrictions structure," +msgid "Migration of ``pgr_trsp`` (Vertices)" msgstr "" -msgid "Create a new table with the new restrictions structure." +msgid "Signature:" msgstr "" -msgid "In this migration guide ``new_restrictions`` is been used." +msgid "Deprecated" msgstr "" -msgid "For this migration pgRouting supplies an auxiliary function for reversal of an array ``_pgr_array_reverse`` needed for the migration." +msgid "`v3.4.0 `__" msgstr "" -msgid "``_pgr_array_reverse``:" +msgid ":doc:`pgr_dijkstra`" msgstr "" -msgid "Was created temporally for this migration" +msgid ":doc:`pgr_trsp`" msgstr "" -msgid "Is not documented." +msgid "`Migration of restrictions`_" msgstr "" -msgid "Will be removed on the next mayor version 4.0.0" +msgid "Use ``pgr_dijkstra`` when there are no restrictions." msgstr "" -msgid "The migrated table contents:" +msgid "Use :doc:`pgr_dijkstra` instead." msgstr "" -msgid "Migration of ``pgr_trsp`` (Vertices)" +msgid "To get the original column names:" msgstr "" -msgid ":doc:`pgr_trsp` signatures have changed and many issues have been fixed in the new signatures. This section will show how to migrate from the old signatures to the new replacement functions. This also affects the restrictions." +msgid "``id1`` is the node" msgstr "" -msgid "The integral type of the ``Edges SQL`` can only be ``INTEGER``." +msgid "``id2`` is the edge" msgstr "" -msgid "The floating point type of the ``Edges SQL`` can only be ``FLOAT``." +msgid "Use ``pgr_trsp`` when there are restrictions." msgstr "" -msgid "``directed`` flag is compulsory." +msgid "Use :doc:`pgr_trsp` (One to One) instead." msgstr "" -msgid "Does not autodetect if ``reverse_cost`` column exist." +msgid "Migration of ``pgr_trsp`` (Edges)" msgstr "" -msgid "User must be careful to match the existence of the column with the value of ``has_rcost`` parameter." +msgid ":doc:`pgr_withPoints`" msgstr "" -msgid "The restrictions inner query is optional." +msgid ":doc:`pgr_trsp_withPoints`" msgstr "" -msgid "The output column names are meaningless" +msgid "Use ``pgr_withPoints`` when there are no restrictions." msgstr "" -msgid "Migrate by using:" +msgid "Use :doc:`pgr_withPoints` (One to One) instead." msgstr "" -msgid ":doc:`pgr_dijkstra` when there are no restrictions," +msgid "Use ``pgr_trsp_withPoints`` when there are restrictions." msgstr "" -msgid ":doc:`pgr_trsp` (One to One) when there are restrictions." +msgid "Use :doc:`pgr_trsp_withPoints` instead." msgstr "" -msgid "Migrating ``pgr_trsp`` (Vertices) using ``pgr_dijkstra``" +msgid "Migration of ``pgr_trspViaVertices``" msgstr "" -msgid "The following query does not have restrictions." +msgid ":doc:`pgr_dijkstraVia`" msgstr "" -msgid "A message about deprecation is shown" +msgid ":doc:`pgr_trspVia`" msgstr "" -msgid "Deprecated functions will be removed on the next mayor version 4.0.0" +msgid "Use ``pgr_dijkstraVia`` when there are no restrictions" msgstr "" -msgid "Use :doc:`pgr_dijkstra` instead." +msgid "Use :doc:`pgr_dijkstraVia` instead." msgstr "" -msgid "The types casting has been removed." +msgid "``id1`` is the path identifier" msgstr "" -msgid ":doc:`pgr_dijkstra`:" +msgid "``id2`` is the node" msgstr "" -msgid "Autodetects if ``reverse_cost`` column is in the edges SQL." +msgid "``id3`` is the edge" msgstr "" -msgid "Accepts ``ANY-INTEGER`` on integral types" +msgid "Use ``pgr_trspVia`` when there are restrictions" msgstr "" -msgid "Accepts ``ANY-NUMERICAL`` on floating point types" +msgid "Use :doc:`pgr_trspVia` instead." msgstr "" -msgid "``directed`` flag has a default value of ``true``." +msgid "Migration of ``pgr_trspViaEdges``" msgstr "" -msgid "Use the same value that on the original query." +msgid ":doc:`pgr_withPointsVia`" msgstr "" -msgid "In this example it is ``true`` which is the default value." +msgid ":doc:`pgr_trspVia_withPoints`" msgstr "" -msgid "The flag has been omitted and the default is been used." +msgid "Use ``pgr_withPointsVia`` when there are no restrictions" msgstr "" -msgid "When the need of using strictly the same (meaningless) names and types of the function been migrated then:" +msgid "Use :doc:`pgr_withPointsVia` instead." msgstr "" -msgid "``id1`` is the node" +msgid "Use ``pgr_trspVia_withPoints`` when there are restrictions" msgstr "" -msgid "``id2`` is the edge" +msgid "Use :doc:`pgr_trspVia_withPoints` instead." msgstr "" -msgid "Migrating ``pgr_trsp`` (Vertices) using ``pgr_trsp``" +msgid "Migration of restrictions" msgstr "" -msgid "The following query has restrictions." +msgid "The structure of the restrictions have changed:" msgstr "" -msgid "The restrictions are the last parameter of the function" +msgid "Old restrictions structure" msgstr "" -msgid "Using the old structure of restrictions" +msgid "On the deprecated signatures:" msgstr "" -msgid "Use :doc:`pgr_trsp` (One to One) instead." +msgid "Column ``rid`` is ignored" msgstr "" -msgid "The new structure of restrictions is been used." +msgid "``via_path``" msgstr "" -msgid "It is the second parameter." +msgid "Must be in reverse order." msgstr "" -msgid ":doc:`pgr_trsp`:" +msgid "Is of type ``TEXT``." msgstr "" -msgid "Migration of pgr_trsp(Edges)" +msgid "When more than one via edge must be separated with ``,``." msgstr "" -msgid "The integral types of the ``sql`` can only be ``INTEGER``." +msgid "``target_id``" msgstr "" -msgid "The floating point type of the ``sql`` can only be ``FLOAT``." +msgid "Is the last edge of the forbidden path." msgstr "" -msgid "For these migration guide the following points will be used:" +msgid "Is of type ``INTEGER``." msgstr "" -msgid ":doc:`pgr_withPoints` when there are no restrictions," +msgid "``to_cost``" msgstr "" -msgid ":doc:`pgr_trsp_withPoints` (One to One) when there are restrictions." +msgid "Is of type ``FLOAT``." msgstr "" -msgid "Migrating ``pgr_trsp`` (Edges) using ``pgr_withPoints``" +msgid "Creation of the old restrictions table" msgstr "" -msgid "Use :doc:`pgr_withPoints` instead." +msgid "Old restrictions fill up" msgstr "" -msgid "Do not show details, as the deprecated function does not show details." +msgid "Old restrictions contents" msgstr "" -msgid ":doc:`pgr_withPoints`:" +msgid "The restriction with ``rid = 2`` is representing :math:`3 \\rightarrow 5 \\rightarrow9`" msgstr "" -msgid "On the points query do not include the ``side`` column." +msgid ":math:`3\\rightarrow5`" msgstr "" -msgid "When the need of using strictly the same (meaningless) names and types, and node values of the function been migrated then:" +msgid "is on column ``via_path`` in reverse order" msgstr "" -msgid "Migrating ``pgr_trsp`` (Edges) using ``pgr_trsp_withPoints``" +msgid "is of type ``TEXT``" msgstr "" -msgid "Use :doc:`pgr_trsp_withPoints` instead." +msgid ":math:`9`" msgstr "" -msgid ":doc:`pgr_trsp_withPoints`:" +msgid "is on column ``target_id``" msgstr "" -msgid "Migration of ``pgr_trspViaVertices``" +msgid "is of type ``INTEGER``" msgstr "" -msgid "The integral types of the ``Edges SQL`` can only be ``INTEGER``." +msgid "New restrictions structure" msgstr "" -msgid ":doc:`pgr_dijkstraVia` when there are no restrictions," +msgid "Column ``id`` is ignored" msgstr "" -msgid ":doc:`pgr_trspVia` when there are restrictions." +msgid "Column ``path``" msgstr "" -msgid "Migrating ``pgr_trspViaVertices`` using ``pgr_dijkstraVia``" +msgid "Is of type ``ARRAY[ANY-INTEGER]``." msgstr "" -msgid "Use :doc:`pgr_dijkstraVia` instead." +msgid "Contains all the edges involved on the restriction." msgstr "" -msgid ":doc:`pgr_dijkstraVia`:" +msgid "The array has the ordered edges of the restriction." msgstr "" -msgid "``id1`` is the path identifier" +msgid "Column ``cost``" msgstr "" -msgid "``id2`` is the node" +msgid "Is of type ``ANY-NUMERICAL``" msgstr "" -msgid "``id3`` is the edge" +msgid "The creation of the restrictions table" msgstr "" -msgid "Migrating ``pgr_trspViaVertices`` using ``pgr_trspVia``" +msgid "Adding the restrictions" msgstr "" -msgid "Use :doc:`pgr_trspVia` instead." +msgid "Restrictions data" msgstr "" -msgid ":doc:`pgr_trspVia`:" +msgid "The restriction with ``rid = 2`` represents the path :math:`3 \\rightarrow5 \\rightarrow9`." msgstr "" -msgid "Migration of ``pgr_trspViaEdges``" +msgid "By inspection the path is clear." msgstr "" -msgid "And will travel thru the following Via points :math:`4\\rightarrow3\\rightarrow6`" +msgid "To transform the old restrictions table to the new restrictions structure," msgstr "" -msgid ":doc:`pgr_withPointsVia` when there are no restrictions," +msgid "Create a new table with the new restrictions structure." msgstr "" -msgid ":doc:`pgr_trspVia_withPoints` when there are restrictions." +msgid "In this migration guide ``new_restrictions`` is been used." msgstr "" -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_withPointsVia``" +msgid "For this migration pgRouting supplies an auxiliary function for reversal of an array ``_pgr_array_reverse`` needed for the migration." msgstr "" -msgid "Use :doc:`pgr_withPointsVia` instead." +msgid "``_pgr_array_reverse``:" msgstr "" -msgid ":doc:`pgr_withPointsVia`:" +msgid "Was created temporally for this migration" msgstr "" -msgid "Migrating ``pgr_trspViaEdges`` using ``pgr_trspVia_withPoints``" +msgid "Is not documented." msgstr "" -msgid "Use :doc:`pgr_trspVia_withPoints` instead." +msgid "Will be removed on the next mayor version 4.0.0" msgstr "" -msgid ":doc:`pgr_trspVia_withPoints`:" +msgid "The migrated table contents:" msgstr "" msgid ":doc:`withPoints-category`" @@ -5929,9 +5656,6 @@ msgstr "" msgid "Parameters for the Via functions" msgstr "" -msgid ":doc:`pgr_dijkstraVia`" -msgstr "" - msgid "SQL query as described." msgstr "" @@ -5965,9 +5689,6 @@ msgstr "" msgid "For the TRSP functions" msgstr "" -msgid ":doc:`pgr_trsp`" -msgstr "" - msgid "Array of identifiers of destination vertices." msgstr "" @@ -6007,9 +5728,6 @@ msgstr "" msgid "Used in functions the following:" msgstr "" -msgid ":doc:`pgr_withPoints`" -msgstr "" - msgid "Returns set of ``(seq, path_seq [, start_pid] [, end_pid], node, edge, cost, agg_cost)``" msgstr "" @@ -6691,6 +6409,9 @@ msgstr "" msgid "|Boost| Boost Graph Inside" msgstr "" +msgid "Boost Graph inside" +msgstr "" + msgid "Signatures" msgstr "" @@ -6802,7 +6523,7 @@ msgstr "" msgid "``pgr_TSP``" msgstr "" -msgid "pgr_TSP`` - Aproximation using *metric* algorithm." +msgid "``pgr_TSP`` - Approximation using *metric* algorithm." msgstr "" msgid "Availability:" @@ -6979,7 +6700,10 @@ msgstr "" msgid "``pgr_TSPeuclidean``" msgstr "" -msgid "pgr_TSPeuclidean`` - Aproximation using *metric* algorithm." +msgid "``pgr_TSPeuclidean`` - Approximation using *metric* algorithm." +msgstr "" + +msgid "Using `Boost: metric TSP approx `__" msgstr "" msgid "The Simulated Annealing Algorithm related parameters are ignored: `max_processing_time`, `tries_per_temperature`, `max_changes_per_temperature`, `max_consecutive_non_changes`, `initial_temperature`, `final_temperature`, `cooling_factor`, `randomize`" @@ -7093,10 +6817,16 @@ msgstr "" msgid "Version 2.4.0" msgstr "" +msgid "pgr_aStar(One to Many)" +msgstr "" + +msgid "pgr_aStar(Many to One)" +msgstr "" + msgid "pgr_aStar(Many to Many)" msgstr "" -msgid "Signature change on pgr_astar(One to One)" +msgid "Signature change on pgr_aStar(One to One)" msgstr "" msgid "The results are equivalent to the union of the results of the `pgr_aStar(` `One to One`_ `)` on the:" @@ -7159,9 +6889,6 @@ msgstr "" msgid "Manually assigned vertex combinations." msgstr "" -msgid "https://www.boost.org/libs/graph/doc/astar_search.html" -msgstr "" - msgid "``pgr_aStarCost``" msgstr "" @@ -7282,6 +7009,9 @@ msgstr "" msgid "Renamed from version 1.x" msgstr "" +msgid "Support" +msgstr "" + msgid "Returns the polygon part of an alpha shape." msgstr "" @@ -7726,6 +7456,12 @@ msgstr "" msgid "pgr_bdAstar(Combinations)" msgstr "" +msgid "pgr_bdAstar(One to Many)" +msgstr "" + +msgid "pgr_bdAstar(Many to One)" +msgstr "" + msgid "pgr_bdAstar(Many to Many)" msgstr "" @@ -7750,9 +7486,6 @@ msgstr "" msgid "pgr_bdAstar(`Edges SQL`_, `Combinations SQL`_, [**options**])" msgstr "" -msgid "**options:** [directed, heuristic, factor, epsilon]``" -msgstr "" - msgid "``pgr_bdAstarCost``" msgstr "" @@ -7801,9 +7534,6 @@ msgstr "" msgid "pgr_bdDijkstra(Combinations)" msgstr "" -msgid "New Proposed signatures:" -msgstr "" - msgid "pgr_bdDijkstra(One to Many)" msgstr "" @@ -7966,7 +7696,7 @@ msgstr "" msgid "Using a combinations table on an **undirected** graph." msgstr "" -msgid "`Boost: Belman Ford `__" +msgid "`Boost: Bellman Ford `__" msgstr "" msgid "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm" @@ -7978,15 +7708,12 @@ msgstr "" msgid "``pgr_betweennessCentrality`` - Experimental" msgstr "" -msgid "``pgr_betweennessCentrality`` - Calculates the relative betweeness centrality using Brandes Algorithm" +msgid "``pgr_betweennessCentrality`` - Calculates the relative betweenness centrality using Brandes Algorithm" msgstr "" msgid "Version 3.7.0" msgstr "" -msgid "pgr_betweennessCentrality``" -msgstr "" - msgid "The Brandes Algorithm takes advantage of the sparse graphs for evaluating the betweenness centrality score of all vertices." msgstr "" @@ -8044,7 +7771,7 @@ msgstr "" msgid "Relative betweenness centrality score of the vertex (will be in range [0,1])" msgstr "" -msgid "`Boost: betweenness centrality `_" +msgid "`Boost: betweenness centrality `_" msgstr "" msgid "``pgr_biconnectedComponents``" @@ -8056,10 +7783,10 @@ msgstr "" msgid "Result columns change:" msgstr "" -msgid "n_seq`` is removed" +msgid "``n_seq`` is removed" msgstr "" -msgid "seq`` changed type to ``BIGINT``" +msgid "``seq`` changed type to ``BIGINT``" msgstr "" msgid "The biconnected components of an undirected graph are the maximal subsets of vertices such that the removal of a vertex from particular component will not disconnect the component. Unlike connected components, vertices may belong to multiple biconnected components. Vertices can be present in multiple biconnected components, but each edge can only be contained in a single biconnected component." @@ -8206,6 +7933,9 @@ msgstr "" msgid "Renamed from ``pgr_maxFlowBoykovKolmogorov``" msgstr "" +msgid "Function promoted to proposed." +msgstr "" + msgid "Running time: Polynomial" msgstr "" @@ -8269,7 +7999,7 @@ msgstr "" msgid "pgr_breadthFirstSearch(`Edges SQL`_, **root vids**, [**options**])" msgstr "" -msgid "**options:** [max_depth, directed]``" +msgid "**options:** ``[max_depth, directed]``" msgstr "" msgid "Returns set of |result-bfs|" @@ -8338,7 +8068,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Bridge_%28graph_theory%29" msgstr "" -msgid "`Boost: connected components `__" +msgid "`Boost: Connected components `__" msgstr "" msgid "``pgr_chinesePostman`` - Experimental" @@ -8422,9 +8152,6 @@ msgstr "" msgid "Connecting disconnected components" msgstr "" -msgid "`Boost: Connected components `__" -msgstr "" - msgid "wikipedia: `Connected component `__" msgstr "" @@ -8437,6 +8164,9 @@ msgstr "" msgid "Name change from ``pgr_contractGraph``" msgstr "" +msgid "Bug fixes" +msgstr "" + msgid "Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms." msgstr "" @@ -9148,6 +8878,12 @@ msgstr "" msgid "Version 2.2.0" msgstr "" +msgid "pgr_dijkstra(One to Many)" +msgstr "" + +msgid "pgr_dijkstra(Many to One)" +msgstr "" + msgid "pgr_dijkstra(Many to Many)" msgstr "" @@ -9724,6 +9460,9 @@ msgstr "" msgid "``pgr_drivingDistance`` - Returns the driving distance from a start node." msgstr "" +msgid "Standarizing output columns to |result-spantree|" +msgstr "" + msgid "Added ``depth`` and ``start_vid`` result columns." msgstr "" @@ -10102,7 +9841,7 @@ msgstr "" msgid "The code to do the calculations can be obtained for further specific adjustments needed by the application." msgstr "" -msgid "EMTPY SET`` is returned on dryrun executions" +msgid "``EMTPY SET`` is returned on dryrun executions" msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**])" @@ -10111,7 +9850,7 @@ msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**])" msgstr "" -msgid "**options:** [cap, partial, dryrun]``" +msgid "**options:** ``[cap, partial, dryrun]``" msgstr "" msgid "Returns set of |result-find|" @@ -10120,6 +9859,9 @@ msgstr "" msgid "One point" msgstr "" +msgid "**options:** [cap, partial, dryrun]``" +msgstr "" + msgid "Default: ``cap => 1``" msgstr "" @@ -10150,9 +9892,6 @@ msgstr "" msgid "Many points" msgstr "" -msgid "**options:** ``[cap, partial, dryrun]``" -msgstr "" - msgid "Find at most :math:`2` edges close to all vertices on the points of interest table." msgstr "" @@ -10561,10 +10300,10 @@ msgstr "" msgid "Git hash of pgRouting build" msgstr "" -msgid "``pgr_hawickCircuits - Experimental``" +msgid "``pgr_hawickCircuits`` - Experimental" msgstr "" -msgid "``pgr_hawickCircuits`` — Returns the list of cirucits using hawick circuits algorithm." +msgid "``pgr_hawickCircuits`` — Returns the list of ciruits using hawick circuits algorithm." msgstr "" msgid "Hawick Circuit algorithm, is published in 2008 by Ken Hawick and Health A. James. This algorithm solves the problem of detecting and enumerating circuits in graphs. It is capable of circuit enumeration in graphs with directed-arcs, multiple-arcs and self-arcs with a memory efficient and high-performance im-plementation. It is an extension of Johnson's Algorithm of finding all the elementary circuits of a directed graph." @@ -10705,6 +10444,9 @@ msgstr "" msgid "``pgr_kruskalBFS`` — Kruskal's algorithm for Minimum Spanning Tree with breadth First Search ordering." msgstr "" +msgid "Added ``pred`` result columns." +msgstr "" + msgid "Visits and extracts the nodes information in Breath First Search ordering of the Minimum Spanning Tree created using Kruskal's algorithm." msgstr "" @@ -10765,7 +10507,7 @@ msgstr "" msgid "pgr_kruskalDFS(`Edges SQL`_, **root vids**, [``max_depth``])" msgstr "" -msgid "``pgr_lengauerTarjanDominatorTree`` -Experimental" +msgid "``pgr_lengauerTarjanDominatorTree`` - Experimental" msgstr "" msgid "``pgr_lengauerTarjanDominatorTree`` — Returns the immediate dominator of all vertices." @@ -10828,6 +10570,9 @@ msgstr "" msgid "``pgr_lineGraph`` — Transforms the given graph into its corresponding edge-based graph." msgstr "" +msgid "Works for directed and undirected graphs." +msgstr "" + msgid "Given a graph :math:`G`, its line graph :math:`L(G)` is a graph such that:" msgstr "" @@ -11038,7 +10783,7 @@ msgstr "" msgid "Full line graph of subgraph of edges :math:`\\{4, 7, 8, 10\\}`" msgstr "" -msgid "The examples of this section are based on the :doc:`sampledata` The examples include the subgraph including edges 4, 7, 8, and 10 with ``reverse_cost``." +msgid "The examples include the subgraph including edges 4, 7, 8, and 10 with ``reverse_cost``." msgstr "" msgid "The data" @@ -11227,13 +10972,16 @@ msgstr "" msgid "``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a graph." msgstr "" +msgid "pgr_maxCardinalityMatch(text) returns only ``edge`` column." +msgstr "" + msgid "Deprecated signature" msgstr "" -msgid "pgr_maxCardinalityMatch(text,boolean)``" +msgid "pgr_maxCardinalityMatch(text,boolean)" msgstr "" -msgid "directed => false`` when used." +msgid "directed => ``false`` when used." msgstr "" msgid "Renamed from ``pgr_maximumCardinalityMatching``" @@ -12025,12 +11773,6 @@ msgstr "" msgid "``pgr_strongComponents`` — Strongly connected components of a directed graph using Tarjan's algorithm based on DFS." msgstr "" -msgid "``n_seq`` is removed" -msgstr "" - -msgid "``seq`` changed type to ``BIGINT``" -msgstr "" - msgid "A strongly connected component of a directed graph is a set of vertices that are all reachable from each other." msgstr "" @@ -12184,25 +11926,25 @@ msgstr "" msgid "Deprecated signatures" msgstr "" -msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)" msgstr "" -msgid "pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)``" +msgid "pgr_trsp(text,integer,float,integer,float,boolean,boolean,text)" msgstr "" -msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)``" +msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)" msgstr "" -msgid "pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)``" +msgid "pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)" msgstr "" msgid "New prototypes" msgstr "" -msgid "pgr_trspViaVertices``" +msgid "pgr_trspViaVertices" msgstr "" -msgid "pgr_trspViaEdges``" +msgid "pgr_trspViaEdges" msgstr "" msgid "Turn restricted shortest path (TRSP) is an algorithm that receives turn restrictions in form of a query like those found in real world navigable road networks." @@ -12262,9 +12004,6 @@ msgstr "" msgid "``pgr_trspVia`` Route that goes through a list of vertices with restrictions." msgstr "" -msgid "pgr_trspVia(One Via)" -msgstr "" - msgid "Given a list of vertices and a graph, this function is equivalent to finding the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :math:`i < size\\_of(via\\;vertices)` trying not to use restricted paths." msgstr "" @@ -12970,7 +12709,7 @@ msgstr "" msgid ":doc:`pgr_alphaShape`" msgstr "" -msgid "pgr_withPointsKSP - Proposed" +msgid "``pgr_withPointsKSP`` - Proposed" msgstr "" msgid "``pgr_withPointsKSP`` — Yen's algorithm for K shortest paths using Dijkstra." @@ -12979,6 +12718,9 @@ msgstr "" msgid "Standarizing output columns to |nksp-result|" msgstr "" +msgid "pgr_withPointsKSP(One to One)" +msgstr "" + msgid "pgr_withPointsKSP(One to Many)" msgstr "" @@ -13150,15 +12892,6 @@ msgstr "" msgid ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." msgstr "" -msgid ":doc:`pgr_withPointsVia`" -msgstr "" - -msgid ":doc:`pgr_trspVia`" -msgstr "" - -msgid ":doc:`pgr_trspVia_withPoints`" -msgstr "" - msgid ":doc:`withPoints-family` - Functions based on Dijkstra algorithm." msgstr "" @@ -13189,9 +12922,117 @@ msgstr "" msgid "Minors 3.x" msgstr "" +msgid "pgRouting 3.8" +msgstr "" + msgid "pgRouting 3.7" msgstr "" +msgid "pgRouting 3.7.3 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.3 `__" +msgstr "" + +msgid "`#2731 `__ Build Failure on Ubuntu 22" +msgstr "" + +msgid "pgRouting 3.7.2 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.2 `__" +msgstr "" + +msgid "Build" +msgstr "" + +msgid "`#2713 `__ cmake missing some policies and min version" +msgstr "" + +msgid "Using OLD policies: CMP0148, CMP0144, CMP0167" +msgstr "" + +msgid "Minimum cmake version 3.12" +msgstr "" + +msgid "`#2707 `__ Build failure in pgRouting 3.7.1 on Alpine" +msgstr "" + +msgid "`#2706 `__ winnie crashing on pgr_betweennessCentrality" +msgstr "" + +msgid "pgRouting 3.7.1 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.1 `__" +msgstr "" + +msgid "`#2680 `__ fails to compile under mingw64 gcc 13.2" +msgstr "" + +msgid "`#2689 `__ When point is a vertex, the withPoints family do not return results." +msgstr "" + +msgid "C/C++ code enhancemet" +msgstr "" + +msgid "TRSP family" +msgstr "" + +msgid "pgRouting 3.7.0 Release Notes" +msgstr "" + +msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.7.0 `__" +msgstr "" + +msgid "`#2656 `__ Stop support of PostgreSQL12 on pgrouting v3.7" +msgstr "" + +msgid "Stopping support of PostgreSQL 12" +msgstr "" + +msgid "CI does not test for PostgreSQL 12" +msgstr "" + +msgid "New experimental functions" +msgstr "" + +msgid "Metrics" +msgstr "" + +msgid "pgr_betweennessCentrality" +msgstr "" + +msgid "Official functions changes" +msgstr "" + +msgid "`#2605 `__ Standarize spanning tree functions output" +msgstr "" + +msgid "Functions:" +msgstr "" + +msgid "Experimental promoted to proposed." +msgstr "" + +msgid "`#2635 `__ pgr_LineGraph ignores directed flag and use negative values for identifiers." +msgstr "" + +msgid "``pgr_lineGraph``" +msgstr "" + +msgid "Code enhancement" +msgstr "" + +msgid "`#2599 `__ Driving distance cleanup" +msgstr "" + +msgid "`#2607 `__ Read postgresql data on C++" +msgstr "" + +msgid "`#2614 `__ Clang tidy does not work" +msgstr "" + msgid "pgRouting 3.6" msgstr "" @@ -13297,7 +13138,7 @@ msgstr "" msgid "`#2547 `__ Standarize output and modifying signature pgr_KSP" msgstr "" -msgid "`#2548 `__ Standarize output pgr_drivingdistance" +msgid "`#2548 `__ Standarize output pgr_drivingDistance" msgstr "" msgid "Proposed functions changes" @@ -13462,6 +13303,9 @@ msgstr "" msgid "Via with turn restrictions" msgstr "" +msgid "pgr_trspVia(One Via)" +msgstr "" + msgid "pgr_trspVia_withPoints(One Via)" msgstr "" @@ -13513,24 +13357,18 @@ msgstr "" msgid "Flow functions" msgstr "" -msgid "pgr_maxCardinalityMatch(text)``" +msgid "pgr_maxCardinalityMatch(text)" msgstr "" -msgid "Deprecating ``pgr_maxCardinalityMatch(text,boolean)``" +msgid "Deprecating: pgr_maxCardinalityMatch(text,boolean)" msgstr "" msgid "Deprecated Functions" msgstr "" -msgid "pgr_trsp(text,integer,integer,boolean,boolean,text)" -msgstr "" - msgid "pgr_trsp(text,integer,float8,integer,float8,boolean,boolean,text)" msgstr "" -msgid "pgr_trspViaVertices(text,anyarray,boolean,boolean,text)" -msgstr "" - msgid "pgr_trspViaEdges(text,integer[],float[],boolean,boolean,text)" msgstr "" @@ -13555,9 +13393,6 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.3.3 `_" msgstr "" -msgid "pgr_maxCardinalityMatch(text,boolean)" -msgstr "" - msgid "Ignoring optional boolean parameter, as the algorithm works only for undirected graphs." msgstr "" @@ -13924,7 +13759,7 @@ msgstr "" msgid "`#1006 `__: No loss of information" msgstr "" -msgid "New functions" +msgid "New Functions" msgstr "" msgid "Kruskal family" @@ -13963,148 +13798,94 @@ msgstr "" msgid "aStar Family" msgstr "" -msgid "pgr_aStar(one to many)" -msgstr "" - -msgid "pgr_aStar(many to one)" -msgstr "" - -msgid "pgr_aStar(many to many)" -msgstr "" - -msgid "pgr_aStarCost(one to one)" -msgstr "" - -msgid "pgr_aStarCost(one to many)" -msgstr "" - -msgid "pgr_aStarCost(many to one)" -msgstr "" - -msgid "pgr_aStarCost(many to many)" +msgid "pgr_aStarCost(One to One)" msgstr "" -msgid "pgr_aStarCostMatrix(one to one)" +msgid "pgr_aStarCost(One to Many)" msgstr "" -msgid "pgr_aStarCostMatrix(one to many)" +msgid "pgr_aStarCost(Many to One)" msgstr "" -msgid "pgr_aStarCostMatrix(many to one)" +msgid "pgr_aStarCost(Many to Many)" msgstr "" -msgid "pgr_aStarCostMatrix(many to many)" +msgid "pgr_aStarCostMatrix" msgstr "" msgid "bdAstar Family" msgstr "" -msgid "pgr_bdAstar(one to many)" -msgstr "" - -msgid "pgr_bdAstar(many to one)" -msgstr "" - -msgid "pgr_bdAstar(many to many)" -msgstr "" - -msgid "pgr_bdAstarCost(one to one)" -msgstr "" - -msgid "pgr_bdAstarCost(one to many)" -msgstr "" - -msgid "pgr_bdAstarCost(many to one)" -msgstr "" - -msgid "pgr_bdAstarCost(many to many)" +msgid "pgr_bdAstarCost(One to One)" msgstr "" -msgid "pgr_bdAstarCostMatrix(one to one)" +msgid "pgr_bdAstarCost(One to Many)" msgstr "" -msgid "pgr_bdAstarCostMatrix(one to many)" +msgid "pgr_bdAstarCost(Many to One)" msgstr "" -msgid "pgr_bdAstarCostMatrix(many to one)" +msgid "pgr_bdAstarCost(Many to Many)" msgstr "" -msgid "pgr_bdAstarCostMatrix(many to many)" +msgid "pgr_bdAstarCostMatrix" msgstr "" msgid "bdDijkstra Family" msgstr "" -msgid "pgr_bdDijkstra(one to many)" -msgstr "" - -msgid "pgr_bdDijkstra(many to one)" -msgstr "" - -msgid "pgr_bdDijkstra(many to many)" +msgid "pgr_bdDijkstraCost(One to One)" msgstr "" -msgid "pgr_bdDijkstraCost(one to one)" +msgid "pgr_bdDijkstraCost(One to Many)" msgstr "" -msgid "pgr_bdDijkstraCost(one to many)" +msgid "pgr_bdDijkstraCost(Many to One)" msgstr "" -msgid "pgr_bdDijkstraCost(many to one)" +msgid "pgr_bdDijkstraCost(Many to Many)" msgstr "" -msgid "pgr_bdDijkstraCost(many to many)" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix(one to one)" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix(one to many)" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix(many to one)" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix(many to many)" +msgid "pgr_bdDijkstraCostMatrix" msgstr "" msgid "Flow Family" msgstr "" -msgid "pgr_pushRelabel(one to one)" +msgid "pgr_pushRelabel(One to One)" msgstr "" -msgid "pgr_pushRelabel(one to many)" +msgid "pgr_pushRelabel(One to Many)" msgstr "" -msgid "pgr_pushRelabel(many to one)" +msgid "pgr_pushRelabel(Many to One)" msgstr "" -msgid "pgr_pushRelabel(many to many)" +msgid "pgr_pushRelabel(Many to Many)" msgstr "" -msgid "pgr_edmondsKarp(one to one)" +msgid "pgr_edmondsKarp(One to One)" msgstr "" -msgid "pgr_edmondsKarp(one to many)" +msgid "pgr_edmondsKarp(One to Many)" msgstr "" -msgid "pgr_edmondsKarp(many to one)" +msgid "pgr_edmondsKarp(Many to One)" msgstr "" -msgid "pgr_edmondsKarp(many to many)" +msgid "pgr_edmondsKarp(Many to Many)" msgstr "" -msgid "pgr_boykovKolmogorov (one to one)" +msgid "pgr_boykovKolmogorov (One to One)" msgstr "" -msgid "pgr_boykovKolmogorov (one to many)" +msgid "pgr_boykovKolmogorov (One to Many)" msgstr "" -msgid "pgr_boykovKolmogorov (many to one)" +msgid "pgr_boykovKolmogorov (Many to One)" msgstr "" -msgid "pgr_boykovKolmogorov (many to many)" +msgid "pgr_boykovKolmogorov (Many to Many)" msgstr "" msgid "pgr_maxCardinalityMatching" @@ -14113,16 +13894,16 @@ msgstr "" msgid "pgr_maxFlow" msgstr "" -msgid "pgr_edgeDisjointPaths(one to one)" +msgid "pgr_edgeDisjointPaths(One to One)" msgstr "" -msgid "pgr_edgeDisjointPaths(one to many)" +msgid "pgr_edgeDisjointPaths(One to Many)" msgstr "" -msgid "pgr_edgeDisjointPaths(many to one)" +msgid "pgr_edgeDisjointPaths(Many to One)" msgstr "" -msgid "pgr_edgeDisjointPaths(many to many)" +msgid "pgr_edgeDisjointPaths(Many to Many)" msgstr "" msgid "Components family" @@ -14296,7 +14077,7 @@ msgstr "" msgid "pgr_johnson" msgstr "" -msgid "pgr_astar" +msgid "pgr_aStar" msgstr "" msgid "pgr_bdAstar" @@ -14491,19 +14272,13 @@ msgstr "" msgid "Parameter names changed" msgstr "" -msgid "The many version results are the union of the one to one version" +msgid "The many version results are the union of the One to One version" msgstr "" msgid "New Signatures" msgstr "" -msgid "pgr_bdAstar(one to one)" -msgstr "" - -msgid "pgr_bdAstarCostMatrix" -msgstr "" - -msgid "pgr_bdDijkstraCostMatrix" +msgid "pgr_bdAstar(One to One)" msgstr "" msgid "pgr_lineGraph" @@ -14572,36 +14347,9 @@ msgstr "" msgid "To see the issues closed by this release see the `Git closed issues for 2.4.0 `_ on Github." msgstr "" -msgid "New Function." -msgstr "" - msgid "pgr_bdDijkstra" msgstr "" -msgid "pgr_astar(one to many)" -msgstr "" - -msgid "pgr_astar(many to one)" -msgstr "" - -msgid "pgr_astar(many to many)" -msgstr "" - -msgid "pgr_astarCost(one to one)" -msgstr "" - -msgid "pgr_astarCost(one to many)" -msgstr "" - -msgid "pgr_astarCost(many to one)" -msgstr "" - -msgid "pgr_astarCost(many to many)" -msgstr "" - -msgid "pgr_astarCostMatrix" -msgstr "" - msgid "Deprecated signatures." msgstr "" @@ -14665,52 +14413,46 @@ msgstr "" msgid "pgr_TSP" msgstr "" -msgid "pgr_aStar" -msgstr "" - -msgid "New Functions" -msgstr "" - msgid "pgr_eucledianTSP" msgstr "" msgid "pgr_withPointsCostMatrix" msgstr "" -msgid "pgr_maxFlowPushRelabel(one to one)" +msgid "pgr_maxFlowPushRelabel(One to One)" msgstr "" -msgid "pgr_maxFlowPushRelabel(one to many)" +msgid "pgr_maxFlowPushRelabel(One to Many)" msgstr "" -msgid "pgr_maxFlowPushRelabel(many to one)" +msgid "pgr_maxFlowPushRelabel(Many to One)" msgstr "" -msgid "pgr_maxFlowPushRelabel(many to many)" +msgid "pgr_maxFlowPushRelabel(Many to Many)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(one to one)" +msgid "pgr_maxFlowEdmondsKarp(One to One)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(one to many)" +msgid "pgr_maxFlowEdmondsKarp(One to Many)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(many to one)" +msgid "pgr_maxFlowEdmondsKarp(Many to One)" msgstr "" -msgid "pgr_maxFlowEdmondsKarp(many to many)" +msgid "pgr_maxFlowEdmondsKarp(Many to Many)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (one to one)" +msgid "pgr_maxFlowBoykovKolmogorov (One to One)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (one to many)" +msgid "pgr_maxFlowBoykovKolmogorov (One to Many)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (many to one)" +msgid "pgr_maxFlowBoykovKolmogorov (Many to One)" msgstr "" -msgid "pgr_maxFlowBoykovKolmogorov (many to many)" +msgid "pgr_maxFlowBoykovKolmogorov (Many to Many)" msgstr "" msgid "pgr_maximumCardinalityMatching" @@ -14722,7 +14464,7 @@ msgstr "" msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead" msgstr "" -msgid "pgr_astar - use pgr_aStar instead" +msgid "pgr_aStar - use pgr_aStar instead" msgstr "" msgid "pgr_flip_edges" @@ -14809,43 +14551,43 @@ msgstr "" msgid "pgr_Johnson" msgstr "" -msgid "pgr_dijkstraCost(one to one)" +msgid "pgr_dijkstraCost(One to One)" msgstr "" -msgid "pgr_dijkstraCost(one to many)" +msgid "pgr_dijkstraCost(One to Many)" msgstr "" -msgid "pgr_dijkstraCost(many to one)" +msgid "pgr_dijkstraCost(Many to One)" msgstr "" -msgid "pgr_dijkstraCost(many to many)" +msgid "pgr_dijkstraCost(Many to Many)" msgstr "" msgid "Proposed Functionality" msgstr "" -msgid "pgr_withPoints(one to one)" +msgid "pgr_withPoints(One to One)" msgstr "" -msgid "pgr_withPoints(one to many)" +msgid "pgr_withPoints(One to Many)" msgstr "" -msgid "pgr_withPoints(many to one)" +msgid "pgr_withPoints(Many to One)" msgstr "" -msgid "pgr_withPoints(many to many)" +msgid "pgr_withPoints(Many to Many)" msgstr "" -msgid "pgr_withPointsCost(one to one)" +msgid "pgr_withPointsCost(One to One)" msgstr "" -msgid "pgr_withPointsCost(one to many)" +msgid "pgr_withPointsCost(One to Many)" msgstr "" -msgid "pgr_withPointsCost(many to one)" +msgid "pgr_withPointsCost(Many to One)" msgstr "" -msgid "pgr_withPointsCost(many to many)" +msgid "pgr_withPointsCost(Many to Many)" msgstr "" msgid "pgr_withPointsDD(single vertex)" @@ -14887,19 +14629,10 @@ msgstr "" msgid "To see the issues closed by this release see the `Git closed issues for 2.1.0 `_ on Github." msgstr "" -msgid "pgr_dijkstra(one to many)" -msgstr "" - -msgid "pgr_dijkstra(many to one)" -msgstr "" - -msgid "pgr_dijkstra(many to many)" -msgstr "" - msgid "Refactored" msgstr "" -msgid "pgr_dijkstra(one to one)" +msgid "pgr_dijkstra(One to One)" msgstr "" msgid "pgr_alphaShape function now can generate better (multi)polygon with holes and alpha parameter." From a5196af846ccdf9bff17915f65e675f5ee37f421 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 16 Feb 2025 13:39:46 -0600 Subject: [PATCH 087/141] Adjusting page_history.js fixed logic to have shorter array of renames --- doc/_static/page_history.js | 321 ++++++++++++++---------------------- 1 file changed, 126 insertions(+), 195 deletions(-) diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js index 7ca90a091a..a5844cb439 100644 --- a/doc/_static/page_history.js +++ b/doc/_static/page_history.js @@ -1,7 +1,8 @@ -function createInfo(file, newat, altnames = '') { +function createInfo(file, newat, altnames = '', removedat = '') { this.file = file; this.newat = newat; this.altnames = altnames; + this.removedat = removedat; } const versionsArr = ['3.8','3.7', '3.6', '3.5', '3.4', '3.3', '3.2', '3.1', '3.0']; @@ -18,7 +19,7 @@ var newpages = [ {v: '3.4', pages: ['TRSP-family', 'pgr_withPointsVia', 'pgr_trsp_withPoints', 'pgr_trspVia_withPoints', 'pgr_trspVia', 'pgr_hawickCircuits', 'pgr_findCloseEdges', 'pgr_cuthillMckeeOrdering', 'ordering-family', - 'migration']}, + 'migration', 'pgr_degree']}, {v: '3.3', pages: ['withPoints-category', 'via-category', 'reference', 'pgr_edgeColoring', 'DFS-category', 'BFS-category']}, @@ -46,276 +47,219 @@ var newpages = [ var filesArr = [ + new createInfo('spanningTree-category', '3.0', [ + { v: '3.7', n: 'spanningTree-family'}, + ]), + + /* Documentation from version 2.3 */ new createInfo('TSP-family', '2.3', [ - { v: '2.3', n: 'tsp', d: 'tsp'}, + { v: '2.3', n: 'src/tsp/doc/tsp', d: 'tsp'}, ]), + new createInfo('pgr_withPointsCostMatrix', '2.3', [ - { v: '2.3', n: 'pgr_withPointsCostMatrix', d: 'costMatrix'}, + { v: '2.3', n: 'src/costMatrix/doc/pgr_withPointsCostMatrix'}, ]), + new createInfo('pgr_maxCardinalityMatch', '2.3', [ - { v: '2.3', n: 'pgr_maximumCardinalityMatching', d: 'max_flow'}, - { v: '2.4', n: 'pgr_maximumCardinalityMatching', d: ''}, + { v: '2.3', n: 'src/max_flow/doc/pgr_maximumCardinalityMatching'}, + { v: '2.4', n: 'pgr_maximumCardinalityMatching'}, ]), new createInfo('pgr_pushRelabel', '2.3', [ - { v: '2.3', n: 'pgr_maxFlowPushRelabel', d: 'max_flow'}, - { v: '2.4', n: 'pgr_maxFlowPushRelabel', d: ''}, + { v: '2.3', n: 'src/max_flow/doc/pgr_maxFlowPushRelabel'}, + { v: '2.4', n: 'pgr_maxFlowPushRelabel'}, ]), new createInfo('pgr_edmondsKarp', '2.3', [ - { v: '2.3', n: 'pgr_maxFlowEdmondsKarp', d: 'max_flow'}, - { v: '2.4', n: 'pgr_maxFlowEdmondsKarp', d: ''}, + { v: '2.3', n: 'src/max_flow/doc/pgr_maxFlowEdmondsKarp'}, + { v: '2.4', n: 'pgr_maxFlowEdmondsKarp'}, ]), new createInfo('pgr_boykovKolmogorov', '2.3', [ - { v: '2.3', n: 'pgr_maxFlowBoykovKolmogorov', d: 'max_flow'}, - { v: '2.4', n: 'pgr_maxFlowBoykovKolmogorov', d: ''}, + { v: '2.3', n: 'src/max_flow/doc/pgr_maxFlowBoykovKolmogorov'}, + { v: '2.4', n: 'pgr_maxFlowBoykovKolmogorov'}, ]), new createInfo('pgr_TSPeuclidean', '2.3', [ - { v: '2.3', n: 'pgr_eucledianTSP', d: 'tsp'}, - { v: '2.4', n: 'pgr_eucledianTSP', d: ''}, - { v: '2.5', n: 'pgr_eucledianTSP', d: ''}, - { v: '2.6', n: 'pgr_eucledianTSP', d: ''}, + { v: '2.3', n: 'src/tsp/doc/pgr_eucledianTSP'}, + { v: '2.6', n: 'pgr_eucledianTSP'}, ]), new createInfo('pgr_edgeDisjointPaths', '2.3', [ - { v: '2.3', n: 'pgr_edgeDisjointPaths', d: 'max_flow'}, + { v: '2.3', n: 'src/max_flow/doc/pgr_edgeDisjointPaths'}, ]), new createInfo('pgr_dijkstraCostMatrix', '2.3', [ - { v: '2.3', n: 'pgr_dijkstraCostMatrix', d: 'costMatrix'}, + { v: '2.3', n: 'src/costMatrix/doc/pgr_dijkstraCostMatrix'}, ]), new createInfo('pgr_contraction', '2.3', [ - { v: '2.3', n: 'pgr_contractGraph', d: 'contraction'}, - { v: '2.4', n: 'pgr_contractGraph', d: ''}, - { v: '2.5', n: 'pgr_contractGraph', d: ''}, - { v: '2.6', n: 'pgr_contractGraph', d: ''}, + { v: '2.3', n: 'src/contraction/doc/pgr_contractGraph'}, + { v: '2.6', n: 'pgr_contractGraph'}, ]), new createInfo('flow-family', '2.3', [ - { v: '2.3', n: 'maxFlow', d: 'max_flow'}, + { v: '2.3', n: 'src/max_flow/doc/maxFlow'}, ]), + + /* Documentation from version 2.2 */ new createInfo('withPoints-family', '2.2', [ - { v: '2.2', n: 'withPoints', d: 'withPoints'}, - { v: '2.3', n: 'withPoints', d: 'withPoints'}, + { v: '2.3', n: 'src/withPoints/doc/withPoints'}, ]), new createInfo('withPoints-family', '2.2', [ - { v: '2.2', n: 'withPoints', d: 'withPoints'}, - { v: '2.3', n: 'withPoints', d: 'withPoints'}, + { v: '2.3', n: 'src/withPoints/doc/withPoints'}, ]), new createInfo('experimental', '2.2', [ - { v: '2.2', n: 'src/proposed', d: ''}, - { v: '2.3', n: 'src/proposed', d: ''}, - { v: '2.4', n: 'proposed', d: ''}, - { v: '2.5', n: 'proposed', d: ''}, - { v: '2.6', n: 'proposed', d: ''}, + { v: '2.2', n: 'src/proposed'}, + { v: '2.3', n: 'src/proposed'}, + { v: '2.4', n: 'proposed'}, + { v: '2.5', n: 'proposed'}, + { v: '2.6', n: 'proposed'}, ]), new createInfo('proposed', '2.2', [ - { v: '2.2', n: 'src/proposed', d: ''}, - { v: '2.3', n: 'src/proposed', d: ''}, + { v: '2.2', n: 'src/proposed'}, + { v: '2.3', n: 'src/proposed'}, ]), new createInfo('pgr_withPointsKSP', '2.2', [ - { v: '2.2', n: 'pgr_withPointsKSP', d: 'withPoints'}, - { v: '2.3', n: 'pgr_withPointsKSP', d: 'withPoints'}, + { v: '2.3', n: 'src/withPoints/doc/pgr_withPointsKSP'}, ]), new createInfo('pgr_withPoints', '2.2', [ - { v: '2.2', n: 'pgr_withPoints', d: 'withPoints'}, - { v: '2.3', n: 'pgr_withPoints', d: 'withPoints'}, + { v: '2.3', n: 'src/withPoints/doc/pgr_withPoints'}, ]), new createInfo('pgr_withPointsDD', '2.2', [ - { v: '2.2', n: 'pgr_withPointsDD', d: 'withPoints'}, - { v: '2.3', n: 'pgr_withPointsDD', d: 'withPoints'}, + { v: '2.3', n: 'src/withPoints/doc/pgr_withPointsDD'}, ]), new createInfo('pgr_withPointsCost', '2.2', [ - { v: '2.2', n: 'pgr_withPointsCost', d: 'withPoints'}, - { v: '2.3', n: 'pgr_withPointsCost', d: 'withPoints'}, + { v: '2.3', n: 'src/withPoints/doc/pgr_withPointsCost'}, ]), new createInfo('pgr_withPointsCost', '2.2', [ - { v: '2.2', n: 'pgr_withPointsCost', d: 'withPoints'}, - { v: '2.3', n: 'pgr_withPointsCost', d: 'withPoints'}, + { v: '2.3', n: 'src/withPoints/doc/pgr_withPointsCost'}, ]), new createInfo('pgr_dijkstraVia', '2.2', [ - { v: '2.2', n: 'pgr_dijkstraVia', d: 'dijkstra'}, - { v: '2.3', n: 'pgr_dijkstraVia', d: 'dijkstra'}, + { v: '2.3', n: 'src/dijkstra/doc/pgr_dijkstraVia'}, ]), new createInfo('pgr_dijkstraCost', '2.2', [ - { v: '2.2', n: 'pgr_dijkstraCost', d: 'dijkstra'}, - { v: '2.3', n: 'pgr_dijkstraCost', d: 'dijkstra'}, + { v: '2.3', n: 'src/dijkstra/doc/pgr_dijkstraCost'}, ]), new createInfo('dijkstra-family', '2.2', [ - { v: '2.2', n: 'dijkstra', d: 'dijkstra'}, - { v: '2.3', n: 'dijkstra', d: 'dijkstra'}, + { v: '2.3', n: 'src/dijkstra/doc/dijkstra'}, ]), new createInfo('contraction-family', '2.2', [ - { v: '2.2', n: 'contraction', d: 'contraction'}, - { v: '2.3', n: 'contraction', d: 'contraction'}, + { v: '2.3', n: 'src/contraction/doc/contraction'}, ]), new createInfo('allpairs-family', '2.2', [ - { v: '2.2', n: 'allpairs', d: 'allpairs'}, - { v: '2.3', n: 'allpairs', d: 'allpairs'}, + { v: '2.3', n: 'src/allpairs/doc/allpairs'}, ]), + + /* Documentation from version 2.1 */ new createInfo('pgr_pickDeliverEuclidean', '2.1', [ - { v: '2.1', n: 'index', d: 'vrppdtw'}, - { v: '2.2', n: 'index', d: 'vrppdtw'}, - { v: '2.3', n: 'pgr_gsoc_vrppdtw', d: 'vrppdtw'}, - { v: '2.4', n: 'pgr_gsoc_vrppdtw', d: ''}, - { v: '2.5', n: 'pgr_gsoc_vrppdtw', d: ''}, - { v: '2.6', n: 'pgr_gsoc_vrppdtw', d: ''}, + { v: '2.2', n: 'src/vrppdtw/doc/index'}, + { v: '2.3', n: 'src/vrppdtw/doc/pgr_gsoc_vrppdtw'}, + { v: '2.6', n: 'pgr_gsoc_vrppdtw'}, ]), new createInfo('pgr_vrpOneDepot', '2.1', [ - { v: '2.1', n: 'index', d: 'vrp_basic'}, - { v: '2.2', n: 'pgr_vrpOneDepot', d: 'vrp_basic'}, - { v: '2.3', n: 'pgr_vrpOneDepot', d: 'vrp_basic'}, + { v: '2.1', n: 'src/vrp_basic/doc/index'}, + { v: '2.3', n: 'src/vrp_basic/doc/pgr_vrpOneDepot'}, ]), + + /* Documentation from version 2.0 */ new createInfo('pgr_version', '2.0', [ - { v: '2.0', n: 'utilities/version', d: 'common'}, - { v: '2.1', n: 'utilities/version', d: 'common'}, - { v: '2.2', n: 'pgr_version', d: 'common'}, - { v: '2.3', n: 'pgr_version', d: 'common'}, + { v: '2.1', n: 'src/common/doc/utilities/version'}, + { v: '2.3', n: 'src/common/doc/pgr_version'}, ]), new createInfo('routingFunctions', '2.0', [ - { v: '2.0', n: 'src/index', d: ''}, - { v: '2.1', n: 'src/index', d: ''}, - { v: '2.2', n: 'src/routingFunctions', d: ''}, - { v: '2.3', n: 'src/routingFunctions', d: ''}, + { v: '2.1', n: 'src/index'}, + { v: '2.3', n: 'src/routingFunctions'}, ]), new createInfo('index', '2.0', [ - { v: '2.0', n: 'index', d: ''}, - { v: '2.1', n: 'index', d: ''}, - { v: '2.2', n: 'index', d: ''}, - { v: '2.3', n: 'index', d: ''}, + { v: '2.3', n: 'doc/index'}, ]), new createInfo('pgr_TSP', '2.0', [ - { v: '2.0', n: 'index', d: 'tsp'}, - { v: '2.1', n: 'index', d: 'tsp'}, - { v: '2.2', n: 'pgr_tsp', d: 'tsp'}, - { v: '2.3', n: 'pgr_tsp', d: 'tsp'}, + { v: '2.1', n: 'src/tsp/doc/index'}, + { v: '2.3', n: 'src/tsp/doc/pgr_tsp'}, ]), new createInfo('pgr_trsp', '2.0', [ - { v: '2.0', n: 'index', d: 'trsp'}, - { v: '2.1', n: 'index', d: 'trsp'}, - { v: '2.2', n: 'pgr_trsp', d: 'trsp'}, - { v: '2.3', n: 'pgr_trsp', d: 'trsp'} + { v: '2.1', n: 'src/trsp/doc/index'}, + { v: '2.3', n: 'src/trsp/doc/pgr_trsp'} ]), new createInfo('pgr_KSP', '2.0', [ - { v: '2.0', n: 'index', d: 'ksp'}, - { v: '2.1', n: 'index', d: 'ksp'}, - { v: '2.2', n: 'pgr_ksp', d: 'ksp'}, - { v: '2.3', n: 'pgr_ksp', d: 'ksp'}, + { v: '2.0', n: 'src/ksp/doc/index'}, + { v: '2.1', n: 'src/ksp/doc/ksp_v3'}, + { v: '2.3', n: 'src/ksp/doc/pgr_ksp'}, ]), new createInfo('pgr_dijkstra', '2.0', [ - { v: '2.0', n: 'index', d: 'dijkstra'}, - { v: '2.1', n: 'index', d: 'dijkstra'}, - { v: '2.2', n: 'pgr_dijkstra', d: 'dijkstra'}, - { v: '2.3', n: 'pgr_dijkstra', d: 'dijkstra'} + { v: '2.0', n: 'src/dijkstra/doc/index'}, + { v: '2.1', n: 'src/dijkstra/doc/dijkstra_v3'}, + { v: '2.3', n: 'src/dijkstra/doc/pgr_dijkstra'} ]), new createInfo('pgr_bdDijkstra', '2.0', [ - { v: '2.0', n: 'index', d: 'bd_dijkstra'}, - { v: '2.1', n: 'index', d: 'bd_dijkstra'}, - { v: '2.2', n: 'pgr_bdDijkstra', d: 'bd_dijkstra'}, - { v: '2.3', n: 'pgr_bdDijkstra', d: 'bd_dijkstra'} + { v: '2.1', n: 'src/bd_dijkstra/doc/index'}, + { v: '2.3', n: 'src/bd_dijkstra/doc/pgr_bdDijkstra'} ]), new createInfo('pgr_bdAstar', '2.0', [ - { v: '2.0', n: 'index', d: 'bd_astar'}, - { v: '2.1', n: 'index', d: 'bd_astar'}, - { v: '2.2', n: 'pgr_bdAstar', d: 'bd_astar'}, - { v: '2.3', n: 'pgr_bdAstar', d: 'bd_astar'} + { v: '2.1', n: 'src/bd_astar/doc/index'}, + { v: '2.3', n: 'src/bd_astar/doc/pgr_bdAstar'} ]), new createInfo('pgr_aStar', '2.0', [ - { v: '2.0', n: 'index', d: 'astar'}, - { v: '2.1', n: 'index', d: 'astar'}, - { v: '2.2', n: 'pgr_astar', d: 'astar'}, - { v: '2.3', n: 'pgr_astar', d: 'astar'}, + { v: '2.1', n: 'src/astar/doc/index'}, + { v: '2.3', n: 'src/astar/doc/pgr_astar'}, ]), new createInfo('pgr_floydWarshall', '2.0', [ - { v: '2.0', n: 'index', d: 'apsp_warshall'}, - { v: '2.1', n: 'index', d: 'apsp_warshall'}, - { v: '2.2', n: 'pgr_floydWarshall', d: 'allpairs'}, - { v: '2.3', n: 'pgr_floydWarshall', d: 'allpairs'} + { v: '2.1', n: 'src/apsp_warshall/doc/index'}, + { v: '2.3', n: 'src/allpairs/doc/pgr_floydWarshall'} ]), new createInfo('pgr_johnson', '2.0', [ - { v: '2.0', n: 'index', d: 'apsp_johnson'}, - { v: '2.1', n: 'index', d: 'apsp_johnson'}, - { v: '2.2', n: 'pgr_johnson', d: 'allpairs'}, - { v: '2.3', n: 'pgr_johnson', d: 'allpairs'} + { 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.0', n: 'functions/node_network', d: 'common'}, - { v: '2.1', n: 'functions/node_network', d: 'common'}, - { v: '2.2', n: 'pgr_nodeNetwork', d: 'topology'}, - { v: '2.3', n: 'pgr_nodeNetwork', d: 'topology'}, + { v: '2.1', n: 'src/common/doc/functions/node_network'}, + { v: '2.3', n: 'src/topology/doc/pgr_nodeNetwork'}, ]), new createInfo('topology-functions', '2.0', [ - { v: '2.0', n: 'functions/index', d: 'common'}, - { v: '2.1', n: 'functions/index', d: 'common'}, - { v: '2.2', n: 'topology', d: 'topology'}, - { v: '2.3', n: 'topology', d: 'topology'}, + { 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.0', n: 'functions/create_vert_table', d: 'common'}, - { v: '2.1', n: 'functions/create_vert_table', d: 'common'}, - { v: '2.2', n: 'pgr_createVerticesTable', d: 'topology'}, - { v: '2.3', n: 'pgr_createVerticesTable', d: 'topology'}, + { v: '2.1', n: 'src/common/doc/functions/create_vert_table'}, + { v: '2.3', n: 'src/topology/doc/pgr_createVerticesTable'}, ]), new createInfo('pgr_createTopology', '2.0', [ - { v: '2.0', n: 'functions/create_topology', d: 'common'}, - { v: '2.1', n: 'functions/create_topology', d: 'common'}, - { v: '2.2', n: 'pgr_createTopology', d: 'topology'}, - { v: '2.3', n: 'pgr_createTopology', d: 'topology'}, + { v: '2.1', n: 'src/common/doc/functions/create_topology'}, + { v: '2.3', n: 'src/topology/doc/pgr_createTopology'}, ]), new createInfo('pgr_analyzeOneWay', '2.0', [ - { v: '2.0', n: 'functions/analyze_oneway', d: 'common'}, - { v: '2.1', n: 'functions/analyze_oneway', d: 'common'}, - { v: '2.2', n: 'pgr_analyzeOneWay', d: 'topology'}, - { v: '2.3', n: 'pgr_analyzeOneWay', d: 'topology'}, + { v: '2.1', n: 'src/common/doc/functions/analyze_oneway'}, + { v: '2.3', n: 'src/topology/doc/pgr_analyzeOneWay'}, ]), new createInfo('pgr_analyzeGraph', '2.0', [ - { v: '2.0', n: 'functions/analyze_graph', d: 'common'}, - { v: '2.1', n: 'functions/analyze_graph', d: 'common'}, - { v: '2.2', n: 'pgr_analyzeGraph', d: 'topology'}, - { v: '2.3', n: 'pgr_analyzeGraph', d: 'topology'}, + { v: '2.1', n: 'src/common/doc/functions/analyze_graph'}, + { v: '2.3', n: 'src/topology/doc/pgr_analyzeGraph'}, ]), new createInfo('pgRouting-concepts', '2.0', [ - { v: '2.0', n: 'doc/src/tutorial/tutorial', d: ''}, - { v: '2.1', n: 'doc/src/tutorial/tutorial', d: ''}, - { v: '2.2', n: 'doc/src/tutorial/tutorial', d: ''}, - { v: '2.3', n: 'doc/src/tutorial/tutorial', d: ''}, + { v: '2.3', n: 'doc/src/tutorial/tutorial'}, ]), new createInfo('support', '2.0', [ - { v: '2.0', n: 'doc/src/introduction/support', d: ''}, - { v: '2.1', n: 'doc/src/introduction/support', d: ''}, - { v: '2.2', n: 'doc/src/introduction/support', d: ''}, - { v: '2.3', n: 'doc/src/introduction/support', d: ''}, + { v: '2.3', n: 'doc/src/introduction/support'}, ]), new createInfo('pgRouting-introduction', '2.0', [ - { v: '2.0', n: 'doc/src/introduction/introduction', d: ''}, - { v: '2.1', n: 'doc/src/introduction/introduction', d: ''}, - { v: '2.2', n: 'doc/src/introduction/introduction', d: ''}, - { v: '2.3', n: 'doc/src/introduction/introduction', d: ''}, + { v: '2.3', n: 'doc/src/introduction/introduction'}, ]), new createInfo('pgRouting-installation', '2.0', [ - { v: '2.0', n: 'doc/src/installation/index', d: ''}, - { v: '2.1', n: 'doc/src/installation/index', d: ''}, - { v: '2.2', n: 'doc/src/installation/installation', d: ''}, - { v: '2.3', n: 'doc/src/installation/installation', d: ''}, + { v: '2.1', n: 'doc/src/installation/index'}, + { v: '2.3', n: 'doc/src/installation/installation'}, ]), new createInfo('sampledata', '2.0', [ - { v: '2.0', n: 'doc/src/developer/sampledata', d: ''}, - { v: '2.1', n: 'doc/src/developer/sampledata', d: ''}, - { v: '2.2', n: 'doc/src/developer/sampledata', d: ''}, - { v: '2.3', n: 'doc/src/developer/sampledata', d: ''}, + { v: '2.3', n: 'doc/src/developer/sampledata'}, ]), new createInfo('release_notes', '2.0', [ - { v: '2.0', n: 'doc/src/changelog/index', d: ''}, - { v: '2.1', n: 'doc/src/changelog/index', d: ''}, - { v: '2.2', n: 'doc/src/changelog/index', d: ''}, - { v: '2.3', n: 'doc/src/changelog/release_notes', d: ''}, + { v: '2.2', n: 'doc/src/changelog/index'}, + { v: '2.3', n: 'doc/src/changelog/release_notes'}, + ]), + new createInfo('drivingDistance-category', '2.0', [ + { v: '2.1', n: 'src/driving_distance/doc/index'}, + { v: '2.3', n: 'src/driving_distance/doc/drivingDistance'}, ]), new createInfo('pgr_drivingDistance', '2.0', [ - { v: '2.0', n: 'dd_driving_distance', d: 'driving_distance'}, - { v: '2.1', n: 'dd_driving_distance_v3', d: 'driving_distance'}, - { v: '2.2', n: 'pgr_drivingDistance', d: 'driving_distance'}, - { v: '2.3', n: 'pgr_drivingDistance', d: 'driving_distance'} + { v: '2.0', n: 'src/driving_distance/doc/dd_driving_distance'}, + { 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_alphaShape', '2.0', [ - { v: '2.0', n: 'dd_alphashape', d: 'driving_distance'}, - { v: '2.1', n: 'dd_alphashape', d: 'driving_distance'}, - { v: '2.2', n: 'pgr_alphaShape', d: 'alpha_shape'}, - { v: '2.3', n: 'pgr_alphaShape', d: 'alpha_shape'} + { v: '2.1', n: 'src/driving_distance/doc/dd_alphashape'}, + { v: '2.3', n: 'src/alpha_shape/doc/pgr_alphaShape'} ]), ]; @@ -326,11 +270,19 @@ function get_titles(data, k) { } return ''; } -function get_vdata(data, v) { + +function get_vdata(data, v, file, lang) { + info = ''; + link = ''; for (var i = 0; i < data.length; i++) { - if (data[i].v == v) { return data[i]; } + if (v <= data[i].v) { info = data[i]; break; } } - return ''; + if (info === '') { + link = lang + '/' + file + '.html">' + v + ''; + } else { + link = lang + '/' + info.n + '.html">' + v + ''; + } + return link; } function get(name) { @@ -362,12 +314,13 @@ function get_history(name, lang) { validlang = 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')? lang : 'en'; + validlang = (lang == 'zh-Hans' && versionsArr[i] >= '3.7')? 'zh_Hans' : 'en'; var link = home + versionsArr[i] + '/'; - link += validlang + '/' + data.file + '.html">' + versionsArr[i] + ''; + link += get_vdata(data.altnames, versionsArr[i], data.file, validlang); if (versionsArr[i] == latest) result += '(' + link + ') '; else result += link + ' '; } @@ -385,29 +338,7 @@ function get_history(name, lang) { if (data.newat > unsuportedArr[i]) break; var link = home + unsuportedArr[i] + '/'; - switch(unsuportedArr[i]) { - case '2.4': - var info = get_vdata(data.altnames, unsuportedArr[i]); - if (info === '') { - link += validlang + '/' + data.file + '.html">' + unsuportedArr[i] + ''; - } else { - link += validlang + '/' + info.n + '.html">' + unsuportedArr[i] + ''; - } - break; - case '2.3': - case '2.2': - case '2.1': - case '2.0': - var info = get_vdata(data.altnames, unsuportedArr[i]); - if (info.d == '') { - link += validlang + '/' + info.n + '.html">' + unsuportedArr[i] + ''; - } else { - link += validlang + '/src/' + info.d + '/doc/' + info.n + '.html">' + unsuportedArr[i] + ''; - } - break; - default: - link += validlang + '/' + data.file + '.html">' + unsuportedArr[i] + ''; - } + link += get_vdata(data.altnames, unsuportedArr[i], data.file, validlang); result += link + ' '; } } From 720fe01ac4e4286f3d2a40f7d171cc7c835665e2 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 27 Feb 2025 11:47:33 -0600 Subject: [PATCH 088/141] Using rabbit recomendations --- doc/_static/page_history.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js index a5844cb439..ca90ed41d0 100644 --- a/doc/_static/page_history.js +++ b/doc/_static/page_history.js @@ -272,15 +272,15 @@ function get_titles(data, k) { } function get_vdata(data, v, file, lang) { - info = ''; - link = ''; + let info = ''; + let link = ''; for (var i = 0; i < data.length; i++) { if (v <= data[i].v) { info = data[i]; break; } } if (info === '') { - link = lang + '/' + file + '.html">' + v + ''; + link = `${lang}/${file}.html">${v}`; } else { - link = lang + '/' + info.n + '.html">' + v + ''; + link = `${lang}/${info.n}.html">${v}`; } return link; } @@ -319,7 +319,7 @@ function get_history(name, lang) { /* for zh-Hans non translated versions use english */ validlang = (lang == 'zh-Hans' && versionsArr[i] >= '3.7')? 'zh_Hans' : 'en'; - var link = home + versionsArr[i] + '/'; + let link = `${home}${versionsArr[i]}/` link += get_vdata(data.altnames, versionsArr[i], data.file, validlang); if (versionsArr[i] == latest) result += '(' + link + ') '; else result += link + ' '; From ad95e503db8f9aae7e90298310a3cea563a0246c Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 14 Feb 2025 12:41:41 -0600 Subject: [PATCH 089/141] renaming: spanningTree-family.rst -> spanningTree-category.rst --- doc/categories/CMakeLists.txt | 2 +- .../{spanningTree-family.rst => spanningTree-category.rst} | 0 doc/spanningTree/kruskal-family.rst | 4 ++-- doc/spanningTree/pgr_kruskal.rst | 2 +- doc/spanningTree/pgr_kruskalBFS.rst | 2 +- doc/spanningTree/pgr_kruskalDD.rst | 2 +- doc/spanningTree/pgr_kruskalDFS.rst | 2 +- doc/spanningTree/pgr_prim.rst | 2 +- doc/spanningTree/pgr_primBFS.rst | 2 +- doc/spanningTree/pgr_primDD.rst | 2 +- doc/spanningTree/pgr_primDFS.rst | 2 +- doc/spanningTree/prim-family.rst | 4 ++-- doc/src/routingFunctions.rst | 6 +++--- 13 files changed, 16 insertions(+), 16 deletions(-) rename doc/categories/{spanningTree-family.rst => spanningTree-category.rst} (100%) diff --git a/doc/categories/CMakeLists.txt b/doc/categories/CMakeLists.txt index bcbf8e2d21..ccb9af99ee 100644 --- a/doc/categories/CMakeLists.txt +++ b/doc/categories/CMakeLists.txt @@ -6,7 +6,7 @@ SET(LOCAL_FILES DFS-category.rst drivingDistance-category.rst KSP-category.rst - spanningTree-family.rst + spanningTree-category.rst via-category.rst VRP-category.rst withPoints-category.rst diff --git a/doc/categories/spanningTree-family.rst b/doc/categories/spanningTree-category.rst similarity index 100% rename from doc/categories/spanningTree-family.rst rename to doc/categories/spanningTree-category.rst diff --git a/doc/spanningTree/kruskal-family.rst b/doc/spanningTree/kruskal-family.rst index eea7f750b6..8b182ae71d 100644 --- a/doc/spanningTree/kruskal-family.rst +++ b/doc/spanningTree/kruskal-family.rst @@ -44,7 +44,7 @@ two trees in the forest. .. kruskal-description-start -.. include:: spanningTree-family.rst +.. include:: spanningTree-category.rst :start-after: spanntree_traits_start :end-before: spanntree_traits_end @@ -63,7 +63,7 @@ Inner Queries See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * `Boost: Kruskal's algorithm `__ * `Boost: Prim's algorithm `__ * `Wikipedia: Kruskal's algorithm `__ diff --git a/doc/spanningTree/pgr_kruskal.rst b/doc/spanningTree/pgr_kruskal.rst index 2b2a6855e5..f1f6094473 100644 --- a/doc/spanningTree/pgr_kruskal.rst +++ b/doc/spanningTree/pgr_kruskal.rst @@ -86,7 +86,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`kruskal-family` * :doc:`sampledata` * `Boost: Kruskal's algorithm diff --git a/doc/spanningTree/pgr_kruskalBFS.rst b/doc/spanningTree/pgr_kruskalBFS.rst index 2e2114f0c9..6b7fe05e70 100644 --- a/doc/spanningTree/pgr_kruskalBFS.rst +++ b/doc/spanningTree/pgr_kruskalBFS.rst @@ -132,7 +132,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`kruskal-family` * :doc:`sampledata` * `Boost: Kruskal's algorithm diff --git a/doc/spanningTree/pgr_kruskalDD.rst b/doc/spanningTree/pgr_kruskalDD.rst index 43d6bd0e05..48e712e464 100644 --- a/doc/spanningTree/pgr_kruskalDD.rst +++ b/doc/spanningTree/pgr_kruskalDD.rst @@ -133,7 +133,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`kruskal-family` * :doc:`sampledata` * `Boost: Kruskal's algorithm diff --git a/doc/spanningTree/pgr_kruskalDFS.rst b/doc/spanningTree/pgr_kruskalDFS.rst index 31fc9be98b..5def6ca23c 100644 --- a/doc/spanningTree/pgr_kruskalDFS.rst +++ b/doc/spanningTree/pgr_kruskalDFS.rst @@ -135,7 +135,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`kruskal-family` * :doc:`sampledata` * `Boost: Kruskal's algorithm diff --git a/doc/spanningTree/pgr_prim.rst b/doc/spanningTree/pgr_prim.rst index d67df544fb..1225000743 100644 --- a/doc/spanningTree/pgr_prim.rst +++ b/doc/spanningTree/pgr_prim.rst @@ -88,7 +88,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`prim-family` * :doc:`sampledata` * `Boost: Prim's algorithm documentation diff --git a/doc/spanningTree/pgr_primBFS.rst b/doc/spanningTree/pgr_primBFS.rst index 34a0fdac87..3cf9c4cdb6 100644 --- a/doc/spanningTree/pgr_primBFS.rst +++ b/doc/spanningTree/pgr_primBFS.rst @@ -134,7 +134,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`prim-family` * :doc:`sampledata` * `Boost: Prim's algorithm diff --git a/doc/spanningTree/pgr_primDD.rst b/doc/spanningTree/pgr_primDD.rst index 5cd56315e5..a0196cc2b6 100644 --- a/doc/spanningTree/pgr_primDD.rst +++ b/doc/spanningTree/pgr_primDD.rst @@ -132,7 +132,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`prim-family` * :doc:`sampledata` * `Boost: Prim's algorithm diff --git a/doc/spanningTree/pgr_primDFS.rst b/doc/spanningTree/pgr_primDFS.rst index 5d7231539d..1b32d3b37e 100644 --- a/doc/spanningTree/pgr_primDFS.rst +++ b/doc/spanningTree/pgr_primDFS.rst @@ -134,7 +134,7 @@ Result columns See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * :doc:`prim-family` * :doc:`sampledata` * `Boost: Prim's algorithm diff --git a/doc/spanningTree/prim-family.rst b/doc/spanningTree/prim-family.rst index 97d2f80a3f..229ed80fae 100644 --- a/doc/spanningTree/prim-family.rst +++ b/doc/spanningTree/prim-family.rst @@ -55,7 +55,7 @@ forest. .. prim-description-start -.. include:: spanningTree-family.rst +.. include:: spanningTree-category.rst :start-after: spanntree_traits_start :end-before: spanntree_traits_end @@ -78,7 +78,7 @@ Inner Queries See Also ------------------------------------------------------------------------------- -* :doc:`spanningTree-family` +* :doc:`spanningTree-category` * Boost: `Prim's algorithm `__ * Wikipedia: `Prim's algorithm diff --git a/doc/src/routingFunctions.rst b/doc/src/routingFunctions.rst index b8579f2572..573d7572fd 100644 --- a/doc/src/routingFunctions.rst +++ b/doc/src/routingFunctions.rst @@ -126,9 +126,9 @@ Functions by categories :start-after: official-start :end-before: official-end -:doc:`spanningTree-family` +:doc:`spanningTree-category` -.. include:: spanningTree-family.rst +.. include:: spanningTree-category.rst :start-after: official-start :end-before: official-end @@ -172,7 +172,7 @@ Functions by categories DFS-category drivingDistance-category KSP-category - spanningTree-family + spanningTree-category via-category VRP-category withPoints-category From 9368ebc58c1e6be1cfedb0625469b62075129030 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 18:35:23 +0000 Subject: [PATCH 090/141] Update locale: commit ad95e503d --- locale/en/LC_MESSAGES/pgrouting_doc_strings.po | 4 ++-- locale/pot/pgrouting_doc_strings.pot | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 85bf160908..3933bf91a4 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-27 16:46+0000\n" +"POT-Creation-Date: 2025-02-27 18:35+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4380,7 +4380,7 @@ msgstr "" msgid ":doc:`KSP-category`" msgstr "" -msgid ":doc:`spanningTree-family`" +msgid ":doc:`spanningTree-category`" msgstr "" msgid ":doc:`BFS-category`" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index ad5e96c11a..bb2040b4f0 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-27 16:46+0000\n" +"POT-Creation-Date: 2025-02-27 18:35+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3904,7 +3904,7 @@ msgstr "" msgid ":doc:`KSP-category`" msgstr "" -msgid ":doc:`spanningTree-family`" +msgid ":doc:`spanningTree-category`" msgstr "" msgid ":doc:`BFS-category`" From 373dd66a6cbe8023337fd61c8cc09aa72e23cc7f Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 19 Feb 2025 19:06:20 -0600 Subject: [PATCH 091/141] (internal SQL) Throw PostgreSQL errmsg, hint and error code - Internal functions - _pgr_checkquery - _pgr_checkcolumn - re-throw from - pgr_extractVertices - pgr_findCloseEdges - pgr_degree - Adding tests for missing column and relation not found - (pgtap) adjusting tests because of changes on internal SQL - Documentation of the changes --- NEWS.md | 14 ++- doc/src/release_notes.rst | 20 +++- doc/topology/pgr_degree.rst | 8 +- doc/topology/pgr_extractVertices.rst | 12 +- doc/utilities/pgr_findCloseEdges.rst | 8 +- pgtap/topology/degree/edge_cases.pg | 33 ++++-- pgtap/topology/extractVertices/edge_cases.pg | 112 +++++-------------- pgtap/utilities/findCloseEdges/edge_cases.pg | 20 +++- sql/common/_checkcolumn.sql | 13 ++- sql/common/_checkquery.sql | 20 ++-- sql/topology/degree.sql | 26 +++-- sql/topology/extractVertices.sql | 51 ++++++--- sql/utilities/findCloseEdges.sql | 29 +++-- tools/testers/general_pgtap_tests.sql | 20 ++++ 14 files changed, 234 insertions(+), 152 deletions(-) diff --git a/NEWS.md b/NEWS.md index 07445be9e4..75a8bd8d6b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -8,7 +8,19 @@ ### pgRouting 3.8.0 Release Notes -No Changes Yet +**Changes on proposed functions** + +* pgr_extractVertices + + * Error messages adjustment. + +* pgr_findCloseEdges + + * Error messages adjustment. + +* pgr_degree + + * Error messages adjustment. ## pgRouting 3.7 diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index f621169b4f..3870e08f77 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -39,7 +39,25 @@ pgRouting 3.8 pgRouting 3.8.0 Release Notes ------------------------------------------------------------------------------- -No Changes Yet +.. rubric:: Changes on proposed functions + +* pgr_extractVertices + + .. include:: pgr_extractVertices.rst + :start-after: Version 3.8.0 + :end-before: .. rubric + +* pgr_findCloseEdges + + .. include:: pgr_findCloseEdges.rst + :start-after: Version 3.8.0 + :end-before: .. rubric + +* pgr_degree + + .. include:: pgr_degree.rst + :start-after: Version 3.8.0 + :end-before: .. rubric pgRouting 3.7 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/doc/topology/pgr_degree.rst b/doc/topology/pgr_degree.rst index 8eea85a7df..6e6a4a3392 100644 --- a/doc/topology/pgr_degree.rst +++ b/doc/topology/pgr_degree.rst @@ -25,9 +25,13 @@ .. rubric:: Availability -* Version 3.4.0 +.. rubric:: Version 3.8.0 - * New proposed function. +* Error messages adjustment. + +.. rubric:: Version 3.4.0 + +* New proposed function. Description diff --git a/doc/topology/pgr_extractVertices.rst b/doc/topology/pgr_extractVertices.rst index 2787f5c719..6ecb3b9b7a 100644 --- a/doc/topology/pgr_extractVertices.rst +++ b/doc/topology/pgr_extractVertices.rst @@ -25,13 +25,17 @@ .. rubric:: Availability -* Version 3.3.0 +.. rubric:: Version 3.8.0 - * Classified as **proposed** function +* Error messages adjustment. -* Version 3.0.0 +.. rubric:: Version 3.3.0 - * New experimental function. +* Classified as **proposed** function + +.. rubric:: Version 3.0.0 + +* New experimental function. Description diff --git a/doc/utilities/pgr_findCloseEdges.rst b/doc/utilities/pgr_findCloseEdges.rst index f52c3634de..0cf77aa0fe 100644 --- a/doc/utilities/pgr_findCloseEdges.rst +++ b/doc/utilities/pgr_findCloseEdges.rst @@ -20,9 +20,13 @@ .. rubric:: Availability -* Version 3.4.0 +.. rubric:: Version 3.8.0 - * New proposed function. +* Error messages adjustment. + +.. rubric:: Version 3.4.0 + +* New proposed function. Description ------------------------------------------------------------------------------- diff --git a/pgtap/topology/degree/edge_cases.pg b/pgtap/topology/degree/edge_cases.pg index a762c24828..39fe52c0d5 100644 --- a/pgtap/topology/degree/edge_cases.pg +++ b/pgtap/topology/degree/edge_cases.pg @@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT CASE WHEN min_version('3.4.0') THEN plan(12) ELSE plan(1) END; +SELECT CASE WHEN min_version('3.4.0') THEN plan(16) ELSE plan(1) END; CREATE OR REPLACE FUNCTION edge_cases() @@ -59,11 +59,13 @@ BEGIN SELECT * FROM pgr_degree('edges','SELECT id, out_edges FROM vertices'); RETURN QUERY SELECT lives_ok('query_1', 'Good execution'); - RETURN QUERY SELECT throws_ok('query_2', 'P0001', 'Missing column', 'Incomlete data -> throws'); - RETURN QUERY SELECT throws_ok('query_3', 'P0001', 'Missing column', 'Incomlete data -> throws'); - RETURN QUERY SELECT throws_ok('query_4', 'P0001', 'Missing column', 'Incomlete data -> throws'); + RETURN QUERY SELECT column_missing('query_2', 'id'); + RETURN QUERY SELECT column_missing('query_3', 'in_edges'); + RETURN QUERY SELECT column_missing('query_4', 'id'); RETURN QUERY SELECT lives_ok('query_5', 'Missing column out_edges but usable'); RETURN QUERY SELECT lives_ok('query_5', 'Missing column in_edges but usable'); + RETURN QUERY SELECT wrong_relation($$SELECT * FROM pgr_degree('SELECT id FROM foo', 'SELECT * FROM vertices')$$, 'foo'); + RETURN QUERY SELECT wrong_relation($$SELECT * FROM pgr_degree('SELECT id FROM edges', 'SELECT * FROM bar')$$, 'bar'); PREPARE subedges AS SELECT id FROM edges WHERE id < 17; @@ -90,12 +92,29 @@ BEGIN SELECT * FROM pgr_degree('subedges','SELECT id, out_edges FROM vertices'); RETURN QUERY SELECT lives_ok('query_7', 'Good execution'); - RETURN QUERY SELECT throws_ok('query_8', 'P0001', 'Missing column', 'Incomlete data -> throws'); - RETURN QUERY SELECT throws_ok('query_9', 'P0001', 'Missing column', 'Incomlete data -> throws'); - RETURN QUERY SELECT throws_ok('query_10', 'P0001', 'Missing column', 'Incomlete data -> throws'); + RETURN QUERY SELECT column_missing('query_8', 'id'); + RETURN QUERY SELECT column_missing('query_9', 'in_edges'); + RETURN QUERY SELECT column_missing('query_10', 'id'); RETURN QUERY SELECT lives_ok('query_11', 'Missing column out_edges but usable'); RETURN QUERY SELECT lives_ok('query_12', 'Missing column in_edges but usable'); + PREPARE empty_vertices AS + SELECT * FROM pgr_degree('SELECT id FROM edges', 'SELECT * FROM vertices WHERE id > 20'); + RETURN QUERY SELECT is_empty('empty_vertices', 'Empty vertices give empty result'); + + PREPARE empty_graph AS + SELECT * FROM pgr_degree('SELECT id FROM edges WHERE id > 20', 'SELECT * FROM vertices') ORDER BY node; + RETURN QUERY + SELECT CASE WHEN min_version('3.8.0') THEN + collect_tap( + is_empty('empty_graph', 'is empty: Empty edges give 0 count on all vertices so none is in result') + ) + ELSE + collect_tap( + results_eq('empty_graph', 'SELECT generate_series (1,17)::BIGINT, 0::BIGINT', 'Empty edges give 0 count') + ) + END; + END; $BODY$ LANGUAGE plpgsql; diff --git a/pgtap/topology/extractVertices/edge_cases.pg b/pgtap/topology/extractVertices/edge_cases.pg index 430727e708..4e3756f7f3 100644 --- a/pgtap/topology/extractVertices/edge_cases.pg +++ b/pgtap/topology/extractVertices/edge_cases.pg @@ -25,103 +25,43 @@ SELECT plan(30); UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(reverse_cost) + 0.001 * id * id; -- -PREPARE query_1 AS -SELECT * FROM pgr_extractVertices( - 'SELECT source - FROM edges' -); - -PREPARE query_2 AS -SELECT * -FROM pgr_extractVertices( - 'SELECT target - FROM edges' -); - -SELECT throws_ok('query_1', 'P0001', 'Missing column', 'Incomlete data -> throws'); -SELECT throws_ok('query_2', 'P0001', 'Missing column', 'Incomlete data -> throws'); --- -PREPARE query_3 AS -SELECT * -FROM pgr_extractVertices( - 'SELECT ST_StartPoint(geom) AS startpoint - FROM edges' -); - -PREPARE query_4 AS -SELECT * -FROM pgr_extractVertices( - 'SELECT ST_EndPoint(geom) AS endpoint - FROM edges' -); - -SELECT throws_ok('query_3', 'P0001', 'Missing column', 'Incomlete data -> throws'); -SELECT throws_ok('query_4', 'P0001', 'Missing column', 'Incomlete data -> throws'); +PREPARE test_1(TEXT) AS +SELECT * FROM pgr_extractVertices('SELECT ' || $1 || ' FROM edges'); + +SELECT column_missing($$test_1('source')$$, 'target'); +SELECT column_missing($$test_1('target')$$, 'source'); -- -PREPARE query_5 AS -SELECT * FROM pgr_extractVertices( - 'SELECT source, geom - FROM edges' -); +SELECT column_missing($$"test_1"('ST_StartPoint(geom) AS startpoint')$$, 'endpoint'); +SELECT column_missing($$"test_1"('ST_EndPoint(geom) AS endpoint')$$, 'startpoint'); -PREPARE query_6 AS -SELECT * -FROM pgr_extractVertices( - 'SELECT target, geom - FROM edges' -); +-- -SELECT lives_ok('query_5', 'geom column makes data complete'); -SELECT lives_ok('query_6', 'geom column makes data complete'); +SELECT lives_ok($$"test_1"('source, geom')$$, 'geom column makes data complete'); +SELECT lives_ok($$"test_1"('target, geom')$$, 'geom column makes data complete'); -- -PREPARE query_7 AS -SELECT * -FROM pgr_extractVertices( - 'SELECT ST_StartPoint(geom) AS startpoint, geom - FROM edges' -); - -PREPARE query_8 AS -SELECT * -FROM pgr_extractVertices( - 'SELECT ST_EndPoint(geom) AS endpoint, geom - FROM edges' -); - -SELECT lives_ok('query_7', 'geom column makes data complete'); -SELECT lives_ok('query_8', 'geom column makes data complete'); --- +SELECT lives_ok($$"test_1"('ST_StartPoint(geom) AS startpoint, geom')$$, 'geom column makes data complete'); +SELECT lives_ok($$"test_1"('ST_EndPoint(geom) AS endpoint, geom')$$, 'geom column makes data complete'); -SELECT set_eq( - $$SELECT count(*) FROM pgr_extractVertices( 'SELECT geom FROM edges')$$, - $$VALUES (17)$$, - '17: Number of vertices extracted'); -SELECT set_eq( - $$SELECT count(*) FROM pgr_extractVertices( 'SELECT ST_StartPoint(geom) AS startpoint, ST_EndPoint(geom) AS endpoint FROM edges')$$, - $$VALUES (17)$$, - '17: Number of vertices extracted'); -SELECT set_eq( - $$SELECT count(*) FROM pgr_extractVertices( 'SELECT source, target FROM edges')$$, - $$VALUES (17)$$, - '17: Number of vertices extracted'); +-- -SELECT set_eq( - $$SELECT count(*) FROM pgr_extractVertices( 'SELECT id, geom FROM edges')$$, - $$VALUES (17)$$, - '17: Number of vertices extracted'); -SELECT set_eq( - $$SELECT count(*) FROM pgr_extractVertices( 'SELECT id, ST_StartPoint(geom) AS startpoint, ST_EndPoint(geom) AS endpoint FROM edges')$$, - $$VALUES (17)$$, - '17: Number of vertices extracted'); -SELECT set_eq( - $$SELECT count(*) FROM pgr_extractVertices( 'SELECT id, source, target FROM edges')$$, - $$VALUES (17)$$, - '17: Number of vertices extracted'); +SELECT is((SELECT count(*) FROM pgr_extractVertices('SELECT geom FROM edges')), + 17::BIGINT, '17 vertices with geom'); +SELECT is((SELECT count(*) FROM pgr_extractVertices('SELECT ST_StartPoint(geom) AS startpoint, ST_EndPoint(geom) AS endpoint FROM edges')), + 17::BIGINT, '17 vertices with points'); +SELECT is((SELECT count(*) FROM pgr_extractVertices('SELECT source, target FROM edges')), + 17::BIGINT, '17 vertices with source, target'); + +SELECT is((SELECT count(*) FROM pgr_extractVertices('SELECT id, geom FROM edges')), + 17::BIGINT, '17 vertices with id, geom'); +SELECT is((SELECT count(*) FROM pgr_extractVertices('SELECT id, ST_StartPoint(geom) AS startpoint, ST_EndPoint(geom) AS endpoint FROM edges')), + 17::BIGINT, '17 vertices with id, points'); +SELECT is((SELECT count(*) FROM pgr_extractVertices('SELECT id, source, target FROM edges')), + 17::BIGINT, '17 vertices with id, source, target'); -- SELECT set_eq( diff --git a/pgtap/utilities/findCloseEdges/edge_cases.pg b/pgtap/utilities/findCloseEdges/edge_cases.pg index 90c58046a2..0c634c2f5c 100644 --- a/pgtap/utilities/findCloseEdges/edge_cases.pg +++ b/pgtap/utilities/findCloseEdges/edge_cases.pg @@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT CASE WHEN min_version('3.4.0') THEN plan(12) ELSE plan(1) END; +SELECT CASE WHEN min_version('3.4.0') THEN plan(16) ELSE plan(1) END; SET client_min_messages TO 'WARNING'; @@ -60,9 +60,14 @@ BEGIN RETURN QUERY SELECT lives_ok('query_3', 'dryrun'); RETURN QUERY SELECT is_empty('query_3', 'dryrun'); - RETURN QUERY SELECT throws_ok('err1', 'P0001', 'Missing column', 'Incomlete data -> throws'); - RETURN QUERY SELECT throws_ok('err2', 'P0001', 'Missing column', 'Incomlete data -> throws'); + RETURN QUERY SELECT column_missing('err1', 'geom'); + RETURN QUERY SELECT column_missing('err2', 'id'); + RETURN QUERY SELECT wrong_relation($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM foo', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5)$$, 'foo'); + RETURN QUERY SELECT throws_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM bar WHERE pid = 5), 0.5)$$, + '42P01', 'relation "bar" does not exist'); -- Many points PREPARE query_4 AS @@ -82,10 +87,15 @@ BEGIN RETURN QUERY SELECT lives_ok('query_6', 'dryrun'); RETURN QUERY SELECT is_empty('query_6', 'dryrun'); - RETURN QUERY SELECT throws_ok('err3', 'P0001', 'Missing column', 'Incomlete data -> throws'); - RETURN QUERY SELECT throws_ok('err4', 'P0001', 'Missing column', 'Incomlete data -> throws'); + RETURN QUERY SELECT column_missing('err3', 'geom'); + RETURN QUERY SELECT column_missing('err4', 'id'); + RETURN QUERY SELECT wrong_relation($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM foo', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5)$$, 'foo'); + RETURN QUERY SELECT throws_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM bar), 0.5)$$, + '42P01', 'relation "bar" does not exist'); END; $BODY$ diff --git a/sql/common/_checkcolumn.sql b/sql/common/_checkcolumn.sql index eb0a59108c..36edfe3b87 100644 --- a/sql/common/_checkcolumn.sql +++ b/sql/common/_checkcolumn.sql @@ -36,12 +36,23 @@ $BODY$ DECLARE has_column BOOLEAN := TRUE; rec RECORD; + sqlhint TEXT; BEGIN BEGIN EXECUTE format('SELECT %1$s FROM ( %2$s ) AS __a__ limit 1', $2, $1); + EXCEPTION WHEN OTHERS THEN + BEGIN + IF NOT is_optional THEN + RAISE EXCEPTION '%', SQLERRM USING HINT = $1, ERRCODE = SQLSTATE; + ELSE + has_column := FALSE; + END IF; + END; + END; + BEGIN EXECUTE format('SELECT pg_typeof(%1$s) FROM ( %2$s ) AS __a__ limit 1', $2, $1) INTO rec; @@ -89,7 +100,5 @@ END; $BODY$ LANGUAGE plpgsql VOLATILE STRICT; - --- COMMENTS COMMENT ON FUNCTION _pgr_checkColumn(TEXT, TEXT, TEXT, BOOLEAN, BOOLEAN) IS 'pgRouting internal function'; diff --git a/sql/common/_checkquery.sql b/sql/common/_checkquery.sql index ef6550e8d6..636a45408a 100644 --- a/sql/common/_checkquery.sql +++ b/sql/common/_checkquery.sql @@ -30,21 +30,23 @@ RETURNS TEXT AS $BODY$ DECLARE main_sql TEXT; + sqlhint TEXT; BEGIN - BEGIN + IF $1 !~ '[[:space:]]' THEN + -- prepared statements no arguments EXECUTE format($$ SELECT regexp_replace(regexp_replace(statement, %1$L,'','i'),';$','') FROM pg_prepared_statements WHERE name = %2$L$$, '.*' || $1 || '\s*as', $1) INTO main_sql; - EXCEPTION WHEN OTHERS - THEN main_sql := $1; - END; - - IF main_sql IS NULL THEN + IF main_sql IS NULL THEN + RAISE EXCEPTION 'prepared statement "%" does not exist', $1; + END IF; + ELSE + -- normal query main_sql := $1; END IF; @@ -52,8 +54,8 @@ BEGIN EXECUTE format('SELECT * FROM ( %1$s ) AS __a__ limit 1', main_sql); EXCEPTION WHEN OTHERS THEN - RAISE EXCEPTION '%', SQLERRM - USING HINT = 'Please check query: '|| $1; + GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; + RAISE EXCEPTION '%', SQLERRM USING HINT = $1, ERRCODE = SQLSTATE; END; RETURN main_sql; @@ -62,7 +64,5 @@ END; $BODY$ LANGUAGE plpgsql VOLATILE STRICT; - --- COMMENTS COMMENT ON FUNCTION _pgr_checkquery(TEXT) IS 'pgrouting internal function'; diff --git a/sql/topology/degree.sql b/sql/topology/degree.sql index 033a63ee20..980095aad4 100644 --- a/sql/topology/degree.sql +++ b/sql/topology/degree.sql @@ -42,17 +42,29 @@ DECLARE has_out_edges BOOLEAN := TRUE; eids TEXT; query TEXT; + sqlhint TEXT; BEGIN - edges_sql := _pgr_checkQuery($1); - PERFORM _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', dryrun => $3); + BEGIN + edges_sql := _pgr_checkQuery($1); + PERFORM _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', dryrun => $3); + + vertices_sql := _pgr_checkQuery($2); + PERFORM _pgr_checkColumn(vertices_sql, 'id', 'ANY-INTEGER', dryrun => $3); + + EXCEPTION WHEN OTHERS THEN + GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; + RAISE EXCEPTION '%', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; + END; - vertices_sql := _pgr_checkQuery($2); - PERFORM _pgr_checkColumn(vertices_sql, 'id', 'ANY-INTEGER', dryrun => $3); has_in_edges := _pgr_checkColumn(vertices_sql, 'in_edges', 'ANY-INTEGER[]', true, dryrun => $3); has_out_edges := _pgr_checkColumn(vertices_sql, 'out_edges', 'ANY-INTEGER[]', true, dryrun => $3); + IF NOT has_in_edges AND NOT has_out_edges THEN + RAISE EXCEPTION 'column "in_edges" does not exist' USING HINT = vertices_sql, ERRCODE = 42703; + END IF; + IF has_in_edges THEN eids = $$coalesce(in_edges::BIGINT[], '{}'::BIGINT[])$$; END IF; @@ -106,16 +118,10 @@ BEGIN RETURN QUERY EXECUTE query; END IF; - EXCEPTION WHEN OTHERS THEN - RAISE EXCEPTION '%', SQLERRM - USING HINT = 'Please check query: '|| $1; - END; $BODY$ LANGUAGE plpgsql VOLATILE STRICT; - --- COMMENTS COMMENT ON FUNCTION pgr_degree(TEXT, TEXT, BOOLEAN) IS 'pgr_degree - PROPOSED diff --git a/sql/topology/extractVertices.sql b/sql/topology/extractVertices.sql index 1dc5180e1e..0fbb447bf3 100644 --- a/sql/topology/extractVertices.sql +++ b/sql/topology/extractVertices.sql @@ -44,20 +44,49 @@ DECLARE quoted TEXT; query TEXT; has_geom BOOLEAN := TRUE; + has_st BOOLEAN := TRUE; has_source BOOLEAN := TRUE; + has_target BOOLEAN := TRUE; has_points BOOLEAN := TRUE; + has_start BOOLEAN := TRUE; + has_end BOOLEAN := TRUE; has_id BOOLEAN := TRUE; rec RECORD; + sqlhint TEXT; + BEGIN - edges_sql := _pgr_checkQuery($1); + BEGIN + edges_sql := _pgr_checkQuery($1); + EXCEPTION WHEN OTHERS THEN + GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; + RAISE EXCEPTION 'FOO %', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; + END; + has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', true, dryrun => $2); - has_source := _pgr_checkColumn(edges_sql, 'source', 'ANY-INTEGER', true, dryrun => $2) - AND _pgr_checkColumn(edges_sql, 'target', 'ANY-INTEGER', true, dryrun => $2); + has_source := _pgr_checkColumn(edges_sql, 'source', 'ANY-INTEGER', true, dryrun => $2); + has_target := _pgr_checkColumn(edges_sql, 'target', 'ANY-INTEGER', true, dryrun => $2); has_geom := _pgr_checkColumn(edges_sql, 'geom', 'geometry', true, dryrun => $2); - has_points := _pgr_checkColumn(edges_sql, 'startpoint', 'geometry', true, dryrun => $2) - AND _pgr_checkColumn(edges_sql, 'endpoint', 'geometry', true, dryrun => $2); + has_start := _pgr_checkColumn(edges_sql, 'startpoint', 'geometry', true, dryrun => $2); + has_end := _pgr_checkColumn(edges_sql, 'endpoint', 'geometry', true, dryrun => $2); + has_points = has_start AND has_end; + has_st = has_source AND has_target; + + IF (NOT has_geom) THEN + IF (has_target AND NOT has_source) THEN + RAISE EXCEPTION 'column "source" does not exist' USING HINT = $1, ERRCODE = 42703; + ELSIF (NOT has_target AND has_source) THEN + RAISE EXCEPTION 'column "target" does not exist' USING HINT = $1, ERRCODE = 42703; + ELSIF (has_start AND NOT has_end) THEN + RAISE EXCEPTION 'column "endpoint" does not exist' USING HINT = $1, ERRCODE = 42703; + ELSIF (NOT has_start AND has_end) THEN + RAISE EXCEPTION 'column "startpoint" does not exist' USING HINT = $1, ERRCODE = 42703; + ELSIF (NOT has_st AND NOT has_points AND NOT has_geom) THEN + RAISE EXCEPTION 'column "geom" does not exist' USING HINT = $1, ERRCODE = 42703; + END IF; + END IF; + IF has_geom AND has_id THEN -- SELECT id, geom @@ -202,7 +231,7 @@ BEGIN SELECT row_number() over(ORDER BY ST_X(geom), ST_Y(geom)) AS id, NULL::BIGINT[], NULL::BIGINT[], x, y, geom FROM the_points$q$; - ELSIF has_source AND has_id THEN + ELSIF has_st AND has_id THEN -- SELECT id, source, target query := $q$ WITH @@ -232,7 +261,7 @@ BEGIN FROM the_points$q$; - ELSIF has_source AND NOT has_id THEN + ELSIF has_st AND NOT has_id THEN -- SELECT source, target query := $q$ WITH @@ -251,10 +280,6 @@ BEGIN SELECT DISTINCT vid::BIGINT AS id, NULL::BIGINT[], NULL::BIGINT[], NULL::FLOAT, NULL::FLOAT, NULL::geometry FROM the_points$q$; - ELSE - RAISE EXCEPTION 'Missing column' - USING HINT = 'Please check query: '|| $1; - END IF; IF dryrun THEN @@ -263,10 +288,6 @@ BEGIN RETURN QUERY EXECUTE query; END IF; - EXCEPTION WHEN OTHERS THEN - RAISE EXCEPTION '%', SQLERRM - USING HINT = 'Please check query: '|| $1; - END; $BODY$ LANGUAGE plpgsql VOLATILE STRICT; diff --git a/sql/utilities/findCloseEdges.sql b/sql/utilities/findCloseEdges.sql index 5b207f9a52..87869712ab 100644 --- a/sql/utilities/findCloseEdges.sql +++ b/sql/utilities/findCloseEdges.sql @@ -44,6 +44,9 @@ DECLARE has_geom BOOLEAN; ret_query TEXT; ret_query_end TEXT; + + sqlhint TEXT; + BEGIN IF ($3 < 0) THEN @@ -54,10 +57,14 @@ BEGIN RAISE EXCEPTION 'Invalid value for cap'; END IF; - edges_sql := _pgr_checkQuery($1); - has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', false, dryrun => dryrun); - has_geom := _pgr_checkColumn(edges_sql, 'geom', 'geometry', false, dryrun => dryrun); - + BEGIN + edges_sql := _pgr_checkQuery($1); + has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', false, dryrun => dryrun); + has_geom := _pgr_checkColumn(edges_sql, 'geom', 'geometry', false, dryrun => dryrun); + EXCEPTION WHEN OTHERS THEN + GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; + RAISE EXCEPTION '%', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; + END; ret_query = format( $q$ @@ -155,15 +162,23 @@ DECLARE has_geom BOOLEAN; ret_query TEXT; ret_query_end TEXT; + + sqlhint TEXT; + BEGIN IF ($3 < 0) THEN RAISE EXCEPTION 'Invalid value for tolerance'; END IF; - edges_sql := _pgr_checkQuery($1); - has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', false, dryrun => dryrun); - has_geom := _pgr_checkColumn(edges_sql, 'geom', 'geometry', false, dryrun => dryrun); + BEGIN + edges_sql := _pgr_checkQuery($1); + has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', false, dryrun => dryrun); + has_geom := _pgr_checkColumn(edges_sql, 'geom', 'geometry', false, dryrun => dryrun); + EXCEPTION WHEN OTHERS THEN + GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; + RAISE EXCEPTION '%', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; + END; ret_query = format( $q$ diff --git a/tools/testers/general_pgtap_tests.sql b/tools/testers/general_pgtap_tests.sql index 4a066f5b51..465c1b4015 100644 --- a/tools/testers/general_pgtap_tests.sql +++ b/tools/testers/general_pgtap_tests.sql @@ -29,3 +29,23 @@ END; $BODY$ LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION column_missing(TEXT, TEXT) +RETURNS TEXT AS +$BODY$ + SELECT CASE WHEN min_version('3.8.0') THEN + collect_tap(throws_ok($1, '42703','column "' || $2 || '" does not exist')) + ELSE + collect_tap(throws_ok($1, 'P0001', 'Missing column')) + END; +$BODY$ LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION wrong_relation(TEXT, TEXT) +RETURNS TEXT AS +$BODY$ + SELECT CASE WHEN min_version('3.8.0') THEN + collect_tap(throws_ok($1, '42P01', 'relation "' || $2 || '" does not exist')) + ELSE + collect_tap(throws_ok($1, 'P0001', 'relation "' || $2 || '" does not exist')) + END; +$BODY$ LANGUAGE SQL; From 695af1e0984eeb8f4878d2f61ab545526fb473e9 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 27 Feb 2025 17:11:26 -0600 Subject: [PATCH 092/141] Work on rabbit suggestions --- doc/topology/pgr_extractVertices.rst | 2 +- sql/common/_checkquery.sql | 2 -- sql/topology/extractVertices.sql | 6 +++--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/doc/topology/pgr_extractVertices.rst b/doc/topology/pgr_extractVertices.rst index 6ecb3b9b7a..32fb2d9f72 100644 --- a/doc/topology/pgr_extractVertices.rst +++ b/doc/topology/pgr_extractVertices.rst @@ -31,7 +31,7 @@ .. rubric:: Version 3.3.0 -* Classified as **proposed** function +* Function promoted to proposed. .. rubric:: Version 3.0.0 diff --git a/sql/common/_checkquery.sql b/sql/common/_checkquery.sql index 636a45408a..d649b775ee 100644 --- a/sql/common/_checkquery.sql +++ b/sql/common/_checkquery.sql @@ -30,7 +30,6 @@ RETURNS TEXT AS $BODY$ DECLARE main_sql TEXT; - sqlhint TEXT; BEGIN @@ -54,7 +53,6 @@ BEGIN EXECUTE format('SELECT * FROM ( %1$s ) AS __a__ limit 1', main_sql); EXCEPTION WHEN OTHERS THEN - GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; RAISE EXCEPTION '%', SQLERRM USING HINT = $1, ERRCODE = SQLSTATE; END; diff --git a/sql/topology/extractVertices.sql b/sql/topology/extractVertices.sql index 0fbb447bf3..26cb099f93 100644 --- a/sql/topology/extractVertices.sql +++ b/sql/topology/extractVertices.sql @@ -60,7 +60,7 @@ BEGIN edges_sql := _pgr_checkQuery($1); EXCEPTION WHEN OTHERS THEN GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; - RAISE EXCEPTION 'FOO %', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; + RAISE EXCEPTION '%', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; END; has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', true, dryrun => $2); @@ -70,8 +70,8 @@ BEGIN has_geom := _pgr_checkColumn(edges_sql, 'geom', 'geometry', true, dryrun => $2); has_start := _pgr_checkColumn(edges_sql, 'startpoint', 'geometry', true, dryrun => $2); has_end := _pgr_checkColumn(edges_sql, 'endpoint', 'geometry', true, dryrun => $2); - has_points = has_start AND has_end; - has_st = has_source AND has_target; + has_points := has_start AND has_end; + has_st := has_source AND has_target; IF (NOT has_geom) THEN IF (has_target AND NOT has_source) THEN From 8f010b2ab0bb3121e6caccc96c9cb4d27163d4bb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 23:12:44 +0000 Subject: [PATCH 093/141] Update locale: commit 695af1e09 --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 28 +++++++++++-------- locale/pot/pgrouting_doc_strings.pot | 28 +++++++++++-------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 3933bf91a4..039a42f927 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-27 18:35+0000\n" +"POT-Creation-Date: 2025-02-27 23:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4404,7 +4404,19 @@ msgstr "" msgid "pgRouting 3.8.0 Release Notes" msgstr "" -msgid "No Changes Yet" +msgid "Changes on proposed functions" +msgstr "" + +msgid "pgr_extractVertices" +msgstr "" + +msgid "Error messages adjustment." +msgstr "" + +msgid "pgr_findCloseEdges" +msgstr "" + +msgid "pgr_degree" msgstr "" msgid "All releases" @@ -10200,6 +10212,9 @@ msgid "" " of edges incident to the vertex." msgstr "" +msgid "Version 3.8.0" +msgstr "" + msgid "Calculates the degree of the vertices of an **undirected** graph" msgstr "" @@ -11451,9 +11466,6 @@ msgstr "" msgid "``pgr_extractVertices`` — Extracts the vertices information" msgstr "" -msgid "Classified as **proposed** function" -msgstr "" - msgid "" "This is an auxiliary function for extracting the vertex information of " "the set of edges of a graph." @@ -15761,9 +15773,6 @@ msgstr "" msgid "Changes on the documentation to the following:" msgstr "" -msgid "pgr_degree" -msgstr "" - msgid "pgr_dijkstra" msgstr "" @@ -16155,9 +16164,6 @@ msgstr "" msgid "pgr_sequentialVertexColoring" msgstr "" -msgid "pgr_extractVertices" -msgstr "" - msgid "Traversal" msgstr "" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index bb2040b4f0..aa73c611d5 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-27 18:35+0000\n" +"POT-Creation-Date: 2025-02-27 23:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3928,7 +3928,19 @@ msgstr "" msgid "pgRouting 3.8.0 Release Notes" msgstr "" -msgid "No Changes Yet" +msgid "Changes on proposed functions" +msgstr "" + +msgid "pgr_extractVertices" +msgstr "" + +msgid "Error messages adjustment." +msgstr "" + +msgid "pgr_findCloseEdges" +msgstr "" + +msgid "pgr_degree" msgstr "" msgid "All releases" @@ -8713,6 +8725,9 @@ msgstr "" msgid "``pgr_degree`` — For each vertex in an undirected graph, return the count of edges incident to the vertex." msgstr "" +msgid "Version 3.8.0" +msgstr "" + msgid "Calculates the degree of the vertices of an **undirected** graph" msgstr "" @@ -9745,9 +9760,6 @@ msgstr "" msgid "``pgr_extractVertices`` — Extracts the vertices information" msgstr "" -msgid "Classified as **proposed** function" -msgstr "" - msgid "This is an auxiliary function for extracting the vertex information of the set of edges of a graph." msgstr "" @@ -13201,9 +13213,6 @@ msgstr "" msgid "Changes on the documentation to the following:" msgstr "" -msgid "pgr_degree" -msgstr "" - msgid "pgr_dijkstra" msgstr "" @@ -13516,9 +13525,6 @@ msgstr "" msgid "pgr_sequentialVertexColoring" msgstr "" -msgid "pgr_extractVertices" -msgstr "" - msgid "Traversal" msgstr "" From 4fdb120d176dba71ea79728477a61821cbd0f95e Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 26 Feb 2025 11:08:10 -0600 Subject: [PATCH 094/141] pgr_extractVertices promoted to official --- NEWS.md | 5 ++++- doc/src/release_notes.rst | 4 +++- doc/topology/pgr_extractVertices.rst | 10 +++------- doc/topology/topology-functions.rst | 4 ++-- sql/topology/extractVertices.sql | 1 - 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/NEWS.md b/NEWS.md index 75a8bd8d6b..51a73014ea 100644 --- a/NEWS.md +++ b/NEWS.md @@ -8,11 +8,14 @@ ### pgRouting 3.8.0 Release Notes -**Changes on proposed functions** +**Promotion to official function of pgRouting.** * pgr_extractVertices * Error messages adjustment. + * Function promoted to official. + +**Changes on proposed functions** * pgr_findCloseEdges diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 3870e08f77..d7748848c5 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -39,7 +39,7 @@ pgRouting 3.8 pgRouting 3.8.0 Release Notes ------------------------------------------------------------------------------- -.. rubric:: Changes on proposed functions +.. rubric:: Promotion to official function of pgRouting. * pgr_extractVertices @@ -47,6 +47,8 @@ pgRouting 3.8.0 Release Notes :start-after: Version 3.8.0 :end-before: .. rubric +.. rubric:: Changes on proposed functions + * pgr_findCloseEdges .. include:: pgr_findCloseEdges.rst diff --git a/doc/topology/pgr_extractVertices.rst b/doc/topology/pgr_extractVertices.rst index 32fb2d9f72..d0e0e5c42f 100644 --- a/doc/topology/pgr_extractVertices.rst +++ b/doc/topology/pgr_extractVertices.rst @@ -9,25 +9,21 @@ .. index:: single: Topology Family ; pgr_extractVertices - single: extractVertices - Proposed on v3.3 + single: extractVertices | -``pgr_extractVertices`` -- Proposed +``pgr_extractVertices`` =============================================================================== ``pgr_extractVertices`` — Extracts the vertices information - -.. include:: proposed.rst - :start-after: warning-begin - :end-before: end-warning - .. rubric:: Availability .. rubric:: Version 3.8.0 * Error messages adjustment. +* Function promoted to official. .. rubric:: Version 3.3.0 diff --git a/doc/topology/topology-functions.rst b/doc/topology/topology-functions.rst index 41c2563e33..cd876dea97 100644 --- a/doc/topology/topology-functions.rst +++ b/doc/topology/topology-functions.rst @@ -34,6 +34,8 @@ have special permissions given by the administrators to use them. table. - :doc:`pgr_analyzeOneWay` - to analyze directionality of the edges. - :doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table. +- :doc:`pgr_extractVertices` - Extracts vertex information based on the edge + table information. .. official-end @@ -60,8 +62,6 @@ Additional functions to analyze a graph: These proposed functions do not modify the database. - :doc:`pgr_degree` - Returns a set of vertices and corresponding count of incidet edges to the vertex. -- :doc:`pgr_extractVertices` - Extracts vertex information based on the edge - table information. .. proposed-end diff --git a/sql/topology/extractVertices.sql b/sql/topology/extractVertices.sql index 26cb099f93..c3158b3a8b 100644 --- a/sql/topology/extractVertices.sql +++ b/sql/topology/extractVertices.sql @@ -298,7 +298,6 @@ LANGUAGE plpgsql VOLATILE STRICT; COMMENT ON FUNCTION pgr_extractVertices(TEXT, BOOLEAN) IS 'pgr_extractVertices -- PROPOSED - Parameters - Edges SQL with columns: [id,] startpoint, endpoint OR From 1fce8c9443c79aacc17b212451049253b84c9ee0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 19:10:38 +0000 Subject: [PATCH 095/141] Update locale: commit 4fdb120d1 --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 25 +++++++++++-------- locale/pot/pgrouting_doc_strings.pot | 21 +++++++++------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 039a42f927..f463a0df58 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-27 23:12+0000\n" +"POT-Creation-Date: 2025-03-01 19:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4362,6 +4362,11 @@ msgstr "" msgid ":doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table." msgstr "" +msgid "" +":doc:`pgr_extractVertices` - Extracts vertex information based on the " +"edge table information." +msgstr "" + msgid ":doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP)" msgstr "" @@ -4404,7 +4409,7 @@ msgstr "" msgid "pgRouting 3.8.0 Release Notes" msgstr "" -msgid "Changes on proposed functions" +msgid "Promotion to official function of pgRouting." msgstr "" msgid "pgr_extractVertices" @@ -4413,6 +4418,12 @@ msgstr "" msgid "Error messages adjustment." msgstr "" +msgid "Function promoted to official." +msgstr "" + +msgid "Changes on proposed functions" +msgstr "" + msgid "pgr_findCloseEdges" msgstr "" @@ -7847,9 +7858,6 @@ msgstr "" msgid "pgr_aStar(Combinations)" msgstr "" -msgid "Function promoted to official." -msgstr "" - msgid "Version 2.4.0" msgstr "" @@ -11460,7 +11468,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Shortest_Path_Faster_Algorithm" msgstr "" -msgid "``pgr_extractVertices`` -- Proposed" +msgid "``pgr_extractVertices``" msgstr "" msgid "``pgr_extractVertices`` — Extracts the vertices information" @@ -15357,11 +15365,6 @@ msgid "" "incidet edges to the vertex." msgstr "" -msgid "" -":doc:`pgr_extractVertices` - Extracts vertex information based on the " -"edge table information." -msgstr "" - msgid "" ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line " "Graph." diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index aa73c611d5..25b34fae47 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-27 23:12+0000\n" +"POT-Creation-Date: 2025-03-01 19:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3886,6 +3886,9 @@ msgstr "" msgid ":doc:`pgr_nodeNetwork` - to create nodes to a not noded edge table." msgstr "" +msgid ":doc:`pgr_extractVertices` - Extracts vertex information based on the edge table information." +msgstr "" + msgid ":doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP)" msgstr "" @@ -3928,7 +3931,7 @@ msgstr "" msgid "pgRouting 3.8.0 Release Notes" msgstr "" -msgid "Changes on proposed functions" +msgid "Promotion to official function of pgRouting." msgstr "" msgid "pgr_extractVertices" @@ -3937,6 +3940,12 @@ msgstr "" msgid "Error messages adjustment." msgstr "" +msgid "Function promoted to official." +msgstr "" + +msgid "Changes on proposed functions" +msgstr "" + msgid "pgr_findCloseEdges" msgstr "" @@ -6823,9 +6832,6 @@ msgstr "" msgid "pgr_aStar(Combinations)" msgstr "" -msgid "Function promoted to official." -msgstr "" - msgid "Version 2.4.0" msgstr "" @@ -9754,7 +9760,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Shortest_Path_Faster_Algorithm" msgstr "" -msgid "``pgr_extractVertices`` -- Proposed" +msgid "``pgr_extractVertices``" msgstr "" msgid "``pgr_extractVertices`` — Extracts the vertices information" @@ -12898,9 +12904,6 @@ msgstr "" msgid ":doc:`pgr_degree` - Returns a set of vertices and corresponding count of incidet edges to the vertex." msgstr "" -msgid ":doc:`pgr_extractVertices` - Extracts vertex information based on the edge table information." -msgstr "" - msgid ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." msgstr "" From b95eb8358a0438e5be2ec0cce59157f19724a917 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 2 Mar 2025 08:54:04 -0600 Subject: [PATCH 096/141] (pgr_findCloseEdges) Remove partial option - New SQL without partial parameter - Deprecation of SQL with partial parameter - Update script adjustment - Documentation cleanup - Using the function on the sample data and concepts - Remove examples with partial parameter - pgTap tests - (tools) New function to pgtap function types - Added tests for the deprecated signature as is still usable - Updated release notes and NEWS --- NEWS.md | 1 + doc/src/pgRouting-concepts.rst | 10 +- doc/src/sampledata.rst | 60 ++- doc/utilities/pgr_findCloseEdges.rst | 456 ++++-------------- docqueries/src/concepts.pg | 25 +- docqueries/src/concepts.result | 40 +- docqueries/src/sampledata.result | 50 +- docqueries/src/withPoints-category.result | 4 +- docqueries/utilities/findCloseEdges.pg | 83 +--- docqueries/utilities/findCloseEdges.result | 217 +++------ pgtap/utilities/findCloseEdges/edge_cases.pg | 84 +++- pgtap/utilities/findCloseEdges/types_check.pg | 55 ++- sql/scripts/build-extension-update-files.pl | 10 +- sql/sigs/pgrouting--3.8.sig | 2 + sql/utilities/findCloseEdges.sql | 236 ++++----- tools/testers/general_pgtap_tests.sql | 16 + tools/testers/sampledata.sql | 38 +- 17 files changed, 605 insertions(+), 782 deletions(-) diff --git a/NEWS.md b/NEWS.md index 51a73014ea..a1a4eaceca 100644 --- a/NEWS.md +++ b/NEWS.md @@ -20,6 +20,7 @@ * pgr_findCloseEdges * Error messages adjustment. + * ``partial`` option is removed. * pgr_degree diff --git a/doc/src/pgRouting-concepts.rst b/doc/src/pgRouting-concepts.rst index 07177a3b5e..f81cc4df3f 100644 --- a/doc/src/pgRouting-concepts.rst +++ b/doc/src/pgRouting-concepts.rst @@ -1896,10 +1896,18 @@ To get faster results bound the queries to an area of interest of routing. In this example Use an inner query SQL that does not include some edges in the routing function and is within the area of the results. +Given this area: + .. literalinclude:: concepts.queries :start-after: -- performance1 :end-before: -- performance2 +Calculate a route: + +.. literalinclude:: concepts.queries + :start-after: -- performance2 + :end-before: -- performance3 + How to contribute ------------------------------------------------------------------------------- @@ -1917,7 +1925,7 @@ How to contribute * `Example `__ -.. rubric:: Adding Functionaity to pgRouting +.. rubric:: Adding Functionality to pgRouting Consult the `developer's documentation diff --git a/doc/src/sampledata.rst b/doc/src/sampledata.rst index 7535489873..8b9e7df870 100644 --- a/doc/src/sampledata.rst +++ b/doc/src/sampledata.rst @@ -15,8 +15,8 @@ Sample Data The documentation provides very simple example queries based on a small sample network that resembles a city. -To be able to execute the mayority of the examples queries, follow the -instructions bellow. +To be able to execute the majority of the examples queries, follow the +instructions below. .. contents:: :local: @@ -31,7 +31,7 @@ The following city is to be inserted into the database: .. figure:: /images/Fig1-originalData.png Information known at this point is the geometry of the edges, cost values, -cpacity values, category values and some locations that are not in the graph. +capacity values, category values and some locations that are not in the graph. The process to have working topology starts by inserting the edges. After that everything else is calculated. @@ -40,9 +40,9 @@ Edges ............................................................................... The database design for the documentation of pgRouting, keeps in the same row 2 -segments, one in the direction of the geometry and the second in the oposite -direction. Therfore some information has the ``reverse_`` prefix which -corresponds to the segment on the oposite direction of the geometry. +segments, one in the direction of the geometry and the second in the opposite +direction. Therefore some information has the ``reverse_`` prefix which +corresponds to the segment on the opposite direction of the geometry. .. list-table:: :width: 81 @@ -72,12 +72,12 @@ corresponds to the segment on the oposite direction of the geometry. * - ``x1`` - :math:`x` coordinate of the starting vertex of the geometry. - - For convinience it is saved on the table but can be calculated as + - For convenience it is saved on the table but can be calculated as ``ST_X(ST_StartPoint(geom))``. * - ``y2`` - :math:`y` coordinate of the ending vertex of the geometry. - - For convinience it is saved on the table but can be calculated as + - For convenience it is saved on the table but can be calculated as ``ST_Y(ST_EndPoint(geom))``. * - ``geom`` - The geometry of the segments. @@ -96,11 +96,11 @@ Starting on PostgreSQL 12:: ... Optionally indexes on different columns can be created. -The recomendation is to have +The recommendation is to have * ``id`` indexed. * ``source`` and ``target`` columns indexed to speed up pgRouting queries. -* ``geom`` indexed to speed up gemetry processes that might be needed in the +* ``geom`` indexed to speed up geometry processes that might be needed in the front end. For this small example the indexes are skipped, except for ``id`` @@ -197,27 +197,53 @@ will be stored on a table. * - ``pid`` - A unique identifier. * - ``edge_id`` - - Identifier of the edge nearest edge that allows an arrival to the point. + - Identifier of the nearest segment. * - ``side`` - - Is it on the left, right or both sides of the segment ``edge_id`` + - Is it on the left, right or both sides of the segment ``edge_id``. * - ``fraction`` - Where in the segment is the point located. * - ``geom`` - The geometry of the points. + * - ``distance`` + - The distance between ``geom`` and the segment ``edge_id``. + * - ``edge`` + - A segment that connects the ``geom`` of the point to the closest point + on the segment ``edge_id``. * - ``newPoint`` - - The geometry of the points moved on top of the segment. + - A point on segment ``edge_id`` that is the closest to ``geom``. .. literalinclude:: sampledata.queries :start-after: -- p1 :end-before: -- p2 -Points of interest fillup +Points of interest fill up +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Inserting the points of interest. + .. literalinclude:: sampledata.queries :start-after: -- p2 :end-before: -- p3 +Filling the rest of the table. + +.. literalinclude:: sampledata.queries + :start-after: -- p3 + :end-before: -- p4 + +Any other additional modification: In this manual, point :math:`6` can be +reached from both sides. + +.. literalinclude:: sampledata.queries + :start-after: -- p4 + :end-before: -- p5 + +The points of interest: + +.. literalinclude:: sampledata.queries + :start-after: -- p5 + :end-before: -- p6 + .. pois_end Support tables @@ -229,7 +255,7 @@ Combinations Many functions can be used with a combinations of ``(source, target)`` pairs when wanting a route from ``source`` to ``target``. -For convinence of this documentations, some combinations will be stored on a +For convenience of this documentation, some combinations will be stored on a table: .. literalinclude:: sampledata.queries @@ -347,7 +373,7 @@ https://www.sintef.no/projectweb/top/pdptw/li-lim-benchmark/ The vehicles ............................................................................... -There are 25 vehciles in the problem all with the same characteristics. +There are 25 vehicles in the problem all with the same characteristics. .. literalinclude:: lc101.queries :start-after: -- q1 @@ -366,7 +392,7 @@ order. The orders ............................................................................... -The original data needs to be converted to an appropiate table: +The original data needs to be converted to an appropriate table: .. literalinclude:: lc101.queries :start-after: -- q3 diff --git a/doc/utilities/pgr_findCloseEdges.rst b/doc/utilities/pgr_findCloseEdges.rst index 0cf77aa0fe..d15a765218 100644 --- a/doc/utilities/pgr_findCloseEdges.rst +++ b/doc/utilities/pgr_findCloseEdges.rst @@ -23,6 +23,7 @@ .. rubric:: Version 3.8.0 * Error messages adjustment. +* ``partial`` option is removed. .. rubric:: Version 3.4.0 @@ -37,7 +38,7 @@ point geometry. * The geometries must be in the same coordinate system (have the same SRID). * The code to do the calculations can be obtained for further specific adjustments needed by the application. -* ``EMTPY SET`` is returned on dryrun executions +* ``EMPTY SET`` is returned on dryrun executions |Boost| Boost Graph Inside @@ -51,13 +52,13 @@ Signatures | pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**]) | pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**]) - | **options:** ``[cap, partial, dryrun]`` + | **options:** ``[cap, dryrun]`` | Returns set of |result-find| | OR EMPTY SET .. index:: - single: findCloseEdges - Proposed ; One point - Proposed on 3.4 + single: findCloseEdges - Proposed ; One point - Proposed on 3.6 One point ............................................................................... @@ -66,33 +67,21 @@ One point :class: signatures | pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**]) - | **options:** [cap, partial, dryrun]`` + | **options:** ``[cap, dryrun]`` | Returns set of |result-find| | OR EMPTY SET -:Example: With default values +:Example: Get two close edges to points of interest with :math:`pid = 5` -* Default: ``cap => 1`` - - * Maximum one row answer. -* Default: ``partial => true`` - - * With less calculations as possible. -* Default: ``dryrun => false`` - - * Process query -* Returns - - * values on ``edge_id``, ``fraction``, ``side`` columns. - * ``NULL`` on ``distance``, ``geom``, ``edge`` columns. +* ``cap => 2`` .. literalinclude:: findCloseEdges.queries :start-after: -- q1 :end-before: -- q2 .. index:: - single: findCloseEdges - Proposed ; Many points - Proposed on 3.4 + single: findCloseEdges - Proposed ; Many points - Proposed on 3.6 Many points ............................................................................... @@ -101,26 +90,17 @@ Many points :class: signatures | pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**]) - | **options:** ``[cap, partial, dryrun]`` + | **options:** ``[cap, dryrun]`` | Returns set of |result-find| | OR EMPTY SET -:Example: Find at most :math:`2` edges close to all vertices on the points of - interest table. - -One answer per point, as small as possible. +:Example: For each points of interests, find the closest edge. .. literalinclude:: findCloseEdges.queries :start-after: -- q2 :end-before: -- q3 -Columns ``edge_id``, ``fraction``, ``side`` and ``geom`` are returned with -values. - -``geom`` contains the original point geometry to assist on deterpartialing to which -point geometry the row belongs to. - Parameters ------------------------------------------------------------------------------- @@ -162,12 +142,6 @@ Optional parameters - ``INTEGER`` - :math:`1` - Limit output rows - * - ``partial`` - - ``BOOLEAN`` - - ``true`` - - * When ``true`` only columns needed for :doc:`withPoints-category` are - calculated. - * When ``false`` all columns are calculated * - ``dryrun`` - ``BOOLEAN`` - ``false`` @@ -216,127 +190,26 @@ Returns set of |result-find| * When :math:`cap = 1`, it is the closest edge. * - ``fraction`` - ``FLOAT`` - - Value in <0,1> that indicates the relative postition from the first + - Value in <0,1> that indicates the relative position from the first end-point of the edge. * - ``side`` - ``CHAR`` - Value in ``[r, l]`` indicating if the point is: - * In the right ``r``. - * In the left ``l``. + * At the right ``r`` of the segment. * When the point is on the line it is considered to be on the right. + * At the left ``l`` of the segment. * - ``distance`` - ``FLOAT`` - - Distance from point to edge. - - * ``NULL`` when ``cap = 1`` on the `One point`_ signature + - Distance from the point to the edge. * - ``geom`` - ``geometry`` - - ``POINT`` geometry - - * `One Point`_: Contains the point on the edge that is ``fraction`` away - from the starting point of the edge. - * `Many Points`_: Contains the corresponding **original point** + - Original ``POINT`` geometry. * - ``edge`` - ``geometry`` - - ``LINESTRING`` geometry from the **original point** to the closest point - of the edge with identifier ``edge_id`` - - -.. rubric:: One point results - -* The green nodes is the **original point** -* The geometry ``geom`` is a point on the :math:`sp \rightarrow ep` edge. -* The geometry ``edge`` is a line that connects the **original point** with - ``geom`` - -.. graphviz:: - - digraph G { - splines=false; - subgraph cluster0 { - point [shape=circle;style=filled;color=green]; - geom [shape=point;color=black;size=0]; - sp, ep; - - edge[weight=0]; - point -> geom [dir=none; penwidth=0, color=red]; - edge[weight=2]; - sp -> geom -> ep [dir=none;penwidth=3 ]; - - {rank=same; point, geom} - } - - subgraph cluster1 { - point1 [shape=circle;style=filled;color=green;label=point]; - geom1 [shape=point;color=deepskyblue; xlabel="geom"; width=0.3]; - sp1 [label=sp]; ep1 [label=ep]; - - edge[weight=0]; - point1 -> geom1 [weight=0, penwidth=3, color=red, - label="edge"]; - edge[weight=2]; - sp1 -> geom1 -> ep1 [dir=none;weight=1, penwidth=3 ]; - - - geom1 -> point1 [dir=none;weight=0, penwidth=0, color=red]; - {rank=same; point1, geom1} - } - } - -.. rubric:: Many point results - -* The green nodes are the **original points** -* The geometry ``geom``, marked as **g1** and **g2** are the **original - points** -* The geometry ``edge``, marked as **edge1** and **edge2** is a line that - connects the **original point** with the closest point on the :math:`sp - \rightarrow ep` edge. - -.. graphviz:: - - digraph G { - splines = false; - subgraph cluster0 { - p1 [shape=circle;style=filled;color=green]; - g1 [shape=point;color=black;size=0]; - g2 [shape=point;color=black;size=0]; - sp, ep; - p2 [shape=circle;style=filled;color=green]; - - sp -> g1 [dir=none;weight=1, penwidth=3 ]; - g1 -> g2 [dir=none;weight=1, penwidth=3 ]; - g2 -> ep [weight=1, penwidth=3 ]; - - g2 -> p2 [dir=none;weight=0, penwidth=0, color=red, partiallen=3]; - p1 -> g1 [dir=none;weight=0, penwidth=0, color=red, partiallen=3]; - p1 -> {g1, g2} [dir=none;weight=0, penwidth=0, color=red;] - - {rank=same; p1; g1} - {rank=same; p2; g2} - } - subgraph cluster1 { - p3 [shape=circle;style=filled;color=deepskyblue;label=g1]; - g3 [shape=point;color=black;size=0]; - g4 [shape=point;color=black;size=0]; - sp1 [label=sp]; ep1 [label=ep]; - p4 [shape=circle;style=filled;color=deepskyblue;label=g2]; - - sp1 -> g3 [dir=none;weight=1, penwidth=3 ]; - g3 -> g4 [dir=none;weight=1, penwidth=3,len=10]; - g4 -> ep1 [weight=1, penwidth=3, len=10]; - - g4 -> p4 [dir=back;weight=0, penwidth=3, color=red, partiallen=3, - label="edge2"]; - p3 -> g3 [weight=0, penwidth=3, color=red, partiallen=3, - label="edge1"]; - p3 -> {g3, g4} [dir=none;weight=0, penwidth=0, color=red]; - - {rank=same; p3; g3} - {rank=same; p4; g4} - } - } + - ``LINESTRING`` geometry that connects the original **point** to the + closest point of the edge with identifier ``edge_id`` Additional Examples @@ -345,261 +218,128 @@ Additional Examples .. contents:: :local: -One point examples +One point in an edge ............................................................................... -At most two answers -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -* ``cap => 2`` - - * Maximum two row answer. -* Default: ``partial => true`` - - * With less calculations as possible. -* Default: ``dryrun => false`` - - * Process query - .. literalinclude:: findCloseEdges.queries - :start-after: -- o1 - :end-before: -- o2 - -.. rubric:: Understanding the result - -* ``NULL`` on ``geom``, ``edge`` -* ``edge_id`` identifier of the edge close to the **original point** - - * Two edges are withing :math:`0.5` distance units from the **original - point**: :math:`{5, 8}` -* For edge :math:`5`: - - * ``fraction``: The closest point from the **original point** is at the - :math:`0.8` fraction of the edge :math:`5`. - * ``side``: The **original point** is located to the left side of edge - :math:`5`. - * ``distance``: The **original point** is located :math:`0.1` length units - from edge :math:`5`. -* For edge :math:`8`: - - * ``fraction``: The closest point from the **original point** is at the - :math:`0.89..` fraction of the edge :math:`8`. - * ``side``: The **original point** is located to the right side of edge - :math:`8`. - * ``distance``: The **original point** is located :math:`0.19..` length units - from edge :math:`8`. - -One answer, all columns -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -* Default: ``cap => 1`` + :start-after: -- o0 + :end-before: -- o1 - * Maximum one row answer. -* ``partial => false`` - - * Calculate all columns -* Default: ``dryrun => false`` - - * Process query - -.. literalinclude:: findCloseEdges.queries - :start-after: -- o2 - :end-before: -- o3 - -.. rubric:: Understanding the result - -* ``edge_id`` identifier of the edge **closest** to the **original point** +.. graphviz:: - * From all edges within :math:`0.5` distance units from the **original - point**: :math:`{5}` is the closest one. -* For edge :math:`5`: + digraph D { + subgraph cluster0 { + label="data"; + point [shape=circle;style=filled;color=green;fontsize=8;width=0.3;fixedsize=true]; + point [pos="0,1.5!"] - * ``fraction``: The closest point from the **original point** is at the - :math:`0.8` fraction of the edge :math:`5`. - * ``side``: The **original point** is located to the left side of edge - :math:`5`. - * ``distance``: The **original point** is located :math:`0.1` length units - from edge :math:`5`. - * ``geom``: Contains the geometry of the closest point on edge :math:`5` from - the **original point**. - * ``edge``: Contains the ``LINESTRING`` geometry of the **original point** to - the closest point on on edge :math:`5` ``geom`` + sp, ep [shape=circle;fontsize=8;width=0.3;fixedsize=true]; + sp[pos="2,0!"] + ep[pos="2,3!"] -At most two answers with all columns -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + sp -> ep:s + } + subgraph cluster1 { + label="results"; + geom [shape=circle;style=filled;color=green;fontsize=8;width=0.3;fixedsize=true]; + geom [pos="3,1.5!"] -* ``cap => 2`` + np11 [shape=point;color=black;size=0;fontsize=8;fixedsize=true]; + np11 [pos="5,1.5!";xlabel="fraction=0.5"]; - * Maximum two row answer. -* ``partial => false`` + sp1, ep1 [shape=circle;fontsize=8;width=0.3;fixedsize=true]; + sp1[pos="5,0!"] + ep1[pos="5,3!"] - * Calculate all columns -* Default: ``dryrun => false`` + sp1:n -> np11:s [dir=none] + np11:n -> ep1:s - * Process query + geom -> np11 [color=red,label="edge"]; + } + } -.. literalinclude:: findCloseEdges.queries - :start-after: -- o3 - :end-before: -- o4 - -.. rubric:: Understanding the result: - -* ``edge_id`` identifier of the edge close to the **original point** - - * Two edges are withing :math:`0.5` distance units from the **original - point**: :math:`{5, 8}` -* For edge :math:`5`: - - * ``fraction``: The closest point from the **original point** is at the - :math:`0.8` fraction of the edge :math:`5`. - * ``side``: The **original point** is located to the left side of edge - :math:`5`. - * ``distance``: The **original point** is located :math:`0.1` length units - from edge :math:`5`. - * ``geom``: Contains the geometry of the closest point on edge :math:`5` from - the **original point**. - * ``edge``: Contains the ``LINESTRING`` geometry of the **original point** to - the closest point on on edge :math:`5` ``geom`` -* For edge :math:`8`: - - * ``fraction``: The closest point from the **original point** is at the - :math:`0.89..` fraction of the edge :math:`8`. - * ``side``: The **original point** is located to the right side of edge - :math:`8`. - * ``distance``: The **original point** is located :math:`0.19..` length units - from edge :math:`8`. - * ``geom``: Contains the geometry of the closest point on edge :math:`8` from - the **original point**. - * ``edge``: Contains the ``LINESTRING`` geometry of the **original point** to - the closest point on on edge :math:`8` ``geom`` +* The green node is the original point. +* ``geom`` has the value of the original point. +* The geometry ``edge`` is a line that connects the original point with the edge + :math:`sp \rightarrow ep` edge. +* The point is located at the left of the edge. One point dry run execution -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -* Returns ``EMPTY SET``. - +............................................................................... -* ``partial => true`` +Using the query from the previous example: - * Is ignored - * Because it is a **dry run** excecution, the code for all calculations are - shown on the PostgreSQL ``NOTICE``. +* Returns ``EMPTY SET``. * ``dryrun => true`` - * Do not process query - * Generate a PostgreSQL ``NOTICE`` with the code used to calculate all columns - - * ``cap`` and **original point** are used in the code + * Generates a PostgreSQL ``NOTICE`` with the code used. + * The generated code can be used as a starting base code for additional + requirements, like taking into consideration the SRID. .. literalinclude:: findCloseEdges.queries :start-after: -- o5 :end-before: -- o6 -Many points examples +Many points in an edge ............................................................................... -At most two answers per point -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -* ``cap => 2`` - - * Maximum two row answer. -* Default: ``partial => true`` - - * With less calculations as possible. -* Default: ``dryrun => false`` - - * Process query +* The green nodes are the **original points** +* The geometry ``geom``, marked as **g1** and **g2** are the **original + points** +* The geometry ``edge``, marked as **edge1** and **edge2** is a line that + connects the **original point** with the closest point on the :math:`sp + \rightarrow ep` edge. .. literalinclude:: findCloseEdges.queries - :start-after: -- m1 - :end-before: -- m2 - -.. rubric:: Understanding the result - -* ``NULL`` on ``edge`` -* ``edge_id`` identifier of the edge close to a **original point** (``geom``) - - * Two edges at most withing :math:`0.5` distance units from each of the - **original points**: - - * For ``POINT(1.8 0.4)`` and ``POINT(0.3 1.8)`` only one edge was found. - * For the rest of the points two edges were found. -* For point ``POINT(2.9 1.8)`` + :start-after: -- m0 + :end-before: -- m1 - * Edge :math:`5` is before :math:`8` therefore edge :math:`5` has the shortest - distance to ``POINT(2.9 1.8)``. - * For edge :math:`5`: - - * ``fraction``: The closest point from the **original point** is at the - :math:`0.8` fraction of the edge :math:`5`. - * ``side``: The **original point** is located to the left side of edge - :math:`5`. - * ``distance``: The **original point** is located :math:`0.1` length units - from edge :math:`5`. - * For edge :math:`8`: - - * ``fraction``: The closest point from the **original point** is at the - :math:`0.89..` fraction of the edge :math:`8`. - * ``side``: The **original point** is located to the right side of edge - :math:`8`. - * ``distance``: The **original point** is located :math:`0.19..` length - units from edge :math:`8`. - -One answer per point, all columns -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -* Default: ``cap => 1`` +.. graphviz:: - * Maximum one row answer. -* ``partial => false`` + digraph G { + subgraph cluster0 { + p1,p2 [shape=circle;style=filled;color=green;fontsize=8;width=0.3;fixedsize=true]; + p1 [pos="0,2!"] + p2 [pos="3,1!"] - * Calculate all columns -* Default: ``dryrun => false`` + sp, ep [shape=circle;fontsize=8;width=0.3;fixedsize=true]; + sp[pos="1,0!"] + ep[pos="1,3!"] - * Process query + sp -> ep:s + } -.. literalinclude:: findCloseEdges.queries - :start-after: -- m2 - :end-before: -- m3 + subgraph cluster1 { + g1, g2 [shape=circle;style=filled;color=green;fontsize=8;width=0.3;fixedsize=true]; + g1 [pos="4,2!"] + g2 [pos="7,1!"] -.. rubric:: Understanding the result + np11,np21 [shape=point;color=black;size=0;fontsize=8;fixedsize=true]; + np11 [pos="5,2!";xlabel="fraction=0.63"]; + np21 [pos="5,1!";xlabel="fraction=0.33"]; -* ``edge_id`` identifier of the edge **closest** to the **original point** + sp1, ep1 [shape=circle;fontsize=8;width=0.3;fixedsize=true]; + sp1[pos="5,0!"] + ep1[pos="5,3!"] - * From all edges within :math:`0.5` distance units from the **original - point**: :math:`{5}` is the closest one. -* For the **original point** ``POINT(2.9 1.8)`` + sp1:n -> np21:s [dir=none] + np21:n -> np11:s [dir=none] + np11:n -> ep1:s - * Edge :math:`5` is the closest edge to the **original point** - * ``fraction``: The closest point from the **original point** is at the - :math:`0.8` fraction of the edge :math:`5`. - * ``side``: The **original point** is located to the left side of edge - :math:`5`. - * ``distance``: The **original point** is located :math:`0.1` length units - from edge :math:`5`. - * ``geom``: Contains the geometry of the **original point** ``POINT(2.9 1.8)`` - * ``edge``: Contains the ``LINESTRING`` geometry of the **original point** - (``geom``) to the closest point on on edge. + g1 -> np11 [color=red;label="edge"]; + g2 -> np21 [color=red;label="edge"] + } + } Many points dry run execution -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +............................................................................... * Returns ``EMPTY SET``. - - -* ``partial => true`` - - * Is ignored - * Because it is a **dry run** excecution, the code for all calculations are - shown on the PostgreSQL ``NOTICE``. * ``dryrun => true`` * Do not process query * Generate a PostgreSQL ``NOTICE`` with the code used to calculate all columns - * ``cap`` and **original point** are used in the code - .. literalinclude:: findCloseEdges.queries :start-after: -- m4 :end-before: -- m5 @@ -622,14 +362,6 @@ Handling points outside the graph. :start-after: pois_start :end-before: pois_end -Connecting disconnected components -............................................................................... - -.. include:: pgRouting-concepts.rst - :start-after: connecting_graph_start - :end-before: connecting_graph_end - - See Also ------------------------------------------------------------------------------- diff --git a/docqueries/src/concepts.pg b/docqueries/src/concepts.pg index ca96938fdf..3ea5eae507 100644 --- a/docqueries/src/concepts.pg +++ b/docqueries/src/concepts.pg @@ -10,9 +10,6 @@ FROM (VALUES (1, 1, 2, 5, 2), (2, 1, 3, -3, 4), (3, 2, 3, 7, -1)) AS t(id, source, target, cost, reverse_cost); /* -- g3 */ - - - DROP TABLE IF EXISTS wiki; /* -- q1 */ CREATE TABLE wiki ( @@ -183,7 +180,7 @@ SELECT edge_id, fraction, ST_AsText(edge) AS edge, id AS closest_vertex FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges WHERE component = 1$$, (SELECT array_agg(geom) FROM vertices WHERE component = 2), - 2, partial => false) JOIN vertices USING (geom) ORDER BY distance LIMIT 1; + 2) JOIN vertices USING (geom) ORDER BY distance LIMIT 1; /* -- connect7 */ WITH info AS ( @@ -193,7 +190,7 @@ info AS ( FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges WHERE component = 1$$, (SELECT array_agg(geom) FROM vertices WHERE component = 2), - 2, partial => false) AS ce + 2) AS ce JOIN vertices AS v USING (geom) JOIN edges AS e ON (edge_id = e.id) ORDER BY distance LIMIT 1), @@ -245,9 +242,17 @@ WHERE array_length(in_edges || out_edges, 1) = 2; /* -- contract3 */ /* -- performance1 */ -SELECT * FROM pgr_dijkstra($$ - SELECT id, source, target, cost, reverse_cost from edges - WHERE geom && (SELECT st_buffer(geom, 1) AS myarea - FROM edges WHERE id = 2)$$, - 1, 2); +SELECT id, source, target, cost, reverse_cost +FROM edges +WHERE geom && ( + SELECT st_buffer(geom, 1) as myarea + FROM edges where id = 6) ORDER BY id; /* -- performance2 */ +SELECT * FROM pgr_dijkstra($$ + SELECT id, source, target, cost, reverse_cost + FROM edges + WHERE geom && ( + SELECT st_buffer(geom, 1) AS myarea + FROM edges WHERE id = 6)$$, + 7, 8); +/* -- performance3 */ diff --git a/docqueries/src/concepts.result b/docqueries/src/concepts.result index aa3e79b767..39b66bb980 100644 --- a/docqueries/src/concepts.result +++ b/docqueries/src/concepts.result @@ -308,7 +308,7 @@ SELECT edge_id, fraction, ST_AsText(edge) AS edge, id AS closest_vertex FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges WHERE component = 1$$, (SELECT array_agg(geom) FROM vertices WHERE component = 2), - 2, partial => false) JOIN vertices USING (geom) ORDER BY distance LIMIT 1; + 2) JOIN vertices USING (geom) ORDER BY distance LIMIT 1; edge_id | fraction | edge | closest_vertex ---------+----------+--------------------------------------+---------------- 14 | 0.5 | LINESTRING(1.999999999999 3.5,2 3.5) | 4 @@ -323,7 +323,7 @@ info AS ( FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges WHERE component = 1$$, (SELECT array_agg(geom) FROM vertices WHERE component = 2), - 2, partial => false) AS ce + 2) AS ce JOIN vertices AS v USING (geom) JOIN edges AS e ON (edge_id = e.id) ORDER BY distance LIMIT 1), @@ -414,15 +414,39 @@ WHERE array_length(in_edges || out_edges, 1) = 2; /* -- contract3 */ /* -- performance1 */ +SELECT id, source, target, cost, reverse_cost +FROM edges +WHERE geom && ( + SELECT st_buffer(geom, 1) as myarea + FROM edges where id = 6) ORDER BY id; + id | source | target | cost | reverse_cost +----+--------+--------+------+-------------- + 1 | 5 | 6 | 1 | 1 + 2 | 6 | 10 | -1 | 1 + 4 | 6 | 7 | 1 | 1 + 6 | 1 | 3 | 1 | 1 + 7 | 3 | 7 | 1 | 1 + 8 | 7 | 11 | 1 | 1 + 10 | 7 | 8 | 1 | 1 + 12 | 8 | 12 | 1 | -1 + 14 | 8 | 9 | 1 | 1 + 23 | 4 | 8 | 0 | 0 +(10 rows) + +/* -- performance2 */ SELECT * FROM pgr_dijkstra($$ - SELECT id, source, target, cost, reverse_cost from edges - WHERE geom && (SELECT st_buffer(geom, 1) AS myarea - FROM edges WHERE id = 2)$$, - 1, 2); + SELECT id, source, target, cost, reverse_cost + FROM edges + WHERE geom && ( + SELECT st_buffer(geom, 1) AS myarea + FROM edges WHERE id = 6)$$, + 7, 8); seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost -----+----------+-----------+---------+------+------+------+---------- -(0 rows) + 1 | 1 | 7 | 8 | 7 | 10 | 1 | 0 + 2 | 2 | 7 | 8 | 8 | -1 | 0 | 1 +(2 rows) -/* -- performance2 */ +/* -- performance3 */ ROLLBACK; ROLLBACK diff --git a/docqueries/src/sampledata.result b/docqueries/src/sampledata.result index e2f362aa79..b0951777b4 100644 --- a/docqueries/src/sampledata.result +++ b/docqueries/src/sampledata.result @@ -156,18 +156,54 @@ CREATE TABLE pointsOfInterest( edge_id BIGINT, side CHAR, fraction FLOAT, + distance FLOAT, + edge geometry, + newPoint geometry, geom geometry); CREATE TABLE /* -- p2 */ -INSERT INTO pointsOfInterest (edge_id, side, fraction, geom) VALUES -(1, 'l' , 0.4, ST_POINT(1.8, 0.4)), -(15, 'r' , 0.4, ST_POINT(4.2, 2.4)), -(12, 'l' , 0.6, ST_POINT(2.6, 3.2)), -(6, 'r' , 0.3, ST_POINT(0.3, 1.8)), -(5, 'l' , 0.8, ST_POINT(2.9, 1.8)), -(4, 'b' , 0.7, ST_POINT(2.2, 1.7)); +INSERT INTO pointsOfInterest (geom) VALUES +(ST_Point(1.8, 0.4)), +(ST_Point(4.2, 2.4)), +(ST_Point(2.6, 3.2)), +(ST_Point(0.3, 1.8)), +(ST_Point(2.9, 1.8)), +(ST_Point(2.2, 1.7)); INSERT 0 6 /* -- p3 */ +UPDATE pointsofinterest SET + edge_id = poi.edge_id, + side = poi.side, + fraction = round(poi.fraction::numeric, 2), + distance = round(poi.distance::numeric, 2), + edge = poi.edge, + newPoint = ST_EndPoint(poi.edge) +FROM ( + SELECT * + FROM pgr_findCloseEdges( + $$SELECT id, geom FROM edges$$,(SELECT array_agg(geom) FROM pointsOfInterest), 0.5) ) AS poi +WHERE pointsOfInterest.geom = poi.geom; +UPDATE 6 +/* -- p4 */ +UPDATE pointsOfInterest SET side = 'b' WHERE pid = 6; +UPDATE 1 +/* -- p5 */ +SELECT + pid, ST_AsText(geom) geom, + edge_id, fraction AS frac, side, distance AS dist, + ST_AsText(edge) edge, ST_AsText(newPoint) newPoint +FROM pointsOfInterest; + pid | geom | edge_id | frac | side | dist | edge | newpoint +-----+----------------+---------+------+------+------+---------------------------+-------------- + 1 | POINT(1.8 0.4) | 1 | 0.4 | l | 0.2 | LINESTRING(1.8 0.4,2 0.4) | POINT(2 0.4) + 4 | POINT(0.3 1.8) | 6 | 0.3 | r | 0.2 | LINESTRING(0.3 1.8,0.3 2) | POINT(0.3 2) + 3 | POINT(2.6 3.2) | 12 | 0.6 | l | 0.2 | LINESTRING(2.6 3.2,2.6 3) | POINT(2.6 3) + 2 | POINT(4.2 2.4) | 15 | 0.4 | r | 0.2 | LINESTRING(4.2 2.4,4 2.4) | POINT(4 2.4) + 5 | POINT(2.9 1.8) | 5 | 0.8 | l | 0.1 | LINESTRING(2.9 1.8,3 1.8) | POINT(3 1.8) + 6 | POINT(2.2 1.7) | 4 | 0.7 | b | 0.2 | LINESTRING(2.2 1.7,2 1.7) | POINT(2 1.7) +(6 rows) + +/* -- p6 */ /* --POINTS CREATE end */ /* --COMBINATIONS CREATE start */ /* -- c1 */ diff --git a/docqueries/src/withPoints-category.result b/docqueries/src/withPoints-category.result index 20deee8b5b..44e1f236cf 100644 --- a/docqueries/src/withPoints-category.result +++ b/docqueries/src/withPoints-category.result @@ -7,9 +7,9 @@ SELECT pid, edge_id, fraction, side FROM pointsOfInterest; pid | edge_id | fraction | side -----+---------+----------+------ 1 | 1 | 0.4 | l - 2 | 15 | 0.4 | r - 3 | 12 | 0.6 | l 4 | 6 | 0.3 | r + 3 | 12 | 0.6 | l + 2 | 15 | 0.4 | r 5 | 5 | 0.8 | l 6 | 4 | 0.7 | b (6 rows) diff --git a/docqueries/utilities/findCloseEdges.pg b/docqueries/utilities/findCloseEdges.pg index c0aaf27194..e46d13e32a 100644 --- a/docqueries/utilities/findCloseEdges.pg +++ b/docqueries/utilities/findCloseEdges.pg @@ -1,45 +1,35 @@ -- CopyRight(c) pgRouting developers -- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ +SET extra_float_digits=-3; /* -- q1 */ -SELECT * +SELECT + edge_id, fraction, side, distance, + distance, ST_AsText(geom) AS point, ST_AsText(edge) As edge FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges$$, (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5); + 0.5, cap => 2); /* -- q2 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, ST_AsText(geom) AS original_point +SELECT +edge_id, fraction, side, distance, +ST_AsText(geom) AS point, +ST_AsText(edge) AS edge FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges$$, (SELECT array_agg(geom) FROM pointsOfInterest), 0.5); /* -- q3 */ /* One point signature */ -/* -- o1 */ -SELECT * -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, cap => 2); -/* -- o2 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS new_point, - ST_AsText(edge) AS original_to_new_point +/* -- o0 */ +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, partial => false); -/* -- o3 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS new_point, - ST_AsText(edge) AS original_to_new_point -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, cap => 2, partial => false); +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(2,0), ST_MakePoint(2,3)) AS geom$$, +ST_MakePoint(0,1.5), 5); +/* -- o1 */ /* -- o4 */ SELECT * FROM pgr_withPoints( $e$ SELECT * FROM edges $e$, - $p$ SELECT edge_id, round(fraction::numeric, 2) AS fraction, side + $p$ SELECT edge_id, fraction, side FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges$$, (SELECT geom FROM pointsOfInterest WHERE pid = 5), @@ -47,44 +37,23 @@ SELECT * FROM pgr_withPoints( $p$, 1, ARRAY[-1, -2]); /* -- o5 */ -SELECT * +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, - dryrun => true); +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(2,0), ST_MakePoint(2,3)) AS geom$$, +ST_MakePoint(0,1.5), 5, dryrun => true); /* -- o6 */ /* Many point signature */ -/* -- m1 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS geom_is_original, edge -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, cap => 2); -/* -- m2 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS geom_is_original, - ST_AsText(edge) AS original_to_new_point -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, partial => false); -/* -- m3 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS geom_is_original, - ST_AsText(edge) AS original_to_new_point +/* -- m0 */ +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, cap => 2, partial => false); +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(1,0), ST_MakePoint(1,3)) AS geom$$, +ARRAY[ST_MakePoint(0,2), ST_MakePoint(3,1)]::GEOMETRY[], 5); +/* -- m1 */ /* -- m4 */ -SELECT * +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, - dryrun => true); +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(1,0), ST_MakePoint(1,3)) AS geom$$, +ARRAY[ST_MakePoint(0,2), ST_MakePoint(3,1)]::GEOMETRY[], 5, dryrun=>true); /* -- m5 */ diff --git a/docqueries/utilities/findCloseEdges.result b/docqueries/utilities/findCloseEdges.result index 185071edbd..1541de9cd6 100644 --- a/docqueries/utilities/findCloseEdges.result +++ b/docqueries/utilities/findCloseEdges.result @@ -2,78 +2,58 @@ BEGIN; BEGIN SET client_min_messages TO NOTICE; SET +SET extra_float_digits=-3; +SET /* -- q1 */ -SELECT * +SELECT + edge_id, fraction, side, distance, + distance, ST_AsText(geom) AS point, ST_AsText(edge) As edge FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges$$, (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5); - edge_id | fraction | side | distance | geom | edge ----------+----------+------+----------+------+------ - 5 | 0.8 | l | | | -(1 row) + 0.5, cap => 2); + edge_id | fraction | side | distance | distance | point | edge +---------+----------+------+----------+----------+----------------+--------------------------- + 5 | 0.8 | l | 0.1 | 0.1 | POINT(2.9 1.8) | LINESTRING(2.9 1.8,3 1.8) + 8 | 0.9 | r | 0.2 | 0.2 | POINT(2.9 1.8) | LINESTRING(2.9 1.8,2.9 2) +(2 rows) /* -- q2 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, ST_AsText(geom) AS original_point +SELECT +edge_id, fraction, side, distance, +ST_AsText(geom) AS point, +ST_AsText(edge) AS edge FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges$$, (SELECT array_agg(geom) FROM pointsOfInterest), 0.5); - edge_id | fraction | side | original_point ----------+----------+------+---------------- - 1 | 0.40 | l | POINT(1.8 0.4) - 6 | 0.30 | r | POINT(0.3 1.8) - 12 | 0.60 | l | POINT(2.6 3.2) - 15 | 0.40 | r | POINT(4.2 2.4) - 5 | 0.80 | l | POINT(2.9 1.8) - 4 | 0.70 | r | POINT(2.2 1.7) + edge_id | fraction | side | distance | point | edge +---------+----------+------+----------+----------------+--------------------------- + 1 | 0.4 | l | 0.2 | POINT(1.8 0.4) | LINESTRING(1.8 0.4,2 0.4) + 6 | 0.3 | r | 0.2 | POINT(0.3 1.8) | LINESTRING(0.3 1.8,0.3 2) + 12 | 0.6 | l | 0.2 | POINT(2.6 3.2) | LINESTRING(2.6 3.2,2.6 3) + 15 | 0.4 | r | 0.2 | POINT(4.2 2.4) | LINESTRING(4.2 2.4,4 2.4) + 5 | 0.8 | l | 0.1 | POINT(2.9 1.8) | LINESTRING(2.9 1.8,3 1.8) + 4 | 0.7 | r | 0.2 | POINT(2.2 1.7) | LINESTRING(2.2 1.7,2 1.7) (6 rows) /* -- q3 */ /* One point signature */ -/* -- o1 */ -SELECT * +/* -- o0 */ +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, cap => 2); - edge_id | fraction | side | distance | geom | edge ----------+--------------------+------+---------------------+------+------ - 5 | 0.8 | l | 0.10000000000000009 | | - 8 | 0.8999999999999999 | r | 0.19999999999999996 | | -(2 rows) - -/* -- o2 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS new_point, - ST_AsText(edge) AS original_to_new_point -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, partial => false); - edge_id | fraction | side | distance | new_point | original_to_new_point ----------+----------+------+----------+--------------+--------------------------- - 5 | 0.80 | l | 0.100 | POINT(3 1.8) | LINESTRING(2.9 1.8,3 1.8) +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(2,0), ST_MakePoint(2,3)) AS geom$$, +ST_MakePoint(0,1.5), 5); + edge_id | fraction | side | distance | geom | edge +---------+----------+------+----------+--------------+------------------------- + 1 | 0.5 | l | 2 | POINT(0 1.5) | LINESTRING(0 1.5,2 1.5) (1 row) -/* -- o3 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS new_point, - ST_AsText(edge) AS original_to_new_point -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, cap => 2, partial => false); - edge_id | fraction | side | distance | new_point | original_to_new_point ----------+----------+------+----------+--------------+--------------------------- - 5 | 0.80 | l | 0.100 | POINT(3 1.8) | LINESTRING(2.9 1.8,3 1.8) - 8 | 0.90 | r | 0.200 | POINT(2.9 2) | LINESTRING(2.9 1.8,2.9 2) -(2 rows) - +/* -- o1 */ /* -- o4 */ SELECT * FROM pgr_withPoints( $e$ SELECT * FROM edges $e$, - $p$ SELECT edge_id, round(fraction::numeric, 2) AS fraction, side + $p$ SELECT edge_id, fraction, side FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges$$, (SELECT geom FROM pointsOfInterest WHERE pid = 5), @@ -97,31 +77,33 @@ SELECT * FROM pgr_withPoints( (12 rows) /* -- o5 */ -SELECT * +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT geom FROM pointsOfInterest WHERE pid = 5), - 0.5, - dryrun => true); +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(2,0), ST_MakePoint(2,3)) AS geom$$, +ST_MakePoint(0,1.5), 5, dryrun => true); NOTICE: - WITH - edges_sql AS (SELECT id, geom FROM edges), - point_sql AS (SELECT '01010000003333333333330740CDCCCCCCCCCCFC3F'::geometry AS point) - - SELECT - id::BIGINT AS edge_id, - ST_LineLocatePoint(geom, point) AS fraction, - CASE WHEN ST_Intersects(ST_Buffer(geom, 0.5, 'side=right endcap=flat'), point) - THEN 'r' - ELSE 'l' END::CHAR AS side, - - geom <-> point AS distance, - ST_ClosestPoint(geom, point) AS new_point, - ST_MakeLine(point, ST_ClosestPoint(geom, point)) AS new_line - - FROM edges_sql, point_sql - WHERE ST_DWithin(geom, point, 0.5) - ORDER BY geom <-> point LIMIT 1 +WITH +edges_sql AS (SELECT 1 AS id, ST_MakeLine(ST_makePoint(2,0), ST_MakePoint(2,3)) AS geom), +point_sql AS (SELECT unnest('{01010000000000000000000000000000000000F83F}'::geometry[]) AS point), +results AS ( + SELECT + id::BIGINT AS edge_id, + ST_LineLocatePoint(geom, point) AS fraction, + CASE WHEN ST_Intersects(ST_Buffer(geom, 5, 'side=right endcap=flat'), point) + THEN 'r' + ELSE 'l' END::CHAR AS side, + geom <-> point AS distance, + point, + ST_MakeLine(point, ST_ClosestPoint(geom, point)) AS new_line + FROM edges_sql, point_sql + WHERE ST_DWithin(geom, point, 5) + ORDER BY geom <-> point), +prepare_cap AS ( + SELECT row_number() OVER (PARTITION BY point ORDER BY point, distance) AS rn, * + FROM results) +SELECT edge_id, fraction, side, distance, point, new_line +FROM prepare_cap +WHERE rn <= 1 edge_id | fraction | side | distance | geom | edge ---------+----------+------+----------+------+------ @@ -129,90 +111,39 @@ NOTICE: /* -- o6 */ /* Many point signature */ -/* -- m1 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS geom_is_original, edge +/* -- m0 */ +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, cap => 2); - edge_id | fraction | side | distance | geom_is_original | edge ----------+----------+------+----------+------------------+------ - 1 | 0.40 | l | 0.200 | POINT(1.8 0.4) | - 6 | 0.30 | r | 0.200 | POINT(0.3 1.8) | - 12 | 0.60 | l | 0.200 | POINT(2.6 3.2) | - 11 | 1.00 | l | 0.447 | POINT(2.6 3.2) | - 15 | 0.40 | r | 0.200 | POINT(4.2 2.4) | - 9 | 1.00 | l | 0.447 | POINT(4.2 2.4) | - 5 | 0.80 | l | 0.100 | POINT(2.9 1.8) | - 8 | 0.90 | r | 0.200 | POINT(2.9 1.8) | - 4 | 0.70 | r | 0.200 | POINT(2.2 1.7) | - 8 | 0.20 | r | 0.300 | POINT(2.2 1.7) | -(10 rows) - -/* -- m2 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS geom_is_original, - ST_AsText(edge) AS original_to_new_point -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, partial => false); - edge_id | fraction | side | distance | geom_is_original | original_to_new_point ----------+----------+------+----------+------------------+--------------------------- - 1 | 0.40 | l | 0.200 | POINT(1.8 0.4) | LINESTRING(1.8 0.4,2 0.4) - 6 | 0.30 | r | 0.200 | POINT(0.3 1.8) | LINESTRING(0.3 1.8,0.3 2) - 12 | 0.60 | l | 0.200 | POINT(2.6 3.2) | LINESTRING(2.6 3.2,2.6 3) - 15 | 0.40 | r | 0.200 | POINT(4.2 2.4) | LINESTRING(4.2 2.4,4 2.4) - 5 | 0.80 | l | 0.100 | POINT(2.9 1.8) | LINESTRING(2.9 1.8,3 1.8) - 4 | 0.70 | r | 0.200 | POINT(2.2 1.7) | LINESTRING(2.2 1.7,2 1.7) -(6 rows) - -/* -- m3 */ -SELECT edge_id, round(fraction::numeric, 2) AS fraction, side, round(distance::numeric, 3) AS distance, - ST_AsText(geom) AS geom_is_original, - ST_AsText(edge) AS original_to_new_point -FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, cap => 2, partial => false); - edge_id | fraction | side | distance | geom_is_original | original_to_new_point ----------+----------+------+----------+------------------+--------------------------- - 1 | 0.40 | l | 0.200 | POINT(1.8 0.4) | LINESTRING(1.8 0.4,2 0.4) - 6 | 0.30 | r | 0.200 | POINT(0.3 1.8) | LINESTRING(0.3 1.8,0.3 2) - 12 | 0.60 | l | 0.200 | POINT(2.6 3.2) | LINESTRING(2.6 3.2,2.6 3) - 11 | 1.00 | l | 0.447 | POINT(2.6 3.2) | LINESTRING(2.6 3.2,3 3) - 15 | 0.40 | r | 0.200 | POINT(4.2 2.4) | LINESTRING(4.2 2.4,4 2.4) - 9 | 1.00 | l | 0.447 | POINT(4.2 2.4) | LINESTRING(4.2 2.4,4 2) - 5 | 0.80 | l | 0.100 | POINT(2.9 1.8) | LINESTRING(2.9 1.8,3 1.8) - 8 | 0.90 | r | 0.200 | POINT(2.9 1.8) | LINESTRING(2.9 1.8,2.9 2) - 4 | 0.70 | r | 0.200 | POINT(2.2 1.7) | LINESTRING(2.2 1.7,2 1.7) - 8 | 0.20 | r | 0.300 | POINT(2.2 1.7) | LINESTRING(2.2 1.7,2.2 2) -(10 rows) +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(1,0), ST_MakePoint(1,3)) AS geom$$, +ARRAY[ST_MakePoint(0,2), ST_MakePoint(3,1)]::GEOMETRY[], 5); + edge_id | fraction | side | distance | geom | edge +---------+----------------+------+----------+------------+--------------------- + 1 | 0.666666666667 | l | 1 | POINT(0 2) | LINESTRING(0 2,1 2) + 1 | 0.333333333333 | r | 2 | POINT(3 1) | LINESTRING(3 1,1 1) +(2 rows) +/* -- m1 */ /* -- m4 */ -SELECT * +SELECT edge_id, fraction, side, distance, ST_AsText(geom) geom, ST_AsText(edge) edge FROM pgr_findCloseEdges( - $$SELECT id, geom FROM edges$$, - (SELECT array_agg(geom) FROM pointsOfInterest), - 0.5, - dryrun => true); +$$SELECT 1 AS id, ST_MakeLine(ST_makePoint(1,0), ST_MakePoint(1,3)) AS geom$$, +ARRAY[ST_MakePoint(0,2), ST_MakePoint(3,1)]::GEOMETRY[], 5, dryrun=>true); NOTICE: WITH -edges_sql AS (SELECT id, geom FROM edges), -point_sql AS (SELECT unnest('{0101000000CDCCCCCCCCCCFC3F9A9999999999D93F:0101000000CDCCCCCCCCCC10403333333333330340:0101000000CDCCCCCCCCCC04409A99999999990940:0101000000333333333333D33FCDCCCCCCCCCCFC3F:01010000003333333333330740CDCCCCCCCCCCFC3F:01010000009A99999999990140333333333333FB3F}'::geometry[]) AS point), +edges_sql AS (SELECT 1 AS id, ST_MakeLine(ST_makePoint(1,0), ST_MakePoint(1,3)) AS geom), +point_sql AS (SELECT unnest('{010100000000000000000000000000000000000040:01010000000000000000000840000000000000F03F}'::geometry[]) AS point), results AS ( SELECT id::BIGINT AS edge_id, ST_LineLocatePoint(geom, point) AS fraction, - CASE WHEN ST_Intersects(ST_Buffer(geom, 0.5, 'side=right endcap=flat'), point) + CASE WHEN ST_Intersects(ST_Buffer(geom, 5, 'side=right endcap=flat'), point) THEN 'r' ELSE 'l' END::CHAR AS side, geom <-> point AS distance, point, ST_MakeLine(point, ST_ClosestPoint(geom, point)) AS new_line FROM edges_sql, point_sql - WHERE ST_DWithin(geom, point, 0.5) + WHERE ST_DWithin(geom, point, 5) ORDER BY geom <-> point), prepare_cap AS ( SELECT row_number() OVER (PARTITION BY point ORDER BY point, distance) AS rn, * diff --git a/pgtap/utilities/findCloseEdges/edge_cases.pg b/pgtap/utilities/findCloseEdges/edge_cases.pg index 0c634c2f5c..94ab01788e 100644 --- a/pgtap/utilities/findCloseEdges/edge_cases.pg +++ b/pgtap/utilities/findCloseEdges/edge_cases.pg @@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT CASE WHEN min_version('3.4.0') THEN plan(16) ELSE plan(1) END; +SELECT CASE WHEN min_version('3.8.0') THEN plan(33) WHEN min_version('3.4.0') THEN plan(34) ELSE plan(1) END; SET client_min_messages TO 'WARNING'; @@ -58,7 +58,7 @@ BEGIN RETURN QUERY SELECT lives_ok('query_1', 'With defaults'); RETURN QUERY SELECT lives_ok('query_2', 'two rows'); RETURN QUERY SELECT lives_ok('query_3', 'dryrun'); - RETURN QUERY SELECT is_empty('query_3', 'dryrun'); + RETURN QUERY SELECT is_empty('query_3', 'dryrun results empty'); RETURN QUERY SELECT column_missing('err1', 'geom'); RETURN QUERY SELECT column_missing('err2', 'id'); @@ -85,7 +85,7 @@ BEGIN RETURN QUERY SELECT lives_ok('query_4', 'With defaults'); RETURN QUERY SELECT lives_ok('query_5', 'two rows'); RETURN QUERY SELECT lives_ok('query_6', 'dryrun'); - RETURN QUERY SELECT is_empty('query_6', 'dryrun'); + RETURN QUERY SELECT is_empty('query_6', 'dryrun results empty'); RETURN QUERY SELECT column_missing('err3', 'geom'); RETURN QUERY SELECT column_missing('err4', 'id'); @@ -97,6 +97,84 @@ BEGIN 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM bar), 0.5)$$, '42P01', 'relation "bar" does not exist'); + IF min_version('4.0.0') THEN + RETURN QUERY SELECT skip(1, 'Signatures with partial flag is removed on 4.0.0'); + RETURN; + END IF; + + -- Test with partial flag + RETURN QUERY SELECT is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, true)$$, 'One geom: partial,dryrun = true,true'); + RETURN QUERY SELECT isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, false)$$, 'One geom: partial,dryrun = true,false'); + RETURN QUERY SELECT is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, false, true)$$, 'One geom: partial,dryrun = false,true'); + RETURN QUERY SELECT isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, false, false)$$, 'One geom: partial,dryrun = false,false'); + + RETURN QUERY SELECT is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, true, true)$$, 'Many geom: partial,dryrun = true,true'); + RETURN QUERY SELECT isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, true, false)$$, 'Many geom: partial,dryrun = true,false'); + RETURN QUERY SELECT is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, false, true)$$, 'Many geom: partial,dryrun = false,true'); + RETURN QUERY SELECT isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, false, false)$$, 'Many geom: partial,dryrun = false,false'); + + RETURN QUERY SELECT + CASE WHEN min_version('3.8.0') THEN + collect_tap( + throws_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, partial => true) WHERE distance IS NOT NULL$$, + '42883','function pgr_findcloseedges(unknown, geometry, numeric, integer, partial => boolean) does not exist', 'throws: One geom, with cap value, naming partial => true'), + throws_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, partial => true) WHERE distance IS NOT NULL$$, + '42883','function pgr_findcloseedges(unknown, geometry, numeric, partial => boolean) does not exist', 'throws: One geom, without cap value naming partial => true'), + isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, false) WHERE distance IS NOT NULL$$, 'partial, One geom: isnt_empty distance'), + isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, false) WHERE geom IS NOT NULL$$, 'partial, One geom: isnt_empty geom'), + isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, false) WHERE edge IS NOT NULL$$, 'partial, One geom: isnt_empty edge'), + + throws_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, partial => true) WHERE distance IS NOT NULL$$, + '42883','function pgr_findcloseedges(unknown, geometry[], numeric, integer, partial => boolean) does not exist', 'throws: Many geom, with cap value, naming partial => true'), + throws_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, partial => true) WHERE distance IS NOT NULL$$, + '42883','function pgr_findcloseedges(unknown, geometry[], numeric, partial => boolean) does not exist', 'throws: Many geom, without cap value naming partial => true'), + isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, true, false) WHERE distance IS NOT NULL$$, 'partial, Many geom: isnt_empty distance'), + isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, true, false) WHERE edge IS NOT NULL$$, 'partial, Many geom: isnt_empty edge') + ) + + ELSE + collect_tap( + lives_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, partial => true) WHERE distance IS NOT NULL$$, 'One geom, with cap value, naming partial => true'), + lives_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, partial => true) WHERE distance IS NOT NULL$$, 'One geom, without cap value, naming partial => true'), + is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, false) WHERE distance IS NOT NULL$$, 'partial, One geom: is_empty distance'), + is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, false) WHERE geom IS NOT NULL$$, 'partial, One geom: is_empty geom'), + is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT geom FROM pointsOfInterest WHERE pid = 5), 0.5, 1, true, false) WHERE edge IS NOT NULL$$, 'partial, One geom: is_empty edge'), + + lives_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, partial => true) WHERE distance IS NOT NULL$$, 'Many geom, with cap value, naming partial => true'), + lives_ok($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, partial => true) WHERE distance IS NOT NULL$$, 'Many geom, without cap value, naming partial => true'), + isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, true, false) WHERE distance IS NOT NULL$$, 'partial, Many geom: isnt_empty distance'), + isnt_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, true, false) WHERE geom IS NOT NULL$$, 'partial, Many geom: isnt_empty geom'), + is_empty($$SELECT * FROM pgr_findCloseEdges( + 'SELECT id, geom FROM edges', (SELECT array_agg(geom) FROM pointsOfInterest), 0.5, 1, true, false) WHERE edge IS NOT NULL$$, 'partial, Many geom: is_empty edge') + ) + END; + END; $BODY$ LANGUAGE plpgsql; diff --git a/pgtap/utilities/findCloseEdges/types_check.pg b/pgtap/utilities/findCloseEdges/types_check.pg index 58d8c0e17f..b022f60b3b 100644 --- a/pgtap/utilities/findCloseEdges/types_check.pg +++ b/pgtap/utilities/findCloseEdges/types_check.pg @@ -42,26 +42,45 @@ BEGIN SELECT function_returns('pgr_findcloseedges', ARRAY['text', 'geometry[]','double precision','integer','boolean','boolean'],'setof record'); + IF min_version('3.8.0') THEN - RETURN QUERY SELECT set_eq( - $$SELECT proargnames from pg_proc where proname = 'pgr_findcloseedges'$$, - $$SELECT '{"","","","cap","partial","dryrun","edge_id","fraction","side","distance","geom","edge"}'::TEXT[] $$); + RETURN QUERY SELECT bag_eq( + $$SELECT proargnames from pg_proc where proname = 'pgr_findcloseedges'$$, + $$VALUES + ('{"","","","cap","dryrun","edge_id","fraction","side","distance","geom","edge"}'::TEXT[]), + ('{"","","","cap","dryrun","edge_id","fraction","side","distance","geom","edge"}'::TEXT[]), + ('{"","","","cap","partial","dryrun","edge_id","fraction","side","distance","geom","edge"}'::TEXT[]), + ('{"","","","cap","partial","dryrun","edge_id","fraction","side","distance","geom","edge"}'::TEXT[]) + $$, + 'proargnames'); - /* pgtap does not like geometry type, this is a workaround */ - RETURN QUERY - SELECT set_eq( - $$WITH a AS (SELECT unnest(proallargtypes) FROM pg_proc WHERE proname = 'pgr_findcloseedges') - SELECT typname FROM a JOIN pg_type ON(oid = unnest)$$, - $$VALUES - ('bool'), - ('int4'), - ('text'), - ('float8'), - ('geometry'), - ('_geometry'), - ('int8'), - ('bpchar') - $$); + RETURN QUERY + SELECT function_types('pgr_findcloseedges', + $$ VALUES + ('{text,_geometry,float8,int4,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]), + ('{text,geometry,float8,int4,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]), + ('{text,geometry,float8,int4,bool,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]), + ('{text,_geometry,float8,int4,bool,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]) + $$); + + ELSE + + RETURN QUERY SELECT bag_eq( + $$SELECT proargnames from pg_proc where proname = 'pgr_findcloseedges'$$, + $$VALUES + ('{"","","","cap","partial","dryrun","edge_id","fraction","side","distance","geom","edge"}'::TEXT[]), + ('{"","","","cap","partial","dryrun","edge_id","fraction","side","distance","geom","edge"}'::TEXT[]) + $$, + 'proargnames'); + + RETURN QUERY + SELECT function_types('pgr_findcloseedges', + $$ VALUES + ('{text,geometry,float8,int4,bool,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]), + ('{text,_geometry,float8,int4,bool,bool,int8,float8,bpchar,float8,geometry,geometry}'::TEXT[]) + $$); + + END IF; END $BODY$ diff --git a/sql/scripts/build-extension-update-files.pl b/sql/scripts/build-extension-update-files.pl index 84894310b4..b92a5b70cf 100755 --- a/sql/scripts/build-extension-update-files.pl +++ b/sql/scripts/build-extension-update-files.pl @@ -269,6 +269,12 @@ sub generate_upgrade_script { push @commands, drop_special_case_function("pgr_kruskaldd(text,anyarray,double precision)"); } + # updating to 3.7+ + if ($old_mayor == 3 && $old_minor < 8) { + push @commands, drop_special_case_function("pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean)"); + push @commands, drop_special_case_function("pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean)"); + } + } #------------------------------------ @@ -283,9 +289,9 @@ sub generate_upgrade_script { } # UGH! someone change the definition of the TYPE or reused an existing - # TYPE name which is VERY BAD because other poeple might be dependent + # TYPE name which is VERY BAD because other people might be dependent # on the old TYPE so we can DROP TYPE CASCADE; or we might drop - # a user's function. So juse DIE and maybe someone can resolve this + # a user's function. So just DIE and maybe someone can resolve this die "ERROR: pgrouting TYPE changed! Cannot continue!\n" if $err; diff --git a/sql/sigs/pgrouting--3.8.sig b/sql/sigs/pgrouting--3.8.sig index 460e9e69d6..0253760949 100644 --- a/sql/sigs/pgrouting--3.8.sig +++ b/sql/sigs/pgrouting--3.8.sig @@ -160,6 +160,8 @@ _pgr_edwardmoore(text,text,boolean) pgr_edwardmoore(text,text,boolean) _pgr_endpoint(geometry) pgr_extractvertices(text,boolean) +pgr_findcloseedges(text,geometry,double precision,integer,boolean) +pgr_findcloseedges(text,geometry[],double precision,integer,boolean) pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean) pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean) _pgr_floydwarshall(text,boolean) diff --git a/sql/utilities/findCloseEdges.sql b/sql/utilities/findCloseEdges.sql index 87869712ab..abd4a48934 100644 --- a/sql/utilities/findCloseEdges.sql +++ b/sql/utilities/findCloseEdges.sql @@ -1,7 +1,7 @@ /*PGR-GNU***************************************************************** -Copyright (c) 2022 Celia Virginia Vergara Castillo -Mail: vicky at georepublic dot de +Copyright (c) 2025 Celia Virginia Vergara Castillo +Mail: vicky at erosion.dev ------ @@ -21,14 +21,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ ---v3.4 +--v3.8 CREATE FUNCTION pgr_findCloseEdges( TEXT, - geometry, + geometry[], FLOAT, cap INTEGER DEFAULT 1, - partial BOOLEAN DEFAULT true, - dryrun BOOLEAN DEFAULT false, + dryrun BOOLEAN default false, OUT edge_id BIGINT, OUT fraction FLOAT, @@ -39,6 +38,10 @@ CREATE FUNCTION pgr_findCloseEdges( returns SETOF RECORD AS $BODY$ DECLARE + geom_arr geometry[] := $2; + tolerance FLOAT := $3; + cap INTEGER := $4; + dryrun BOOLEAN := $5; edges_SQL TEXT; has_id BOOLEAN; has_geom BOOLEAN; @@ -49,126 +52,12 @@ DECLARE BEGIN - IF ($3 < 0) THEN - RAISE EXCEPTION 'Invalid value for tolerance'; + IF (tolerance < 0) THEN + RAISE EXCEPTION 'Invalid value for "tolerance"'; END IF; - IF (cap <= 0) THEN - RAISE EXCEPTION 'Invalid value for cap'; - END IF; - - BEGIN - edges_sql := _pgr_checkQuery($1); - has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', false, dryrun => dryrun); - has_geom := _pgr_checkColumn(edges_sql, 'geom', 'geometry', false, dryrun => dryrun); - EXCEPTION WHEN OTHERS THEN - GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; - RAISE EXCEPTION '%', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; - END; - - ret_query = format( - $q$ - WITH - edges_sql AS (%1$s), - point_sql AS (SELECT %2$L::geometry AS point) - - SELECT - id::BIGINT AS edge_id, - ST_LineLocatePoint(geom, point) AS fraction, - CASE WHEN ST_Intersects(ST_Buffer(geom, %3$s, 'side=right endcap=flat'), point) - THEN 'r' - ELSE 'l' END::CHAR AS side, - $q$, edges_sql, $2, $3); - - ret_query_end = format( - $q$ - FROM edges_sql, point_sql - WHERE ST_DWithin(geom, point, %1$s) - ORDER BY geom <-> point LIMIT %2$s - $q$, $3, cap); - - IF partial AND cap = 1 AND NOT dryrun THEN - /* one answer and partialimal columns */ - - ret_query = - ret_query - || $q$ - NULL::FLOAT, - NULL::geometry, - NULL::geometry - $q$ - || ret_query_end; - - ELSIF partial AND NOT dryrun THEN - /* more than one answer and partialimal columns - * needs distance info for further sorting by use - */ - - ret_query = - ret_query - || $q$ - geom <-> point AS distance, - NULL::geometry, - NULL::geometry - $q$ - || ret_query_end; - - ELSE - /* More than one answer and all columns, or dryrun*/ - - ret_query = - ret_query - || $q$ - geom <-> point AS distance, - ST_ClosestPoint(geom, point) AS new_point, - ST_MakeLine(point, ST_ClosestPoint(geom, point)) AS new_line - $q$ - || ret_query_end; - - END IF; - - IF dryrun THEN - RAISE NOTICE '%', ret_query; - RETURN; - END IF; - - RETURN query EXECUTE ret_query; - -END; -$BODY$ -LANGUAGE PLPGSQL VOLATILE STRICT -COST 5; - ---v3.4 -CREATE FUNCTION pgr_findCloseEdges( - TEXT, - geometry[], - FLOAT, - cap INTEGER DEFAULT 1, - partial BOOLEAN DEFAULT true, - dryrun BOOLEAN DEFAULT false, - - OUT edge_id BIGINT, - OUT fraction FLOAT, - OUT side CHAR, - OUT distance FLOAT, - OUT geom geometry, - OUT edge geometry) -returns SETOF RECORD AS -$BODY$ -DECLARE - edges_SQL TEXT; - has_id BOOLEAN; - has_geom BOOLEAN; - ret_query TEXT; - ret_query_end TEXT; - - sqlhint TEXT; - -BEGIN - - IF ($3 < 0) THEN - RAISE EXCEPTION 'Invalid value for tolerance'; + IF (cap < 0) THEN + RAISE EXCEPTION 'Invalid value for "cap"'; END IF; BEGIN @@ -194,7 +83,7 @@ results AS ( ELSE 'l' END::CHAR AS side, geom <-> point AS distance, point, - $q$, edges_sql, $2, $3); + $q$, edges_sql, geom_arr, tolerance); ret_query_end = format( $q$ @@ -207,22 +96,12 @@ prepare_cap AS ( SELECT edge_id, fraction, side, distance, point, new_line FROM prepare_cap WHERE rn <= %2$s - $q$, $3, cap); - - IF partial AND NOT dryrun THEN - - ret_query = ret_query - || $q$NULL::geometry AS new_line$q$ - || ret_query_end; - - ELSE + $q$, tolerance, cap); ret_query = ret_query || $q$ST_MakeLine(point, ST_ClosestPoint(geom, point)) AS new_line $q$ || ret_query_end; - END IF; - IF dryrun THEN RAISE NOTICE '%', ret_query; RETURN; @@ -235,31 +114,98 @@ $BODY$ LANGUAGE PLPGSQL VOLATILE STRICT COST 5; --- COMMENTS -COMMENT ON FUNCTION pgr_findCloseEdges(TEXT, GEOMETRY, FLOAT, INTEGER, BOOLEAN, BOOLEAN) -IS 'pgr_findCloseEdges(One Point) +COMMENT ON FUNCTION pgr_findCloseEdges(TEXT, GEOMETRY[], FLOAT, INTEGER, BOOLEAN) +IS 'pgr_findCloseEdges(Many Points) - Parameters: - Edges SQL with columns: id, geom - - POINT geometry + - Array of POINT geometries - Maximum separation between geometries - Optional Parameters - cap => 1: at most one answer - - partial => true: do minimal calculations - dryrun => false: do not output code - Documentation: - ${PROJECT_DOC_LINK}/pgr_findCloseEdges.html '; -COMMENT ON FUNCTION pgr_findCloseEdges(TEXT, GEOMETRY, FLOAT, INTEGER, BOOLEAN, BOOLEAN) -IS 'pgr_findCloseEdges(Many Points) +--v3.8 +CREATE FUNCTION pgr_findCloseEdges( + TEXT, + geometry, + FLOAT, + cap INTEGER DEFAULT 1, + dryrun BOOLEAN default false, + OUT edge_id BIGINT, + OUT fraction FLOAT, + OUT side CHAR, + OUT distance FLOAT, + OUT geom geometry, + OUT edge geometry) +returns SETOF RECORD AS +$BODY$ + SELECT edge_id, fraction, side, distance, geom, edge + FROM pgr_findCloseEdges($1, ARRAY[$2]::GEOMETRY[], $3, cap, dryrun); +$BODY$ +LANGUAGE SQL VOLATILE STRICT COST 5; + +COMMENT ON FUNCTION pgr_findCloseEdges(TEXT, GEOMETRY, FLOAT, INTEGER, BOOLEAN) +IS 'pgr_findCloseEdges(One Point) - Parameters: - Edges SQL with columns: id, geom - - Array of POINT geometries + - POINT geometry - Maximum separation between geometries - Optional Parameters - cap => 1: at most one answer - - partial => true: do minimal calculations - dryrun => false: do not output code - Documentation: - ${PROJECT_DOC_LINK}/pgr_findCloseEdges.html '; + +--v3.4 +CREATE FUNCTION pgr_findCloseEdges( + TEXT, + geometry, + FLOAT, + cap INTEGER, + partial BOOLEAN, + dryrun BOOLEAN, + + OUT edge_id BIGINT, + OUT fraction FLOAT, + OUT side CHAR, + OUT distance FLOAT, + OUT geom geometry, + OUT edge geometry) +returns SETOF RECORD AS +$BODY$ + SELECT edge_id, fraction, side, distance, geom, edge + FROM pgr_findCloseEdges($1, ARRAY[$2]::GEOMETRY[], $3, cap, dryrun); +$BODY$ +LANGUAGE SQL VOLATILE STRICT COST 5; + +COMMENT ON FUNCTION pgr_findCloseEdges(TEXT, GEOMETRY, FLOAT, INTEGER, BOOLEAN, BOOLEAN) +IS 'pgr_findCloseEdges deprecated signature on v3.8.0'; + +--v3.4 +CREATE FUNCTION pgr_findCloseEdges( + TEXT, + geometry[], + FLOAT, + cap INTEGER, + partial BOOLEAN, + dryrun BOOLEAN, + + OUT edge_id BIGINT, + OUT fraction FLOAT, + OUT side CHAR, + OUT distance FLOAT, + OUT geom geometry, + OUT edge geometry) +returns SETOF RECORD AS +$BODY$ + SELECT edge_id, fraction, side, distance, geom, edge + FROM pgr_findCloseEdges($1, $2, $3, cap, dryrun); +$BODY$ +LANGUAGE SQL VOLATILE STRICT COST 5; + +COMMENT ON FUNCTION pgr_findCloseEdges(TEXT, GEOMETRY[], FLOAT, INTEGER, BOOLEAN, BOOLEAN) +IS 'pgr_findCloseEdges deprecated signature on v3.8.0'; diff --git a/tools/testers/general_pgtap_tests.sql b/tools/testers/general_pgtap_tests.sql index 465c1b4015..fa9c9f82cb 100644 --- a/tools/testers/general_pgtap_tests.sql +++ b/tools/testers/general_pgtap_tests.sql @@ -49,3 +49,19 @@ $BODY$ collect_tap(throws_ok($1, 'P0001', 'relation "' || $2 || '" does not exist')) END; $BODY$ LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION function_types(TEXT, TEXT) +RETURNS TEXT AS +$BODY$ + SELECT set_eq(format($$ + WITH + a AS ( + SELECT oid, u.name, u.idx + FROM pg_proc p CROSS JOIN unnest(p.proallargtypes) + WITH ordinality as u(name, idx) + WHERE p.proname = '%1$s'), + b AS ( + SELECT a.*, t.typname FROM a JOIN pg_type As t on (t.oid = a.name)) + SELECT array_agg(typname ORDER BY idx) FROM b GROUP BY oid + $$, $1), $2, $1 || ': Function types'); +$BODY$ LANGUAGE SQL; diff --git a/tools/testers/sampledata.sql b/tools/testers/sampledata.sql index 231ae32e72..543926c547 100644 --- a/tools/testers/sampledata.sql +++ b/tools/testers/sampledata.sql @@ -93,16 +93,40 @@ CREATE TABLE pointsOfInterest( edge_id BIGINT, side CHAR, fraction FLOAT, + distance FLOAT, + edge geometry, + newPoint geometry, geom geometry); /* -- p2 */ -INSERT INTO pointsOfInterest (edge_id, side, fraction, geom) VALUES -(1, 'l' , 0.4, ST_POINT(1.8, 0.4)), -(15, 'r' , 0.4, ST_POINT(4.2, 2.4)), -(12, 'l' , 0.6, ST_POINT(2.6, 3.2)), -(6, 'r' , 0.3, ST_POINT(0.3, 1.8)), -(5, 'l' , 0.8, ST_POINT(2.9, 1.8)), -(4, 'b' , 0.7, ST_POINT(2.2, 1.7)); +INSERT INTO pointsOfInterest (geom) VALUES +(ST_Point(1.8, 0.4)), +(ST_Point(4.2, 2.4)), +(ST_Point(2.6, 3.2)), +(ST_Point(0.3, 1.8)), +(ST_Point(2.9, 1.8)), +(ST_Point(2.2, 1.7)); /* -- p3 */ +UPDATE pointsofinterest SET + edge_id = poi.edge_id, + side = poi.side, + fraction = round(poi.fraction::numeric, 2), + distance = round(poi.distance::numeric, 2), + edge = poi.edge, + newPoint = ST_EndPoint(poi.edge) +FROM ( + SELECT * + FROM pgr_findCloseEdges( + $$SELECT id, geom FROM edges$$,(SELECT array_agg(geom) FROM pointsOfInterest), 0.5) ) AS poi +WHERE pointsOfInterest.geom = poi.geom; +/* -- p4 */ +UPDATE pointsOfInterest SET side = 'b' WHERE pid = 6; +/* -- p5 */ +SELECT + pid, ST_AsText(geom) geom, + edge_id, fraction AS frac, side, distance AS dist, + ST_AsText(edge) edge, ST_AsText(newPoint) newPoint +FROM pointsOfInterest; +/* -- p6 */ /* --POINTS CREATE end */ /* --COMBINATIONS CREATE start */ From 3ee3565500147feb8d6038450b366247e4b3ba29 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 2 Mar 2025 12:32:19 -0600 Subject: [PATCH 097/141] (pgtap/degree) add todo on edge_cases test --- pgtap/topology/degree/edge_cases.pg | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pgtap/topology/degree/edge_cases.pg b/pgtap/topology/degree/edge_cases.pg index 39fe52c0d5..e7cdd91880 100644 --- a/pgtap/topology/degree/edge_cases.pg +++ b/pgtap/topology/degree/edge_cases.pg @@ -104,16 +104,15 @@ BEGIN PREPARE empty_graph AS SELECT * FROM pgr_degree('SELECT id FROM edges WHERE id > 20', 'SELECT * FROM vertices') ORDER BY node; - RETURN QUERY - SELECT CASE WHEN min_version('3.8.0') THEN - collect_tap( - is_empty('empty_graph', 'is empty: Empty edges give 0 count on all vertices so none is in result') - ) + + IF min_version('3.8.0') THEN + PERFORM todo(1, 'Currently is not empty'); + RETURN QUERY + SELECT is_empty('empty_graph', 'is empty: Empty edges give 0 count on all vertices so none is in result'); ELSE - collect_tap( - results_eq('empty_graph', 'SELECT generate_series (1,17)::BIGINT, 0::BIGINT', 'Empty edges give 0 count') - ) - END; + RETURN QUERY + SELECT results_eq('empty_graph', 'SELECT generate_series (1,17)::BIGINT, 0::BIGINT', 'Empty edges give 0 count'); + END IF; END; $BODY$ From 80fe73a8daa8fb925155a578c96bf0751970cc97 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 2 Mar 2025 19:54:30 +0000 Subject: [PATCH 098/141] Update locale: commit da0c2ceb0 --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 357 +++++------------- locale/pot/pgrouting_doc_strings.pot | 289 ++++---------- 2 files changed, 155 insertions(+), 491 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index f463a0df58..0bf25ce56e 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-01 19:10+0000\n" +"POT-Creation-Date: 2025-03-02 19:54+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4427,6 +4427,9 @@ msgstr "" msgid "pgr_findCloseEdges" msgstr "" +msgid "``partial`` option is removed." +msgstr "" + msgid "pgr_degree" msgstr "" @@ -6733,6 +6736,12 @@ msgid "" "in the routing function and is within the area of the results." msgstr "" +msgid "Given this area:" +msgstr "" + +msgid "Calculate a route:" +msgstr "" + msgid "How to contribute" msgstr "" @@ -6760,7 +6769,7 @@ msgid "" "parallel-edges-(KSP)>`__" msgstr "" -msgid "Adding Functionaity to pgRouting" +msgid "Adding Functionality to pgRouting" msgstr "" msgid "" @@ -11586,7 +11595,7 @@ msgid "" "adjustments needed by the application." msgstr "" -msgid "``EMTPY SET`` is returned on dryrun executions" +msgid "``EMPTY SET`` is returned on dryrun executions" msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**])" @@ -11595,7 +11604,7 @@ msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**])" msgstr "" -msgid "**options:** ``[cap, partial, dryrun]``" +msgid "**options:** ``[cap, dryrun]``" msgstr "" msgid "Returns set of |result-find|" @@ -11604,55 +11613,16 @@ msgstr "" msgid "One point" msgstr "" -msgid "**options:** [cap, partial, dryrun]``" -msgstr "" - -msgid "Default: ``cap => 1``" -msgstr "" - -msgid "Maximum one row answer." -msgstr "" - -msgid "Default: ``partial => true``" +msgid "Get two close edges to points of interest with :math:`pid = 5`" msgstr "" -msgid "With less calculations as possible." -msgstr "" - -msgid "Default: ``dryrun => false``" -msgstr "" - -msgid "Process query" -msgstr "" - -msgid "Returns" -msgstr "" - -msgid "values on ``edge_id``, ``fraction``, ``side`` columns." -msgstr "" - -msgid "``NULL`` on ``distance``, ``geom``, ``edge`` columns." +msgid "``cap => 2``" msgstr "" msgid "Many points" msgstr "" -msgid "" -"Find at most :math:`2` edges close to all vertices on the points of " -"interest table." -msgstr "" - -msgid "One answer per point, as small as possible." -msgstr "" - -msgid "" -"Columns ``edge_id``, ``fraction``, ``side`` and ``geom`` are returned " -"with values." -msgstr "" - -msgid "" -"``geom`` contains the original point geometry to assist on " -"deterpartialing to which point geometry the row belongs to." +msgid "For each points of interests, find the closest edge." msgstr "" msgid "**point**" @@ -11679,17 +11649,6 @@ msgstr "" msgid "Limit output rows" msgstr "" -msgid "``partial``" -msgstr "" - -msgid "" -"When ``true`` only columns needed for :doc:`withPoints-category` are " -"calculated." -msgstr "" - -msgid "When ``false`` all columns are calculated" -msgstr "" - msgid "When ``false`` calculations are performed." msgstr "" @@ -11705,203 +11664,91 @@ msgid "When :math:`cap = 1`, it is the closest edge." msgstr "" msgid "" -"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." msgstr "" msgid "Value in ``[r, l]`` indicating if the point is:" msgstr "" -msgid "In the right ``r``." -msgstr "" - -msgid "In the left ``l``." +msgid "At the right ``r`` of the segment." msgstr "" msgid "When the point is on the line it is considered to be on the right." msgstr "" -msgid "``distance``" -msgstr "" - -msgid "Distance from point to edge." -msgstr "" - -msgid "``NULL`` when ``cap = 1`` on the `One point`_ signature" -msgstr "" - -msgid "``POINT`` geometry" -msgstr "" - -msgid "" -"`One Point`_: Contains the point on the edge that is ``fraction`` away " -"from the starting point of the edge." -msgstr "" - -msgid "`Many Points`_: Contains the corresponding **original point**" -msgstr "" - -msgid "" -"``LINESTRING`` geometry from the **original point** to the closest point " -"of the edge with identifier ``edge_id``" -msgstr "" - -msgid "One point results" -msgstr "" - -msgid "The green nodes is the **original point**" -msgstr "" - -msgid "The geometry ``geom`` is a point on the :math:`sp \\rightarrow ep` edge." -msgstr "" - -msgid "" -"The geometry ``edge`` is a line that connects the **original point** with" -" ``geom``" -msgstr "" - -msgid "Many point results" -msgstr "" - -msgid "The green nodes are the **original points**" -msgstr "" - -msgid "" -"The geometry ``geom``, marked as **g1** and **g2** are the **original " -"points**" -msgstr "" - -msgid "" -"The geometry ``edge``, marked as **edge1** and **edge2** is a line that " -"connects the **original point** with the closest point on the :math:`sp " -"\\rightarrow ep` edge." -msgstr "" - -msgid "One point examples" -msgstr "" - -msgid "At most two answers" -msgstr "" - -msgid "``cap => 2``" -msgstr "" - -msgid "Maximum two row answer." -msgstr "" - -msgid "Understanding the result" +msgid "At the left ``l`` of the segment." msgstr "" -msgid "``NULL`` on ``geom``, ``edge``" -msgstr "" - -msgid "``edge_id`` identifier of the edge close to the **original point**" -msgstr "" - -#, python-brace-format -msgid "" -"Two edges are withing :math:`0.5` distance units from the **original " -"point**: :math:`{5, 8}`" +msgid "``distance``" msgstr "" -msgid "For edge :math:`5`:" +msgid "Distance from the point to the edge." msgstr "" -msgid "" -"``fraction``: The closest point from the **original point** is at the " -":math:`0.8` fraction of the edge :math:`5`." +msgid "Original ``POINT`` geometry." msgstr "" msgid "" -"``side``: The **original point** is located to the left side of edge " -":math:`5`." +"``LINESTRING`` geometry that connects the original **point** to the " +"closest point of the edge with identifier ``edge_id``" msgstr "" -msgid "" -"``distance``: The **original point** is located :math:`0.1` length units " -"from edge :math:`5`." +msgid "One point in an edge" msgstr "" -msgid "For edge :math:`8`:" +msgid "The green node is the original point." msgstr "" -msgid "" -"``fraction``: The closest point from the **original point** is at the " -":math:`0.89..` fraction of the edge :math:`8`." +msgid "``geom`` has the value of the original point." msgstr "" msgid "" -"``side``: The **original point** is located to the right side of edge " -":math:`8`." +"The geometry ``edge`` is a line that connects the original point with the" +" edge :math:`sp \\rightarrow ep` edge." msgstr "" -msgid "" -"``distance``: The **original point** is located :math:`0.19..` length " -"units from edge :math:`8`." +msgid "The point is located at the left of the edge." msgstr "" -msgid "One answer, all columns" -msgstr "" - -msgid "``partial => false``" +msgid "One point dry run execution" msgstr "" -msgid "Calculate all columns" +msgid "Using the query from the previous example:" msgstr "" -msgid "``edge_id`` identifier of the edge **closest** to the **original point**" +msgid "Returns ``EMPTY SET``." msgstr "" -#, python-brace-format -msgid "" -"From all edges within :math:`0.5` distance units from the **original " -"point**: :math:`{5}` is the closest one." +msgid "``dryrun => true``" msgstr "" -msgid "" -"``geom``: Contains the geometry of the closest point on edge :math:`5` " -"from the **original point**." +msgid "Generates a PostgreSQL ``NOTICE`` with the code used." msgstr "" msgid "" -"``edge``: Contains the ``LINESTRING`` geometry of the **original point** " -"to the closest point on on edge :math:`5` ``geom``" -msgstr "" - -msgid "At most two answers with all columns" +"The generated code can be used as a starting base code for additional " +"requirements, like taking into consideration the SRID." msgstr "" -msgid "Understanding the result:" +msgid "Many points in an edge" msgstr "" -msgid "" -"``geom``: Contains the geometry of the closest point on edge :math:`8` " -"from the **original point**." +msgid "The green nodes are the **original points**" msgstr "" msgid "" -"``edge``: Contains the ``LINESTRING`` geometry of the **original point** " -"to the closest point on on edge :math:`8` ``geom``" -msgstr "" - -msgid "One point dry run execution" -msgstr "" - -msgid "Returns ``EMPTY SET``." -msgstr "" - -msgid "``partial => true``" -msgstr "" - -msgid "Is ignored" +"The geometry ``geom``, marked as **g1** and **g2** are the **original " +"points**" msgstr "" msgid "" -"Because it is a **dry run** excecution, the code for all calculations are" -" shown on the PostgreSQL ``NOTICE``." +"The geometry ``edge``, marked as **edge1** and **edge2** is a line that " +"connects the **original point** with the closest point on the :math:`sp " +"\\rightarrow ep` edge." msgstr "" -msgid "``dryrun => true``" +msgid "Many points dry run execution" msgstr "" msgid "Do not process query" @@ -11912,64 +11759,6 @@ msgid "" "columns" msgstr "" -msgid "``cap`` and **original point** are used in the code" -msgstr "" - -msgid "Many points examples" -msgstr "" - -msgid "At most two answers per point" -msgstr "" - -msgid "``NULL`` on ``edge``" -msgstr "" - -msgid "" -"``edge_id`` identifier of the edge close to a **original point** " -"(``geom``)" -msgstr "" - -msgid "" -"Two edges at most withing :math:`0.5` distance units from each of the " -"**original points**:" -msgstr "" - -msgid "For ``POINT(1.8 0.4)`` and ``POINT(0.3 1.8)`` only one edge was found." -msgstr "" - -msgid "For the rest of the points two edges were found." -msgstr "" - -msgid "For point ``POINT(2.9 1.8)``" -msgstr "" - -msgid "" -"Edge :math:`5` is before :math:`8` therefore edge :math:`5` has the " -"shortest distance to ``POINT(2.9 1.8)``." -msgstr "" - -msgid "One answer per point, all columns" -msgstr "" - -msgid "For the **original point** ``POINT(2.9 1.8)``" -msgstr "" - -msgid "Edge :math:`5` is the closest edge to the **original point**" -msgstr "" - -msgid "" -"``geom``: Contains the geometry of the **original point** ``POINT(2.9 " -"1.8)``" -msgstr "" - -msgid "" -"``edge``: Contains the ``LINESTRING`` geometry of the **original point** " -"(``geom``) to the closest point on on edge." -msgstr "" - -msgid "Many points dry run execution" -msgstr "" - msgid "Find at most two routes to a given point" msgstr "" @@ -12004,10 +11793,10 @@ msgstr "" msgid "A unique identifier." msgstr "" -msgid "Identifier of the edge nearest edge that allows an arrival to the point." +msgid "Identifier of the nearest segment." msgstr "" -msgid "Is it on the left, right or both sides of the segment ``edge_id``" +msgid "Is it on the left, right or both sides of the segment ``edge_id``." msgstr "" msgid "Where in the segment is the point located." @@ -12016,13 +11805,35 @@ msgstr "" msgid "The geometry of the points." msgstr "" +msgid "The distance between ``geom`` and the segment ``edge_id``." +msgstr "" + +msgid "" +"A segment that connects the ``geom`` of the point to the closest point on" +" the segment ``edge_id``." +msgstr "" + msgid "``newPoint``" msgstr "" -msgid "The geometry of the points moved on top of the segment." +msgid "A point on segment ``edge_id`` that is the closest to ``geom``." +msgstr "" + +msgid "Points of interest fill up" +msgstr "" + +msgid "Inserting the points of interest." +msgstr "" + +msgid "Filling the rest of the table." +msgstr "" + +msgid "" +"Any other additional modification: In this manual, point :math:`6` can be" +" reached from both sides." msgstr "" -msgid "Points of interest fillup" +msgid "The points of interest:" msgstr "" msgid "``pgr_floydWarshall``" @@ -13625,7 +13436,7 @@ msgid "" "https://www.sintef.no/projectweb/top/pdptw/li-lim-benchmark/" msgstr "" -msgid "There are 25 vehciles in the problem all with the same characteristics." +msgid "There are 25 vehicles in the problem all with the same characteristics." msgstr "" msgid "The original orders" @@ -13636,7 +13447,7 @@ msgid "" "same order." msgstr "" -msgid "The original data needs to be converted to an appropiate table:" +msgid "The original data needs to be converted to an appropriate table:" msgstr "" msgid "The query" @@ -17860,8 +17671,8 @@ msgstr "" msgid "" "The documentation provides very simple example queries based on a small " -"sample network that resembles a city. To be able to execute the mayority " -"of the examples queries, follow the instructions bellow." +"sample network that resembles a city. To be able to execute the majority " +"of the examples queries, follow the instructions below." msgstr "" msgid "Main graph" @@ -17875,7 +17686,7 @@ msgstr "" msgid "" "Information known at this point is the geometry of the edges, cost " -"values, cpacity values, category values and some locations that are not " +"values, capacity values, category values and some locations that are not " "in the graph." msgstr "" @@ -17890,8 +17701,8 @@ msgstr "" msgid "" "The database design for the documentation of pgRouting, keeps in the same" " row 2 segments, one in the direction of the geometry and the second in " -"the oposite direction. Therfore some information has the ``reverse_`` " -"prefix which corresponds to the segment on the oposite direction of the " +"the opposite direction. Therefore some information has the ``reverse_`` " +"prefix which corresponds to the segment on the opposite direction of the " "geometry." msgstr "" @@ -17923,7 +17734,7 @@ msgid ":math:`x` coordinate of the starting vertex of the geometry." msgstr "" msgid "" -"For convinience it is saved on the table but can be calculated as " +"For convenience it is saved on the table but can be calculated as " "``ST_X(ST_StartPoint(geom))``." msgstr "" @@ -17931,7 +17742,7 @@ msgid ":math:`y` coordinate of the ending vertex of the geometry." msgstr "" msgid "" -"For convinience it is saved on the table but can be calculated as " +"For convenience it is saved on the table but can be calculated as " "``ST_Y(ST_EndPoint(geom))``." msgstr "" @@ -17942,8 +17753,8 @@ msgid "Starting on PostgreSQL 12::" msgstr "" msgid "" -"Optionally indexes on different columns can be created. The recomendation" -" is to have" +"Optionally indexes on different columns can be created. The " +"recommendation is to have" msgstr "" msgid "``id`` indexed." @@ -17953,7 +17764,7 @@ msgid "``source`` and ``target`` columns indexed to speed up pgRouting queries." msgstr "" msgid "" -"``geom`` indexed to speed up gemetry processes that might be needed in " +"``geom`` indexed to speed up geometry processes that might be needed in " "the front end." msgstr "" @@ -18022,7 +17833,7 @@ msgid "" msgstr "" msgid "" -"For convinence of this documentations, some combinations will be stored " +"For convenience of this documentation, some combinations will be stored " "on a table:" msgstr "" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 25b34fae47..c05eb3a25d 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-01 19:10+0000\n" +"POT-Creation-Date: 2025-03-02 19:54+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3949,6 +3949,9 @@ msgstr "" msgid "pgr_findCloseEdges" msgstr "" +msgid "``partial`` option is removed." +msgstr "" + msgid "pgr_degree" msgstr "" @@ -5884,6 +5887,12 @@ msgstr "" msgid "In this example Use an inner query SQL that does not include some edges in the routing function and is within the area of the results." msgstr "" +msgid "Given this area:" +msgstr "" + +msgid "Calculate a route:" +msgstr "" + msgid "How to contribute" msgstr "" @@ -5905,7 +5914,7 @@ msgstr "" msgid "`Example `__" msgstr "" -msgid "Adding Functionaity to pgRouting" +msgid "Adding Functionality to pgRouting" msgstr "" msgid "Consult the `developer's documentation `__" @@ -9859,7 +9868,7 @@ msgstr "" msgid "The code to do the calculations can be obtained for further specific adjustments needed by the application." msgstr "" -msgid "``EMTPY SET`` is returned on dryrun executions" +msgid "``EMPTY SET`` is returned on dryrun executions" msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **point**, **tolerance**, [**options**])" @@ -9868,7 +9877,7 @@ msgstr "" msgid "pgr_findCloseEdges(`Edges SQL`_, **points**, **tolerance**, [**options**])" msgstr "" -msgid "**options:** ``[cap, partial, dryrun]``" +msgid "**options:** ``[cap, dryrun]``" msgstr "" msgid "Returns set of |result-find|" @@ -9877,49 +9886,16 @@ msgstr "" msgid "One point" msgstr "" -msgid "**options:** [cap, partial, dryrun]``" -msgstr "" - -msgid "Default: ``cap => 1``" -msgstr "" - -msgid "Maximum one row answer." -msgstr "" - -msgid "Default: ``partial => true``" -msgstr "" - -msgid "With less calculations as possible." -msgstr "" - -msgid "Default: ``dryrun => false``" -msgstr "" - -msgid "Process query" -msgstr "" - -msgid "Returns" -msgstr "" - -msgid "values on ``edge_id``, ``fraction``, ``side`` columns." +msgid "Get two close edges to points of interest with :math:`pid = 5`" msgstr "" -msgid "``NULL`` on ``distance``, ``geom``, ``edge`` columns." +msgid "``cap => 2``" msgstr "" msgid "Many points" msgstr "" -msgid "Find at most :math:`2` edges close to all vertices on the points of interest table." -msgstr "" - -msgid "One answer per point, as small as possible." -msgstr "" - -msgid "Columns ``edge_id``, ``fraction``, ``side`` and ``geom`` are returned with values." -msgstr "" - -msgid "``geom`` contains the original point geometry to assist on deterpartialing to which point geometry the row belongs to." +msgid "For each points of interests, find the closest edge." msgstr "" msgid "**point**" @@ -9946,15 +9922,6 @@ msgstr "" msgid "Limit output rows" msgstr "" -msgid "``partial``" -msgstr "" - -msgid "When ``true`` only columns needed for :doc:`withPoints-category` are calculated." -msgstr "" - -msgid "When ``false`` all columns are calculated" -msgstr "" - msgid "When ``false`` calculations are performed." msgstr "" @@ -9967,217 +9934,85 @@ msgstr "" msgid "When :math:`cap = 1`, it is the closest edge." msgstr "" -msgid "Value in <0,1> that indicates the relative postition from the first end-point of the edge." +msgid "Value in <0,1> that indicates the relative position from the first end-point of the edge." msgstr "" msgid "Value in ``[r, l]`` indicating if the point is:" msgstr "" -msgid "In the right ``r``." -msgstr "" - -msgid "In the left ``l``." +msgid "At the right ``r`` of the segment." msgstr "" msgid "When the point is on the line it is considered to be on the right." msgstr "" -msgid "``distance``" -msgstr "" - -msgid "Distance from point to edge." -msgstr "" - -msgid "``NULL`` when ``cap = 1`` on the `One point`_ signature" -msgstr "" - -msgid "``POINT`` geometry" -msgstr "" - -msgid "`One Point`_: Contains the point on the edge that is ``fraction`` away from the starting point of the edge." -msgstr "" - -msgid "`Many Points`_: Contains the corresponding **original point**" -msgstr "" - -msgid "``LINESTRING`` geometry from the **original point** to the closest point of the edge with identifier ``edge_id``" -msgstr "" - -msgid "One point results" -msgstr "" - -msgid "The green nodes is the **original point**" -msgstr "" - -msgid "The geometry ``geom`` is a point on the :math:`sp \\rightarrow ep` edge." -msgstr "" - -msgid "The geometry ``edge`` is a line that connects the **original point** with ``geom``" -msgstr "" - -msgid "Many point results" -msgstr "" - -msgid "The green nodes are the **original points**" -msgstr "" - -msgid "The geometry ``geom``, marked as **g1** and **g2** are the **original points**" -msgstr "" - -msgid "The geometry ``edge``, marked as **edge1** and **edge2** is a line that connects the **original point** with the closest point on the :math:`sp \\rightarrow ep` edge." -msgstr "" - -msgid "One point examples" -msgstr "" - -msgid "At most two answers" -msgstr "" - -msgid "``cap => 2``" -msgstr "" - -msgid "Maximum two row answer." -msgstr "" - -msgid "Understanding the result" -msgstr "" - -msgid "``NULL`` on ``geom``, ``edge``" -msgstr "" - -msgid "``edge_id`` identifier of the edge close to the **original point**" -msgstr "" - -msgid "Two edges are withing :math:`0.5` distance units from the **original point**: :math:`{5, 8}`" -msgstr "" - -msgid "For edge :math:`5`:" -msgstr "" - -msgid "``fraction``: The closest point from the **original point** is at the :math:`0.8` fraction of the edge :math:`5`." -msgstr "" - -msgid "``side``: The **original point** is located to the left side of edge :math:`5`." -msgstr "" - -msgid "``distance``: The **original point** is located :math:`0.1` length units from edge :math:`5`." -msgstr "" - -msgid "For edge :math:`8`:" -msgstr "" - -msgid "``fraction``: The closest point from the **original point** is at the :math:`0.89..` fraction of the edge :math:`8`." -msgstr "" - -msgid "``side``: The **original point** is located to the right side of edge :math:`8`." +msgid "At the left ``l`` of the segment." msgstr "" -msgid "``distance``: The **original point** is located :math:`0.19..` length units from edge :math:`8`." -msgstr "" - -msgid "One answer, all columns" -msgstr "" - -msgid "``partial => false``" -msgstr "" - -msgid "Calculate all columns" +msgid "``distance``" msgstr "" -msgid "``edge_id`` identifier of the edge **closest** to the **original point**" +msgid "Distance from the point to the edge." msgstr "" -msgid "From all edges within :math:`0.5` distance units from the **original point**: :math:`{5}` is the closest one." +msgid "Original ``POINT`` geometry." msgstr "" -msgid "``geom``: Contains the geometry of the closest point on edge :math:`5` from the **original point**." +msgid "``LINESTRING`` geometry that connects the original **point** to the closest point of the edge with identifier ``edge_id``" msgstr "" -msgid "``edge``: Contains the ``LINESTRING`` geometry of the **original point** to the closest point on on edge :math:`5` ``geom``" +msgid "One point in an edge" msgstr "" -msgid "At most two answers with all columns" +msgid "The green node is the original point." msgstr "" -msgid "Understanding the result:" +msgid "``geom`` has the value of the original point." msgstr "" -msgid "``geom``: Contains the geometry of the closest point on edge :math:`8` from the **original point**." +msgid "The geometry ``edge`` is a line that connects the original point with the edge :math:`sp \\rightarrow ep` edge." msgstr "" -msgid "``edge``: Contains the ``LINESTRING`` geometry of the **original point** to the closest point on on edge :math:`8` ``geom``" +msgid "The point is located at the left of the edge." msgstr "" msgid "One point dry run execution" msgstr "" -msgid "Returns ``EMPTY SET``." -msgstr "" - -msgid "``partial => true``" +msgid "Using the query from the previous example:" msgstr "" -msgid "Is ignored" -msgstr "" - -msgid "Because it is a **dry run** excecution, the code for all calculations are shown on the PostgreSQL ``NOTICE``." +msgid "Returns ``EMPTY SET``." msgstr "" msgid "``dryrun => true``" msgstr "" -msgid "Do not process query" -msgstr "" - -msgid "Generate a PostgreSQL ``NOTICE`` with the code used to calculate all columns" -msgstr "" - -msgid "``cap`` and **original point** are used in the code" -msgstr "" - -msgid "Many points examples" -msgstr "" - -msgid "At most two answers per point" -msgstr "" - -msgid "``NULL`` on ``edge``" -msgstr "" - -msgid "``edge_id`` identifier of the edge close to a **original point** (``geom``)" -msgstr "" - -msgid "Two edges at most withing :math:`0.5` distance units from each of the **original points**:" -msgstr "" - -msgid "For ``POINT(1.8 0.4)`` and ``POINT(0.3 1.8)`` only one edge was found." -msgstr "" - -msgid "For the rest of the points two edges were found." +msgid "Generates a PostgreSQL ``NOTICE`` with the code used." msgstr "" -msgid "For point ``POINT(2.9 1.8)``" +msgid "The generated code can be used as a starting base code for additional requirements, like taking into consideration the SRID." msgstr "" -msgid "Edge :math:`5` is before :math:`8` therefore edge :math:`5` has the shortest distance to ``POINT(2.9 1.8)``." +msgid "Many points in an edge" msgstr "" -msgid "One answer per point, all columns" +msgid "The green nodes are the **original points**" msgstr "" -msgid "For the **original point** ``POINT(2.9 1.8)``" +msgid "The geometry ``geom``, marked as **g1** and **g2** are the **original points**" msgstr "" -msgid "Edge :math:`5` is the closest edge to the **original point**" +msgid "The geometry ``edge``, marked as **edge1** and **edge2** is a line that connects the **original point** with the closest point on the :math:`sp \\rightarrow ep` edge." msgstr "" -msgid "``geom``: Contains the geometry of the **original point** ``POINT(2.9 1.8)``" +msgid "Many points dry run execution" msgstr "" -msgid "``edge``: Contains the ``LINESTRING`` geometry of the **original point** (``geom``) to the closest point on on edge." +msgid "Do not process query" msgstr "" -msgid "Many points dry run execution" +msgid "Generate a PostgreSQL ``NOTICE`` with the code used to calculate all columns" msgstr "" msgid "Find at most two routes to a given point" @@ -10207,10 +10042,10 @@ msgstr "" msgid "A unique identifier." msgstr "" -msgid "Identifier of the edge nearest edge that allows an arrival to the point." +msgid "Identifier of the nearest segment." msgstr "" -msgid "Is it on the left, right or both sides of the segment ``edge_id``" +msgid "Is it on the left, right or both sides of the segment ``edge_id``." msgstr "" msgid "Where in the segment is the point located." @@ -10219,13 +10054,31 @@ msgstr "" msgid "The geometry of the points." msgstr "" +msgid "The distance between ``geom`` and the segment ``edge_id``." +msgstr "" + +msgid "A segment that connects the ``geom`` of the point to the closest point on the segment ``edge_id``." +msgstr "" + msgid "``newPoint``" msgstr "" -msgid "The geometry of the points moved on top of the segment." +msgid "A point on segment ``edge_id`` that is the closest to ``geom``." +msgstr "" + +msgid "Points of interest fill up" +msgstr "" + +msgid "Inserting the points of interest." +msgstr "" + +msgid "Filling the rest of the table." +msgstr "" + +msgid "Any other additional modification: In this manual, point :math:`6` can be reached from both sides." msgstr "" -msgid "Points of interest fillup" +msgid "The points of interest:" msgstr "" msgid "``pgr_floydWarshall``" @@ -11560,7 +11413,7 @@ msgstr "" msgid "This data example **lc101** is from data published at https://www.sintef.no/projectweb/top/pdptw/li-lim-benchmark/" msgstr "" -msgid "There are 25 vehciles in the problem all with the same characteristics." +msgid "There are 25 vehicles in the problem all with the same characteristics." msgstr "" msgid "The original orders" @@ -11569,7 +11422,7 @@ msgstr "" msgid "The data comes in different rows for the pickup and the delivery of the same order." msgstr "" -msgid "The original data needs to be converted to an appropiate table:" +msgid "The original data needs to be converted to an appropriate table:" msgstr "" msgid "The query" @@ -14941,7 +14794,7 @@ msgstr "" msgid "Sample Data" msgstr "" -msgid "The documentation provides very simple example queries based on a small sample network that resembles a city. To be able to execute the mayority of the examples queries, follow the instructions bellow." +msgid "The documentation provides very simple example queries based on a small sample network that resembles a city. To be able to execute the majority of the examples queries, follow the instructions below." msgstr "" msgid "Main graph" @@ -14953,7 +14806,7 @@ msgstr "" msgid "The following city is to be inserted into the database:" msgstr "" -msgid "Information known at this point is the geometry of the edges, cost values, cpacity values, category values and some locations that are not in the graph." +msgid "Information known at this point is the geometry of the edges, cost values, capacity values, category values and some locations that are not in the graph." msgstr "" msgid "The process to have working topology starts by inserting the edges. After that everything else is calculated." @@ -14962,7 +14815,7 @@ msgstr "" msgid "Edges" msgstr "" -msgid "The database design for the documentation of pgRouting, keeps in the same row 2 segments, one in the direction of the geometry and the second in the oposite direction. Therfore some information has the ``reverse_`` prefix which corresponds to the segment on the oposite direction of the geometry." +msgid "The database design for the documentation of pgRouting, keeps in the same row 2 segments, one in the direction of the geometry and the second in the opposite direction. Therefore some information has the ``reverse_`` prefix which corresponds to the segment on the opposite direction of the geometry." msgstr "" msgid "Identifier of the starting vertex of the geometry ``geom``." @@ -14992,13 +14845,13 @@ msgstr "" msgid ":math:`x` coordinate of the starting vertex of the geometry." msgstr "" -msgid "For convinience it is saved on the table but can be calculated as ``ST_X(ST_StartPoint(geom))``." +msgid "For convenience it is saved on the table but can be calculated as ``ST_X(ST_StartPoint(geom))``." msgstr "" msgid ":math:`y` coordinate of the ending vertex of the geometry." msgstr "" -msgid "For convinience it is saved on the table but can be calculated as ``ST_Y(ST_EndPoint(geom))``." +msgid "For convenience it is saved on the table but can be calculated as ``ST_Y(ST_EndPoint(geom))``." msgstr "" msgid "The geometry of the segments." @@ -15007,7 +14860,7 @@ msgstr "" msgid "Starting on PostgreSQL 12::" msgstr "" -msgid "Optionally indexes on different columns can be created. The recomendation is to have" +msgid "Optionally indexes on different columns can be created. The recommendation is to have" msgstr "" msgid "``id`` indexed." @@ -15016,7 +14869,7 @@ msgstr "" msgid "``source`` and ``target`` columns indexed to speed up pgRouting queries." msgstr "" -msgid "``geom`` indexed to speed up gemetry processes that might be needed in the front end." +msgid "``geom`` indexed to speed up geometry processes that might be needed in the front end." msgstr "" msgid "For this small example the indexes are skipped, except for ``id``" @@ -15070,7 +14923,7 @@ msgstr "" msgid "Many functions can be used with a combinations of ``(source, target)`` pairs when wanting a route from ``source`` to ``target``." msgstr "" -msgid "For convinence of this documentations, some combinations will be stored on a table:" +msgid "For convenience of this documentation, some combinations will be stored on a table:" msgstr "" msgid "Inserting the data:" From a02e0556bafa4d99a92218e834a44992886d2116 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 3 Mar 2025 14:39:21 -0600 Subject: [PATCH 099/141] (pgr_findCloseEdges) promotion to official --- NEWS.md | 29 ++++++++++++++-------------- doc/src/proposed.rst | 9 --------- doc/src/release_notes.rst | 28 +++++++++++++-------------- doc/src/routingFunctions.rst | 9 +++++++++ doc/utilities/pgr_findCloseEdges.rst | 9 +++++---- 5 files changed, 43 insertions(+), 41 deletions(-) diff --git a/NEWS.md b/NEWS.md index a1a4eaceca..bf696b19be 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,12 +15,13 @@ * Error messages adjustment. * Function promoted to official. -**Changes on proposed functions** - * pgr_findCloseEdges * Error messages adjustment. * ``partial`` option is removed. + * Function promoted to official. + +**Changes on proposed functions** * pgr_degree @@ -96,7 +97,7 @@ milestone for 3.7.0 **Official functions changes** -* [#2605](https://github.com/pgRouting/pgrouting/pull/2605) Standarize +* [#2605](https://github.com/pgRouting/pgrouting/pull/2605) Standardize spanning tree functions output * Functions: @@ -208,26 +209,26 @@ milestone for 3.6.0 **Official functions changes** -* [#2516](https://github.com/pgRouting/pgrouting/pull/2516) Standarize output +* [#2516](https://github.com/pgRouting/pgrouting/pull/2516) Standardize output pgr_aStar - * Standarizing output columns to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)`` + * 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) Standarize output +* [#2523](https://github.com/pgRouting/pgrouting/pull/2523) Standardize output pgr_bdAstar - * Standarizing output columns to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)`` + * 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. -* [#2547](https://github.com/pgRouting/pgrouting/pull/2547) Standarize output +* [#2547](https://github.com/pgRouting/pgrouting/pull/2547) Standardize output and modifying signature pgr_KSP * Result columns standarized to: ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)`` @@ -239,7 +240,7 @@ milestone for 3.6.0 * pgr_ksp(Many to Many) * pgr_ksp(Combinations) -* [#2548](https://github.com/pgRouting/pgrouting/pull/2548) Standarize output +* [#2548](https://github.com/pgRouting/pgrouting/pull/2548) Standardize output pgr_drivingDistance * Standarizing output columns to ``(seq, depth, start_vid, pred, node, edge, cost, agg_cost)`` @@ -251,7 +252,7 @@ milestone for 3.6.0 **Proposed functions changes** -* [#2544](https://github.com/pgRouting/pgrouting/pull/2544) Standarize output +* [#2544](https://github.com/pgRouting/pgrouting/pull/2544) Standardize output and modifying signature pgr_withPointsDD * Signature change: ``driving_side`` parameter changed from named optional to @@ -270,7 +271,7 @@ milestone for 3.6.0 * 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) Standarize output +* [#2546](https://github.com/pgRouting/pgrouting/pull/2546) Standardize output and modifying signature pgr_withPointsKSP * Standarizing output columns to ``(seq, path_id, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)`` @@ -308,9 +309,9 @@ milestone for 3.6.0 * [#2490](https://github.com/pgRouting/pgrouting/pull/2490) Automatic page history links. -* ..rubric:: SQL standarization +* ..rubric:: Standardize SQL -* [#2555](https://github.com/pgRouting/pgrouting/pull/2555) standarize +* [#2555](https://github.com/pgRouting/pgrouting/pull/2555) Standardize deprecated messages * On new internal function: do not use named parameters and default parameters. @@ -368,7 +369,7 @@ milestone for 3.5.0 * Dijkstra - * Standarizing output columns to ``(seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)`` + * 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. diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index 6b67f28f4d..6722afa594 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -130,15 +130,6 @@ Proposed Functions via-category withPoints-category -.. rubric:: Utilities Category - -:doc:`pgr_findCloseEdges` - -.. toctree:: - :hidden: - - pgr_findCloseEdges - See Also ------------------------------------------------------------------------------- diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index d7748848c5..fd101c8da5 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -47,14 +47,14 @@ pgRouting 3.8.0 Release Notes :start-after: Version 3.8.0 :end-before: .. rubric -.. rubric:: Changes on proposed functions - * pgr_findCloseEdges .. include:: pgr_findCloseEdges.rst :start-after: Version 3.8.0 :end-before: .. rubric +.. rubric:: Changes on proposed functions + * pgr_degree .. include:: pgr_degree.rst @@ -136,7 +136,7 @@ milestone for 3.7.0 .. rubric:: Official functions changes -* `#2605 `__ Standarize +* `#2605 `__ Standardize spanning tree functions output * Functions: @@ -258,33 +258,33 @@ milestone for 3.6.0 .. rubric:: Official functions changes -* `#2516 `__ Standarize output +* `#2516 `__ Standardize output pgr_aStar - * Standarizing output columns to |short-generic-result| + * Standardize output columns to |short-generic-result| * 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 `__ Standarize output +* `#2523 `__ Standardize output pgr_bdAstar - * Standarizing output columns to |short-generic-result| + * Standardize output columns to |short-generic-result| * 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 `__ Standarize output +* `#2547 `__ Standardize output and modifying signature pgr_KSP .. include:: pgr_KSP.rst :start-after: Version 3.6.0 :end-before: .. rubric -* `#2548 `__ Standarize output +* `#2548 `__ Standardize output pgr_drivingDistance .. include:: pgr_drivingDistance.rst @@ -293,14 +293,14 @@ milestone for 3.6.0 .. rubric:: Proposed functions changes -* `#2544 `__ Standarize output +* `#2544 `__ Standardize output and modifying signature pgr_withPointsDD .. include:: pgr_withPointsDD.rst :start-after: Version 3.6.0 :end-before: .. rubric -* `#2546 `__ Standarize output +* `#2546 `__ Standardize output and modifying signature pgr_withPointsKSP .. include:: pgr_withPointsKSP.rst @@ -329,9 +329,9 @@ milestone for 3.6.0 * `#2490 `__ Automatic page history links. -* ..rubric:: SQL standarization +* ..rubric:: Standardize SQL -* `#2555 `__ standarize +* `#2555 `__ Standardize deprecated messages * On new internal function: do not use named parameters and default parameters. @@ -395,7 +395,7 @@ milestone for 3.5.0 * Dijkstra - * Standarizing output columns to |short-generic-result| + * Standardize output columns to |short-generic-result| * pgr_dijkstra(One to One) added ``start_vid`` and ``end_vid`` columns. * pgr_dijkstra(One to Many) added ``end_vid`` column. diff --git a/doc/src/routingFunctions.rst b/doc/src/routingFunctions.rst index 573d7572fd..1137362930 100644 --- a/doc/src/routingFunctions.rst +++ b/doc/src/routingFunctions.rst @@ -97,6 +97,14 @@ Function Families :doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP) +.. rubric:: Utilities family + +:doc:`pgr_findCloseEdges` + +.. toctree:: + :hidden: + + Functions by categories =============================================================================== @@ -162,6 +170,7 @@ Functions by categories reference topology-functions TSP-family + pgr_findCloseEdges .. toctree:: :hidden: diff --git a/doc/utilities/pgr_findCloseEdges.rst b/doc/utilities/pgr_findCloseEdges.rst index d15a765218..502ab2989d 100644 --- a/doc/utilities/pgr_findCloseEdges.rst +++ b/doc/utilities/pgr_findCloseEdges.rst @@ -8,12 +8,12 @@ **************************************************************************** .. index:: - single: Utilities ; pgr_findCloseEdges - Proposed + single: Utilities ; pgr_findCloseEdges single: findCloseEdges | -``pgr_findCloseEdges`` - Proposed +``pgr_findCloseEdges`` =============================================================================== ``pgr_findCloseEdges`` - Finds the close edges to a point geometry. @@ -24,6 +24,7 @@ * Error messages adjustment. * ``partial`` option is removed. +* Function promoted to official. .. rubric:: Version 3.4.0 @@ -58,7 +59,7 @@ Signatures | OR EMPTY SET .. index:: - single: findCloseEdges - Proposed ; One point - Proposed on 3.6 + single: findCloseEdges ; One point One point ............................................................................... @@ -81,7 +82,7 @@ One point :end-before: -- q2 .. index:: - single: findCloseEdges - Proposed ; Many points - Proposed on 3.6 + single: findCloseEdges ; Many points Many points ............................................................................... From 4e64d978395e285b84dce183ae03cc3b716bafd8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 21:01:00 +0000 Subject: [PATCH 100/141] Update locale: commit 931adb3cd --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 43 ++++++++++--------- locale/pot/pgrouting_doc_strings.pot | 43 ++++++++++--------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 0bf25ce56e..43932f090f 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-02 19:54+0000\n" +"POT-Creation-Date: 2025-03-03 21:00+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4370,6 +4370,12 @@ msgstr "" msgid ":doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP)" msgstr "" +msgid "Utilities family" +msgstr "" + +msgid ":doc:`pgr_findCloseEdges`" +msgstr "" + msgid "Functions by categories" msgstr "" @@ -4421,15 +4427,15 @@ msgstr "" msgid "Function promoted to official." msgstr "" -msgid "Changes on proposed functions" -msgstr "" - msgid "pgr_findCloseEdges" msgstr "" msgid "``partial`` option is removed." msgstr "" +msgid "Changes on proposed functions" +msgstr "" + msgid "pgr_degree" msgstr "" @@ -11576,7 +11582,7 @@ msgid "" "``dryrun := true``." msgstr "" -msgid "``pgr_findCloseEdges`` - Proposed" +msgid "``pgr_findCloseEdges``" msgstr "" msgid "``pgr_findCloseEdges`` - Finds the close edges to a point geometry." @@ -15187,12 +15193,6 @@ msgstr "" msgid "From the :doc:`TRSP-family`:" msgstr "" -msgid "Utilities Category" -msgstr "" - -msgid ":doc:`pgr_findCloseEdges`" -msgstr "" - msgid "Reference" msgstr "" @@ -15328,7 +15328,7 @@ msgid "Official functions changes" msgstr "" msgid "" -"`#2605 `__ Standarize " +"`#2605 `__ Standardize " "spanning tree functions output" msgstr "" @@ -15482,22 +15482,25 @@ msgid "" msgstr "" msgid "" -"`#2516 `__ Standarize " +"`#2516 `__ Standardize " "output pgr_aStar" msgstr "" +msgid "Standardize output columns to |short-generic-result|" +msgstr "" + msgid "" -"`#2523 `__ Standarize " +"`#2523 `__ Standardize " "output pgr_bdAstar" msgstr "" msgid "" -"`#2547 `__ Standarize " +"`#2547 `__ Standardize " "output and modifying signature pgr_KSP" msgstr "" msgid "" -"`#2548 `__ Standarize " +"`#2548 `__ Standardize " "output pgr_drivingDistance" msgstr "" @@ -15505,12 +15508,12 @@ msgid "Proposed functions changes" msgstr "" msgid "" -"`#2544 `__ Standarize " +"`#2544 `__ Standardize " "output and modifying signature pgr_withPointsDD" msgstr "" msgid "" -"`#2546 `__ Standarize " +"`#2546 `__ Standardize " "output and modifying signature pgr_withPointsKSP" msgstr "" @@ -15555,11 +15558,11 @@ msgid "" "page history links." msgstr "" -msgid "..rubric:: SQL standarization" +msgid "..rubric:: Standardize SQL" msgstr "" msgid "" -"`#2555 `__ standarize " +"`#2555 `__ Standardize " "deprecated messages" msgstr "" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index c05eb3a25d..3a2da20db5 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-02 19:54+0000\n" +"POT-Creation-Date: 2025-03-03 21:00+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3892,6 +3892,12 @@ msgstr "" msgid ":doc:`pgr_trsp` - Turn Restriction Shortest Path (TRSP)" msgstr "" +msgid "Utilities family" +msgstr "" + +msgid ":doc:`pgr_findCloseEdges`" +msgstr "" + msgid "Functions by categories" msgstr "" @@ -3943,15 +3949,15 @@ msgstr "" msgid "Function promoted to official." msgstr "" -msgid "Changes on proposed functions" -msgstr "" - msgid "pgr_findCloseEdges" msgstr "" msgid "``partial`` option is removed." msgstr "" +msgid "Changes on proposed functions" +msgstr "" + msgid "pgr_degree" msgstr "" @@ -9853,7 +9859,7 @@ msgstr "" msgid "To get the query generated used to get the vertex information, use ``dryrun := true``." msgstr "" -msgid "``pgr_findCloseEdges`` - Proposed" +msgid "``pgr_findCloseEdges``" msgstr "" msgid "``pgr_findCloseEdges`` - Finds the close edges to a point geometry." @@ -12766,12 +12772,6 @@ msgstr "" msgid "From the :doc:`TRSP-family`:" msgstr "" -msgid "Utilities Category" -msgstr "" - -msgid ":doc:`pgr_findCloseEdges`" -msgstr "" - msgid "Reference" msgstr "" @@ -12874,7 +12874,7 @@ msgstr "" msgid "Official functions changes" msgstr "" -msgid "`#2605 `__ Standarize spanning tree functions output" +msgid "`#2605 `__ Standardize spanning tree functions output" msgstr "" msgid "Functions:" @@ -12997,25 +12997,28 @@ msgstr "" msgid "To see all issues & pull requests closed by this release see the `Git closed milestone for 3.6.0 `_" msgstr "" -msgid "`#2516 `__ Standarize output pgr_aStar" +msgid "`#2516 `__ Standardize output pgr_aStar" +msgstr "" + +msgid "Standardize output columns to |short-generic-result|" msgstr "" -msgid "`#2523 `__ Standarize output pgr_bdAstar" +msgid "`#2523 `__ Standardize output pgr_bdAstar" msgstr "" -msgid "`#2547 `__ Standarize output and modifying signature pgr_KSP" +msgid "`#2547 `__ Standardize output and modifying signature pgr_KSP" msgstr "" -msgid "`#2548 `__ Standarize output pgr_drivingDistance" +msgid "`#2548 `__ Standardize output pgr_drivingDistance" msgstr "" msgid "Proposed functions changes" msgstr "" -msgid "`#2544 `__ Standarize output and modifying signature pgr_withPointsDD" +msgid "`#2544 `__ Standardize output and modifying signature pgr_withPointsDD" msgstr "" -msgid "`#2546 `__ Standarize output and modifying signature pgr_withPointsKSP" +msgid "`#2546 `__ Standardize output and modifying signature pgr_withPointsKSP" msgstr "" msgid "C/C++ code enhancements" @@ -13045,10 +13048,10 @@ msgstr "" msgid "`#2490 `__ Automatic page history links." msgstr "" -msgid "..rubric:: SQL standarization" +msgid "..rubric:: Standardize SQL" msgstr "" -msgid "`#2555 `__ standarize deprecated messages" +msgid "`#2555 `__ Standardize deprecated messages" msgstr "" msgid "On new internal function: do not use named parameters and default parameters." From 234968706fbf4a4731f54ce507fd402853743188 Mon Sep 17 00:00:00 2001 From: "wifi:)" Date: Tue, 4 Mar 2025 11:21:54 +0800 Subject: [PATCH 101/141] Update my name into lower class --- doc/src/pgRouting-introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst index 0f5439fbd5..10a8a06bd7 100644 --- a/doc/src/pgRouting-introduction.rst +++ b/doc/src/pgRouting-introduction.rst @@ -153,7 +153,7 @@ Vidhan Jain, Virginia Vergara, Yige Huang Esteban Zimanyi, -FAN WU, +Fan Wu, Florian Thurkow, Frederic Junod, Gerald Fenoy, From 99ba589423696664fcfe96b2bb7384af21aecf05 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 4 Mar 2025 11:07:22 -0600 Subject: [PATCH 102/141] Collapse warnings of proposed and expermiental - fix some spelling mistakes --- doc/categories/DFS-category.rst | 2 -- doc/categories/KSP-category.rst | 2 -- doc/categories/cost-category.rst | 2 -- doc/categories/costMatrix-category.rst | 2 -- doc/categories/drivingDistance-category.rst | 4 +-- doc/categories/via-category.rst | 4 +-- doc/coloring/coloring-family.rst | 4 --- doc/components/components-family.rst | 2 -- doc/conf.py.in | 1 + doc/dijkstra/dijkstra-family.rst | 8 ++--- doc/max_flow/flow-family.rst | 4 +-- doc/metrics/metrics-family.rst | 2 -- doc/ordering/ordering-family.rst | 2 -- doc/src/experimental.rst | 38 +++++++++++---------- doc/src/proposed.rst | 20 ++++++----- doc/topology/topology-functions.rst | 2 -- doc/traversal/traversal-family.rst | 6 +--- doc/trsp/TRSP-family.rst | 4 --- requirements.txt | 1 + 19 files changed, 40 insertions(+), 70 deletions(-) diff --git a/doc/categories/DFS-category.rst b/doc/categories/DFS-category.rst index 58da1b3275..fad9334a64 100644 --- a/doc/categories/DFS-category.rst +++ b/doc/categories/DFS-category.rst @@ -24,8 +24,6 @@ Traversal using Depth First Search. .. official-end -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/categories/KSP-category.rst b/doc/categories/KSP-category.rst index 15a4692087..8416fcb0b8 100644 --- a/doc/categories/KSP-category.rst +++ b/doc/categories/KSP-category.rst @@ -20,8 +20,6 @@ K shortest paths - Category .. official-end -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/categories/cost-category.rst b/doc/categories/cost-category.rst index b4740caf9a..305cda3277 100644 --- a/doc/categories/cost-category.rst +++ b/doc/categories/cost-category.rst @@ -26,8 +26,6 @@ Cost - Category .. official-end -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/categories/costMatrix-category.rst b/doc/categories/costMatrix-category.rst index c4c28b1e72..1ea0a04380 100644 --- a/doc/categories/costMatrix-category.rst +++ b/doc/categories/costMatrix-category.rst @@ -24,8 +24,6 @@ Cost Matrix - Category .. official-end -.. rubric:: proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/categories/drivingDistance-category.rst b/doc/categories/drivingDistance-category.rst index 5efdadd935..3439eb3c35 100644 --- a/doc/categories/drivingDistance-category.rst +++ b/doc/categories/drivingDistance-category.rst @@ -19,14 +19,12 @@ 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 pocessing +* Post processing * :doc:`pgr_alphaShape` - Alpha shape computation .. official-end -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/categories/via-category.rst b/doc/categories/via-category.rst index 5f7a69f40f..6fec87e3d8 100644 --- a/doc/categories/via-category.rst +++ b/doc/categories/via-category.rst @@ -14,8 +14,6 @@ Via - Category =============================================================================== -.. rubric:: proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning @@ -37,7 +35,7 @@ This category intends to solve the general problem: Given a graph and a list of vertices, find the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all vertices -In other words, find a continuos route that visits all the vertices in the order +In other words, find a continuous route that visits all the vertices in the order given. :path: represents a section of a **route**. diff --git a/doc/coloring/coloring-family.rst b/doc/coloring/coloring-family.rst index 96babb6bfa..38014ae0d4 100644 --- a/doc/coloring/coloring-family.rst +++ b/doc/coloring/coloring-family.rst @@ -14,8 +14,6 @@ Coloring - Family of functions =============================================================================== -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning @@ -27,8 +25,6 @@ Coloring - Family of functions .. proposed-end -.. rubric:: Experimental - .. include:: experimental.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/components/components-family.rst b/doc/components/components-family.rst index 3225c95f56..1222b10fe8 100644 --- a/doc/components/components-family.rst +++ b/doc/components/components-family.rst @@ -27,8 +27,6 @@ Components - Family of functions .. official-end -.. rubric:: Experimental - .. include:: experimental.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/conf.py.in b/doc/conf.py.in index 3b5ae03cd7..d94e27219f 100644 --- a/doc/conf.py.in +++ b/doc/conf.py.in @@ -54,6 +54,7 @@ extensions = [ 'sphinx.ext.mathjax', 'sphinx.ext.graphviz', 'sphinx.ext.autosectionlabel', + 'sphinx_collapse', ] autosectionlabel_prefix_document = True diff --git a/doc/dijkstra/dijkstra-family.rst b/doc/dijkstra/dijkstra-family.rst index 65c23da0f8..b7582a3185 100644 --- a/doc/dijkstra/dijkstra-family.rst +++ b/doc/dijkstra/dijkstra-family.rst @@ -26,8 +26,6 @@ Dijkstra - Family of functions .. official-end -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning @@ -35,7 +33,7 @@ Dijkstra - Family of functions .. proposed-start -* :doc:`pgr_dijkstraVia` - Get a route of a seuence of vertices. +* :doc:`pgr_dijkstraVia` - Get a route of a sequence of vertices. * :doc:`pgr_dijkstraNear` - Get the route to the nearest vertex. * :doc:`pgr_dijkstraNearCost` - Get the cost to the nearest vertex. @@ -192,7 +190,7 @@ The graphs are defined as follows: .. rubric:: Directed graph -The weighted directed graph, :math:`G_d(V,E)`, is definied by: +The weighted directed graph, :math:`G_d(V,E)`, is defined by: * the set of vertices :math:`V` @@ -211,7 +209,7 @@ The weighted directed graph, :math:`G_d(V,E)`, is definied by: .. rubric:: Undirected graph -The weighted undirected graph, :math:`G_u(V,E)`, is definied by: +The weighted undirected graph, :math:`G_u(V,E)`, is defined by: * the set of vertices :math:`V` diff --git a/doc/max_flow/flow-family.rst b/doc/max_flow/flow-family.rst index 8c09e321b6..2e2b782c5b 100644 --- a/doc/max_flow/flow-family.rst +++ b/doc/max_flow/flow-family.rst @@ -33,8 +33,6 @@ Flow - Family of functions .. official-end -.. rubric:: Experimental - .. include:: experimental.rst :start-after: warning-begin :end-before: end-warning @@ -71,7 +69,7 @@ Flow Functions General Information - When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned. - - There is no flow when source has the same vaule as target. + - There is no flow when source has the same value as target. - Any duplicated values in source or target are ignored. - Calculates the flow/residual capacity for each edge. In the output diff --git a/doc/metrics/metrics-family.rst b/doc/metrics/metrics-family.rst index 7485598441..0e18d6baa4 100644 --- a/doc/metrics/metrics-family.rst +++ b/doc/metrics/metrics-family.rst @@ -15,8 +15,6 @@ Metrics - Family of functions =============================================================================== -.. rubric:: Experimental - .. include:: experimental.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/ordering/ordering-family.rst b/doc/ordering/ordering-family.rst index 272780d140..04cd2677b0 100644 --- a/doc/ordering/ordering-family.rst +++ b/doc/ordering/ordering-family.rst @@ -14,8 +14,6 @@ Ordering - Family of functions =============================================================================== -.. rubric:: Experimental - .. include:: experimental.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/src/experimental.rst b/doc/src/experimental.rst index 9794001291..df7a6601d5 100644 --- a/doc/src/experimental.rst +++ b/doc/src/experimental.rst @@ -14,27 +14,29 @@ Experimental Functions .. warning-begin -.. warning:: Possible server crash +.. collapse:: Experimental - - These functions might create a server crash + .. warning:: Possible server crash -.. warning:: Experimental functions + - These functions might create a server crash - - They are not officially of the current release. - - They likely will not be officially be part of the next release: + .. warning:: Experimental functions - - The functions might not make use of ANY-INTEGER and ANY-NUMERICAL - - Name might change. - - Signature might change. - - Functionality might change. - - pgTap tests might be missing. - - Might need c/c++ coding. - - May lack documentation. - - Documentation if any might need to be rewritten. - - Documentation examples might need to be automatically generated. - - Might need a lot of feedback from the comunity. - - Might depend on a proposed function of pgRouting - - Might depend on a deprecated function of pgRouting + - They are not officially of the current release. + - They likely will not be officially be part of the next release: + + - The functions might not make use of ANY-INTEGER and ANY-NUMERICAL + - Name might change. + - Signature might change. + - Functionality might change. + - pgTap tests might be missing. + - Might need c/c++ coding. + - May lack documentation. + - 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 @@ -138,7 +140,7 @@ Experimental Functions pgr_isPlanar -.. rubric:: Miscellaneous Algoritms +.. rubric:: Miscellaneous Algorithms - :doc:`pgr_lengauerTarjanDominatorTree` - :doc:`pgr_stoerWagner` diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index 6722afa594..72371afa3b 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -15,17 +15,19 @@ Proposed Functions .. warning-begin -.. warning:: Proposed functions for next mayor release. +.. collapse:: Proposed - - They are not officially in the current release. - - They will likely officially be part of the next mayor release: + .. warning:: Proposed functions for 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) - - pgTap tests have being done. But might need more. - - Documentation might need refinement. + - 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) + - pgTap tests have being done. But might need more. + - Documentation might need refinement. .. end-warning diff --git a/doc/topology/topology-functions.rst b/doc/topology/topology-functions.rst index cd876dea97..020ebffed3 100644 --- a/doc/topology/topology-functions.rst +++ b/doc/topology/topology-functions.rst @@ -51,8 +51,6 @@ Additional functions to analyze a graph: * :doc:`components-family` -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning diff --git a/doc/traversal/traversal-family.rst b/doc/traversal/traversal-family.rst index ea986999ae..ec3be222f3 100644 --- a/doc/traversal/traversal-family.rst +++ b/doc/traversal/traversal-family.rst @@ -14,8 +14,6 @@ Traversal - Family of functions =============================================================================== -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning @@ -26,8 +24,6 @@ Traversal - Family of functions .. official-end -.. rubric:: Experimental - .. include:: experimental.rst :start-after: warning-begin :end-before: end-warning @@ -40,7 +36,7 @@ Traversal - Family of functions .. experimental-end -Aditionaly there are 2 categories under this family +Additionally there are 2 categories under this family * :doc:`BFS-category` * :doc:`DFS-category` diff --git a/doc/trsp/TRSP-family.rst b/doc/trsp/TRSP-family.rst index ceb782c39f..f0e2c17044 100644 --- a/doc/trsp/TRSP-family.rst +++ b/doc/trsp/TRSP-family.rst @@ -16,8 +16,6 @@ TRSP - Family of functions When points are also given as input: -.. rubric:: Proposed - .. include:: proposed.rst :start-after: warning-begin :end-before: end-warning @@ -34,8 +32,6 @@ When points are also given as input: .. Warning:: Read the :doc:`migration` about how to migrate from the deprecated TRSP functionality to the new signatures or replacement functions. -.. rubric:: Experimental - .. include:: experimental.rst :start-after: warning-begin :end-before: end-warning diff --git a/requirements.txt b/requirements.txt index ef307a8bab..85758d9a5a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ Sphinx>4.0.0,<7.0.0 sphinx-bootstrap-theme>=0.8.0 +sphinx-collapse From fe263547a27a13eed4036306ce55ff3818278d3a Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 4 Mar 2025 11:22:06 -0600 Subject: [PATCH 103/141] (pgr_degree) Moving to metrics family --- doc/metrics/CMakeLists.txt | 1 + doc/metrics/metrics-family.rst | 26 +++++++++++++++---- doc/{topology => metrics}/pgr_degree.rst | 4 +-- doc/topology/CMakeLists.txt | 1 - doc/topology/topology-functions.rst | 12 --------- docqueries/metrics/CMakeLists.txt | 1 + docqueries/{topology => metrics}/degree.pg | 0 .../{topology => metrics}/degree.result | 0 docqueries/metrics/test.conf | 1 + docqueries/topology/CMakeLists.txt | 1 - docqueries/topology/test.conf | 1 - .../degree/edge_cases.pg | 0 .../degree/inner_query.pg | 0 .../degree/no_crash_test.pg | 0 .../degree/types_check.pg | 0 sql/metrics/CMakeLists.txt | 1 + sql/{topology => metrics}/degree.sql | 0 sql/topology/CMakeLists.txt | 1 - 18 files changed, 27 insertions(+), 23 deletions(-) rename doc/{topology => metrics}/pgr_degree.rst (98%) rename docqueries/{topology => metrics}/degree.pg (100%) rename docqueries/{topology => metrics}/degree.result (100%) rename pgtap/{topology => metrics}/degree/edge_cases.pg (100%) rename pgtap/{topology => metrics}/degree/inner_query.pg (100%) rename pgtap/{topology => metrics}/degree/no_crash_test.pg (100%) rename pgtap/{topology => metrics}/degree/types_check.pg (100%) rename sql/{topology => metrics}/degree.sql (100%) diff --git a/doc/metrics/CMakeLists.txt b/doc/metrics/CMakeLists.txt index 5adba5a42a..d668b5a950 100644 --- a/doc/metrics/CMakeLists.txt +++ b/doc/metrics/CMakeLists.txt @@ -2,6 +2,7 @@ SET(LOCAL_FILES metrics-family.rst pgr_betweennessCentrality.rst + pgr_degree.rst ) foreach (f ${LOCAL_FILES}) diff --git a/doc/metrics/metrics-family.rst b/doc/metrics/metrics-family.rst index 0e18d6baa4..4f2647e1e7 100644 --- a/doc/metrics/metrics-family.rst +++ b/doc/metrics/metrics-family.rst @@ -15,20 +15,36 @@ Metrics - Family of functions =============================================================================== -.. include:: experimental.rst - :start-after: warning-begin - :end-before: end-warning +.. collapse:: Proposed + + .. include:: proposed.rst + :start-after: warning-begin + :end-before: end-warning + +.. proposed-start + +- :doc:`pgr_degree` - Returns a set of vertices and corresponding count of + incident edges to the vertex. + +.. proposed-end + +.. collapse:: Experimental + + .. 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_betweennessCentrality` - Calculates relative betweenness centrality + using Brandes Algorithm .. experimental-end - .. toctree:: :hidden: + pgr_degree pgr_betweennessCentrality See Also diff --git a/doc/topology/pgr_degree.rst b/doc/metrics/pgr_degree.rst similarity index 98% rename from doc/topology/pgr_degree.rst rename to doc/metrics/pgr_degree.rst index 6e6a4a3392..bdfa31e006 100644 --- a/doc/topology/pgr_degree.rst +++ b/doc/metrics/pgr_degree.rst @@ -8,7 +8,7 @@ **************************************************************************** .. index:: - single: Topology Family ; pgr_degree - Proposed + single: Metrics Family ; pgr_degree - Proposed single: degree - Proposed on v3.4 | @@ -51,7 +51,7 @@ Signatures | pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``]) | RETURNS SETOF |result-degree| - | OR EMTPY SET + | OR EMPTY SET :Example: Extracting the vertex information diff --git a/doc/topology/CMakeLists.txt b/doc/topology/CMakeLists.txt index 6f5b114abf..332f7a90bb 100644 --- a/doc/topology/CMakeLists.txt +++ b/doc/topology/CMakeLists.txt @@ -7,7 +7,6 @@ SET(LOCAL_FILES pgr_createVerticesTable.rst pgr_extractVertices.rst topology-functions.rst - pgr_degree.rst ) foreach (f ${LOCAL_FILES}) diff --git a/doc/topology/topology-functions.rst b/doc/topology/topology-functions.rst index 020ebffed3..d44694828c 100644 --- a/doc/topology/topology-functions.rst +++ b/doc/topology/topology-functions.rst @@ -50,17 +50,6 @@ Additional functions to analyze a graph: * :doc:`components-family` - -.. include:: proposed.rst - :start-after: warning-begin - :end-before: end-warning - -.. proposed-start - -These proposed functions do not modify the database. - -- :doc:`pgr_degree` - Returns a set of vertices and corresponding count of incidet edges to the vertex. - .. proposed-end .. toctree:: @@ -72,7 +61,6 @@ These proposed functions do not modify the database. pgr_analyzeOneWay pgr_nodeNetwork pgr_extractVertices - pgr_degree See Also ------------------------------------------------------------------------------- diff --git a/docqueries/metrics/CMakeLists.txt b/docqueries/metrics/CMakeLists.txt index 27f1bdae57..7775cb51d4 100644 --- a/docqueries/metrics/CMakeLists.txt +++ b/docqueries/metrics/CMakeLists.txt @@ -1,6 +1,7 @@ # Do not use extensions SET(LOCAL_FILES betweennessCentrality + degree ) foreach (f ${LOCAL_FILES}) diff --git a/docqueries/topology/degree.pg b/docqueries/metrics/degree.pg similarity index 100% rename from docqueries/topology/degree.pg rename to docqueries/metrics/degree.pg diff --git a/docqueries/topology/degree.result b/docqueries/metrics/degree.result similarity index 100% rename from docqueries/topology/degree.result rename to docqueries/metrics/degree.result diff --git a/docqueries/metrics/test.conf b/docqueries/metrics/test.conf index 6afe7ec483..252681dc40 100644 --- a/docqueries/metrics/test.conf +++ b/docqueries/metrics/test.conf @@ -4,6 +4,7 @@ 'any' => { 'files' => [qw( betweennessCentrality.pg + degree.pg )] }, diff --git a/docqueries/topology/CMakeLists.txt b/docqueries/topology/CMakeLists.txt index 0d78f52ed8..abf97a73c9 100644 --- a/docqueries/topology/CMakeLists.txt +++ b/docqueries/topology/CMakeLists.txt @@ -6,7 +6,6 @@ SET(LOCAL_FILES createVerticesTable extractVertices nodeNetwork - degree ) foreach (f ${LOCAL_FILES}) diff --git a/docqueries/topology/test.conf b/docqueries/topology/test.conf index de6a9bfd29..f40233fbec 100644 --- a/docqueries/topology/test.conf +++ b/docqueries/topology/test.conf @@ -11,7 +11,6 @@ analyzeOneWay.pg nodeNetwork.pg extractVertices.pg - degree.pg )], }, ); diff --git a/pgtap/topology/degree/edge_cases.pg b/pgtap/metrics/degree/edge_cases.pg similarity index 100% rename from pgtap/topology/degree/edge_cases.pg rename to pgtap/metrics/degree/edge_cases.pg diff --git a/pgtap/topology/degree/inner_query.pg b/pgtap/metrics/degree/inner_query.pg similarity index 100% rename from pgtap/topology/degree/inner_query.pg rename to pgtap/metrics/degree/inner_query.pg diff --git a/pgtap/topology/degree/no_crash_test.pg b/pgtap/metrics/degree/no_crash_test.pg similarity index 100% rename from pgtap/topology/degree/no_crash_test.pg rename to pgtap/metrics/degree/no_crash_test.pg diff --git a/pgtap/topology/degree/types_check.pg b/pgtap/metrics/degree/types_check.pg similarity index 100% rename from pgtap/topology/degree/types_check.pg rename to pgtap/metrics/degree/types_check.pg diff --git a/sql/metrics/CMakeLists.txt b/sql/metrics/CMakeLists.txt index c047b395e5..9b748324e2 100644 --- a/sql/metrics/CMakeLists.txt +++ b/sql/metrics/CMakeLists.txt @@ -2,6 +2,7 @@ SET(LOCAL_FILES _betweennessCentrality.sql betweennessCentrality.sql + degree.sql ) foreach (f ${LOCAL_FILES}) diff --git a/sql/topology/degree.sql b/sql/metrics/degree.sql similarity index 100% rename from sql/topology/degree.sql rename to sql/metrics/degree.sql diff --git a/sql/topology/CMakeLists.txt b/sql/topology/CMakeLists.txt index 61719f1555..fdd181295d 100644 --- a/sql/topology/CMakeLists.txt +++ b/sql/topology/CMakeLists.txt @@ -6,7 +6,6 @@ SET(LOCAL_FILES createverticestable.sql nodeNetwork.sql extractVertices.sql - degree.sql ) foreach (f ${LOCAL_FILES}) From 9c8acfce60a7df3190d7935fa2527e7d35712e9b Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 4 Mar 2025 15:24:57 -0600 Subject: [PATCH 104/141] (pgr_degree) fixing issues detected --- doc/src/proposed.rst | 4 ++-- docqueries/metrics/CMakeLists.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index 72371afa3b..97c7fe7009 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -56,9 +56,9 @@ Proposed Functions TRSP-family -:doc:`topology-functions` +:doc:`metrics-family` -.. include:: topology-functions.rst +.. include:: metrics-family.rst :start-after: proposed-start :end-before: proposed-end diff --git a/docqueries/metrics/CMakeLists.txt b/docqueries/metrics/CMakeLists.txt index 7775cb51d4..010b2229c9 100644 --- a/docqueries/metrics/CMakeLists.txt +++ b/docqueries/metrics/CMakeLists.txt @@ -1,6 +1,6 @@ # Do not use extensions SET(LOCAL_FILES - betweennessCentrality + betweennessCentrality degree ) From b20b80a0a201ca9c3f24bd548aa62e6226f593ef Mon Sep 17 00:00:00 2001 From: cvvergara Date: Wed, 26 Feb 2025 10:47:55 -0600 Subject: [PATCH 105/141] (pgr_degree) Adding new overload with only edges SQL --- NEWS.md | 1 + doc/metrics/pgr_degree.rst | 231 ++++++++++++++++++++++++---- doc/src/pgRouting-concepts.rst | 99 ++++++++++-- docqueries/metrics/degree.pg | 40 +++-- docqueries/metrics/degree.result | 107 ++++++++++--- pgtap/metrics/degree/edge_cases.pg | 30 +++- pgtap/metrics/degree/types_check.pg | 38 ++++- sql/metrics/degree.sql | 89 ++++++++++- sql/sigs/pgrouting--3.8.sig | 1 + 9 files changed, 550 insertions(+), 86 deletions(-) diff --git a/NEWS.md b/NEWS.md index bf696b19be..e59c0c9a46 100644 --- a/NEWS.md +++ b/NEWS.md @@ -26,6 +26,7 @@ * pgr_degree * Error messages adjustment. + * New signature with only Edges SQL. ## pgRouting 3.7 diff --git a/doc/metrics/pgr_degree.rst b/doc/metrics/pgr_degree.rst index bdfa31e006..b525bac6a4 100644 --- a/doc/metrics/pgr_degree.rst +++ b/doc/metrics/pgr_degree.rst @@ -16,7 +16,8 @@ ``pgr_degree`` -- Proposed =============================================================================== -``pgr_degree`` — For each vertex in an undirected graph, return the count of edges incident to the vertex. +``pgr_degree`` — For each vertex in an undirected graph, return the count of +edges incident to the vertex. .. include:: proposed.rst @@ -28,6 +29,7 @@ .. rubric:: Version 3.8.0 * Error messages adjustment. +* New signature with only Edges SQL. .. rubric:: Version 3.4.0 @@ -37,10 +39,25 @@ Description ------------------------------------------------------------------------------- -Calculates the degree of the vertices of an **undirected** graph +Calculates the degree of the vertices of an undirected graph +The degree (or valency) of a vertex of a graph is the number of edges that are +incident to the vertex. -|Boost| Boost Graph Inside +- Works for **undirected** graphs. +- A loop contributes 2 to a vertex's degree. +- A vertex with degree 0 is called an isolated vertex. + + - Isolated vertex is not part of the result + +- Vertex not participating on the subgraph is considered and isolated vertex. +- There can be a ``dryrun`` execution and the code used to get the answer will + be shown in a PostgreSQL ``NOTICE``. + + - The code can be used as base code for the particular application + requirements. + +- No ordering is performed. Signatures ------------------------------------------------------------------------------- @@ -48,21 +65,59 @@ Signatures .. admonition:: \ \ :class: signatures + | pgr_degree(`Edges SQL`_ , [``dryrun``]) | pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``]) | RETURNS SETOF |result-degree| | OR EMPTY SET -:Example: Extracting the vertex information +.. index:: + single: degree - Proposed ; Edges and Vertices - Proposed on v3.4 + +Edges +............................................................................... + +.. admonition:: \ \ + :class: signatures -pgr_degree can utilize output from `pgr_extractVertices` or can have `pgr_extractVertices` embedded in the call. -For decent size networks, it is best to prep your vertices table before hand and use that vertices table -for pgr_degree calls. + | pgr_degree(`Edges SQL`_ , [``dryrun``]) + + | RETURNS SETOF |result-degree| + | OR EMPTY SET + +:example: Get the degree of the vertices defined on the edges table .. literalinclude:: degree.queries :start-after: -- q1 :end-before: -- q2 +Edges and Vertices +............................................................................... + +.. admonition:: \ \ + :class: signatures + + | pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``]) + + | RETURNS SETOF |result-degree| + | OR EMPTY SET + +:Example: Extracting the vertex information + +``pgr_degree`` can use :doc:`pgr_extractVertices` embedded in the call. + +For decent size networks, it is best to prepare your vertices table before hand +and use it on ``pgr_degree`` calls. (See `Using a vertex table`_) + +Calculate the degree of the nodes: + +.. literalinclude:: degree.queries + :start-after: -- q2 + :end-before: -- q3 + +.. index:: + single: degree- Proposed ; Edges - Proposed on v3.4 + Parameters ------------------------------------------------------------------------------- @@ -77,8 +132,6 @@ Parameter Type Description Optional parameters ------------------------------------------------------------------------------- -.. TODO move to pgRouting concepts - =========== ============= ========== ======================================= Parameter Type Default Description =========== ============= ========== ======================================= @@ -95,18 +148,44 @@ Inner Queries Edges SQL ............................................................................... -.. TODO move to pgRouting concepts +.. rubric:: For the `Edges and Vertices`_ signature: + +.. list-table:: + :width: 81 + :widths: auto + :header-rows: 1 + + * - Column + - Type + - Description + * - ``id`` + - ``BIGINT`` + - Identifier of the edge. + +For the `Edges`_ signature: + +.. list-table:: + :width: 81 + :widths: auto + :header-rows: 1 -================= =================== =================================== -Column Type Description -================= =================== =================================== -``id`` ``BIGINT`` Identifier of the edge. -================= =================== =================================== + * - Column + - Type + - Description + * - ``id`` + - ``BIGINT`` + - Identifier of the edge. + * - ``source`` + - ``BIGINT`` + - Identifier of the first end point vertex of the edge. + * - ``target`` + - ``BIGINT`` + - Identifier of the second end point vertex of the edge. Vertex SQL ............................................................................... -.. TODO move to pgRouting concepts +.. rubric:: For the `Edges and Vertices`_ signature: .. list-table:: :width: 81 @@ -136,8 +215,6 @@ Vertex SQL Result columns ------------------------------------------------------------------------------- -.. TODO move to pgRouting concepts - .. list-table:: :width: 81 :widths: auto @@ -159,12 +236,101 @@ Additional Examples .. contents:: :local: +Degree of a loop +............................................................................... + +A loop contributes 2 to a vertex's degree. + +.. graphviz:: + + graph G { + 2 [shape=circle;style=filled;color=green;fontsize=8;width=0.3;fixedsize=true]; + 2 -- 2 [label="1",fontsize=8]; + } + +.. rubric:: Using the `Edges`_ signature. + +.. literalinclude:: degree.queries + :start-after: -- q3 + :end-before: -- q4 + +.. rubric:: Using the `Edges and Vertices`_ signature. + +.. literalinclude:: degree.queries + :start-after: -- q4 + :end-before: -- q5 + Degree of a sub graph ............................................................................... +For the following is a subgraph of the :doc:`sampledata`: + +- :math:`E = \{(1, 5 \leftrightarrow 6), (1, 6 \leftrightarrow 10)\}` +- :math:`V = \{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\}` + + +.. graphviz:: + + graph G { + 5,6,10 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,2,3,4,7,8,9,11,12,13,14,15,16,17 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 5 -- 6 [label="1",fontsize=8]; + 10 -- 6 [label="2",fontsize=8]; + + 1 [pos="0,2!"]; + 2 [pos="0.5,3.5!"]; + 3 [pos="1,2!"]; + 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; + 6 [pos="2,1!"]; + 7 [pos="2,2!"]; + 8 [pos="2,3!"]; + 9 [pos="2,4!"]; + 10 [pos="3,1!"]; + 11 [pos="3,2!"]; + 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; + 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; + 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } + +The vertices not participating on the edge are considered isolated + +- their degree is 0 in the subgraph and +- their degree is not shown in the output. + +.. rubric:: Using the `Edges`_ signature. + +.. literalinclude:: degree.queries + :start-after: -- q5 + :end-before: -- q6 + +.. rubric:: Using the `Edges and Vertices`_ signature. + +.. literalinclude:: degree.queries + :start-after: -- q6 + :end-before: -- q7 + +Using a vertex table +............................................................................... + +For decent size networks, it is best to prepare your vertices table before hand +and use it on ``pgr_degree`` calls. + +Extract the vertex information and save into a table: + .. literalinclude:: degree.queries - :start-after: -- q2 - :end-before: -- q3 + :start-after: -- q8 + :end-before: -- q9 + +Calculate the degree of the nodes: + +.. literalinclude:: degree.queries + :start-after: -- q9 + :end-before: -- q10 Dry run execution ............................................................................... @@ -176,20 +342,33 @@ The results can be used as base code to make a refinement based on the backend development needs. .. literalinclude:: degree.queries - :start-after: -- q3 - :end-before: -- q4 + :start-after: -- q10 + :end-before: -- q11 -Degree from an existing table +Finding dead ends ............................................................................... -If you have a vertices table already built using ``pgr_extractVertices`` -and want the degree of the whole graph rather than a subset, you can forgo using pgr_degree -and work with the ``in_edges`` and ``out_edges`` columns directly. +If there is a vertices table already built using ``pgr_extractVertices`` +and want the degree of the whole graph rather than a subset, it can be forgo using +``pgr_degree`` and work with the ``in_edges`` and ``out_edges`` columns +directly. + +The degree of a dead end is 1. .. include:: pgRouting-concepts.rst :start-after: degree_from_table_start :end-before: degree_from_table_end +Finding linear vertices +............................................................................... + +The degree of a linear vertex is 2. + +If there is a vertices table already built using the ``pgr_extractVertices`` + +.. include:: pgRouting-concepts.rst + :start-after: linear_degree_from_table_start + :end-before: linear_degree_from_table_end See Also ------------------------------------------------------------------------------- diff --git a/doc/src/pgRouting-concepts.rst b/doc/src/pgRouting-concepts.rst index f81cc4df3f..6ae64e634d 100644 --- a/doc/src/pgRouting-concepts.rst +++ b/doc/src/pgRouting-concepts.rst @@ -830,23 +830,62 @@ the number of dead ends and/or the number of linear edges. A complete method on how to contract and how to use the contracted graph is described on :doc:`contraction-family` -.. degree_from_table_start Dead ends +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +.. degree_from_table_start + To get the dead ends: .. literalinclude:: concepts.queries :start-after: -- contract1 :end-before: -- contract2 -That information is correct, for example, when the dead end is on the limit of -the imported graph. +A dead end happens when + +- The vertex is the limit of a cul-de-sac, a no-through road or a no-exit + road. +- The vertex is on the limit of the imported graph. + + - If a larger graph is imported then the vertex might not be a dead end + +Node :math:`4`, is a dead end on the query, even that it visually looks like an +end point of 3 edges. -Visually node :math:`4` looks to be as start/ending of 3 edges, but it is not. +.. image:: images/Fig1-originalData.png + :scale: 20% + +.. rubric:: Is node :math:`4` a dead end or not? + +.. graphviz:: + + graph G { + 1,2,4,5,9,13,14 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 3,6,7,8,10,11,12,15,16,17 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 5 -- 6 [label="1",fontsize=8]; 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; 1 -- 3 [label="6",fontsize=8]; + 3 -- 7 [label="7",fontsize=8]; 7 -- 11 [label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [label="13",fontsize=8]; 8 -- 9 [label="",fontsize=8]; + 16 -- 17 [label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + 2 -- 4 [label="17",fontsize=8]; 13 -- 14 [label="18",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="0.5,3.5!"]; + 3 [pos="1,2!"]; 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } -Is that correct? +The answer to that question will depend on the application. * Is there such a small curb: @@ -859,25 +898,59 @@ Is that correct? * Is there a big cliff and from eagles view look like the dead end is close to the segment? -When there are many dead ends, to speed up, the :doc:`contraction-family` -functions can be used to divide the problem. +Depending on the answer, modification of the data might be needed. + +When there are many dead ends, to speed up processing, the :doc:`contraction-family` +functions can be used to contract the graph. + +.. degree_from_table_end Linear edges +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +.. linear_degree_from_table_start + To get the linear edges: .. literalinclude:: concepts.queries :start-after: -- contract2 :end-before: -- contract3 -This information is correct, for example, when the application is taking into -account speed bumps, stop signals. +.. graphviz:: -When there are many linear edges, to speed up, the :doc:`contraction-family` -functions can be used to divide the problem. + graph G { + 3,15,17 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,2,4,5,6,7,8,9,10,11,12,13,14,16 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 5 -- 6 [label="1",fontsize=8]; 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; 1 -- 3 [label="6",fontsize=8]; + 3 -- 7 [label="7",fontsize=8]; 7 -- 11 [label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [label="13",fontsize=8]; 8 -- 9 [label="",fontsize=8]; + 16 -- 17 [label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + 2 -- 4 [label="17",fontsize=8]; 13 -- 14 [label="18",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="0.5,3.5!"]; + 3 [pos="1,2!"]; 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } -.. degree_from_table_end +These linear vertices are correct, for example, when those the vertices are speed +bumps, stop signals and the application is taking them into account. + +When there are many linear vertices, that need not to be taken into account, to +speed up the processing, the :doc:`contraction-family` functions can be used to +contract the problem. + +.. linear_degree_from_table_end Function's structure ------------------------------------------------------------------------------- @@ -889,7 +962,7 @@ The general form of a pgRouting function call is: .. admonition:: \ \ :class: signatures - pgr_(`Inner queries`_, **parameters**, [ ``Optional parameters``) + pgr_(`Inner queries`_, **parameters**, [ ``Optional parameters``) Where: diff --git a/docqueries/metrics/degree.pg b/docqueries/metrics/degree.pg index 95b2e3ba05..1fb89b6e55 100644 --- a/docqueries/metrics/degree.pg +++ b/docqueries/metrics/degree.pg @@ -1,23 +1,39 @@ -- CopyRight(c) pgRouting developers -- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ /* -- q1 */ -DROP TABLE IF EXISTS tmp_edges_vertices_pgr; -CREATE TEMP TABLE tmp_edges_vertices_pgr AS -SELECT id, in_edges, out_edges - FROM pgr_extractVertices('SELECT id, geom FROM edges'); -SELECT * FROM pgr_degree( - $$SELECT id FROM edges$$, - $$SELECT id, in_edges, out_edges - FROM tmp_edges_vertices_pgr$$); +SELECT * FROM pgr_degree($$SELECT id, source, target FROM edges$$) +ORDER BY node; /* -- q2 */ SELECT * FROM pgr_degree( - $$SELECT id FROM edges WHERE id < 17$$, + $$SELECT id FROM edges$$, $$SELECT id, in_edges, out_edges FROM pgr_extractVertices('SELECT id, geom FROM edges')$$); /* -- q3 */ +SELECT * from pgr_degree('SELECT 1 as id, 2 as source, 2 as target'); +/* -- q4 */ SELECT * FROM pgr_degree( - $$SELECT id FROM edges WHERE id < 17$$, + $$SELECT 1 AS id$$, $$SELECT id, in_edges, out_edges - FROM pgr_extractVertices('SELECT id, geom FROM edges')$$, + FROM pgr_extractVertices('SELECT 1 as id, 2 as source, 2 as target')$$); +/* -- q5 */ +SELECT * FROM pgr_degree($$SELECT * FROM edges WHERE id IN (1, 2)$$); +/* -- q6 */ +SELECT * FROM pgr_degree( + $$SELECT * FROM edges WHERE id IN (1, 2)$$, + $$SELECT id, in_edges, out_edges FROM vertices$$); +/* -- q7 */ +DROP TABLE IF EXISTS vertices; +/* -- q8*/ +CREATE TABLE vertices AS +SELECT id, in_edges, out_edges +FROM pgr_extractVertices('SELECT id, geom FROM edges'); +/* -- q9 */ +SELECT * FROM pgr_degree( + $$SELECT id FROM edges$$, + $$SELECT id, in_edges, out_edges FROM vertices$$); +/* -- q10 */ +SELECT * FROM pgr_degree( + $$SELECT id FROM edges WHERE id < 17$$, + $$SELECT id, in_edges, out_edges FROM vertices$$, dryrun => true); -/* -- q4 */ +/* -- q11 */ diff --git a/docqueries/metrics/degree.result b/docqueries/metrics/degree.result index 340dbf4464..d2e101a4f2 100644 --- a/docqueries/metrics/degree.result +++ b/docqueries/metrics/degree.result @@ -3,17 +3,8 @@ BEGIN SET client_min_messages TO NOTICE; SET /* -- q1 */ -DROP TABLE IF EXISTS tmp_edges_vertices_pgr; -NOTICE: table "tmp_edges_vertices_pgr" does not exist, skipping -DROP TABLE -CREATE TEMP TABLE tmp_edges_vertices_pgr AS -SELECT id, in_edges, out_edges - FROM pgr_extractVertices('SELECT id, geom FROM edges'); -SELECT 17 -SELECT * FROM pgr_degree( - $$SELECT id FROM edges$$, - $$SELECT id, in_edges, out_edges - FROM tmp_edges_vertices_pgr$$); +SELECT * FROM pgr_degree($$SELECT id, source, target FROM edges$$) +ORDER BY node; node | degree ------+-------- 1 | 1 @@ -37,15 +28,15 @@ SELECT * FROM pgr_degree( /* -- q2 */ SELECT * FROM pgr_degree( - $$SELECT id FROM edges WHERE id < 17$$, + $$SELECT id FROM edges$$, $$SELECT id, in_edges, out_edges FROM pgr_extractVertices('SELECT id, geom FROM edges')$$); node | degree ------+-------- 1 | 1 - 2 | 0 + 2 | 1 3 | 2 - 4 | 0 + 4 | 1 5 | 1 6 | 3 7 | 4 @@ -54,18 +45,87 @@ SELECT * FROM pgr_degree( 10 | 3 11 | 4 12 | 3 - 13 | 0 - 14 | 0 + 13 | 1 + 14 | 1 15 | 2 16 | 3 17 | 2 (17 rows) /* -- q3 */ +SELECT * from pgr_degree('SELECT 1 as id, 2 as source, 2 as target'); + node | degree +------+-------- + 2 | 2 +(1 row) + +/* -- q4 */ SELECT * FROM pgr_degree( - $$SELECT id FROM edges WHERE id < 17$$, + $$SELECT 1 AS id$$, $$SELECT id, in_edges, out_edges - FROM pgr_extractVertices('SELECT id, geom FROM edges')$$, + FROM pgr_extractVertices('SELECT 1 as id, 2 as source, 2 as target')$$); + node | degree +------+-------- + 2 | 2 +(1 row) + +/* -- q5 */ +SELECT * FROM pgr_degree($$SELECT * FROM edges WHERE id IN (1, 2)$$); + node | degree +------+-------- + 10 | 1 + 6 | 2 + 5 | 1 +(3 rows) + +/* -- q6 */ +SELECT * FROM pgr_degree( + $$SELECT * FROM edges WHERE id IN (1, 2)$$, + $$SELECT id, in_edges, out_edges FROM vertices$$); + node | degree +------+-------- + 5 | 1 + 6 | 2 + 10 | 1 +(3 rows) + +/* -- q7 */ +DROP TABLE IF EXISTS vertices; +DROP TABLE +/* -- q8*/ +CREATE TABLE vertices AS +SELECT id, in_edges, out_edges +FROM pgr_extractVertices('SELECT id, geom FROM edges'); +SELECT 17 +/* -- q9 */ +SELECT * FROM pgr_degree( + $$SELECT id FROM edges$$, + $$SELECT id, in_edges, out_edges FROM vertices$$); + node | degree +------+-------- + 1 | 1 + 2 | 1 + 3 | 2 + 4 | 1 + 5 | 1 + 6 | 3 + 7 | 4 + 8 | 3 + 9 | 1 + 10 | 3 + 11 | 4 + 12 | 3 + 13 | 1 + 14 | 1 + 15 | 2 + 16 | 3 + 17 | 2 +(17 rows) + +/* -- q10 */ +SELECT * FROM pgr_degree( + $$SELECT id FROM edges WHERE id < 17$$, + $$SELECT id, in_edges, out_edges FROM vertices$$, dryrun => true); NOTICE: WITH @@ -77,8 +137,7 @@ NOTICE: -- sub set of vertices of the graph goes here all_vertices AS ( - SELECT id, in_edges, out_edges - FROM pgr_extractVertices('SELECT id, geom FROM edges') + SELECT id, in_edges, out_edges FROM vertices ), g_vertices AS ( @@ -92,16 +151,16 @@ NOTICE: totals AS ( SELECT v.id, count(*) - FROM g_vertices AS v - JOIN g_edges AS e ON (e.id = eid) GROUP BY v.id + FROM g_vertices v + JOIN g_edges e ON (v.eid = e.id) GROUP BY v.id ) - SELECT id::BIGINT, coalesce(count, 0)::BIGINT FROM all_vertices LEFT JOIN totals USING (id) + SELECT id::BIGINT, count::BIGINT FROM all_vertices JOIN totals USING (id) ; node | degree ------+-------- (0 rows) -/* -- q4 */ +/* -- q11 */ ROLLBACK; ROLLBACK diff --git a/pgtap/metrics/degree/edge_cases.pg b/pgtap/metrics/degree/edge_cases.pg index e7cdd91880..0f953881cf 100644 --- a/pgtap/metrics/degree/edge_cases.pg +++ b/pgtap/metrics/degree/edge_cases.pg @@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT CASE WHEN min_version('3.4.0') THEN plan(16) ELSE plan(1) END; +SELECT CASE WHEN min_version('3.8.0') THEN plan(23) WHEN min_version('3.4.0') THEN plan(16) ELSE plan(1) END; CREATE OR REPLACE FUNCTION edge_cases() @@ -114,6 +114,34 @@ BEGIN SELECT results_eq('empty_graph', 'SELECT generate_series (1,17)::BIGINT, 0::BIGINT', 'Empty edges give 0 count'); END IF; + IF NOT min_version('3.8.0') THEN RETURN; END IF; + + -- TESTS FOR edges_sql only + + PREPARE edges_1 AS + SELECT id, source, target FROM edges; + + PREPARE subedges_1 AS + SELECT id, source, target FROM edges WHERE id < 17; + + RETURN QUERY + SELECT set_eq($$SELECT * FROM pgr_degree('edges_1')$$, 'query_1', + 'degree(edges) = degree(edges,vertices)'); + + RETURN QUERY + SELECT set_eq($$SELECT * FROM pgr_degree('subedges_1')$$, 'query_7', + 'degree(subedges) = degree(subedges,vertices)'); + + RETURN QUERY SELECT lives_ok($$SELECT * FROM pgr_degree('SELECT id, source, target FROM edges')$$, 'good execution'); + RETURN QUERY SELECT throws_ok($$SELECT * FROM pgr_degree('SELECT source, target FROM edges')$$, + '42703','column "id" does not exist'); + RETURN QUERY SELECT throws_ok($$SELECT * FROM pgr_degree('SELECT id, target FROM edges')$$, + '42703','column "source" does not exist'); + RETURN QUERY SELECT throws_ok($$SELECT * FROM pgr_degree('SELECT id, source FROM edges')$$, + '42703','column "target" does not exist'); + RETURN QUERY SELECT wrong_relation($$SELECT * FROM pgr_degree('SELECT id FROM foo')$$, 'foo'); + + END; $BODY$ LANGUAGE plpgsql; diff --git a/pgtap/metrics/degree/types_check.pg b/pgtap/metrics/degree/types_check.pg index cd4ad3287b..7c242e3305 100644 --- a/pgtap/metrics/degree/types_check.pg +++ b/pgtap/metrics/degree/types_check.pg @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ BEGIN; -SELECT CASE WHEN min_version('3.4.0') THEN plan(5) ELSE plan(1) END; +SELECT CASE WHEN min_version('3.8.0') THEN plan(7) WHEN min_version('3.4.0') THEN plan(5) ELSE plan(1) END; CREATE OR REPLACE FUNCTION types_check() RETURNS SETOF TEXT AS $BODY$ @@ -33,13 +33,37 @@ BEGIN RETURN QUERY SELECT has_function('pgr_degree', ARRAY['text', 'text', 'boolean']); RETURN QUERY SELECT function_returns('pgr_degree', ARRAY['text', 'text', 'boolean'], 'setof record'); - RETURN QUERY SELECT set_eq( - $$SELECT proargnames from pg_proc where proname = 'pgr_degree'$$, - $$SELECT '{"","","dryrun","node","degree"}'::TEXT[] $$); + RETURN QUERY + SELECT CASE + WHEN min_version('3.8.0') THEN + collect_tap( - RETURN QUERY SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_degree'$$, - $$VALUES ('{25,25,16,20,20}'::OID[])$$); + has_function('pgr_degree', ARRAY['text', 'boolean']), + + function_returns('pgr_degree', ARRAY['text', 'boolean'], 'setof record'), + + set_eq($$SELECT proargnames from pg_proc where proname = 'pgr_degree'$$, + $$VALUES + ('{"","dryrun","node","degree"}'::TEXT[]), + ('{"","","dryrun","node","degree"}'::TEXT[]) + $$, 'proargnames'), + + set_eq($$SELECT proallargtypes from pg_proc where proname = 'pgr_degree'$$, + $$VALUES + ('{25,16,20,20}'::OID[]), + ('{25,25,16,20,20}'::OID[]) + $$, 'proallargtypes') + ) + ELSE + collect_tap( + + set_eq($$SELECT proargnames from pg_proc where proname = 'pgr_degree'$$, + $$VALUES ('{"","","dryrun","node","degree"}'::TEXT[]) $$, 'proargnames'), + + set_eq($$SELECT proallargtypes from pg_proc where proname = 'pgr_degree'$$, + $$VALUES ('{25,25,16,20,20}'::OID[])$$, 'proallargtypes') + ) + END; END $BODY$ diff --git a/sql/metrics/degree.sql b/sql/metrics/degree.sql index 980095aad4..531326bc37 100644 --- a/sql/metrics/degree.sql +++ b/sql/metrics/degree.sql @@ -42,6 +42,7 @@ DECLARE has_out_edges BOOLEAN := TRUE; eids TEXT; query TEXT; + sqlhint TEXT; BEGIN @@ -65,6 +66,7 @@ BEGIN RAISE EXCEPTION 'column "in_edges" does not exist' USING HINT = vertices_sql, ERRCODE = 42703; END IF; + IF has_in_edges THEN eids = $$coalesce(in_edges::BIGINT[], '{}'::BIGINT[])$$; END IF; @@ -105,11 +107,11 @@ BEGIN totals AS ( SELECT v.id, count(*) - FROM g_vertices AS v - JOIN g_edges AS e ON (e.id = eid) GROUP BY v.id + FROM g_vertices v + JOIN g_edges e ON (v.eid = e.id) GROUP BY v.id ) - SELECT id::BIGINT, coalesce(count, 0)::BIGINT FROM all_vertices LEFT JOIN totals USING (id) + SELECT id::BIGINT, count::BIGINT FROM all_vertices JOIN totals USING (id) $q$, eids); IF dryrun THEN @@ -122,6 +124,8 @@ END; $BODY$ LANGUAGE plpgsql VOLATILE STRICT; + +-- COMMENTS COMMENT ON FUNCTION pgr_degree(TEXT, TEXT, BOOLEAN) IS 'pgr_degree - PROPOSED @@ -131,3 +135,82 @@ IS 'pgr_degree - Documentation: - ${PROJECT_DOC_LINK}/pgr_degree.html '; + +--v3.8 +CREATE FUNCTION pgr_degree( + TEXT, -- Edges SQL + + dryrun BOOLEAN DEFAULT false, + + OUT node BIGINT, + OUT degree BIGINT +) +RETURNS SETOF RECORD AS +$BODY$ +DECLARE + edges_sql TEXT; + has_id BOOLEAN; + has_source BOOLEAN; + has_target BOOLEAN; + eids TEXT; + query TEXT; + + sqlhint TEXT; + +BEGIN + + -- Verify the data is complete + BEGIN + edges_sql := _pgr_checkQuery($1); + has_id := _pgr_checkColumn(edges_sql, 'id', 'ANY-INTEGER', dryrun => $2); + has_source := _pgr_checkColumn(edges_sql, 'source', 'ANY-INTEGER', dryrun => $2); + has_target := _pgr_checkColumn(edges_sql, 'target', 'ANY-INTEGER', dryrun => $2); + EXCEPTION WHEN OTHERS THEN + GET STACKED DIAGNOSTICS sqlhint = PG_EXCEPTION_HINT; + RAISE EXCEPTION '%', SQLERRM USING HINT = sqlhint, ERRCODE = SQLSTATE; + END; + + query := format($q$ + + WITH + + -- a sub set of edges of the graph goes here + g_edges AS ( + %1$s + ), + + -- sub set of vertices of the graph goes here + g_vertices AS ( + SELECT source, id FROM g_edges + UNION ALL + SELECT target, id FROM g_edges + ), + + totals AS ( + SELECT source AS node, count(*) AS degree + FROM g_vertices + GROUP BY node + ) + + SELECT node::BIGINT, degree::BIGINT + FROM totals + $q$, edges_sql); + + IF dryrun THEN + RAISE NOTICE '%', query || ';'; + ELSE + RETURN QUERY EXECUTE query; + END IF; + +END; +$BODY$ +LANGUAGE plpgsql VOLATILE STRICT; + +COMMENT ON FUNCTION pgr_degree(TEXT, BOOLEAN) +IS 'pgr_degree +- PROPOSED +- Parameters +- Edges SQL with columns: id +- Documentation: +- ${PROJECT_DOC_LINK}/pgr_degree.html +'; diff --git a/sql/sigs/pgrouting--3.8.sig b/sql/sigs/pgrouting--3.8.sig index 0253760949..59ae351e06 100644 --- a/sql/sigs/pgrouting--3.8.sig +++ b/sql/sigs/pgrouting--3.8.sig @@ -101,6 +101,7 @@ pgr_dagshortestpath(text,bigint,anyarray) pgr_dagshortestpath(text,bigint,bigint) pgr_dagshortestpath(text,text) _pgr_dagshortestpath(text,text,boolean,boolean) +pgr_degree(text,boolean) pgr_degree(text,text,boolean) _pgr_depthfirstsearch(text,anyarray,boolean,bigint) pgr_depthfirstsearch(text,anyarray,boolean,bigint) From 0020b471401714d044aff6c6015409eccdb3877f Mon Sep 17 00:00:00 2001 From: cvvergara Date: Tue, 4 Mar 2025 14:51:08 -0600 Subject: [PATCH 106/141] (pgr_degree) promoting to official --- NEWS.md | 11 +++++------ doc/metrics/metrics-family.rst | 10 ++-------- doc/metrics/pgr_degree.rst | 11 ++++++----- doc/src/experimental.rst | 1 - doc/src/proposed.rst | 6 ------ doc/src/release_notes.rst | 10 ++++------ doc/src/routingFunctions.rst | 12 +++++++----- sql/metrics/degree.sql | 4 ---- 8 files changed, 24 insertions(+), 41 deletions(-) diff --git a/NEWS.md b/NEWS.md index e59c0c9a46..9e9e048186 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,18 +15,17 @@ * Error messages adjustment. * Function promoted to official. -* pgr_findCloseEdges +* pgr_degree * Error messages adjustment. - * ``partial`` option is removed. + * New signature with only Edges SQL. * Function promoted to official. -**Changes on proposed functions** - -* pgr_degree +* pgr_findCloseEdges * Error messages adjustment. - * New signature with only Edges SQL. + * ``partial`` option is removed. + * Function promoted to official. ## pgRouting 3.7 diff --git a/doc/metrics/metrics-family.rst b/doc/metrics/metrics-family.rst index 4f2647e1e7..5b5ec524d6 100644 --- a/doc/metrics/metrics-family.rst +++ b/doc/metrics/metrics-family.rst @@ -15,18 +15,12 @@ Metrics - Family of functions =============================================================================== -.. collapse:: Proposed - - .. include:: proposed.rst - :start-after: warning-begin - :end-before: end-warning - -.. proposed-start +.. official-start - :doc:`pgr_degree` - Returns a set of vertices and corresponding count of incident edges to the vertex. -.. proposed-end +.. official-end .. collapse:: Experimental diff --git a/doc/metrics/pgr_degree.rst b/doc/metrics/pgr_degree.rst index b525bac6a4..6bab5575d4 100644 --- a/doc/metrics/pgr_degree.rst +++ b/doc/metrics/pgr_degree.rst @@ -8,12 +8,12 @@ **************************************************************************** .. index:: - single: Metrics Family ; pgr_degree - Proposed - single: degree - Proposed on v3.4 + single: Metrics Family ; pgr_degree + single: degree | -``pgr_degree`` -- Proposed +``pgr_degree`` =============================================================================== ``pgr_degree`` — For each vertex in an undirected graph, return the count of @@ -30,6 +30,7 @@ edges incident to the vertex. * Error messages adjustment. * New signature with only Edges SQL. +* Function promoted to official. .. rubric:: Version 3.4.0 @@ -72,7 +73,7 @@ Signatures | OR EMPTY SET .. index:: - single: degree - Proposed ; Edges and Vertices - Proposed on v3.4 + single: degree ; Edges and Vertices Edges ............................................................................... @@ -116,7 +117,7 @@ Calculate the degree of the nodes: :end-before: -- q3 .. index:: - single: degree- Proposed ; Edges - Proposed on v3.4 + single: degree ; Edges Parameters diff --git a/doc/src/experimental.rst b/doc/src/experimental.rst index df7a6601d5..495c906dba 100644 --- a/doc/src/experimental.rst +++ b/doc/src/experimental.rst @@ -103,7 +103,6 @@ Experimental Functions transformation-family components-family ordering-family - metrics-family .. rubric:: categories diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index 97c7fe7009..aa84255963 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -56,12 +56,6 @@ Proposed Functions TRSP-family -:doc:`metrics-family` - -.. include:: metrics-family.rst - :start-after: proposed-start - :end-before: proposed-end - :doc:`transformation-family` .. include:: transformation-family.rst diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index fd101c8da5..1923acd802 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -47,17 +47,15 @@ pgRouting 3.8.0 Release Notes :start-after: Version 3.8.0 :end-before: .. rubric -* pgr_findCloseEdges +* pgr_degree - .. include:: pgr_findCloseEdges.rst + .. include:: pgr_degree.rst :start-after: Version 3.8.0 :end-before: .. rubric -.. rubric:: Changes on proposed functions - -* pgr_degree +* pgr_findCloseEdges - .. include:: pgr_degree.rst + .. include:: pgr_findCloseEdges.rst :start-after: Version 3.8.0 :end-before: .. rubric diff --git a/doc/src/routingFunctions.rst b/doc/src/routingFunctions.rst index 1137362930..8670804047 100644 --- a/doc/src/routingFunctions.rst +++ b/doc/src/routingFunctions.rst @@ -71,6 +71,12 @@ Function Families :start-after: official-start :end-before: official-end +:doc:`metrics-family` + +.. include:: metrics-family.rst + :start-after: official-start + :end-before: official-end + :doc:`prim-family` .. include:: prim-family.rst @@ -101,11 +107,6 @@ Function Families :doc:`pgr_findCloseEdges` -.. toctree:: - :hidden: - - - Functions by categories =============================================================================== @@ -166,6 +167,7 @@ Functions by categories dijkstra-family flow-family kruskal-family + metrics-family prim-family reference topology-functions diff --git a/sql/metrics/degree.sql b/sql/metrics/degree.sql index 531326bc37..2270d80499 100644 --- a/sql/metrics/degree.sql +++ b/sql/metrics/degree.sql @@ -124,11 +124,8 @@ END; $BODY$ LANGUAGE plpgsql VOLATILE STRICT; - --- COMMENTS COMMENT ON FUNCTION pgr_degree(TEXT, TEXT, BOOLEAN) IS 'pgr_degree -- PROPOSED - Parameters - Edges SQL with columns: id - Vertices SQL with columns: id, in_edges, out_edges @@ -208,7 +205,6 @@ LANGUAGE plpgsql VOLATILE STRICT; COMMENT ON FUNCTION pgr_degree(TEXT, BOOLEAN) IS 'pgr_degree -- PROPOSED - Parameters - Edges SQL with columns: id - Documentation: From 5540c89a3d5a0d8f5f1cba7d897d19e3782c9598 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 7 Mar 2025 14:15:58 -0600 Subject: [PATCH 107/141] (sampledata/pgtap) use of pgr_findCloseEdges depends on version --- doc/src/sampledata.rst | 4 ++-- docqueries/src/sampledata.result | 24 ++++++++++++++++----- sql/scripts/build-extension-update-files.pl | 2 +- tools/testers/sampledata.sql | 19 +++++++++++++++- 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/doc/src/sampledata.rst b/doc/src/sampledata.rst index 8b9e7df870..cc49627431 100644 --- a/doc/src/sampledata.rst +++ b/doc/src/sampledata.rst @@ -241,8 +241,8 @@ reached from both sides. The points of interest: .. literalinclude:: sampledata.queries - :start-after: -- p5 - :end-before: -- p6 + :start-after: -- p6 + :end-before: -- p7 .. pois_end diff --git a/docqueries/src/sampledata.result b/docqueries/src/sampledata.result index b0951777b4..38b896538f 100644 --- a/docqueries/src/sampledata.result +++ b/docqueries/src/sampledata.result @@ -150,6 +150,10 @@ FROM edges ORDER BY id; /* -- q5 */ /* --POINTS CREATE start */ +DO LANGUAGE plpgsql $BODY$ +DECLARE v FLOAT; +BEGIN +SELECT (parts[1]||'.'||parts[2])::FLOAT FROM STRING_TO_ARRAY(pgr_version(), '.') AS parts INTO v; /* -- p1 */ CREATE TABLE pointsOfInterest( pid BIGSERIAL PRIMARY KEY, @@ -160,7 +164,7 @@ CREATE TABLE pointsOfInterest( edge geometry, newPoint geometry, geom geometry); -CREATE TABLE +IF v > 3.4 THEN /* -- p2 */ INSERT INTO pointsOfInterest (geom) VALUES (ST_Point(1.8, 0.4)), @@ -169,7 +173,6 @@ INSERT INTO pointsOfInterest (geom) VALUES (ST_Point(0.3, 1.8)), (ST_Point(2.9, 1.8)), (ST_Point(2.2, 1.7)); -INSERT 0 6 /* -- p3 */ UPDATE pointsofinterest SET edge_id = poi.edge_id, @@ -183,11 +186,22 @@ FROM ( FROM pgr_findCloseEdges( $$SELECT id, geom FROM edges$$,(SELECT array_agg(geom) FROM pointsOfInterest), 0.5) ) AS poi WHERE pointsOfInterest.geom = poi.geom; -UPDATE 6 /* -- p4 */ UPDATE pointsOfInterest SET side = 'b' WHERE pid = 6; -UPDATE 1 /* -- p5 */ +ELSE +INSERT INTO pointsOfInterest (edge_id, side, fraction, geom) VALUES +(1, 'l' , 0.4, ST_POINT(1.8, 0.4)), +(15, 'r' , 0.4, ST_POINT(4.2, 2.4)), +(12, 'l' , 0.6, ST_POINT(2.6, 3.2)), +(6, 'r' , 0.3, ST_POINT(0.3, 1.8)), +(5, 'l' , 0.8, ST_POINT(2.9, 1.8)), +(4, 'b' , 0.7, ST_POINT(2.2, 1.7)); +END IF; +END; +$BODY$; +DO +/* -- p6 */ SELECT pid, ST_AsText(geom) geom, edge_id, fraction AS frac, side, distance AS dist, @@ -203,7 +217,7 @@ FROM pointsOfInterest; 6 | POINT(2.2 1.7) | 4 | 0.7 | b | 0.2 | LINESTRING(2.2 1.7,2 1.7) | POINT(2 1.7) (6 rows) -/* -- p6 */ +/* -- p7 */ /* --POINTS CREATE end */ /* --COMBINATIONS CREATE start */ /* -- c1 */ diff --git a/sql/scripts/build-extension-update-files.pl b/sql/scripts/build-extension-update-files.pl index b92a5b70cf..6443062a01 100755 --- a/sql/scripts/build-extension-update-files.pl +++ b/sql/scripts/build-extension-update-files.pl @@ -270,7 +270,7 @@ sub generate_upgrade_script { } # updating to 3.7+ - if ($old_mayor == 3 && $old_minor < 8) { + if ($old_mayor == 3 && $old_minor >= 4 && $old_minor < 8) { push @commands, drop_special_case_function("pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean)"); push @commands, drop_special_case_function("pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean)"); } diff --git a/tools/testers/sampledata.sql b/tools/testers/sampledata.sql index 543926c547..47004e3c7e 100644 --- a/tools/testers/sampledata.sql +++ b/tools/testers/sampledata.sql @@ -87,6 +87,10 @@ FROM edges ORDER BY id; /* --POINTS CREATE start */ +DO LANGUAGE plpgsql $BODY$ +DECLARE v FLOAT; +BEGIN +SELECT (parts[1]||'.'||parts[2])::FLOAT FROM STRING_TO_ARRAY(pgr_version(), '.') AS parts INTO v; /* -- p1 */ CREATE TABLE pointsOfInterest( pid BIGSERIAL PRIMARY KEY, @@ -97,6 +101,7 @@ CREATE TABLE pointsOfInterest( edge geometry, newPoint geometry, geom geometry); +IF v > 3.4 THEN /* -- p2 */ INSERT INTO pointsOfInterest (geom) VALUES (ST_Point(1.8, 0.4)), @@ -121,12 +126,24 @@ WHERE pointsOfInterest.geom = poi.geom; /* -- p4 */ UPDATE pointsOfInterest SET side = 'b' WHERE pid = 6; /* -- p5 */ +ELSE +INSERT INTO pointsOfInterest (edge_id, side, fraction, geom) VALUES +(1, 'l' , 0.4, ST_POINT(1.8, 0.4)), +(15, 'r' , 0.4, ST_POINT(4.2, 2.4)), +(12, 'l' , 0.6, ST_POINT(2.6, 3.2)), +(6, 'r' , 0.3, ST_POINT(0.3, 1.8)), +(5, 'l' , 0.8, ST_POINT(2.9, 1.8)), +(4, 'b' , 0.7, ST_POINT(2.2, 1.7)); +END IF; +END; +$BODY$; +/* -- p6 */ SELECT pid, ST_AsText(geom) geom, edge_id, fraction AS frac, side, distance AS dist, ST_AsText(edge) edge, ST_AsText(newPoint) newPoint FROM pointsOfInterest; -/* -- p6 */ +/* -- p7 */ /* --POINTS CREATE end */ /* --COMBINATIONS CREATE start */ From e2fbbcc6ca6fd2bcbd179d2c99048753b5d4cf02 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 7 Mar 2025 18:55:44 -0600 Subject: [PATCH 108/141] Fix of build-extension-update-files.pl --- sql/scripts/build-extension-update-files.pl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/sql/scripts/build-extension-update-files.pl b/sql/scripts/build-extension-update-files.pl index 6443062a01..6ce80397b2 100755 --- a/sql/scripts/build-extension-update-files.pl +++ b/sql/scripts/build-extension-update-files.pl @@ -222,19 +222,19 @@ sub generate_upgrade_script { } # updating to 3.4+ - if ($old_mayor == 2 or ($old_mayor == 3 and $old_minor < 4)) { + if ($old_minor < 3.4) { push @commands, drop_special_case_function("pgr_maxcardinalitymatch(text,boolean)"); } # updating to 3.5+ - if ($old_mayor == 2 or ($old_mayor == 3 && $old_minor < 5)) { + if ($old_minor < 3.5) { push @commands, drop_special_case_function("pgr_dijkstra(text,anyarray,bigint,boolean)"); push @commands, drop_special_case_function("pgr_dijkstra(text,bigint,anyarray,boolean)"); push @commands, drop_special_case_function("pgr_dijkstra(text,bigint,bigint,boolean)"); } # updating to 3.6+ - if ($old_mayor == 2 or ($old_mayor == 3 && $old_minor < 6)) { + if ($old_minor < 3.6) { push @commands, drop_special_case_function("pgr_withpointsksp(text, text, bigint, bigint, integer, boolean, boolean, char, boolean)"); push @commands, drop_special_case_function("pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision)"); push @commands, drop_special_case_function("pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision)"); @@ -250,7 +250,7 @@ sub generate_upgrade_script { } # updating to 3.7+ - if ($old_mayor == 2 or ($old_mayor == 3 && $old_minor < 7)) { + if ($old_mayor >= 3.0 && $old_minor < 3.7) { push @commands, drop_special_case_function("pgr_primbfs(text,anyarray,bigint)"); push @commands, drop_special_case_function("pgr_primbfs(text,bigint,bigint)"); push @commands, drop_special_case_function("pgr_primdfs(text,anyarray,bigint)"); @@ -270,7 +270,7 @@ sub generate_upgrade_script { } # updating to 3.7+ - if ($old_mayor == 3 && $old_minor >= 4 && $old_minor < 8) { + if ($old_minor >= 3.4 && $old_minor < 3.8) { push @commands, drop_special_case_function("pgr_findcloseedges(text,geometry,double precision,integer,boolean,boolean)"); push @commands, drop_special_case_function("pgr_findcloseedges(text,geometry[],double precision,integer,boolean,boolean)"); } @@ -284,9 +284,12 @@ sub generate_upgrade_script { if ($old_mayor == 2) { push @commands, update_from_version_2(); } + +=pod if ("$old_version" eq "3.0.0") { push @commands, update_from_version_3_0_0(); } +=cut # UGH! someone change the definition of the TYPE or reused an existing # TYPE name which is VERY BAD because other people might be dependent From 8e757a0903680de93e00acd5ab2497371ef4a9c3 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 6 Mar 2025 14:12:39 -0600 Subject: [PATCH 109/141] (CI) adding sphinx-collapse to workflows --- .github/workflows/release.yml | 1 + .github/workflows/update-locale.yml | 1 + .github/workflows/website.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 59ce4f79f0..b06cc6b955 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,6 +79,7 @@ jobs: python -m pip install --upgrade pip pip install Sphinx pip install sphinx-bootstrap-theme + pip install sphinx-collapse pip list - name: Configure diff --git a/.github/workflows/update-locale.yml b/.github/workflows/update-locale.yml index 912abe38be..65c7fe2a30 100644 --- a/.github/workflows/update-locale.yml +++ b/.github/workflows/update-locale.yml @@ -77,6 +77,7 @@ jobs: pip install Sphinx pip install sphinx-bootstrap-theme pip install sphinx-intl[transifex] + pip install sphinx-collapse pip list - name: Initialize mandatory git config diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index abcab337e1..536dd5be24 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -76,6 +76,7 @@ jobs: pip install Sphinx pip install sphinx-bootstrap-theme pip install sphinx-intl[transifex] + pip install sphinx-collapse pip list - name: Configure and build documentation From 64138b33927ee1e0e1ca5fdd8914beb8c8d3d99b Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 8 Mar 2025 06:54:30 -0600 Subject: [PATCH 110/141] (CI/update) port test from main --- .github/workflows/update.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 3f6c97fd1f..83235bd694 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -21,7 +21,7 @@ permissions: contents: read jobs: - build: + update-ver: name: Build runs-on: ubuntu-latest @@ -94,16 +94,16 @@ jobs: cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=OFF .. make -j 4 sudo make install - sudo service postgresql start - createdb -p "${PGPORT}" ___pgr___test___ - psql -p "${PGPORT}" -d ___pgr___test___ -c "CREATE EXTENSION pgrouting CASCADE;" - name: Test old version before update with current tests run: | sudo service postgresql start + createdb -p "${PGPORT}" ___pgr___test___ + psql -p "${PGPORT}" -d ___pgr___test___ -c "CREATE EXTENSION pgrouting CASCADE;" psql -p "${PGPORT}" -d ___pgr___test___ -c "SELECT * FROM pgr_full_version();" DIR=$(git rev-parse --show-toplevel) bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "${{ matrix.old_pgr }}" + 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" - name: Build current version @@ -118,8 +118,11 @@ jobs: - name: Test old version with currrent tests after installing current run: | sudo service postgresql start - psql -p "${PGPORT}" -d ___pgr___test___ -c "SELECT * FROM pgr_full_version();" + dropdb -p "${PGPORT}" ___pgr___test___ + createdb -p "${PGPORT}" ___pgr___test___ DIR=$(git rev-parse --show-toplevel) + bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "${{ matrix.old_pgr }}" + 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" - name: Test old version with current tests after update From 7536a32054ddf5bcc8c27ef5958018fc0bcaf013 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 8 Mar 2025 10:34:49 -0600 Subject: [PATCH 111/141] (pgr_degree) Fixing index on documentation --- doc/metrics/pgr_degree.rst | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/metrics/pgr_degree.rst b/doc/metrics/pgr_degree.rst index 6bab5575d4..a9849eda52 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 and Vertices + single: degree ; Edges Edges ............................................................................... @@ -92,6 +92,9 @@ Edges :start-after: -- q1 :end-before: -- q2 +.. index:: + single: degree ; Edges and Vertices + Edges and Vertices ............................................................................... @@ -116,10 +119,6 @@ Calculate the degree of the nodes: :start-after: -- q2 :end-before: -- q3 -.. index:: - single: degree ; Edges - - Parameters ------------------------------------------------------------------------------- From 5d7128f58c3e41dcbf83d68a8f3c4ad4109ce17c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 16:36:30 +0000 Subject: [PATCH 112/141] Update locale: commit db51a686d --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 232 +++++++++++++----- locale/pot/pgrouting_doc_strings.pot | 191 ++++++++++---- 2 files changed, 318 insertions(+), 105 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 43932f090f..68f47f7aff 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-03 21:00+0000\n" +"POT-Creation-Date: 2025-03-08 16:36+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -294,9 +294,6 @@ msgstr "" msgid ":doc:`pgr_primDFS`" msgstr "" -msgid "Proposed" -msgstr "" - msgid "Proposed functions for next mayor release." msgstr "" @@ -364,9 +361,6 @@ msgid "" "functionality to the new signatures or replacement functions." msgstr "" -msgid "Experimental" -msgstr "" - msgid "Possible server crash" msgstr "" @@ -409,7 +403,7 @@ msgstr "" msgid "Documentation examples might need to be automatically generated." msgstr "" -msgid "Might need a lot of feedback from the comunity." +msgid "Might need a lot of feedback from the community." msgstr "" msgid "Might depend on a proposed function of pgRouting" @@ -3375,9 +3369,6 @@ msgstr "" msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr "" -msgid "proposed" -msgstr "" - msgid ":doc:`pgr_withPointsCostMatrix`" msgstr "" @@ -3551,7 +3542,7 @@ msgid "" "shortest paths." msgstr "" -msgid ":doc:`pgr_dijkstraVia` - Get a route of a seuence of vertices." +msgid ":doc:`pgr_dijkstraVia` - Get a route of a sequence of vertices." msgstr "" msgid ":doc:`pgr_dijkstraNear` - Get the route to the nearest vertex." @@ -3638,7 +3629,7 @@ msgstr "" msgid "Directed graph" msgstr "" -msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:" +msgid "The weighted directed graph, :math:`G_d(V,E)`, is defined by:" msgstr "" msgid "the set of vertices :math:`V`" @@ -3663,7 +3654,7 @@ msgstr "" msgid "Undirected graph" msgstr "" -msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:" +msgid "The weighted undirected graph, :math:`G_u(V,E)`, is defined by:" msgstr "" msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" @@ -3793,7 +3784,7 @@ msgstr "" msgid ":doc:`pgr_kruskalDD` - Driving Distance based on Kruskal's algorithm" msgstr "" -msgid "Post pocessing" +msgid "Post processing" msgstr "" msgid ":doc:`pgr_alphaShape` - Alpha shape computation" @@ -3956,7 +3947,7 @@ msgstr "" msgid ":doc:`pgr_isPlanar`" msgstr "" -msgid "Miscellaneous Algoritms" +msgid "Miscellaneous Algorithms" msgstr "" msgid ":doc:`pgr_lengauerTarjanDominatorTree`" @@ -4021,7 +4012,7 @@ msgid "" "returned." msgstr "" -msgid "There is no flow when source has the same vaule as target." +msgid "There is no flow when source has the same value as target." msgstr "" msgid "Any duplicated values in source or target are ignored." @@ -4317,6 +4308,11 @@ msgstr "" msgid ":doc:`pgr_kruskalDD`" msgstr "" +msgid "" +":doc:`pgr_degree` - Returns a set of vertices and corresponding count of " +"incident edges to the vertex." +msgstr "" + msgid ":doc:`prim-family`" msgstr "" @@ -4427,16 +4423,16 @@ msgstr "" msgid "Function promoted to official." msgstr "" -msgid "pgr_findCloseEdges" +msgid "pgr_degree" msgstr "" -msgid "``partial`` option is removed." +msgid "New signature with only Edges SQL." msgstr "" -msgid "Changes on proposed functions" +msgid "pgr_findCloseEdges" msgstr "" -msgid "pgr_degree" +msgid "``partial`` option is removed." msgstr "" msgid "All releases" @@ -5518,9 +5514,6 @@ msgstr "" msgid "Graph with ``cost`` and ``reverse_cost``" msgstr "" -msgid "The weighted directed graph, :math:`G_d(V,E)`, is defined by:" -msgstr "" - msgid "``SELECT id, source, target, cost, reverse_cost FROM edges``" msgstr "" @@ -6191,17 +6184,29 @@ msgstr "" msgid "To get the dead ends:" msgstr "" +msgid "A dead end happens when" +msgstr "" + msgid "" -"That information is correct, for example, when the dead end is on the " -"limit of the imported graph." +"The vertex is the limit of a cul-de-sac, a no-through road or a no-exit " +"road." +msgstr "" + +msgid "The vertex is on the limit of the imported graph." +msgstr "" + +msgid "If a larger graph is imported then the vertex might not be a dead end" msgstr "" msgid "" -"Visually node :math:`4` looks to be as start/ending of 3 edges, but it is" -" not." +"Node :math:`4`, is a dead end on the query, even that it visually looks " +"like an end point of 3 edges." msgstr "" -msgid "Is that correct?" +msgid "Is node :math:`4` a dead end or not?" +msgstr "" + +msgid "The answer to that question will depend on the application." msgstr "" msgid "Is there such a small curb:" @@ -6225,9 +6230,12 @@ msgid "" " to the segment?" msgstr "" +msgid "Depending on the answer, modification of the data might be needed." +msgstr "" + msgid "" -"When there are many dead ends, to speed up, the :doc:`contraction-family`" -" functions can be used to divide the problem." +"When there are many dead ends, to speed up processing, the :doc" +":`contraction-family` functions can be used to contract the graph." msgstr "" msgid "Linear edges" @@ -6237,13 +6245,15 @@ msgid "To get the linear edges:" msgstr "" msgid "" -"This information is correct, for example, when the application is taking " -"into account speed bumps, stop signals." +"These linear vertices are correct, for example, when those the vertices " +"are speed bumps, stop signals and the application is taking them into " +"account." msgstr "" msgid "" -"When there are many linear edges, to speed up, the :doc:`contraction-" -"family` functions can be used to divide the problem." +"When there are many linear vertices, that need not to be taken into " +"account, to speed up the processing, the :doc:`contraction-family` " +"functions can be used to contract the problem." msgstr "" msgid "Function's structure" @@ -10227,7 +10237,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Topological_sorting" msgstr "" -msgid "``pgr_degree`` -- Proposed" +msgid "``pgr_degree``" msgstr "" msgid "" @@ -10238,7 +10248,42 @@ msgstr "" msgid "Version 3.8.0" msgstr "" -msgid "Calculates the degree of the vertices of an **undirected** graph" +msgid "Calculates the degree of the vertices of an undirected graph" +msgstr "" + +msgid "" +"The degree (or valency) of a vertex of a graph is the number of edges " +"that are incident to the vertex." +msgstr "" + +msgid "A loop contributes 2 to a vertex's degree." +msgstr "" + +msgid "A vertex with degree 0 is called an isolated vertex." +msgstr "" + +msgid "Isolated vertex is not part of the result" +msgstr "" + +msgid "" +"Vertex not participating on the subgraph is considered and isolated " +"vertex." +msgstr "" + +msgid "" +"There can be a ``dryrun`` execution and the code used to get the answer " +"will be shown in a PostgreSQL ``NOTICE``." +msgstr "" + +msgid "" +"The code can be used as base code for the particular application " +"requirements." +msgstr "" + +msgid "No ordering is performed." +msgstr "" + +msgid "pgr_degree(`Edges SQL`_ , [``dryrun``])" msgstr "" msgid "pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``])" @@ -10247,14 +10292,31 @@ msgstr "" msgid "RETURNS SETOF |result-degree|" msgstr "" +msgid "Edges" +msgstr "" + +msgid "example" +msgstr "" + +msgid "Get the degree of the vertices defined on the edges table" +msgstr "" + +msgid "Edges and Vertices" +msgstr "" + msgid "Extracting the vertex information" msgstr "" +msgid "``pgr_degree`` can use :doc:`pgr_extractVertices` embedded in the call." +msgstr "" + msgid "" -"pgr_degree can utilize output from `pgr_extractVertices` or can have " -"`pgr_extractVertices` embedded in the call. For decent size networks, it " -"is best to prep your vertices table before hand and use that vertices " -"table for pgr_degree calls." +"For decent size networks, it is best to prepare your vertices table " +"before hand and use it on ``pgr_degree`` calls. (See `Using a vertex " +"table`_)" +msgstr "" + +msgid "Calculate the degree of the nodes:" msgstr "" msgid "`Vertex SQL`_" @@ -10269,6 +10331,12 @@ msgstr "" msgid "When true do not process and get in a NOTICE the resulting query." msgstr "" +msgid "For the `Edges and Vertices`_ signature:" +msgstr "" + +msgid "For the `Edges`_ signature:" +msgstr "" + msgid "Vertex SQL" msgstr "" @@ -10306,9 +10374,49 @@ msgstr "" msgid "Number of edges that are incident to the vertex ``id``" msgstr "" +msgid "Degree of a loop" +msgstr "" + +msgid "Using the `Edges`_ signature." +msgstr "" + +msgid "Using the `Edges and Vertices`_ signature." +msgstr "" + msgid "Degree of a sub graph" msgstr "" +msgid "For the following is a subgraph of the :doc:`sampledata`:" +msgstr "" + +#, python-brace-format +msgid ":math:`E = \\{(1, 5 \\leftrightarrow 6), (1, 6 \\leftrightarrow 10)\\}`" +msgstr "" + +#, python-brace-format +msgid ":math:`V = \\{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\\}`" +msgstr "" + +msgid "The vertices not participating on the edge are considered isolated" +msgstr "" + +msgid "their degree is 0 in the subgraph and" +msgstr "" + +msgid "their degree is not shown in the output." +msgstr "" + +msgid "Using a vertex table" +msgstr "" + +msgid "" +"For decent size networks, it is best to prepare your vertices table " +"before hand and use it on ``pgr_degree`` calls." +msgstr "" + +msgid "Extract the vertex information and save into a table:" +msgstr "" + msgid "Dry run execution" msgstr "" @@ -10322,14 +10430,28 @@ msgid "" "backend development needs." msgstr "" -msgid "Degree from an existing table" +msgid "Finding dead ends" msgstr "" msgid "" -"If you have a vertices table already built using ``pgr_extractVertices`` " -"and want the degree of the whole graph rather than a subset, you can " -"forgo using pgr_degree and work with the ``in_edges`` and ``out_edges`` " -"columns directly." +"If there is a vertices table already built using ``pgr_extractVertices`` " +"and want the degree of the whole graph rather than a subset, it can be " +"forgo using ``pgr_degree`` and work with the ``in_edges`` and " +"``out_edges`` columns directly." +msgstr "" + +msgid "The degree of a dead end is 1." +msgstr "" + +msgid "Finding linear vertices" +msgstr "" + +msgid "The degree of a linear vertex is 2." +msgstr "" + +msgid "" +"If there is a vertices table already built using the " +"``pgr_extractVertices``" msgstr "" msgid ":doc:`pgr_extractVertices`" @@ -12882,6 +13004,9 @@ msgid "" "returned." msgstr "" +msgid "There is no flow when source has the same vaule as target." +msgstr "" + msgid "Uses the :doc:`pgr_pushRelabel ` algorithm." msgstr "" @@ -15174,14 +15299,6 @@ msgstr "" msgid ":doc:`pgr_withPointsVia` - Via routing" msgstr "" -msgid "These proposed functions do not modify the database." -msgstr "" - -msgid "" -":doc:`pgr_degree` - Returns a set of vertices and corresponding count of " -"incidet edges to the vertex." -msgstr "" - msgid "" ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line " "Graph." @@ -17698,9 +17815,6 @@ msgid "" " that everything else is calculated." msgstr "" -msgid "Edges" -msgstr "" - msgid "" "The database design for the documentation of pgRouting, keeps in the same" " row 2 segments, one in the direction of the geometry and the second in " @@ -18072,7 +18186,7 @@ msgstr "" msgid "Traversal - Family of functions" msgstr "" -msgid "Aditionaly there are 2 categories under this family" +msgid "Additionally there are 2 categories under this family" msgstr "" msgid "Via - Category" @@ -18088,7 +18202,7 @@ msgid "" msgstr "" msgid "" -"In other words, find a continuos route that visits all the vertices in " +"In other words, find a continuous route that visits all the vertices in " "the order given." msgstr "" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 3a2da20db5..d153b50311 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-03 21:00+0000\n" +"POT-Creation-Date: 2025-03-08 16:36+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -280,9 +280,6 @@ msgstr "" msgid ":doc:`pgr_primDFS`" msgstr "" -msgid "Proposed" -msgstr "" - msgid "Proposed functions for next mayor release." msgstr "" @@ -346,9 +343,6 @@ msgstr "" msgid "Read the :doc:`migration` about how to migrate from the deprecated TRSP functionality to the new signatures or replacement functions." msgstr "" -msgid "Experimental" -msgstr "" - msgid "Possible server crash" msgstr "" @@ -391,7 +385,7 @@ msgstr "" msgid "Documentation examples might need to be automatically generated." msgstr "" -msgid "Might need a lot of feedback from the comunity." +msgid "Might need a lot of feedback from the community." msgstr "" msgid "Might depend on a proposed function of pgRouting" @@ -3064,9 +3058,6 @@ msgstr "" msgid ":doc:`pgr_bdDijkstraCostMatrix`" msgstr "" -msgid "proposed" -msgstr "" - msgid ":doc:`pgr_withPointsCostMatrix`" msgstr "" @@ -3220,7 +3211,7 @@ msgstr "" msgid ":doc:`pgr_KSP` - Use Yen algorithm with pgr_dijkstra to get the K shortest paths." msgstr "" -msgid ":doc:`pgr_dijkstraVia` - Get a route of a seuence of vertices." +msgid ":doc:`pgr_dijkstraVia` - Get a route of a sequence of vertices." msgstr "" msgid ":doc:`pgr_dijkstraNear` - Get the route to the nearest vertex." @@ -3298,7 +3289,7 @@ msgstr "" msgid "Directed graph" msgstr "" -msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:" +msgid "The weighted directed graph, :math:`G_d(V,E)`, is defined by:" msgstr "" msgid "the set of vertices :math:`V`" @@ -3316,7 +3307,7 @@ msgstr "" msgid "Undirected graph" msgstr "" -msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:" +msgid "The weighted undirected graph, :math:`G_u(V,E)`, is defined by:" msgstr "" msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup {end_{vid}}`" @@ -3403,7 +3394,7 @@ msgstr "" msgid ":doc:`pgr_kruskalDD` - Driving Distance based on Kruskal's algorithm" msgstr "" -msgid "Post pocessing" +msgid "Post processing" msgstr "" msgid ":doc:`pgr_alphaShape` - Alpha shape computation" @@ -3550,7 +3541,7 @@ msgstr "" msgid ":doc:`pgr_isPlanar`" msgstr "" -msgid "Miscellaneous Algoritms" +msgid "Miscellaneous Algorithms" msgstr "" msgid ":doc:`pgr_lengauerTarjanDominatorTree`" @@ -3601,7 +3592,7 @@ msgstr "" msgid "When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned." msgstr "" -msgid "There is no flow when source has the same vaule as target." +msgid "There is no flow when source has the same value as target." msgstr "" msgid "Any duplicated values in source or target are ignored." @@ -3847,6 +3838,9 @@ msgstr "" msgid ":doc:`pgr_kruskalDD`" msgstr "" +msgid ":doc:`pgr_degree` - Returns a set of vertices and corresponding count of incident edges to the vertex." +msgstr "" + msgid ":doc:`prim-family`" msgstr "" @@ -3949,16 +3943,16 @@ msgstr "" msgid "Function promoted to official." msgstr "" -msgid "pgr_findCloseEdges" +msgid "pgr_degree" msgstr "" -msgid "``partial`` option is removed." +msgid "New signature with only Edges SQL." msgstr "" -msgid "Changes on proposed functions" +msgid "pgr_findCloseEdges" msgstr "" -msgid "pgr_degree" +msgid "``partial`` option is removed." msgstr "" msgid "All releases" @@ -4897,9 +4891,6 @@ msgstr "" msgid "Graph with ``cost`` and ``reverse_cost``" msgstr "" -msgid "The weighted directed graph, :math:`G_d(V,E)`, is defined by:" -msgstr "" - msgid "``SELECT id, source, target, cost, reverse_cost FROM edges``" msgstr "" @@ -5419,13 +5410,25 @@ msgstr "" msgid "To get the dead ends:" msgstr "" -msgid "That information is correct, for example, when the dead end is on the limit of the imported graph." +msgid "A dead end happens when" +msgstr "" + +msgid "The vertex is the limit of a cul-de-sac, a no-through road or a no-exit road." +msgstr "" + +msgid "The vertex is on the limit of the imported graph." +msgstr "" + +msgid "If a larger graph is imported then the vertex might not be a dead end" +msgstr "" + +msgid "Node :math:`4`, is a dead end on the query, even that it visually looks like an end point of 3 edges." msgstr "" -msgid "Visually node :math:`4` looks to be as start/ending of 3 edges, but it is not." +msgid "Is node :math:`4` a dead end or not?" msgstr "" -msgid "Is that correct?" +msgid "The answer to that question will depend on the application." msgstr "" msgid "Is there such a small curb:" @@ -5443,7 +5446,10 @@ msgstr "" msgid "Is there a big cliff and from eagles view look like the dead end is close to the segment?" msgstr "" -msgid "When there are many dead ends, to speed up, the :doc:`contraction-family` functions can be used to divide the problem." +msgid "Depending on the answer, modification of the data might be needed." +msgstr "" + +msgid "When there are many dead ends, to speed up processing, the :doc:`contraction-family` functions can be used to contract the graph." msgstr "" msgid "Linear edges" @@ -5452,10 +5458,10 @@ msgstr "" msgid "To get the linear edges:" msgstr "" -msgid "This information is correct, for example, when the application is taking into account speed bumps, stop signals." +msgid "These linear vertices are correct, for example, when those the vertices are speed bumps, stop signals and the application is taking them into account." msgstr "" -msgid "When there are many linear edges, to speed up, the :doc:`contraction-family` functions can be used to divide the problem." +msgid "When there are many linear vertices, that need not to be taken into account, to speed up the processing, the :doc:`contraction-family` functions can be used to contract the problem." msgstr "" msgid "Function's structure" @@ -8740,7 +8746,7 @@ msgstr "" msgid "https://en.wikipedia.org/wiki/Topological_sorting" msgstr "" -msgid "``pgr_degree`` -- Proposed" +msgid "``pgr_degree``" msgstr "" msgid "``pgr_degree`` — For each vertex in an undirected graph, return the count of edges incident to the vertex." @@ -8749,7 +8755,34 @@ msgstr "" msgid "Version 3.8.0" msgstr "" -msgid "Calculates the degree of the vertices of an **undirected** graph" +msgid "Calculates the degree of the vertices of an undirected graph" +msgstr "" + +msgid "The degree (or valency) of a vertex of a graph is the number of edges that are incident to the vertex." +msgstr "" + +msgid "A loop contributes 2 to a vertex's degree." +msgstr "" + +msgid "A vertex with degree 0 is called an isolated vertex." +msgstr "" + +msgid "Isolated vertex is not part of the result" +msgstr "" + +msgid "Vertex not participating on the subgraph is considered and isolated vertex." +msgstr "" + +msgid "There can be a ``dryrun`` execution and the code used to get the answer will be shown in a PostgreSQL ``NOTICE``." +msgstr "" + +msgid "The code can be used as base code for the particular application requirements." +msgstr "" + +msgid "No ordering is performed." +msgstr "" + +msgid "pgr_degree(`Edges SQL`_ , [``dryrun``])" msgstr "" msgid "pgr_degree(`Edges SQL`_ , `Vertex SQL`_, [``dryrun``])" @@ -8758,10 +8791,28 @@ msgstr "" msgid "RETURNS SETOF |result-degree|" msgstr "" +msgid "Edges" +msgstr "" + +msgid "example" +msgstr "" + +msgid "Get the degree of the vertices defined on the edges table" +msgstr "" + +msgid "Edges and Vertices" +msgstr "" + msgid "Extracting the vertex information" msgstr "" -msgid "pgr_degree can utilize output from `pgr_extractVertices` or can have `pgr_extractVertices` embedded in the call. For decent size networks, it is best to prep your vertices table before hand and use that vertices table for pgr_degree calls." +msgid "``pgr_degree`` can use :doc:`pgr_extractVertices` embedded in the call." +msgstr "" + +msgid "For decent size networks, it is best to prepare your vertices table before hand and use it on ``pgr_degree`` calls. (See `Using a vertex table`_)" +msgstr "" + +msgid "Calculate the degree of the nodes:" msgstr "" msgid "`Vertex SQL`_" @@ -8776,6 +8827,12 @@ msgstr "" msgid "When true do not process and get in a NOTICE the resulting query." msgstr "" +msgid "For the `Edges and Vertices`_ signature:" +msgstr "" + +msgid "For the `Edges`_ signature:" +msgstr "" + msgid "Vertex SQL" msgstr "" @@ -8809,9 +8866,45 @@ msgstr "" msgid "Number of edges that are incident to the vertex ``id``" msgstr "" +msgid "Degree of a loop" +msgstr "" + +msgid "Using the `Edges`_ signature." +msgstr "" + +msgid "Using the `Edges and Vertices`_ signature." +msgstr "" + msgid "Degree of a sub graph" msgstr "" +msgid "For the following is a subgraph of the :doc:`sampledata`:" +msgstr "" + +msgid ":math:`E = \\{(1, 5 \\leftrightarrow 6), (1, 6 \\leftrightarrow 10)\\}`" +msgstr "" + +msgid ":math:`V = \\{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\\}`" +msgstr "" + +msgid "The vertices not participating on the edge are considered isolated" +msgstr "" + +msgid "their degree is 0 in the subgraph and" +msgstr "" + +msgid "their degree is not shown in the output." +msgstr "" + +msgid "Using a vertex table" +msgstr "" + +msgid "For decent size networks, it is best to prepare your vertices table before hand and use it on ``pgr_degree`` calls." +msgstr "" + +msgid "Extract the vertex information and save into a table:" +msgstr "" + msgid "Dry run execution" msgstr "" @@ -8821,10 +8914,22 @@ msgstr "" msgid "The results can be used as base code to make a refinement based on the backend development needs." msgstr "" -msgid "Degree from an existing table" +msgid "Finding dead ends" +msgstr "" + +msgid "If there is a vertices table already built using ``pgr_extractVertices`` and want the degree of the whole graph rather than a subset, it can be forgo using ``pgr_degree`` and work with the ``in_edges`` and ``out_edges`` columns directly." +msgstr "" + +msgid "The degree of a dead end is 1." +msgstr "" + +msgid "Finding linear vertices" +msgstr "" + +msgid "The degree of a linear vertex is 2." msgstr "" -msgid "If you have a vertices table already built using ``pgr_extractVertices`` and want the degree of the whole graph rather than a subset, you can forgo using pgr_degree and work with the ``in_edges`` and ``out_edges`` columns directly." +msgid "If there is a vertices table already built using the ``pgr_extractVertices``" msgstr "" msgid ":doc:`pgr_extractVertices`" @@ -10924,6 +11029,9 @@ msgstr "" msgid "When the maximum flow is **0** then there is no flow and **0** is returned." msgstr "" +msgid "There is no flow when source has the same vaule as target." +msgstr "" + msgid "Uses the :doc:`pgr_pushRelabel ` algorithm." msgstr "" @@ -12757,12 +12865,6 @@ msgstr "" msgid ":doc:`pgr_withPointsVia` - Via routing" msgstr "" -msgid "These proposed functions do not modify the database." -msgstr "" - -msgid ":doc:`pgr_degree` - Returns a set of vertices and corresponding count of incidet edges to the vertex." -msgstr "" - msgid ":doc:`pgr_lineGraph` - Transformation algorithm for generating a Line Graph." msgstr "" @@ -14815,9 +14917,6 @@ msgstr "" msgid "The process to have working topology starts by inserting the edges. After that everything else is calculated." msgstr "" -msgid "Edges" -msgstr "" - msgid "The database design for the documentation of pgRouting, keeps in the same row 2 segments, one in the direction of the geometry and the second in the opposite direction. Therefore some information has the ``reverse_`` prefix which corresponds to the segment on the opposite direction of the geometry." msgstr "" @@ -15103,7 +15202,7 @@ msgstr "" msgid "Traversal - Family of functions" msgstr "" -msgid "Aditionaly there are 2 categories under this family" +msgid "Additionally there are 2 categories under this family" msgstr "" msgid "Via - Category" @@ -15115,7 +15214,7 @@ msgstr "" msgid "Given a graph and a list of vertices, find the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all vertices" msgstr "" -msgid "In other words, find a continuos route that visits all the vertices in the order given." +msgid "In other words, find a continuous route that visits all the vertices in the order given." msgstr "" msgid "path" From 24e2695df0b7463adfaa66ed642dad22a632bdfe Mon Sep 17 00:00:00 2001 From: cvvergara Date: Mon, 17 Mar 2025 12:40:36 -0600 Subject: [PATCH 113/141] (contraction/pgtap) reorganizing subdirectory) --- .../{ => contraction/edge_cases}/combined/compare_dijsktra.pg | 0 pgtap/contraction/{ => contraction}/edge_cases/cycle_directed.pg | 0 .../contraction/{ => contraction}/edge_cases/cycle_undirected.pg | 0 .../{ => contraction/edge_cases}/deadend/directed/cases.pg | 0 .../edge_cases}/deadend/directed/compare_dijkstra.pg | 0 .../{ => contraction/edge_cases}/deadend/directed/dev_cases.pg | 0 .../{ => contraction/edge_cases}/deadend/directed/id_size.pg | 0 .../{ => contraction/edge_cases}/deadend/directed/inner_query.pg | 0 .../{ => contraction/edge_cases}/deadend/directed/more_cases.pg | 0 .../{ => contraction/edge_cases}/deadend/undirected/cases.pg | 0 .../edge_cases}/deadend/undirected/compare_dijkstra.pg | 0 .../{ => contraction/edge_cases}/deadend/undirected/dev_cases.pg | 0 .../{ => contraction/edge_cases}/deadend/undirected/id_size.pg | 0 .../edge_cases}/deadend/undirected/inner_query.pg | 0 .../{ => contraction/edge_cases}/deadend/undirected/more_cases.pg | 0 pgtap/contraction/{ => contraction}/edge_cases/issue_1002.pg | 0 .../edge_cases}/linear/directed/compare_dijkstra.pg | 0 .../{ => contraction/edge_cases}/linear/directed/edge_cases.pg | 0 .../{ => contraction/edge_cases}/linear/directed/inner_query.pg | 0 .../{ => contraction/edge_cases}/linear/directed/issue_1647.pg | 0 .../edge_cases}/linear/undirected/compare_dijkstra.pg | 0 .../{ => contraction/edge_cases}/linear/undirected/edge_cases.pg | 0 .../{ => contraction/edge_cases}/linear/undirected/inner_query.pg | 0 .../{ => contraction/edge_cases}/linear/undirected/issue_1647.pg | 0 pgtap/contraction/{ => contraction}/edge_cases/remaining_tests.pg | 0 pgtap/contraction/{ => contraction}/no_crash_test.pg | 0 pgtap/contraction/{ => contraction}/types_check.pg | 0 27 files changed, 0 insertions(+), 0 deletions(-) rename pgtap/contraction/{ => contraction/edge_cases}/combined/compare_dijsktra.pg (100%) rename pgtap/contraction/{ => contraction}/edge_cases/cycle_directed.pg (100%) rename pgtap/contraction/{ => contraction}/edge_cases/cycle_undirected.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/directed/cases.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/directed/compare_dijkstra.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/directed/dev_cases.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/directed/id_size.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/directed/inner_query.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/directed/more_cases.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/undirected/cases.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/undirected/compare_dijkstra.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/undirected/dev_cases.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/undirected/id_size.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/undirected/inner_query.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/deadend/undirected/more_cases.pg (100%) rename pgtap/contraction/{ => contraction}/edge_cases/issue_1002.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/directed/compare_dijkstra.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/directed/edge_cases.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/directed/inner_query.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/directed/issue_1647.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/undirected/compare_dijkstra.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/undirected/edge_cases.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/undirected/inner_query.pg (100%) rename pgtap/contraction/{ => contraction/edge_cases}/linear/undirected/issue_1647.pg (100%) rename pgtap/contraction/{ => contraction}/edge_cases/remaining_tests.pg (100%) rename pgtap/contraction/{ => contraction}/no_crash_test.pg (100%) rename pgtap/contraction/{ => contraction}/types_check.pg (100%) diff --git a/pgtap/contraction/combined/compare_dijsktra.pg b/pgtap/contraction/contraction/edge_cases/combined/compare_dijsktra.pg similarity index 100% rename from pgtap/contraction/combined/compare_dijsktra.pg rename to pgtap/contraction/contraction/edge_cases/combined/compare_dijsktra.pg diff --git a/pgtap/contraction/edge_cases/cycle_directed.pg b/pgtap/contraction/contraction/edge_cases/cycle_directed.pg similarity index 100% rename from pgtap/contraction/edge_cases/cycle_directed.pg rename to pgtap/contraction/contraction/edge_cases/cycle_directed.pg diff --git a/pgtap/contraction/edge_cases/cycle_undirected.pg b/pgtap/contraction/contraction/edge_cases/cycle_undirected.pg similarity index 100% rename from pgtap/contraction/edge_cases/cycle_undirected.pg rename to pgtap/contraction/contraction/edge_cases/cycle_undirected.pg diff --git a/pgtap/contraction/deadend/directed/cases.pg b/pgtap/contraction/contraction/edge_cases/deadend/directed/cases.pg similarity index 100% rename from pgtap/contraction/deadend/directed/cases.pg rename to pgtap/contraction/contraction/edge_cases/deadend/directed/cases.pg diff --git a/pgtap/contraction/deadend/directed/compare_dijkstra.pg b/pgtap/contraction/contraction/edge_cases/deadend/directed/compare_dijkstra.pg similarity index 100% rename from pgtap/contraction/deadend/directed/compare_dijkstra.pg rename to pgtap/contraction/contraction/edge_cases/deadend/directed/compare_dijkstra.pg diff --git a/pgtap/contraction/deadend/directed/dev_cases.pg b/pgtap/contraction/contraction/edge_cases/deadend/directed/dev_cases.pg similarity index 100% rename from pgtap/contraction/deadend/directed/dev_cases.pg rename to pgtap/contraction/contraction/edge_cases/deadend/directed/dev_cases.pg diff --git a/pgtap/contraction/deadend/directed/id_size.pg b/pgtap/contraction/contraction/edge_cases/deadend/directed/id_size.pg similarity index 100% rename from pgtap/contraction/deadend/directed/id_size.pg rename to pgtap/contraction/contraction/edge_cases/deadend/directed/id_size.pg diff --git a/pgtap/contraction/deadend/directed/inner_query.pg b/pgtap/contraction/contraction/edge_cases/deadend/directed/inner_query.pg similarity index 100% rename from pgtap/contraction/deadend/directed/inner_query.pg rename to pgtap/contraction/contraction/edge_cases/deadend/directed/inner_query.pg diff --git a/pgtap/contraction/deadend/directed/more_cases.pg b/pgtap/contraction/contraction/edge_cases/deadend/directed/more_cases.pg similarity index 100% rename from pgtap/contraction/deadend/directed/more_cases.pg rename to pgtap/contraction/contraction/edge_cases/deadend/directed/more_cases.pg diff --git a/pgtap/contraction/deadend/undirected/cases.pg b/pgtap/contraction/contraction/edge_cases/deadend/undirected/cases.pg similarity index 100% rename from pgtap/contraction/deadend/undirected/cases.pg rename to pgtap/contraction/contraction/edge_cases/deadend/undirected/cases.pg diff --git a/pgtap/contraction/deadend/undirected/compare_dijkstra.pg b/pgtap/contraction/contraction/edge_cases/deadend/undirected/compare_dijkstra.pg similarity index 100% rename from pgtap/contraction/deadend/undirected/compare_dijkstra.pg rename to pgtap/contraction/contraction/edge_cases/deadend/undirected/compare_dijkstra.pg diff --git a/pgtap/contraction/deadend/undirected/dev_cases.pg b/pgtap/contraction/contraction/edge_cases/deadend/undirected/dev_cases.pg similarity index 100% rename from pgtap/contraction/deadend/undirected/dev_cases.pg rename to pgtap/contraction/contraction/edge_cases/deadend/undirected/dev_cases.pg diff --git a/pgtap/contraction/deadend/undirected/id_size.pg b/pgtap/contraction/contraction/edge_cases/deadend/undirected/id_size.pg similarity index 100% rename from pgtap/contraction/deadend/undirected/id_size.pg rename to pgtap/contraction/contraction/edge_cases/deadend/undirected/id_size.pg diff --git a/pgtap/contraction/deadend/undirected/inner_query.pg b/pgtap/contraction/contraction/edge_cases/deadend/undirected/inner_query.pg similarity index 100% rename from pgtap/contraction/deadend/undirected/inner_query.pg rename to pgtap/contraction/contraction/edge_cases/deadend/undirected/inner_query.pg diff --git a/pgtap/contraction/deadend/undirected/more_cases.pg b/pgtap/contraction/contraction/edge_cases/deadend/undirected/more_cases.pg similarity index 100% rename from pgtap/contraction/deadend/undirected/more_cases.pg rename to pgtap/contraction/contraction/edge_cases/deadend/undirected/more_cases.pg diff --git a/pgtap/contraction/edge_cases/issue_1002.pg b/pgtap/contraction/contraction/edge_cases/issue_1002.pg similarity index 100% rename from pgtap/contraction/edge_cases/issue_1002.pg rename to pgtap/contraction/contraction/edge_cases/issue_1002.pg diff --git a/pgtap/contraction/linear/directed/compare_dijkstra.pg b/pgtap/contraction/contraction/edge_cases/linear/directed/compare_dijkstra.pg similarity index 100% rename from pgtap/contraction/linear/directed/compare_dijkstra.pg rename to pgtap/contraction/contraction/edge_cases/linear/directed/compare_dijkstra.pg diff --git a/pgtap/contraction/linear/directed/edge_cases.pg b/pgtap/contraction/contraction/edge_cases/linear/directed/edge_cases.pg similarity index 100% rename from pgtap/contraction/linear/directed/edge_cases.pg rename to pgtap/contraction/contraction/edge_cases/linear/directed/edge_cases.pg diff --git a/pgtap/contraction/linear/directed/inner_query.pg b/pgtap/contraction/contraction/edge_cases/linear/directed/inner_query.pg similarity index 100% rename from pgtap/contraction/linear/directed/inner_query.pg rename to pgtap/contraction/contraction/edge_cases/linear/directed/inner_query.pg diff --git a/pgtap/contraction/linear/directed/issue_1647.pg b/pgtap/contraction/contraction/edge_cases/linear/directed/issue_1647.pg similarity index 100% rename from pgtap/contraction/linear/directed/issue_1647.pg rename to pgtap/contraction/contraction/edge_cases/linear/directed/issue_1647.pg diff --git a/pgtap/contraction/linear/undirected/compare_dijkstra.pg b/pgtap/contraction/contraction/edge_cases/linear/undirected/compare_dijkstra.pg similarity index 100% rename from pgtap/contraction/linear/undirected/compare_dijkstra.pg rename to pgtap/contraction/contraction/edge_cases/linear/undirected/compare_dijkstra.pg diff --git a/pgtap/contraction/linear/undirected/edge_cases.pg b/pgtap/contraction/contraction/edge_cases/linear/undirected/edge_cases.pg similarity index 100% rename from pgtap/contraction/linear/undirected/edge_cases.pg rename to pgtap/contraction/contraction/edge_cases/linear/undirected/edge_cases.pg diff --git a/pgtap/contraction/linear/undirected/inner_query.pg b/pgtap/contraction/contraction/edge_cases/linear/undirected/inner_query.pg similarity index 100% rename from pgtap/contraction/linear/undirected/inner_query.pg rename to pgtap/contraction/contraction/edge_cases/linear/undirected/inner_query.pg diff --git a/pgtap/contraction/linear/undirected/issue_1647.pg b/pgtap/contraction/contraction/edge_cases/linear/undirected/issue_1647.pg similarity index 100% rename from pgtap/contraction/linear/undirected/issue_1647.pg rename to pgtap/contraction/contraction/edge_cases/linear/undirected/issue_1647.pg diff --git a/pgtap/contraction/edge_cases/remaining_tests.pg b/pgtap/contraction/contraction/edge_cases/remaining_tests.pg similarity index 100% rename from pgtap/contraction/edge_cases/remaining_tests.pg rename to pgtap/contraction/contraction/edge_cases/remaining_tests.pg diff --git a/pgtap/contraction/no_crash_test.pg b/pgtap/contraction/contraction/no_crash_test.pg similarity index 100% rename from pgtap/contraction/no_crash_test.pg rename to pgtap/contraction/contraction/no_crash_test.pg diff --git a/pgtap/contraction/types_check.pg b/pgtap/contraction/contraction/types_check.pg similarity index 100% rename from pgtap/contraction/types_check.pg rename to pgtap/contraction/contraction/types_check.pg From efdf56360a0530ec842f92df3da53a2d864bf702 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 20 Mar 2025 13:21:56 -0600 Subject: [PATCH 114/141] (contraction/pgtap) the tests that need to pass --- .../edge_cases/compare_dijkstra_combined.pg | 122 +++++++ .../edge_cases/compare_dijkstra_deadend.pg | 110 ++++++ .../edge_cases/compare_dijkstra_linear.pg | 125 +++++++ .../contraction/edge_cases/edge_cases.pg | 274 +++++++++++++++ .../edge_cases/edge_cases_deadend.pg | 320 ++++++++++++++++++ .../edge_cases/edge_cases_linear.pg | 305 +++++++++++++++++ .../edge_cases/linear/directed/edge_cases.pg | 10 +- .../contraction/edge_cases/remaining_tests.pg | 22 +- pgtap/contraction/contraction/inner_query.pg | 105 ++++++ .../contraction/contraction/no_crash_test.pg | 18 +- pgtap/contraction/contraction/types_check.pg | 55 ++- tools/testers/contraction_tapfuncs.sql | 137 ++++++++ 12 files changed, 1562 insertions(+), 41 deletions(-) create mode 100644 pgtap/contraction/contraction/edge_cases/compare_dijkstra_combined.pg create mode 100644 pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg create mode 100644 pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg create mode 100644 pgtap/contraction/contraction/edge_cases/edge_cases.pg create mode 100644 pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg create mode 100644 pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg create mode 100644 pgtap/contraction/contraction/inner_query.pg diff --git a/pgtap/contraction/contraction/edge_cases/compare_dijkstra_combined.pg b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_combined.pg new file mode 100644 index 0000000000..b90611db14 --- /dev/null +++ b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_combined.pg @@ -0,0 +1,122 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SELECT CASE WHEN min_version('3.8.0') THEN plan(654) ELSE plan(4) END; + +UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(reverse_cost) + 0.001 * id * id; + +ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; + +CREATE OR REPLACE FUNCTION check_cg(BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + IF $1 THEN + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES + ('v',7,ARRAY[1,3],-1,-1), + ('v',4,ARRAY[2],-1,-1), + ('v',14,ARRAY[13],-1,-1), + ('v',8,ARRAY[9],'-1','-1'), + ('v',6,ARRAY[5],'-1','-1') $$); + + RETURN QUERY + SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (16,17,'1.225'::TEXT,'1.225'::TEXT), + (10,15,'-0.991','1.009'), + (12,17,'1.169','-0.831'), + (15,16,'1.256','1.256'), + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (8, 12, '1.144', '-0.856'), + (7, 8, '1.100', '1.100')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + ELSE + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES + ('v',7,ARRAY[1,3],-1,-1), + ('v',4,ARRAY[2],-1,-1), + ('v',14,ARRAY[13],-1,-1), + ('e',-3,ARRAY[8,9],7,12), + ('e',-4,ARRAY[17],16,12), + ('e',-2,ARRAY[15],10,16), + ('e',-1,ARRAY[5,6],10,7)$$); + + RETURN QUERY + SELECT set_eq( + $$SELECT id FROM edges WHERE is_new$$, + $$SELECT unnest(ARRAY[19, 20, 21,22])$$ + ); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (10,16,'2.265','-1.000'), + (16,12,'2.394','-1.000'), + (10,7,'2.020','-1.000'), + (7,12,'2.244','-1.000')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + + END IF; + DEALLOCATE PREPARE c_expected_graph; +END +$BODY$ +LANGUAGE plpgsql; + + +CALL create_contracted_graph(false,'pgr_contraction', ARRAY[1,2]); +SELECT check_cg(false); +SELECT compare_dijkstra_contraction(false); + +CALL create_contracted_graph(true,'pgr_contraction', ARRAY[1,2]); +SELECT check_cg(true); +SELECT compare_dijkstra_contraction(true); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg new file mode 100644 index 0000000000..e96cb05ac2 --- /dev/null +++ b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg @@ -0,0 +1,110 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SELECT CASE WHEN min_version('3.8.0') THEN plan(654) ELSE plan(4) END; +UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(reverse_cost) + 0.001 * id * id; + +ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; + +CREATE OR REPLACE FUNCTION check_cg(BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + IF $1 THEN + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), + ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); + + RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (16,17,'1.225'::TEXT,'1.225'::TEXT), + (10,15,'-0.991','1.009'), + (12,17,'1.169','-0.831'), + (15,16,'1.256','1.256'), + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (8, 12, '1.144', '-0.856'), + (7, 8, '1.100', '1.100')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + ELSE + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), + ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); + + RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (8, 12, '1.144', '-0.856'), + (7, 8, '1.100', '1.100'), + (16,17,'1.225'::TEXT,'1.225'::TEXT), + (10,15,'-0.991','1.009'), + (12,17,'1.169','-0.831'), + (15,16,'1.256','1.256')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + + END IF; + DEALLOCATE PREPARE c_expected_graph; +END +$BODY$ +LANGUAGE plpgsql; + + +CALL create_contracted_graph(false,'pgr_contraction', ARRAY[1]); +SELECT check_cg(false); +SELECT compare_dijkstra_contraction(false); + +CALL create_contracted_graph(true,'pgr_contraction', ARRAY[1]); +SELECT check_cg(true); +SELECT compare_dijkstra_contraction(true); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg new file mode 100644 index 0000000000..87be224389 --- /dev/null +++ b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg @@ -0,0 +1,125 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SELECT CASE WHEN min_version('3.8.0') THEN plan(654) ELSE plan(4) END; +UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(reverse_cost) + 0.001 * id * id; + +ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; + +CREATE OR REPLACE FUNCTION check_cg(BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + IF $1 THEN + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('e',-1,ARRAY[3],7,1), ('e',-2,ARRAY[3],1,7)$$, 'The edges') ; + + RETURN QUERY + SELECT set_eq( + $$SELECT id FROM edges WHERE is_new$$, + $$SELECT unnest(ARRAY[19, 20])$$, 'The vertices' + ); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (16,17,'1.225'::TEXT,'1.225'::TEXT), + (10,15,'-0.991','1.009'), + (12,17,'1.169','-0.831'), + (15,16,'1.256','1.256'), + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (8, 12, '1.144', '-0.856'), + (7, 8, '1.100', '1.100'), + (1,7,'2.085','-1.000'), + (7,1,'2.085','-1.000'), + (5, 6, '1.001', '1.001'), + (8, 9, '1.196', '1.196'), + (2, 4, '1.289', '1.289'), + (13, 14, '1.324', '1.324')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + ELSE + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('e',-3,ARRAY[17],16,12), ('e',-2,ARRAY[3],7,1), ('e', -1, ARRAY[15], 10, 16)$$) ; + + RETURN QUERY + SELECT set_eq( + $$SELECT id FROM edges WHERE is_new$$, + $$SELECT unnest(ARRAY[19, 20, 21])$$ + ); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (8, 12, '1.144', '-0.856'), + (7, 8, '1.100', '1.100'), + (10,16,'2.265','-1.000'), + (7,1,'2.085','-1.000'), + (16,12,'2.394','-1.000'), + (5, 6, '1.001', '1.001'), + (8, 9, '1.196', '1.196'), + (2, 4, '1.289', '1.289'), + (13, 14, '1.324', '1.324')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + + END IF; + DEALLOCATE PREPARE c_expected_graph; +END +$BODY$ +LANGUAGE plpgsql; + + +CALL create_contracted_graph(false,'pgr_contraction', ARRAY[2]); +SELECT check_cg(false); +SELECT compare_dijkstra_contraction(false); + +CALL create_contracted_graph(true,'pgr_contraction', ARRAY[2]); +SELECT check_cg(true); +SELECT compare_dijkstra_contraction(true); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contraction/edge_cases/edge_cases.pg b/pgtap/contraction/contraction/edge_cases/edge_cases.pg new file mode 100644 index 0000000000..8d65388d20 --- /dev/null +++ b/pgtap/contraction/contraction/edge_cases/edge_cases.pg @@ -0,0 +1,274 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(128) ELSE plan(1) END; + +CREATE TABLE test_deadend ( + id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, + source BIGINT, + target BIGINT, + cost BIGINT default 1, + reverse_cost BIGINT default 1, + dead_case INTEGER +); + +/* 2 -- {3 -- 4} ; 3 -- 4 */ +INSERT INTO test_deadend(source, target, dead_case) +VALUES +(2, 3, 0), +(2, 4, 0), +(3, 4, 0); + +INSERT INTO test_deadend(source, target, cost, reverse_cost, dead_case) +VALUES +/* 2->{3->4 [dir=both]} [dir=both]; 1->2 */ +(1, 2, 1, -1, 1), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1 */ +(2, 1, 1, -1, 2), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1 [dir=both] */ +(1, 2, 1, 1, 3), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1,2->1 */ +(2, 1, 1, -1, 4), +(2, 1, 1, -1, 4), + +/* 2->{3->4 [dir=both]} [dir=both]; {2,3}->1 */ +(2, 1, 1, -1, 5), +(3, 1, 1, -1, 5), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1;2->1;3->1 */ +(2, 1, 1, -1, 6), +(2, 1, 1, -1, 6), +(3, 1, 1, -1, 6); + +CREATE OR REPLACE FUNCTION edge_cases_sampledata(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + -- SINGLE edge + + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{}',$$||directed||$$)$$, $$ VALUES ('v',6,ARRAY[5]::BIGINT[]) $$, '5 <=> 6: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{6}',$$||directed||$$) $$, $$ VALUES ('v',6,ARRAY[5]::BIGINT[]) $$, '5 <=> 6: Directed = ' || directed || ',forbid 5'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{5}',$$||directed||$$) $$, $$ VALUES ('v',5,ARRAY[6]::BIGINT[]) $$, '5 <=> 6: Directed = ' || directed || ',forbid 6'); + RETURN QUERY + SELECT is_empty($$"graph1" ('1','{5,6}',$$||directed||$$) $$, '5 <=> 6: Directed = ' || directed || ',forbid 5,6'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{}',$$||directed||$$)$$, $$ VALUES ('v',15,ARRAY[10]::BIGINT[]) $$, '10 -> 15: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{10}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[15]::BIGINT[]) $$, '10 -> 15: Directed = ' || directed || ',forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{15}',$$||directed||$$)$$, $$ VALUES ('v',15,ARRAY[10]::BIGINT[]) $$, '10 -> 15: Directed = ' || directed || ',forbid 15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('3','{10,15}',$$||directed||$$) $$, '5 <=> 6: Directed = ' || directed || ',forbid 10,15'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[8]::BIGINT[]) $$, '8 -> 12: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{8}',$$||directed||$$)$$, $$ VALUES ('v',8,ARRAY[12]::BIGINT[]) $$, '8 -> 12: Directed = ' || directed || ',forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{12}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[8]::BIGINT[]) $$, '8 -> 12: Directed = ' || directed || ',forbid 12'); + + -- TWO edges + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{}',$$||directed||$$)$$, $$ VALUES ('v',15,ARRAY[6,10]::BIGINT[]) $$, '15 -> 10 -> 6: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6}',$$||directed||$$)$$, $$ VALUES ('v',6,ARRAY[10,15]::BIGINT[]) $$, '15 -> 10 -> 6: Directed = ' || directed || ',forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6,15]::BIGINT[]) $$, '15 -> 10 -> 6: Directed = ' || directed || ',forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{15}',$$||directed||$$)$$, $$ VALUES ('v',15,ARRAY[6,10]::BIGINT[]) $$, '15 -> 10 -> 6: Directed = ' || directed || ',forbid 15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6,10}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[15]::BIGINT[]) $$, '15 -> 10 -> 6: Directed = ' || directed || ',forbid 6,10'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed = ' || directed || ',forbid 6,15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10,15}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]::BIGINT[]) $$, '15 -> 10 -> 6: Directed = ' || directed || ',forbid 10,15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,10,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed = ' || directed || ',forbid 6,10,15'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{}',$$||directed||$$)$$, $$ VALUES ('v',8,ARRAY[11,12]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8}',$$||directed||$$)$$, $$ VALUES ('v',8,ARRAY[11,12]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 8'); + + IF directed THEN + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11}',$$||directed||$$)$$, $$ VALUES ('v',8,ARRAY[12]::BIGINT[]), ('v',11,ARRAY[12]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,11}',$$||directed||$$)$$, $$ VALUES ('v',8,ARRAY[12]::BIGINT[]), ('v',11,ARRAY[12]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 8,11'); + ELSE + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11}',$$||directed||$$)$$, $$ VALUES ('v',11,ARRAY[8,12]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 11'); + RETURN QUERY + SELECT is_empty($$"graph1" ('11,12','{8,11}',$$||directed||$$)$$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 8,11'); + END IF; + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{12}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[8,11]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,12}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[11]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11,12}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[8]::BIGINT[]) $$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 11,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('11,12','{8,11,12}',$$||directed||$$)$$, '11 -> 12 <- 8: Directed = ' || directed || ',forbid 8,11,12'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]),('v',12,ARRAY[8]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6}',$$||directed||$$)$$, $$ VALUES ('v',6,ARRAY[10]::BIGINT[]), ('v',12,ARRAY[8]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]::BIGINT[]), ('v',8,ARRAY[12]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{10}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]::BIGINT[]), ('v',12,ARRAY[8]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{12}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]::BIGINT[]), ('v',12,ARRAY[8]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8}',$$||directed||$$)$$, $$ VALUES ('v',6,ARRAY[10]::BIGINT[]), ('v',8,ARRAY[12]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6,8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[8]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,12}',$$||directed||$$)$$, $$ VALUES ('v',6,ARRAY[10]::BIGINT[]), ('v',12,ARRAY[8]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]::BIGINT[]), ('v',8,ARRAY[12]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,12}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,10}',$$||directed||$$)$$, $$ VALUES ('v',8,ARRAY[12]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6,8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,12}',$$||directed||$$)$$, $$ VALUES ('v',6,ARRAY[10]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6,8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10,12}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[8]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6,10,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10,12}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[6]::BIGINT[]) $$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 8,10,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,12','{6,8,10,12}',$$||directed||$$)$$, '10 -> 6, 8 -> 12: Directed = ' || directed || ',forbid 6,8,10,12'); + + + -- THREE edges + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{}',$$||directed||$$)$$, $$ VALUES ('v',17,ARRAY[10,11,12]) $$, '10 -> 11 -> 12 -> 17: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{10}',$$||directed||$$)$$, $$ VALUES ('v',10,ARRAY[11,12,17]) $$, '10 -> 11 -> 12 -> 17: Directed = ' || directed || ',forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{11}',$$||directed||$$)$$, $$ VALUES ('v',11,ARRAY[10,12,17]) $$, '10 -> 11 -> 12 -> 17: Directed = ' || directed || ',forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{12}',$$||directed||$$)$$, $$ VALUES ('v',12,ARRAY[10,11,17]) $$, '10 -> 11 -> 12 -> 17: Directed = ' || directed || ',forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{17}',$$||directed||$$)$$, $$ VALUES ('v',17,ARRAY[10,11,12]) $$, '10 -> 11 -> 12 -> 17: Directed = ' || directed || ',forbid 17'); + RETURN QUERY + SELECT is_empty($$"graph1" ('5,11,13','{10,17}',$$||directed||$$)$$, '10 -> 11 -> 12 -> 17: Directed = ' || directed || ', forbid 10,17'); + + -- The graph1 + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{}',$$||directed||$$)$$, + $$ VALUES ('v',8,ARRAY[9]),('v',7,ARRAY[1,3]),('v',6,ARRAY[5]) $$, 'the graph1: Directed = ' || directed || ', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{3}',$$||directed||$$)$$, + $$ VALUES ('v',8,ARRAY[9]),('v',3,ARRAY[1]),('v',6,ARRAY[5]) $$, 'the graph1: Directed = ' || directed || ', forbid 3'); + +END; +$BODY$ +LANGUAGE plpgsql; + + +CREATE OR REPLACE FUNCTION edge_cases(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + +RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('1',%1$s)$$,directed), 'not empty graph: 1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'not empty graph: 0,1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'not empty graph: 0,2,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,2',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,2,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,3,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed) ; + +RETURN QUERY +SELECT CASE WHEN directed::BOOLEAN THEN + collect_tap( + isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed), + isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed), + set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,6,'||directed)) +ELSE + collect_tap( + is_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + is_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed)) +END; + +END; +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION edge_cases() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY + SELECT skip(1, 'pgr_contraction new signature on 3.8.0'); + RETURN; + END IF; + + PREPARE graph1(text,text,text) AS + SELECT type, id, contracted_vertices FROM pgr_contraction( + format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER BY id$$, $1), + $3::boolean,ARRAY[1],1,$2::BIGINT[]); + + prepare graph(text, text) AS + SELECT * FROM pgr_contraction( + format($$SELECT * FROM test_deadend WHERE dead_case IN (%1$s) ORDER BY id$$, $1), + $2::boolean,ARRAY[1]); + + RETURN QUERY SELECT edge_cases('true'); + RETURN QUERY SELECT edge_cases('false'); + RETURN QUERY SELECT edge_cases_sampledata('true'); + RETURN QUERY SELECT edge_cases_sampledata('false'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT edge_cases(); + +SELECT finish(); +ROLLBACK; + diff --git a/pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg b/pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg new file mode 100644 index 0000000000..c26ac6ddc6 --- /dev/null +++ b/pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg @@ -0,0 +1,320 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(128) ELSE plan(1) END; + +CREATE TABLE graphs ( + id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, + source BIGINT, + target BIGINT, + cost BIGINT default 1, + reverse_cost BIGINT default 1, + dead_case INTEGER +); + +/* 2 -- {3 -- 4} ; 3 -- 4 */ +INSERT INTO graphs(source, target, dead_case) +VALUES +(2, 3, 0), +(2, 4, 0), +(3, 4, 0); + +INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) +VALUES +/* 2->{3->4 [dir=both]} [dir=both]; 1->2 */ +(1, 2, 1, -1, 1), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1 */ +(2, 1, 1, -1, 2), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1 [dir=both] */ +(1, 2, 1, 1, 3), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1,2->1 */ +(2, 1, 1, -1, 4), +(2, 1, 1, -1, 4), + +/* 2->{3->4 [dir=both]} [dir=both]; {2,3}->1 */ +(2, 1, 1, -1, 5), +(3, 1, 1, -1, 5), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1;2->1;3->1 */ +(2, 1, 1, -1, 6), +(2, 1, 1, -1, 6), +(3, 1, 1, -1, 6); + +CREATE TABLE results ( + type text, + id INTEGER, + contracted_vertices BIGINT[], + result_case INTEGER +); + +INSERT INTO results(type, id, contracted_vertices, result_case) +VALUES +('v',6,ARRAY[5]::BIGINT[], 1), +('v',5,ARRAY[6], 2), +('v',15,ARRAY[10], 3), +('v',10,ARRAY[15], 4), +('v',12,ARRAY[8], 5), +('v',8,ARRAY[12], 6), +('v',15,ARRAY[6,10], 7), +('v',6,ARRAY[10,15], 8), +('v',10,ARRAY[6,15], 9), +('v',10,ARRAY[15], 10), +('v',10,ARRAY[6], 11), +('v',8,ARRAY[11,12], 12), +('v',8,ARRAY[12], 13), +('v',11,ARRAY[12], 13), +('v',11,ARRAY[8,12], 113), +('v',12,ARRAY[8,11], 14), +('v',12,ARRAY[11], 15), + +('v',10,ARRAY[6], 16), +('v',12,ARRAY[8], 16), +('v',6,ARRAY[10], 17), +('v',12,ARRAY[8], 17), +('v',10,ARRAY[6], 18), +('v',8,ARRAY[12], 18), +('v',6,ARRAY[10], 19), +('v',8,ARRAY[12], 19), +('v',6,ARRAY[10], 20), + +('v',17,ARRAY[10,11,12], 21), +('v',10,ARRAY[11,12,17], 22), +('v',11,ARRAY[10,12,17], 23), +('v',12,ARRAY[10,11,17], 24), + +('v',8,ARRAY[9], 25), +('v',7,ARRAY[1,3], 25), +('v',6,ARRAY[5], 25), + +('v',8,ARRAY[9], 26), +('v',3,ARRAY[1], 26), +('v',6,ARRAY[5], 26) + +; + +prepare get_solution(integer, integer, text) AS +WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) +SELECT type,id,contracted_vertices FROM results, a WHERE result_case = r; + +CREATE OR REPLACE FUNCTION edge_cases_sampledata(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + -- SINGLE edge + + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{6}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 5'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{5}',$$||directed||$$)$$, $$"get_solution" (2,2,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT is_empty($$"graph1" ('1','{5,6}',$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 5,6'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{10}',$$||directed||$$)$$, $$"get_solution" (4,4,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{15}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('3','{10,15}',$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 10,15'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{8}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 12'); + + -- TWO edges + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6}',$$||directed||$$)$$, $$"get_solution" (8,8,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10}',$$||directed||$$)$$, $$"get_solution" (9,9,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{15}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6,10}',$$||directed||$$)$$, $$"get_solution" (10,10,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10,15}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10,15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,10,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10,15'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11}',$$||directed||$$)$$, $$"get_solution" (13,113,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{12}',$$||directed||$$)$$, $$"get_solution" (14,14,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,11}',$$||directed||$$)$$, $$"get_solution" (13,213,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (15,15,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('11,12','{8,11,12}',$$||directed||$$)$$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11,12'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{10}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{12}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8}',$$||directed||$$)$$, $$"get_solution" (19,19,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,12}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,10}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,12}',$$||directed||$$)$$, $$"get_solution" (20,20,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,12','{6,8,10,12}',$$||directed||$$)$$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10,12'); + + + -- THREE edges + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{10}',$$||directed||$$)$$, $$"get_solution" (22,22,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{11}',$$||directed||$$)$$, $$"get_solution" (23,23,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{12}',$$||directed||$$)$$, $$"get_solution" (24,24,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{17}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 17'); + RETURN QUERY + SELECT is_empty($$"graph1" ('5,11,13','{10,17}',$$||directed||$$)$$, '10 -> 11 -> 12 -> 17: Directed Directed=' || directed ||', forbid 10,17'); + + -- The graph1 + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{}',$$||directed||$$)$$, $$"get_solution" (25,25,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{3}',$$||directed||$$)$$, $$"get_solution" (26,26,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', forbid 3'); + +END; +$BODY$ +LANGUAGE plpgsql; + + +CREATE OR REPLACE FUNCTION edge_cases(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + +RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('1',%1$s)$$,directed), 'not empty graph: 1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'not empty graph: 0,1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'not empty graph: 0,2,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,2',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,2,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,3,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed) ; + +RETURN QUERY +SELECT CASE WHEN directed::BOOLEAN THEN + collect_tap( + isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed), + isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed), + set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,6,'||directed)) +ELSE + collect_tap( + is_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + is_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed)) +END; + +END; +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION edge_cases() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY + SELECT skip(1, 'pgr_contraction new signature on 3.8.0'); + RETURN; + END IF; + + PREPARE graph1(text,text,text) AS + SELECT type, id, contracted_vertices FROM pgr_contraction( + format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER BY id$$, $1), + $3::boolean, ARRAY[1],1,$2::BIGINT[]); + + prepare graph(text, text) AS + SELECT * FROM pgr_contraction( + format($$SELECT * FROM graphs WHERE dead_case IN (%1$s) ORDER BY id$$, $1), + $2::boolean,ARRAY[1]); + + RETURN QUERY SELECT edge_cases('true'); + RETURN QUERY SELECT edge_cases('false'); + RETURN QUERY SELECT edge_cases_sampledata('true'); + RETURN QUERY SELECT edge_cases_sampledata('false'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT edge_cases(); + +SELECT finish(); +ROLLBACK; + diff --git a/pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg b/pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg new file mode 100644 index 0000000000..800afda4c4 --- /dev/null +++ b/pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg @@ -0,0 +1,305 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(112) ELSE plan(1) END; + +CREATE TABLE graphs ( + id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, + source BIGINT, + target BIGINT, + cost BIGINT default 1, + reverse_cost BIGINT default 1, + dead_case INTEGER +); + +/* 11 -> {12 -> {13, 14} [dir=both]} [dir=both]; 13 ->14 [dir=both] */ +INSERT INTO graphs(source, target, dead_case) +VALUES +(11, 12, 0), +(11, 13, 0), +(11, 14, 0), +(12, 13, 0), +(12, 14, 0), +(13, 14, 0); + +INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) +VALUES +/* 1->11 */ +(1, 11, 1, -1, 1), + +/* 11->1 */ +(11, 1, 1, -1, 2), + +/* 1 -> 2 -> 11 */ +(1, 2, 1, -1, 3), +(2, 11, 1, -1, 3), + +/* 11 -> 2 -> 1 */ +(11, 2, 1, -1, 4), +(2, 1, 1, -1, 4), + +/* 11 -> 2 [dir=both]; 2 -> 1 [dir=both] */ +(11, 2, 1, 1, 5), +(2, 1, 1, 1, 5), + +/* 11 -> {1,3} [dir=both]; 1->3 [dir=both]*/ +(11, 1, 1, 1, 6), +(1, 3, 1, 1, 6), +(3, 11, 1, 1, 6), + +/* 11 -> {1,3} [dir=both]; 2 -> {1,3} [dir=both]; 2->3 [dir=both]*/ +(11, 1, 1, 1, 7), +(1, 2, 1, 1, 7), +(2, 3, 1, 1, 7), +(3, 11, 1, -1, 7); + +CREATE TABLE results ( + type text, + contracted_vertices BIGINT[], + source BIGINT, + target BIGINT, + cost FLOAT, + result_case INTEGER +); + +INSERT INTO results(type, contracted_vertices, source, target, cost, result_case) +VALUES +('e',ARRAY[3]::BIGINT[],1,7,2, 1), +('e',ARRAY[3],7,1,2, 1), +('e',ARRAY[3],1,7,2, 2), +('e',ARRAY[3],7,1,2, 2), +('e',ARRAY[3,7],1,11,3, 3), +('e',ARRAY[3,7],11,1,3, 3), +('e',ARRAY[7],3,11,2, 4), +('e',ARRAY[7],11,3,2, 4), +('e',ARRAY[16],15,11,2, 5), +('e',ARRAY[16],11,15,2, 5), +('e',ARRAY[10],15,11,2, 5), +('e',ARRAY[16],15,11,2, 6), +('e',ARRAY[16],11,15,2, 6), +('e',ARRAY[10],15,11,2, 7), +('e',ARRAY[7],6,11,2, 8), +('e',ARRAY[7],11,6,2, 8), +('e',ARRAY[3],1,7,2, 9), +('e',ARRAY[3],7,1,2, 9), +('e',ARRAY[3],1,7,2, 11), +('e',ARRAY[3],7,1,2, 12), +('e',ARRAY[3,7],1,11,3, 13), +('e',ARRAY[7],3,11,2, 14), +('e',ARRAY[10,15],11,16,3, 15), +('e',ARRAY[10,11],15,16,3, 25), +('e',ARRAY[15,16],10,11,3, 16), +('e',ARRAY[10,15],11,16,3, 17), +('e',ARRAY[6,10],7,11,3, 18), +('e',ARRAY[10,11],6,7,3, 28), +('e',ARRAY[6,7],10,11,3, 38), +('e',ARRAY[3],7,1,2, 19), +('e',ARRAY[15],10,16,2, 19), +('e',ARRAY[17],16,12,2, 19), +('e',ARRAY[15],10,16,2, 20), +('e',ARRAY[17],16,12,2, 20) +; + +prepare get_solution(integer, integer, text) AS +WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) +SELECT type,contracted_vertices,source,target,cost FROM results, a WHERE result_case = r; + +CREATE OR REPLACE FUNCTION edge_cases_sampledata(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + -- SINGLE edge + + RETURN QUERY SELECT is_empty($$"graph1" ('6','{}',$$||directed||$$)$$, '1<=>3: Directed=' || directed ||' no forbidden vertices'); + + -- TWO edges + + RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7','{}',$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7','{}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$ , '1<=>3<=>7: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7','{1}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 1'); + RETURN QUERY SELECT is_empty($$"graph1" ('6,7','{3}',$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 3'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7','{7}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 7'); + + -- T shape + + RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7,4,10','{}',$$||directed||$$)$$, '1<=>3<=>7<->6,8: Directed=' || directed ||' no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,4,10','{}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,4,10','{1}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 1'); + RETURN QUERY + SELECT is_empty($$"graph1" ('6,7,4,10','{3}',$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 3'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,4,10','{7}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 7'); + + + -- THREE edges + + RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7,8','{}',$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{1}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 1'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{11}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{3}',$$||directed||$$)$$, $$"get_solution" (4,14,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 3'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{7}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 7'); + + -- FOUR edges + -- circling square + RETURN QUERY SELECT isnt_empty($$"graph1" ('3,5,9,16','{}',$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{}',$$||directed||$$)$$, $$"get_solution" (5,15,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{11}',$$||directed||$$)$$, $$"get_solution" (5,15,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{15}',$$||directed||$$)$$, $$"get_solution" (5,25,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{10}',$$||directed||$$)$$, $$"get_solution" (6,16,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{16}',$$||directed||$$)$$, $$"get_solution" (7,17,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 16'); + + -- non circling square + RETURN QUERY SELECT isnt_empty($$"graph1" ('2,4,5,8','{}',$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' no forbidden'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' no forbidden'); + + if directed THEN + RETURN QUERY + SELECT is_empty($$"graph1" ('2,4,5,8','{7}',$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 7'); + ELSE + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{7}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 7'); + END IF; + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{11}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{6}',$$||directed||$$)$$, $$"get_solution" (8,28,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{10}',$$||directed||$$)$$, $$"get_solution" (8,38,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 10'); + + -- The graph1 + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{}',$$||directed||$$)$$, $$"get_solution" (9,19,$$||directed||$$)$$, 'the graph: Directed=' || directed ||' no forbidden'); + IF directed THEN + RETURN QUERY + SELECT is_empty($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{3}',$$||directed||$$)$$, 'the graph1: Directed=' || directed ||', forbid 3'); + ELSE + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{3}',$$||directed||$$)$$, $$"get_solution" (1,20,$$||directed||$$)$$, 'the graph1: Directed=' || directed ||', forbid 3'); + END IF; + + +END; +$BODY$ +LANGUAGE plpgsql; + + +CREATE OR REPLACE FUNCTION edge_cases(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); + RETURN QUERY SELECT is_empty(format($$"graph" ('1',%1$s)$$,directed),'empty graph: 1,'||directed); + RETURN QUERY SELECT is_empty(format($$"graph" ('2',%1$s)$$,directed),'empty graph: 2,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('3',%1$s)$$,directed),'not empty graph: 3,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('4',%1$s)$$,directed),'not empty graph: 4,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('5',%1$s)$$,directed),'not empty graph: 5,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('6',%1$s)$$,directed),'not empty graph: 6,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('7',%1$s)$$,directed),'not empty graph: 7,'||directed); + + RETURN QUERY SELECT is_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'empty graph: 0,1,'||directed); + RETURN QUERY SELECT is_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'empty graph: 0,2,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'not empty graph: 0,5,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'not empty graph: 0,6,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,7',%1$s)$$,directed), 'not empty graph: 0,7,'||directed); + + RETURN QUERY SELECT set_eq(format($$"graph" ('3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 3,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 4,'||directed) ; + + if directed THEN + RETURN QUERY SELECT set_eq(format($$"graph" ('5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2),('e',-2,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[11]::BIGINT[],1,3,2), ('e',-2,ARRAY[11]::BIGINT[],3,1,2) $$, 'expected graph: 6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3), ('e',-2,ARRAY[1,2]::BIGINT[],3,11,3) $$, 'expected graph: 7,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 0,3,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,4,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2),('e',-2,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 0,5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1]::BIGINT[],11,3,2),('e',-2,ARRAY[1]::BIGINT[],3,11,2) $$, 'expected graph: 0,6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3),('e',-2,ARRAY[1,2]::BIGINT[],3,11,3) $$, 'expected graph: 0,7,'||directed) ; + ELSE + RETURN QUERY SELECT set_eq(format($$"graph" ('5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[11]::BIGINT[],1,3,2) $$, 'expected graph: 6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,11]::BIGINT[],2,3,3) $$, 'expected graph: 7,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,3,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,4,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1]::BIGINT[],11,3,2) $$, 'expected graph: 0,6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3) $$, 'expected graph: 0,7,'||directed) ; + END IF; + +END; +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION edge_cases() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY + SELECT skip(1, 'pgr_contraction new signature on 3.8.0'); + RETURN; + END IF; + + PREPARE graph1(text,text,text) AS + SELECT type, contracted_vertices,source,target,cost FROM pgr_contraction( + format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER BY id$$, $1), + $3::boolean,ARRAY[2],1,$2::INTEGER[]); + + prepare graph(text, text) AS + SELECT * FROM pgr_contraction(format($$SELECT * FROM graphs WHERE dead_case IN (%1$s)$$, $1), $2::boolean,ARRAY[2]); + + RETURN QUERY SELECT edge_cases('true'); + RETURN QUERY SELECT edge_cases('false'); + RETURN QUERY SELECT edge_cases_sampledata('true'); + RETURN QUERY SELECT edge_cases_sampledata('false'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT edge_cases(); + +SELECT finish(); +ROLLBACK; + diff --git a/pgtap/contraction/contraction/edge_cases/linear/directed/edge_cases.pg b/pgtap/contraction/contraction/edge_cases/linear/directed/edge_cases.pg index eebae547f5..31c88f95ef 100644 --- a/pgtap/contraction/contraction/edge_cases/linear/directed/edge_cases.pg +++ b/pgtap/contraction/contraction/edge_cases/linear/directed/edge_cases.pg @@ -74,17 +74,17 @@ SELECT is_empty('v3e2q20', 'graph_e_1_2 QUERY 2: Directed graph with two edges a -- GRAPH 5 - 6 - 7 PREPARE graph_e_1_4_q1 AS -SELECT type, id, contracted_vertices, source, target, cost +SELECT type, contracted_vertices, source, target, cost FROM pgr_contraction( 'graph_e_1_4', ARRAY[2]::INTEGER[], 5, ARRAY[]::INTEGER[], true); PREPARE graph_e_1_4_sol1 AS -SELECT type, id, contracted_vertices, source, target, cost +SELECT type, contracted_vertices, source, target, cost FROM (VALUES - ('e', -1, ARRAY[6]::BIGINT[], 7, 5, 2), - ('e', -2, ARRAY[6]::BIGINT[], 5, 7, 2)) -AS t(type, id, contracted_vertices, source, target, cost); + ('e', ARRAY[6]::BIGINT[], 7, 5, 2), + ('e', ARRAY[6]::BIGINT[], 5, 7, 2)) +AS t(type, contracted_vertices, source, target, cost); SELECT set_eq('graph_e_1_4_q1', 'graph_e_1_4_sol1', 'graph_e_1_4 QUERY 1: Directed graph with two edges and no forbidden vertices'); diff --git a/pgtap/contraction/contraction/edge_cases/remaining_tests.pg b/pgtap/contraction/contraction/edge_cases/remaining_tests.pg index 30740360e4..e2bb4aded1 100644 --- a/pgtap/contraction/contraction/edge_cases/remaining_tests.pg +++ b/pgtap/contraction/contraction/edge_cases/remaining_tests.pg @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT plan(49); +SELECT plan(48); SET client_min_messages TO WARNING; SELECT has_function('pgr_contraction'); @@ -34,26 +34,6 @@ SELECT function_returns('pgr_contraction', ARRAY[ ], 'setof record'); - -PREPARE parameters AS -SELECT array[ -'', -'', -'max_cycles', -'forbidden_vertices', -'directed', -'type', -'id', -'contracted_vertices', -'source', -'target', -'cost']; - -SELECT set_eq( - $$SELECT proargnames FROM pg_proc WHERE proname = 'pgr_contraction'$$, - 'parameters'); - - CREATE OR REPLACE FUNCTION test_anyInteger(fn TEXT, params TEXT[], parameter TEXT) RETURNS SETOF TEXT AS $BODY$ diff --git a/pgtap/contraction/contraction/inner_query.pg b/pgtap/contraction/contraction/inner_query.pg new file mode 100644 index 0000000000..ae7eb0b224 --- /dev/null +++ b/pgtap/contraction/contraction/inner_query.pg @@ -0,0 +1,105 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(387) ELSE plan(1) END; + +CREATE OR REPLACE FUNCTION inner_query() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'pgr_contraction new signature on 3.8.0'); + RETURN; + END IF; + + RETURN QUERY SELECT style_dijkstra('pgr_contraction(', ')'); + RETURN QUERY SELECT style_dijkstra('pgr_contraction(', ', true)'); + RETURN QUERY SELECT style_dijkstra('pgr_contraction(', ', false)'); + RETURN QUERY SELECT style_dijkstra('pgr_contraction(', ', true, ARRAY[1])'); + RETURN QUERY SELECT style_dijkstra('pgr_contraction(', ', false, ARRAY[1])'); + RETURN QUERY SELECT style_dijkstra('pgr_contraction(', ', true, ARRAY[2])'); + RETURN QUERY SELECT style_dijkstra('pgr_contraction(', ', false, ARRAY[2])'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[1]::bigint[], 1, ARRAY[ 2 ]::bigint[])$$, + '42883', 'function pgr_contraction(unknown, boolean, bigint[], integer, bigint[]) does not exist', + 'Throws because methods is bigint[]'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[]::INTEGER[], 1, ARRAY[ 2 ]::integer[])$$, + 'XX000', 'One dimension expected', 'Throws because methods is empty ARRAY[]'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[], 1, ARRAY[ 2 ]::integer[])$$, + '42P18', 'cannot determine type of empty array', 'Throws because methods is empty ARRAY[]'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[1], 1, ARRAY[ [2,3,4,5], [4,5,6,7] ]::integer[][])$$, + 'XX000', 'One dimension expected', 'Throws because forbidden is 2 dimensions'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[1], 1, ARRAY[ 2 ])$$, + 'Lives when forbidden is not described'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[1], 1, ARRAY[ 2 ]::integer[])$$, + 'Lives when forbidden is integer[]'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[1], 1, ARRAY[ 2 ]::bigint[])$$, + 'Lives when forbidden is bigint[]'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[1], 1, ARRAY[ 2 ]::smallint[])$$, + 'Lives when forbidden is smallint[]'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, + ARRAY[1], 1, ARRAY[ 2 ]::float8[])$$, + '42883', 'function pgr_contraction(unknown, boolean, integer[], integer, double precision[]) does not exist', + 'Throws because forbidden is float8[]'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT inner_query(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contraction/no_crash_test.pg b/pgtap/contraction/contraction/no_crash_test.pg index 0a6a663be1..91133d6c86 100644 --- a/pgtap/contraction/contraction/no_crash_test.pg +++ b/pgtap/contraction/contraction/no_crash_test.pg @@ -1,4 +1,3 @@ - /*PGR-GNU***************************************************************** Copyright (c) 2018 pgRouting developers @@ -20,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT plan(7); +SELECT CASE WHEN min_version('3.8.0') THEN plan(11) ELSE plan(8) END; PREPARE edges AS SELECT id, source, target, cost, reverse_cost FROM edges; @@ -46,6 +45,21 @@ BEGIN RETURN query SELECT * FROM no_crash_test('pgr_contraction', params, subs); + IF NOT min_version('3.8.0') THEN + RETURN QUERY + SELECT skip(1, 'pgr_contraction new signature on 3.8.0'); + RETURN; + END IF; + + params = ARRAY[ + '$$SELECT id, source, target, cost, reverse_cost FROM edges$$' + ]::TEXT[]; + subs = ARRAY[ + 'NULL' + ]::TEXT[]; + + RETURN query SELECT * FROM no_crash_test('pgr_contraction', params, subs); + END $BODY$ LANGUAGE plpgsql VOLATILE; diff --git a/pgtap/contraction/contraction/types_check.pg b/pgtap/contraction/contraction/types_check.pg index 8dd9524a77..f5650b3004 100644 --- a/pgtap/contraction/contraction/types_check.pg +++ b/pgtap/contraction/contraction/types_check.pg @@ -1,4 +1,3 @@ - /*PGR-GNU***************************************************************** Copyright (c) 2018 pgRouting developers @@ -17,23 +16,53 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ + BEGIN; -SELECT plan(5); +SELECT CASE WHEN min_version('3.8.0') THEN plan(7) ELSE plan(5) END; + +CREATE OR REPLACE FUNCTION types_check() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF min_version('3.8.0') THEN + RETURN QUERY SELECT has_function('pgr_contraction', ARRAY['text','boolean','integer[]','integer','bigint[]']); + RETURN QUERY SELECT function_returns('pgr_contraction', ARRAY['text','boolean','integer[]','integer','bigint[]'], 'setof record'); + + RETURN QUERY SELECT set_eq( + $$SELECT proargnames FROM pg_proc WHERE proname = 'pgr_contraction'$$, + $$VALUES + ('{"","",max_cycles,forbidden_vertices,directed,type,id,contracted_vertices,source,target,cost}'::TEXT[]), + ('{"",directed,methods,cycles,forbidden,type,id,contracted_vertices,source,target,cost}'::TEXT[]) + $$,'pgr_contraction: Column names'); + + RETURN QUERY SELECT function_types('pgr_contraction', + $$VALUES ('{text,bool,_int4,int4,_int8,text,int8,_int8,int8,int8,float8}'::TEXT[]), + ('{text,_int8,int4,_int8,bool,text,int8,_int8,int8,int8,float8}'::TEXT[]) $$); + + ELSE + + RETURN QUERY SELECT set_eq( + $$SELECT proargnames FROM pg_proc WHERE proname = 'pgr_contraction'$$, + $$VALUES + ('{"", "", "max_cycles", "forbidden_vertices", "directed", "type", "id", "contracted_vertices", "source", "target", "cost"}'::TEXT[]) + $$); + + RETURN QUERY SELECT set_eq( + $$SELECT proallargtypes from pg_proc where proname = 'pgr_contraction'$$, + $$SELECT '{25,1016,23,1016,16,25,20,1016,20,20,701}'::OID[] $$ + ); + +END IF; + +END; +$BODY$ +LANGUAGE plpgsql; SELECT has_function('pgr_contraction'); SELECT has_function('pgr_contraction', ARRAY['text','bigint[]','integer','bigint[]','boolean']); SELECT function_returns('pgr_contraction', ARRAY['text', 'bigint[]','integer','bigint[]','boolean'], 'setof record'); - -SELECT set_eq( - $$SELECT proargnames FROM pg_proc WHERE proname = 'pgr_contraction'$$, - $$VALUES - ('{"", "", "max_cycles", "forbidden_vertices", "directed", "type", "id", "contracted_vertices", "source", "target", "cost"}'::TEXT[]) - $$); - -SELECT set_eq( - $$SELECT proallargtypes from pg_proc where proname = 'pgr_contraction'$$, - $$SELECT '{25,1016,23,1016,16,25,20,1016,20,20,701}'::OID[] $$ -); +SELECT types_check(); SELECT finish(); ROLLBACK; diff --git a/tools/testers/contraction_tapfuncs.sql b/tools/testers/contraction_tapfuncs.sql index 59194493b4..d565ee7f84 100644 --- a/tools/testers/contraction_tapfuncs.sql +++ b/tools/testers/contraction_tapfuncs.sql @@ -16,6 +16,143 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ + +CREATE OR REPLACE PROCEDURE create_contracted_graph(directed BOOLEAN, fn TEXT, methods INTEGER[] DEFAULT NULL::INTEGER[]) AS +$BODY$ + +BEGIN + + IF NOT min_version('3.8.0') THEN RETURN; END IF; + + DELETE FROM edges WHERE id >= 19; + ALTER SEQUENCE edges_id_seq RESTART WITH 19; + UPDATE edges SET (is_new, contracted_vertices)=(false,NULL); + UPDATE vertices SET (is_contracted, contracted_vertices)=(false,NULL); + + -- add extra columns to the edges and vertices table + + DROP TABLE IF EXISTS contraction_info; + IF fn = 'pgr_contraction' THEN + EXECUTE format($q$ + CREATE TABLE contraction_info AS + SELECT * FROM %s( + 'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id', + %s, '%s'::INTEGER[]); + $q$, fn, directed::TEXT, methods); + ELSE + EXECUTE format($q$ + CREATE TABLE contraction_info AS + SELECT * FROM %s( + 'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id', + '%s'); + $q$, fn, directed::TEXT); + END IF; + + -- add the new edges + INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) + SELECT source, target, cost, -1, contracted_vertices, true + FROM contraction_info + WHERE type = 'e'; + + -- Indicate vertices that were contracted + UPDATE vertices + SET is_contracted = true + WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_info); + + -- add the contracted vertices on the vertices table + UPDATE vertices + SET contracted_vertices = contraction_info.contracted_vertices + FROM contraction_info + WHERE type = 'v' AND vertices.id = contraction_info.id; + + DROP VIEW IF EXISTS contracted_graph; + CREATE VIEW contracted_graph AS + SELECT id,source, target, cost, reverse_cost, contracted_vertices FROM edges + WHERE + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.source) + AND + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.target); + +END +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION path_cost_contraction(BIGINT, BIGINT, BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +DECLARE q TEXT; +BEGIN + + RETURN QUERY + SELECT round(agg_cost::numeric, 3)::TEXT FROM pgr_dijkstra( + 'WITH cul_de_sac AS ( + SELECT contracted_vertices || id as v + FROM vertices WHERE ' || $1 ||' = ANY(contracted_vertices) OR ' || $2 ||' = ANY(contracted_vertices)), + linears_to_expand AS ( + SELECT id, contracted_vertices + FROM edges WHERE is_new AND (' || $1 ||' = ANY(contracted_vertices) OR '|| $2 ||' = ANY(contracted_vertices)) + ), + verts AS (SELECT * FROM cul_de_sac UNION SELECT contracted_vertices FROM linears_to_expand) + SELECT id, source, target, cost, reverse_cost FROM edges, verts WHERE source = ANY(v) OR target = ANY(v) + + UNION + + SELECT id, source, target, cost, reverse_cost FROM contracted_graph LEFT JOIN linears_to_expand c USING (id) WHERE c.id IS NULL', + $1, $2, $3) WHERE edge = -1; + +END; +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION compare_dijkstra_contraction( + BIGINT, BIGINT, BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +DECLARE + q TEXT; +BEGIN + + RETURN QUERY + SELECT set_eq( + $$SELECT * FROM path_cost_contraction($$|| $1 || $$,$$ || $2 || $$,$$ || $3::BOOLEAN || $$)$$, + $$SELECT round(agg_cost::numeric, 3)::TEXT + FROM pgr_dijkstra( + 'SELECT id, source, target, cost, reverse_cost FROM edges WHERE id < 19', + $$|| $1 || $$,$$ || $2 || $$,$$ || $3::BOOLEAN || $$) WHERE edge = -1 + $$, + 'From ' || $1 || ' to ' || $2 || 'Directed = ' || $3::BOOLEAN); + +END +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION compare_dijkstra_contraction(BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +DECLARE + i INTEGER; + j INTEGER; + +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY + SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + FOR i IN 1..18 LOOP + FOR j IN 1..18 LOOP + RETURN QUERY + SELECT compare_dijkstra_contraction(i, j, $1); + END LOOP; + END LOOP; + +END +$BODY$ +LANGUAGE plpgsql; + + CREATE OR REPLACE FUNCTION test_ids_size(pow INTEGER, directed BOOLEAN) RETURNS SETOF TEXT AS $BODY$ From 087f65c15b6519da00a4a473cc60d14e21b048e5 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 20 Mar 2025 13:23:50 -0600 Subject: [PATCH 115/141] (contraction/docqueries) Ajusting the documentation queries --- docqueries/contraction/CMakeLists.txt | 1 - docqueries/contraction/contraction.pg | 97 +++++++++++- docqueries/contraction/contraction.result | 176 +++++++++++++++++++++- docqueries/contraction/test.conf | 1 - 4 files changed, 265 insertions(+), 10 deletions(-) diff --git a/docqueries/contraction/CMakeLists.txt b/docqueries/contraction/CMakeLists.txt index d640c0ea80..9fe0f6d097 100644 --- a/docqueries/contraction/CMakeLists.txt +++ b/docqueries/contraction/CMakeLists.txt @@ -1,6 +1,5 @@ # Do not use extensions SET(LOCAL_FILES - contraction-family contraction ) diff --git a/docqueries/contraction/contraction.pg b/docqueries/contraction/contraction.pg index bbda07d9c6..d817d6a166 100644 --- a/docqueries/contraction/contraction.pg +++ b/docqueries/contraction/contraction.pg @@ -2,14 +2,103 @@ -- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ /* -- q1 */ SELECT * FROM pgr_contraction( - 'SELECT id, source, target, cost, reverse_cost FROM edges', - ARRAY[1, 2], directed => false); + 'SELECT id, source, target, cost, reverse_cost FROM edges', false); /* -- q2 */ SELECT type, id, contracted_vertices FROM pgr_contraction( 'SELECT id, source, target, cost, reverse_cost FROM edges', - ARRAY[1]); + methods => ARRAY[1]); /* -- q3 */ SELECT * FROM pgr_contraction( 'SELECT id, source, target, cost, reverse_cost FROM edges', - ARRAY[2]); + methods => ARRAY[2]); /* -- q4 */ + +/* -- cg1 */ +ALTER TABLE vertices + ADD is_contracted BOOLEAN DEFAULT false, + ADD contracted_vertices BIGINT[]; +ALTER TABLE edges + ADD is_new BOOLEAN DEFAULT false, + ADD contracted_vertices BIGINT[]; +/* -- cg2 */ +SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', false); +/* -- cg3 */ +SELECT * INTO contraction_results +FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', false); +/* -- cg4 */ +UPDATE vertices +SET is_contracted = true +WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); +/* -- cg5 */ +SELECT id, is_contracted +FROM vertices +ORDER BY id; +/* -- cg6 */ +UPDATE vertices +SET contracted_vertices = contraction_results.contracted_vertices +FROM contraction_results +WHERE type = 'v' AND vertices.id = contraction_results.id; +/* -- cg7 */ +INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) +SELECT source, target, cost, -1, contracted_vertices, true +FROM contraction_results +WHERE type = 'e'; +/* -- cg8 */ +SELECT id FROM vertices WHERE is_contracted = false ORDER BY id; +/* -- cg9 */ +WITH +vertices_in_graph AS (SELECT id FROM vertices WHERE is_contracted = false) +SELECT id, source, target, cost, reverse_cost, contracted_vertices +FROM edges +WHERE + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.source) + AND + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.target) +ORDER BY id; +/* -- cg10 */ +DROP VIEW IF EXISTS contracted_graph; +CREATE VIEW contracted_graph AS +SELECT id,source, target, cost, reverse_cost, contracted_vertices FROM edges +WHERE + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.source) + AND + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.target); +/* -- cg11 */ +CREATE OR REPLACE FUNCTION path_cost(source BIGINT, target BIGINT) +RETURNS SETOF FLOAT AS +$BODY$ + +SELECT agg_cost FROM pgr_dijkstraCost( + /* The inner query */ + 'WITH + cul_de_sac AS ( + SELECT contracted_vertices || id as v + FROM vertices WHERE ' || $1 ||' = ANY(contracted_vertices) + OR ' || $2 ||' = ANY(contracted_vertices)), + linears_to_expand AS ( + SELECT id, contracted_vertices + FROM edges WHERE is_new AND (' || $1 ||' = ANY(contracted_vertices) + OR '|| $2 ||' = ANY(contracted_vertices)) + ), + additional_vertices AS ( + SELECT * FROM cul_de_sac UNION SELECT contracted_vertices FROM linears_to_expand) + SELECT id, source, target, cost, reverse_cost + FROM edges, additional_vertices WHERE source = ANY(v) OR target = ANY(v) + + UNION + + SELECT id, source, target, cost, reverse_cost + FROM contracted_graph LEFT JOIN linears_to_expand c USING (id) WHERE c.id IS NULL', + + source, target, false); + +$BODY$ LANGUAGE SQL; +/* -- cg12 */ +SELECT * FROM path_cost(10, 12); +/* -- cg13 */ +SELECT * FROM path_cost(15, 12); +/* -- cg14 */ +SELECT * FROM path_cost(15, 1); +/* -- cg15 */ diff --git a/docqueries/contraction/contraction.result b/docqueries/contraction/contraction.result index c07e3037ea..e9662cd97b 100644 --- a/docqueries/contraction/contraction.result +++ b/docqueries/contraction/contraction.result @@ -4,8 +4,7 @@ SET client_min_messages TO NOTICE; SET /* -- q1 */ SELECT * FROM pgr_contraction( - 'SELECT id, source, target, cost, reverse_cost FROM edges', - ARRAY[1, 2], directed => false); + 'SELECT id, source, target, cost, reverse_cost FROM edges', false); type | id | contracted_vertices | source | target | cost ------+----+---------------------+--------+--------+------ v | 4 | {2} | -1 | -1 | -1 @@ -20,7 +19,7 @@ SELECT * FROM pgr_contraction( /* -- q2 */ SELECT type, id, contracted_vertices FROM pgr_contraction( 'SELECT id, source, target, cost, reverse_cost FROM edges', - ARRAY[1]); + methods => ARRAY[1]); type | id | contracted_vertices ------+----+--------------------- v | 4 | {2} @@ -33,7 +32,7 @@ SELECT type, id, contracted_vertices FROM pgr_contraction( /* -- q3 */ SELECT * FROM pgr_contraction( 'SELECT id, source, target, cost, reverse_cost FROM edges', - ARRAY[2]); + methods => ARRAY[2]); type | id | contracted_vertices | source | target | cost ------+----+---------------------+--------+--------+------ e | -1 | {3} | 1 | 7 | 2 @@ -41,5 +40,174 @@ SELECT * FROM pgr_contraction( (2 rows) /* -- q4 */ +/* -- cg1 */ +ALTER TABLE vertices + ADD is_contracted BOOLEAN DEFAULT false, + ADD contracted_vertices BIGINT[]; +ALTER TABLE +ALTER TABLE edges + ADD is_new BOOLEAN DEFAULT false, + ADD contracted_vertices BIGINT[]; +ALTER TABLE +/* -- cg2 */ +SELECT * FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', false); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + v | 4 | {2} | -1 | -1 | -1 + v | 7 | {1,3} | -1 | -1 | -1 + v | 14 | {13} | -1 | -1 | -1 + e | -1 | {5,6} | 7 | 10 | 2 + e | -2 | {8,9} | 7 | 12 | 2 + e | -3 | {17} | 12 | 16 | 2 + e | -4 | {15} | 10 | 16 | 2 +(7 rows) + +/* -- cg3 */ +SELECT * INTO contraction_results +FROM pgr_contraction( + 'SELECT id, source, target, cost, reverse_cost FROM edges', false); +SELECT 7 +/* -- cg4 */ +UPDATE vertices +SET is_contracted = true +WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); +UPDATE 10 +/* -- cg5 */ +SELECT id, is_contracted +FROM vertices +ORDER BY id; + id | is_contracted +----+--------------- + 1 | t + 2 | t + 3 | t + 4 | f + 5 | t + 6 | t + 7 | f + 8 | t + 9 | t + 10 | f + 11 | f + 12 | f + 13 | t + 14 | f + 15 | t + 16 | f + 17 | t +(17 rows) + +/* -- cg6 */ +UPDATE vertices +SET contracted_vertices = contraction_results.contracted_vertices +FROM contraction_results +WHERE type = 'v' AND vertices.id = contraction_results.id; +UPDATE 3 +/* -- cg7 */ +INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) +SELECT source, target, cost, -1, contracted_vertices, true +FROM contraction_results +WHERE type = 'e'; +INSERT 0 4 +/* -- cg8 */ +SELECT id FROM vertices WHERE is_contracted = false ORDER BY id; + id +---- + 4 + 7 + 10 + 11 + 12 + 14 + 16 +(7 rows) + +/* -- cg9 */ +WITH +vertices_in_graph AS (SELECT id FROM vertices WHERE is_contracted = false) +SELECT id, source, target, cost, reverse_cost, contracted_vertices +FROM edges +WHERE + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.source) + AND + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.target) +ORDER BY id; + id | source | target | cost | reverse_cost | contracted_vertices +----+--------+--------+------+--------------+--------------------- + 5 | 10 | 11 | 1 | -1 | + 8 | 7 | 11 | 1 | 1 | + 9 | 11 | 16 | 1 | 1 | + 11 | 11 | 12 | 1 | -1 | + 19 | 7 | 10 | 2 | -1 | {5,6} + 20 | 7 | 12 | 2 | -1 | {8,9} + 21 | 12 | 16 | 2 | -1 | {17} + 22 | 10 | 16 | 2 | -1 | {15} +(8 rows) + +/* -- cg10 */ +DROP VIEW IF EXISTS contracted_graph; +NOTICE: view "contracted_graph" does not exist, skipping +DROP VIEW +CREATE VIEW contracted_graph AS +SELECT id,source, target, cost, reverse_cost, contracted_vertices FROM edges +WHERE + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.source) + AND + EXISTS (SELECT id FROM vertices AS v WHERE NOT is_contracted AND v.id = edges.target); +CREATE VIEW +/* -- cg11 */ +CREATE OR REPLACE FUNCTION path_cost(source BIGINT, target BIGINT) +RETURNS SETOF FLOAT AS +$BODY$ + +SELECT agg_cost FROM pgr_dijkstraCost( + /* The inner query */ + 'WITH + cul_de_sac AS ( + SELECT contracted_vertices || id as v + FROM vertices WHERE ' || $1 ||' = ANY(contracted_vertices) + OR ' || $2 ||' = ANY(contracted_vertices)), + linears_to_expand AS ( + SELECT id, contracted_vertices + FROM edges WHERE is_new AND (' || $1 ||' = ANY(contracted_vertices) + OR '|| $2 ||' = ANY(contracted_vertices)) + ), + additional_vertices AS ( + SELECT * FROM cul_de_sac UNION SELECT contracted_vertices FROM linears_to_expand) + SELECT id, source, target, cost, reverse_cost + FROM edges, additional_vertices WHERE source = ANY(v) OR target = ANY(v) + + UNION + + SELECT id, source, target, cost, reverse_cost + FROM contracted_graph LEFT JOIN linears_to_expand c USING (id) WHERE c.id IS NULL', + + source, target, false); + +$BODY$ LANGUAGE SQL; +CREATE FUNCTION +/* -- cg12 */ +SELECT * FROM path_cost(10, 12); + path_cost +----------- + 2 +(1 row) + +/* -- cg13 */ +SELECT * FROM path_cost(15, 12); + path_cost +----------- + 3 +(1 row) + +/* -- cg14 */ +SELECT * FROM path_cost(15, 1); + path_cost +----------- + 5 +(1 row) + +/* -- cg15 */ ROLLBACK; ROLLBACK diff --git a/docqueries/contraction/test.conf b/docqueries/contraction/test.conf index bd08f892df..bc173f0102 100644 --- a/docqueries/contraction/test.conf +++ b/docqueries/contraction/test.conf @@ -3,7 +3,6 @@ %main::tests = ( 'any' => { 'files' => [qw( - contraction-family.pg contraction.pg )] }, From 06158bd92c3c15f251acc5b1b79ee8e15e65136f Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 20 Mar 2025 13:25:05 -0600 Subject: [PATCH 116/141] (contraction/sql) The new signature and deprecation of the other --- sql/contraction/contraction.sql | 64 ++++++++++++++++++++------------- sql/sigs/pgrouting--3.8.sig | 1 + 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/sql/contraction/contraction.sql b/sql/contraction/contraction.sql index ce65e59305..f11bf646af 100644 --- a/sql/contraction/contraction.sql +++ b/sql/contraction/contraction.sql @@ -27,25 +27,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ********************************************************************PGR-GNU*/ --------------------- --------------------- --- contraction --------------------- --------------------- - --------------------- --- pgr_contraction --------------------- - - ---v3.0 +--v3.8 CREATE FUNCTION pgr_contraction( TEXT, -- edges_sql (required) - BIGINT[], -- contraction_order (required) - - max_cycles INTEGER DEFAULT 1, - forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[], directed BOOLEAN DEFAULT true, + methods INTEGER[] DEFAULT ARRAY[1,2]::INTEGER[], + cycles INTEGER DEFAULT 1, + forbidden BIGINT[] DEFAULT ARRAY[]::BIGINT[], OUT type TEXT, OUT id BIGINT, @@ -55,22 +43,50 @@ CREATE FUNCTION pgr_contraction( OUT cost FLOAT) RETURNS SETOF RECORD AS $BODY$ - SELECT type, id, contracted_vertices, source, target, cost - FROM _pgr_contraction(_pgr_get_statement($1), $2::BIGINT[], $3, $4, $5); + SELECT type, id, contracted_vertices, source, target, cost + FROM _pgr_contraction(_pgr_get_statement($1), methods::BIGINT[], cycles, forbidden, directed); $BODY$ LANGUAGE SQL VOLATILE STRICT; --- COMMENTS - -COMMENT ON FUNCTION pgr_contraction(TEXT, BIGINT[], INTEGER, BIGINT[], BOOLEAN) +COMMENT ON FUNCTION pgr_contraction(TEXT, BOOLEAN, INTEGER[], INTEGER, BIGINT[]) IS 'pgr_contraction - Parameters: - Edges SQL with columns: id, source, target, cost [,reverse_cost] - - ARRAY [Contraction order] - Optional Parameters - - max_cycles := 1 - - forbidden_vertices := ARRAY[]::BIGINT[] - directed := true + - methods := ARRAY[1,2] + - cycles := 1 + - forbidden := ARRAY[]::BIGINT[] - Documentation: - ${PROJECT_DOC_LINK}/pgr_contraction.html '; + +--v3.0 +CREATE FUNCTION pgr_contraction( + TEXT, -- edges_sql (required) + BIGINT[], -- contraction_order (required) + + max_cycles INTEGER DEFAULT 1, + forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[], + directed BOOLEAN DEFAULT true, + + OUT type TEXT, + OUT id BIGINT, + OUT contracted_vertices BIGINT[], + OUT source BIGINT, + OUT target BIGINT, + OUT cost FLOAT) +RETURNS SETOF RECORD AS +$BODY$ +BEGIN + RAISE NOTICE 'Deprecated Signature pgr_contraction(text,boolean,integer[],integer,bigint[]) in v3.8.0'; + RETURN QUERY + SELECT a.type, a.id, a.contracted_vertices, a.source, a.target, a.cost + FROM _pgr_contraction(_pgr_get_statement($1), $2::BIGINT[], $3, $4, $5) AS a; +END; +$BODY$ +LANGUAGE plpgsql VOLATILE STRICT; + +COMMENT ON FUNCTION pgr_contraction(TEXT, BIGINT[], INTEGER, BIGINT[], BOOLEAN) +IS 'pgr_contraction deprecated in 3.8.0'; + diff --git a/sql/sigs/pgrouting--3.8.sig b/sql/sigs/pgrouting--3.8.sig index 59ae351e06..75b7ea1b97 100644 --- a/sql/sigs/pgrouting--3.8.sig +++ b/sql/sigs/pgrouting--3.8.sig @@ -88,6 +88,7 @@ _pgr_connectedcomponents(text) pgr_connectedcomponents(text) _pgr_contraction(text,bigint[],integer,bigint[],boolean) pgr_contraction(text,bigint[],integer,bigint[],boolean) +pgr_contraction(text,boolean,integer[],integer,bigint[]) _pgr_createindex(text,text,text,integer,text) _pgr_createindex(text,text,text,text,integer,text) pgr_createtopology(text,double precision,text,text,text,text,text,boolean) From 0db1630ce7d2cc10331cec93a090635ce50e8b31 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 20 Mar 2025 13:27:28 -0600 Subject: [PATCH 117/141] (contraction/doc) Updating and refinement of the documentation --- doc/contraction/contraction-family.rst | 322 +------------------------ doc/contraction/pgr_contraction.rst | 307 +++++++++++++++++++---- 2 files changed, 262 insertions(+), 367 deletions(-) diff --git a/doc/contraction/contraction-family.rst b/doc/contraction/contraction-family.rst index 5d54ef4592..4495f0c994 100644 --- a/doc/contraction/contraction-family.rst +++ b/doc/contraction/contraction-family.rst @@ -293,7 +293,7 @@ Linear vertex on directed graph - The green nodes are `linear`_ nodes - The blue nodes have an unlimited number of incoming and outgoing edges. -- The white node is not linear because the linearity is not symetrical. +- The white node is not linear because the linearity is not symmetrical. * It is possible to go :math:`y \rightarrow c \rightarrow z` * It's not possible to go :math:`z \rightarrow c \rightarrow y` @@ -400,326 +400,6 @@ Contracting :math:`v`: Edge :math:`u \rightarrow z` has the information of nodes that were contracted. -The cycle -------------------------------------------------------------------------------- - -Contracting a graph, can be done with more than one operation. -The order of the operations affect the resulting contracted graph, after -applying one operation, the set of vertices that can be contracted -by another operation changes. - -This implementation, cycles ``max_cycles`` times through ``operations_order`` . - -.. parsed-literal:: - - - do max_cycles times { - for (operation in operations_order) - { do operation } - } - - - -Contracting sample data -------------------------------------------------------------------------------- - -In this section, building and using a contracted graph will be shown by example. - -- The :doc:`sampledata` for an undirected graph is used -- a dead end operation first followed by a linear operation. - - -.. contents:: - :local: - -Construction of the graph in the database -............................................................................... - -.. rubric:: Original Data - -The following query shows the original data involved in the contraction -operation. - -.. literalinclude:: contraction-family.queries - :start-after: -- q00 - :end-before: -- q01 - -The original graph: - -.. image:: /images/Fig6-undirected.png - :scale: 25% - -Contraction results -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -The results do not represent the contracted graph. -They represent the changes done to the graph after applying the contraction -algorithm. - -Observe that vertices, for example, :math:`6` do not appear in the results -because it was not affected by the contraction algorithm. - -.. literalinclude:: contraction-family.queries - :start-after: -- q2 - :end-before: -- q3 - -After doing the dead end contraction operation: - -.. image:: images/undirected_sampledata_b.png - :scale: 25% - -After doing the linear contraction operation to the graph above: - -.. image:: images/undirected_sampledata_c.png - :scale: 25% - -The process to create the contraction graph on the database: - -.. contents:: - :local: - -Add additional columns -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` -tables, where: - -.. list-table:: - :width: 80 - :widths: auto - :header-rows: 1 - - * - Column - - Description - * - ``contracted_vertices`` - - The vertices set belonging to the vertex/edge - * - ``is_contracted`` - - On the vertex table - - * when ``true`` the vertex is contracted, its not part of the contracted - graph. - * when ``false`` the vertex is not contracted, its part of the contracted - graph. - * - ``is_new`` - - On the edge table - - * when ``true`` the edge was generated by the contraction algorithm. its - part of the contracted graph. - * when ``false`` the edge is an original edge, might be or not part of - the contracted graph. - -.. literalinclude:: contraction-family.queries - :start-after: -- q1 - :end-before: -- q2 - -Store contraction information -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Store the `contraction results`_ in a table - -.. literalinclude:: contraction-family.queries - :start-after: -- q3 - :end-before: -- q4 - - -The vertex table update -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Use ``is_contracted`` column to indicate the vertices that are contracted. - -.. literalinclude:: contraction-family.queries - :start-after: -- q4 - :end-before: -- q5 - -Fill ``contracted_vertices`` with the information from the results tha belong to -the vertices. - -.. literalinclude:: contraction-family.queries - :start-after: -- q6 - :end-before: -- q7 - -The modified vertices table: - -.. literalinclude:: contraction-family.queries - :start-after: -- q7 - :end-before: -- q8 - -The edge table update -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Insert the new edges generated by pgr_contraction. - -.. literalinclude:: contraction-family.queries - :start-after: -- q8 - :end-before: -- q9 - -The modified ``edge_table``. - -.. literalinclude:: contraction-family.queries - :start-after: -- q9 - :end-before: -- q10 - - -The contracted graph -............................................................................... - -Vertices that belong to the contracted graph. -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -.. literalinclude:: contraction-family.queries - :start-after: -- q10 - :end-before: -- q11 - -Edges that belong to the contracted graph. -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -.. literalinclude:: contraction-family.queries - :start-after: -- q11 - :end-before: -- case1 - -Contracted graph -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -.. image:: images/newgraph.png - :scale: 25% - -Using the contracted graph -............................................................................... - -Using the contracted graph with ``pgr_dijkstra`` - -There are three cases when calculating the shortest path between a given source -and target in a contracted graph: - -- Case 1: Both source and target belong to the contracted graph. -- Case 2: Source and/or target belong to an edge subgraph. -- Case 3: Source and/or target belong to a vertex. - -Case 1: Both source and target belong to the contracted graph. -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Using the `Edges that belong to the contracted graph.`_ on lines 11 to 20. - -.. literalinclude:: contraction-family.queries - :emphasize-lines: 11-20 - :start-after: -- case1 - :end-before: -- use1 - :linenos: - -.. rubric:: Case 1 - -When both source and target belong to the contracted graph, a path is found. - -.. literalinclude:: contraction-family.queries - :start-after: -- use1 - :end-before: -- use1-1 - -.. rubric:: Case 2 - -When source and/or target belong to an edge subgraph then a path is not found. - -In this case, the contracted graph do not have an edge connecting with -node :math:`4`. - -.. literalinclude:: contraction-family.queries - :start-after: -- use1-1 - :end-before: -- use1-2 - -.. rubric:: Case 3 - -When source and/or target belong to a vertex then a path is not found. - -In this case, the contracted graph do not have an edge connecting with -node :math:`7` and of node :math:`4` of the second case. - -.. literalinclude:: contraction-family.queries - :start-after: -- use1-2 - :end-before: -- case2 - -Case 2: Source and/or target belong to an edge subgraph. -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Refining the above function to include nodes that belong to an edge. - -- The vertices that need to be expanded are calculated on lines 11 to 17. -- Adding to the contracted graph that additional section on lines 26 to 28. - -.. literalinclude:: contraction-family.queries - :emphasize-lines: 11-17, 26-28 - :start-after: -- case2 - :end-before: -- use2 - :linenos: - -.. rubric:: Case 1 - -When both source and target belong to the contracted graph, a path is found. - -.. literalinclude:: contraction-family.queries - :start-after: -- use2 - :end-before: -- use2-1 - -.. rubric:: Case 2 - -When source and/or target belong to an edge subgraph, now, a path is found. - -The routing graph now has an edge connecting with node :math:`4`. - -.. literalinclude:: contraction-family.queries - :start-after: -- use2-1 - :end-before: -- use2-2 - -.. rubric:: Case 3 - -When source and/or target belong to a vertex then a path is not found. - -In this case, the contracted graph do not have an edge connecting with -node :math:`7`. - -.. literalinclude:: contraction-family.queries - :start-after: -- use2-2 - :end-before: -- case3 - -Case 3: Source and/or target belong to a vertex. -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -Refining the above function to include nodes that belong to an edge. - -- The vertices that need to be expanded are calculated on lines 19 to 24. -- Adding to the contracted graph that additional section on lines 38 to 40. - -.. literalinclude:: contraction-family.queries - :emphasize-lines: 19-24, 39-41 - :start-after: -- case3 - :end-before: -- use3 - :linenos: - -.. rubric:: Case 1 - -When both source and target belong to the contracted graph, a path is found. - -.. literalinclude:: contraction-family.queries - :start-after: -- use3 - :end-before: -- use3-1 - -.. rubric:: Case 2 - -The code change do not affect this case so when source and/or target belong -to an edge subgraph, a path is still found. - -.. literalinclude:: contraction-family.queries - :start-after: -- use3-1 - :end-before: -- use3-2 - -.. rubric:: Case 3 - -When source and/or target belong to a vertex, now, a path is found. - -Now, the routing graph has an edge connecting with node :math:`7`. - -.. literalinclude:: contraction-family.queries - :start-after: -- use3-2 - :end-before: -- end - See Also ------------------------------------------------------------------------------- diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index 98f7fd2a94..bb63e59971 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -8,7 +8,7 @@ **************************************************************************** -.. index:: +.. index:: single: Contraction Family ; pgr_contraction single: contraction @@ -22,21 +22,33 @@ vertices and edges. .. rubric:: Availability -* Version 3.0.0 +.. rubric:: Version 3.8.0 + +* 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) - * Result columns change: ``seq`` is removed - * Name change from ``pgr_contractGraph`` - * Bug fixes - * Function promoted to official. +.. rubric:: Version 3.0.0 -* Version 2.3.0 +* Result columns change: ``seq`` is removed +* Name change from ``pgr_contractGraph`` +* Bug fixes +* Function promoted to official. - * New experimental function. +.. rubric:: Version 2.3.0 + +* New experimental function. Description ------------------------------------------------------------------------------- +.. characteristics_start + Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms. @@ -44,47 +56,45 @@ edges decreasing the total time and space used in graph algorithms. The main Characteristics are: - Process is done only on edges with positive costs. -- Does not return the full contracted graph +- Does not return the full contracted graph. + + - Only changes on the graph are returned. - - Only changes on the graph are returned +- The returned values include: -- Currnetly there are two types of contraction methods + - The new edges generated by linear contraction. + - The modified vertices generated by dead end contraction. - - Dead End Contraction - - Linear Contraction +- The returned values are ordered as follows: -- The returned values include + - column ``id`` ascending when its a modified vertex. + - column ``id`` with negative numbers descending when its a new edge. - - the added edges by linear contraction. - - the modified vertices by dead end contraction. +.. characteristics_end -- The returned values are ordered as follows: +- Currently there are two types of contraction methods included in this + function: - - column ``id`` ascending when type is ``v`` - - column ``id`` descending when type is ``e`` + - Dead End Contraction. See :doc:`contraction-family`. + - Linear Contraction. See :doc:`contraction-family`. |Boost| Boost Graph Inside Signatures ------------------------------------------------------------------------------- -.. rubric:: Summary - -The pgr_contraction function has the following signature: - .. index:: single: contraction .. admonition:: \ \ :class: signatures - | pgr_contraction(`Edges SQL`_, **contraction order**, [**options**]) + | pgr_contraction(`Edges SQL`_, [**options**]) - | **options:** ``[ max_cycles, forbidden_vertices, directed]`` + | **options:** ``[directed, methods, cycles, forbidden]`` | Returns set of |result-contract| -:Example: Making a dead end and linear contraction in that order on an - undirected graph. +:Example: Dead end and linear contraction in that order on an undirected graph. .. literalinclude:: contraction.queries :start-after: -- q1 @@ -104,12 +114,6 @@ Parameters * - `Edges SQL`_ - ``TEXT`` - `Edges SQL`_ as described below. - * - **contraction Order** - - ``ARRAY[`` **ANY-INTEGER** ``]`` - - Ordered contraction operations. - - - 1 = Dead end contraction - - 2 = Linear contraction Optional parameters ............................................................................... @@ -123,22 +127,29 @@ Contraction optional parameters .. list-table:: :width: 81 - :widths: 19 22 7 40 + :widths: auto :header-rows: 1 * - Column - Type - Default - Description - * - ``forbidden_vertices`` - - ``ARRAY[`` **ANY-INTEGER** ``]`` - - **Empty** - - Identifiers of vertices forbidden for contraction. - * - ``max_cycles`` + * - ``methods`` + - ``INTEGER[]`` + - ``ARRAY[1,2]`` + - Ordered contraction operations. + + - 1 = Dead end contraction + - 2 = Linear contraction + + * - ``cycles`` - ``INTEGER`` - :math:`1` - - Number of times the contraction operations on ``contraction_order`` will - be performed. + - Number of times the contraction methods will be performed. + * - ``forbidden`` + - ``BIGINT[]`` + - ``ARRAY[]::BIGINT[]`` + - Identifiers of vertices forbidden for contraction. Inner Queries ------------------------------------------------------------------------------- @@ -167,14 +178,14 @@ The function returns a single row. The columns of the row are: - Description * - ``type`` - ``TEXT`` - - Type of the ``id``. + - Type of the row. * ``v`` when the row is a vertex. - * Column ``id`` has a positive value + * Column ``id`` has a positive value. * ``e`` when the row is an edge. - * Column ``id`` has a negative value + * Column ``id`` has a negative value. * - ``id`` - ``BIGINT`` - All numbers on this column are ``DISTINCT`` @@ -210,18 +221,222 @@ The function returns a single row. The columns of the row are: Additional Examples ------------------------------------------------------------------------------- -:Example: Only dead end contraction +.. contents:: + :local: + +Only dead end contraction +................................................................................ .. literalinclude:: contraction.queries :start-after: -- q2 :end-before: -- q3 -:Example: Only linear contraction +Only linear contraction +................................................................................ .. literalinclude:: contraction.queries :start-after: -- q3 :end-before: -- q4 +The cycle +................................................................................ + +Contracting a graph, can be done with more than one operation. +The order of the operations affect the resulting contracted graph, after +applying one operation, the set of vertices that can be contracted +by another operation changes. + +This implementation, cycles ``cycles`` times through the ``methods`` . + +.. parsed-literal:: + + + do max_cycles times { + for (operation in operations_order) + { do operation } + } + + + +Contracting sample data +------------------------------------------------------------------------------- + +In this section, building and using a contracted graph will be shown by example. + +- The :doc:`sampledata` for an undirected graph is used +- a dead end operation first followed by a linear operation. + + +.. contents:: + :local: + +Construction of the graph in the database +............................................................................... + +The original graph: + +.. image:: /images/Fig6-undirected.png + :scale: 25% + +The results do not represent the contracted graph. +They represent the changes that need to be done to the graph after applying the +contraction methods. + +Observe that vertices, for example, :math:`6` do not appear in the results +because it was not affected by the contraction algorithm. + +.. literalinclude:: contraction.queries + :start-after: -- cg2 + :end-before: -- cg3 + +After doing the dead end contraction operation: + +.. image:: images/undirected_sampledata_b.png + :scale: 25% + +After doing the linear contraction operation to the graph above: + +.. image:: images/undirected_sampledata_c.png + :scale: 25% + +The process to create the contraction graph on the database: +------------------------------------------------------------------------------- + +.. contents:: + :local: + +Add additional columns +............................................................................... + +Adding extra columns to the edges and vertices tables. +In this documentation the following will be used: + +.. list-table:: + :width: 80 + :widths: auto + :header-rows: 1 + + * - Column. + - Description + * - ``contracted_vertices`` + - The vertices set belonging to the vertex/edge + * - ``is_contracted`` + - On the vertex table + + * when ``true`` the vertex is contracted, its not part of the contracted + graph. + * when ``false`` the vertex is not contracted, its part of the contracted + graph. + * - ``is_new`` + - On the edge table + + * when ``true`` the edge was generated by the contraction algorithm. its + part of the contracted graph. + * when ``false`` the edge is an original edge, might be or not part of + the contracted graph. + +.. literalinclude:: contraction.queries + :start-after: -- cg1 + :end-before: -- cg2 + +Store contraction information +............................................................................... + +Store the contraction results in a table. + +.. literalinclude:: contraction.queries + :start-after: -- cg3 + :end-before: -- cg4 + +Update the edges and vertices tables +............................................................................... + +Use ``is_contracted`` column to indicate the vertices that are contracted. + +.. literalinclude:: contraction.queries + :start-after: -- cg4 + :end-before: -- cg5 + +Fill ``contracted_vertices`` with the information from the results that belong +to the vertices. + +.. literalinclude:: contraction.queries + :start-after: -- cg6 + :end-before: -- cg7 + +Insert the new edges generated by pgr_contraction. + +.. literalinclude:: contraction.queries + :start-after: -- cg7 + :end-before: -- cg8 + +The contracted graph +............................................................................... + +Vertices that belong to the contracted graph. + +.. literalinclude:: contraction.queries + :start-after: -- cg8 + :end-before: -- cg9 + +Edges that belong to the contracted graph. + +.. literalinclude:: contraction.queries + :start-after: -- cg9 + :end-before: -- cg10 + +Visually: + +.. image:: images/newgraph.png + :scale: 25% + +Using the contracted graph +------------------------------------------------------------------------------- + +Depending on the final application the graph is to be prepared. +In this example the final application will be to calculate the cost from two +vertices in the original graph by using the contracted graph with ``pgr_dijkstraCost`` + +There are three cases when calculating the shortest path between a given source +and target in a contracted graph: + +- Case 1: Both source and target belong to the contracted graph. +- Case 2: Source and/or target belong to an edge subgraph. +- Case 3: Source and/or target belong to a vertex. + +The final application should consider all of those cases. + + +Create a view (or table) of the contracted graph: + +.. literalinclude:: contraction.queries + :start-after: -- cg10 + :end-before: -- cg11 + +Create the function that will use the contracted graph. + +.. literalinclude:: contraction.queries + :start-after: -- cg11 + :end-before: -- cg12 + +Case 1: Both source and target belong to the contracted graph. + +.. literalinclude:: contraction.queries + :start-after: -- cg12 + :end-before: -- cg13 + +Case 2: Source and/or target belong to an edge that has contracted vertices. + +.. literalinclude:: contraction.queries + :start-after: -- cg13 + :end-before: -- cg14 + +Case 3: Source and/or target belong to a vertex that has been contracted. + +.. literalinclude:: contraction.queries + :start-after: -- cg14 + :end-before: -- cg15 + See Also ------------------------------------------------------------------------------- From b01af565d6dd55ee031e60a67823b7f67498ffb6 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 20 Mar 2025 13:29:36 -0600 Subject: [PATCH 118/141] (lint) removing files no longer in use --- docqueries/contraction/contraction-family.pg | 199 --------- .../contraction/contraction-family.result | 393 ------------------ 2 files changed, 592 deletions(-) delete mode 100644 docqueries/contraction/contraction-family.pg delete mode 100644 docqueries/contraction/contraction-family.result diff --git a/docqueries/contraction/contraction-family.pg b/docqueries/contraction/contraction-family.pg deleted file mode 100644 index ea9c215de9..0000000000 --- a/docqueries/contraction/contraction-family.pg +++ /dev/null @@ -1,199 +0,0 @@ --- CopyRight(c) pgRouting developers --- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ - -/* -- q00 */ -SELECT id, source, target, cost, reverse_cost -FROM edges ORDER BY id; -/* -- q01 */ -/* -- q1 */ -ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; -ALTER TABLE vertices ADD contracted_vertices BIGINT[]; -ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false; -ALTER TABLE edges ADD contracted_vertices BIGINT[]; -/* -- q2 */ -SELECT * FROM pgr_contraction( - 'SELECT id, source, target, cost, reverse_cost FROM edges', - array[1, 2], directed => false); -/* -- q3 */ -SELECT * INTO contraction_results -FROM pgr_contraction( - 'SELECT id, source, target, cost, reverse_cost FROM edges', - array[1, 2], directed => false); -/* -- q4 */ -UPDATE vertices -SET is_contracted = true -WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); -/* -- q5 */ -SELECT id, is_contracted -FROM vertices -ORDER BY id; -/* -- q6 */ -UPDATE vertices -SET contracted_vertices = contraction_results.contracted_vertices -FROM contraction_results -WHERE type = 'v' AND vertices.id = contraction_results.id; -/* -- q7 */ -SELECT id, contracted_vertices, is_contracted -FROM vertices -ORDER BY id; -/* -- q8 */ -INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) -SELECT source, target, cost, -1, contracted_vertices, true -FROM contraction_results -WHERE type = 'e'; -/* -- q9 */ -SELECT id, source, target, cost, reverse_cost, contracted_vertices, is_new -FROM edges -ORDER BY id; -/* -- q10 */ -SELECT id -FROM vertices -WHERE is_contracted = false -ORDER BY id; -/* -- q11 */ -WITH -vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false -) -SELECT id, source, target, cost, reverse_cost, contracted_vertices -FROM edges -WHERE source IN (SELECT * FROM vertices_in_graph) -AND target IN (SELECT * FROM vertices_in_graph) -ORDER BY id; -/* -- case1 */ -CREATE OR REPLACE FUNCTION my_dijkstra( - departure BIGINT, destination BIGINT, - OUT seq INTEGER, OUT path_seq INTEGER, - OUT start_vid BIGINT, OUT end_vid BIGINT, - OUT node BIGINT, OUT edge BIGINT, - OUT cost FLOAT, OUT agg_cost FLOAT) -RETURNS SETOF RECORD AS -$BODY$ -SELECT * FROM pgr_dijkstra( - $$ - WITH - vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false - ) - SELECT id, source, target, cost, reverse_cost - FROM edges - WHERE source IN (SELECT * FROM vertices_in_graph) - AND target IN (SELECT * FROM vertices_in_graph) - $$, - departure, destination, false); -$BODY$ -LANGUAGE SQL VOLATILE; -/* -- use1 */ -SELECT * FROM my_dijkstra(10, 12); -/* -- use1-1 */ -SELECT * FROM my_dijkstra(15, 12); -/* -- use1-2 */ -SELECT * FROM my_dijkstra(15, 1); -/* -- case2 */ -CREATE OR REPLACE FUNCTION my_dijkstra( - departure BIGINT, destination BIGINT, - OUT seq INTEGER, OUT path_seq INTEGER, - OUT start_vid BIGINT, OUT end_vid BIGINT, - OUT node BIGINT, OUT edge BIGINT, - OUT cost FLOAT, OUT agg_cost FLOAT) -RETURNS SETOF RECORD AS -$BODY$ -SELECT * FROM pgr_dijkstra( - $$ - WITH - edges_to_expand AS ( - SELECT id - FROM edges - WHERE ARRAY[$$ || departure || $$]::BIGINT[] <@ contracted_vertices - OR ARRAY[$$ || destination || $$]::BIGINT[] <@ contracted_vertices - ), - - vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false - - UNION - - SELECT unnest(contracted_vertices) - FROM edges - WHERE id IN (SELECT id FROM edges_to_expand) - ) - - SELECT id, source, target, cost, reverse_cost - FROM edges - WHERE source IN (SELECT * FROM vertices_in_graph) - AND target IN (SELECT * FROM vertices_in_graph) - $$, - departure, destination, false); -$BODY$ -LANGUAGE SQL VOLATILE; -/* -- use2 */ -SELECT * FROM my_dijkstra(10, 12); -/* -- use2-1 */ -SELECT * FROM my_dijkstra(15, 12); -/* -- use2-2 */ -SELECT * FROM my_dijkstra(15, 1); -/* -- case3 */ -CREATE OR REPLACE FUNCTION my_dijkstra( - departure BIGINT, destination BIGINT, - OUT seq INTEGER, OUT path_seq INTEGER, - OUT start_vid BIGINT, OUT end_vid BIGINT, - OUT node BIGINT, OUT edge BIGINT, - OUT cost FLOAT, OUT agg_cost FLOAT) -RETURNS SETOF RECORD AS -$BODY$ -SELECT * FROM pgr_dijkstra( - $$ - WITH - edges_to_expand AS ( - SELECT id - FROM edges - WHERE ARRAY[$$ || departure || $$]::BIGINT[] <@ contracted_vertices - OR ARRAY[$$ || destination || $$]::BIGINT[] <@ contracted_vertices - ), - - vertices_to_expand AS ( - SELECT id - FROM vertices - WHERE ARRAY[$$ || departure || $$]::BIGINT[] <@ contracted_vertices - OR ARRAY[$$ || destination || $$]::BIGINT[] <@ contracted_vertices - ), - - vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false - - UNION - - SELECT unnest(contracted_vertices) - FROM edges - WHERE id IN (SELECT id FROM edges_to_expand) - - UNION - - SELECT unnest(contracted_vertices) - FROM vertices - WHERE id IN (SELECT id FROM vertices_to_expand) - ) - - SELECT id, source, target, cost, reverse_cost - FROM edges - WHERE source IN (SELECT * FROM vertices_in_graph) - AND target IN (SELECT * FROM vertices_in_graph) - $$, - departure, destination, false); -$BODY$ -LANGUAGE SQL VOLATILE; -/* -- use3 */ -SELECT * FROM my_dijkstra(10, 12); -/* -- use3-1 */ -SELECT * FROM my_dijkstra(15, 12); -/* -- use3-2 */ -SELECT * FROM my_dijkstra(15, 1); -/* -- end */ diff --git a/docqueries/contraction/contraction-family.result b/docqueries/contraction/contraction-family.result deleted file mode 100644 index c9a3c2ddc9..0000000000 --- a/docqueries/contraction/contraction-family.result +++ /dev/null @@ -1,393 +0,0 @@ -BEGIN; -BEGIN -SET client_min_messages TO NOTICE; -SET -/* -- q00 */ -SELECT id, source, target, cost, reverse_cost -FROM edges ORDER BY id; - id | source | target | cost | reverse_cost -----+--------+--------+------+-------------- - 1 | 5 | 6 | 1 | 1 - 2 | 6 | 10 | -1 | 1 - 3 | 10 | 15 | -1 | 1 - 4 | 6 | 7 | 1 | 1 - 5 | 10 | 11 | 1 | -1 - 6 | 1 | 3 | 1 | 1 - 7 | 3 | 7 | 1 | 1 - 8 | 7 | 11 | 1 | 1 - 9 | 11 | 16 | 1 | 1 - 10 | 7 | 8 | 1 | 1 - 11 | 11 | 12 | 1 | -1 - 12 | 8 | 12 | 1 | -1 - 13 | 12 | 17 | 1 | -1 - 14 | 8 | 9 | 1 | 1 - 15 | 16 | 17 | 1 | 1 - 16 | 15 | 16 | 1 | 1 - 17 | 2 | 4 | 1 | 1 - 18 | 13 | 14 | 1 | 1 -(18 rows) - -/* -- q01 */ -/* -- q1 */ -ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; -ALTER TABLE -ALTER TABLE vertices ADD contracted_vertices BIGINT[]; -ALTER TABLE -ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false; -ALTER TABLE -ALTER TABLE edges ADD contracted_vertices BIGINT[]; -ALTER TABLE -/* -- q2 */ -SELECT * FROM pgr_contraction( - 'SELECT id, source, target, cost, reverse_cost FROM edges', - array[1, 2], directed => false); - type | id | contracted_vertices | source | target | cost -------+----+---------------------+--------+--------+------ - v | 4 | {2} | -1 | -1 | -1 - v | 7 | {1,3} | -1 | -1 | -1 - v | 14 | {13} | -1 | -1 | -1 - e | -1 | {5,6} | 7 | 10 | 2 - e | -2 | {8,9} | 7 | 12 | 2 - e | -3 | {17} | 12 | 16 | 2 - e | -4 | {15} | 10 | 16 | 2 -(7 rows) - -/* -- q3 */ -SELECT * INTO contraction_results -FROM pgr_contraction( - 'SELECT id, source, target, cost, reverse_cost FROM edges', - array[1, 2], directed => false); -SELECT 7 -/* -- q4 */ -UPDATE vertices -SET is_contracted = true -WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); -UPDATE 10 -/* -- q5 */ -SELECT id, is_contracted -FROM vertices -ORDER BY id; - id | is_contracted -----+--------------- - 1 | t - 2 | t - 3 | t - 4 | f - 5 | t - 6 | t - 7 | f - 8 | t - 9 | t - 10 | f - 11 | f - 12 | f - 13 | t - 14 | f - 15 | t - 16 | f - 17 | t -(17 rows) - -/* -- q6 */ -UPDATE vertices -SET contracted_vertices = contraction_results.contracted_vertices -FROM contraction_results -WHERE type = 'v' AND vertices.id = contraction_results.id; -UPDATE 3 -/* -- q7 */ -SELECT id, contracted_vertices, is_contracted -FROM vertices -ORDER BY id; - id | contracted_vertices | is_contracted -----+---------------------+--------------- - 1 | | t - 2 | | t - 3 | | t - 4 | {2} | f - 5 | | t - 6 | | t - 7 | {1,3} | f - 8 | | t - 9 | | t - 10 | | f - 11 | | f - 12 | | f - 13 | | t - 14 | {13} | f - 15 | | t - 16 | | f - 17 | | t -(17 rows) - -/* -- q8 */ -INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) -SELECT source, target, cost, -1, contracted_vertices, true -FROM contraction_results -WHERE type = 'e'; -INSERT 0 4 -/* -- q9 */ -SELECT id, source, target, cost, reverse_cost, contracted_vertices, is_new -FROM edges -ORDER BY id; - id | source | target | cost | reverse_cost | contracted_vertices | is_new -----+--------+--------+------+--------------+---------------------+-------- - 1 | 5 | 6 | 1 | 1 | | f - 2 | 6 | 10 | -1 | 1 | | f - 3 | 10 | 15 | -1 | 1 | | f - 4 | 6 | 7 | 1 | 1 | | f - 5 | 10 | 11 | 1 | -1 | | f - 6 | 1 | 3 | 1 | 1 | | f - 7 | 3 | 7 | 1 | 1 | | f - 8 | 7 | 11 | 1 | 1 | | f - 9 | 11 | 16 | 1 | 1 | | f - 10 | 7 | 8 | 1 | 1 | | f - 11 | 11 | 12 | 1 | -1 | | f - 12 | 8 | 12 | 1 | -1 | | f - 13 | 12 | 17 | 1 | -1 | | f - 14 | 8 | 9 | 1 | 1 | | f - 15 | 16 | 17 | 1 | 1 | | f - 16 | 15 | 16 | 1 | 1 | | f - 17 | 2 | 4 | 1 | 1 | | f - 18 | 13 | 14 | 1 | 1 | | f - 19 | 7 | 10 | 2 | -1 | {5,6} | t - 20 | 7 | 12 | 2 | -1 | {8,9} | t - 21 | 12 | 16 | 2 | -1 | {17} | t - 22 | 10 | 16 | 2 | -1 | {15} | t -(22 rows) - -/* -- q10 */ -SELECT id -FROM vertices -WHERE is_contracted = false -ORDER BY id; - id ----- - 4 - 7 - 10 - 11 - 12 - 14 - 16 -(7 rows) - -/* -- q11 */ -WITH -vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false -) -SELECT id, source, target, cost, reverse_cost, contracted_vertices -FROM edges -WHERE source IN (SELECT * FROM vertices_in_graph) -AND target IN (SELECT * FROM vertices_in_graph) -ORDER BY id; - id | source | target | cost | reverse_cost | contracted_vertices -----+--------+--------+------+--------------+--------------------- - 5 | 10 | 11 | 1 | -1 | - 8 | 7 | 11 | 1 | 1 | - 9 | 11 | 16 | 1 | 1 | - 11 | 11 | 12 | 1 | -1 | - 19 | 7 | 10 | 2 | -1 | {5,6} - 20 | 7 | 12 | 2 | -1 | {8,9} - 21 | 12 | 16 | 2 | -1 | {17} - 22 | 10 | 16 | 2 | -1 | {15} -(8 rows) - -/* -- case1 */ -CREATE OR REPLACE FUNCTION my_dijkstra( - departure BIGINT, destination BIGINT, - OUT seq INTEGER, OUT path_seq INTEGER, - OUT start_vid BIGINT, OUT end_vid BIGINT, - OUT node BIGINT, OUT edge BIGINT, - OUT cost FLOAT, OUT agg_cost FLOAT) -RETURNS SETOF RECORD AS -$BODY$ -SELECT * FROM pgr_dijkstra( - $$ - WITH - vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false - ) - SELECT id, source, target, cost, reverse_cost - FROM edges - WHERE source IN (SELECT * FROM vertices_in_graph) - AND target IN (SELECT * FROM vertices_in_graph) - $$, - departure, destination, false); -$BODY$ -LANGUAGE SQL VOLATILE; -CREATE FUNCTION -/* -- use1 */ -SELECT * FROM my_dijkstra(10, 12); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 10 | 12 | 10 | 5 | 1 | 0 - 2 | 2 | 10 | 12 | 11 | 11 | 1 | 1 - 3 | 3 | 10 | 12 | 12 | -1 | 0 | 2 -(3 rows) - -/* -- use1-1 */ -SELECT * FROM my_dijkstra(15, 12); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- -(0 rows) - -/* -- use1-2 */ -SELECT * FROM my_dijkstra(15, 1); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- -(0 rows) - -/* -- case2 */ -CREATE OR REPLACE FUNCTION my_dijkstra( - departure BIGINT, destination BIGINT, - OUT seq INTEGER, OUT path_seq INTEGER, - OUT start_vid BIGINT, OUT end_vid BIGINT, - OUT node BIGINT, OUT edge BIGINT, - OUT cost FLOAT, OUT agg_cost FLOAT) -RETURNS SETOF RECORD AS -$BODY$ -SELECT * FROM pgr_dijkstra( - $$ - WITH - edges_to_expand AS ( - SELECT id - FROM edges - WHERE ARRAY[$$ || departure || $$]::BIGINT[] <@ contracted_vertices - OR ARRAY[$$ || destination || $$]::BIGINT[] <@ contracted_vertices - ), - - vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false - - UNION - - SELECT unnest(contracted_vertices) - FROM edges - WHERE id IN (SELECT id FROM edges_to_expand) - ) - - SELECT id, source, target, cost, reverse_cost - FROM edges - WHERE source IN (SELECT * FROM vertices_in_graph) - AND target IN (SELECT * FROM vertices_in_graph) - $$, - departure, destination, false); -$BODY$ -LANGUAGE SQL VOLATILE; -CREATE FUNCTION -/* -- use2 */ -SELECT * FROM my_dijkstra(10, 12); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 10 | 12 | 10 | 5 | 1 | 0 - 2 | 2 | 10 | 12 | 11 | 11 | 1 | 1 - 3 | 3 | 10 | 12 | 12 | -1 | 0 | 2 -(3 rows) - -/* -- use2-1 */ -SELECT * FROM my_dijkstra(15, 12); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 15 | 12 | 15 | 16 | 1 | 0 - 2 | 2 | 15 | 12 | 16 | 21 | 2 | 1 - 3 | 3 | 15 | 12 | 12 | -1 | 0 | 3 -(3 rows) - -/* -- use2-2 */ -SELECT * FROM my_dijkstra(15, 1); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- -(0 rows) - -/* -- case3 */ -CREATE OR REPLACE FUNCTION my_dijkstra( - departure BIGINT, destination BIGINT, - OUT seq INTEGER, OUT path_seq INTEGER, - OUT start_vid BIGINT, OUT end_vid BIGINT, - OUT node BIGINT, OUT edge BIGINT, - OUT cost FLOAT, OUT agg_cost FLOAT) -RETURNS SETOF RECORD AS -$BODY$ -SELECT * FROM pgr_dijkstra( - $$ - WITH - edges_to_expand AS ( - SELECT id - FROM edges - WHERE ARRAY[$$ || departure || $$]::BIGINT[] <@ contracted_vertices - OR ARRAY[$$ || destination || $$]::BIGINT[] <@ contracted_vertices - ), - - vertices_to_expand AS ( - SELECT id - FROM vertices - WHERE ARRAY[$$ || departure || $$]::BIGINT[] <@ contracted_vertices - OR ARRAY[$$ || destination || $$]::BIGINT[] <@ contracted_vertices - ), - - vertices_in_graph AS ( - SELECT id - FROM vertices - WHERE is_contracted = false - - UNION - - SELECT unnest(contracted_vertices) - FROM edges - WHERE id IN (SELECT id FROM edges_to_expand) - - UNION - - SELECT unnest(contracted_vertices) - FROM vertices - WHERE id IN (SELECT id FROM vertices_to_expand) - ) - - SELECT id, source, target, cost, reverse_cost - FROM edges - WHERE source IN (SELECT * FROM vertices_in_graph) - AND target IN (SELECT * FROM vertices_in_graph) - $$, - departure, destination, false); -$BODY$ -LANGUAGE SQL VOLATILE; -CREATE FUNCTION -/* -- use3 */ -SELECT * FROM my_dijkstra(10, 12); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 10 | 12 | 10 | 5 | 1 | 0 - 2 | 2 | 10 | 12 | 11 | 11 | 1 | 1 - 3 | 3 | 10 | 12 | 12 | -1 | 0 | 2 -(3 rows) - -/* -- use3-1 */ -SELECT * FROM my_dijkstra(15, 12); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 15 | 12 | 15 | 16 | 1 | 0 - 2 | 2 | 15 | 12 | 16 | 21 | 2 | 1 - 3 | 3 | 15 | 12 | 12 | -1 | 0 | 3 -(3 rows) - -/* -- use3-2 */ -SELECT * FROM my_dijkstra(15, 1); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 15 | 1 | 15 | 3 | 1 | 0 - 2 | 2 | 15 | 1 | 10 | 19 | 2 | 1 - 3 | 3 | 15 | 1 | 7 | 7 | 1 | 3 - 4 | 4 | 15 | 1 | 3 | 6 | 1 | 4 - 5 | 5 | 15 | 1 | 1 | -1 | 0 | 5 -(5 rows) - -/* -- end */ -ROLLBACK; -ROLLBACK From daec4dddd6efb7774a6815f486dfcd6080e8e529 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Thu, 20 Mar 2025 13:32:11 -0600 Subject: [PATCH 119/141] (doc) documenting changes on release notes & NEWS --- NEWS.md | 11 +++++++++++ doc/src/release_notes.rst | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/NEWS.md b/NEWS.md index 9e9e048186..2b27e1ebf2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -27,6 +27,17 @@ * ``partial`` option is removed. * Function promoted to official. +**Official functions changes** + +* [#2786](https://github.com/pgRouting/pgrouting/issues/2786): pgr_contraction + + * 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) + + ## pgRouting 3.7 ### pgRouting 3.7.3 Release Notes diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index 1923acd802..a5109bcdcb 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -59,6 +59,15 @@ pgRouting 3.8.0 Release Notes :start-after: Version 3.8.0 :end-before: .. rubric +.. rubric:: Official functions changes + +* `#2786 `__: pgr_contraction + + .. include:: pgr_contraction.rst + :start-after: Version 3.8.0 + :end-before: .. rubric + + pgRouting 3.7 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From 6b454f033bc2b079f2c8f0e79436809c2eea36fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 04:11:34 +0000 Subject: [PATCH 120/141] Update locale: commit 7ea07eb9a --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 528 ++++++++---------- locale/pot/pgrouting_doc_strings.pot | 443 +++++++-------- 2 files changed, 443 insertions(+), 528 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 68f47f7aff..b1fbde5af5 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-08 16:36+0000\n" +"POT-Creation-Date: 2025-03-21 04:11+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2970,7 +2970,7 @@ msgstr "" msgid "Linear vertex on directed graph" msgstr "" -msgid "The white node is not linear because the linearity is not symetrical." +msgid "The white node is not linear because the linearity is not symmetrical." msgstr "" msgid "It is possible to go :math:`y \\rightarrow c \\rightarrow z`" @@ -3046,252 +3046,6 @@ msgid "" "contracted." msgstr "" -msgid "The cycle" -msgstr "" - -msgid "" -"Contracting a graph, can be done with more than one operation. The order " -"of the operations affect the resulting contracted graph, after applying " -"one operation, the set of vertices that can be contracted by another " -"operation changes." -msgstr "" - -msgid "" -"This implementation, cycles ``max_cycles`` times through " -"``operations_order`` ." -msgstr "" - -msgid "Contracting sample data" -msgstr "" - -msgid "" -"In this section, building and using a contracted graph will be shown by " -"example." -msgstr "" - -msgid "The :doc:`sampledata` for an undirected graph is used" -msgstr "" - -msgid "a dead end operation first followed by a linear operation." -msgstr "" - -msgid "Construction of the graph in the database" -msgstr "" - -msgid "Original Data" -msgstr "" - -msgid "" -"The following query shows the original data involved in the contraction " -"operation." -msgstr "" - -msgid "The original graph:" -msgstr "" - -msgid "Contraction results" -msgstr "" - -msgid "" -"The results do not represent the contracted graph. They represent the " -"changes done to the graph after applying the contraction algorithm." -msgstr "" - -msgid "" -"Observe that vertices, for example, :math:`6` do not appear in the " -"results because it was not affected by the contraction algorithm." -msgstr "" - -msgid "After doing the dead end contraction operation:" -msgstr "" - -msgid "After doing the linear contraction operation to the graph above:" -msgstr "" - -msgid "The process to create the contraction graph on the database:" -msgstr "" - -msgid "Add additional columns" -msgstr "" - -msgid "" -"Adding extra columns to the ``edge_table`` and " -"``edge_table_vertices_pgr`` tables, where:" -msgstr "" - -msgid "``contracted_vertices``" -msgstr "" - -msgid "The vertices set belonging to the vertex/edge" -msgstr "" - -msgid "``is_contracted``" -msgstr "" - -msgid "On the vertex table" -msgstr "" - -msgid "" -"when ``true`` the vertex is contracted, its not part of the contracted " -"graph." -msgstr "" - -msgid "" -"when ``false`` the vertex is not contracted, its part of the contracted " -"graph." -msgstr "" - -msgid "``is_new``" -msgstr "" - -msgid "On the edge table" -msgstr "" - -msgid "" -"when ``true`` the edge was generated by the contraction algorithm. its " -"part of the contracted graph." -msgstr "" - -msgid "" -"when ``false`` the edge is an original edge, might be or not part of the " -"contracted graph." -msgstr "" - -msgid "Store contraction information" -msgstr "" - -msgid "Store the `contraction results`_ in a table" -msgstr "" - -msgid "The vertex table update" -msgstr "" - -msgid "Use ``is_contracted`` column to indicate the vertices that are contracted." -msgstr "" - -msgid "" -"Fill ``contracted_vertices`` with the information from the results tha " -"belong to the vertices." -msgstr "" - -msgid "The modified vertices table:" -msgstr "" - -msgid "The edge table update" -msgstr "" - -msgid "Insert the new edges generated by pgr_contraction." -msgstr "" - -msgid "The modified ``edge_table``." -msgstr "" - -msgid "The contracted graph" -msgstr "" - -msgid "Vertices that belong to the contracted graph." -msgstr "" - -msgid "Edges that belong to the contracted graph." -msgstr "" - -msgid "Contracted graph" -msgstr "" - -msgid "Using the contracted graph" -msgstr "" - -msgid "Using the contracted graph with ``pgr_dijkstra``" -msgstr "" - -msgid "" -"There are three cases when calculating the shortest path between a given " -"source and target in a contracted graph:" -msgstr "" - -msgid "Case 1: Both source and target belong to the contracted graph." -msgstr "" - -msgid "Case 2: Source and/or target belong to an edge subgraph." -msgstr "" - -msgid "Case 3: Source and/or target belong to a vertex." -msgstr "" - -msgid "Using the `Edges that belong to the contracted graph.`_ on lines 11 to 20." -msgstr "" - -msgid "Case 1" -msgstr "" - -msgid "" -"When both source and target belong to the contracted graph, a path is " -"found." -msgstr "" - -msgid "Case 2" -msgstr "" - -msgid "" -"When source and/or target belong to an edge subgraph then a path is not " -"found." -msgstr "" - -msgid "" -"In this case, the contracted graph do not have an edge connecting with " -"node :math:`4`." -msgstr "" - -msgid "Case 3" -msgstr "" - -msgid "When source and/or target belong to a vertex then a path is not found." -msgstr "" - -msgid "" -"In this case, the contracted graph do not have an edge connecting with " -"node :math:`7` and of node :math:`4` of the second case." -msgstr "" - -msgid "Refining the above function to include nodes that belong to an edge." -msgstr "" - -msgid "The vertices that need to be expanded are calculated on lines 11 to 17." -msgstr "" - -msgid "Adding to the contracted graph that additional section on lines 26 to 28." -msgstr "" - -msgid "" -"When source and/or target belong to an edge subgraph, now, a path is " -"found." -msgstr "" - -msgid "The routing graph now has an edge connecting with node :math:`4`." -msgstr "" - -msgid "" -"In this case, the contracted graph do not have an edge connecting with " -"node :math:`7`." -msgstr "" - -msgid "The vertices that need to be expanded are calculated on lines 19 to 24." -msgstr "" - -msgid "Adding to the contracted graph that additional section on lines 38 to 40." -msgstr "" - -msgid "" -"The code change do not affect this case so when source and/or target " -"belong to an edge subgraph, a path is still found." -msgstr "" - -msgid "When source and/or target belong to a vertex, now, a path is found." -msgstr "" - -msgid "Now, the routing graph has an edge connecting with node :math:`7`." -msgstr "" - msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" @@ -4435,6 +4189,30 @@ msgstr "" msgid "``partial`` option is removed." msgstr "" +msgid "Official functions changes" +msgstr "" + +msgid "" +"`#2786 `__: " +"pgr_contraction" +msgstr "" + +msgid "New signature:" +msgstr "" + +msgid "" +"Previously compulsory parameter **Contraction order** is now optional " +"with name ``methods``." +msgstr "" + +msgid "New name and order of optional parameters." +msgstr "" + +msgid "" +"Deprecated signature " +"pgr_contraction(text,bigint[],integer,bigint[],boolean)" +msgstr "" + msgid "All releases" msgstr "" @@ -9562,6 +9340,9 @@ msgid "" "contracted vertices and edges." msgstr "" +msgid "Version 3.8.0" +msgstr "" + msgid "Name change from ``pgr_contractGraph``" msgstr "" @@ -9575,57 +9356,63 @@ msgid "" "graph algorithms." msgstr "" -msgid "Does not return the full contracted graph" +msgid "Does not return the full contracted graph." msgstr "" -msgid "Only changes on the graph are returned" +msgid "Only changes on the graph are returned." msgstr "" -msgid "Currnetly there are two types of contraction methods" +msgid "The returned values include:" msgstr "" -msgid "Dead End Contraction" +msgid "The new edges generated by linear contraction." msgstr "" -msgid "Linear Contraction" +msgid "The modified vertices generated by dead end contraction." msgstr "" -msgid "The returned values include" +msgid "The returned values are ordered as follows:" msgstr "" -msgid "the added edges by linear contraction." +msgid "column ``id`` ascending when its a modified vertex." msgstr "" -msgid "the modified vertices by dead end contraction." +msgid "column ``id`` with negative numbers descending when its a new edge." msgstr "" -msgid "The returned values are ordered as follows:" +msgid "" +"Currently there are two types of contraction methods included in this " +"function:" msgstr "" -msgid "column ``id`` ascending when type is ``v``" +msgid "Dead End Contraction. See :doc:`contraction-family`." msgstr "" -msgid "column ``id`` descending when type is ``e``" +msgid "Linear Contraction. See :doc:`contraction-family`." msgstr "" -msgid "The pgr_contraction function has the following signature:" +msgid "pgr_contraction(`Edges SQL`_, [**options**])" msgstr "" -msgid "pgr_contraction(`Edges SQL`_, **contraction order**, [**options**])" +msgid "**options:** ``[directed, methods, cycles, forbidden]``" msgstr "" -msgid "**options:** ``[ max_cycles, forbidden_vertices, directed]``" +msgid "Returns set of |result-contract|" msgstr "" -msgid "Returns set of |result-contract|" +msgid "Dead end and linear contraction in that order on an undirected graph." msgstr "" -msgid "" -"Making a dead end and linear contraction in that order on an undirected " -"graph." +msgid "Contraction optional parameters" msgstr "" -msgid "**contraction Order**" +msgid "``methods``" +msgstr "" + +msgid "``INTEGER[]``" +msgstr "" + +msgid "``ARRAY[1,2]``" msgstr "" msgid "Ordered contraction operations." @@ -9637,24 +9424,25 @@ msgstr "" msgid "2 = Linear contraction" msgstr "" -msgid "Contraction optional parameters" +msgid "``cycles``" msgstr "" -msgid "``forbidden_vertices``" +msgid ":math:`1`" msgstr "" -msgid "**Empty**" +msgid "Number of times the contraction methods will be performed." msgstr "" -msgid "Identifiers of vertices forbidden for contraction." +msgid "``forbidden``" msgstr "" -msgid ":math:`1`" +msgid "``BIGINT[]``" msgstr "" -msgid "" -"Number of times the contraction operations on ``contraction_order`` will " -"be performed." +msgid "``ARRAY[]::BIGINT[]``" +msgstr "" + +msgid "Identifiers of vertices forbidden for contraction." msgstr "" msgid "The function returns a single row. The columns of the row are:" @@ -9663,19 +9451,19 @@ msgstr "" msgid "``type``" msgstr "" -msgid "Type of the ``id``." +msgid "Type of the row." msgstr "" msgid "``v`` when the row is a vertex." msgstr "" -msgid "Column ``id`` has a positive value" +msgid "Column ``id`` has a positive value." msgstr "" msgid "``e`` when the row is an edge." msgstr "" -msgid "Column ``id`` has a negative value" +msgid "Column ``id`` has a negative value." msgstr "" msgid "All numbers on this column are ``DISTINCT``" @@ -9698,6 +9486,9 @@ msgid "" "edges." msgstr "" +msgid "``contracted_vertices``" +msgstr "" + msgid "Array of contracted vertex identifiers." msgstr "" @@ -9725,6 +9516,178 @@ msgstr "" msgid "Only linear contraction" msgstr "" +msgid "The cycle" +msgstr "" + +msgid "" +"Contracting a graph, can be done with more than one operation. The order " +"of the operations affect the resulting contracted graph, after applying " +"one operation, the set of vertices that can be contracted by another " +"operation changes." +msgstr "" + +msgid "This implementation, cycles ``cycles`` times through the ``methods`` ." +msgstr "" + +msgid "Contracting sample data" +msgstr "" + +msgid "" +"In this section, building and using a contracted graph will be shown by " +"example." +msgstr "" + +msgid "The :doc:`sampledata` for an undirected graph is used" +msgstr "" + +msgid "a dead end operation first followed by a linear operation." +msgstr "" + +msgid "Construction of the graph in the database" +msgstr "" + +msgid "The original graph:" +msgstr "" + +msgid "" +"The results do not represent the contracted graph. They represent the " +"changes that need to be done to the graph after applying the contraction " +"methods." +msgstr "" + +msgid "" +"Observe that vertices, for example, :math:`6` do not appear in the " +"results because it was not affected by the contraction algorithm." +msgstr "" + +msgid "After doing the dead end contraction operation:" +msgstr "" + +msgid "After doing the linear contraction operation to the graph above:" +msgstr "" + +msgid "The process to create the contraction graph on the database:" +msgstr "" + +msgid "Add additional columns" +msgstr "" + +msgid "" +"Adding extra columns to the edges and vertices tables. In this " +"documentation the following will be used:" +msgstr "" + +msgid "Column." +msgstr "" + +msgid "The vertices set belonging to the vertex/edge" +msgstr "" + +msgid "``is_contracted``" +msgstr "" + +msgid "On the vertex table" +msgstr "" + +msgid "" +"when ``true`` the vertex is contracted, its not part of the contracted " +"graph." +msgstr "" + +msgid "" +"when ``false`` the vertex is not contracted, its part of the contracted " +"graph." +msgstr "" + +msgid "``is_new``" +msgstr "" + +msgid "On the edge table" +msgstr "" + +msgid "" +"when ``true`` the edge was generated by the contraction algorithm. its " +"part of the contracted graph." +msgstr "" + +msgid "" +"when ``false`` the edge is an original edge, might be or not part of the " +"contracted graph." +msgstr "" + +msgid "Store contraction information" +msgstr "" + +msgid "Store the contraction results in a table." +msgstr "" + +msgid "Update the edges and vertices tables" +msgstr "" + +msgid "Use ``is_contracted`` column to indicate the vertices that are contracted." +msgstr "" + +msgid "" +"Fill ``contracted_vertices`` with the information from the results that " +"belong to the vertices." +msgstr "" + +msgid "Insert the new edges generated by pgr_contraction." +msgstr "" + +msgid "The contracted graph" +msgstr "" + +msgid "Vertices that belong to the contracted graph." +msgstr "" + +msgid "Edges that belong to the contracted graph." +msgstr "" + +msgid "Visually:" +msgstr "" + +msgid "Using the contracted graph" +msgstr "" + +msgid "" +"Depending on the final application the graph is to be prepared. In this " +"example the final application will be to calculate the cost from two " +"vertices in the original graph by using the contracted graph with " +"``pgr_dijkstraCost``" +msgstr "" + +msgid "" +"There are three cases when calculating the shortest path between a given " +"source and target in a contracted graph:" +msgstr "" + +msgid "Case 1: Both source and target belong to the contracted graph." +msgstr "" + +msgid "Case 2: Source and/or target belong to an edge subgraph." +msgstr "" + +msgid "Case 3: Source and/or target belong to a vertex." +msgstr "" + +msgid "The final application should consider all of those cases." +msgstr "" + +msgid "Create a view (or table) of the contracted graph:" +msgstr "" + +msgid "Create the function that will use the contracted graph." +msgstr "" + +msgid "" +"Case 2: Source and/or target belong to an edge that has contracted " +"vertices." +msgstr "" + +msgid "Case 3: Source and/or target belong to a vertex that has been contracted." +msgstr "" + msgid "``pgr_createTopology``" msgstr "" @@ -10245,9 +10208,6 @@ msgid "" " of edges incident to the vertex." msgstr "" -msgid "Version 3.8.0" -msgstr "" - msgid "Calculates the degree of the vertices of an undirected graph" msgstr "" @@ -10343,9 +10303,6 @@ msgstr "" msgid "``in_edges``" msgstr "" -msgid "``BIGINT[]``" -msgstr "" - msgid "" "Array of identifiers of the edges that have the vertex ``id`` as *first " "end point*." @@ -15441,9 +15398,6 @@ msgstr "" msgid "pgr_betweennessCentrality" msgstr "" -msgid "Official functions changes" -msgstr "" - msgid "" "`#2605 `__ Standardize " "spanning tree functions output" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index d153b50311..62a8f0203a 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-08 16:36+0000\n" +"POT-Creation-Date: 2025-03-21 04:11+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2725,7 +2725,7 @@ msgstr "" msgid "Linear vertex on directed graph" msgstr "" -msgid "The white node is not linear because the linearity is not symetrical." +msgid "The white node is not linear because the linearity is not symmetrical." msgstr "" msgid "It is possible to go :math:`y \\rightarrow c \\rightarrow z`" @@ -2785,210 +2785,6 @@ msgstr "" msgid "Edge :math:`u \\rightarrow z` has the information of nodes that were contracted." msgstr "" -msgid "The cycle" -msgstr "" - -msgid "Contracting a graph, can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes." -msgstr "" - -msgid "This implementation, cycles ``max_cycles`` times through ``operations_order`` ." -msgstr "" - -msgid "Contracting sample data" -msgstr "" - -msgid "In this section, building and using a contracted graph will be shown by example." -msgstr "" - -msgid "The :doc:`sampledata` for an undirected graph is used" -msgstr "" - -msgid "a dead end operation first followed by a linear operation." -msgstr "" - -msgid "Construction of the graph in the database" -msgstr "" - -msgid "Original Data" -msgstr "" - -msgid "The following query shows the original data involved in the contraction operation." -msgstr "" - -msgid "The original graph:" -msgstr "" - -msgid "Contraction results" -msgstr "" - -msgid "The results do not represent the contracted graph. They represent the changes done to the graph after applying the contraction algorithm." -msgstr "" - -msgid "Observe that vertices, for example, :math:`6` do not appear in the results because it was not affected by the contraction algorithm." -msgstr "" - -msgid "After doing the dead end contraction operation:" -msgstr "" - -msgid "After doing the linear contraction operation to the graph above:" -msgstr "" - -msgid "The process to create the contraction graph on the database:" -msgstr "" - -msgid "Add additional columns" -msgstr "" - -msgid "Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` tables, where:" -msgstr "" - -msgid "``contracted_vertices``" -msgstr "" - -msgid "The vertices set belonging to the vertex/edge" -msgstr "" - -msgid "``is_contracted``" -msgstr "" - -msgid "On the vertex table" -msgstr "" - -msgid "when ``true`` the vertex is contracted, its not part of the contracted graph." -msgstr "" - -msgid "when ``false`` the vertex is not contracted, its part of the contracted graph." -msgstr "" - -msgid "``is_new``" -msgstr "" - -msgid "On the edge table" -msgstr "" - -msgid "when ``true`` the edge was generated by the contraction algorithm. its part of the contracted graph." -msgstr "" - -msgid "when ``false`` the edge is an original edge, might be or not part of the contracted graph." -msgstr "" - -msgid "Store contraction information" -msgstr "" - -msgid "Store the `contraction results`_ in a table" -msgstr "" - -msgid "The vertex table update" -msgstr "" - -msgid "Use ``is_contracted`` column to indicate the vertices that are contracted." -msgstr "" - -msgid "Fill ``contracted_vertices`` with the information from the results tha belong to the vertices." -msgstr "" - -msgid "The modified vertices table:" -msgstr "" - -msgid "The edge table update" -msgstr "" - -msgid "Insert the new edges generated by pgr_contraction." -msgstr "" - -msgid "The modified ``edge_table``." -msgstr "" - -msgid "The contracted graph" -msgstr "" - -msgid "Vertices that belong to the contracted graph." -msgstr "" - -msgid "Edges that belong to the contracted graph." -msgstr "" - -msgid "Contracted graph" -msgstr "" - -msgid "Using the contracted graph" -msgstr "" - -msgid "Using the contracted graph with ``pgr_dijkstra``" -msgstr "" - -msgid "There are three cases when calculating the shortest path between a given source and target in a contracted graph:" -msgstr "" - -msgid "Case 1: Both source and target belong to the contracted graph." -msgstr "" - -msgid "Case 2: Source and/or target belong to an edge subgraph." -msgstr "" - -msgid "Case 3: Source and/or target belong to a vertex." -msgstr "" - -msgid "Using the `Edges that belong to the contracted graph.`_ on lines 11 to 20." -msgstr "" - -msgid "Case 1" -msgstr "" - -msgid "When both source and target belong to the contracted graph, a path is found." -msgstr "" - -msgid "Case 2" -msgstr "" - -msgid "When source and/or target belong to an edge subgraph then a path is not found." -msgstr "" - -msgid "In this case, the contracted graph do not have an edge connecting with node :math:`4`." -msgstr "" - -msgid "Case 3" -msgstr "" - -msgid "When source and/or target belong to a vertex then a path is not found." -msgstr "" - -msgid "In this case, the contracted graph do not have an edge connecting with node :math:`7` and of node :math:`4` of the second case." -msgstr "" - -msgid "Refining the above function to include nodes that belong to an edge." -msgstr "" - -msgid "The vertices that need to be expanded are calculated on lines 11 to 17." -msgstr "" - -msgid "Adding to the contracted graph that additional section on lines 26 to 28." -msgstr "" - -msgid "When source and/or target belong to an edge subgraph, now, a path is found." -msgstr "" - -msgid "The routing graph now has an edge connecting with node :math:`4`." -msgstr "" - -msgid "In this case, the contracted graph do not have an edge connecting with node :math:`7`." -msgstr "" - -msgid "The vertices that need to be expanded are calculated on lines 19 to 24." -msgstr "" - -msgid "Adding to the contracted graph that additional section on lines 38 to 40." -msgstr "" - -msgid "The code change do not affect this case so when source and/or target belong to an edge subgraph, a path is still found." -msgstr "" - -msgid "When source and/or target belong to a vertex, now, a path is found." -msgstr "" - -msgid "Now, the routing graph has an edge connecting with node :math:`7`." -msgstr "" - msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" @@ -3955,6 +3751,24 @@ msgstr "" msgid "``partial`` option is removed." msgstr "" +msgid "Official functions changes" +msgstr "" + +msgid "`#2786 `__: pgr_contraction" +msgstr "" + +msgid "New signature:" +msgstr "" + +msgid "Previously compulsory parameter **Contraction order** is now optional with name ``methods``." +msgstr "" + +msgid "New name and order of optional parameters." +msgstr "" + +msgid "Deprecated signature pgr_contraction(text,bigint[],integer,bigint[],boolean)" +msgstr "" + msgid "All releases" msgstr "" @@ -8200,6 +8014,9 @@ msgstr "" msgid "``pgr_contraction`` — Performs graph contraction and returns the contracted vertices and edges." msgstr "" +msgid "Version 3.8.0" +msgstr "" + msgid "Name change from ``pgr_contractGraph``" msgstr "" @@ -8209,55 +8026,61 @@ msgstr "" msgid "Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms." msgstr "" -msgid "Does not return the full contracted graph" +msgid "Does not return the full contracted graph." msgstr "" -msgid "Only changes on the graph are returned" +msgid "Only changes on the graph are returned." msgstr "" -msgid "Currnetly there are two types of contraction methods" +msgid "The returned values include:" msgstr "" -msgid "Dead End Contraction" +msgid "The new edges generated by linear contraction." msgstr "" -msgid "Linear Contraction" +msgid "The modified vertices generated by dead end contraction." msgstr "" -msgid "The returned values include" +msgid "The returned values are ordered as follows:" msgstr "" -msgid "the added edges by linear contraction." +msgid "column ``id`` ascending when its a modified vertex." msgstr "" -msgid "the modified vertices by dead end contraction." +msgid "column ``id`` with negative numbers descending when its a new edge." msgstr "" -msgid "The returned values are ordered as follows:" +msgid "Currently there are two types of contraction methods included in this function:" msgstr "" -msgid "column ``id`` ascending when type is ``v``" +msgid "Dead End Contraction. See :doc:`contraction-family`." msgstr "" -msgid "column ``id`` descending when type is ``e``" +msgid "Linear Contraction. See :doc:`contraction-family`." msgstr "" -msgid "The pgr_contraction function has the following signature:" +msgid "pgr_contraction(`Edges SQL`_, [**options**])" msgstr "" -msgid "pgr_contraction(`Edges SQL`_, **contraction order**, [**options**])" +msgid "**options:** ``[directed, methods, cycles, forbidden]``" msgstr "" -msgid "**options:** ``[ max_cycles, forbidden_vertices, directed]``" +msgid "Returns set of |result-contract|" msgstr "" -msgid "Returns set of |result-contract|" +msgid "Dead end and linear contraction in that order on an undirected graph." +msgstr "" + +msgid "Contraction optional parameters" msgstr "" -msgid "Making a dead end and linear contraction in that order on an undirected graph." +msgid "``methods``" msgstr "" -msgid "**contraction Order**" +msgid "``INTEGER[]``" +msgstr "" + +msgid "``ARRAY[1,2]``" msgstr "" msgid "Ordered contraction operations." @@ -8269,22 +8092,25 @@ msgstr "" msgid "2 = Linear contraction" msgstr "" -msgid "Contraction optional parameters" +msgid "``cycles``" msgstr "" -msgid "``forbidden_vertices``" +msgid ":math:`1`" msgstr "" -msgid "**Empty**" +msgid "Number of times the contraction methods will be performed." msgstr "" -msgid "Identifiers of vertices forbidden for contraction." +msgid "``forbidden``" msgstr "" -msgid ":math:`1`" +msgid "``BIGINT[]``" msgstr "" -msgid "Number of times the contraction operations on ``contraction_order`` will be performed." +msgid "``ARRAY[]::BIGINT[]``" +msgstr "" + +msgid "Identifiers of vertices forbidden for contraction." msgstr "" msgid "The function returns a single row. The columns of the row are:" @@ -8293,19 +8119,19 @@ msgstr "" msgid "``type``" msgstr "" -msgid "Type of the ``id``." +msgid "Type of the row." msgstr "" msgid "``v`` when the row is a vertex." msgstr "" -msgid "Column ``id`` has a positive value" +msgid "Column ``id`` has a positive value." msgstr "" msgid "``e`` when the row is an edge." msgstr "" -msgid "Column ``id`` has a negative value" +msgid "Column ``id`` has a negative value." msgstr "" msgid "All numbers on this column are ``DISTINCT``" @@ -8326,6 +8152,9 @@ msgstr "" msgid "Representing a pseudo `id` as is not incorporated in the set of original edges." msgstr "" +msgid "``contracted_vertices``" +msgstr "" + msgid "Array of contracted vertex identifiers." msgstr "" @@ -8347,6 +8176,147 @@ msgstr "" msgid "Only linear contraction" msgstr "" +msgid "The cycle" +msgstr "" + +msgid "Contracting a graph, can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes." +msgstr "" + +msgid "This implementation, cycles ``cycles`` times through the ``methods`` ." +msgstr "" + +msgid "Contracting sample data" +msgstr "" + +msgid "In this section, building and using a contracted graph will be shown by example." +msgstr "" + +msgid "The :doc:`sampledata` for an undirected graph is used" +msgstr "" + +msgid "a dead end operation first followed by a linear operation." +msgstr "" + +msgid "Construction of the graph in the database" +msgstr "" + +msgid "The original graph:" +msgstr "" + +msgid "The results do not represent the contracted graph. They represent the changes that need to be done to the graph after applying the contraction methods." +msgstr "" + +msgid "Observe that vertices, for example, :math:`6` do not appear in the results because it was not affected by the contraction algorithm." +msgstr "" + +msgid "After doing the dead end contraction operation:" +msgstr "" + +msgid "After doing the linear contraction operation to the graph above:" +msgstr "" + +msgid "The process to create the contraction graph on the database:" +msgstr "" + +msgid "Add additional columns" +msgstr "" + +msgid "Adding extra columns to the edges and vertices tables. In this documentation the following will be used:" +msgstr "" + +msgid "Column." +msgstr "" + +msgid "The vertices set belonging to the vertex/edge" +msgstr "" + +msgid "``is_contracted``" +msgstr "" + +msgid "On the vertex table" +msgstr "" + +msgid "when ``true`` the vertex is contracted, its not part of the contracted graph." +msgstr "" + +msgid "when ``false`` the vertex is not contracted, its part of the contracted graph." +msgstr "" + +msgid "``is_new``" +msgstr "" + +msgid "On the edge table" +msgstr "" + +msgid "when ``true`` the edge was generated by the contraction algorithm. its part of the contracted graph." +msgstr "" + +msgid "when ``false`` the edge is an original edge, might be or not part of the contracted graph." +msgstr "" + +msgid "Store contraction information" +msgstr "" + +msgid "Store the contraction results in a table." +msgstr "" + +msgid "Update the edges and vertices tables" +msgstr "" + +msgid "Use ``is_contracted`` column to indicate the vertices that are contracted." +msgstr "" + +msgid "Fill ``contracted_vertices`` with the information from the results that belong to the vertices." +msgstr "" + +msgid "Insert the new edges generated by pgr_contraction." +msgstr "" + +msgid "The contracted graph" +msgstr "" + +msgid "Vertices that belong to the contracted graph." +msgstr "" + +msgid "Edges that belong to the contracted graph." +msgstr "" + +msgid "Visually:" +msgstr "" + +msgid "Using the contracted graph" +msgstr "" + +msgid "Depending on the final application the graph is to be prepared. In this example the final application will be to calculate the cost from two vertices in the original graph by using the contracted graph with ``pgr_dijkstraCost``" +msgstr "" + +msgid "There are three cases when calculating the shortest path between a given source and target in a contracted graph:" +msgstr "" + +msgid "Case 1: Both source and target belong to the contracted graph." +msgstr "" + +msgid "Case 2: Source and/or target belong to an edge subgraph." +msgstr "" + +msgid "Case 3: Source and/or target belong to a vertex." +msgstr "" + +msgid "The final application should consider all of those cases." +msgstr "" + +msgid "Create a view (or table) of the contracted graph:" +msgstr "" + +msgid "Create the function that will use the contracted graph." +msgstr "" + +msgid "Case 2: Source and/or target belong to an edge that has contracted vertices." +msgstr "" + +msgid "Case 3: Source and/or target belong to a vertex that has been contracted." +msgstr "" + msgid "``pgr_createTopology``" msgstr "" @@ -8752,9 +8722,6 @@ msgstr "" msgid "``pgr_degree`` — For each vertex in an undirected graph, return the count of edges incident to the vertex." msgstr "" -msgid "Version 3.8.0" -msgstr "" - msgid "Calculates the degree of the vertices of an undirected graph" msgstr "" @@ -8839,9 +8806,6 @@ msgstr "" msgid "``in_edges``" msgstr "" -msgid "``BIGINT[]``" -msgstr "" - msgid "Array of identifiers of the edges that have the vertex ``id`` as *first end point*." msgstr "" @@ -12973,9 +12937,6 @@ msgstr "" msgid "pgr_betweennessCentrality" msgstr "" -msgid "Official functions changes" -msgstr "" - msgid "`#2605 `__ Standardize spanning tree functions output" msgstr "" From cf2eaf11d35cada8ae526b719edc379a7be97820 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 10:47:46 -0600 Subject: [PATCH 121/141] (contraction/pgtap) moving functions to function file --- .../edge_cases/compare_dijkstra_deadend.pg | 75 +- .../edge_cases/compare_dijkstra_linear.pg | 93 +-- .../edge_cases/edge_cases_deadend.pg | 273 +------ .../edge_cases/edge_cases_linear.pg | 259 +------ tools/testers/contraction_tapfuncs.sql | 671 ++++++++++++++++++ 5 files changed, 688 insertions(+), 683 deletions(-) diff --git a/pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg index e96cb05ac2..c38db3041b 100644 --- a/pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg +++ b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_deadend.pg @@ -24,86 +24,15 @@ UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(revers ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; -CREATE OR REPLACE FUNCTION check_cg(BOOLEAN) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - IF NOT min_version('3.8.0') THEN - RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); - RETURN; - END IF; - - IF $1 THEN - RETURN QUERY - SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, - $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), - ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); - - RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); - - PREPARE c_expected_graph AS - SELECT source, target, cost, reverse_cost - FROM (VALUES - (16,17,'1.225'::TEXT,'1.225'::TEXT), - (10,15,'-0.991','1.009'), - (12,17,'1.169','-0.831'), - (15,16,'1.256','1.256'), - (6, 10, '-0.996', '1.004'), - (6, 7, '1.016', '1.016'), - (10, 11, '1.025', '-0.975'), - (7, 11, '1.064', '1.064'), - (11, 16, '1.081', '1.081'), - (11, 12, '1.121', '-0.879'), - (8, 12, '1.144', '-0.856'), - (7, 8, '1.100', '1.100')) - AS t(source, target, cost, reverse_cost); - - RETURN QUERY - SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', - 'c_expected_graph', 'The contracted graph'); - ELSE - RETURN QUERY - SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, - $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), - ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); - - RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); - - PREPARE c_expected_graph AS - SELECT source, target, cost, reverse_cost - FROM (VALUES - (6, 10, '-0.996', '1.004'), - (6, 7, '1.016', '1.016'), - (10, 11, '1.025', '-0.975'), - (7, 11, '1.064', '1.064'), - (11, 16, '1.081', '1.081'), - (11, 12, '1.121', '-0.879'), - (8, 12, '1.144', '-0.856'), - (7, 8, '1.100', '1.100'), - (16,17,'1.225'::TEXT,'1.225'::TEXT), - (10,15,'-0.991','1.009'), - (12,17,'1.169','-0.831'), - (15,16,'1.256','1.256')) - AS t(source, target, cost, reverse_cost); - - RETURN QUERY - SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', - 'c_expected_graph', 'The contracted graph'); - - END IF; - DEALLOCATE PREPARE c_expected_graph; -END -$BODY$ -LANGUAGE plpgsql; CALL create_contracted_graph(false,'pgr_contraction', ARRAY[1]); -SELECT check_cg(false); +SELECT check_contracted_graph_deadend(false); SELECT compare_dijkstra_contraction(false); CALL create_contracted_graph(true,'pgr_contraction', ARRAY[1]); -SELECT check_cg(true); +SELECT check_contracted_graph_deadend(true); SELECT compare_dijkstra_contraction(true); SELECT finish(); diff --git a/pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg index 87be224389..42f800e7f1 100644 --- a/pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg +++ b/pgtap/contraction/contraction/edge_cases/compare_dijkstra_linear.pg @@ -24,101 +24,12 @@ UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(revers ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; -CREATE OR REPLACE FUNCTION check_cg(BOOLEAN) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - - IF NOT min_version('3.8.0') THEN - RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); - RETURN; - END IF; - - IF $1 THEN - RETURN QUERY - SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, - $$ VALUES ('e',-1,ARRAY[3],7,1), ('e',-2,ARRAY[3],1,7)$$, 'The edges') ; - - RETURN QUERY - SELECT set_eq( - $$SELECT id FROM edges WHERE is_new$$, - $$SELECT unnest(ARRAY[19, 20])$$, 'The vertices' - ); - - PREPARE c_expected_graph AS - SELECT source, target, cost, reverse_cost - FROM (VALUES - (16,17,'1.225'::TEXT,'1.225'::TEXT), - (10,15,'-0.991','1.009'), - (12,17,'1.169','-0.831'), - (15,16,'1.256','1.256'), - (6, 10, '-0.996', '1.004'), - (6, 7, '1.016', '1.016'), - (10, 11, '1.025', '-0.975'), - (7, 11, '1.064', '1.064'), - (11, 16, '1.081', '1.081'), - (11, 12, '1.121', '-0.879'), - (8, 12, '1.144', '-0.856'), - (7, 8, '1.100', '1.100'), - (1,7,'2.085','-1.000'), - (7,1,'2.085','-1.000'), - (5, 6, '1.001', '1.001'), - (8, 9, '1.196', '1.196'), - (2, 4, '1.289', '1.289'), - (13, 14, '1.324', '1.324')) - AS t(source, target, cost, reverse_cost); - - RETURN QUERY - SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', - 'c_expected_graph', 'The contracted graph'); - ELSE - RETURN QUERY - SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, - $$ VALUES ('e',-3,ARRAY[17],16,12), ('e',-2,ARRAY[3],7,1), ('e', -1, ARRAY[15], 10, 16)$$) ; - - RETURN QUERY - SELECT set_eq( - $$SELECT id FROM edges WHERE is_new$$, - $$SELECT unnest(ARRAY[19, 20, 21])$$ - ); - - PREPARE c_expected_graph AS - SELECT source, target, cost, reverse_cost - FROM (VALUES - (6, 10, '-0.996', '1.004'), - (6, 7, '1.016', '1.016'), - (10, 11, '1.025', '-0.975'), - (7, 11, '1.064', '1.064'), - (11, 16, '1.081', '1.081'), - (11, 12, '1.121', '-0.879'), - (8, 12, '1.144', '-0.856'), - (7, 8, '1.100', '1.100'), - (10,16,'2.265','-1.000'), - (7,1,'2.085','-1.000'), - (16,12,'2.394','-1.000'), - (5, 6, '1.001', '1.001'), - (8, 9, '1.196', '1.196'), - (2, 4, '1.289', '1.289'), - (13, 14, '1.324', '1.324')) - AS t(source, target, cost, reverse_cost); - - RETURN QUERY - SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', - 'c_expected_graph', 'The contracted graph'); - - END IF; - DEALLOCATE PREPARE c_expected_graph; -END -$BODY$ -LANGUAGE plpgsql; - - CALL create_contracted_graph(false,'pgr_contraction', ARRAY[2]); -SELECT check_cg(false); +SELECT check_contracted_graph_linear(false); SELECT compare_dijkstra_contraction(false); CALL create_contracted_graph(true,'pgr_contraction', ARRAY[2]); -SELECT check_cg(true); +SELECT check_contracted_graph_linear(true); SELECT compare_dijkstra_contraction(true); SELECT finish(); diff --git a/pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg b/pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg index c26ac6ddc6..b0dd533ff7 100644 --- a/pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg +++ b/pgtap/contraction/contraction/edge_cases/edge_cases_deadend.pg @@ -21,268 +21,6 @@ BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); SELECT CASE WHEN min_version('3.8.0') THEN plan(128) ELSE plan(1) END; -CREATE TABLE graphs ( - id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, - source BIGINT, - target BIGINT, - cost BIGINT default 1, - reverse_cost BIGINT default 1, - dead_case INTEGER -); - -/* 2 -- {3 -- 4} ; 3 -- 4 */ -INSERT INTO graphs(source, target, dead_case) -VALUES -(2, 3, 0), -(2, 4, 0), -(3, 4, 0); - -INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) -VALUES -/* 2->{3->4 [dir=both]} [dir=both]; 1->2 */ -(1, 2, 1, -1, 1), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1 */ -(2, 1, 1, -1, 2), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1 [dir=both] */ -(1, 2, 1, 1, 3), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1,2->1 */ -(2, 1, 1, -1, 4), -(2, 1, 1, -1, 4), - -/* 2->{3->4 [dir=both]} [dir=both]; {2,3}->1 */ -(2, 1, 1, -1, 5), -(3, 1, 1, -1, 5), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1;2->1;3->1 */ -(2, 1, 1, -1, 6), -(2, 1, 1, -1, 6), -(3, 1, 1, -1, 6); - -CREATE TABLE results ( - type text, - id INTEGER, - contracted_vertices BIGINT[], - result_case INTEGER -); - -INSERT INTO results(type, id, contracted_vertices, result_case) -VALUES -('v',6,ARRAY[5]::BIGINT[], 1), -('v',5,ARRAY[6], 2), -('v',15,ARRAY[10], 3), -('v',10,ARRAY[15], 4), -('v',12,ARRAY[8], 5), -('v',8,ARRAY[12], 6), -('v',15,ARRAY[6,10], 7), -('v',6,ARRAY[10,15], 8), -('v',10,ARRAY[6,15], 9), -('v',10,ARRAY[15], 10), -('v',10,ARRAY[6], 11), -('v',8,ARRAY[11,12], 12), -('v',8,ARRAY[12], 13), -('v',11,ARRAY[12], 13), -('v',11,ARRAY[8,12], 113), -('v',12,ARRAY[8,11], 14), -('v',12,ARRAY[11], 15), - -('v',10,ARRAY[6], 16), -('v',12,ARRAY[8], 16), -('v',6,ARRAY[10], 17), -('v',12,ARRAY[8], 17), -('v',10,ARRAY[6], 18), -('v',8,ARRAY[12], 18), -('v',6,ARRAY[10], 19), -('v',8,ARRAY[12], 19), -('v',6,ARRAY[10], 20), - -('v',17,ARRAY[10,11,12], 21), -('v',10,ARRAY[11,12,17], 22), -('v',11,ARRAY[10,12,17], 23), -('v',12,ARRAY[10,11,17], 24), - -('v',8,ARRAY[9], 25), -('v',7,ARRAY[1,3], 25), -('v',6,ARRAY[5], 25), - -('v',8,ARRAY[9], 26), -('v',3,ARRAY[1], 26), -('v',6,ARRAY[5], 26) - -; - -prepare get_solution(integer, integer, text) AS -WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) -SELECT type,id,contracted_vertices FROM results, a WHERE result_case = r; - -CREATE OR REPLACE FUNCTION edge_cases_sampledata(directed text) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - - -- SINGLE edge - - RETURN QUERY - SELECT set_eq($$"graph1" ('1','{}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('1','{6}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 5'); - RETURN QUERY - SELECT set_eq($$"graph1" ('1','{5}',$$||directed||$$)$$, $$"get_solution" (2,2,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 6'); - RETURN QUERY - SELECT is_empty($$"graph1" ('1','{5,6}',$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 5,6'); - - RETURN QUERY - SELECT set_eq($$"graph1" ('3','{}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3','{10}',$$||directed||$$)$$, $$"get_solution" (4,4,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3','{15}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 15'); - RETURN QUERY - SELECT is_empty($$"graph1" ('3','{10,15}',$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 10,15'); - - RETURN QUERY - SELECT set_eq($$"graph1" ('12','{}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('12','{8}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('12','{12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 12'); - - -- TWO edges - - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{6}',$$||directed||$$)$$, $$"get_solution" (8,8,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{10}',$$||directed||$$)$$, $$"get_solution" (9,9,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{15}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 15'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{6,10}',$$||directed||$$)$$, $$"get_solution" (10,10,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10'); - RETURN QUERY - SELECT is_empty($$"graph1" ('2,3','{6,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,15'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{10,15}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10,15'); - RETURN QUERY - SELECT is_empty($$"graph1" ('2,3','{6,10,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10,15'); - - - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{8}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{11}',$$||directed||$$)$$, $$"get_solution" (13,113,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{12}',$$||directed||$$)$$, $$"get_solution" (14,14,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{8,11}',$$||directed||$$)$$, $$"get_solution" (13,213,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (15,15,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{11,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11,12'); - RETURN QUERY - SELECT is_empty($$"graph1" ('11,12','{8,11,12}',$$||directed||$$)$$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11,12'); - - - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{10}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{12}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,8}',$$||directed||$$)$$, $$"get_solution" (19,19,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,10}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,12}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8,10}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,8,10}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,8,12}',$$||directed||$$)$$, $$"get_solution" (20,20,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,10,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8,10,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10,12'); - RETURN QUERY - SELECT is_empty($$"graph1" ('2,12','{6,8,10,12}',$$||directed||$$)$$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10,12'); - - - -- THREE edges - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{10}',$$||directed||$$)$$, $$"get_solution" (22,22,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{11}',$$||directed||$$)$$, $$"get_solution" (23,23,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{12}',$$||directed||$$)$$, $$"get_solution" (24,24,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{17}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 17'); - RETURN QUERY - SELECT is_empty($$"graph1" ('5,11,13','{10,17}',$$||directed||$$)$$, '10 -> 11 -> 12 -> 17: Directed Directed=' || directed ||', forbid 10,17'); - - -- The graph1 - RETURN QUERY - SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{}',$$||directed||$$)$$, $$"get_solution" (25,25,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{3}',$$||directed||$$)$$, $$"get_solution" (26,26,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', forbid 3'); - -END; -$BODY$ -LANGUAGE plpgsql; - - -CREATE OR REPLACE FUNCTION edge_cases(directed text) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - -RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('1',%1$s)$$,directed), 'not empty graph: 1,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 1,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'not empty graph: 0,1,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,1,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'not empty graph: 0,2,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,2',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,2,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,3,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed) ; - -RETURN QUERY -SELECT CASE WHEN directed::BOOLEAN THEN - collect_tap( - isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), - set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed), - isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed), - set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,6,'||directed)) -ELSE - collect_tap( - is_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), - is_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed)) -END; - -END; -$BODY$ -LANGUAGE plpgsql; - CREATE OR REPLACE FUNCTION edge_cases() RETURNS SETOF TEXT AS $BODY$ @@ -294,6 +32,9 @@ BEGIN RETURN; END IF; + CALL create_deadend_edge_cases(); + + PREPARE graph1(text,text,text) AS SELECT type, id, contracted_vertices FROM pgr_contraction( format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER BY id$$, $1), @@ -304,10 +45,10 @@ BEGIN format($$SELECT * FROM graphs WHERE dead_case IN (%1$s) ORDER BY id$$, $1), $2::boolean,ARRAY[1]); - RETURN QUERY SELECT edge_cases('true'); - RETURN QUERY SELECT edge_cases('false'); - RETURN QUERY SELECT edge_cases_sampledata('true'); - RETURN QUERY SELECT edge_cases_sampledata('false'); + RETURN QUERY SELECT deadend_edge_cases('true'); + RETURN QUERY SELECT deadend_edge_cases('false'); + RETURN QUERY SELECT deadend_edge_cases_sampledata('true'); + RETURN QUERY SELECT deadend_edge_cases_sampledata('false'); END; $BODY$ diff --git a/pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg b/pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg index 800afda4c4..7eeceaae63 100644 --- a/pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg +++ b/pgtap/contraction/contraction/edge_cases/edge_cases_linear.pg @@ -21,255 +21,6 @@ BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); SELECT CASE WHEN min_version('3.8.0') THEN plan(112) ELSE plan(1) END; -CREATE TABLE graphs ( - id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, - source BIGINT, - target BIGINT, - cost BIGINT default 1, - reverse_cost BIGINT default 1, - dead_case INTEGER -); - -/* 11 -> {12 -> {13, 14} [dir=both]} [dir=both]; 13 ->14 [dir=both] */ -INSERT INTO graphs(source, target, dead_case) -VALUES -(11, 12, 0), -(11, 13, 0), -(11, 14, 0), -(12, 13, 0), -(12, 14, 0), -(13, 14, 0); - -INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) -VALUES -/* 1->11 */ -(1, 11, 1, -1, 1), - -/* 11->1 */ -(11, 1, 1, -1, 2), - -/* 1 -> 2 -> 11 */ -(1, 2, 1, -1, 3), -(2, 11, 1, -1, 3), - -/* 11 -> 2 -> 1 */ -(11, 2, 1, -1, 4), -(2, 1, 1, -1, 4), - -/* 11 -> 2 [dir=both]; 2 -> 1 [dir=both] */ -(11, 2, 1, 1, 5), -(2, 1, 1, 1, 5), - -/* 11 -> {1,3} [dir=both]; 1->3 [dir=both]*/ -(11, 1, 1, 1, 6), -(1, 3, 1, 1, 6), -(3, 11, 1, 1, 6), - -/* 11 -> {1,3} [dir=both]; 2 -> {1,3} [dir=both]; 2->3 [dir=both]*/ -(11, 1, 1, 1, 7), -(1, 2, 1, 1, 7), -(2, 3, 1, 1, 7), -(3, 11, 1, -1, 7); - -CREATE TABLE results ( - type text, - contracted_vertices BIGINT[], - source BIGINT, - target BIGINT, - cost FLOAT, - result_case INTEGER -); - -INSERT INTO results(type, contracted_vertices, source, target, cost, result_case) -VALUES -('e',ARRAY[3]::BIGINT[],1,7,2, 1), -('e',ARRAY[3],7,1,2, 1), -('e',ARRAY[3],1,7,2, 2), -('e',ARRAY[3],7,1,2, 2), -('e',ARRAY[3,7],1,11,3, 3), -('e',ARRAY[3,7],11,1,3, 3), -('e',ARRAY[7],3,11,2, 4), -('e',ARRAY[7],11,3,2, 4), -('e',ARRAY[16],15,11,2, 5), -('e',ARRAY[16],11,15,2, 5), -('e',ARRAY[10],15,11,2, 5), -('e',ARRAY[16],15,11,2, 6), -('e',ARRAY[16],11,15,2, 6), -('e',ARRAY[10],15,11,2, 7), -('e',ARRAY[7],6,11,2, 8), -('e',ARRAY[7],11,6,2, 8), -('e',ARRAY[3],1,7,2, 9), -('e',ARRAY[3],7,1,2, 9), -('e',ARRAY[3],1,7,2, 11), -('e',ARRAY[3],7,1,2, 12), -('e',ARRAY[3,7],1,11,3, 13), -('e',ARRAY[7],3,11,2, 14), -('e',ARRAY[10,15],11,16,3, 15), -('e',ARRAY[10,11],15,16,3, 25), -('e',ARRAY[15,16],10,11,3, 16), -('e',ARRAY[10,15],11,16,3, 17), -('e',ARRAY[6,10],7,11,3, 18), -('e',ARRAY[10,11],6,7,3, 28), -('e',ARRAY[6,7],10,11,3, 38), -('e',ARRAY[3],7,1,2, 19), -('e',ARRAY[15],10,16,2, 19), -('e',ARRAY[17],16,12,2, 19), -('e',ARRAY[15],10,16,2, 20), -('e',ARRAY[17],16,12,2, 20) -; - -prepare get_solution(integer, integer, text) AS -WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) -SELECT type,contracted_vertices,source,target,cost FROM results, a WHERE result_case = r; - -CREATE OR REPLACE FUNCTION edge_cases_sampledata(directed text) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - - -- SINGLE edge - - RETURN QUERY SELECT is_empty($$"graph1" ('6','{}',$$||directed||$$)$$, '1<=>3: Directed=' || directed ||' no forbidden vertices'); - - -- TWO edges - - RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7','{}',$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7','{}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$ , '1<=>3<=>7: Directed=' || directed ||' no forbidden'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7','{1}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 1'); - RETURN QUERY SELECT is_empty($$"graph1" ('6,7','{3}',$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 3'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7','{7}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 7'); - - -- T shape - - RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7,4,10','{}',$$||directed||$$)$$, '1<=>3<=>7<->6,8: Directed=' || directed ||' no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,4,10','{}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||' no forbidden'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,4,10','{1}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 1'); - RETURN QUERY - SELECT is_empty($$"graph1" ('6,7,4,10','{3}',$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 3'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,4,10','{7}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 7'); - - - -- THREE edges - - RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7,8','{}',$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||' no forbidden'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,8','{}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||' no forbidden'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,8','{1}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 1'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,8','{11}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,8','{3}',$$||directed||$$)$$, $$"get_solution" (4,14,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 3'); - - RETURN QUERY - SELECT set_eq($$"graph1" ('6,7,8','{7}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 7'); - - -- FOUR edges - -- circling square - RETURN QUERY SELECT isnt_empty($$"graph1" ('3,5,9,16','{}',$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||' no forbidden'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3,5,9,16','{}',$$||directed||$$)$$, $$"get_solution" (5,15,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||' no forbidden'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3,5,9,16','{11}',$$||directed||$$)$$, $$"get_solution" (5,15,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3,5,9,16','{15}',$$||directed||$$)$$, $$"get_solution" (5,25,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 15'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3,5,9,16','{10}',$$||directed||$$)$$, $$"get_solution" (6,16,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3,5,9,16','{16}',$$||directed||$$)$$, $$"get_solution" (7,17,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 16'); - - -- non circling square - RETURN QUERY SELECT isnt_empty($$"graph1" ('2,4,5,8','{}',$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' no forbidden'); - - RETURN QUERY - SELECT set_eq($$"graph1" ('2,4,5,8','{}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' no forbidden'); - - if directed THEN - RETURN QUERY - SELECT is_empty($$"graph1" ('2,4,5,8','{7}',$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 7'); - ELSE - RETURN QUERY - SELECT set_eq($$"graph1" ('2,4,5,8','{7}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 7'); - END IF; - RETURN QUERY - SELECT set_eq($$"graph1" ('2,4,5,8','{11}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,4,5,8','{6}',$$||directed||$$)$$, $$"get_solution" (8,28,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 6'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,4,5,8','{10}',$$||directed||$$)$$, $$"get_solution" (8,38,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 10'); - - -- The graph1 - RETURN QUERY - SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{}',$$||directed||$$)$$, $$"get_solution" (9,19,$$||directed||$$)$$, 'the graph: Directed=' || directed ||' no forbidden'); - IF directed THEN - RETURN QUERY - SELECT is_empty($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{3}',$$||directed||$$)$$, 'the graph1: Directed=' || directed ||', forbid 3'); - ELSE - RETURN QUERY - SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{3}',$$||directed||$$)$$, $$"get_solution" (1,20,$$||directed||$$)$$, 'the graph1: Directed=' || directed ||', forbid 3'); - END IF; - - -END; -$BODY$ -LANGUAGE plpgsql; - - -CREATE OR REPLACE FUNCTION edge_cases(directed text) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - - RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); - RETURN QUERY SELECT is_empty(format($$"graph" ('1',%1$s)$$,directed),'empty graph: 1,'||directed); - RETURN QUERY SELECT is_empty(format($$"graph" ('2',%1$s)$$,directed),'empty graph: 2,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('3',%1$s)$$,directed),'not empty graph: 3,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('4',%1$s)$$,directed),'not empty graph: 4,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('5',%1$s)$$,directed),'not empty graph: 5,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('6',%1$s)$$,directed),'not empty graph: 6,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('7',%1$s)$$,directed),'not empty graph: 7,'||directed); - - RETURN QUERY SELECT is_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'empty graph: 0,1,'||directed); - RETURN QUERY SELECT is_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'empty graph: 0,2,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'not empty graph: 0,5,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'not empty graph: 0,6,'||directed); - RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,7',%1$s)$$,directed), 'not empty graph: 0,7,'||directed); - - RETURN QUERY SELECT set_eq(format($$"graph" ('3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 3,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 4,'||directed) ; - - if directed THEN - RETURN QUERY SELECT set_eq(format($$"graph" ('5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2),('e',-2,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 5,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[11]::BIGINT[],1,3,2), ('e',-2,ARRAY[11]::BIGINT[],3,1,2) $$, 'expected graph: 6,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3), ('e',-2,ARRAY[1,2]::BIGINT[],3,11,3) $$, 'expected graph: 7,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 0,3,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,4,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2),('e',-2,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 0,5,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1]::BIGINT[],11,3,2),('e',-2,ARRAY[1]::BIGINT[],3,11,2) $$, 'expected graph: 0,6,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3),('e',-2,ARRAY[1,2]::BIGINT[],3,11,3) $$, 'expected graph: 0,7,'||directed) ; - ELSE - RETURN QUERY SELECT set_eq(format($$"graph" ('5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 5,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[11]::BIGINT[],1,3,2) $$, 'expected graph: 6,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,11]::BIGINT[],2,3,3) $$, 'expected graph: 7,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,3,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,4,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,5,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1]::BIGINT[],11,3,2) $$, 'expected graph: 0,6,'||directed) ; - RETURN QUERY SELECT set_eq(format($$"graph" ('0,7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3) $$, 'expected graph: 0,7,'||directed) ; - END IF; - -END; -$BODY$ -LANGUAGE plpgsql; - CREATE OR REPLACE FUNCTION edge_cases() RETURNS SETOF TEXT AS $BODY$ @@ -281,6 +32,8 @@ BEGIN RETURN; END IF; + CALL create_linear_edge_cases(); + PREPARE graph1(text,text,text) AS SELECT type, contracted_vertices,source,target,cost FROM pgr_contraction( format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER BY id$$, $1), @@ -289,10 +42,10 @@ BEGIN prepare graph(text, text) AS SELECT * FROM pgr_contraction(format($$SELECT * FROM graphs WHERE dead_case IN (%1$s)$$, $1), $2::boolean,ARRAY[2]); - RETURN QUERY SELECT edge_cases('true'); - RETURN QUERY SELECT edge_cases('false'); - RETURN QUERY SELECT edge_cases_sampledata('true'); - RETURN QUERY SELECT edge_cases_sampledata('false'); + RETURN QUERY SELECT linear_edge_cases('true'); + RETURN QUERY SELECT linear_edge_cases('false'); + RETURN QUERY SELECT linear_edge_cases_sampledata('true'); + RETURN QUERY SELECT linear_edge_cases_sampledata('false'); END; $BODY$ diff --git a/tools/testers/contraction_tapfuncs.sql b/tools/testers/contraction_tapfuncs.sql index d565ee7f84..585bb44d02 100644 --- a/tools/testers/contraction_tapfuncs.sql +++ b/tools/testers/contraction_tapfuncs.sql @@ -152,6 +152,677 @@ END $BODY$ LANGUAGE plpgsql; +CREATE OR REPLACE FUNCTION check_contracted_graph_deadend(BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + IF $1 THEN + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), + ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); + + RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); + + ELSE + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), + ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); + + RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); + + END IF; + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (7, 11, '1.064', '1.064'), + (7, 8, '1.100', '1.100'), + (8, 12, '1.144', '-0.856'), + (10, 11, '1.025', '-0.975'), + (10, 15, '-0.991', '1.009'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (12, 17, '1.169', '-0.831'), + (15, 16, '1.256', '1.256'), + (15, 16, '1.256', '1.256'), + (16, 17, '1.225', '1.225')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + + DEALLOCATE PREPARE c_expected_graph; + +END +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE PROCEDURE create_linear_edge_cases() AS +$BODY$ + +BEGIN + + CREATE TABLE graphs ( + id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, + source BIGINT, + target BIGINT, + cost BIGINT default 1, + reverse_cost BIGINT default 1, + dead_case INTEGER +); + +/* 11 -> {12 -> {13, 14} [dir=both]} [dir=both]; 13 ->14 [dir=both] */ +INSERT INTO graphs(source, target, dead_case) +VALUES +(11, 12, 0), +(11, 13, 0), +(11, 14, 0), +(12, 13, 0), +(12, 14, 0), +(13, 14, 0); + +INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) +VALUES +/* 1->11 */ +(1, 11, 1, -1, 1), + +/* 11->1 */ +(11, 1, 1, -1, 2), + +/* 1 -> 2 -> 11 */ +(1, 2, 1, -1, 3), +(2, 11, 1, -1, 3), + +/* 11 -> 2 -> 1 */ +(11, 2, 1, -1, 4), +(2, 1, 1, -1, 4), + +/* 11 -> 2 [dir=both]; 2 -> 1 [dir=both] */ +(11, 2, 1, 1, 5), +(2, 1, 1, 1, 5), + +/* 11 -> {1,3} [dir=both]; 1->3 [dir=both]*/ +(11, 1, 1, 1, 6), +(1, 3, 1, 1, 6), +(3, 11, 1, 1, 6), + +/* 11 -> {1,3} [dir=both]; 2 -> {1,3} [dir=both]; 2->3 [dir=both]*/ +(11, 1, 1, 1, 7), +(1, 2, 1, 1, 7), +(2, 3, 1, 1, 7), +(3, 11, 1, -1, 7); + +CREATE TABLE results ( + type text, + contracted_vertices BIGINT[], + source BIGINT, + target BIGINT, + cost FLOAT, + result_case INTEGER +); + +INSERT INTO results(type, contracted_vertices, source, target, cost, result_case) +VALUES +('e',ARRAY[3]::BIGINT[],1,7,2, 1), +('e',ARRAY[3],7,1,2, 1), +('e',ARRAY[3],1,7,2, 2), +('e',ARRAY[3],7,1,2, 2), +('e',ARRAY[3,7],1,11,3, 3), +('e',ARRAY[3,7],11,1,3, 3), +('e',ARRAY[7],3,11,2, 4), +('e',ARRAY[7],11,3,2, 4), +('e',ARRAY[16],15,11,2, 5), +('e',ARRAY[16],11,15,2, 5), +('e',ARRAY[10],15,11,2, 5), +('e',ARRAY[16],15,11,2, 6), +('e',ARRAY[16],11,15,2, 6), +('e',ARRAY[10],15,11,2, 7), +('e',ARRAY[7],6,11,2, 8), +('e',ARRAY[7],11,6,2, 8), +('e',ARRAY[3],1,7,2, 9), +('e',ARRAY[3],7,1,2, 9), +('e',ARRAY[3],1,7,2, 11), +('e',ARRAY[3],7,1,2, 12), +('e',ARRAY[3,7],1,11,3, 13), +('e',ARRAY[7],3,11,2, 14), +('e',ARRAY[10,15],11,16,3, 15), +('e',ARRAY[10,11],15,16,3, 25), +('e',ARRAY[15,16],10,11,3, 16), +('e',ARRAY[10,15],11,16,3, 17), +('e',ARRAY[6,10],7,11,3, 18), +('e',ARRAY[10,11],6,7,3, 28), +('e',ARRAY[6,7],10,11,3, 38), +('e',ARRAY[3],7,1,2, 19), +('e',ARRAY[15],10,16,2, 19), +('e',ARRAY[17],16,12,2, 19), +('e',ARRAY[15],10,16,2, 20), +('e',ARRAY[17],16,12,2, 20) +; + +prepare get_solution(integer, integer, text) AS +WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) +SELECT type,contracted_vertices,source,target,cost FROM results, a WHERE result_case = r; + +END +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE PROCEDURE create_deadend_edge_cases() AS +$BODY$ + +BEGIN + + CREATE TABLE graphs ( + id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, + source BIGINT, + target BIGINT, + cost BIGINT default 1, + reverse_cost BIGINT default 1, + dead_case INTEGER + ); + + /* 2 -- {3 -- 4} ; 3 -- 4 */ + INSERT INTO graphs(source, target, dead_case) + VALUES + (2, 3, 0), + (2, 4, 0), + (3, 4, 0); + + INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) + VALUES + /* 2->{3->4 [dir=both]} [dir=both]; 1->2 */ + (1, 2, 1, -1, 1), + + /* 2->{3->4 [dir=both]} [dir=both]; 2->1 */ + (2, 1, 1, -1, 2), + + /* 2->{3->4 [dir=both]} [dir=both]; 2->1 [dir=both] */ + (1, 2, 1, 1, 3), + + /* 2->{3->4 [dir=both]} [dir=both]; 2->1,2->1 */ + (2, 1, 1, -1, 4), + (2, 1, 1, -1, 4), + + /* 2->{3->4 [dir=both]} [dir=both]; {2,3}->1 */ + (2, 1, 1, -1, 5), + (3, 1, 1, -1, 5), + + /* 2->{3->4 [dir=both]} [dir=both]; 2->1;2->1;3->1 */ + (2, 1, 1, -1, 6), + (2, 1, 1, -1, 6), + (3, 1, 1, -1, 6); + + CREATE TABLE results ( + type text, + id INTEGER, + contracted_vertices BIGINT[], + result_case INTEGER + ); + + INSERT INTO results(type, id, contracted_vertices, result_case) + VALUES + ('v',6,ARRAY[5]::BIGINT[], 1), + ('v',5,ARRAY[6], 2), + ('v',15,ARRAY[10], 3), + ('v',10,ARRAY[15], 4), + ('v',12,ARRAY[8], 5), + ('v',8,ARRAY[12], 6), + ('v',15,ARRAY[6,10], 7), + ('v',6,ARRAY[10,15], 8), + ('v',10,ARRAY[6,15], 9), + ('v',10,ARRAY[15], 10), + ('v',10,ARRAY[6], 11), + ('v',8,ARRAY[11,12], 12), + ('v',8,ARRAY[12], 13), + ('v',11,ARRAY[12], 13), + ('v',11,ARRAY[8,12], 113), + ('v',12,ARRAY[8,11], 14), + ('v',12,ARRAY[11], 15), + + ('v',10,ARRAY[6], 16), + ('v',12,ARRAY[8], 16), + ('v',6,ARRAY[10], 17), + ('v',12,ARRAY[8], 17), + ('v',10,ARRAY[6], 18), + ('v',8,ARRAY[12], 18), + ('v',6,ARRAY[10], 19), + ('v',8,ARRAY[12], 19), + ('v',6,ARRAY[10], 20), + + ('v',17,ARRAY[10,11,12], 21), + ('v',10,ARRAY[11,12,17], 22), + ('v',11,ARRAY[10,12,17], 23), + ('v',12,ARRAY[10,11,17], 24), + + ('v',8,ARRAY[9], 25), + ('v',7,ARRAY[1,3], 25), + ('v',6,ARRAY[5], 25), + + ('v',8,ARRAY[9], 26), + ('v',3,ARRAY[1], 26), + ('v',6,ARRAY[5], 26) + ; + + PREPARE get_solution(integer, integer, text) AS + WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) + SELECT type,id,contracted_vertices FROM results, a WHERE result_case = r; + +END +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION deadend_edge_cases(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + +RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('1',%1$s)$$,directed), 'not empty graph: 1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'not empty graph: 0,1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'not empty graph: 0,2,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,2',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,2,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,3,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed) ; + +RETURN QUERY +SELECT CASE WHEN directed::BOOLEAN THEN + collect_tap( + isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed), + isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed), + set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,6,'||directed)) +ELSE + collect_tap( + is_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + is_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed)) +END; + +END; +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION deadend_edge_cases_sampledata(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + -- SINGLE edge + + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{6}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 5'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{5}',$$||directed||$$)$$, $$"get_solution" (2,2,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT is_empty($$"graph1" ('1','{5,6}',$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 5,6'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{10}',$$||directed||$$)$$, $$"get_solution" (4,4,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{15}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('3','{10,15}',$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 10,15'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{8}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 12'); + + -- TWO edges + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6}',$$||directed||$$)$$, $$"get_solution" (8,8,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10}',$$||directed||$$)$$, $$"get_solution" (9,9,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{15}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6,10}',$$||directed||$$)$$, $$"get_solution" (10,10,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10,15}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10,15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,10,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10,15'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11}',$$||directed||$$)$$, $$"get_solution" (13,113,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{12}',$$||directed||$$)$$, $$"get_solution" (14,14,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,11}',$$||directed||$$)$$, $$"get_solution" (13,213,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (15,15,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('11,12','{8,11,12}',$$||directed||$$)$$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11,12'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{10}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{12}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8}',$$||directed||$$)$$, $$"get_solution" (19,19,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,12}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,10}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,12}',$$||directed||$$)$$, $$"get_solution" (20,20,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,12','{6,8,10,12}',$$||directed||$$)$$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10,12'); + + + -- THREE edges + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{10}',$$||directed||$$)$$, $$"get_solution" (22,22,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{11}',$$||directed||$$)$$, $$"get_solution" (23,23,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{12}',$$||directed||$$)$$, $$"get_solution" (24,24,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{17}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 17'); + RETURN QUERY + SELECT is_empty($$"graph1" ('5,11,13','{10,17}',$$||directed||$$)$$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 10,17'); + + -- The graph1 + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{}',$$||directed||$$)$$, $$"get_solution" (25,25,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{3}',$$||directed||$$)$$, $$"get_solution" (26,26,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', forbid 3'); + +END; +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION check_contracted_graph_linear(BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + IF $1 THEN + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('e',-1,ARRAY[3],7,1), ('e',-2,ARRAY[3],1,7)$$, 'The edges') ; + + RETURN QUERY + SELECT set_eq( + $$SELECT id FROM edges WHERE is_new$$, + $$SELECT unnest(ARRAY[19, 20])$$, 'The vertices' + ); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (1, 7, '2.085', '-1.000'), + (2, 4, '1.289', '1.289'), + (5, 6, '1.001', '1.001'), + (6, 7, '1.016', '1.016'), + (6, 10, '-0.996', '1.004'), + (7, 1, '2.085', '-1.000'), + (7, 8, '1.100', '1.100'), + (7, 11, '1.064', '1.064'), + (8, 9, '1.196', '1.196'), + (8, 12, '1.144', '-0.856'), + (10, 11, '1.025', '-0.975'), + (10, 15, '-0.991', '1.009'), + (11, 12, '1.121', '-0.879'), + (11, 16, '1.081', '1.081'), + (12, 17, '1.169', '-0.831'), + (13, 14, '1.324', '1.324'), + (15, 16, '1.256', '1.256'), + (16, 17, '1.225', '1.225')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + ELSE + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('e',-3,ARRAY[17],16,12), ('e',-2,ARRAY[3],7,1), ('e', -1, ARRAY[15], 10, 16)$$) ; + + RETURN QUERY + SELECT set_eq( + $$SELECT id FROM edges WHERE is_new$$, + $$SELECT unnest(ARRAY[19, 20, 21])$$ + ); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (2, 4, '1.289', '1.289'), + (5, 6, '1.001', '1.001'), + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (7, 1, '2.085', '-1.000'), + (7, 8, '1.100', '1.100'), + (7, 11, '1.064', '1.064'), + (8, 9, '1.196', '1.196'), + (8, 12, '1.144', '-0.856'), + (10, 11, '1.025', '-0.975'), + (10, 16, '2.265', '-1.000'), + (11, 12, '1.121', '-0.879'), + (11, 16, '1.081', '1.081'), + (13, 14, '1.324', '1.324'), + (16, 12, '2.394', '-1.000')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + + END IF; + DEALLOCATE PREPARE c_expected_graph; +END +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION linear_edge_cases_sampledata(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + -- SINGLE edge + + RETURN QUERY SELECT is_empty($$"graph1" ('6','{}',$$||directed||$$)$$, '1<=>3: Directed=' || directed ||' no forbidden vertices'); + + -- TWO edges + + RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7','{}',$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7','{}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$ , '1<=>3<=>7: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7','{1}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 1'); + RETURN QUERY SELECT is_empty($$"graph1" ('6,7','{3}',$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 3'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7','{7}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7: Directed=' || directed ||' , forbid 7'); + + -- T shape + + RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7,4,10','{}',$$||directed||$$)$$, '1<=>3<=>7<->6,8: Directed=' || directed ||' no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,4,10','{}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,4,10','{1}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 1'); + RETURN QUERY + SELECT is_empty($$"graph1" ('6,7,4,10','{3}',$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 3'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,4,10','{7}',$$||directed||$$)$$, $$"get_solution" (2,12,$$||directed||$$)$$, '1<=>3<=>7<->6,8 : Directed=' || directed ||', forbid 7'); + + + -- THREE edges + + RETURN QUERY SELECT isnt_empty($$"graph1" ('6,7,8','{}',$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{1}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 1'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{11}',$$||directed||$$)$$, $$"get_solution" (3,13,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{3}',$$||directed||$$)$$, $$"get_solution" (4,14,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 3'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('6,7,8','{7}',$$||directed||$$)$$, $$"get_solution" (1,11,$$||directed||$$)$$, '1<=>3<=>7<=>11: Directed=' || directed ||', forbid 7'); + + -- FOUR edges + -- circling square + RETURN QUERY SELECT isnt_empty($$"graph1" ('3,5,9,16','{}',$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{}',$$||directed||$$)$$, $$"get_solution" (5,15,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||' no forbidden'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{11}',$$||directed||$$)$$, $$"get_solution" (5,15,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{15}',$$||directed||$$)$$, $$"get_solution" (5,25,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{10}',$$||directed||$$)$$, $$"get_solution" (6,16,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3,5,9,16','{16}',$$||directed||$$)$$, $$"get_solution" (7,17,$$||directed||$$)$$, '10->11<=>16<=>15->10: Directed=' || directed ||', forbid 16'); + + -- non circling square + RETURN QUERY SELECT isnt_empty($$"graph1" ('2,4,5,8','{}',$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' no forbidden'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' no forbidden'); + + if directed THEN + RETURN QUERY + SELECT is_empty($$"graph1" ('2,4,5,8','{7}',$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 7'); + ELSE + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{7}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 7'); + END IF; + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{11}',$$||directed||$$)$$, $$"get_solution" (8,18,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{6}',$$||directed||$$)$$, $$"get_solution" (8,28,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,4,5,8','{10}',$$||directed||$$)$$, $$"get_solution" (8,38,$$||directed||$$)$$, '11<-10->6<=>7<=>11->10: Directed=' || directed ||' forbid 10'); + + -- The graph1 + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{}',$$||directed||$$)$$, $$"get_solution" (9,19,$$||directed||$$)$$, 'the graph: Directed=' || directed ||' no forbidden'); + IF directed THEN + RETURN QUERY + SELECT is_empty($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{3}',$$||directed||$$)$$, 'the graph1: Directed=' || directed ||', forbid 3'); + ELSE + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18','{3}',$$||directed||$$)$$, $$"get_solution" (1,20,$$||directed||$$)$$, 'the graph1: Directed=' || directed ||', forbid 3'); + END IF; + + +END; +$BODY$ +LANGUAGE plpgsql; + + +CREATE OR REPLACE FUNCTION linear_edge_cases(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); + RETURN QUERY SELECT is_empty(format($$"graph" ('1',%1$s)$$,directed),'empty graph: 1,'||directed); + RETURN QUERY SELECT is_empty(format($$"graph" ('2',%1$s)$$,directed),'empty graph: 2,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('3',%1$s)$$,directed),'not empty graph: 3,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('4',%1$s)$$,directed),'not empty graph: 4,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('5',%1$s)$$,directed),'not empty graph: 5,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('6',%1$s)$$,directed),'not empty graph: 6,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('7',%1$s)$$,directed),'not empty graph: 7,'||directed); + + RETURN QUERY SELECT is_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'empty graph: 0,1,'||directed); + RETURN QUERY SELECT is_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'empty graph: 0,2,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'not empty graph: 0,5,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'not empty graph: 0,6,'||directed); + RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,7',%1$s)$$,directed), 'not empty graph: 0,7,'||directed); + + RETURN QUERY SELECT set_eq(format($$"graph" ('3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 3,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 4,'||directed) ; + + if directed THEN + RETURN QUERY SELECT set_eq(format($$"graph" ('5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2),('e',-2,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[11]::BIGINT[],1,3,2), ('e',-2,ARRAY[11]::BIGINT[],3,1,2) $$, 'expected graph: 6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3), ('e',-2,ARRAY[1,2]::BIGINT[],3,11,3) $$, 'expected graph: 7,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 0,3,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,4,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2),('e',-2,ARRAY[2]::BIGINT[],1,11,2) $$, 'expected graph: 0,5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1]::BIGINT[],11,3,2),('e',-2,ARRAY[1]::BIGINT[],3,11,2) $$, 'expected graph: 0,6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3),('e',-2,ARRAY[1,2]::BIGINT[],3,11,3) $$, 'expected graph: 0,7,'||directed) ; + ELSE + RETURN QUERY SELECT set_eq(format($$"graph" ('5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[11]::BIGINT[],1,3,2) $$, 'expected graph: 6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,11]::BIGINT[],2,3,3) $$, 'expected graph: 7,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,3,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,4,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[2]::BIGINT[],11,1,2) $$, 'expected graph: 0,5,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1]::BIGINT[],11,3,2) $$, 'expected graph: 0,6,'||directed) ; + RETURN QUERY SELECT set_eq(format($$"graph" ('0,7',%1$s)$$,directed), $$ VALUES ('e',-1,ARRAY[1,2]::BIGINT[],11,3,3) $$, 'expected graph: 0,7,'||directed) ; + END IF; + +END; +$BODY$ +LANGUAGE plpgsql; + CREATE OR REPLACE FUNCTION test_ids_size(pow INTEGER, directed BOOLEAN) RETURNS SETOF TEXT AS From e6d302b006d5535ee019bdd86210193af508f440 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 10:52:07 -0600 Subject: [PATCH 122/141] (contraction/sql) fixing parameter mismatch on notice --- sql/contraction/contraction.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/contraction/contraction.sql b/sql/contraction/contraction.sql index f11bf646af..4ac224f04d 100644 --- a/sql/contraction/contraction.sql +++ b/sql/contraction/contraction.sql @@ -79,7 +79,7 @@ CREATE FUNCTION pgr_contraction( RETURNS SETOF RECORD AS $BODY$ BEGIN - RAISE NOTICE 'Deprecated Signature pgr_contraction(text,boolean,integer[],integer,bigint[]) in v3.8.0'; + RAISE NOTICE 'Deprecated Signature pgr_contraction(text,bigint[],integer,integer[],bigint[],boolean) in v3.8.0'; RETURN QUERY SELECT a.type, a.id, a.contracted_vertices, a.source, a.target, a.cost FROM _pgr_contraction(_pgr_get_statement($1), $2::BIGINT[], $3, $4, $5) AS a; From 3bb5624fb3275261a591b392c3153040c3357930 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 10:55:42 -0600 Subject: [PATCH 123/141] (contraction/doc) improving readability --- doc/contraction/pgr_contraction.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index bb63e59971..c48a51c3d8 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -241,12 +241,12 @@ Only linear contraction The cycle ................................................................................ -Contracting a graph, can be done with more than one operation. +Contracting a graph can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes. -This implementation, cycles ``cycles`` times through the ``methods`` . +This implementation cycles ``cycles`` times through the ``methods`` . .. parsed-literal:: From 6f468d5c9c227e082891d92212f1de6bbcebcbc0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 17:02:44 +0000 Subject: [PATCH 124/141] Update locale: commit cf2d5af00 --- locale/en/LC_MESSAGES/pgrouting_doc_strings.po | 6 +++--- locale/pot/pgrouting_doc_strings.pot | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index b1fbde5af5..9334756764 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-21 04:11+0000\n" +"POT-Creation-Date: 2025-03-21 17:02+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -9520,13 +9520,13 @@ msgid "The cycle" msgstr "" msgid "" -"Contracting a graph, can be done with more than one operation. The order " +"Contracting a graph can be done with more than one operation. The order " "of the operations affect the resulting contracted graph, after applying " "one operation, the set of vertices that can be contracted by another " "operation changes." msgstr "" -msgid "This implementation, cycles ``cycles`` times through the ``methods`` ." +msgid "This implementation cycles ``cycles`` times through the ``methods`` ." msgstr "" msgid "Contracting sample data" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 62a8f0203a..258d34c676 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-21 04:11+0000\n" +"POT-Creation-Date: 2025-03-21 17:02+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -8179,10 +8179,10 @@ msgstr "" msgid "The cycle" msgstr "" -msgid "Contracting a graph, can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes." +msgid "Contracting a graph can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes." msgstr "" -msgid "This implementation, cycles ``cycles`` times through the ``methods`` ." +msgid "This implementation cycles ``cycles`` times through the ``methods`` ." msgstr "" msgid "Contracting sample data" From f26be532a8c3e836edfa6194ab3a2630474bbe72 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 00:45:04 -0600 Subject: [PATCH 125/141] (contractionDeadEnd/pgtap) the tests that need to pass --- .../edge_cases/compare_dijkstra.pg | 110 ++++++ .../edge_cases/edge_cases.pg | 320 ++++++++++++++++++ .../contractionDeadEnd/inner_query.pg | 79 +++++ .../contractionDeadEnd/no_crash_test.pg | 61 ++++ .../contractionDeadEnd/types_check.pg | 53 +++ 5 files changed, 623 insertions(+) create mode 100644 pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg create mode 100644 pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg create mode 100644 pgtap/contraction/contractionDeadEnd/inner_query.pg create mode 100644 pgtap/contraction/contractionDeadEnd/no_crash_test.pg create mode 100644 pgtap/contraction/contractionDeadEnd/types_check.pg diff --git a/pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg b/pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg new file mode 100644 index 0000000000..00a7339dd5 --- /dev/null +++ b/pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg @@ -0,0 +1,110 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SELECT CASE WHEN min_version('3.8.0') THEN plan(654) ELSE plan(4) END; +UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(reverse_cost) + 0.001 * id * id; + +ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; + +CREATE OR REPLACE FUNCTION check_cg(BOOLEAN) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + IF $1 THEN + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), + ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); + + RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (16,17,'1.225'::TEXT,'1.225'::TEXT), + (10,15,'-0.991','1.009'), + (12,17,'1.169','-0.831'), + (15,16,'1.256','1.256'), + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (8, 12, '1.144', '-0.856'), + (7, 8, '1.100', '1.100')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + ELSE + RETURN QUERY + SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, + $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), + ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); + + RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); + + PREPARE c_expected_graph AS + SELECT source, target, cost, reverse_cost + FROM (VALUES + (6, 10, '-0.996', '1.004'), + (6, 7, '1.016', '1.016'), + (10, 11, '1.025', '-0.975'), + (7, 11, '1.064', '1.064'), + (11, 16, '1.081', '1.081'), + (11, 12, '1.121', '-0.879'), + (8, 12, '1.144', '-0.856'), + (7, 8, '1.100', '1.100'), + (16,17,'1.225'::TEXT,'1.225'::TEXT), + (10,15,'-0.991','1.009'), + (12,17,'1.169','-0.831'), + (15,16,'1.256','1.256')) + AS t(source, target, cost, reverse_cost); + + RETURN QUERY + SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', + 'c_expected_graph', 'The contracted graph'); + + END IF; + DEALLOCATE PREPARE c_expected_graph; +END +$BODY$ +LANGUAGE plpgsql; + + +CALL create_contracted_graph(false,'pgr_contractionDeadEnd'); +SELECT check_cg(false); +SELECT compare_dijkstra_contraction(false); + +CALL create_contracted_graph(true,'pgr_contractionDeadEnd'); +SELECT check_cg(true); +SELECT compare_dijkstra_contraction(true); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg b/pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg new file mode 100644 index 0000000000..19e02d8237 --- /dev/null +++ b/pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg @@ -0,0 +1,320 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2018 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(128) ELSE plan(1) END; + +CREATE TABLE graphs ( + id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, + source BIGINT, + target BIGINT, + cost BIGINT default 1, + reverse_cost BIGINT default 1, + dead_case INTEGER +); + +/* 2 -- {3 -- 4} ; 3 -- 4 */ +INSERT INTO graphs(source, target, dead_case) +VALUES +(2, 3, 0), +(2, 4, 0), +(3, 4, 0); + +INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) +VALUES +/* 2->{3->4 [dir=both]} [dir=both]; 1->2 */ +(1, 2, 1, -1, 1), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1 */ +(2, 1, 1, -1, 2), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1 [dir=both] */ +(1, 2, 1, 1, 3), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1,2->1 */ +(2, 1, 1, -1, 4), +(2, 1, 1, -1, 4), + +/* 2->{3->4 [dir=both]} [dir=both]; {2,3}->1 */ +(2, 1, 1, -1, 5), +(3, 1, 1, -1, 5), + +/* 2->{3->4 [dir=both]} [dir=both]; 2->1;2->1;3->1 */ +(2, 1, 1, -1, 6), +(2, 1, 1, -1, 6), +(3, 1, 1, -1, 6); + +CREATE TABLE results ( + type text, + id INTEGER, + contracted_vertices BIGINT[], + result_case INTEGER +); + +INSERT INTO results(type, id, contracted_vertices, result_case) +VALUES +('v',6,ARRAY[5]::BIGINT[], 1), +('v',5,ARRAY[6], 2), +('v',15,ARRAY[10], 3), +('v',10,ARRAY[15], 4), +('v',12,ARRAY[8], 5), +('v',8,ARRAY[12], 6), +('v',15,ARRAY[6,10], 7), +('v',6,ARRAY[10,15], 8), +('v',10,ARRAY[6,15], 9), +('v',10,ARRAY[15], 10), +('v',10,ARRAY[6], 11), +('v',8,ARRAY[11,12], 12), +('v',8,ARRAY[12], 13), +('v',11,ARRAY[12], 13), +('v',11,ARRAY[8,12], 113), +('v',12,ARRAY[8,11], 14), +('v',12,ARRAY[11], 15), + +('v',10,ARRAY[6], 16), +('v',12,ARRAY[8], 16), +('v',6,ARRAY[10], 17), +('v',12,ARRAY[8], 17), +('v',10,ARRAY[6], 18), +('v',8,ARRAY[12], 18), +('v',6,ARRAY[10], 19), +('v',8,ARRAY[12], 19), +('v',6,ARRAY[10], 20), + +('v',17,ARRAY[10,11,12], 21), +('v',10,ARRAY[11,12,17], 22), +('v',11,ARRAY[10,12,17], 23), +('v',12,ARRAY[10,11,17], 24), + +('v',8,ARRAY[9], 25), +('v',7,ARRAY[1,3], 25), +('v',6,ARRAY[5], 25), + +('v',8,ARRAY[9], 26), +('v',3,ARRAY[1], 26), +('v',6,ARRAY[5], 26) + +; + +prepare get_solution(integer, integer, text) AS +WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) +SELECT type,id,contracted_vertices FROM results, a WHERE result_case = r; + +CREATE OR REPLACE FUNCTION edge_cases_sampledata(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + -- SINGLE edge + + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{6}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 5'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1','{5}',$$||directed||$$)$$, $$"get_solution" (2,2,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT is_empty($$"graph1" ('1','{5,6}',$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 5,6'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{10}',$$||directed||$$)$$, $$"get_solution" (4,4,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('3','{15}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('3','{10,15}',$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 10,15'); + + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{8}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('12','{12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 12'); + + -- TWO edges + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6}',$$||directed||$$)$$, $$"get_solution" (8,8,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10}',$$||directed||$$)$$, $$"get_solution" (9,9,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{15}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{6,10}',$$||directed||$$)$$, $$"get_solution" (10,10,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,15'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,3','{10,15}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10,15'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,3','{6,10,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10,15'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11}',$$||directed||$$)$$, $$"get_solution" (13,113,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{12}',$$||directed||$$)$$, $$"get_solution" (14,14,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,11}',$$||directed||$$)$$, $$"get_solution" (13,213,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (15,15,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('11,12','{11,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('11,12','{8,11,12}',$$||directed||$$)$$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11,12'); + + + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{10}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{12}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8}',$$||directed||$$)$$, $$"get_solution" (19,19,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,12}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,10}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,8,12}',$$||directed||$$)$$, $$"get_solution" (20,20,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{6,10,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10,12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('2,12','{8,10,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10,12'); + RETURN QUERY + SELECT is_empty($$"graph1" ('2,12','{6,8,10,12}',$$||directed||$$)$$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10,12'); + + + -- THREE edges + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{10}',$$||directed||$$)$$, $$"get_solution" (22,22,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 10'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{11}',$$||directed||$$)$$, $$"get_solution" (23,23,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 11'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{12}',$$||directed||$$)$$, $$"get_solution" (24,24,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 12'); + RETURN QUERY + SELECT set_eq($$"graph1" ('5,11,13','{17}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 17'); + RETURN QUERY + SELECT is_empty($$"graph1" ('5,11,13','{10,17}',$$||directed||$$)$$, '10 -> 11 -> 12 -> 17: Directed Directed=' || directed ||', forbid 10,17'); + + -- The graph1 + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{}',$$||directed||$$)$$, $$"get_solution" (25,25,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', no forbidden vertices'); + RETURN QUERY + SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{3}',$$||directed||$$)$$, $$"get_solution" (26,26,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', forbid 3'); + +END; +$BODY$ +LANGUAGE plpgsql; + + +CREATE OR REPLACE FUNCTION edge_cases(directed text) +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + +RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('1',%1$s)$$,directed), 'not empty graph: 1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'not empty graph: 0,1,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,1,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'not empty graph: 0,2,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,2',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,2,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,3,'||directed) ; + +RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); +RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed) ; + +RETURN QUERY +SELECT CASE WHEN directed::BOOLEAN THEN + collect_tap( + isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed), + isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed), + set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,6,'||directed)) +ELSE + collect_tap( + is_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), + is_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed)) +END; + +END; +$BODY$ +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION edge_cases() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY + SELECT skip(1, 'pgr_contractionDeadEnd is new on 3.8.0'); + RETURN; + END IF; + + PREPARE graph1(text,text,text) AS + SELECT type, id, contracted_vertices FROM pgr_contractionDeadEnd( + format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER by id$$, $1), + $3::boolean, $2::INTEGER[]); + + prepare graph(text, text) AS + SELECT * FROM pgr_contractionDeadEnd( + format($$SELECT * FROM graphs WHERE dead_case IN (%1$s) ORDER BY id$$, $1), + $2::boolean); + + RETURN QUERY SELECT edge_cases('true'); + RETURN QUERY SELECT edge_cases('false'); + RETURN QUERY SELECT edge_cases_sampledata('true'); + RETURN QUERY SELECT edge_cases_sampledata('false'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT edge_cases(); + +SELECT finish(); +ROLLBACK; + diff --git a/pgtap/contraction/contractionDeadEnd/inner_query.pg b/pgtap/contraction/contractionDeadEnd/inner_query.pg new file mode 100644 index 0000000000..2865f0d912 --- /dev/null +++ b/pgtap/contraction/contractionDeadEnd/inner_query.pg @@ -0,0 +1,79 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(115) ELSE plan(1) END; + +CREATE OR REPLACE FUNCTION inner_query() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'pgr_contractionDeadEnd is new on 3.8.0'); + RETURN; + END IF; + + RETURN QUERY SELECT style_dijkstra('pgr_contractionDeadEnd(', ', true, ARRAY[3]::BIGINT[])'); + RETURN QUERY SELECT style_dijkstra('pgr_contractionDeadEnd(', ', false, ARRAY[3]::BIGINT[])'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ [2,3,4,5], [4,5,6,7] ]::integer[][])$$, + 'XX000', 'One dimension expected', 'Throws because forbidden is 2 dimensions'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ])$$, + 'Lives when forbidden is not described'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionDeadEnd('SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 12341234567890123 ])$$, + 'Lives when forbidden is not described and its big'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::integer[])$$, + 'Lives when forbidden is integer[]'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::bigint[])$$, + 'Lives when forbidden is bigint[]'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::smallint[])$$, + 'Lives when forbidden is smallint[]'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::float8[])$$, + '42883', 'function pgr_contractiondeadend(unknown, boolean, double precision[]) does not exist', + 'Throws because forbidden is float8[]'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT inner_query(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contractionDeadEnd/no_crash_test.pg b/pgtap/contraction/contractionDeadEnd/no_crash_test.pg new file mode 100644 index 0000000000..baffa1e70a --- /dev/null +++ b/pgtap/contraction/contractionDeadEnd/no_crash_test.pg @@ -0,0 +1,61 @@ + +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(5) ELSE plan(2) END; + +PREPARE edges AS +SELECT id, source, target, cost, reverse_cost FROM edges; + +SELECT isnt_empty('edges', 'Should be not empty to tests be meaningful'); + + +CREATE OR REPLACE FUNCTION test_function() +RETURNS SETOF TEXT AS +$BODY$ +DECLARE +params TEXT[]; +subs TEXT[]; +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + params = ARRAY[ + '$$SELECT id, source, target, cost, reverse_cost FROM edges$$' + ]::TEXT[]; + subs = ARRAY[ + 'NULL' + ]::TEXT[]; + + RETURN query SELECT * FROM no_crash_test('pgr_contractionDeadEnd', params, subs); + +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + + +SELECT * FROM test_function(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contractionDeadEnd/types_check.pg b/pgtap/contraction/contractionDeadEnd/types_check.pg new file mode 100644 index 0000000000..cff291a86e --- /dev/null +++ b/pgtap/contraction/contractionDeadEnd/types_check.pg @@ -0,0 +1,53 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SELECT CASE WHEN min_version('3.8.0') THEN plan(5) ELSE plan(1) END; + +CREATE OR REPLACE FUNCTION types_check() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1,'pgr_contractiondeadend new on version 3.8.0'); + RETURN; + END IF; + + RETURN QUERY SELECT has_function('pgr_contractiondeadend'); + RETURN QUERY SELECT has_function('pgr_contractiondeadend', ARRAY['text','boolean','bigint[]']); + RETURN QUERY SELECT function_returns('pgr_contractiondeadend', ARRAY['text','boolean','bigint[]'], 'setof record'); + + RETURN QUERY SELECT set_eq( + $$SELECT proargnames FROM pg_proc WHERE proname = 'pgr_contractiondeadend'$$, + $$VALUES + ('{"","directed","forbidden","type","id","contracted_vertices","source","target","cost"}'::TEXT[]) + $$); + + RETURN QUERY SELECT function_types('pgr_contractiondeadend', + $$VALUES ('{text,bool,_int8,text,int8,_int8,int8,int8,float8}'::TEXT[]) $$); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT types_check(); + +SELECT finish(); +ROLLBACK; From 24b18c6c04b8813d0078546890d077c534820d2f Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 00:48:45 -0600 Subject: [PATCH 126/141] (contractionDeadEnd/sql) The new function --- sql/contraction/CMakeLists.txt | 1 + sql/contraction/deadEndContraction.sql | 54 ++++++++++++++++++++++++++ sql/sigs/pgrouting--3.8.sig | 1 + 3 files changed, 56 insertions(+) create mode 100644 sql/contraction/deadEndContraction.sql diff --git a/sql/contraction/CMakeLists.txt b/sql/contraction/CMakeLists.txt index 3f20af5990..75790c117a 100644 --- a/sql/contraction/CMakeLists.txt +++ b/sql/contraction/CMakeLists.txt @@ -2,6 +2,7 @@ SET(LOCAL_FILES _contraction.sql contraction.sql + deadEndContraction.sql ) foreach (f ${LOCAL_FILES}) diff --git a/sql/contraction/deadEndContraction.sql b/sql/contraction/deadEndContraction.sql new file mode 100644 index 0000000000..c6cfa7437f --- /dev/null +++ b/sql/contraction/deadEndContraction.sql @@ -0,0 +1,54 @@ +/*PGR-GNU***************************************************************** +File: deadEndContraction.sql + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + ********************************************************************PGR-GNU*/ + +--v3.8 +CREATE FUNCTION pgr_contractionDeadEnd( + TEXT, -- edges_sql (required) + + directed BOOLEAN DEFAULT true, + forbidden BIGINT[] DEFAULT ARRAY[]::BIGINT[], + + OUT type TEXT, + OUT id BIGINT, + OUT contracted_vertices BIGINT[], + OUT source BIGINT, + OUT target BIGINT, + OUT cost FLOAT) +RETURNS SETOF RECORD AS +$BODY$ + SELECT type, id, contracted_vertices, source, target, cost + FROM _pgr_contraction(_pgr_get_statement($1), ARRAY[1]::BIGINT[], 1, $3, $2); +$BODY$ +LANGUAGE SQL VOLATILE STRICT; + +COMMENT ON FUNCTION pgr_contractionDeadEnd(TEXT, BOOLEAN, BIGINT[]) +IS 'pgr_contractionDeadEnd +- Parameters: + - Edges SQL with columns: id, source, target, cost [,reverse_cost] +- Optional Parameters + - directed := true + - forbidden := ARRAY[]::BIGINT[] +- Documentation: + - ${PROJECT_DOC_LINK}/pgr_contractionDeadEnd.html +'; diff --git a/sql/sigs/pgrouting--3.8.sig b/sql/sigs/pgrouting--3.8.sig index 75b7ea1b97..5ea5c057b7 100644 --- a/sql/sigs/pgrouting--3.8.sig +++ b/sql/sigs/pgrouting--3.8.sig @@ -86,6 +86,7 @@ _pgr_compilation_date() _pgr_compiler_version() _pgr_connectedcomponents(text) pgr_connectedcomponents(text) +pgr_contractiondeadend(text,boolean,bigint[]) _pgr_contraction(text,bigint[],integer,bigint[],boolean) pgr_contraction(text,bigint[],integer,bigint[],boolean) pgr_contraction(text,boolean,integer[],integer,bigint[]) From 3b79e707c9364fc066ac60e466bddbddfe3a5d23 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 01:02:34 -0600 Subject: [PATCH 127/141] (contractionDeadEnd/docqueries) Creating the documentation queries --- docqueries/contraction/CMakeLists.txt | 1 + docqueries/contraction/contractionDeadEnd.pg | 100 ++++++++++ .../contraction/contractionDeadEnd.result | 176 ++++++++++++++++++ docqueries/contraction/test.conf | 1 + 4 files changed, 278 insertions(+) create mode 100644 docqueries/contraction/contractionDeadEnd.pg create mode 100644 docqueries/contraction/contractionDeadEnd.result diff --git a/docqueries/contraction/CMakeLists.txt b/docqueries/contraction/CMakeLists.txt index 9fe0f6d097..170041a64e 100644 --- a/docqueries/contraction/CMakeLists.txt +++ b/docqueries/contraction/CMakeLists.txt @@ -1,6 +1,7 @@ # Do not use extensions SET(LOCAL_FILES contraction + contractionDeadEnd ) foreach (f ${LOCAL_FILES}) diff --git a/docqueries/contraction/contractionDeadEnd.pg b/docqueries/contraction/contractionDeadEnd.pg new file mode 100644 index 0000000000..158826f3d9 --- /dev/null +++ b/docqueries/contraction/contractionDeadEnd.pg @@ -0,0 +1,100 @@ +-- CopyRight(c) pgRouting developers +-- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ +/* -- q1 */ +SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); +/* -- q2 */ +SELECT * FROM pgr_contractionDeadEnd( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, 1), + (2, 3, 4, 1, -1), + (3, 2, 5, 1, 1), (4, 2, 6, 1, 1), + (5, 3, 5, 1, 1), (5, 3, 6, 1, 1)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); +/* -- q3 */ +SELECT * FROM pgr_contractionDeadEnd( +$$SELECT * FROM (VALUES + (1, 1, 6, 1, 1), + (2, 2, 7, 1, -1), + (3, 2, 8, 1, -1), + (4, 3, 8, 1, -1), + (5, 9, 4, 1, -1), + (6, 10, 4, 1, 1), + (7, 10, 5, 1, 1), + /* Rest of the graph */ + (8, 1, 25, 1, 1), (9, 1, 26, 1, 1), + (10, 2, 25, 1, 1), (11, 2, 26, 1, 1), + (12, 3, 25, 1, 1), (13, 3, 26, 1, 1), + (14, 4, 25, 1, 1), (15, 4, 26, 1, 1), + (16, 5, 25, 1, 1), (17, 5, 26, 1, 1)) AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); +/* -- q4 */ +SELECT * FROM pgr_contractionDeadEnd( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, -1), + (2, 2, 3, 1, -1), + /* Rest of the graph */ + (3, 1, 25, 1, 1), (4, 1, 26, 1, 1), + (5, 25, 25, 1, 1), (6, 25, 26, 1, 1)) AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); +/* -- q5 */ +/* -- cg1 */ +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; +ALTER TABLE vertices ADD contracted_vertices BIGINT[]; +/* -- cg2 */ +SELECT * INTO contraction_results +FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); +/* -- cg3 */ +UPDATE vertices +SET is_contracted = true +WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); +/* -- cg4 */ +UPDATE vertices +SET contracted_vertices = contraction_results.contracted_vertices +FROM contraction_results +WHERE type = 'v' AND vertices.id = contraction_results.id; +/* -- cg5 */ +SELECT id, is_contracted +FROM vertices WHERE is_contracted ORDER BY id; +/* -- cg6 */ +CREATE VIEW contracted_graph AS +WITH +vertices_in_graph AS ( + SELECT id FROM vertices WHERE is_contracted = false +) +SELECT id, source, target, cost, reverse_cost +FROM edges +WHERE source IN (SELECT * FROM vertices_in_graph) +AND target IN (SELECT * FROM vertices_in_graph) +ORDER BY id; +/* -- cg7 */ +SELECT * +FROM pgr_dijkstra('SELECT * FROM contracted_graph', 6, 17); +/* -- cg8 */ +SELECT * FROM pgr_dijkstra( + 'WITH cul_de_sac AS ( + SELECT contracted_vertices || id as v + FROM vertices WHERE 1 = ANY(contracted_vertices)) + SELECT id, source, target, cost, reverse_cost FROM edges, cul_de_sac + WHERE source = ANY(v) AND target = ANY(v) + + UNION + + SELECT id, source, target, cost, reverse_cost FROM contracted_graph', + 1, 17); +/* -- cg9 */ +SELECT * FROM pgr_dijkstra( + 'WITH cul_de_sac AS ( + SELECT contracted_vertices || id as v + FROM vertices WHERE 1 = ANY(contracted_vertices) OR 9 = ANY(contracted_vertices)) + SELECT id, source, target, cost, reverse_cost FROM edges, cul_de_sac WHERE source = ANY(v) AND target = ANY(v) + + UNION + + SELECT id, source, target, cost, reverse_cost FROM contracted_graph', + 1, 9); +/* -- cg10 */ diff --git a/docqueries/contraction/contractionDeadEnd.result b/docqueries/contraction/contractionDeadEnd.result new file mode 100644 index 0000000000..5034a1e3c6 --- /dev/null +++ b/docqueries/contraction/contractionDeadEnd.result @@ -0,0 +1,176 @@ +BEGIN; +BEGIN +SET client_min_messages TO NOTICE; +SET +/* -- q1 */ +SELECT * FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + v | 4 | {2} | -1 | -1 | -1 + v | 6 | {5} | -1 | -1 | -1 + v | 7 | {1,3} | -1 | -1 | -1 + v | 8 | {9} | -1 | -1 | -1 + v | 14 | {13} | -1 | -1 | -1 +(5 rows) + +/* -- q2 */ +SELECT * FROM pgr_contractionDeadEnd( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, 1), + (2, 3, 4, 1, -1), + (3, 2, 5, 1, 1), (4, 2, 6, 1, 1), + (5, 3, 5, 1, 1), (5, 3, 6, 1, 1)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + v | 2 | {1} | -1 | -1 | -1 + v | 3 | {4} | -1 | -1 | -1 +(2 rows) + +/* -- q3 */ +SELECT * FROM pgr_contractionDeadEnd( +$$SELECT * FROM (VALUES + (1, 1, 6, 1, 1), + (2, 2, 7, 1, -1), + (3, 2, 8, 1, -1), + (4, 3, 8, 1, -1), + (5, 9, 4, 1, -1), + (6, 10, 4, 1, 1), + (7, 10, 5, 1, 1), + /* Rest of the graph */ + (8, 1, 25, 1, 1), (9, 1, 26, 1, 1), + (10, 2, 25, 1, 1), (11, 2, 26, 1, 1), + (12, 3, 25, 1, 1), (13, 3, 26, 1, 1), + (14, 4, 25, 1, 1), (15, 4, 26, 1, 1), + (16, 5, 25, 1, 1), (17, 5, 26, 1, 1)) AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + v | 1 | {6} | -1 | -1 | -1 + v | 2 | {7,8} | -1 | -1 | -1 + v | 3 | {8} | -1 | -1 | -1 + v | 4 | {9} | -1 | -1 | -1 +(4 rows) + +/* -- q4 */ +SELECT * FROM pgr_contractionDeadEnd( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, -1), + (2, 2, 3, 1, -1), + /* Rest of the graph */ + (3, 1, 25, 1, 1), (4, 1, 26, 1, 1), + (5, 25, 25, 1, 1), (6, 25, 26, 1, 1)) AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + v | 1 | {2,3} | -1 | -1 | -1 +(1 row) + +/* -- q5 */ +/* -- cg1 */ +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; +ALTER TABLE +ALTER TABLE vertices ADD contracted_vertices BIGINT[]; +ALTER TABLE +/* -- cg2 */ +SELECT * INTO contraction_results +FROM pgr_contractionDeadEnd( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); +SELECT 5 +/* -- cg3 */ +UPDATE vertices +SET is_contracted = true +WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); +UPDATE 6 +/* -- cg4 */ +UPDATE vertices +SET contracted_vertices = contraction_results.contracted_vertices +FROM contraction_results +WHERE type = 'v' AND vertices.id = contraction_results.id; +UPDATE 5 +/* -- cg5 */ +SELECT id, is_contracted +FROM vertices WHERE is_contracted ORDER BY id; + id | is_contracted +----+--------------- + 1 | t + 2 | t + 3 | t + 5 | t + 9 | t + 13 | t +(6 rows) + +/* -- cg6 */ +CREATE VIEW contracted_graph AS +WITH +vertices_in_graph AS ( + SELECT id FROM vertices WHERE is_contracted = false +) +SELECT id, source, target, cost, reverse_cost +FROM edges +WHERE source IN (SELECT * FROM vertices_in_graph) +AND target IN (SELECT * FROM vertices_in_graph) +ORDER BY id; +CREATE VIEW +/* -- cg7 */ +SELECT * +FROM pgr_dijkstra('SELECT * FROM contracted_graph', 6, 17); + seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost +-----+----------+-----------+---------+------+------+------+---------- + 1 | 1 | 6 | 17 | 6 | 4 | 1 | 0 + 2 | 2 | 6 | 17 | 7 | 8 | 1 | 1 + 3 | 3 | 6 | 17 | 11 | 11 | 1 | 2 + 4 | 4 | 6 | 17 | 12 | 13 | 1 | 3 + 5 | 5 | 6 | 17 | 17 | -1 | 0 | 4 +(5 rows) + +/* -- cg8 */ +SELECT * FROM pgr_dijkstra( + 'WITH cul_de_sac AS ( + SELECT contracted_vertices || id as v + FROM vertices WHERE 1 = ANY(contracted_vertices)) + SELECT id, source, target, cost, reverse_cost FROM edges, cul_de_sac + WHERE source = ANY(v) AND target = ANY(v) + + UNION + + SELECT id, source, target, cost, reverse_cost FROM contracted_graph', + 1, 17); + seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost +-----+----------+-----------+---------+------+------+------+---------- + 1 | 1 | 1 | 17 | 1 | 6 | 1 | 0 + 2 | 2 | 1 | 17 | 3 | 7 | 1 | 1 + 3 | 3 | 1 | 17 | 7 | 8 | 1 | 2 + 4 | 4 | 1 | 17 | 11 | 9 | 1 | 3 + 5 | 5 | 1 | 17 | 16 | 15 | 1 | 4 + 6 | 6 | 1 | 17 | 17 | -1 | 0 | 5 +(6 rows) + +/* -- cg9 */ +SELECT * FROM pgr_dijkstra( + 'WITH cul_de_sac AS ( + SELECT contracted_vertices || id as v + FROM vertices WHERE 1 = ANY(contracted_vertices) OR 9 = ANY(contracted_vertices)) + SELECT id, source, target, cost, reverse_cost FROM edges, cul_de_sac WHERE source = ANY(v) AND target = ANY(v) + + UNION + + SELECT id, source, target, cost, reverse_cost FROM contracted_graph', + 1, 9); + seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost +-----+----------+-----------+---------+------+------+------+---------- + 1 | 1 | 1 | 9 | 1 | 6 | 1 | 0 + 2 | 2 | 1 | 9 | 3 | 7 | 1 | 1 + 3 | 3 | 1 | 9 | 7 | 10 | 1 | 2 + 4 | 4 | 1 | 9 | 8 | 14 | 1 | 3 + 5 | 5 | 1 | 9 | 9 | -1 | 0 | 4 +(5 rows) + +/* -- cg10 */ +ROLLBACK; +ROLLBACK diff --git a/docqueries/contraction/test.conf b/docqueries/contraction/test.conf index bc173f0102..28f5f20634 100644 --- a/docqueries/contraction/test.conf +++ b/docqueries/contraction/test.conf @@ -4,6 +4,7 @@ 'any' => { 'files' => [qw( contraction.pg + contractionDeadEnd.pg )] }, From 6bd3ea3b25e534db051a881204fea27c0bb79763 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 01:04:49 -0600 Subject: [PATCH 128/141] (contractionDeadEnd/doc) Adding documentation --- doc/_static/page_history.js | 2 + doc/contraction/CMakeLists.txt | 1 + doc/contraction/contraction-family.rst | 201 +------ doc/contraction/pgr_contraction.rst | 5 +- doc/contraction/pgr_contractionDeadEnd.rst | 603 +++++++++++++++++++++ doc/src/proposed.rst | 6 + 6 files changed, 624 insertions(+), 194 deletions(-) create mode 100644 doc/contraction/pgr_contractionDeadEnd.rst diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js index ca90ed41d0..2e8b23ecce 100644 --- a/doc/_static/page_history.js +++ b/doc/_static/page_history.js @@ -15,6 +15,8 @@ var titles = [ var newpages = [ + {v: '3.8', pages: ['pgr_contractionDeadEnd']}, + {v: '3.7', pages: ['metrics-family', 'pgr_betweennessCentrality']}, {v: '3.4', pages: ['TRSP-family', 'pgr_withPointsVia', 'pgr_trsp_withPoints', 'pgr_trspVia_withPoints', diff --git a/doc/contraction/CMakeLists.txt b/doc/contraction/CMakeLists.txt index 1c77d1be7f..1efbd1a8d7 100644 --- a/doc/contraction/CMakeLists.txt +++ b/doc/contraction/CMakeLists.txt @@ -2,6 +2,7 @@ SET(LOCAL_FILES contraction-family.rst pgr_contraction.rst + pgr_contractionDeadEnd.rst ) foreach (f ${LOCAL_FILES}) diff --git a/doc/contraction/contraction-family.rst b/doc/contraction/contraction-family.rst index 4495f0c994..6f9655005b 100644 --- a/doc/contraction/contraction-family.rst +++ b/doc/contraction/contraction-family.rst @@ -21,10 +21,21 @@ Contraction - Family of functions .. official-end +.. include:: proposed.rst + :start-after: warning-begin + :end-before: end-warning + +.. proposed-start + +* :doc:`pgr_contractionDeadEnd` + +.. proposed-end + .. toctree:: :hidden: pgr_contraction + pgr_contractionDeadEnd Introduction @@ -48,196 +59,6 @@ Allowing the user to: - Decide the order of the contraction algorithms and set the maximum number of times they are to be executed. -Dead end contraction -------------------------------------------------------------------------------- - -Contraction of the leaf nodes of the graph. - -Dead end -.............................................................................. - -A node is considered a **dead end** node when - -* On undirected graphs: - - * The number of adjacent vertices is 1. - -* On directed graphs: - - * The number of adjacent vertices is 1. - * There are no outgoing edges and has at least one incoming edge. - * There are no incoming edges and has at least one outgoing edge. - - -When the conditions are true then the `Operation: Dead End Contraction`_ can be -done. - -Dead end vertex on undirected graph -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -- The green nodes are `dead end`_ nodes -- The blue nodes have an unlimited number of edges. - -.. graphviz:: - - graph G { - u, v [shape=circle;style=filled;width=.4;color=deepskyblue]; - a, b [style=filled; color=green]; - G [shape=tripleoctagon;width=1.5;style=filled; - color=deepskyblue;label = "Rest of the Graph"]; - - rankdir=LR; - G -- {u, v} [dir=none, weight=1, penwidth=3]; - u -- a [color=black]; - u -- a [color=darkgray]; - v -- b; - } - -.. list-table:: - :width: 80 - :widths: auto - :header-rows: 1 - - * - Node - - Adjacent nodes - - Number of adjacent nodes - * - :math:`a` - - :math:`\{u\}` - - 1 - * - :math:`b` - - :math:`\{v\}` - - 1 - - -Dead end vertex on directed graph -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -- The green nodes are `dead end`_ nodes -- The blue nodes have an unlimited number of incoming and/or outgoing edges. - -.. graphviz:: - - digraph G { - u, v, w, x, y [shape=circle;style=filled;width=.4;color=deepskyblue]; - a, b, c, d, e [style=filled; color=green]; - G [shape=tripleoctagon;width=1.5;style=filled; - color=deepskyblue;label = "Rest of the Graph"]; - - rankdir=LR; - G -> {u, v, w} [dir=none, weight=1, penwidth=3]; - {x, y} -> G [dir=none, weight=1, penwidth=3]; - u -> a -> u; - v -> b; - {w, v} -> c; - d -> x; - e -> {x, y}; - } - - -.. list-table:: - :width: 80 - :widths: auto - :header-rows: 1 - - * - Node - - Adjacent nodes - - Number of adjacent nodes - - Number of incoming edges - - Number of outgoing edges - * - :math:`a` - - :math:`\{u\}` - - 1 - - - - - * - :math:`b` - - :math:`\{v\}` - - 1 - - - - - * - :math:`c` - - :math:`\{v, w\}` - - 2 - - 2 - - 0 - * - :math:`d` - - :math:`\{x\}` - - 1 - - - - - * - :math:`e` - - :math:`\{x, y\}` - - 2 - - 0 - - 2 - - -From above, nodes :math:`\{a, b, d\}` are dead ends because the -number of adjacent vertices is 1. No further checks are needed for those nodes. - -On the following table, nodes :math:`\{c, e\}` because the -even that the number of adjacent vertices is not 1 for - -* :math:`c` - - * There are no outgoing edges and has at least one incoming edge. - -* :math:`e` - - * There are no incoming edges and has at least one outgoing edge. - -Operation: Dead End Contraction -............................................................................... - -The dead end contraction will stop until there are no more dead end nodes. -For example from the following graph where :math:`w` is the `dead end`_ node: - -.. graphviz:: - - digraph G { - u, v [shape=circle;style=filled;width=.4;color=deepskyblue]; - w [style=filled; color=green]; - "G" [shape=tripleoctagon;style=filled; - color=deepskyblue; label = "Rest of the Graph"]; - - rankdir=LR; - G -> u [dir=none, weight=1, penwidth=3]; - u -> v -> w; - } - - -After contracting :math:`w`, node :math:`v` is now a `dead end`_ node and is -contracted: - -.. graphviz:: - - digraph G { - u [shape=circle;style=filled;width=.4;color=deepskyblue]; - v [style=filled; color=green, label="v{w}"]; - "G" [shape=tripleoctagon;style=filled; - color=deepskyblue; label = "Rest of the Graph"]; - - rankdir=LR; - G -> u [dir=none, weight=1, penwidth=3]; - u -> v; - } - -After contracting :math:`v`, stop. Node :math:`u` has the information of nodes -that were contrcted. - -.. graphviz:: - - digraph G { - u [style=filled; color=green, label="u{v,w}"]; - "G" [shape=tripleoctagon;style=filled; - color=deepskyblue; label = "Rest of the Graph"]; - - rankdir=LR; - G -> u [dir=none, weight=1, penwidth=3]; - } - -Node :math:`u` has the information of nodes that were contracted. - - Linear contraction ------------------------------------------------------------------------------- In the algorithm, linear contraction is represented by 2. diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index c48a51c3d8..7319647de5 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -75,7 +75,7 @@ The main Characteristics are: - Currently there are two types of contraction methods included in this function: - - Dead End Contraction. See :doc:`contraction-family`. + - Dead End Contraction. See :doc:`pgr_contractionDeadEnd`. - Linear Contraction. See :doc:`contraction-family`. |Boost| Boost Graph Inside @@ -83,9 +83,6 @@ The main Characteristics are: Signatures ------------------------------------------------------------------------------- -.. index:: - single: contraction - .. admonition:: \ \ :class: signatures diff --git a/doc/contraction/pgr_contractionDeadEnd.rst b/doc/contraction/pgr_contractionDeadEnd.rst new file mode 100644 index 0000000000..e782afb03a --- /dev/null +++ b/doc/contraction/pgr_contractionDeadEnd.rst @@ -0,0 +1,603 @@ +.. + **************************************************************************** + 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: Contraction Family ; pgr_contractionDeadEnd - Proposed + single: contractionDeadEnd - Proposed + +| + +``pgr_contractionDeadEnd`` - Proposed +=============================================================================== + +``pgr_contractionDeadEnd`` — Performs graph contraction and returns the contracted +vertices and edges. + +.. include:: proposed.rst + :start-after: warning-begin + :end-before: end-warning + +.. rubric:: Availability + +* Version 3.8.0 + + * New proposed function. + +Description +------------------------------------------------------------------------------- + +.. include:: pgr_contraction.rst + :start-after: characteristics_start + :end-before: characteristics_end + +A node is considered a dead end node when: + +* On undirected graphs: + + * The number of adjacent vertices is 1. + +* On directed graphs: + + * When there is only one adjacent vertex or + * When all edges are incoming regardless of the number of adjacent vertices. + +|Boost| Boost Graph Inside + +Signatures +------------------------------------------------------------------------------- + +.. admonition:: \ \ + :class: signatures + + | pgr_contractionDeadEnd(`Edges SQL`_, [**options**]) + + | **options:** ``[directed, forbidden_vertices]`` + | Returns set of |result-contract| + +:Example: Dead end contraction on an undirected graph. + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- q1 + :end-before: -- q2 + +- The green nodes are dead end nodes. + + - Node :math:`3` is a dead end node after node :math:`1` is contracted. + +.. graphviz:: + + graph G { + splines=false; + 1,2,3,5,9,13 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 4,6,7,8,10,11,12,14,15,16,17 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 4 [label="4,{2}"]; + 6 [label="6,{5}"]; + 7 [label="7,{1,3}"]; + 8 [label="8,{9}"]; + 14 [label="14,{13}"]; + 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [label="13",fontsize=8]; + 16 -- 17 [label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="0.5,3.5!"]; + 3 [pos="1,2!"]; 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } + +Parameters +------------------------------------------------------------------------------- + +.. list-table:: + :width: 81 + :widths: auto + :header-rows: 1 + + * - Parameter + - Type + - Description + * - `Edges SQL`_ + - ``TEXT`` + - `Edges SQL`_ as described below. + +Optional parameters +............................................................................... + +.. include:: dijkstra-family.rst + :start-after: dijkstra_optionals_start + :end-before: dijkstra_optionals_end + +Contraction optional parameters +............................................................................... + +.. contraction_optional_start + +.. list-table:: + :width: 81 + :widths: 19 22 7 40 + :header-rows: 1 + + * - Column + - Type + - Default + - Description + * - ``forbidden_vertices`` + - ``ARRAY[`` |ANY-INTEGER| ``]`` + - **Empty** + - Identifiers of vertices forbidden for contraction. + +.. contraction_optional_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 |result-contract| + +The function returns a single row. The columns of the row are: + +.. list-table:: + :width: 81 + :widths: auto + :header-rows: 1 + + * - Column + - Type + - Description + * - ``type`` + - ``TEXT`` + - Value = ``e`` indicating the row is an edge. + * - ``id`` + - ``BIGINT`` + - A pseudo `id` of the edge. + + * All numbers on this column are ``DISTINCT`` + * Decreasing sequence starting from **-1**. + * - ``contracted_vertices`` + - ``ARRAY[BIGINT]`` + - Array of contracted vertex identifiers. + * - ``source`` + - ``BIGINT`` + - Identifier of the source vertex of the current edge. + * - ``target`` + - ``BIGINT`` + - Identifier of the target vertex of the current edge. + * - ``cost`` + - ``FLOAT`` + - Weight of the current edge. + +Additional Examples +------------------------------------------------------------------------------- + +.. contents:: + :local: + +Dead end vertex on undirected graph +............................................................................... + +The green nodes are dead end nodes. + +- They have only one adjacent node. + +.. graphviz:: + + graph G { + G [shape=record;style=filled;fillcolor=deepskyblue; + label="{Rest of the Graph | {<5> 5 | <6> 6}}"; pos="2.5,1!"]; + 1,2,3,4 [shape=circle;fontsize=8;fixedsize=true;style=filled]; + 2,3 [color=deepskyblue]; + 1,4 [color=green]; + {G:5,G:6} -- {2,3} [weight=1, penwidth=3]; + 1 -- 2 -- 1; + 3 -- 4; + 1 [pos="1,0!"]; 2 [pos="2,0!"]; 3 [pos="3,0!"]; 4 [pos="4,0!"]; + } + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- q2 + :end-before: -- q3 + +.. graphviz:: + + graph G { + G [shape=record;style=filled;fillcolor=deepskyblue; + label="{Rest of the Graph | {<5> 5 | <6> 6}}"; pos="2.5,1!"]; + 2,3 [shape=circle;fontsize=8;fixedsize=true;style=filled]; + 2,3 [color=deepskyblue]; + 2 [label="2, {1}"]; 3 [label="3, {4}"]; + {G:5,G:6} -- {2,3} [weight=1, penwidth=3]; + 2 [pos="2,0!"]; 3 [pos="3,0!"]; + } + +Dead end vertex on directed graph +............................................................................... + +- The green nodes are dead end nodes +- The blue nodes have an unlimited number of incoming and/or outgoing edges. + +.. graphviz:: + + digraph G { + G [shape=record;style=filled;fillcolor=deepskyblue; + label="{Rest of the Graph | { | | | | }}"; pos="2.5,3!"]; + 1,2,3,4,5,6,7,8,9,10 [shape=circle;fontsize=8;fixedsize=true;style=filled]; + 1,2,3,4,5,10 [color=deepskyblue]; + 6,7,8,9 [color=green]; + + {1,2,3,4,5} -> G [dir=both;weight=1, penwidth=3]; + 1 -> 6 -> 1; + 2 -> 7; + {3, 2} -> 8; + 9 -> 4; + 10 -> {4, 5}; + + 2 [pos="1,4!"]; 3 [pos="2,4!"]; + G [pos="2.5,3!"]; + 1 [pos="1,1!"]; 2 [pos="2,1!"]; 3 [pos="3,1!"]; 4 [pos="4,1!"]; 5 [pos="5,1!"]; + 6 [pos="1,0!"]; 7 [pos="2,0!"]; 8 [pos="3,0!"]; 9 [pos="4,0!"]; 10 [pos="5,0!"]; + } + +.. list-table:: + :width: 80 + :widths: auto + :header-rows: 1 + + * - Node + - Adjacent nodes + - Dead end + - Reason + * - :math:`6` + - :math:`\{1\}` + - Yes + - Has only one adjacent node. + * - :math:`7` + - :math:`\{2\}` + - Yes + - Has only one adjacent node. + * - :math:`8` + - :math:`\{2, 3\}` + - Yes + - Has more than one adjacent node and all edges are incoming. + * - :math:`9` + - :math:`\{4\}` + - Yes + - Has only one adjacent node. + * - :math:`10` + - :math:`\{4, 5\}` + - No + - Has more than one adjacent node and all edges are outgoing. + * - :math:`1,2,3,4,5` + - Many adjacent nodes. + - No + - Has more than one adjacent node and some edges are incoming and some are + outgoing. + + +From above, nodes :math:`\{6, 7, 9\}` are dead ends because the +total number of adjacent vertices is one. + +When there are more than one adjacent vertex, all edges need to be +all incoming edges otherwise it is not a dead end. + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- q3 + :end-before: -- q4 + +.. graphviz:: + + digraph G { + G [shape=record;style=filled;fillcolor=deepskyblue; + label="{Rest of the Graph | { | | | | }}"; pos="2.5,3!"]; + 1,2,3,4,5,10 [shape=circle;fontsize=8;fixedsize=true;style=filled]; + 1,2,3,4,5,10 [color=deepskyblue]; + + {1,2,3,4,5} -> G [dir=both;weight=1, penwidth=3]; + 10 -> {4, 5}; + + 2 [pos="1,4!"]; 3 [pos="2,4!"]; + G [pos="2.5,3!"]; + 1 [label="1, {6}";pos="1,1!"]; 2 [label="2, {7,8}";pos="2,1!"]; + 3 [label="3, {8}";pos="3,1!"]; 4 [label="4, {9}";pos="4,1!"]; 5 [pos="5,1!"]; + 10 [pos="5,0!"]; + } + +Stop by step dead end contraction +............................................................................... + +The dead end contraction will stop until there are no more dead end nodes. +For example, from the following graph where :math:`3` is the dead end node: + +.. graphviz:: + + digraph G { + G [shape=record;style=filled;fillcolor=deepskyblue; + label="{Rest of the Graph | { | | | | }}"; pos="2,3!"]; + 1,2,3 [shape=circle;fontsize=8;fixedsize=true;style=filled]; + 1,2 [color=deepskyblue]; + 3 [color=green]; + + {1} -> G [dir=both;weight=1, penwidth=3]; + 1 -> 2 -> 3; + + G [pos="2.5,3!"]; + 1 [pos="1,1!"]; 2 [pos="2,1!"]; 3 [pos="3,1!"]; + } + + +After contracting :math:`3`, node :math:`2` is now a dead end node and is +contracted: + +.. graphviz:: + + digraph G { + G [shape=record;style=filled;fillcolor=deepskyblue; + label="{Rest of the Graph | { | | | | }}"; pos="2,3!"]; + 1,2 [shape=circle;fontsize=8;fixedsize=true;style=filled]; + 1 [color=deepskyblue]; + 2 [color=green]; + + {1} -> G [dir=both;weight=1, penwidth=3]; + 1 -> 2; + + G [pos="2.5,3!"]; + 1 [pos="1,1!"]; 2 [label="2, {3}";pos="2,1!"]; + } + +After contracting :math:`2`, stop. Node :math:`1` has the information of nodes +that were contrcted. + +.. graphviz:: + + digraph G { + G [shape=record;style=filled;fillcolor=deepskyblue; + label="{Rest of the Graph | { | | | | }}"; pos="2,3!"]; + 1 [shape=circle;fontsize=8;fixedsize=true;style=filled]; + 1 [color=deepskyblue]; + + {1} -> G [dir=both;weight=1, penwidth=3]; + + G [pos="2.5,3!"]; + 1 [label="1, {2,3}";pos="2,1!"]; + } + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- q4 + :end-before: -- q5 + +Creating the contracted graph +............................................................................... + +.. contents:: + :local: + +Steps for the creation of the contracted graph +############################################################################### + +Add additional columns. + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- cg1 + :end-before: -- cg2 + +Save results into a table. + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- cg2 + :end-before: -- cg3 + +Use ``is_contracted`` column to indicate the vertices that are contracted. + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- cg3 + :end-before: -- cg4 + +Fill ``contracted_vertices`` with the information from the results that belong +to the vertices. + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- cg4 + :end-before: -- cg5 + +The contracted vertices are not part of the contracted graph. + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- cg5 + :end-before: -- cg6 + +The contracted graph +############################################################################### + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- cg6 + :end-before: -- cg7 + + +.. graphviz:: + + graph G { + splines=false; + 4,6,7,8,10,11,12,14,15,16,17 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 4 [label="4,{2}"]; + 6 [label="6,{5}"]; + 7 [label="7,{1,3}"]; + 8 [label="8,{9}"]; + 14 [label="14,{13}"]; + 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [label="13",fontsize=8]; + 16 -- 17 [label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + + 4 [pos="2,3.5!"]; + 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } + +Using when departure and destination are in the contracted graph +............................................................................... + +.. literalinclude:: contractionDeadEnd.queries + :language: sql + :start-after: -- cg7 + :end-before: -- cg8 + +.. graphviz:: + + graph G { + splines=false; + 4,6,7,8,10,11,12,14,15,16,17 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 4 [label="4,{2}"]; + 6 [label="6,{5}"]; + 7 [label="7,{1,3}"]; + 8 [label="8,{9}"]; + 14 [label="14,{13}"]; + 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [color=red;label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [color=red;label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [color=red;label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [color=red;label="13",fontsize=8]; + 16 -- 17 [label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + + 4 [pos="2,3.5!"]; + 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } + +Using when departure/destination is not in the contracted graph +............................................................................... + +.. literalinclude:: contractionDeadEnd.queries + :language: sql + :start-after: -- cg8 + :end-before: -- cg9 + +.. graphviz:: + + graph G { + splines=false; + 1,3 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 4,6,7,8,10,11,12,14,15,16,17 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 4 [label="4,{2}"]; + 6 [label="6,{5}"]; + 7 [label="7,{1,3}"]; + 8 [label="8,{9}"]; + 14 [label="14,{13}"]; + 1 -- 3 [color=red;label="6",fontsize=8]; + 3 -- 7 [color=red;label="7",fontsize=8]; + 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [color=red;label="8",fontsize=8]; + 11 -- 16 [color=red;label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [label="13",fontsize=8]; + 16 -- 17 [color=red;label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + + 1 [pos="0,2!"]; + 3 [pos="1,2!"]; 4 [pos="2,3.5!"]; + 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } + +Using when departure and destination are not in the contracted graph +............................................................................... + +.. literalinclude:: contractionDeadEnd.queries + :start-after: -- cg9 + :end-before: -- cg10 + +.. graphviz:: + + graph G { + splines=false; + 1,3,9 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 4,6,7,8,10,11,12,14,15,16,17 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 4 [label="4,{2}"]; + 6 [label="6,{5}"]; + 7 [label="7,{1,3}"]; + 8 [label="8,{9}"]; + 14 [label="14,{13}"]; + 1 -- 3 [color=red;label="6",fontsize=8]; + 3 -- 7 [color=red;label="7",fontsize=8]; + 8 -- 9 [color=red;label="7",fontsize=8]; + 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [label="13",fontsize=8]; + 16 -- 17 [label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + + 1 [pos="0,2!"]; + 3 [pos="1,2!"]; 4 [pos="2,3.5!"]; + 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } + +See Also +------------------------------------------------------------------------------- + +* :doc:`contraction-family` + +.. rubric:: Indices and tables + +* :ref:`genindex` +* :ref:`search` + diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst index aa84255963..f790b88283 100644 --- a/doc/src/proposed.rst +++ b/doc/src/proposed.rst @@ -68,6 +68,12 @@ Proposed Functions :start-after: proposed-start :end-before: proposed-end +:doc:`contraction-family` + +.. include:: contraction-family.rst + :start-after: proposed-start + :end-before: proposed-end + :doc:`traversal-family` .. include:: traversal-family.rst From 1d58473ce134413c5cdf8a7c84f996c3c777734b Mon Sep 17 00:00:00 2001 From: cvvergara Date: Fri, 21 Mar 2025 01:18:41 -0600 Subject: [PATCH 129/141] (doc) documenting changes on release notes & NEWS --- NEWS.md | 5 +++++ doc/src/release_notes.rst | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/NEWS.md b/NEWS.md index 2b27e1ebf2..c52acda372 100644 --- a/NEWS.md +++ b/NEWS.md @@ -37,6 +37,11 @@ * New name and order of optional parameters. * Deprecated signature pgr_contraction(text,bigint[],integer,bigint[],boolean) +**New proposed functions** + +* Contraction + + * [#2790](https://github.com/pgRouting/pgrouting/issues/2790): pgr_contractionDeadEnd ## pgRouting 3.7 diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index a5109bcdcb..ca1867f4af 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -67,6 +67,11 @@ pgRouting 3.8.0 Release Notes :start-after: Version 3.8.0 :end-before: .. rubric +.. rubric:: New proposed functions + +* Contraction + + * `#2790 `__: pgr_contractionDeadEnd pgRouting 3.7 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From b5c4a399fc2932a2a656a6cfb0a642ce0080efa7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 14:42:50 +0000 Subject: [PATCH 130/141] Update locale: commit 4defed035 --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 374 +++++++++++------- locale/pot/pgrouting_doc_strings.pot | 331 ++++++++++------ 2 files changed, 447 insertions(+), 258 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 9334756764..29de5b15b6 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-21 17:02+0000\n" +"POT-Creation-Date: 2025-03-22 14:42+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2769,6 +2769,9 @@ msgstr "" msgid ":doc:`pgr_contraction`" msgstr "" +msgid ":doc:`pgr_contractionDeadEnd`" +msgstr "" + msgid "" "In large graphs, like the road graphs, or electric networks, graph " "contraction can be used to speed up some graph algorithms. Contraction " @@ -2799,137 +2802,6 @@ msgid "" " of times they are to be executed." msgstr "" -msgid "Contraction of the leaf nodes of the graph." -msgstr "" - -msgid "Dead end" -msgstr "" - -msgid "A node is considered a **dead end** node when" -msgstr "" - -msgid "On undirected graphs:" -msgstr "" - -msgid "The number of adjacent vertices is 1." -msgstr "" - -msgid "On directed graphs:" -msgstr "" - -msgid "There are no outgoing edges and has at least one incoming edge." -msgstr "" - -msgid "There are no incoming edges and has at least one outgoing edge." -msgstr "" - -msgid "" -"When the conditions are true then the `Operation: Dead End Contraction`_ " -"can be done." -msgstr "" - -msgid "Dead end vertex on undirected graph" -msgstr "" - -msgid "The green nodes are `dead end`_ nodes" -msgstr "" - -msgid "The blue nodes have an unlimited number of edges." -msgstr "" - -msgid "Node" -msgstr "" - -msgid "Adjacent nodes" -msgstr "" - -msgid "Number of adjacent nodes" -msgstr "" - -msgid ":math:`a`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{u\\}`" -msgstr "" - -msgid ":math:`b`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{v\\}`" -msgstr "" - -msgid "Dead end vertex on directed graph" -msgstr "" - -msgid "The blue nodes have an unlimited number of incoming and/or outgoing edges." -msgstr "" - -msgid "Number of incoming edges" -msgstr "" - -msgid "Number of outgoing edges" -msgstr "" - -msgid ":math:`c`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{v, w\\}`" -msgstr "" - -msgid "2" -msgstr "" - -msgid ":math:`d`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{x\\}`" -msgstr "" - -msgid ":math:`e`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{x, y\\}`" -msgstr "" - -#, python-brace-format -msgid "" -"From above, nodes :math:`\\{a, b, d\\}` are dead ends because the number " -"of adjacent vertices is 1. No further checks are needed for those nodes." -msgstr "" - -#, python-brace-format -msgid "" -"On the following table, nodes :math:`\\{c, e\\}` because the even that " -"the number of adjacent vertices is not 1 for" -msgstr "" - -msgid "Operation: Dead End Contraction" -msgstr "" - -msgid "" -"The dead end contraction will stop until there are no more dead end " -"nodes. For example from the following graph where :math:`w` is the `dead " -"end`_ node:" -msgstr "" - -msgid "" -"After contracting :math:`w`, node :math:`v` is now a `dead end`_ node and" -" is contracted:" -msgstr "" - -msgid "" -"After contracting :math:`v`, stop. Node :math:`u` has the information of " -"nodes that were contrcted." -msgstr "" - -msgid "Node :math:`u` has the information of nodes that were contracted." -msgstr "" - msgid "In the algorithm, linear contraction is represented by 2." msgstr "" @@ -2960,6 +2832,15 @@ msgstr "" msgid "Undirected" msgstr "" +msgid "Node" +msgstr "" + +msgid "Adjacent nodes" +msgstr "" + +msgid "Number of adjacent nodes" +msgstr "" + msgid ":math:`v`" msgstr "" @@ -2967,6 +2848,9 @@ msgstr "" msgid ":math:`\\{u, w\\}`" msgstr "" +msgid "2" +msgstr "" + msgid "Linear vertex on directed graph" msgstr "" @@ -2982,6 +2866,9 @@ msgstr "" msgid "Is symmetrical?" msgstr "" +msgid ":math:`a`" +msgstr "" + #, python-brace-format msgid ":math:`\\{u, v\\}`" msgstr "" @@ -2989,10 +2876,16 @@ msgstr "" msgid "yes" msgstr "" +msgid ":math:`b`" +msgstr "" + #, python-brace-format msgid ":math:`\\{w, x\\}`" msgstr "" +msgid ":math:`c`" +msgstr "" + #, python-brace-format msgid ":math:`\\{y, z\\}`" msgstr "" @@ -4213,6 +4106,17 @@ msgid "" "pgr_contraction(text,bigint[],integer,bigint[],boolean)" msgstr "" +msgid "New proposed functions" +msgstr "" + +msgid "Contraction" +msgstr "" + +msgid "" +"`#2790 `__: " +"pgr_contractionDeadEnd" +msgstr "" + msgid "All releases" msgstr "" @@ -9385,7 +9289,7 @@ msgid "" "function:" msgstr "" -msgid "Dead End Contraction. See :doc:`contraction-family`." +msgid "Dead End Contraction. See :doc:`pgr_contractionDeadEnd`." msgstr "" msgid "Linear Contraction. See :doc:`contraction-family`." @@ -9688,6 +9592,204 @@ msgstr "" msgid "Case 3: Source and/or target belong to a vertex that has been contracted." msgstr "" +msgid "``pgr_contractionDeadEnd`` - Proposed" +msgstr "" + +msgid "" +"``pgr_contractionDeadEnd`` — Performs graph contraction and returns the " +"contracted vertices and edges." +msgstr "" + +msgid "A node is considered a dead end node when:" +msgstr "" + +msgid "On undirected graphs:" +msgstr "" + +msgid "The number of adjacent vertices is 1." +msgstr "" + +msgid "On directed graphs:" +msgstr "" + +msgid "When there is only one adjacent vertex or" +msgstr "" + +msgid "When all edges are incoming regardless of the number of adjacent vertices." +msgstr "" + +msgid "pgr_contractionDeadEnd(`Edges SQL`_, [**options**])" +msgstr "" + +msgid "**options:** ``[directed, forbidden_vertices]``" +msgstr "" + +msgid "Dead end contraction on an undirected graph." +msgstr "" + +msgid "The green nodes are dead end nodes." +msgstr "" + +msgid "Node :math:`3` is a dead end node after node :math:`1` is contracted." +msgstr "" + +msgid "``forbidden_vertices``" +msgstr "" + +msgid "``ARRAY[`` |ANY-INTEGER| ``]``" +msgstr "" + +msgid "**Empty**" +msgstr "" + +msgid "Value = ``e`` indicating the row is an edge." +msgstr "" + +msgid "A pseudo `id` of the edge." +msgstr "" + +msgid "Identifier of the source vertex of the current edge." +msgstr "" + +msgid "Identifier of the target vertex of the current edge." +msgstr "" + +msgid "Weight of the current edge." +msgstr "" + +msgid "Dead end vertex on undirected graph" +msgstr "" + +msgid "They have only one adjacent node." +msgstr "" + +msgid "Dead end vertex on directed graph" +msgstr "" + +msgid "The green nodes are dead end nodes" +msgstr "" + +msgid "The blue nodes have an unlimited number of incoming and/or outgoing edges." +msgstr "" + +msgid "Dead end" +msgstr "" + +msgid "Reason" +msgstr "" + +msgid ":math:`6`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{1\\}`" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "Has only one adjacent node." +msgstr "" + +msgid ":math:`7`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{2\\}`" +msgstr "" + +msgid ":math:`8`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{2, 3\\}`" +msgstr "" + +msgid "Has more than one adjacent node and all edges are incoming." +msgstr "" + +#, python-brace-format +msgid ":math:`\\{4\\}`" +msgstr "" + +msgid ":math:`10`" +msgstr "" + +#, python-brace-format +msgid ":math:`\\{4, 5\\}`" +msgstr "" + +msgid "No" +msgstr "" + +msgid "Has more than one adjacent node and all edges are outgoing." +msgstr "" + +msgid ":math:`1,2,3,4,5`" +msgstr "" + +msgid "Many adjacent nodes." +msgstr "" + +msgid "" +"Has more than one adjacent node and some edges are incoming and some are " +"outgoing." +msgstr "" + +#, python-brace-format +msgid "" +"From above, nodes :math:`\\{6, 7, 9\\}` are dead ends because the total " +"number of adjacent vertices is one." +msgstr "" + +msgid "" +"When there are more than one adjacent vertex, all edges need to be all " +"incoming edges otherwise it is not a dead end." +msgstr "" + +msgid "Stop by step dead end contraction" +msgstr "" + +msgid "" +"The dead end contraction will stop until there are no more dead end " +"nodes. For example, from the following graph where :math:`3` is the dead " +"end node:" +msgstr "" + +msgid "" +"After contracting :math:`3`, node :math:`2` is now a dead end node and is" +" contracted:" +msgstr "" + +msgid "" +"After contracting :math:`2`, stop. Node :math:`1` has the information of " +"nodes that were contrcted." +msgstr "" + +msgid "Creating the contracted graph" +msgstr "" + +msgid "Steps for the creation of the contracted graph" +msgstr "" + +msgid "Add additional columns." +msgstr "" + +msgid "Save results into a table." +msgstr "" + +msgid "The contracted vertices are not part of the contracted graph." +msgstr "" + +msgid "Using when departure and destination are in the contracted graph" +msgstr "" + +msgid "Using when departure/destination is not in the contracted graph" +msgstr "" + +msgid "Using when departure and destination are not in the contracted graph" +msgstr "" + msgid "``pgr_createTopology``" msgstr "" @@ -12410,15 +12512,9 @@ msgstr "" msgid "Gives a local identifier for the edge" msgstr "" -msgid "Identifier of the source vertex of the current edge." -msgstr "" - msgid "When `negative`: the source is the reverse edge in the original graph." msgstr "" -msgid "Identifier of the target vertex of the current edge." -msgstr "" - msgid "When `negative`: the target is the reverse edge in the original graph." msgstr "" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index 258d34c676..d2537266db 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-21 17:02+0000\n" +"POT-Creation-Date: 2025-03-22 14:42+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2554,6 +2554,9 @@ msgstr "" msgid ":doc:`pgr_contraction`" msgstr "" +msgid ":doc:`pgr_contractionDeadEnd`" +msgstr "" + msgid "In large graphs, like the road graphs, or electric networks, graph contraction can be used to speed up some graph algorithms. Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms." msgstr "" @@ -2575,117 +2578,6 @@ msgstr "" msgid "Decide the order of the contraction algorithms and set the maximum number of times they are to be executed." msgstr "" -msgid "Contraction of the leaf nodes of the graph." -msgstr "" - -msgid "Dead end" -msgstr "" - -msgid "A node is considered a **dead end** node when" -msgstr "" - -msgid "On undirected graphs:" -msgstr "" - -msgid "The number of adjacent vertices is 1." -msgstr "" - -msgid "On directed graphs:" -msgstr "" - -msgid "There are no outgoing edges and has at least one incoming edge." -msgstr "" - -msgid "There are no incoming edges and has at least one outgoing edge." -msgstr "" - -msgid "When the conditions are true then the `Operation: Dead End Contraction`_ can be done." -msgstr "" - -msgid "Dead end vertex on undirected graph" -msgstr "" - -msgid "The green nodes are `dead end`_ nodes" -msgstr "" - -msgid "The blue nodes have an unlimited number of edges." -msgstr "" - -msgid "Node" -msgstr "" - -msgid "Adjacent nodes" -msgstr "" - -msgid "Number of adjacent nodes" -msgstr "" - -msgid ":math:`a`" -msgstr "" - -msgid ":math:`\\{u\\}`" -msgstr "" - -msgid ":math:`b`" -msgstr "" - -msgid ":math:`\\{v\\}`" -msgstr "" - -msgid "Dead end vertex on directed graph" -msgstr "" - -msgid "The blue nodes have an unlimited number of incoming and/or outgoing edges." -msgstr "" - -msgid "Number of incoming edges" -msgstr "" - -msgid "Number of outgoing edges" -msgstr "" - -msgid ":math:`c`" -msgstr "" - -msgid ":math:`\\{v, w\\}`" -msgstr "" - -msgid "2" -msgstr "" - -msgid ":math:`d`" -msgstr "" - -msgid ":math:`\\{x\\}`" -msgstr "" - -msgid ":math:`e`" -msgstr "" - -msgid ":math:`\\{x, y\\}`" -msgstr "" - -msgid "From above, nodes :math:`\\{a, b, d\\}` are dead ends because the number of adjacent vertices is 1. No further checks are needed for those nodes." -msgstr "" - -msgid "On the following table, nodes :math:`\\{c, e\\}` because the even that the number of adjacent vertices is not 1 for" -msgstr "" - -msgid "Operation: Dead End Contraction" -msgstr "" - -msgid "The dead end contraction will stop until there are no more dead end nodes. For example from the following graph where :math:`w` is the `dead end`_ node:" -msgstr "" - -msgid "After contracting :math:`w`, node :math:`v` is now a `dead end`_ node and is contracted:" -msgstr "" - -msgid "After contracting :math:`v`, stop. Node :math:`u` has the information of nodes that were contrcted." -msgstr "" - -msgid "Node :math:`u` has the information of nodes that were contracted." -msgstr "" - msgid "In the algorithm, linear contraction is represented by 2." msgstr "" @@ -2716,12 +2608,24 @@ msgstr "" msgid "Undirected" msgstr "" +msgid "Node" +msgstr "" + +msgid "Adjacent nodes" +msgstr "" + +msgid "Number of adjacent nodes" +msgstr "" + msgid ":math:`v`" msgstr "" msgid ":math:`\\{u, w\\}`" msgstr "" +msgid "2" +msgstr "" + msgid "Linear vertex on directed graph" msgstr "" @@ -2737,15 +2641,24 @@ msgstr "" msgid "Is symmetrical?" msgstr "" +msgid ":math:`a`" +msgstr "" + msgid ":math:`\\{u, v\\}`" msgstr "" msgid "yes" msgstr "" +msgid ":math:`b`" +msgstr "" + msgid ":math:`\\{w, x\\}`" msgstr "" +msgid ":math:`c`" +msgstr "" + msgid ":math:`\\{y, z\\}`" msgstr "" @@ -3769,6 +3682,15 @@ msgstr "" msgid "Deprecated signature pgr_contraction(text,bigint[],integer,bigint[],boolean)" msgstr "" +msgid "New proposed functions" +msgstr "" + +msgid "Contraction" +msgstr "" + +msgid "`#2790 `__: pgr_contractionDeadEnd" +msgstr "" + msgid "All releases" msgstr "" @@ -8053,7 +7975,7 @@ msgstr "" msgid "Currently there are two types of contraction methods included in this function:" msgstr "" -msgid "Dead End Contraction. See :doc:`contraction-family`." +msgid "Dead End Contraction. See :doc:`pgr_contractionDeadEnd`." msgstr "" msgid "Linear Contraction. See :doc:`contraction-family`." @@ -8317,6 +8239,183 @@ msgstr "" msgid "Case 3: Source and/or target belong to a vertex that has been contracted." msgstr "" +msgid "``pgr_contractionDeadEnd`` - Proposed" +msgstr "" + +msgid "``pgr_contractionDeadEnd`` — Performs graph contraction and returns the contracted vertices and edges." +msgstr "" + +msgid "A node is considered a dead end node when:" +msgstr "" + +msgid "On undirected graphs:" +msgstr "" + +msgid "The number of adjacent vertices is 1." +msgstr "" + +msgid "On directed graphs:" +msgstr "" + +msgid "When there is only one adjacent vertex or" +msgstr "" + +msgid "When all edges are incoming regardless of the number of adjacent vertices." +msgstr "" + +msgid "pgr_contractionDeadEnd(`Edges SQL`_, [**options**])" +msgstr "" + +msgid "**options:** ``[directed, forbidden_vertices]``" +msgstr "" + +msgid "Dead end contraction on an undirected graph." +msgstr "" + +msgid "The green nodes are dead end nodes." +msgstr "" + +msgid "Node :math:`3` is a dead end node after node :math:`1` is contracted." +msgstr "" + +msgid "``forbidden_vertices``" +msgstr "" + +msgid "``ARRAY[`` |ANY-INTEGER| ``]``" +msgstr "" + +msgid "**Empty**" +msgstr "" + +msgid "Value = ``e`` indicating the row is an edge." +msgstr "" + +msgid "A pseudo `id` of the edge." +msgstr "" + +msgid "Identifier of the source vertex of the current edge." +msgstr "" + +msgid "Identifier of the target vertex of the current edge." +msgstr "" + +msgid "Weight of the current edge." +msgstr "" + +msgid "Dead end vertex on undirected graph" +msgstr "" + +msgid "They have only one adjacent node." +msgstr "" + +msgid "Dead end vertex on directed graph" +msgstr "" + +msgid "The green nodes are dead end nodes" +msgstr "" + +msgid "The blue nodes have an unlimited number of incoming and/or outgoing edges." +msgstr "" + +msgid "Dead end" +msgstr "" + +msgid "Reason" +msgstr "" + +msgid ":math:`6`" +msgstr "" + +msgid ":math:`\\{1\\}`" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "Has only one adjacent node." +msgstr "" + +msgid ":math:`7`" +msgstr "" + +msgid ":math:`\\{2\\}`" +msgstr "" + +msgid ":math:`8`" +msgstr "" + +msgid ":math:`\\{2, 3\\}`" +msgstr "" + +msgid "Has more than one adjacent node and all edges are incoming." +msgstr "" + +msgid ":math:`\\{4\\}`" +msgstr "" + +msgid ":math:`10`" +msgstr "" + +msgid ":math:`\\{4, 5\\}`" +msgstr "" + +msgid "No" +msgstr "" + +msgid "Has more than one adjacent node and all edges are outgoing." +msgstr "" + +msgid ":math:`1,2,3,4,5`" +msgstr "" + +msgid "Many adjacent nodes." +msgstr "" + +msgid "Has more than one adjacent node and some edges are incoming and some are outgoing." +msgstr "" + +msgid "From above, nodes :math:`\\{6, 7, 9\\}` are dead ends because the total number of adjacent vertices is one." +msgstr "" + +msgid "When there are more than one adjacent vertex, all edges need to be all incoming edges otherwise it is not a dead end." +msgstr "" + +msgid "Stop by step dead end contraction" +msgstr "" + +msgid "The dead end contraction will stop until there are no more dead end nodes. For example, from the following graph where :math:`3` is the dead end node:" +msgstr "" + +msgid "After contracting :math:`3`, node :math:`2` is now a dead end node and is contracted:" +msgstr "" + +msgid "After contracting :math:`2`, stop. Node :math:`1` has the information of nodes that were contrcted." +msgstr "" + +msgid "Creating the contracted graph" +msgstr "" + +msgid "Steps for the creation of the contracted graph" +msgstr "" + +msgid "Add additional columns." +msgstr "" + +msgid "Save results into a table." +msgstr "" + +msgid "The contracted vertices are not part of the contracted graph." +msgstr "" + +msgid "Using when departure and destination are in the contracted graph" +msgstr "" + +msgid "Using when departure/destination is not in the contracted graph" +msgstr "" + +msgid "Using when departure and destination are not in the contracted graph" +msgstr "" + msgid "``pgr_createTopology``" msgstr "" @@ -10555,15 +10654,9 @@ msgstr "" msgid "Gives a local identifier for the edge" msgstr "" -msgid "Identifier of the source vertex of the current edge." -msgstr "" - msgid "When `negative`: the source is the reverse edge in the original graph." msgstr "" -msgid "Identifier of the target vertex of the current edge." -msgstr "" - msgid "When `negative`: the target is the reverse edge in the original graph." msgstr "" From 7cf4fe073f48dc85c5b3796bf2c45641c22c4929 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 09:30:48 -0600 Subject: [PATCH 131/141] (contractionDeadEnd/pgtap) using prepared functions on tools --- .../edge_cases/compare_dijkstra.pg | 78 +---- .../edge_cases/edge_cases.pg | 276 +----------------- 2 files changed, 10 insertions(+), 344 deletions(-) diff --git a/pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg b/pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg index 00a7339dd5..d8a8d26e61 100644 --- a/pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg +++ b/pgtap/contraction/contractionDeadEnd/edge_cases/compare_dijkstra.pg @@ -24,86 +24,12 @@ UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(revers ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; -CREATE OR REPLACE FUNCTION check_cg(BOOLEAN) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - - IF NOT min_version('3.8.0') THEN - RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); - RETURN; - END IF; - - IF $1 THEN - RETURN QUERY - SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, - $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), - ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); - - RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); - - PREPARE c_expected_graph AS - SELECT source, target, cost, reverse_cost - FROM (VALUES - (16,17,'1.225'::TEXT,'1.225'::TEXT), - (10,15,'-0.991','1.009'), - (12,17,'1.169','-0.831'), - (15,16,'1.256','1.256'), - (6, 10, '-0.996', '1.004'), - (6, 7, '1.016', '1.016'), - (10, 11, '1.025', '-0.975'), - (7, 11, '1.064', '1.064'), - (11, 16, '1.081', '1.081'), - (11, 12, '1.121', '-0.879'), - (8, 12, '1.144', '-0.856'), - (7, 8, '1.100', '1.100')) - AS t(source, target, cost, reverse_cost); - - RETURN QUERY - SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', - 'c_expected_graph', 'The contracted graph'); - ELSE - RETURN QUERY - SELECT set_eq($$SELECT type, id, contracted_vertices, source, target FROM contraction_info$$, - $$ VALUES ('v',7,ARRAY[1,3],-1,-1), ('v',4,ARRAY[2],-1,-1), ('v',8,ARRAY[9],-1,-1), - ('v',6,ARRAY[5],-1,-1), ('v',14,ARRAY[13],-1,-1) $$); - - RETURN QUERY SELECT is_empty($$SELECT id FROM edges WHERE is_new$$); - - PREPARE c_expected_graph AS - SELECT source, target, cost, reverse_cost - FROM (VALUES - (6, 10, '-0.996', '1.004'), - (6, 7, '1.016', '1.016'), - (10, 11, '1.025', '-0.975'), - (7, 11, '1.064', '1.064'), - (11, 16, '1.081', '1.081'), - (11, 12, '1.121', '-0.879'), - (8, 12, '1.144', '-0.856'), - (7, 8, '1.100', '1.100'), - (16,17,'1.225'::TEXT,'1.225'::TEXT), - (10,15,'-0.991','1.009'), - (12,17,'1.169','-0.831'), - (15,16,'1.256','1.256')) - AS t(source, target, cost, reverse_cost); - - RETURN QUERY - SELECT set_eq('SELECT source, target, round(cost::numeric, 3)::TEXT AS cost, round(reverse_cost::numeric, 3)::TEXT FROM contracted_graph', - 'c_expected_graph', 'The contracted graph'); - - END IF; - DEALLOCATE PREPARE c_expected_graph; -END -$BODY$ -LANGUAGE plpgsql; - - CALL create_contracted_graph(false,'pgr_contractionDeadEnd'); -SELECT check_cg(false); +SELECT check_contracted_graph_deadend(false); SELECT compare_dijkstra_contraction(false); CALL create_contracted_graph(true,'pgr_contractionDeadEnd'); -SELECT check_cg(true); +SELECT check_contracted_graph_deadend(true); SELECT compare_dijkstra_contraction(true); SELECT finish(); diff --git a/pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg b/pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg index 19e02d8237..3575cdce83 100644 --- a/pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg +++ b/pgtap/contraction/contractionDeadEnd/edge_cases/edge_cases.pg @@ -1,6 +1,6 @@ /*PGR-GNU***************************************************************** -Copyright (c) 2018 pgRouting developers +Copyright (c) 2025 pgRouting developers Mail: project@pgrouting.org ------ @@ -21,268 +21,6 @@ BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); SELECT CASE WHEN min_version('3.8.0') THEN plan(128) ELSE plan(1) END; -CREATE TABLE graphs ( - id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, - source BIGINT, - target BIGINT, - cost BIGINT default 1, - reverse_cost BIGINT default 1, - dead_case INTEGER -); - -/* 2 -- {3 -- 4} ; 3 -- 4 */ -INSERT INTO graphs(source, target, dead_case) -VALUES -(2, 3, 0), -(2, 4, 0), -(3, 4, 0); - -INSERT INTO graphs(source, target, cost, reverse_cost, dead_case) -VALUES -/* 2->{3->4 [dir=both]} [dir=both]; 1->2 */ -(1, 2, 1, -1, 1), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1 */ -(2, 1, 1, -1, 2), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1 [dir=both] */ -(1, 2, 1, 1, 3), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1,2->1 */ -(2, 1, 1, -1, 4), -(2, 1, 1, -1, 4), - -/* 2->{3->4 [dir=both]} [dir=both]; {2,3}->1 */ -(2, 1, 1, -1, 5), -(3, 1, 1, -1, 5), - -/* 2->{3->4 [dir=both]} [dir=both]; 2->1;2->1;3->1 */ -(2, 1, 1, -1, 6), -(2, 1, 1, -1, 6), -(3, 1, 1, -1, 6); - -CREATE TABLE results ( - type text, - id INTEGER, - contracted_vertices BIGINT[], - result_case INTEGER -); - -INSERT INTO results(type, id, contracted_vertices, result_case) -VALUES -('v',6,ARRAY[5]::BIGINT[], 1), -('v',5,ARRAY[6], 2), -('v',15,ARRAY[10], 3), -('v',10,ARRAY[15], 4), -('v',12,ARRAY[8], 5), -('v',8,ARRAY[12], 6), -('v',15,ARRAY[6,10], 7), -('v',6,ARRAY[10,15], 8), -('v',10,ARRAY[6,15], 9), -('v',10,ARRAY[15], 10), -('v',10,ARRAY[6], 11), -('v',8,ARRAY[11,12], 12), -('v',8,ARRAY[12], 13), -('v',11,ARRAY[12], 13), -('v',11,ARRAY[8,12], 113), -('v',12,ARRAY[8,11], 14), -('v',12,ARRAY[11], 15), - -('v',10,ARRAY[6], 16), -('v',12,ARRAY[8], 16), -('v',6,ARRAY[10], 17), -('v',12,ARRAY[8], 17), -('v',10,ARRAY[6], 18), -('v',8,ARRAY[12], 18), -('v',6,ARRAY[10], 19), -('v',8,ARRAY[12], 19), -('v',6,ARRAY[10], 20), - -('v',17,ARRAY[10,11,12], 21), -('v',10,ARRAY[11,12,17], 22), -('v',11,ARRAY[10,12,17], 23), -('v',12,ARRAY[10,11,17], 24), - -('v',8,ARRAY[9], 25), -('v',7,ARRAY[1,3], 25), -('v',6,ARRAY[5], 25), - -('v',8,ARRAY[9], 26), -('v',3,ARRAY[1], 26), -('v',6,ARRAY[5], 26) - -; - -prepare get_solution(integer, integer, text) AS -WITH a AS (SELECT CASE WHEN $3::BOOLEAN THEN $1 ELSE $2 END r) -SELECT type,id,contracted_vertices FROM results, a WHERE result_case = r; - -CREATE OR REPLACE FUNCTION edge_cases_sampledata(directed text) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - - -- SINGLE edge - - RETURN QUERY - SELECT set_eq($$"graph1" ('1','{}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('1','{6}',$$||directed||$$)$$, $$"get_solution" (1,1,$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 5'); - RETURN QUERY - SELECT set_eq($$"graph1" ('1','{5}',$$||directed||$$)$$, $$"get_solution" (2,2,$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 6'); - RETURN QUERY - SELECT is_empty($$"graph1" ('1','{5,6}',$$||directed||$$)$$, '5 <=> 6: Directed=' || directed ||', forbid 5,6'); - - RETURN QUERY - SELECT set_eq($$"graph1" ('3','{}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3','{10}',$$||directed||$$)$$, $$"get_solution" (4,4,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('3','{15}',$$||directed||$$)$$, $$"get_solution" (3,3,$$||directed||$$) $$, '10 -> 15: Directed=' || directed ||', forbid 15'); - RETURN QUERY - SELECT is_empty($$"graph1" ('3','{10,15}',$$||directed||$$) $$, '5 <=> 6: Directed=' || directed ||', forbid 10,15'); - - RETURN QUERY - SELECT set_eq($$"graph1" ('12','{}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('12','{8}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('12','{12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '8 -> 12: Directed=' || directed ||', forbid 12'); - - -- TWO edges - - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{6}',$$||directed||$$)$$, $$"get_solution" (8,8,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{10}',$$||directed||$$)$$, $$"get_solution" (9,9,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{15}',$$||directed||$$)$$, $$"get_solution" (7,7,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 15'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{6,10}',$$||directed||$$)$$, $$"get_solution" (10,10,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10'); - RETURN QUERY - SELECT is_empty($$"graph1" ('2,3','{6,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,15'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,3','{10,15}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 10,15'); - RETURN QUERY - SELECT is_empty($$"graph1" ('2,3','{6,10,15}',$$||directed||$$)$$, '15 -> 10 -> 6: Directed=' || directed ||', forbid 6,10,15'); - - - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{8}',$$||directed||$$)$$, $$"get_solution" (12,12,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{11}',$$||directed||$$)$$, $$"get_solution" (13,113,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{12}',$$||directed||$$)$$, $$"get_solution" (14,14,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{8,11}',$$||directed||$$)$$, $$"get_solution" (13,213,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (15,15,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('11,12','{11,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 11,12'); - RETURN QUERY - SELECT is_empty($$"graph1" ('11,12','{8,11,12}',$$||directed||$$)$$, '11 -> 12 <- 8: Directed=' || directed ||', forbid 8,11,12'); - - - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{10}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{12}',$$||directed||$$)$$, $$"get_solution" (16,16,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,8}',$$||directed||$$)$$, $$"get_solution" (19,19,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,10}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,12}',$$||directed||$$)$$, $$"get_solution" (17,17,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8,10}',$$||directed||$$)$$, $$"get_solution" (18,18,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,8,10}',$$||directed||$$)$$, $$"get_solution" (6,6,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,8,12}',$$||directed||$$)$$, $$"get_solution" (20,20,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{6,10,12}',$$||directed||$$)$$, $$"get_solution" (5,5,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,10,12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('2,12','{8,10,12}',$$||directed||$$)$$, $$"get_solution" (11,11,$$||directed||$$) $$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 8,10,12'); - RETURN QUERY - SELECT is_empty($$"graph1" ('2,12','{6,8,10,12}',$$||directed||$$)$$, '10 -> 6, 8 -> 12: Directed=' || directed ||', forbid 6,8,10,12'); - - - -- THREE edges - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{10}',$$||directed||$$)$$, $$"get_solution" (22,22,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 10'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{11}',$$||directed||$$)$$, $$"get_solution" (23,23,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 11'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{12}',$$||directed||$$)$$, $$"get_solution" (24,24,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 12'); - RETURN QUERY - SELECT set_eq($$"graph1" ('5,11,13','{17}',$$||directed||$$)$$, $$"get_solution" (21,21,$$||directed||$$) $$, '10 -> 11 -> 12 -> 17: Directed=' || directed ||', forbid 17'); - RETURN QUERY - SELECT is_empty($$"graph1" ('5,11,13','{10,17}',$$||directed||$$)$$, '10 -> 11 -> 12 -> 17: Directed Directed=' || directed ||', forbid 10,17'); - - -- The graph1 - RETURN QUERY - SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{}',$$||directed||$$)$$, $$"get_solution" (25,25,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', no forbidden vertices'); - RETURN QUERY - SELECT set_eq($$"graph1" ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16','{3}',$$||directed||$$)$$, $$"get_solution" (26,26,$$||directed||$$) $$, 'the graph1: Directed=' || directed ||', forbid 3'); - -END; -$BODY$ -LANGUAGE plpgsql; - - -CREATE OR REPLACE FUNCTION edge_cases(directed text) -RETURNS SETOF TEXT AS -$BODY$ -BEGIN - -RETURN QUERY SELECT is_empty(format($$"graph" ('0',%1$s)$$,directed),'empty graph: 0,'||directed); - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('1',%1$s)$$,directed), 'not empty graph: 1,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 1,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,1',%1$s)$$,directed), 'not empty graph: 0,1,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,1',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,1,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,2',%1$s)$$,directed), 'not empty graph: 0,2,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,2',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,2,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,3',%1$s)$$,directed), 'not empty graph: 0,3,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,3',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,3,'||directed) ; - -RETURN QUERY SELECT isnt_empty(format($$"graph" ('0,4',%1$s)$$,directed), 'not empty graph: 0,4,'||directed); -RETURN QUERY SELECT set_eq(format($$"graph" ('0,4',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed) ; - -RETURN QUERY -SELECT CASE WHEN directed::BOOLEAN THEN - collect_tap( - isnt_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), - set_eq(format($$"graph" ('0,5',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,4,'||directed), - isnt_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed), - set_eq(format($$"graph" ('0,6',%1$s)$$,directed), $$ VALUES ('v',2,ARRAY[1]::BIGINT[],-1,-1,-1), ('v',3,ARRAY[1]::BIGINT[],-1,-1,-1) $$, 'expected graph: 0,6,'||directed)) -ELSE - collect_tap( - is_empty(format($$"graph" ('0,5',%1$s)$$,directed), 'empty graph: 0,5,'||directed), - is_empty(format($$"graph" ('0,6',%1$s)$$,directed), 'empty graph: 0,6,'||directed)) -END; - -END; -$BODY$ -LANGUAGE plpgsql; - CREATE OR REPLACE FUNCTION edge_cases() RETURNS SETOF TEXT AS $BODY$ @@ -294,9 +32,11 @@ BEGIN RETURN; END IF; + CALL create_deadend_edge_cases(); + PREPARE graph1(text,text,text) AS SELECT type, id, contracted_vertices FROM pgr_contractionDeadEnd( - format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER by id$$, $1), + format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER BY id$$, $1), $3::boolean, $2::INTEGER[]); prepare graph(text, text) AS @@ -304,10 +44,10 @@ BEGIN format($$SELECT * FROM graphs WHERE dead_case IN (%1$s) ORDER BY id$$, $1), $2::boolean); - RETURN QUERY SELECT edge_cases('true'); - RETURN QUERY SELECT edge_cases('false'); - RETURN QUERY SELECT edge_cases_sampledata('true'); - RETURN QUERY SELECT edge_cases_sampledata('false'); + RETURN QUERY SELECT deadend_edge_cases('true'); + RETURN QUERY SELECT deadend_edge_cases('false'); + RETURN QUERY SELECT deadend_edge_cases_sampledata('true'); + RETURN QUERY SELECT deadend_edge_cases_sampledata('false'); END; $BODY$ From 1db3aba7aed0fb7f2a7491c2f1374f6feb0da811 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 09:32:09 -0600 Subject: [PATCH 132/141] (contractionDeadEnd/pgtap) using rabbit suggestions --- doc/contraction/pgr_contractionDeadEnd.rst | 4 ++-- docqueries/contraction/contractionDeadEnd.pg | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/contraction/pgr_contractionDeadEnd.rst b/doc/contraction/pgr_contractionDeadEnd.rst index e782afb03a..6ac4db2315 100644 --- a/doc/contraction/pgr_contractionDeadEnd.rst +++ b/doc/contraction/pgr_contractionDeadEnd.rst @@ -328,7 +328,7 @@ all incoming edges otherwise it is not a dead end. 10 [pos="5,0!"]; } -Stop by step dead end contraction +Step by step dead end contraction ............................................................................... The dead end contraction will stop until there are no more dead end nodes. @@ -371,7 +371,7 @@ contracted: } After contracting :math:`2`, stop. Node :math:`1` has the information of nodes -that were contrcted. +that were contracted. .. graphviz:: diff --git a/docqueries/contraction/contractionDeadEnd.pg b/docqueries/contraction/contractionDeadEnd.pg index 158826f3d9..d6c88033ca 100644 --- a/docqueries/contraction/contractionDeadEnd.pg +++ b/docqueries/contraction/contractionDeadEnd.pg @@ -61,6 +61,7 @@ WHERE type = 'v' AND vertices.id = contraction_results.id; SELECT id, is_contracted FROM vertices WHERE is_contracted ORDER BY id; /* -- cg6 */ +DROP VIEW IF EXISTS contracted_graph; CREATE VIEW contracted_graph AS WITH vertices_in_graph AS ( From 7aeb88cb4b369fe49ce7ad0c16829462e4d4d656 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 15:35:07 +0000 Subject: [PATCH 133/141] Update locale: commit 99b6059e7 --- locale/en/LC_MESSAGES/pgrouting_doc_strings.po | 6 +++--- locale/pot/pgrouting_doc_strings.pot | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 29de5b15b6..19abcc9c6f 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-22 14:42+0000\n" +"POT-Creation-Date: 2025-03-22 15:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -9747,7 +9747,7 @@ msgid "" "incoming edges otherwise it is not a dead end." msgstr "" -msgid "Stop by step dead end contraction" +msgid "Step by step dead end contraction" msgstr "" msgid "" @@ -9763,7 +9763,7 @@ msgstr "" msgid "" "After contracting :math:`2`, stop. Node :math:`1` has the information of " -"nodes that were contrcted." +"nodes that were contracted." msgstr "" msgid "Creating the contracted graph" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index d2537266db..b36f165747 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-22 14:42+0000\n" +"POT-Creation-Date: 2025-03-22 15:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -8380,7 +8380,7 @@ msgstr "" msgid "When there are more than one adjacent vertex, all edges need to be all incoming edges otherwise it is not a dead end." msgstr "" -msgid "Stop by step dead end contraction" +msgid "Step by step dead end contraction" msgstr "" msgid "The dead end contraction will stop until there are no more dead end nodes. For example, from the following graph where :math:`3` is the dead end node:" @@ -8389,7 +8389,7 @@ msgstr "" msgid "After contracting :math:`3`, node :math:`2` is now a dead end node and is contracted:" msgstr "" -msgid "After contracting :math:`2`, stop. Node :math:`1` has the information of nodes that were contrcted." +msgid "After contracting :math:`2`, stop. Node :math:`1` has the information of nodes that were contracted." msgstr "" msgid "Creating the contracted graph" From 1f51838ea331e76591aa168f342eaa45d65cbe49 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 09:39:52 -0600 Subject: [PATCH 134/141] (contractionDeadEnd/docqueries) adding the missing change on the results file --- docqueries/contraction/contractionDeadEnd.result | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docqueries/contraction/contractionDeadEnd.result b/docqueries/contraction/contractionDeadEnd.result index 5034a1e3c6..8990c9af38 100644 --- a/docqueries/contraction/contractionDeadEnd.result +++ b/docqueries/contraction/contractionDeadEnd.result @@ -106,6 +106,9 @@ FROM vertices WHERE is_contracted ORDER BY id; (6 rows) /* -- cg6 */ +DROP VIEW IF EXISTS contracted_graph; +NOTICE: view "contracted_graph" does not exist, skipping +DROP VIEW CREATE VIEW contracted_graph AS WITH vertices_in_graph AS ( From 3e1b36177632c25b94e88a6731526f152caa497a Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 17:25:19 -0600 Subject: [PATCH 135/141] (contractionLinear/pgtap) the tests that need to pass --- git | 0 .../edge_cases/deadend/directed/id_size.pg | 2 +- .../edge_cases/deadend/undirected/id_size.pg | 2 +- .../edge_cases/compare_dijkstra.pg | 36 +++++++++ .../edge_cases/edge_cases.pg | 58 ++++++++++++++ .../contractionLinear/inner_query.pg | 79 +++++++++++++++++++ .../contractionLinear/no_crash_test.pg | 59 ++++++++++++++ .../contractionLinear/types_check.pg | 53 +++++++++++++ tools/testers/contraction_tapfuncs.sql | 29 ------- 9 files changed, 287 insertions(+), 31 deletions(-) delete mode 100644 git create mode 100644 pgtap/contraction/contractionLinear/edge_cases/compare_dijkstra.pg create mode 100644 pgtap/contraction/contractionLinear/edge_cases/edge_cases.pg create mode 100644 pgtap/contraction/contractionLinear/inner_query.pg create mode 100644 pgtap/contraction/contractionLinear/no_crash_test.pg create mode 100644 pgtap/contraction/contractionLinear/types_check.pg diff --git a/git b/git deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pgtap/contraction/contraction/edge_cases/deadend/directed/id_size.pg b/pgtap/contraction/contraction/edge_cases/deadend/directed/id_size.pg index 93f107590c..18868af61d 100644 --- a/pgtap/contraction/contraction/edge_cases/deadend/directed/id_size.pg +++ b/pgtap/contraction/contraction/edge_cases/deadend/directed/id_size.pg @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT plan(18); +SELECT plan(12); SELECT test_ids_size(2, true); SELECT test_ids_size(8, true); diff --git a/pgtap/contraction/contraction/edge_cases/deadend/undirected/id_size.pg b/pgtap/contraction/contraction/edge_cases/deadend/undirected/id_size.pg index 76c0301024..4b557f8562 100644 --- a/pgtap/contraction/contraction/edge_cases/deadend/undirected/id_size.pg +++ b/pgtap/contraction/contraction/edge_cases/deadend/undirected/id_size.pg @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. BEGIN; UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); -SELECT plan(18); +SELECT plan(12); SELECT test_ids_size(2, false); SELECT test_ids_size(8, false); diff --git a/pgtap/contraction/contractionLinear/edge_cases/compare_dijkstra.pg b/pgtap/contraction/contractionLinear/edge_cases/compare_dijkstra.pg new file mode 100644 index 0000000000..5944a59332 --- /dev/null +++ b/pgtap/contraction/contractionLinear/edge_cases/compare_dijkstra.pg @@ -0,0 +1,36 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +SELECT CASE WHEN min_version('3.8.0') THEN plan(654) ELSE plan(4) END; +UPDATE edges SET cost = sign(cost) + 0.001 * id * id, reverse_cost = sign(reverse_cost) + 0.001 * id * id; + +ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false, ADD contracted_vertices integer[]; + +CALL create_contracted_graph(false,'pgr_contractionLinear'); +SELECT check_contracted_graph_linear(false); +SELECT compare_dijkstra_contraction(false); + +CALL create_contracted_graph(true,'pgr_contractionLinear'); +SELECT check_contracted_graph_linear(true); +SELECT compare_dijkstra_contraction(true); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contractionLinear/edge_cases/edge_cases.pg b/pgtap/contraction/contractionLinear/edge_cases/edge_cases.pg new file mode 100644 index 0000000000..53dac6839e --- /dev/null +++ b/pgtap/contraction/contractionLinear/edge_cases/edge_cases.pg @@ -0,0 +1,58 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(112) ELSE plan(1) END; + +CREATE OR REPLACE FUNCTION edge_cases() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY + SELECT skip(1, 'pgr_contractionLinear is new on 3.8.0'); + RETURN; + END IF; + + CALL create_linear_edge_cases(); + + PREPARE graph1(text,text,text) AS + SELECT type, contracted_vertices,source,target,cost FROM pgr_contractionLinear( + format($$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id IN (%s) ORDER BY id$$, $1), + $3::boolean, $2::INTEGER[]); + + prepare graph(text, text) AS + SELECT * FROM pgr_contractionLinear(format($$SELECT * FROM graphs WHERE dead_case IN (%1$s)$$, $1), $2::boolean); + + RETURN QUERY SELECT linear_edge_cases('true'); + RETURN QUERY SELECT linear_edge_cases('false'); + RETURN QUERY SELECT linear_edge_cases_sampledata('true'); + RETURN QUERY SELECT linear_edge_cases_sampledata('false'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT edge_cases(); + +SELECT finish(); +ROLLBACK; + diff --git a/pgtap/contraction/contractionLinear/inner_query.pg b/pgtap/contraction/contractionLinear/inner_query.pg new file mode 100644 index 0000000000..6dd2e00f27 --- /dev/null +++ b/pgtap/contraction/contractionLinear/inner_query.pg @@ -0,0 +1,79 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(115) ELSE plan(1) END; + +CREATE OR REPLACE FUNCTION inner_query() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'pgr_contractionLinear new function on 3.8.0'); + RETURN; + END IF; + + RETURN QUERY SELECT style_dijkstra('pgr_contractionLinear(', ', true)'); + RETURN QUERY SELECT style_dijkstra('pgr_contractionLinear(', ', false)'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ [2,3,4,5], [4,5,6,7] ]::integer[][])$$, + 'XX000', 'One dimension expected', 'Throws because forbidden is 2 dimensions'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ])$$, + 'Lives when forbidden is not described'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionLinear('SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 12341234567890123 ])$$, + 'Lives when forbidden is not described and its big'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::integer[])$$, + 'Lives when forbidden is integer[]'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::bigint[])$$, + 'Lives when forbidden is bigint[]'); + + RETURN QUERY SELECT lives_ok( + $$SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::smallint[])$$, + 'Lives when forbidden is smallint[]'); + + RETURN QUERY SELECT throws_ok( + $$SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', true, ARRAY[ 2 ]::float8[])$$, + '42883', 'function pgr_contractionlinear(unknown, boolean, double precision[]) does not exist', + 'Throws because forbidden is float8[]'); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT inner_query(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contractionLinear/no_crash_test.pg b/pgtap/contraction/contractionLinear/no_crash_test.pg new file mode 100644 index 0000000000..b1bdda7671 --- /dev/null +++ b/pgtap/contraction/contractionLinear/no_crash_test.pg @@ -0,0 +1,59 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ +BEGIN; + +UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost); +SELECT CASE WHEN min_version('3.8.0') THEN plan(5) ELSE plan(2) END; + +PREPARE edges AS +SELECT id, source, target, cost, reverse_cost FROM edges; + +SELECT isnt_empty('edges', 'Should be not empty to tests be meaningful'); + + +CREATE OR REPLACE FUNCTION test_function() +RETURNS SETOF TEXT AS +$BODY$ +DECLARE +params TEXT[]; +subs TEXT[]; +BEGIN + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1, 'contraction function/signature is new on 3.8.0'); + RETURN; + END IF; + + params = ARRAY[ + '$$SELECT id, source, target, cost, reverse_cost FROM edges$$' + ]::TEXT[]; + subs = ARRAY[ + 'NULL' + ]::TEXT[]; + + RETURN query SELECT * FROM no_crash_test('pgr_contractionLinear', params, subs); + +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + + +SELECT * FROM test_function(); + +SELECT finish(); +ROLLBACK; diff --git a/pgtap/contraction/contractionLinear/types_check.pg b/pgtap/contraction/contractionLinear/types_check.pg new file mode 100644 index 0000000000..f40ea19975 --- /dev/null +++ b/pgtap/contraction/contractionLinear/types_check.pg @@ -0,0 +1,53 @@ +/*PGR-GNU***************************************************************** + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + ********************************************************************PGR-GNU*/ + +BEGIN; +SELECT CASE WHEN min_version('3.8.0') THEN plan(5) ELSE plan(1) END; + +CREATE OR REPLACE FUNCTION types_check() +RETURNS SETOF TEXT AS +$BODY$ +BEGIN + + IF NOT min_version('3.8.0') THEN + RETURN QUERY SELECT skip(1,'pgr_contractionlinear new on version 3.8.0'); + RETURN; + END IF; + + RETURN QUERY SELECT has_function('pgr_contractionlinear'); + RETURN QUERY SELECT has_function('pgr_contractionlinear', ARRAY['text','boolean','bigint[]']); + RETURN QUERY SELECT function_returns('pgr_contractionlinear', ARRAY['text','boolean','bigint[]'], 'setof record'); + + RETURN QUERY SELECT set_eq( + $$SELECT proargnames FROM pg_proc WHERE proname = 'pgr_contractionlinear'$$, + $$VALUES + ('{"",directed,forbidden,type,id,contracted_vertices,source,target,cost}'::TEXT[]) + $$,'pgr_contractionlinear: Column names'); + + RETURN QUERY SELECT function_types('pgr_contractionlinear', + $$VALUES ('{text,bool,_int8,text,int8,_int8,int8,int8,float8}'::TEXT[]) $$); + +END; +$BODY$ +LANGUAGE plpgsql; + +SELECT types_check(); + +SELECT finish(); +ROLLBACK; diff --git a/tools/testers/contraction_tapfuncs.sql b/tools/testers/contraction_tapfuncs.sql index 585bb44d02..d322ee52c0 100644 --- a/tools/testers/contraction_tapfuncs.sql +++ b/tools/testers/contraction_tapfuncs.sql @@ -875,35 +875,6 @@ BEGIN -1::BIGINT AS target, -1::FLOAT AS cost$$); - otherq = $d$ SELECT type, id, unnest(contracted_vertices) FROM pgr_contraction( - $$SELECT id, source, target, cost, reverse_cost FROM edges WHERE id = ANY('%1$s'::BIGINT[]) $$, - ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], '%2$s'::BOOLEAN)$d$; - - q = format(otherq, ARRAY[vids[1], vids[2]], directed); - - expected = format($d$ - SELECT type, id, unnest - FROM (VALUES - ('v'::TEXT, %1$s::BIGINT, %2$s::BIGINT), - ('v', %1$s, %3$s) - ) AS t(type, id, unnest)$d$, - vids[10], vids[5], vids[6]) ; - - RETURN QUERY SELECT set_eq(q, expected); - - q = format(otherq, ARRAY[vids[1], vids[2], vids[3]], directed); - - expected = format($d$ - SELECT type, id, unnest - FROM (VALUES - ('v'::TEXT, %1$s::BIGINT, %2$s::BIGINT), - ('v', %1$s, %3$s), - ('v', %1$s, %4$s) - ) AS t(type, id, unnest)$d$, - vids[6], vids[5], vids[10], vids[15]) ; - - RETURN QUERY - SELECT set_eq(q, expected); q = format($d$ SELECT type, id, unnest(contracted_vertices) FROM pgr_contraction( $$SELECT id, source, target, cost, reverse_cost FROM edges$$, From e07e5735037e202e28479d74600730541f679b11 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 17:26:03 -0600 Subject: [PATCH 136/141] (contractionLinear/sql) The new function --- sql/contraction/CMakeLists.txt | 1 + sql/contraction/linearContraction.sql | 54 +++++++++++++++++++++++++++ sql/sigs/pgrouting--3.8.sig | 1 + 3 files changed, 56 insertions(+) create mode 100644 sql/contraction/linearContraction.sql diff --git a/sql/contraction/CMakeLists.txt b/sql/contraction/CMakeLists.txt index 75790c117a..1bf544f345 100644 --- a/sql/contraction/CMakeLists.txt +++ b/sql/contraction/CMakeLists.txt @@ -3,6 +3,7 @@ SET(LOCAL_FILES _contraction.sql contraction.sql deadEndContraction.sql + linearContraction.sql ) foreach (f ${LOCAL_FILES}) diff --git a/sql/contraction/linearContraction.sql b/sql/contraction/linearContraction.sql new file mode 100644 index 0000000000..6fe617a119 --- /dev/null +++ b/sql/contraction/linearContraction.sql @@ -0,0 +1,54 @@ +/*PGR-GNU***************************************************************** +File: linearContraction.sql + +Copyright (c) 2025 pgRouting developers +Mail: project@pgrouting.org + +------ + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + ********************************************************************PGR-GNU*/ + +--v3.8 +CREATE FUNCTION pgr_contractionLinear( + TEXT, -- edges_sql (required) + + directed BOOLEAN DEFAULT true, + forbidden BIGINT[] DEFAULT ARRAY[]::BIGINT[], + + OUT type TEXT, + OUT id BIGINT, + OUT contracted_vertices BIGINT[], + OUT source BIGINT, + OUT target BIGINT, + OUT cost FLOAT) +RETURNS SETOF RECORD AS +$BODY$ + SELECT type, id, contracted_vertices, source, target, cost + FROM _pgr_contraction(_pgr_get_statement($1), ARRAY[2]::BIGINT[], 1, $3, $2); +$BODY$ +LANGUAGE SQL VOLATILE STRICT; + +COMMENT ON FUNCTION pgr_contractionLinear(TEXT, BOOLEAN, BIGINT[]) +IS 'pgr_contractionLinear +- Parameters: + - Edges SQL with columns: id, source, target, cost [,reverse_cost] +- Optional Parameters + - directed := true + - forbidden := ARRAY[]::BIGINT[] +- Documentation: + - ${PROJECT_DOC_LINK}/pgr_contractionLinear.html +'; diff --git a/sql/sigs/pgrouting--3.8.sig b/sql/sigs/pgrouting--3.8.sig index 5ea5c057b7..09ce9c0dd3 100644 --- a/sql/sigs/pgrouting--3.8.sig +++ b/sql/sigs/pgrouting--3.8.sig @@ -87,6 +87,7 @@ _pgr_compiler_version() _pgr_connectedcomponents(text) pgr_connectedcomponents(text) pgr_contractiondeadend(text,boolean,bigint[]) +pgr_contractionlinear(text,boolean,bigint[]) _pgr_contraction(text,bigint[],integer,bigint[],boolean) pgr_contraction(text,bigint[],integer,bigint[],boolean) pgr_contraction(text,boolean,integer[],integer,bigint[]) From 53aea127ff8ff49fc0972eb75dd3765c8e9e44e9 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 17:27:05 -0600 Subject: [PATCH 137/141] (contractionLinear/docqueries) Creating the documentation queries --- docqueries/contraction/CMakeLists.txt | 1 + docqueries/contraction/contractionLinear.pg | 93 +++++++++ .../contraction/contractionLinear.result | 177 ++++++++++++++++++ docqueries/contraction/test.conf | 1 + 4 files changed, 272 insertions(+) create mode 100644 docqueries/contraction/contractionLinear.pg create mode 100644 docqueries/contraction/contractionLinear.result diff --git a/docqueries/contraction/CMakeLists.txt b/docqueries/contraction/CMakeLists.txt index 170041a64e..aa67dcb4c0 100644 --- a/docqueries/contraction/CMakeLists.txt +++ b/docqueries/contraction/CMakeLists.txt @@ -2,6 +2,7 @@ SET(LOCAL_FILES contraction contractionDeadEnd + contractionLinear ) foreach (f ${LOCAL_FILES}) diff --git a/docqueries/contraction/contractionLinear.pg b/docqueries/contraction/contractionLinear.pg new file mode 100644 index 0000000000..73e87bf5f6 --- /dev/null +++ b/docqueries/contraction/contractionLinear.pg @@ -0,0 +1,93 @@ +-- CopyRight(c) pgRouting developers +-- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ +/* -- q1 */ +SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); +/* -- q2 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, -1), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); +/* -- q3 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, -1), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => false); +/* -- q4 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, 2), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); +/* -- q5 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, 2), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => false); +/* -- q6 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1), + (2, 2, 3, 1), + (2, 3, 4, 1)) + AS edges(id,source,target,cost)$$); +/* -- q7 */ +-- CopyRight(c) pgRouting developers +-- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ + +/* -- cg1 */ +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; +ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false; +ALTER TABLE edges ADD contracted_vertices BIGINT[]; +/* -- cg2 */ +SELECT * INTO contraction_results +FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); +/* -- cg3 */ +UPDATE vertices +SET is_contracted = true +WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); +/* -- cg4 */ +SELECT id, is_contracted +FROM vertices WHERE is_contracted ORDER BY id; +/* -- cg5 */ +INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) +SELECT source, target, cost, -1, contracted_vertices, true +FROM contraction_results; +/* -- cg6 */ +CREATE VIEW contracted_graph AS +WITH +vertices_in_graph AS ( + SELECT id FROM vertices WHERE NOT is_contracted +) +SELECT id, source, target, cost, reverse_cost +FROM edges +WHERE source IN (SELECT * FROM vertices_in_graph) +AND target IN (SELECT * FROM vertices_in_graph) +ORDER BY id; +/* -- cg7 */ +SELECT * FROM contracted_graph ORDER by id; +/* -- cg8 */ +SELECT * +FROM pgr_dijkstra('SELECT * FROM contracted_graph', 7, 16); +/* -- cg9 */ +SELECT * FROM pgr_dijkstra( + 'WITH in_line AS (SELECT contracted_vertices FROM edges WHERE 17 = ANY(contracted_vertices)) + SELECT id, source, target, cost, reverse_cost + FROM edges, in_line + WHERE source = ANY(in_line.contracted_vertices) OR target = ANY(in_line.contracted_vertices) + + UNION + + SELECT id, source, target, cost, reverse_cost FROM contracted_graph', + 1, 17); +/* -- cg10 */ diff --git a/docqueries/contraction/contractionLinear.result b/docqueries/contraction/contractionLinear.result new file mode 100644 index 0000000000..ae824d5465 --- /dev/null +++ b/docqueries/contraction/contractionLinear.result @@ -0,0 +1,177 @@ +BEGIN; +BEGIN +SET client_min_messages TO NOTICE; +SET +/* -- q1 */ +SELECT * FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + e | -1 | {3} | 1 | 7 | 2 + e | -2 | {17} | 12 | 16 | 2 + e | -3 | {15} | 10 | 16 | 2 +(3 rows) + +/* -- q2 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, -1), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ +(0 rows) + +/* -- q3 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, -1), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => false); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + e | -1 | {2} | 1 | 3 | 4 +(1 row) + +/* -- q4 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, 2), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => true); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + e | -1 | {2} | 1 | 3 | 4 + e | -2 | {2} | 3 | 1 | 6 +(2 rows) + +/* -- q5 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1, 2), + (2, 2, 3, 3, 4)) + AS edges(id,source,target,cost,reverse_cost)$$, + directed => false); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + e | -1 | {2} | 1 | 3 | 4 +(1 row) + +/* -- q6 */ +SELECT * FROM pgr_contractionLinear( +$$SELECT * FROM (VALUES + (1, 1, 2, 1), + (2, 2, 3, 1), + (2, 3, 4, 1)) + AS edges(id,source,target,cost)$$); + type | id | contracted_vertices | source | target | cost +------+----+---------------------+--------+--------+------ + e | -1 | {2,3} | 1 | 4 | 3 +(1 row) + +/* -- q7 */ +-- CopyRight(c) pgRouting developers +-- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ +/* -- cg1 */ +ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; +ALTER TABLE +ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false; +ALTER TABLE +ALTER TABLE edges ADD contracted_vertices BIGINT[]; +ALTER TABLE +/* -- cg2 */ +SELECT * INTO contraction_results +FROM pgr_contractionLinear( + 'SELECT id, source, target, cost, reverse_cost FROM edges', + directed => false); +SELECT 3 +/* -- cg3 */ +UPDATE vertices +SET is_contracted = true +WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); +UPDATE 3 +/* -- cg4 */ +SELECT id, is_contracted +FROM vertices WHERE is_contracted ORDER BY id; + id | is_contracted +----+--------------- + 3 | t + 15 | t + 17 | t +(3 rows) + +/* -- cg5 */ +INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) +SELECT source, target, cost, -1, contracted_vertices, true +FROM contraction_results; +INSERT 0 3 +/* -- cg6 */ +CREATE VIEW contracted_graph AS +WITH +vertices_in_graph AS ( + SELECT id FROM vertices WHERE NOT is_contracted +) +SELECT id, source, target, cost, reverse_cost +FROM edges +WHERE source IN (SELECT * FROM vertices_in_graph) +AND target IN (SELECT * FROM vertices_in_graph) +ORDER BY id; +CREATE VIEW +/* -- cg7 */ +SELECT * FROM contracted_graph ORDER by id; + id | source | target | cost | reverse_cost +----+--------+--------+------+-------------- + 1 | 5 | 6 | 1 | 1 + 2 | 6 | 10 | -1 | 1 + 4 | 6 | 7 | 1 | 1 + 5 | 10 | 11 | 1 | -1 + 8 | 7 | 11 | 1 | 1 + 9 | 11 | 16 | 1 | 1 + 10 | 7 | 8 | 1 | 1 + 11 | 11 | 12 | 1 | -1 + 12 | 8 | 12 | 1 | -1 + 14 | 8 | 9 | 1 | 1 + 17 | 2 | 4 | 1 | 1 + 18 | 13 | 14 | 1 | 1 + 19 | 1 | 7 | 2 | -1 + 20 | 12 | 16 | 2 | -1 + 21 | 10 | 16 | 2 | -1 +(15 rows) + +/* -- cg8 */ +SELECT * +FROM pgr_dijkstra('SELECT * FROM contracted_graph', 7, 16); + seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost +-----+----------+-----------+---------+------+------+------+---------- + 1 | 1 | 7 | 16 | 7 | 8 | 1 | 0 + 2 | 2 | 7 | 16 | 11 | 9 | 1 | 1 + 3 | 3 | 7 | 16 | 16 | -1 | 0 | 2 +(3 rows) + +/* -- cg9 */ +SELECT * FROM pgr_dijkstra( + 'WITH in_line AS (SELECT contracted_vertices FROM edges WHERE 17 = ANY(contracted_vertices)) + SELECT id, source, target, cost, reverse_cost + FROM edges, in_line + WHERE source = ANY(in_line.contracted_vertices) OR target = ANY(in_line.contracted_vertices) + + UNION + + SELECT id, source, target, cost, reverse_cost FROM contracted_graph', + 1, 17); + seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost +-----+----------+-----------+---------+------+------+------+---------- + 1 | 1 | 1 | 17 | 1 | 19 | 2 | 0 + 2 | 2 | 1 | 17 | 7 | 8 | 1 | 2 + 3 | 3 | 1 | 17 | 11 | 9 | 1 | 3 + 4 | 4 | 1 | 17 | 16 | 15 | 1 | 4 + 5 | 5 | 1 | 17 | 17 | -1 | 0 | 5 +(5 rows) + +/* -- cg10 */ +ROLLBACK; +ROLLBACK diff --git a/docqueries/contraction/test.conf b/docqueries/contraction/test.conf index 28f5f20634..9467440997 100644 --- a/docqueries/contraction/test.conf +++ b/docqueries/contraction/test.conf @@ -5,6 +5,7 @@ 'files' => [qw( contraction.pg contractionDeadEnd.pg + contractionLinear.pg )] }, From 9db5b2b28e9da31445252e8753fbf87e10893596 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 17:29:32 -0600 Subject: [PATCH 138/141] (contractionDeadEnd/doc) Adding documentation --- doc/_static/page_history.js | 2 +- doc/contraction/CMakeLists.txt | 1 + doc/contraction/contraction-family.rst | 165 +----- doc/contraction/pgr_contraction.rst | 6 +- doc/contraction/pgr_contractionLinear.rst | 633 ++++++++++++++++++++++ 5 files changed, 639 insertions(+), 168 deletions(-) create mode 100644 doc/contraction/pgr_contractionLinear.rst diff --git a/doc/_static/page_history.js b/doc/_static/page_history.js index 2e8b23ecce..052b17ff41 100644 --- a/doc/_static/page_history.js +++ b/doc/_static/page_history.js @@ -15,7 +15,7 @@ var titles = [ var newpages = [ - {v: '3.8', pages: ['pgr_contractionDeadEnd']}, + {v: '3.8', pages: ['pgr_contractionDeadEnd', 'pgr_contractionLinear']}, {v: '3.7', pages: ['metrics-family', 'pgr_betweennessCentrality']}, diff --git a/doc/contraction/CMakeLists.txt b/doc/contraction/CMakeLists.txt index 1efbd1a8d7..d07ec34388 100644 --- a/doc/contraction/CMakeLists.txt +++ b/doc/contraction/CMakeLists.txt @@ -3,6 +3,7 @@ SET(LOCAL_FILES contraction-family.rst pgr_contraction.rst pgr_contractionDeadEnd.rst + pgr_contractionLinear.rst ) foreach (f ${LOCAL_FILES}) diff --git a/doc/contraction/contraction-family.rst b/doc/contraction/contraction-family.rst index 6f9655005b..f11bc635a9 100644 --- a/doc/contraction/contraction-family.rst +++ b/doc/contraction/contraction-family.rst @@ -36,6 +36,7 @@ Contraction - Family of functions pgr_contraction pgr_contractionDeadEnd + pgr_contractionLinear Introduction @@ -59,173 +60,9 @@ Allowing the user to: - Decide the order of the contraction algorithms and set the maximum number of times they are to be executed. -Linear contraction -------------------------------------------------------------------------------- -In the algorithm, linear contraction is represented by 2. - -Linear -................................................................................ - -In case of an undirected graph, a node is considered a `linear` node when - -* The number of adjacent vertices is 2. - -In case of a directed graph, a node is considered a `linear` node when - -* The number of adjacent vertices is 2. -* Linearity is symmetrical - -Linear vertex on undirected graph -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -- The green nodes are `linear`_ nodes -- The blue nodes have an unlimited number of incoming and outgoing edges. - - -.. rubric:: Undirected - -.. graphviz:: - - graph G { - u, w [shape=circle;style=filled;width=.4;color=deepskyblue]; - v [style=filled; color=green]; - G [shape=tripleoctagon;width=1.5;style=filled; - color=deepskyblue;label = "Rest of the Graph"]; - - rankdir=LR; - w -- G -- u [dir=none, weight=1, penwidth=3]; - u -- v -- w; - } - -.. list-table:: - :width: 80 - :widths: auto - :header-rows: 1 - - * - Node - - Adjacent nodes - - Number of adjacent nodes - * - :math:`v` - - :math:`\{u, w\}` - - 2 - -Linear vertex on directed graph -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -- The green nodes are `linear`_ nodes -- The blue nodes have an unlimited number of incoming and outgoing edges. -- The white node is not linear because the linearity is not symmetrical. - - * It is possible to go :math:`y \rightarrow c \rightarrow z` - * It's not possible to go :math:`z \rightarrow c \rightarrow y` - -.. graphviz:: - - digraph G { - u, v, w, x, y, z [shape=circle;style=filled;width=.4;color=deepskyblue]; - a, b [style=filled; color=green]; - G [shape=tripleoctagon;width=1.5;style=filled; - color=deepskyblue;label = "Rest of the Graph"]; - - rankdir=LR; - {u, v} -> G -> {x, w, y, z} [dir=none, weight=1, penwidth=3]; - u -> a -> v; - w -> b -> x; - x -> b -> w [color=darkgray]; - y -> c -> z -> c; - } - -.. list-table:: - :width: 80 - :widths: auto - :header-rows: 1 - - * - Node - - Adjacent nodes - - Number of adjacent nodes - - Is symmetrical? - * - :math:`a` - - :math:`\{u, v\}` - - 2 - - yes - * - :math:`b` - - :math:`\{w, x\}` - - 2 - - yes - * - :math:`c` - - :math:`\{y, z\}` - - 2 - - no - -Operation: Linear Contraction -............................................................................... - -The linear contraction will stop when there are no more linear nodes. -For example from the following graph where :math:`v` and :math:`w` are `linear`_ -nodes: - -.. graphviz:: - - digraph G { - u, z [shape=circle;style=filled;color=deepskyblue]; - v, w [style=filled; color=green]; - "G" [shape=tripleoctagon; style=filled; - color=deepskyblue;label = "Rest of the Graph"]; - - rankdir=LR; - G -> {u, z} [dir=none, weight=1, penwidth=3]; - u -> v -> w -> z; - } - -Contracting :math:`w`, - -* The vertex :math:`w` is removed from the graph -* The edges :math:`v \rightarrow w` and :math:`w \rightarrow z` are removed - from the graph. -* A new edge :math:`v \rightarrow z` is inserted represented with red color. - -.. graphviz:: - - digraph G { - u, z [shape=circle;style=filled;color=deepskyblue]; - v [style=filled; color=green]; - "G" [shape=tripleoctagon; style=filled; - color=deepskyblue;label = "Rest of the Graph"]; - - rankdir=LR; - G -> {u, z} [dir=none, weight=1, penwidth=3]; - u -> v; - v -> z [label="{w}";color=red] - } - -Contracting :math:`v`: - -* The vertex :math:`v` is removed from the graph -* The edges :math:`u \rightarrow v` and :math:`v \rightarrow z` are removed - from the graph. -* A new edge :math:`u \rightarrow z` is inserted represented with red color. - - -.. graphviz:: - - digraph G { - u, z [shape=circle;style=filled;color=deepskyblue]; - "G" [shape=tripleoctagon; style=filled; - color=deepskyblue;label = "Rest of the Graph"]; - - rankdir=LR; - G -> {u, z} [dir=none, weight=1, penwidth=3]; - u -> z [label="{v, w}";color=red] - } - -Edge :math:`u \rightarrow z` has the information of nodes that were contracted. - - See Also ------------------------------------------------------------------------------- -* :doc:`pgr_contraction` -* :doc:`sampledata` * https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf * https://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index 7319647de5..41f215d769 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -76,7 +76,7 @@ The main Characteristics are: function: - Dead End Contraction. See :doc:`pgr_contractionDeadEnd`. - - Linear Contraction. See :doc:`contraction-family`. + - Linear Contraction. See :doc:`pgr_contractionLinear`. |Boost| Boost Graph Inside @@ -238,12 +238,12 @@ Only linear contraction The cycle ................................................................................ -Contracting a graph can be done with more than one operation. +Contracting a graph, can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes. -This implementation cycles ``cycles`` times through the ``methods`` . +This implementation, cycles ``cycles`` times through the ``methods`` . .. parsed-literal:: diff --git a/doc/contraction/pgr_contractionLinear.rst b/doc/contraction/pgr_contractionLinear.rst new file mode 100644 index 0000000000..580707ed3d --- /dev/null +++ b/doc/contraction/pgr_contractionLinear.rst @@ -0,0 +1,633 @@ +.. + **************************************************************************** + 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: Contraction Family ; pgr_contractionLinear - Proposed + single: contractionLinear - Proposed + +| + +``pgr_contractionLinear`` - Proposed +=============================================================================== + +``pgr_contractionLinear`` — Performs graph contraction and returns the contracted +vertices and edges. + +.. rubric:: Availability + +* Version 3.8.0 + + * New proposed function. + + +Description +------------------------------------------------------------------------------- + +.. include:: pgr_contraction.rst + :start-after: characteristics_start + :end-before: characteristics_end + +|Boost| Boost Graph Inside + +Signatures +------------------------------------------------------------------------------- + +.. admonition:: \ \ + :class: signatures + + | pgr_contractionLinear(`Edges SQL`_, [**options**]) + + | **options:** ``[directed, max_cycles, forbidden_vertices]`` + | Returns set of |result-contract| + +:Example: Linear contraction on an undirected graph. + +.. literalinclude:: contractionLinear.queries + :start-after: -- q1 + :end-before: -- q2 + +- The green nodes are linear nodes and will not be part of the contracted graph. + + - All edges adjacent will not be part of the contracted graph. + +- The red lines will be new edges of the contracted graph. + +.. graphviz:: + + graph G { + splines=false; + 3,15,17 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,2,4,5,6,7,8,9,10,11,12,13,14,16 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1:n -- 7:n [label="-1",fontsize=8,color=red]; + 12:s -- 17:sw -- 16:w [label="-2",fontsize=8,color=red]; + 10:n -- 15:nw -- 16:w [label="-3",fontsize=8,color=red]; + 5 -- 6 [label="1",fontsize=8]; 6 -- 10 [label="2",fontsize=8]; + 10 -- 15 [label="3",fontsize=8]; 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; 1 -- 3 [label="6",fontsize=8]; + 3 -- 7 [label="7",fontsize=8]; 7 -- 11 [label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 12 -- 17 [label="13",fontsize=8]; 8 -- 9 [label="",fontsize=8]; + 16 -- 17 [label="15",fontsize=8]; 15 -- 16 [label="16",fontsize=8]; + 2 -- 4 [label="17",fontsize=8]; 13 -- 14 [label="18",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="0.5,3.5!"]; + 3 [pos="1,2!"]; 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; 14 [pos="3.5,4!"]; + 15 [pos="4,1!"]; 16 [pos="4,2!"]; + 17 [pos="4,3!"]; + } + +Parameters +------------------------------------------------------------------------------- + +.. list-table:: + :width: 81 + :widths: auto + :header-rows: 1 + + * - Parameter + - Type + - Description + * - `Edges SQL`_ + - ``TEXT`` + - `Edges SQL`_ as described below. + * - **contraction Order** + - ``ARRAY[`` **ANY-INTEGER** ``]`` + - Ordered contraction operations. + + - 1 = Dead end contraction + - 2 = Linear contraction + +Optional parameters +............................................................................... + +.. include:: dijkstra-family.rst + :start-after: dijkstra_optionals_start + :end-before: dijkstra_optionals_end + +Contraction optional parameters +............................................................................... + +.. list-table:: + :width: 81 + :widths: 19 22 7 40 + :header-rows: 1 + + * - Column + - Type + - Default + - Description + * - ``forbidden_vertices`` + - ``ARRAY[`` **ANY-INTEGER** ``]`` + - **Empty** + - Identifiers of vertices forbidden for contraction. + * - ``max_cycles`` + - ``INTEGER`` + - :math:`1` + - Number of times the contraction operations on ``contraction_order`` will + be performed. + +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 |result-contract| + +The function returns a single row. The columns of the row are: + +.. list-table:: + :width: 81 + :widths: auto + :header-rows: 1 + + * - Column + - Type + - Description + * - ``type`` + - ``TEXT`` + - Value = ``e`` indicating the row is an edge. + * - ``id`` + - ``BIGINT`` + - A pseudo `id` of the edge. + + * All numbers on this column are ``DISTINCT`` + * Decreasing sequence starting from **-1**. + * - ``contracted_vertices`` + - ``ARRAY[BIGINT]`` + - Array of contracted vertex identifiers. + * - ``source`` + - ``BIGINT`` + - Identifier of the source vertex of the current edge. + * - ``target`` + - ``BIGINT`` + - Identifier of the target vertex of the current edge. + * - ``cost`` + - ``FLOAT`` + - Weight of the current edge. + +Additional Examples +------------------------------------------------------------------------------- + +.. contents:: + :local: + +Linear edges +................................................................................ + +.. rubric:: Undirected graph + +A node connects two (or more) `linear` edges when + +* The number of adjacent vertices is 2. + +.. graphviz:: + + graph G { + label = "Linear edges" + 2 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + 1 -- 2 -- 3 -- 2; + 1 [pos="0,2!"]; 2 [pos="1,2!"]; 3 [pos="2,2!"]; + } + +.. graphviz:: + + graph G { + label = "Non linear edges" + 4,5,6,7 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + 4 -- 5 -- 6 -- 5; 5 --7; + 4 [pos="0,0!"]; 5 [pos="1,0!"]; 6 [pos="2,0!"]; + 7 [pos="1,1!"]; + } + + +In case of a directed graph, a node is considered a `linear` node when + +* The number of adjacent vertices is 2. +* Linearity is symmetrical. + +.. graphviz:: + + digraph G { + label = "Linearity is symmetrical." + 2 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + 1 -> 2 -> 3 -> 2 -> 1; + 1 [pos="0,2!"]; 2 [pos="1,2!"]; 3 [pos="2,2!"]; + } + +.. graphviz:: + + digraph G { + label = "Linearity is not symmetrical." + 2 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + 1 -> 2 -> 3 -> 2; + 1 [pos="0,2!"]; 2 [pos="1,2!"]; 3 [pos="2,2!"]; + } + +Linearity is not symmetrical +................................................................................ + +.. rubric:: Directed graph + +Graph where linearity is not symmetrical. + +.. graphviz:: + + digraph G { + 2 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1 -> 2 [label="1",fontsize=8]; + 2 -> 3 [label="3",fontsize=8]; + 3 -> 2 [label="4",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="1,2!"]; 3 [pos="2,2!"]; + } + +When the graph is processed as a directed graph, linearity is not symmetrical, +therefore the graph can not be contracted. + +.. literalinclude:: contractionLinear.queries + :start-after: -- q2 + :end-before: -- q3 + +.. rubric:: Undirected graph + +When the same graph is processed as an undirected graph, linearity is symmetrical, +therefore the graph can be contracted. + +.. graphviz:: + + graph G { + 2 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + 1 -- 2 [label="1",fontsize=8]; + 2 -- 3 [label="3",fontsize=8]; + 3 -- 2 [label="4",fontsize=8]; + 1 [pos="0,2!"]; 2 [pos="1,2!"]; 3 [pos="2,2!"]; + } + +.. literalinclude:: contractionLinear.queries + :start-after: -- q3 + :end-before: -- q4 + +The three edges can be replaced by one undirected edge + +- Edge :math:`1 - 3`. + + - With cost: :math:`4`. + - Contracted vertices in the edge: :math:`\{2\}`. + +.. graphviz:: + + graph G { + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + 1 -- 3 [label="4, {2}",fontsize=8;color=red]; + 1 [pos="0,2!"]; 3 [pos="2,2!"]; + } + + +Linearity is symmetrical +................................................................................ + +.. rubric:: Directed graph + +Graph where linearity is symmetrical. + +.. graphviz:: + + digraph G { + 2 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1 -> 2 [label="1",fontsize=8]; + 2 -> 1 [label="2",fontsize=8]; + 2 -> 3 [label="3",fontsize=8]; + 3 -> 2 [label="4",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="1,2!"]; 3 [pos="2,2!"]; + } + +When the graph is processed as a directed graph, linearity is not symmetrical, +therefore the graph can not be contracted. + +.. literalinclude:: contractionLinear.queries + :start-after: -- q4 + :end-before: -- q5 + +The four edges can be replaced by two directed edges. + +- Edge :math:`1 - 3`. + + - With cost: :math:`4`. + - Contracted vertices in the edge: :math:`\{2\}`. + +- Edge :math:`3 - 1`. + + - With cost: :math:`6`. + - Contracted vertices in the edge: :math:`\{2\}`. + +.. graphviz:: + + digraph G { + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1 -> 3 [label="4, {2}",fontsize=8;color=red]; + 3 -> 1 [label="6, {2}",fontsize=8;color=red]; + + 1 [pos="0,2!"]; 3 [pos="2,2!"]; + } + +.. rubric:: Undirected graph + +When the same graph is processed as an undirected graph, linearity is symmetrical, +therefore the graph can be contracted. + +.. graphviz:: + + graph G { + 2 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + 1 -- 2 [label="1",fontsize=8]; + 2 -- 1 [label="2",fontsize=8]; + 2 -- 3 [label="3",fontsize=8]; + 3 -- 2 [label="4",fontsize=8]; + 1 [pos="0,2!"]; 2 [pos="1,2!"]; 3 [pos="2,2!"]; + } + +.. literalinclude:: contractionLinear.queries + :start-after: -- q5 + :end-before: -- q6 + +The four edges can be replaced by one undirected edge. + +- Edge :math:`1 - 3`. + + - With cost: :math:`4`. + - Contracted vertices in the edge: :math:`\{2\}`. + +.. graphviz:: + + graph G { + 1,3 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1 -- 3 [label="4, {2}",fontsize=8;color=red]; + + 1 [pos="0,2!"]; 3 [pos="2,2!"]; + } + +Step by step linear contraction +................................................................................ + +The linear contraction will stop when there are no more linear edges. +For example from the following graph there are linear edges + +.. graphviz:: + + digraph G { + 1, 2, 3, 4, G [fontsize=8;fixedsize=true;style=filled]; + 1, 2, 3, 4 [shape=circle]; + 1, 4 [color=deepskyblue]; + 2, 3 [color=green]; + G [shape=tripleoctagon;width=1.5;color=deepskyblue;label = "Rest of the Graph"]; + G -> {1, 4} [dir=none, weight=1, penwidth=3]; + 1 -> 2 [label="1";fontsize=8;fixedsize=true]; + 2 -> 3 [label="1";fontsize=8;fixedsize=true]; + 3 -> 4 [label="1";fontsize=8;fixedsize=true]; + G [pos="1,1!"]; + 1 [pos="0,0!"]; 2 [pos="1,0!"]; 3 [pos="2,0!"]; 4 [pos="3,0!"]; + } + +Contracting vertex :math:`3`, + +* The vertex :math:`3` is removed from the graph +* The edges :math:`2 \rightarrow 3` and :math:`w \rightarrow z` are removed + from the graph. +* A new edge :math:`2 \rightarrow 4` is inserted represented with red color. + +.. graphviz:: + + digraph G { + 1, 2, 4, G [fontsize=8;fixedsize=true;style=filled]; + 1, 2, 4 [shape=circle]; + 1, 4 [color=deepskyblue]; + 2 [color=green]; + G [shape=tripleoctagon;width=1.5;color=deepskyblue;label = "Rest of the Graph"]; + G -> {1, 4} [dir=none, weight=1, penwidth=3]; + 1 -> 2 [label="1";fontsize=8;fixedsize=true]; + 2 -> 4 [label="2, {3}";color=red;fontsize=8;fixedsize=true]; + G [pos="1,1!"]; + 1 [pos="0,0!"]; 2 [pos="1,0!"]; 4 [pos="3,0!"]; + } + +Contracting vertex :math:`2`: + +* The vertex :math:`2` is removed from the graph +* The edges :math:`1 \rightarrow 2` and :math:`2 \rightarrow 3` are removed + from the graph. +* A new edge :math:`1 \rightarrow 3` is inserted represented with red color. + +.. graphviz:: + + digraph G { + 1, 4, G [fontsize=8;fixedsize=true;style=filled]; + 1, 4 [shape=circle]; + 1, 4 [color=deepskyblue]; + G [shape=tripleoctagon;width=1.5;color=deepskyblue;label = "Rest of the Graph"]; + G -> {1, 4} [dir=none, weight=1, penwidth=3]; + 1 -> 4 [label="3, {2,3}";color=red;fontsize=8;fixedsize=true] + G [pos="1,1!"]; + 1 [pos="0,0!"]; 4 [pos="3,0!"]; + } + +Edge :math:`1 \rightarrow 3` has the information of cost and the nodes that were +contracted. + +.. literalinclude:: contractionLinear.queries + :start-after: -- q6 + :end-before: -- q7 + +Creating the contracted graph +............................................................................... + +.. contents:: + :local: + +Steps for the creation of the contracted graph +############################################################################### + +Add additional columns. + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg1 + :end-before: -- cg2 + +Save results into a table. + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg2 + :end-before: -- cg3 + +Use ``is_contracted`` column to indicate the vertices that are contracted. + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg3 + :end-before: -- cg4 + +The contracted vertices are not part of the contracted graph. + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg4 + :end-before: -- cg5 + +Insert the new edges generated by pgr_contraction. + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg5 + :end-before: -- cg6 + +Create the contracted graph. + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg6 + :end-before: -- cg7 + +The contracted graph +############################################################################### + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg7 + :end-before: -- cg8 + +.. graphviz:: + + graph G { + splines=false; + 1,2,4,5,6,7,8,9,10,11,12,13,14,16 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1 -- 7 [label="19, (2, {3})",fontsize=8]; + 12 -- 16 [label="20, (2, {17})",fontsize=8]; + 10 -- 16 [label="21, (2, {15})",fontsize=8]; + 5 -- 6 [label="1",fontsize=8]; 6 -- 10 [label="2",fontsize=8]; + 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [label="8",fontsize=8]; + 11 -- 16 [label="9",fontsize=8]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 8 -- 9 [label="",fontsize=8]; + 2 -- 4 [label="17",fontsize=8]; 13 -- 14 [label="18",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="0.5,3.5!"]; + 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; 14 [pos="3.5,4!"]; + 16 [pos="4,2!"]; + } + +Using when departure and destination are in the contracted graph +............................................................................... + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg8 + :end-before: -- cg9 + +.. graphviz:: + + graph G { + splines=false; + 1,2,4,5,6,7,8,9,10,11,12,13,14,16 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1 -- 7 [label="19, (2, {3})",fontsize=8]; + 12 -- 16 [label="20, (2, {17})",fontsize=8]; + 10 -- 16 [label="21, (2, {15})",fontsize=8]; + 5 -- 6 [label="1",fontsize=8]; 6 -- 10 [label="2",fontsize=8]; + 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [label="8",fontsize=8;color=red]; + 11 -- 16 [label="9",fontsize=8;color=red]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 8 -- 9 [label="",fontsize=8]; + 2 -- 4 [label="17",fontsize=8]; 13 -- 14 [label="18",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="0.5,3.5!"]; + 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; 14 [pos="3.5,4!"]; + 16 [pos="4,2!"]; + } + +Using when departure/destination is not in the contracted graph +............................................................................... + +.. literalinclude:: contractionLinear.queries + :start-after: -- cg9 + :end-before: -- cg10 + +.. graphviz:: + + graph G { + 17 [shape=circle;style=filled;color=lightgreen;fontsize=8;width=0.3;fixedsize=true]; + 1,2,4,5,6,7,8,9,10,11,12,13,14,16 [shape=circle;style=filled;color=cyan;fontsize=8;width=0.3;fixedsize=true]; + + 1 -- 7 [label="19, (2, {3})",fontsize=8;color=red]; + 12 -- 16 [label="20, (2, {17})",fontsize=8]; + 10 -- 16 [label="21, (2, {15})",fontsize=8]; + 5 -- 6 [label="1",fontsize=8]; 6 -- 10 [label="2",fontsize=8]; + 6 -- 7 [label="4",fontsize=8]; + 10 -- 11 [label="5",fontsize=8]; + 7 -- 11 [label="8",fontsize=8;color=red]; 12 -- 17 [label="13",fontsize=8]; + 11 -- 16 [label="9",fontsize=8;color=red]; 7 -- 8 [label="10",fontsize=8]; + 11 -- 12 [label="11",fontsize=8]; 8 -- 12 [label="12",fontsize=8]; + 8 -- 9 [label="",fontsize=8]; 16 -- 17 [label="15",fontsize=8;color=red]; + 2 -- 4 [label="17",fontsize=8]; 13 -- 14 [label="18",fontsize=8]; + + 1 [pos="0,2!"]; 2 [pos="0.5,3.5!"]; + 4 [pos="2,3.5!"]; + 5 [pos="2,0!"]; 6 [pos="2,1!"]; + 7 [pos="2,2!"]; 8 [pos="2,3!"]; + 9 [pos="2,4!"]; 10 [pos="3,1!"]; + 11 [pos="3,2!"]; 12 [pos="3,3!"]; + 13 [pos="3.5,2.3!"]; 14 [pos="3.5,4!"]; + 16 [pos="4,2!"]; 17 [pos="4,3!"]; + } + +See Also +------------------------------------------------------------------------------- + +* :doc:`contraction-family` + +.. rubric:: Indices and tables + +* :ref:`genindex` +* :ref:`search` + From 64781cea07558a1a30deceebf23818e5c0aa94fc Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sat, 22 Mar 2025 17:32:22 -0600 Subject: [PATCH 139/141] (doc) documenting changes on release notes & NEWS --- NEWS.md | 1 + doc/src/release_notes.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/NEWS.md b/NEWS.md index c52acda372..6fd33ab7ee 100644 --- a/NEWS.md +++ b/NEWS.md @@ -42,6 +42,7 @@ * Contraction * [#2790](https://github.com/pgRouting/pgrouting/issues/2790): pgr_contractionDeadEnd + * [#2791](https://github.com/pgRouting/pgrouting/issues/2791): pgr_contractionLinear ## pgRouting 3.7 diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst index ca1867f4af..0ff8de1c38 100644 --- a/doc/src/release_notes.rst +++ b/doc/src/release_notes.rst @@ -72,6 +72,7 @@ pgRouting 3.8.0 Release Notes * Contraction * `#2790 `__: pgr_contractionDeadEnd + * `#2791 `__: pgr_contractionLinear pgRouting 3.7 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From 67138059c6e20fdf5e9d978fba58faaaedd1b147 Mon Sep 17 00:00:00 2001 From: cvvergara Date: Sun, 23 Mar 2025 13:57:18 -0600 Subject: [PATCH 140/141] Using rabbit suggestions --- doc/contraction/pgr_contraction.rst | 4 +- docqueries/contraction/contractionLinear.pg | 3 - .../contraction/contractionLinear.result | 103 ++++-------------- 3 files changed, 22 insertions(+), 88 deletions(-) diff --git a/doc/contraction/pgr_contraction.rst b/doc/contraction/pgr_contraction.rst index 41f215d769..2f9dcdf430 100644 --- a/doc/contraction/pgr_contraction.rst +++ b/doc/contraction/pgr_contraction.rst @@ -238,12 +238,12 @@ Only linear contraction The cycle ................................................................................ -Contracting a graph, can be done with more than one operation. +Contracting a graph can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes. -This implementation, cycles ``cycles`` times through the ``methods`` . +This implementation cycles ``cycles`` times through the ``methods`` . .. parsed-literal:: diff --git a/docqueries/contraction/contractionLinear.pg b/docqueries/contraction/contractionLinear.pg index 73e87bf5f6..dfe9cf6af2 100644 --- a/docqueries/contraction/contractionLinear.pg +++ b/docqueries/contraction/contractionLinear.pg @@ -40,9 +40,6 @@ $$SELECT * FROM (VALUES (2, 3, 4, 1)) AS edges(id,source,target,cost)$$); /* -- q7 */ --- CopyRight(c) pgRouting developers --- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ - /* -- cg1 */ ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false; diff --git a/docqueries/contraction/contractionLinear.result b/docqueries/contraction/contractionLinear.result index ae824d5465..a0c09464e6 100644 --- a/docqueries/contraction/contractionLinear.result +++ b/docqueries/contraction/contractionLinear.result @@ -6,13 +6,10 @@ SET SELECT * FROM pgr_contractionLinear( 'SELECT id, source, target, cost, reverse_cost FROM edges', directed => false); - type | id | contracted_vertices | source | target | cost -------+----+---------------------+--------+--------+------ - e | -1 | {3} | 1 | 7 | 2 - e | -2 | {17} | 12 | 16 | 2 - e | -3 | {15} | 10 | 16 | 2 -(3 rows) - +ERROR: function pgr_contractionlinear(unknown, directed => boolean) does not exist +LINE 2: SELECT * FROM pgr_contractionLinear( + ^ +HINT: No function matches the given name and argument types. You might need to add explicit type casts. /* -- q2 */ SELECT * FROM pgr_contractionLinear( $$SELECT * FROM (VALUES @@ -20,10 +17,7 @@ $$SELECT * FROM (VALUES (2, 2, 3, 3, 4)) AS edges(id,source,target,cost,reverse_cost)$$, directed => true); - type | id | contracted_vertices | source | target | cost -------+----+---------------------+--------+--------+------ -(0 rows) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- q3 */ SELECT * FROM pgr_contractionLinear( $$SELECT * FROM (VALUES @@ -31,11 +25,7 @@ $$SELECT * FROM (VALUES (2, 2, 3, 3, 4)) AS edges(id,source,target,cost,reverse_cost)$$, directed => false); - type | id | contracted_vertices | source | target | cost -------+----+---------------------+--------+--------+------ - e | -1 | {2} | 1 | 3 | 4 -(1 row) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- q4 */ SELECT * FROM pgr_contractionLinear( $$SELECT * FROM (VALUES @@ -43,12 +33,7 @@ $$SELECT * FROM (VALUES (2, 2, 3, 3, 4)) AS edges(id,source,target,cost,reverse_cost)$$, directed => true); - type | id | contracted_vertices | source | target | cost -------+----+---------------------+--------+--------+------ - e | -1 | {2} | 1 | 3 | 4 - e | -2 | {2} | 3 | 1 | 6 -(2 rows) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- q5 */ SELECT * FROM pgr_contractionLinear( $$SELECT * FROM (VALUES @@ -56,11 +41,7 @@ $$SELECT * FROM (VALUES (2, 2, 3, 3, 4)) AS edges(id,source,target,cost,reverse_cost)$$, directed => false); - type | id | contracted_vertices | source | target | cost -------+----+---------------------+--------+--------+------ - e | -1 | {2} | 1 | 3 | 4 -(1 row) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- q6 */ SELECT * FROM pgr_contractionLinear( $$SELECT * FROM (VALUES @@ -68,47 +49,35 @@ $$SELECT * FROM (VALUES (2, 2, 3, 1), (2, 3, 4, 1)) AS edges(id,source,target,cost)$$); - type | id | contracted_vertices | source | target | cost -------+----+---------------------+--------+--------+------ - e | -1 | {2,3} | 1 | 4 | 3 -(1 row) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- q7 */ --- CopyRight(c) pgRouting developers --- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/ /* -- cg1 */ ALTER TABLE vertices ADD is_contracted BOOLEAN DEFAULT false; -ALTER TABLE +ERROR: current transaction is aborted, commands ignored until end of transaction block ALTER TABLE edges ADD is_new BOOLEAN DEFAULT false; -ALTER TABLE +ERROR: current transaction is aborted, commands ignored until end of transaction block ALTER TABLE edges ADD contracted_vertices BIGINT[]; -ALTER TABLE +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg2 */ SELECT * INTO contraction_results FROM pgr_contractionLinear( 'SELECT id, source, target, cost, reverse_cost FROM edges', directed => false); -SELECT 3 +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg3 */ UPDATE vertices SET is_contracted = true WHERE id IN (SELECT unnest(contracted_vertices) FROM contraction_results); -UPDATE 3 +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg4 */ SELECT id, is_contracted FROM vertices WHERE is_contracted ORDER BY id; - id | is_contracted -----+--------------- - 3 | t - 15 | t - 17 | t -(3 rows) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg5 */ INSERT INTO edges(source, target, cost, reverse_cost, contracted_vertices, is_new) SELECT source, target, cost, -1, contracted_vertices, true FROM contraction_results; -INSERT 0 3 +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg6 */ CREATE VIEW contracted_graph AS WITH @@ -120,38 +89,14 @@ FROM edges WHERE source IN (SELECT * FROM vertices_in_graph) AND target IN (SELECT * FROM vertices_in_graph) ORDER BY id; -CREATE VIEW +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg7 */ SELECT * FROM contracted_graph ORDER by id; - id | source | target | cost | reverse_cost -----+--------+--------+------+-------------- - 1 | 5 | 6 | 1 | 1 - 2 | 6 | 10 | -1 | 1 - 4 | 6 | 7 | 1 | 1 - 5 | 10 | 11 | 1 | -1 - 8 | 7 | 11 | 1 | 1 - 9 | 11 | 16 | 1 | 1 - 10 | 7 | 8 | 1 | 1 - 11 | 11 | 12 | 1 | -1 - 12 | 8 | 12 | 1 | -1 - 14 | 8 | 9 | 1 | 1 - 17 | 2 | 4 | 1 | 1 - 18 | 13 | 14 | 1 | 1 - 19 | 1 | 7 | 2 | -1 - 20 | 12 | 16 | 2 | -1 - 21 | 10 | 16 | 2 | -1 -(15 rows) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg8 */ SELECT * FROM pgr_dijkstra('SELECT * FROM contracted_graph', 7, 16); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 7 | 16 | 7 | 8 | 1 | 0 - 2 | 2 | 7 | 16 | 11 | 9 | 1 | 1 - 3 | 3 | 7 | 16 | 16 | -1 | 0 | 2 -(3 rows) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg9 */ SELECT * FROM pgr_dijkstra( 'WITH in_line AS (SELECT contracted_vertices FROM edges WHERE 17 = ANY(contracted_vertices)) @@ -163,15 +108,7 @@ SELECT * FROM pgr_dijkstra( SELECT id, source, target, cost, reverse_cost FROM contracted_graph', 1, 17); - seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost ------+----------+-----------+---------+------+------+------+---------- - 1 | 1 | 1 | 17 | 1 | 19 | 2 | 0 - 2 | 2 | 1 | 17 | 7 | 8 | 1 | 2 - 3 | 3 | 1 | 17 | 11 | 9 | 1 | 3 - 4 | 4 | 1 | 17 | 16 | 15 | 1 | 4 - 5 | 5 | 1 | 17 | 17 | -1 | 0 | 5 -(5 rows) - +ERROR: current transaction is aborted, commands ignored until end of transaction block /* -- cg10 */ ROLLBACK; ROLLBACK From 2cd5598a254f5744891a5a8858110c28fa2962c5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 23 Mar 2025 20:16:41 +0000 Subject: [PATCH 141/141] Update locale: commit 44b4bf9bc3 --- .../en/LC_MESSAGES/pgrouting_doc_strings.po | 295 +++++++++--------- locale/pot/pgrouting_doc_strings.pot | 253 +++++++-------- 2 files changed, 287 insertions(+), 261 deletions(-) diff --git a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po index 19abcc9c6f..69fa2c257a 100644 --- a/locale/en/LC_MESSAGES/pgrouting_doc_strings.po +++ b/locale/en/LC_MESSAGES/pgrouting_doc_strings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-22 15:34+0000\n" +"POT-Creation-Date: 2025-03-23 20:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2802,143 +2802,6 @@ msgid "" " of times they are to be executed." msgstr "" -msgid "In the algorithm, linear contraction is represented by 2." -msgstr "" - -msgid "Linear" -msgstr "" - -msgid "In case of an undirected graph, a node is considered a `linear` node when" -msgstr "" - -msgid "The number of adjacent vertices is 2." -msgstr "" - -msgid "In case of a directed graph, a node is considered a `linear` node when" -msgstr "" - -msgid "Linearity is symmetrical" -msgstr "" - -msgid "Linear vertex on undirected graph" -msgstr "" - -msgid "The green nodes are `linear`_ nodes" -msgstr "" - -msgid "The blue nodes have an unlimited number of incoming and outgoing edges." -msgstr "" - -msgid "Undirected" -msgstr "" - -msgid "Node" -msgstr "" - -msgid "Adjacent nodes" -msgstr "" - -msgid "Number of adjacent nodes" -msgstr "" - -msgid ":math:`v`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{u, w\\}`" -msgstr "" - -msgid "2" -msgstr "" - -msgid "Linear vertex on directed graph" -msgstr "" - -msgid "The white node is not linear because the linearity is not symmetrical." -msgstr "" - -msgid "It is possible to go :math:`y \\rightarrow c \\rightarrow z`" -msgstr "" - -msgid "It's not possible to go :math:`z \\rightarrow c \\rightarrow y`" -msgstr "" - -msgid "Is symmetrical?" -msgstr "" - -msgid ":math:`a`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{u, v\\}`" -msgstr "" - -msgid "yes" -msgstr "" - -msgid ":math:`b`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{w, x\\}`" -msgstr "" - -msgid ":math:`c`" -msgstr "" - -#, python-brace-format -msgid ":math:`\\{y, z\\}`" -msgstr "" - -msgid "no" -msgstr "" - -msgid "Operation: Linear Contraction" -msgstr "" - -msgid "" -"The linear contraction will stop when there are no more linear nodes. For" -" example from the following graph where :math:`v` and :math:`w` are " -"`linear`_ nodes:" -msgstr "" - -msgid "Contracting :math:`w`," -msgstr "" - -msgid "The vertex :math:`w` is removed from the graph" -msgstr "" - -msgid "" -"The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are " -"removed from the graph." -msgstr "" - -msgid "" -"A new edge :math:`v \\rightarrow z` is inserted represented with red " -"color." -msgstr "" - -msgid "Contracting :math:`v`:" -msgstr "" - -msgid "The vertex :math:`v` is removed from the graph" -msgstr "" - -msgid "" -"The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are " -"removed from the graph." -msgstr "" - -msgid "" -"A new edge :math:`u \\rightarrow z` is inserted represented with red " -"color." -msgstr "" - -msgid "" -"Edge :math:`u \\rightarrow z` has the information of nodes that were " -"contracted." -msgstr "" - msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" @@ -4117,6 +3980,11 @@ msgid "" "pgr_contractionDeadEnd" msgstr "" +msgid "" +"`#2791 `__: " +"pgr_contractionLinear" +msgstr "" + msgid "All releases" msgstr "" @@ -9292,7 +9160,7 @@ msgstr "" msgid "Dead End Contraction. See :doc:`pgr_contractionDeadEnd`." msgstr "" -msgid "Linear Contraction. See :doc:`contraction-family`." +msgid "Linear Contraction. See :doc:`pgr_contractionLinear`." msgstr "" msgid "pgr_contraction(`Edges SQL`_, [**options**])" @@ -9672,6 +9540,12 @@ msgstr "" msgid "The blue nodes have an unlimited number of incoming and/or outgoing edges." msgstr "" +msgid "Node" +msgstr "" + +msgid "Adjacent nodes" +msgstr "" + msgid "Dead end" msgstr "" @@ -9790,6 +9664,149 @@ msgstr "" msgid "Using when departure and destination are not in the contracted graph" msgstr "" +msgid "``pgr_contractionLinear`` - Proposed" +msgstr "" + +msgid "" +"``pgr_contractionLinear`` — Performs graph contraction and returns the " +"contracted vertices and edges." +msgstr "" + +msgid "pgr_contractionLinear(`Edges SQL`_, [**options**])" +msgstr "" + +msgid "**options:** ``[directed, max_cycles, forbidden_vertices]``" +msgstr "" + +msgid "Linear contraction on an undirected graph." +msgstr "" + +msgid "" +"The green nodes are linear nodes and will not be part of the contracted " +"graph." +msgstr "" + +msgid "All edges adjacent will not be part of the contracted graph." +msgstr "" + +msgid "The red lines will be new edges of the contracted graph." +msgstr "" + +msgid "**contraction Order**" +msgstr "" + +msgid "" +"Number of times the contraction operations on ``contraction_order`` will " +"be performed." +msgstr "" + +msgid "A node connects two (or more) `linear` edges when" +msgstr "" + +msgid "The number of adjacent vertices is 2." +msgstr "" + +msgid "In case of a directed graph, a node is considered a `linear` node when" +msgstr "" + +msgid "Linearity is symmetrical." +msgstr "" + +msgid "Linearity is not symmetrical" +msgstr "" + +msgid "Graph where linearity is not symmetrical." +msgstr "" + +msgid "" +"When the graph is processed as a directed graph, linearity is not " +"symmetrical, therefore the graph can not be contracted." +msgstr "" + +msgid "" +"When the same graph is processed as an undirected graph, linearity is " +"symmetrical, therefore the graph can be contracted." +msgstr "" + +msgid "The three edges can be replaced by one undirected edge" +msgstr "" + +msgid "Edge :math:`1 - 3`." +msgstr "" + +msgid "With cost: :math:`4`." +msgstr "" + +#, python-brace-format +msgid "Contracted vertices in the edge: :math:`\\{2\\}`." +msgstr "" + +msgid "Linearity is symmetrical" +msgstr "" + +msgid "Graph where linearity is symmetrical." +msgstr "" + +msgid "The four edges can be replaced by two directed edges." +msgstr "" + +msgid "Edge :math:`3 - 1`." +msgstr "" + +msgid "With cost: :math:`6`." +msgstr "" + +msgid "The four edges can be replaced by one undirected edge." +msgstr "" + +msgid "Step by step linear contraction" +msgstr "" + +msgid "" +"The linear contraction will stop when there are no more linear edges. For" +" example from the following graph there are linear edges" +msgstr "" + +msgid "Contracting vertex :math:`3`," +msgstr "" + +msgid "The vertex :math:`3` is removed from the graph" +msgstr "" + +msgid "" +"The edges :math:`2 \\rightarrow 3` and :math:`w \\rightarrow z` are " +"removed from the graph." +msgstr "" + +msgid "" +"A new edge :math:`2 \\rightarrow 4` is inserted represented with red " +"color." +msgstr "" + +msgid "Contracting vertex :math:`2`:" +msgstr "" + +msgid "The vertex :math:`2` is removed from the graph" +msgstr "" + +msgid "" +"The edges :math:`1 \\rightarrow 2` and :math:`2 \\rightarrow 3` are " +"removed from the graph." +msgstr "" + +msgid "" +"A new edge :math:`1 \\rightarrow 3` is inserted represented with red " +"color." +msgstr "" + +msgid "" +"Edge :math:`1 \\rightarrow 3` has the information of cost and the nodes " +"that were contracted." +msgstr "" + +msgid "Create the contracted graph." +msgstr "" + msgid "``pgr_createTopology``" msgstr "" diff --git a/locale/pot/pgrouting_doc_strings.pot b/locale/pot/pgrouting_doc_strings.pot index b36f165747..83e0b75cf7 100644 --- a/locale/pot/pgrouting_doc_strings.pot +++ b/locale/pot/pgrouting_doc_strings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pgRouting v3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-22 15:34+0000\n" +"POT-Creation-Date: 2025-03-23 20:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2578,126 +2578,6 @@ msgstr "" msgid "Decide the order of the contraction algorithms and set the maximum number of times they are to be executed." msgstr "" -msgid "In the algorithm, linear contraction is represented by 2." -msgstr "" - -msgid "Linear" -msgstr "" - -msgid "In case of an undirected graph, a node is considered a `linear` node when" -msgstr "" - -msgid "The number of adjacent vertices is 2." -msgstr "" - -msgid "In case of a directed graph, a node is considered a `linear` node when" -msgstr "" - -msgid "Linearity is symmetrical" -msgstr "" - -msgid "Linear vertex on undirected graph" -msgstr "" - -msgid "The green nodes are `linear`_ nodes" -msgstr "" - -msgid "The blue nodes have an unlimited number of incoming and outgoing edges." -msgstr "" - -msgid "Undirected" -msgstr "" - -msgid "Node" -msgstr "" - -msgid "Adjacent nodes" -msgstr "" - -msgid "Number of adjacent nodes" -msgstr "" - -msgid ":math:`v`" -msgstr "" - -msgid ":math:`\\{u, w\\}`" -msgstr "" - -msgid "2" -msgstr "" - -msgid "Linear vertex on directed graph" -msgstr "" - -msgid "The white node is not linear because the linearity is not symmetrical." -msgstr "" - -msgid "It is possible to go :math:`y \\rightarrow c \\rightarrow z`" -msgstr "" - -msgid "It's not possible to go :math:`z \\rightarrow c \\rightarrow y`" -msgstr "" - -msgid "Is symmetrical?" -msgstr "" - -msgid ":math:`a`" -msgstr "" - -msgid ":math:`\\{u, v\\}`" -msgstr "" - -msgid "yes" -msgstr "" - -msgid ":math:`b`" -msgstr "" - -msgid ":math:`\\{w, x\\}`" -msgstr "" - -msgid ":math:`c`" -msgstr "" - -msgid ":math:`\\{y, z\\}`" -msgstr "" - -msgid "no" -msgstr "" - -msgid "Operation: Linear Contraction" -msgstr "" - -msgid "The linear contraction will stop when there are no more linear nodes. For example from the following graph where :math:`v` and :math:`w` are `linear`_ nodes:" -msgstr "" - -msgid "Contracting :math:`w`," -msgstr "" - -msgid "The vertex :math:`w` is removed from the graph" -msgstr "" - -msgid "The edges :math:`v \\rightarrow w` and :math:`w \\rightarrow z` are removed from the graph." -msgstr "" - -msgid "A new edge :math:`v \\rightarrow z` is inserted represented with red color." -msgstr "" - -msgid "Contracting :math:`v`:" -msgstr "" - -msgid "The vertex :math:`v` is removed from the graph" -msgstr "" - -msgid "The edges :math:`u \\rightarrow v` and :math:`v \\rightarrow z` are removed from the graph." -msgstr "" - -msgid "A new edge :math:`u \\rightarrow z` is inserted represented with red color." -msgstr "" - -msgid "Edge :math:`u \\rightarrow z` has the information of nodes that were contracted." -msgstr "" - msgid "https://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf" msgstr "" @@ -3691,6 +3571,9 @@ msgstr "" msgid "`#2790 `__: pgr_contractionDeadEnd" msgstr "" +msgid "`#2791 `__: pgr_contractionLinear" +msgstr "" + msgid "All releases" msgstr "" @@ -7978,7 +7861,7 @@ msgstr "" msgid "Dead End Contraction. See :doc:`pgr_contractionDeadEnd`." msgstr "" -msgid "Linear Contraction. See :doc:`contraction-family`." +msgid "Linear Contraction. See :doc:`pgr_contractionLinear`." msgstr "" msgid "pgr_contraction(`Edges SQL`_, [**options**])" @@ -8317,6 +8200,12 @@ msgstr "" msgid "The blue nodes have an unlimited number of incoming and/or outgoing edges." msgstr "" +msgid "Node" +msgstr "" + +msgid "Adjacent nodes" +msgstr "" + msgid "Dead end" msgstr "" @@ -8416,6 +8305,126 @@ msgstr "" msgid "Using when departure and destination are not in the contracted graph" msgstr "" +msgid "``pgr_contractionLinear`` - Proposed" +msgstr "" + +msgid "``pgr_contractionLinear`` — Performs graph contraction and returns the contracted vertices and edges." +msgstr "" + +msgid "pgr_contractionLinear(`Edges SQL`_, [**options**])" +msgstr "" + +msgid "**options:** ``[directed, max_cycles, forbidden_vertices]``" +msgstr "" + +msgid "Linear contraction on an undirected graph." +msgstr "" + +msgid "The green nodes are linear nodes and will not be part of the contracted graph." +msgstr "" + +msgid "All edges adjacent will not be part of the contracted graph." +msgstr "" + +msgid "The red lines will be new edges of the contracted graph." +msgstr "" + +msgid "**contraction Order**" +msgstr "" + +msgid "Number of times the contraction operations on ``contraction_order`` will be performed." +msgstr "" + +msgid "A node connects two (or more) `linear` edges when" +msgstr "" + +msgid "The number of adjacent vertices is 2." +msgstr "" + +msgid "In case of a directed graph, a node is considered a `linear` node when" +msgstr "" + +msgid "Linearity is symmetrical." +msgstr "" + +msgid "Linearity is not symmetrical" +msgstr "" + +msgid "Graph where linearity is not symmetrical." +msgstr "" + +msgid "When the graph is processed as a directed graph, linearity is not symmetrical, therefore the graph can not be contracted." +msgstr "" + +msgid "When the same graph is processed as an undirected graph, linearity is symmetrical, therefore the graph can be contracted." +msgstr "" + +msgid "The three edges can be replaced by one undirected edge" +msgstr "" + +msgid "Edge :math:`1 - 3`." +msgstr "" + +msgid "With cost: :math:`4`." +msgstr "" + +msgid "Contracted vertices in the edge: :math:`\\{2\\}`." +msgstr "" + +msgid "Linearity is symmetrical" +msgstr "" + +msgid "Graph where linearity is symmetrical." +msgstr "" + +msgid "The four edges can be replaced by two directed edges." +msgstr "" + +msgid "Edge :math:`3 - 1`." +msgstr "" + +msgid "With cost: :math:`6`." +msgstr "" + +msgid "The four edges can be replaced by one undirected edge." +msgstr "" + +msgid "Step by step linear contraction" +msgstr "" + +msgid "The linear contraction will stop when there are no more linear edges. For example from the following graph there are linear edges" +msgstr "" + +msgid "Contracting vertex :math:`3`," +msgstr "" + +msgid "The vertex :math:`3` is removed from the graph" +msgstr "" + +msgid "The edges :math:`2 \\rightarrow 3` and :math:`w \\rightarrow z` are removed from the graph." +msgstr "" + +msgid "A new edge :math:`2 \\rightarrow 4` is inserted represented with red color." +msgstr "" + +msgid "Contracting vertex :math:`2`:" +msgstr "" + +msgid "The vertex :math:`2` is removed from the graph" +msgstr "" + +msgid "The edges :math:`1 \\rightarrow 2` and :math:`2 \\rightarrow 3` are removed from the graph." +msgstr "" + +msgid "A new edge :math:`1 \\rightarrow 3` is inserted represented with red color." +msgstr "" + +msgid "Edge :math:`1 \\rightarrow 3` has the information of cost and the nodes that were contracted." +msgstr "" + +msgid "Create the contracted graph." +msgstr "" + msgid "``pgr_createTopology``" msgstr ""