Just some thoughts on the matter:

Dmitry, you should acknowledge the fact that in databses you have two kinds of 
hierarchies:
a) The hierarchy denoted by the referential constraints between tables which 
constitute a Directed Graph (DG), with tables as nodes and FKeys as arrows.
b) Hierarchies applying to data, e.g.
create table ppl (
id serial PRIMARY KEY,
name text not null,
parentid integer REFERENCES ppl(id)
); (with GOD himself having parentid = null :).

I think that the second type is of interest at the application level.
(For system applications however, such as DB mirroring the first type of table 
hierarchy is important as well).

Speaking of postgresql there is a fine package by the GiST/tsearch creators,
contrib/ltree whose main task is to provide the primitives 
(functions/operators) for tree manipulation.

Dont know if i am irrelevant in this thread, but i hope i helped a little bit.

-- 
Achilleas Mantzios

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to