pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Noah Misch <noah@leadboat.com>
To: Gabriele Bartolini <gabriele.bartolini@2ndQuadrant.it>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Cc: Marco Nenciarini <marco.nenciarini@2ndquadrant.it>
Subject: Re: [PATCH] Support for foreign keys with arrays
Date: Sun, 11 Dec 2011 19:45:06 -0500
Message-ID: <20111212004506.GB10399@tornado.leadboat.com> (raw)
In-Reply-To: <4EE31CB9.90005@2ndQuadrant.it>
References: <4EB3DF02.4020604@2ndQuadrant.it>
	<20111117042841.GA20517@tornado.leadboat.com>
	<4EC8CA0F.8040405@2ndQuadrant.it>
	<20111120130526.GD12013@tornado.leadboat.com>
	<4EE31CB9.90005@2ndQuadrant.it>

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.



view thread (62+ messages)  latest in thread

Message-ID: <20111212004506.GB10399@tornado.leadboat.com>
Permalink:  ../20111212004506.GB10399@tornado.leadboat.com/
Also on:    postgresql.org/message-id/20111212004506.GB10399@tornado.leadboat.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: noah@leadboat.com, gabriele.bartolini@2ndQuadrant.it, marco.nenciarini@2ndquadrant.it
  Subject: Re: [PATCH] Support for foreign keys with arrays
  In-Reply-To: <20111212004506.GB10399@tornado.leadboat.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox