Search Postgresql Archives

Re: feature requests (possibly interested in working on this): functional foreign keys

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Geoff Winkless, 07.02.2013 11:46:
On 7 February 2013 09:38, Chris Travers <chris.travers@xxxxxxxxx
<mailto:chris.travers@xxxxxxxxx>> wrote:

1:  The foreign key depends on the function so the function cannot be
dropped first absent CASCADE

2: If the function is redefined, one would have to check all rows to
verify that they meet the new function's requirements.  This could
pose a performance issue with DDL.

There are obvious workarounds.  One could use a trigger and a foreign
key.

But my questions are:

1.  Is there enough use in something like this to even try to tackle
it?

2.  Are there any other major showstoppers I haven't thought of?

Purely from a user perspective IMO it seems like a good idea and a
logical progression from index expressions. You could even make use
of the equivalent index expression if it existed, or (better) insist
on it, because the calculated value would have to be UNIQUE anyway
(otherwise you end up in all sorts of trouble).


Wouldn't the ability to have virtual columns (aka computed or generated columns) inside a table be a generalization of this?

The feature would need some kind of "virtual column" to support the FKs anyway, if I'm not mistaken (because the FK value needs to be stored somewhere in order to be able to look it up).

So I think exposing the ability to declare a virtual column would open up even more possibilities (and then in turn allow those virtual columns to be used in a FK constraint).

Thomas






--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux