Re: Masquerading a unique index as a primary key in 8.4?

From: Vick Khera <vivek(at)khera(dot)org>
To: David Pirotte <dpirotte(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Masquerading a unique index as a primary key in 8.4?
Date: 2011-11-08 16:28:29
Message-ID: CALd+dccrFZueSYRVtOuPNCr=KzpZ-uUGkiKqzQNs_sWqygdV=w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Oct 18, 2011 at 6:21 PM, David Pirotte <dpirotte(at)gmail(dot)com> wrote:
> The underlying purpose is to get Londiste to acknowledge the table's key,
> and this strategy seems to work without any problems.  Londiste doesn't seem
> to care that the "primary key" is only reflected in pg_index and isn't
> accompanied by the relevant pg_constraint entry.  Is modifying the
> underlying pg_catalog tables like this "Very Bad"?  Will it have mysterious
> and unintended consequences, or can I get away with it?  Thanks!

The badness I see that will eventually come back to bite you is that
your unique constraint is lacking "NOT NULL" and a PK by definition
has NOT NULL. Therefore some other parts of the system is permitted
to make that assumption, and when stuff fails because you lied to the
system, you will probably never ever figure out or even know.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rajesh Kumar Mallah 2011-11-08 16:43:17 Index Scan Backward on wrong index in partitioned table.
Previous Message Adrian Klaver 2011-11-08 15:21:34 Re: function within a function/rollbacks/exception handling