Maximal boost check - #628
Conversation
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
Reorganazing traversal
…s-driver-pair Binary bfs use existing process driver pair
…MaximalPlanar compiles with Boost 1.80 (the critical version)
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
There was a problem hiding this comment.
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
breadthFirstSearchand integratebinaryBreadthFirstSearchinto 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.
| } | ||
|
|
||
| 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]); | ||
|
|
No description provided.