Commit 1f238e56 authored by Tom Lane's avatar Tom Lane

Eliminate unnecessary array[] decoration in examples of recursive cycle

detection.
parent e3b01174
<!-- $PostgreSQL: pgsql/doc/src/sgml/queries.sgml,v 1.48 2008/10/13 16:25:19 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/queries.sgml,v 1.49 2008/10/14 00:12:44 tgl Exp $ -->
<chapter id="queries"> <chapter id="queries">
<title>Queries</title> <title>Queries</title>
...@@ -1639,7 +1639,7 @@ WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS ( ...@@ -1639,7 +1639,7 @@ WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS (
FROM graph g FROM graph g
UNION ALL UNION ALL
SELECT g.id, g.link, g.data, sg.depth + 1, SELECT g.id, g.link, g.data, sg.depth + 1,
path || ARRAY[g.id], path || g.id,
g.id = ANY(path) g.id = ANY(path)
FROM graph g, search_graph sg FROM graph g, search_graph sg
WHERE g.id = sg.link AND NOT cycle WHERE g.id = sg.link AND NOT cycle
...@@ -1664,7 +1664,7 @@ WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS ( ...@@ -1664,7 +1664,7 @@ WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS (
FROM graph g FROM graph g
UNION ALL UNION ALL
SELECT g.id, g.link, g.data, sg.depth + 1, SELECT g.id, g.link, g.data, sg.depth + 1,
path || ARRAY[ROW(g.f1, g.f2)], path || ROW(g.f1, g.f2),
ROW(g.f1, g.f2) = ANY(path) ROW(g.f1, g.f2) = ANY(path)
FROM graph g, search_graph sg FROM graph g, search_graph sg
WHERE g.id = sg.link AND NOT cycle WHERE g.id = sg.link AND NOT cycle
......
...@@ -465,7 +465,7 @@ insert into graph values ...@@ -465,7 +465,7 @@ insert into graph values
with recursive search_graph(f, t, label, path, cycle) as ( with recursive search_graph(f, t, label, path, cycle) as (
select *, array[row(g.f, g.t)], false from graph g select *, array[row(g.f, g.t)], false from graph g
union all union all
select g.*, path || array[row(g.f, g.t)], row(g.f, g.t) = any(path) select g.*, path || row(g.f, g.t), row(g.f, g.t) = any(path)
from graph g, search_graph sg from graph g, search_graph sg
where g.f = sg.t and not cycle where g.f = sg.t and not cycle
) )
......
...@@ -266,7 +266,7 @@ insert into graph values ...@@ -266,7 +266,7 @@ insert into graph values
with recursive search_graph(f, t, label, path, cycle) as ( with recursive search_graph(f, t, label, path, cycle) as (
select *, array[row(g.f, g.t)], false from graph g select *, array[row(g.f, g.t)], false from graph g
union all union all
select g.*, path || array[row(g.f, g.t)], row(g.f, g.t) = any(path) select g.*, path || row(g.f, g.t), row(g.f, g.t) = any(path)
from graph g, search_graph sg from graph g, search_graph sg
where g.f = sg.t and not cycle where g.f = sg.t and not cycle
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment