pgr_lineGraph
— Transforms a given graph into its corresponding edgebased graph.
Warning
Possible server crash
Warning
Experimental functions
Availability
Support
Given a graph G, its line graph L(G) is a graph such that:
Summary
pgr_lineGraph(edges_sql, directed)
RETURNS SET OF (seq, source, target, cost, reverse_cost)
OR EMPTY SET
Using defaults
pgr_lineGraph(edges_sql)
RETURNS SET OF (seq, source, target, cost, reverse_cost) OR EMPTY SET
Example:  For a directed graph 

SELECT * FROM pgr_lineGraph(
'SELECT id, source, target, cost, reverse_cost FROM edge_table'
);
seq  source  target  cost  reverse_cost
++++
1  18  18  1  1
2  17  17  1  1
3  16  3  1  1
4  16  16  1  1
5  15  9  1  1
6  15  15  1  1
7  14  10  1  1
8  14  12  1  1
9  14  14  1  1
10  10  7  1  1
11  10  4  1  1
12  10  8  1  1
13  10  10  1  1
14  9  8  1  1
15  9  9  1  1
16  9  11  1  1
17  8  7  1  1
18  8  4  1  1
19  8  8  1  1
20  7  6  1  1
21  6  6  1  1
22  4  1  1  1
23  4  4  1  1
24  3  2  1  1
25  3  5  1  1
26  2  1  1  1
27  2  4  1  1
28  1  1  1  1
29  5  8  1  1
30  5  9  1  1
31  5  11  1  1
32  7  7  1  1
33  7  4  1  1
34  8  11  1  1
35  10  12  1  1
36  11  13  1  1
37  12  13  1  1
38  13  15  1  1
39  16  9  1  1
40  16  15  1  1
(40 rows)
pgr_lineGraph(edges_sql, directed);
RETURNS SET OF (seq, source, target, cost, reverse_cost) OR EMPTY SET
Example:  For an undirected graph 

SELECT * FROM pgr_lineGraph(
'SELECT id, source, target, cost, reverse_cost FROM edge_table',
FALSE
);
seq  source  target  cost  reverse_cost
++++
1  3  2  1  1
2  3  5  1  1
3  2  4  1  1
4  1  4  1  1
5  4  8  1  1
6  4  10  1  1
7  5  9  1  1
8  5  11  1  1
9  6  7  1  1
10  7  8  1  1
11  7  10  1  1
12  8  9  1  1
13  8  11  1  1
14  9  15  1  1
15  10  12  1  1
16  10  14  1  1
17  11  13  1  1
18  12  13  1  1
19  16  15  1  1
(19 rows)
Column  Type  Description 

edges_sql  TEXT 
SQL query as described above. 
directed  BOOLEAN 

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 
RETURNS SETOF (seq, source, target, cost, reverse_cost)
Column  Type  Description 

seq  INTEGER 
Sequential value starting from 1. 
source  BIGINT 
Identifier of the source vertex of the current edge id.

target  BIGINT 
Identifier of the target vertex of the current edge id.

cost  FLOAT 
Weight of the edge (source, target).

reverse_cost  FLOAT 
Weight of the edge (target, source).

Indices and tables