Re: List tables in reverse dependancy order - Mailing list pgsql-general

From Tom Lane
Subject Re: List tables in reverse dependancy order
Date
Msg-id 17006.1186242671@sss.pgh.pa.us
Whole thread Raw
In response to List tables in reverse dependancy order  ("Gregory Williamson" <Gregory.Williamson@digitalglobe.com>)
List pgsql-general
"Gregory Williamson" <Gregory.Williamson@digitalglobe.com> writes:
> I'm trying to create a procedure that would let me retrieve a list of =
> tables and views in a database that will be used to control the order in =
> which lookup data is created/loaded. So, much simplified, if table =
> references table B, which in turn references table A, we want output to =
> list table A, B and C in that order.

> I'm sure that this exists -- the pg_dump command must use some similar =
> algorithm to decide in which order to load tables, but I can't see to =
> puzzle this out.

pg_dump expends a fair amount of code on this problem; if you want to
handle the general case with circular references and so on, it's not
simple.  You could do worse than to run "pg_dump -s" and postprocess
its output.

If you are only interested in simpler cases then you might be able to
find a simpler solution.  For instance if you are only worried about
foreign-key linkages then looking into pg_constraint is much the
easiest way to find out about those.

            regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: could not [extend relation|write block N of temporary file|write to hash-join temporary file]
Next
From: Tom Lane
Date:
Subject: Re: pg_shdepend big