pgr_strongComponents
— Return the strongly connected components of a directed graph using Tarjan’s algorithm based on DFS.
In particular, the algorithm implemented by Boost.Graph.
Warning
Experimental functions
A strongly connected component of a directed graph is a set of vertices that are all reachable from each other. This implementation can only be used with a directed graph.
The main Characteristics are:
 Components are described by vertices
 The returned values are ordered:
 component ascending
 node ascending
 Running time: \(O(V + E)\)
pgr_strongComponents(edges_sql)
RETURNS SET OF (seq, component, n_seq, node)
OR EMPTY SET
The signature is for a directed graph.
Example: 

SELECT * FROM pgr_strongComponents(
'SELECT id, source, target, cost, reverse_cost FROM edge_table'
);
seq  component  n_seq  node
+++
1  1  1  1
2  1  2  2
3  1  3  3
4  1  4  4
5  1  5  5
6  1  6  6
7  1  7  7
8  1  8  8
9  1  9  9
10  1  10  10
11  1  11  11
12  1  12  12
13  1  13  13
14  14  1  14
15  14  2  15
16  16  1  16
17  16  2  17
(17 rows)
edges_sql:  an SQL query, which should return a set of rows with the following columns: 

Column  Type  Default  Description 

id  ANYINTEGER 
Identifier of the edge.  
source  ANYINTEGER 
Identifier of the first end point vertex of the edge.  
target  ANYINTEGER 
Identifier of the second end point vertex of the edge.  
cost  ANYNUMERICAL 
Weight of the edge (source, target)


reverse_cost  ANYNUMERICAL 
1  Weight of the edge (target, source),

Where:
ANYINTEGER:  SMALLINT, INTEGER, BIGINT 

ANYNUMERICAL:  SMALLINT, INTEGER, BIGINT, REAL, FLOAT 
Parameter  Type  Default  Description 

edges_sql  TEXT 
SQL query as described above. 
Returns set of (seq, component, n_seq, node)
Column  Type  Description 

seq  INT 
Sequential value starting from 1. 
component  BIGINT 
Component identifier. It is equal to the minimum node identifier in the component. 
n_seq  INT 
It is a sequential value starting from 1 in a component. 
node  BIGINT 
Identifier of the vertex. 
Indices and tables