Re: PL/pgSQL graph enumeration function hangs

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Charles F(dot) Munat" <chas(at)munat(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: PL/pgSQL graph enumeration function hangs
Date: 2008-06-07 01:47:37
Message-ID: 9458.1212803257@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Charles F. Munat" <chas(at)munat(dot)com> writes:
> Using pseudocode from Celko's "SQL for Smarties" book, I wrote the
> following function that builds a path enumeration table. I hope to
> trigger this function on the rare occasions that the organizations table
> is updated. But when I run this function, it hangs.

I think there might be something wrong with this query:

> INSERT INTO organizations_path_enum
> SELECT o1.parent_id, r1.child_id, (o1.depth + 1)
> FROM organizations_path_enum o1, relationships r1
> -- advance existing paths by one level
> WHERE EXISTS (SELECT * FROM organizations_path_enum AS o2
> WHERE r1.parent_id = o2.child_id)
> -- insert only new rows into the table
> AND NOT EXISTS (SELECT * FROM organizations_path_enum AS o3
> WHERE o1.parent_id = o3.parent_id AND r1.child_id = o3.child_id);

I'm not totally clear on what this is supposed to accomplish, but
it seems like there should be some join clause between o1 and r1.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2008-06-07 02:06:27 Re: strpos NOT doing what I'd expect
Previous Message Ralph Smith 2008-06-07 00:58:28 strpos NOT doing what I'd expect