# pgRouting Manual (3.3)

## Components - Family of functions

- Supported versions: Latest (3.3) 3.2 3.1 3.0

- Unsupported versions: 2.6 2.5

# Components - Family of functions

- pgr_connectedComponents - Connected components of an undirected graph.

- pgr_strongComponents - Strongly connected components of a directed graph.

- pgr_biconnectedComponents - Biconnected components of an undirected graph.

- pgr_articulationPoints - Articulation points of an undirected graph.

- pgr_bridges - Bridges of an undirected graph.

Experimental

Warning

Possible server crash

- These functions might create a server crash

Warning

Experimental functions

- 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 comunity.

  - Might depend on a proposed function of pgRouting

  - Might depend on a deprecated function of pgRouting

- pgr_makeConnected - Experimental - Details of edges to make graph connected.

## Parameters

Parameter | Type | Default | Description
--- | --- | --- | ---
Edges SQL | `TEXT` |  | Inner query as described below.

## Inner query

Edges SQL

  an SQL query which should return a set of rows with the following columns:

Column | Type | Default | Description
--- | --- | --- | ---
id | `ANY-INTEGER` |  | Identifier of the edge.
source | `ANY-INTEGER` |  | Identifier of the first end point vertex of the edge.
target | `ANY-INTEGER` |  | Identifier of the second end point vertex of the edge.

cost

`ANY-NUMERICAL`

Weight of the edge (source, target)

- When negative: edge (source, target) does not exist, therefore it’s not part of the graph.

reverse_cost

`ANY-NUMERICAL`

-1

Weight of the edge (target, source),

- When negative: edge (target, source) does not exist, therefore it’s not part of the graph.

Where:

ANY-INTEGER

  SMALLINT, INTEGER, BIGINT

ANY-NUMERICAL

  SMALLINT, INTEGER, BIGINT, REAL, FLOAT

## Result Columns

### pgr_connectedComponents & pgr_strongComponents

Returns set of `(seq, component, node)`

Column | Type | Description
--- | --- | ---
seq | `BIGINT` | Sequential value starting from 1.
component | `BIGINT` | Component identifier. It is equal to the minimum node identifier in the component.
node | `BIGINT` | Identifier of the vertex that belongs to component.

### pgr_biconnectedComponents

Returns set of `(seq, component, edge)`

Column | Type | Description
--- | --- | ---
seq | `BIGINT` | Sequential value starting from 1.
component | `BIGINT` | Component identifier. It is equal to the minimum edge identifier in the component.
edge | `BIGINT` | Identifier of the edge.

### pgr_articulationPoints

Returns set of `(node)`

Column | Type | Description
--- | --- | ---
node | `BIGINT` | Identifier of the vertex.

### pgr_bridges

Returns set of `(edge)`

Column | Type | Description
--- | --- | ---
edge | `BIGINT` | Identifier of the edge that is a bridge.

### pgr_makeConnected - Experimental

Returns set of `(seq, start_vid, end_vid)`

Column | Type | Description
--- | --- | ---
seq | `INT` | Sequential value starting from 1.
start_vid | `BIGINT` | Identifier of the first end point vertex of the edge.
end_vid | `BIGINT` | Identifier of the second end point vertex of the edge.

## See Also

Indices and tables

- Index

- Search Page