Skip to content

Maximal boost check - #628

Closed
Mohit242-bit wants to merge 77 commits into
pgRouting:developfrom
Mohit242-bit:mohit-2026-boost-poc-1.80-maximal
Closed

Maximal boost check#628
Mohit242-bit wants to merge 77 commits into
pgRouting:developfrom
Mohit242-bit:mohit-2026-boost-poc-1.80-maximal

Conversation

@Mohit242-bit

Copy link
Copy Markdown
Contributor

No description provided.

jeltz and others added 30 commits June 9, 2026 18:42
The PG_MODULE_MAGIC_EXT macro was added in PostgreSQL 18 and makes it
possible to see which version of the library is actually loaded using
pg_get_loaded_modules().

This commit also moves the use of PG_MODULE_MAGIC to a less awkward
place. While it is not 100% connected to the version functions it is
much more connect to them than to Djikstra.
- Add directed parameter to handle directed and undirected functions
- Prepare to process applicable component functions
- cleanup code
- standardize code
- Add directed parameter to handle directed and undirected functions
- Prepare to process applicable component functions
- cleanup code
- standardize code
…processes

Components: use process & drivers ordering and coloring
Use PG_MODULE_MAGIC_EXT in PostgreSQL 18 and later
Currently translated at 87.7% (4725 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.7% (4724 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.7% (4723 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.7% (4722 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.7% (4721 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4720 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4719 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4718 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4717 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4716 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4715 of 5382 strings)

Co-authored-by: DeepL <noreply-mt-deepl@weblate.org>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/es/
Translation: pgRouting/pgRouting
Currently translated at 87.9% (4733 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.9% (4735 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.7% (4722 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4719 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4718 of 5382 strings)

Translated using Weblate (Spanish)

Currently translated at 87.6% (4716 of 5382 strings)

Co-authored-by: Celia Virginia Vergara Castillo <vicky@erosion.dev>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/es/
Translation: pgRouting/pgRouting
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/
Translation: pgRouting/pgRouting
Currently translated at 100.0% (5383 of 5383 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (5382 of 5382 strings)

Co-authored-by: Daniel Nylander <daniel@danielnylander.se>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/sv/
Translation: pgRouting/pgRouting
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/
Translation: pgRouting/pgRouting
Currently translated at 10.0% (541 of 5402 strings)

Translated using Weblate (Japanese)

Currently translated at 9.3% (503 of 5402 strings)

Translated using Weblate (Japanese)

Currently translated at 9.1% (495 of 5402 strings)

Translated using Weblate (Japanese)

Currently translated at 8.8% (477 of 5402 strings)

Co-authored-by: Teramoto Ikuhiro <teramoto.ikuhiro576@naro.go.jp>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/ja/
Translation: pgRouting/pgRouting
Currently translated at 10.0% (541 of 5402 strings)

Co-authored-by: DeepL <noreply-mt-deepl@weblate.org>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/ja/
Translation: pgRouting/pgRouting
Currently translated at 10.5% (570 of 5402 strings)

Co-authored-by: Teramoto Ikuhiro <teramoto.ikuhiro576@naro.go.jp>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/ja/
Translation: pgRouting/pgRouting
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/
Translation: pgRouting/pgRouting
Currently translated at 11.8% (641 of 5403 strings)

Translated using Weblate (Japanese)

Currently translated at 11.8% (640 of 5403 strings)

Translated using Weblate (Japanese)

Currently translated at 11.2% (608 of 5403 strings)

Translated using Weblate (Japanese)

Currently translated at 11.1% (603 of 5403 strings)

Translated using Weblate (Japanese)

Currently translated at 10.9% (592 of 5403 strings)

Co-authored-by: Teramoto Ikuhiro <teramoto.ikuhiro576@naro.go.jp>
Translate-URL: https://weblate.osgeo.org/projects/pgrouting/pgrouting-develop/ja/
Translation: pgRouting/pgRouting
Copilot AI lite review requested due to automatic review settings August 17, 2026 16:52
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e11ff54e-0cdb-4110-a574-e827ff09cd81

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request extends pgRouting’s graph tooling by adding an experimental planar operation (pgr_makeMaximalPlanar), reorganizing traversal functions under the traversal family, and consolidating several “components” and traversal implementations into shared process/driver pathways (ordering/coloring/shortestPath), along with accompanying SQL, tests, and documentation updates.

Changes:

  • Add experimental pgr_makeMaximalPlanar (C/C++ implementation, SQL bindings, docs, and pgtap/docquery coverage).
  • Reorganize breadthFirstSearch and integrate binaryBreadthFirstSearch into existing traversal/shortestPath infrastructure.
  • Integrate Components-family functions into existing process/driver pairs and update release notes, locales, CI workflow pins, and version/signature metadata.

Reviewed changes

Copilot reviewed 97 out of 111 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tools/developer/taptest.sh Updates TAP test version target list (now focuses on 4.1.0).
src/version/version.c Centralizes module magic definition (with optional extended magic).
src/traversal/CMakeLists.txt Adds traversal BFS sources to the traversal object library.
src/traversal/breadthFirstSearch.c Adds C entrypoint for _pgr_breadthFirstSearch SRF.
src/traversal/binaryBreadthFirstSearch.c Refactors binary BFS C entrypoint to use shortestPath process integration.
src/spanningTree/spanningTree_driver.cpp Updates BFS header include path to traversal/.
src/planar/makeMaximalPlanar.c Adds C entrypoint for _pgr_makeMaximalPlanar SRF (via coloring process/driver).
src/planar/CMakeLists.txt Adds makeMaximalPlanar.c to planar object library.
src/ordering/topologicalSort.c Routes TOPOSORT through updated ordering process with directed flag.
src/ordering/sloanOrdering.c Updates SRF plumbing and ordering process signature usage.
src/ordering/ordering_process.cpp Adds directed parameter; improves time_msg prefix formatting.
src/ordering/ordering_driver.cpp Adds directed/undirected dispatch and integrates bridges/articulationPoints outputs.
src/ordering/kingOrdering.c Updates SRF plumbing and ordering process signature usage.
src/ordering/cuthillMckeeOrdering.c Updates SRF plumbing and ordering process signature usage.
src/driving_distance/driving_distance_withPoints.c Standardizes negative distance behavior (throws only when < 0).
src/dijkstra/shortestPath_driver.cpp Integrates binaryBreadthFirstSearch into shortestPath driver dispatch.
src/dijkstra/dijkstra.c Removes local PG_MODULE_MAGIC (now centralized).
src/cpp_common/utilities.cpp Adds names for new Which-enum values (planar/components/binary BFS).
src/cpp_common/to_postgres.cpp Adds tuple conversion helpers for II_t_rt vectors and component groupings.
src/components/strongComponents.c Refactors to use coloring process/driver instead of a dedicated driver.
src/components/strongComponents_driver.cpp Removes legacy strongComponents driver implementation.
src/components/makeConnected.cpp Adds Boost-based implementation producing new edges to connect components.
src/components/makeConnected.c Refactors to use coloring process/driver; updates SRF plumbing.
src/components/makeConnected_driver.cpp Removes legacy makeConnected driver implementation.
src/components/connectedComponents.c Refactors to use coloring process/driver; updates SRF plumbing.
src/components/connectedComponents_driver.cpp Removes legacy connectedComponents driver implementation.
src/components/componentsResult.cpp Removes legacy component-result flattening helper.
src/components/components.cpp Changes components algorithms to return grouped vectors rather than flattened tuples.
src/components/CMakeLists.txt Updates build sources (removes legacy drivers; adds makeConnected.cpp).
src/components/bridges.c Refactors to use ordering process/driver; updates SRF plumbing.
src/components/bridges_driver.cpp Removes legacy bridges driver implementation.
src/components/biconnectedComponents.c Refactors to use coloring process/driver; updates SRF plumbing.
src/components/biconnectedComponents_driver.cpp Removes legacy biconnectedComponents driver implementation.
src/components/articulationPoints.c Refactors to use ordering process/driver; updates SRF plumbing.
src/components/articulationPoints_driver.cpp Removes legacy articulationPoints driver implementation.
src/coloring/sequentialVertexColoring.c Updates to new coloring process signature and SRF plumbing style.
src/coloring/edgeColoring.c Updates to new coloring process signature and SRF plumbing style.
src/coloring/coloring_process.cpp Adds directed parameter pass-through to coloring driver.
src/coloring/coloring_driver.cpp Adds directed/undirected dispatch and integrates planar/components functionality.
src/coloring/bipartite.c Updates to new coloring process signature and SRF plumbing style.
src/breadthFirstSearch/CMakeLists.txt Removes old breadthFirstSearch module build file (reorganized).
src/breadthFirstSearch/binaryBreadthFirstSearch_driver.cpp Removes legacy binary BFS driver implementation.
sql/traversal/CMakeLists.txt Adds traversal SQL files to packaging list.
sql/traversal/breadthFirstSearch.sql Adds user-facing BFS SQL wrapper(s) under traversal.
sql/traversal/binaryBreadthFirstSearch.sql Adds user-facing binary BFS SQL wrappers under traversal.
sql/traversal/_breadthFirstSearch.sql Adds internal BFS C function signature SQL.
sql/traversal/_binaryBreadthFirstSearch.sql Adds internal binary BFS C function signature SQL (array + combinations variants).
sql/sigs/pgrouting--4.1.sig Adds makeMaximalPlanar signatures to the 4.1 signature file.
sql/planar/makeMaximalPlanar.sql Adds user-facing planar maximalization SQL wrapper.
sql/planar/CMakeLists.txt Adds planar maximalization SQL files to packaging list.
sql/planar/_makeMaximalPlanar.sql Adds internal planar maximalization C function signature SQL.
sql/breadthFirstSearch/CMakeLists.txt Removes old breadthFirstSearch SQL packaging (reorganized).
pgtap/traversal/binaryBreadthFirstSearch/edge_cases/edge_cases.pg Updates error expectations and wraps checks into a helper function.
pgtap/standards/via-do-not-bad-alloc.pg Adds a standards regression test suite for historical bad_alloc behavior and version gating.
pgtap/planar/makeMaximalPlanar/types_check.pg Adds type/signature checks for new planar function.
pgtap/planar/makeMaximalPlanar/no_crash_test.pg Adds no-crash smoke tests for planar maximalization.
pgtap/planar/makeMaximalPlanar/inner_query.pg Adds inner-query style tests for planar maximalization.
pgtap/planar/makeMaximalPlanar/edge_cases.pg Adds edge-case tests for planar maximalization.
NEWS.md Adds release-note entries for traversal/components integration and documents 4.0.2 notes.
locale/pot/pgrouting_doc_strings.pot Updates POT creation timestamp and adds new translatable strings.
locale/en/LC_MESSAGES/pgrouting_doc_strings.po Syncs EN PO with new POT timestamp/strings.
include/visitors/dijkstra_visitors.hpp Allows zero distance goal assertion (>= 0).
include/traversal/breadthFirstSearch.hpp Updates include guard to match traversal path.
include/traversal/binaryBreadthFirstSearch.hpp Updates include guard; adds cost checks + throws; adds helper entrypoint.
include/process/ordering_process.h Updates ordering process signature to include directed.
include/process/coloring_process.h Updates coloring process signature to include directed.
include/planar/makeMaximalPlanar.hpp Adds Boost-based maximal planar implementation (with per-component processing).
include/drivers/ordering_driver.hpp Updates ordering driver signature to include directed.
include/drivers/components/strongComponents_driver.h Removes legacy strongComponents driver header.
include/drivers/components/makeConnected_driver.h Removes legacy makeConnected driver header.
include/drivers/components/bridges_driver.h Removes legacy bridges driver header.
include/drivers/components/biconnectedComponents_driver.h Removes legacy biconnectedComponents driver header.
include/drivers/components/articulationPoints_driver.h Removes legacy articulationPoints driver header.
include/drivers/coloring_driver.hpp Updates coloring driver signature to include directed.
include/drivers/breadthFirstSearch/binaryBreadthFirstSearch_driver.h Removes legacy binary BFS driver header.
include/dijkstra/dijkstra.hpp Avoids .front() on empty path set; returns an empty Path instead.
include/cpp_common/to_postgres.hpp Declares new tuple conversion helpers and adds get_identifiers template.
include/components/makeConnected.hpp Replaces template class with a concrete makeConnected function declaration.
include/components/components.hpp Updates components algorithm signatures to return grouped vectors.
include/c_common/enums.h Adds new Which-enum values for traversal/planar/components integration.
docqueries/planar/test.conf Adds planar maximalization to docquery test list.
docqueries/planar/makeMaximalPlanar.result Adds expected output for planar maximalization docqueries.
docqueries/planar/makeMaximalPlanar.pg Adds planar maximalization docquery script.
docqueries/planar/CMakeLists.txt Adds makeMaximalPlanar to docqueries build list.
doc/withPoints/pgr_withPointsVia.rst Documents 4.0.2 bad_alloc fix note.
doc/withPoints/pgr_withPointsDD.rst Documents 4.0.2 negative-distance behavior standardization.
doc/src/release_notes.rst Adds entries for new integrations and includes 4.0.2 release notes section.
doc/src/experimental.rst Adds an additional warning block and updates planar docs navigation.
doc/planar/planar-family.rst Adds a planar family landing page (experimental).
doc/planar/pgr_makeMaximalPlanar.rst Adds documentation for the new experimental function.
doc/planar/images/CMakeLists.txt Adds new planar images to docs build.
doc/planar/CMakeLists.txt Adds planar-family and makeMaximalPlanar docs to build list.
doc/driving_distance/pgr_drivingDistance.rst Documents 4.0.2 negative-distance behavior standardization.
doc/dijkstra/pgr_dijkstraVia.rst Documents 4.0.2 bad_alloc fix note.
configuration.conf Removes old breadthFirstSearch entry (now represented under traversal).
CMakeLists.txt Adds 4.0.2 to OLD_SIGNATURES list.
.github/workflows/website.yml Bumps setup-python action major version.
.github/workflows/update.yml Bumps setup-python action major version.
.github/workflows/update-locale.yml Bumps setup-python action major version.
.github/workflows/release.yml Bumps setup-python action major version.
.github/workflows/doc-check.yml Bumps setup-python action major version.
.github/workflows/boost_version.yml Narrows Boost minor-version matrix.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 88 to 92
}

values[0] = Int32GetDatum((int32_t)funcctx->call_cntr + 1);
values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr]);
values[0] = Int32GetDatum(-1);
values[1] = Int64GetDatum(result_tuples[call_cntr]);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants