I have an application includes data which describe tree-like structures
of varying width and breadth.  It is important for me to be able to
recover the node-IDs for these data trees.  The goal is to be able
to recover the tree node ID list given the root node ID:

Essentially, the tables are of the form:
        root-table:
                root node ID
                +other data

        major-branch-table:
                root node ID
                minor-branch node ID
                branch trim (whether branch is still included or not)
                +other data

        minor-branch table:
                A-minor-branch node ID
                B-minor-branch node ID
                +other data

The last table enables one minor-branch to lead to another (indeterminant
depth).  The data structure partly results from the way that branches
may be combined to (re)create trees of varying content -- it's not
desirable to merge these tables.

There appear to be serious performance problems with using temporary tables
(many 'execute's required), and I haven't found a way to declare an
array within a pl/pgsql function (i.e. not a part of the arguments).

I can live with the result returned as a comma-delimited string containing
all the node IDs, but the iterative searching required for reconstructing the
node list means that building the string (without a temporary table or a
working array) means iteratively parsing the string many times (though
the trees don't include any cycles).

I hope that someone will be able to suggest a suitable mechanism or
strategy for recovering the tree node lists using a pl/pgsql function.
Isn't there a better way? Hoping that someone will say "Listen, dummy,
it's obvious..."

TIA!

        -frank


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://www.postgresql.org/search.mpl

Reply via email to