Propose: enum with all registered table names?

From: "Dmitry Koterov" <dmitry(at)koterov(dot)ru>
To: "Postgres General" <pgsql-general(at)postgresql(dot)org>
Subject: Propose: enum with all registered table names?
Date: 2008-11-20 16:52:44
Message-ID: d7df81620811200852r1c9c011bn7d25d28b9796408@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello.

Sometimes I want to save in a table reference to another table's name.
E.g. I am creating an accounting system which (on triggers) logs which
record is changed and in which table:

CREATE TABLE log(
tbl XXX,
id INTEGER,
blahblah
);

Nowadays XXX may be:
1) Table name. But it is quite inefficient by disk usage. Another bad thing:
if I rename a table, I have to rename all rows in log table.
2) Table OID. It is very bad for pg_dump: after the restoration log table
will be unusable.
3) ENUM with all table names. But I have to add an element to ENUM each time
I create a new table, and, if I rename a table, I have to rename an ENUM
element too.

So it would be very useful if Postgres has a special, system ENUM (e.g.
pg_catalog.table_names_enum) which holds names of all tables in the database
(format: schema.table), and their elements are automatically renamed when a
table is renamed.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2008-11-20 17:03:48 Re: Propose: enum with all registered table names?
Previous Message Tom Lane 2008-11-20 16:20:16 Re: date range query help