Recursive queries for network traversal
От | William Furnass |
---|---|
Тема | Recursive queries for network traversal |
Дата | |
Msg-id | AANLkTikROik6sm+t64ibpsN-2i6-OjLnT778u2GxDEvV@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Recursive queries for network traversal
|
Список | pgsql-novice |
Hi, I'm very new to PL/pgSQL and am having difficulty in mixing my understanding of procedural languages and of set-based operations in devising a recursive query for network traversal. The pseudocode for what I wish to do looks like the following: my_pipes = Pipes[] func find_all_pipes_upstream(node n) if is_inlet(nodename) return Nil else for p in upstream_pipes: if p in my_pipes: return Nil else roi_pipes.append(p) find_all_pipes_upstream(upstream_node(p)) I've already written the following functions in pure SQL upstream_pipes(node_name varchar) RETURNS SETOF "Pipes" upstream_node(pipe_name varchar) RETURNS "Node" is_inlet(node_name) RETURNS boolean but am struggling to figure out how to manage scoping and return types when translating the above pseudocode to pgSQL. Has anyone any advise as how best to go about this? Thanks in advance. Cheers, Will ---- Will Furnass MSc student (Environmental Management of Urban Land and Water) University of Sheffield, UK
В списке pgsql-novice по дате отправления: