Re: [PATCH] Support for foreign keys with arrays - Mailing list pgsql-hackers

From Noah Misch
Subject Re: [PATCH] Support for foreign keys with arrays
Date
Msg-id 20111212004506.GB10399@tornado.leadboat.com
Whole thread Raw
In response to Re: [PATCH] Support for foreign keys with arrays  (Gabriele Bartolini <gabriele.bartolini@2ndQuadrant.it>)
Responses Re: [PATCH] Support for foreign keys with arrays
Re: [PATCH] Support for foreign keys with arrays
List pgsql-hackers
On Sat, Dec 10, 2011 at 09:47:53AM +0100, Gabriele Bartolini wrote:
> Il 20/11/11 14:05, Noah Misch ha scritto:
>> What about making ON UPDATE CASCADE an error?  That way, we can say that ARRAY
>> <action>  always applies to array elements, and plain<action>  always applies to
>> entire rows.
>>
>> SET DEFAULT should now be fine to allow.  It's ARRAY SET DEFAULT, in your new
>> terminology, that wouldn't make sense.
>
> I have tried to gather your ideas with Gianni's and come to a  
> compromise, which I hope you can both agree on.
>
> The reason why I would be inclined to leave CASCADE act on rows (rather  
> than array elements as Gianni suggests) is for backward compatibility  
> (people that are already using referential integrity based on array  
> values). For the same reason, I am not sure whether we should raise an  
> error on update, but will leave this for later.

Your conclusion is reasonable, but I don't understand this argument for it.  The
patch does not change the meaning of any SQL that works today.

> So, here is a summary:
>
> --------------- --------- ---------
>                |   ON    |   ON    |
> Action         | DELETE  | UPDATE  |
> --------------- --------- ---------
> CASCADE        |   Row   |  Error  |
> SET NULL       |   Row   |   Row   |
> SET DEFAULT    |   Row   |   Row   |
> ARRAY CASCADE  | Element | Element |
> ARRAY SET NULL | Element | Element |
> NO ACTION      |    -    |    -    |
> RESTRICT       |    -    |    -    |
> --------------- --------- ---------
>
> If that's fine with you guys, Marco and I will refactor the development  
> based on these assumptions.

Looks fine.


pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Command Triggers
Next
From: Noah Misch
Date:
Subject: Re: [PATCH] Support for foreign keys with arrays