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

From Gregory Williamson
Subject Re: List tables in reverse dependancy order
Date
Msg-id 8B319E5A30FF4A48BE7EEAAF609DB233011B0460@COMAIL01.digitalglobe.com
Whole thread Raw
In response to List tables in reverse dependancy order  ("Gregory Williamson" <Gregory.Williamson@digitalglobe.com>)
List pgsql-general

Thanks ... I was afraid it would as messy as it is; unfortunately Oracle seems to have a way to gather at least some of this in one (ugly) SQL command and I was hoping for some equivalent trick.

Greg W.
(apologies for top-posting -- limited mail reader)

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Sat 8/4/2007 9:51 AM
To: Gregory Williamson
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] List tables in reverse dependancy order

"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: brian
Date:
Subject: Re: how to detect the backup database every day
Next
From: Sergei Shelukhin
Date:
Subject: truncate transaction log