Thread: connectby usage question
Hi all, We're trying to use connectby to transform a tree into an ordered set of rows, specifically requirements rows. We have data stored in a table with keyid and parent_id, as described in the examples for keyid is also the primary key of a table A, which has the field A.seq_number. We can successfully sort the output of connectby using seqnumber. connectby does return as branch the concatenation of the keyids from root to leaf for each branch. However, we would like to return a numbering the items based on the order they return, like so; 1 (first item) 1.1 (1 branch, 1st item) 1.2 (1 branch, 2nd item) 1.2.1 (1.2 branch, 1st item) 1.2.2 1.2.2.1 1.3 2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.3 etc. Is there an option in connectby to do this directly, or do we need to write another function to do this? Thanks, Eric
Eric E wrote: > > However, we would like to return a numbering the items based on the > order they return, like so; > > 1 (first item) > 1.1 (1 branch, 1st item) > 1.2 (1 branch, 2nd item) > 1.2.1 (1.2 branch, 1st item) > 1.2.2 > 1.2.2.1 > 1.3 > etc. > Is there an option in connectby to do this directly, or do we need to > write another function to do this? There is no support for this in connectby, but I imagine it wouldn't be too hard to hack connectby to do it for you. Probably much easier to do that than try to add it with another function. Joe
contrib/ltree might be of use to you. On Nov 14, 2006, at 3:46 PM, Eric E wrote: > We're trying to use connectby to transform a tree into an ordered > set of rows, specifically requirements rows. > > We have data stored in a table with > keyid and parent_id, as described in the examples for > > keyid is also the primary key of a table A, which has the field > A.seq_number. > > We can successfully sort the output of connectby using seqnumber. > connectby does return as branch the concatenation of the keyids > from root to leaf for each branch. > > However, we would like to return a numbering the items based on the > order they return, like so; > > 1 (first item) > 1.1 (1 branch, 1st item) > 1.2 (1 branch, 2nd item) > 1.2.1 (1.2 branch, 1st item) > 1.2.2 > 1.2.2.1 > 1.3 > 2 > 2.1 > 2.1.1 > 2.1.2 > 2.1.3 > 2.2 > 2.3 > > etc. > Is there an option in connectby to do this directly, or do we need > to write another function to do this? > > Thanks, > > Eric > > > > > ---------------------------(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 > -- Jim Nasby jim@nasby.net EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)