connectby usage question

Started by Eric Eover 19 years ago3 messagesgeneral
Jump to latest
#1Eric E
whalesuit@gmail.com

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

#2Joe Conway
mail@joeconway.com
In reply to: Eric E (#1)
Re: connectby usage question

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

#3Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: Eric E (#1)
Re: connectby usage question

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)