14 lines
415 B
SQL
14 lines
415 B
SQL
create view v1 as
|
|
WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS (
|
|
SELECT g.id, g.link, g.data, 1,
|
|
ARRAY[g.id],
|
|
false
|
|
FROM graph g
|
|
UNION ALL
|
|
SELECT g.id, g.link, g.data, sg.depth + 1,
|
|
path || g.id,
|
|
g.id = ANY(path)
|
|
FROM graph g, search_graph sg
|
|
WHERE g.id = sg.link AND NOT cycle
|
|
)
|
|
SELECT * FROM search_graph; |