Re: 7.4 Wishlist

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Neil Conway <neilc(at)samurai(dot)com>, Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au>, <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 7.4 Wishlist
Date: 2002-12-01 17:53:55
Message-ID: 20021201095023.D41355-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-advocacy pgsql-general pgsql-hackers

On Sun, 1 Dec 2002, Tom Lane wrote:

> Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> writes:
> > On 30 Nov 2002, Neil Conway wrote:
> >> Have we decided how this would even work? Last I heard, Tom still had
> >> some major reservations about the practicality of implementing these --
> >> for example, would you re-evaluate all constraints that SELECT from a
> >> table when the table changes?
>
> > You'd have to either do it in all cases or come up with something that was
> > smart enough to limit the cases to some extent based on the expression. I
> > doubt that it'd perform terribly well, especially at first.
>
> Note that you can get the "stupid" semantics (run the subselect only
> when the constrained table changes) today: just hide the subselect in
> a user-defined function that's called from the constraint expression.
> Or put the whole check in a trigger instead of using a constraint.
>
> I don't think we should bother with direct support of subselects in
> constraints unless we can come up with an implementation that is
> significantly better than what you can accomplish with these
> workarounds.

Well, the problem is that user defined triggers trying to do the real
semantics for update/insert on the "other" tables of the constraint seem
to me like they'll have the same issues as foreign keys do currently,
either you'll be forced to write something too strong and deadlock alot,
or you'll write something too weak and end up with constraint violations
with concurrent transactions unless you basically write a very low level C
function to do it for you. I guess this, since in general, the non-action
foreign keys really are just check constraints with a subselect
effectively.

In response to

Browse pgsql-advocacy by date

  From Date Subject
Next Message Bruce Momjian 2002-12-01 18:44:06 Re: Hard-coded PUBLIC in pg_dump
Previous Message Tom Lane 2002-12-01 17:38:06 Re: Segmentation fault while COPY in 7.3

Browse pgsql-general by date

  From Date Subject
Next Message Taz Master 2002-12-01 18:17:35 Inserting large number of rows using libpq++ stops responding in c++
Previous Message Tom Lane 2002-12-01 17:38:06 Re: Segmentation fault while COPY in 7.3

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2002-12-01 18:44:06 Re: Hard-coded PUBLIC in pg_dump
Previous Message Tom Lane 2002-12-01 17:38:06 Re: Segmentation fault while COPY in 7.3