Re: Proposal of hierarchical queries, a la Oracle - Mailing list pgsql-sql

From Evgen Potemkin
Subject Re: Proposal of hierarchical queries, a la Oracle
Date
Msg-id Pine.LNX.4.33.0211161449110.29721-100000@ns.terminal.ru
Whole thread Raw
In response to Re: Proposal of hierarchical queries, a la Oracle  (Oleg Bartunov <oleg@sai.msu.su>)
List pgsql-sql
I was have made a module like ltree, i don't know how you implement it,
but mine doesn't fit.

The problem : for ex. you need to select a tree, but with childs of
each parent is sorted.
in my module i've defined a tree path as set of
numbers separated by dot ('1.234.456.789'::hier for ex.), a comparision
operators <,>,<=,<=,= , operators for checking for ancestors/descedants
<<,>>,<<=,>>=.
create table t (field text, node::hier);
then i do "select field from t where where node <<'1' order by node";
'order by' - for tuples being in order of tree (first is root,then first
child, then first child of first child, .. so on). works perfectly well.

THE MATTER OF PROBLEM:
tuples can't be sorted alphabetically by 'field', because of 'order by node'
clause. 'order by node,field' doesn't really work because 'node' is first
key, if 'order by field,node' - then we don't get a tree.

if i do nodes on one level is equal, then childs of one node in some cases
are migrate to another node of same level :) as far as i understand problem
is in pg's sort. it's not a bug but feature of sort alghorithm.

The minor problem is that such tree a bit difficult to maintain. for ex. if i need
to move some node to elsewhere in tree, i need to update all childs, sub
childs, ... of this node.

regards
---
.evgen

On Fri, 15 Nov 2002, Oleg Bartunov wrote:

> Evgen,
>
> you'd need to post your message and patch to hackers mailing list.
> btw, did you try contrib/ltree module ?
>

>     Regards,
>         Oleg
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
>
>



pgsql-sql by date:

Previous
From: "LR"
Date:
Subject: Re: execute a query in an other db
Next
From: Hugh Esco
Date:
Subject: Problems invoking psql. Help please.