Re: Pg_catalog reference

From: Richard Huxton <dev(at)archonet(dot)com>
To: Anton Nikiforov <anton(at)nikiforov(dot)ru>
Cc: PostgreSQL <pgsql-general(at)postgresql(dot)org>
Subject: Re: Pg_catalog reference
Date: 2007-12-10 09:45:10
Message-ID: 475D0AA6.80801@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Anton Nikiforov wrote:
> Dear all,
> i'm trying to create tables using pg_user (pg_authid) as a foreign key
> for my table. I need to log and control that only registered users can
> modify data and i want to control data changes via logging triggers. I
> need to know who exactly was modifying data. To be more exact i want to
> create a trigger that can log user information into the a table. I want
> to have a way to make rollbacks of high level data (documents...whatever).
>
> But when i'm trying to create a constraint referencing pg_catalog tables
> - i'm getting an error.

Irritating, isn't it? You can't attach triggers to system tables, and
that means no foreign-key references.

> What you consider to be a solution in thi case?

The best I've come up with is to have an app_user table that you *can*
have foreign keys referencing and have triggers on that keep pg_user
up-to-date.

It's not perfect - as a sysadmin you can go in and delete pg_user rows
while app_user assumes they're still there. In practice, it seems to
work well enough though.

--
Richard Huxton
Archonet Ltd

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Charles.Hou 2007-12-10 09:48:28 about the performance of autovacuum and vacuumdb?
Previous Message A. Ozen Akyurek 2007-12-10 09:19:05 copy a large table raises out of memory exception