Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
48b268a
(pgtap) hawickCircuits: deprecating tests
cvvergara Oct 21, 2026
71337d5
hawickCircuits deprecated: moving to deprecated filenames
cvvergara Oct 21, 2026
48589bb
(build) adjusting build to new filenames
cvvergara Oct 21, 2026
1b4edd0
enum and utilities: intended enumerations and function maing for debug
cvvergara Oct 21, 2026
d8f0c64
hawick (C++): Adding the new code that use boost fn
cvvergara Oct 21, 2026
62c0331
(build) Adjusting: adding new file for compilation
cvvergara Oct 21, 2026
cbc064f
Adding a tuple converter for a Circuit
cvvergara Oct 21, 2026
fb20bf8
base_graph: new insertion functions needed for hawick circuits
cvvergara Oct 21, 2026
a7a5823
shortestPath_driver: preparing to process hawick circuits
cvvergara Oct 21, 2026
4b0dc4e
process: Adjusting processes to parameter changes on the shortestPath…
cvvergara Oct 21, 2026
f110a61
circuits process: New process to be used by circuits (or similar func…
cvvergara Oct 21, 2026
0f8f0db
(build) Adjusting build to new files
cvvergara Oct 21, 2026
2d58287
Hawick deprecated (C): hook the C file with the circuits process
cvvergara Oct 21, 2026
489770d
(docqueries) hawick deprecated: main result is just different cannoni…
cvvergara Oct 21, 2026
7852632
(pgtap) hawick deprecated: marking tests that are no longer valid
cvvergara Oct 21, 2026
1ea4370
(C) hawickCircuits: Preparing for the new functionality
cvvergara Oct 21, 2026
5e5aea7
(build) Adjusting build to new file
cvvergara Oct 21, 2026
3a44eb7
(SQL) Adding matching function for the new C function
cvvergara Oct 21, 2026
dfa320a
hawick deprecated: droping function because new overloads out paramet…
cvvergara Oct 21, 2026
ed0cce8
(build) Adjusting build to new file
cvvergara Oct 21, 2026
13df7da
(SQL) hawickCircuits deprecated overload: path_seq->depth and add pre…
cvvergara Oct 21, 2026
008c7dd
(docqueries) hawickCircuits deprecated: addjusting to overload changes
cvvergara Oct 21, 2026
cf6539b
(pgtap) hawick deprecated: marking tests that are no longer valid
cvvergara Oct 21, 2026
83fec1b
(pgtap) hawickCircuits: tests new functionality need to pass
cvvergara Oct 21, 2026
434f431
hawickCircuits: single start vertex + multiple start vertices + new o…
cvvergara Oct 21, 2026
1236a42
(build) Adjusting build to new file
cvvergara Oct 21, 2026
37cc7a8
(docqueries)HawickCircuits New examples for the documentation
cvvergara Oct 21, 2026
cdffccd
(doc) Adding a circuits family page
cvvergara Oct 21, 2026
6ef9c65
(doc) pgr_hawickCircuits: Updating documentation to new functionality
cvvergara Oct 21, 2026
bf04aaa
(build) Adjusting build to new file
cvvergara Oct 21, 2026
d484b8d
(doc) conf: adding new substitution for circuits results
cvvergara Oct 21, 2026
a1d9e2d
(doc) adding the circuits family to the experimental page
cvvergara Oct 21, 2026
394c8eb
(sql/sigs) adding the new signatures
cvvergara Oct 21, 2026
a5eb452
(build) removing unused driver
cvvergara Oct 21, 2026
8e021a2
(tools) Adjusting code checker
cvvergara Oct 21, 2026
867cc7e
(lint) Removing unused files
cvvergara Oct 21, 2026
73ca5dd
(doc) fixing spanntree documentation errors
cvvergara Oct 21, 2026
c6e596c
(doc) pgr_hawickCircuits: Updating documentation to new functionality
cvvergara Oct 21, 2026
d619573
Updating News and release notes
cvvergara Oct 21, 2026
d67a687
(locale) updating locale because of doc modifications
cvvergara Oct 21, 2026
fe19d38
Fixing rabbit issues
cvvergara Oct 24, 2026
843f4e4
Update locale: commit fe19d38b8a
github-actions[bot] Oct 24, 2026
ee2925b
Fixing link
cvvergara Oct 24, 2026
58d1347
Update locale: commit ee2925baad
github-actions[bot] Oct 24, 2026
bb01ca9
pgtap: fixing pgtap mesaage check
cvvergara Oct 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ To see all issues & pull requests closed by this release see the

* Fix the way it builds the graph

* pgr_hawickCircuits

* New optional parameters: ``min_depth``, ``max_depth``, ``self_loops`` and
``u_turn_on_edge``.
* New signatures to select starting vertices.
* Deprecated signature: ``pgr_hawickCircuits(text)``.

* pgr_makeBiconnectedPlanar

* New experimental function.
Expand Down Expand Up @@ -74,6 +81,7 @@ To see all issues & pull requests closed by this release see the
process/driver pair
* [#3154](https://github.com/pgRouting/pgrouting/issues/3154): betweennessCentrality: use allpairs/process and driver
* [#3163](https://github.com/pgRouting/pgrouting/issues/3163): KSP & KSP WithPoints Use ShortestPath driver files
* [#3170](https://github.com/pgRouting/pgrouting/issues/3170): pgr_hawickCircuits: wrong function referenced

4.1.0 Bug Fixes

Expand Down
2 changes: 1 addition & 1 deletion doc/_static/page_history.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ var titles = [

var newpages = [
{v: '4.1', pages: ['pgr_coreNumbers', 'pgr_planarFaces', 'planar-family', 'pgr_makeBiconnectedPlanar',
'pgr_maxWeightedMatch']},
'pgr_maxWeightedMatch', 'circuits-family']},

{v: '4.0', pages: ['pgr_bandwidth', 'pgr_kingOrdering', 'pgr_sloanOrdering']},

Expand Down
3 changes: 2 additions & 1 deletion doc/circuits/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
# License: GPL-2 See https://github.com/pgRouting/pgrouting/blob/main/LICENSE

set(LOCAL_FILES
circuits-family.rst
pgr_hawickCircuits.rst
)
)

foreach (f ${LOCAL_FILES})
configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
Expand Down
178 changes: 178 additions & 0 deletions doc/circuits/circuits-family.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
:file: This file is part of the pgRouting project.
:copyright: Copyright (c) 2022-2026 pgRouting developers
:license: Creative Commons Attribution-Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0


.. index:: Circuits Family

|

Circuits - Family of Functions
===============================================================================

The following functions work on circuits of directed graphs.

.. include:: experimental.rst
:start-after: warning-begin
:end-before: end-warning

.. experimental-start

* :doc:`pgr_hawickCircuits` - Hawick's circuits algorithm.

.. experimental-end

.. toctree::
:hidden:

pgr_hawickCircuits

Description
-------------------------------------------------------------------------------

Parameters
-------------------------------------------------------------------------------

.. circuits_parameters_start

.. list-table::
:width: 81
:widths: 10,15,40
:header-rows: 1

* - Parameter
- Type
- Description
* - `Edges SQL`_
- ``TEXT``
- `Edges SQL`_ as described below.
* - ``start vid``
- |ANY-INTEGER|
- A vertex of the circuits:
- All the circuits that contain the vertex are returned.
- When ``0`` all the circuits are returned in canonical order.
* - ``start vids``
- ``ARRAY[`` |ANY-INTEGER| ``]``
- Vertices of the circuits: for each requested vertex:
- All the circuits that contain the vertex are returned:
- When empty all the circuits are returned in canonical order.


.. circuits_parameters_end

Optional parameters
...............................................................................

.. circuits_optionals_start

.. list-table::
:width: 81
:widths: auto
:header-rows: 1

* - Parameter
- Type
- Default
- Description
* - ``min_depth``
- ``BIGINT``
- ``1``
- Minimum number of vertices in a circuit.
* Exclude 2 edge circuits by increasing this number.
* - ``max_depth``
- ``BIGINT``
- ``9223372036854775807``
- Maximum number of vertices in a circuit.
* - ``self_loops``
- ``BOOLEAN``
- ``true``
- * When ``true`` self loops are included in the results.
* When ``false`` self loops are excluded from the results.
* Self loops are included or excluded regardless of ``min_depth`` and ``max_depth``.
* - ``u_turn_on_edge``
- ``BOOLEAN``
- ``true``
- * A u-turn on an edge is a 2 edge circuit that uses the same ``id`` on
both directions of the edge.
* When ``true``: u-turns are part of the results.
* When ``false``: u-turns are discarded when the circuit can be formed
with two different edges; a u-turn is kept when it is the only
option, that is, when the two vertices are connected by a single
edge.
* Self loops are not affected.

.. circuits_optionals_end

Inner Queries
-------------------------------------------------------------------------------

Edges SQL
...............................................................................

.. include:: pgRouting-concepts.rst
:start-after: basic_edges_sql_start
:end-before: basic_edges_sql_end

Result columns
-------------------------------------------------------------------------------

.. circuits_result_columns_start

.. list-table::
:width: 81
:widths: auto
:header-rows: 1

* - Column
- Type
- Description
* - ``seq``
- ``INTEGER``
- Sequential value starting from ``1``
* - ``path_id``
- ``INTEGER``
- Id of the circuit starting from ``1``
* - ``depth``
- ``INTEGER``
- Relative position in the circuit. Has value **0** for the beginning of a
circuit
* - ``start_vid``
- ``BIGINT``
- Identifier of the starting vertex of the circuit.
* - ``end_vid``
- ``BIGINT``
- Identifier of the ending vertex of the circuit.
* - ``pred``
- ``BIGINT``
- Identifier of the node that precedes ``node`` in the circuit.

- When ``node`` is the first node of the circuit, it has the same value
as ``node``.
* - ``node``
- ``BIGINT``
- Identifier of the node in the path from a vid to next vid.
* - ``edge``
- ``BIGINT``
- Identifier of the edge used to arrive from ``pred`` to ``node``.
- ``-1`` when :math:`depth = 0`.
* - ``cost``
- ``FLOAT``
- Cost to traverse from ``pred`` to ``node`` using ``edge``.
- ``0`` when :math:`depth = 0`.
* - ``agg_cost``
- ``FLOAT``
- Aggregate cost from ``start_vid`` to ``node``.

.. circuits_result_columns_end

See Also
-------------------------------------------------------------------------------

* :doc:`sampledata`
* `Boost: Hawick Circuit Algorithm
<https://www.boost.org/doc/libs/1_78_0/libs/graph/doc/hawick_circuits.html>`__

.. rubric:: Indices and tables

* :ref:`genindex`
* :ref:`search`
Loading
Loading