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
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 |