| From: | Leif Biberg Kristensen <leif(at)solumslekt(dot)org> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Self-referential records |
| Date: | 2010-01-24 15:55:48 |
| Message-ID: | 201001241655.48404.leif@solumslekt.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Sunday 24. January 2010 16.22.00 Wayne E. Pfeffer wrote:
> If you do not use null to represent a root node, when you go to unwind the
> data from the table to generate a hierarchy tree, you could end up with an
> infinite loop. The query will always be looking for the next parent in the
> hierarchy. Meaning, you will want to find the parent of a node using the
> given parent_id, the query will find the parent of 1 to be 1, then it will
> look again for the parent of 1 it will find 1, etc. etc. ad nauseum. I enjoy
> using recursion as much as the next guy, but this could cause some serious
> issues with the PostgreSQL query engine eating up system resources.
It doesn't really matter if the root node is NULL or 0 or whatever. You just
have to realize that the root node is a special case and program accordingly.
An adjacency tree is not a normalized structure, and will never be. It's the
programmer's responsibility to ensure that circular references can't occur.
regards,
--
Leif Biberg Kristensen
http://solumslekt.org/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Craig Ringer | 2010-01-24 16:34:09 | Re: Recursion in triggers? |
| Previous Message | Davor J. | 2010-01-24 15:47:47 | Re: Referencing to system catalog problem |