Received: from magus.postgresql.org (magus.postgresql.org [87.238.57.229]) by mail.postgresql.org (Postfix) with ESMTP id ED1ED1F32A3F for ; Mon, 6 Feb 2012 14:04:55 -0400 (AST) Received: from delta01.pnet.xcon.it ([62.48.53.16]) by magus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1RuSvt-00019o-6U for pgsql-hackers@postgresql.org; Mon, 06 Feb 2012 18:04:55 +0000 Received: from localhost (localhost [127.0.0.1]) by delta01.pnet.xcon.it (Postfix) with ESMTP id 5CA11103E4643; Mon, 6 Feb 2012 19:04:40 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at delta01.pnet.xcon.it Received: from delta01.pnet.xcon.it ([127.0.0.1]) by localhost (delta01.pnet.xcon.it [127.0.0.1]) (amavisd-new, port 10024) with LMTP id mLZgkBXurZmo; Mon, 6 Feb 2012 19:04:39 +0100 (CET) Received: from [192.168.0.51] (unknown [83.149.163.202]) (Authenticated sender: marco.nenciarini@devise.it) by delta01.pnet.xcon.it (Postfix) with ESMTPSA id 6B4671034A24C; Mon, 6 Feb 2012 19:04:39 +0100 (CET) Message-ID: <1328551482.3354.64.camel@greygoo.devise-it.lan> Subject: Re: [PATCH] Support for foreign keys with arrays From: Marco Nenciarini To: Gabriele Bartolini Cc: Noah Misch , PostgreSQL-development Date: Mon, 06 Feb 2012 19:04:42 +0100 In-Reply-To: <4F280EFE.1080604@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> <20111212004506.GB10399@tornado.leadboat.com> <1326568728.2613.16.camel@greygoo.devise-it.lan> <20120121204223.GA2388@tornado.leadboat.com> <4F280EFE.1080604@2ndQuadrant.it> Organization: 2ndQuadrant Ltd. Content-Type: multipart/mixed; boundary="=-4cTT5asKgPrSCduLFvsz" X-Mailer: Evolution 3.2.2-1 Mime-Version: 1.0 X-Pg-Spam-Score: -2.6 (--) X-Archive-Number: 201202/223 X-Sequence-Number: 202588 --=-4cTT5asKgPrSCduLFvsz Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi guys, Please find attached version 3 of our patch. We thoroughly followed your suggestions and were able to implement "EACH foreign key constraints" with multi-column syntax as well. "EACH foreign key constraints" represent PostgreSQL implementation of what are also known as Foreign Key Arrays. Some limitations occur in this release, but as previously agreed these can be refined and defined in future release implementations. This patch adds: * support for EACH REFERENCES column constraint on array types - e.g. c1 INT[] EACH REFERENCES t1 * support for EACH foreign key table constraints - e.g. FOREIGN KEY (EACH c1) REFERENCES t1 * support for EACH foreign keys in multi-column foreign key table constraints - e.g. FOREIGN KEY (c1, EACH c2) REFERENCES t1 (u1, u2) * support for two new referential actions on update/delete operations for single-column only EACH foreign keys: ** EACH CASCADE (deletes or updates elements inside the referencing array) ** EACH SET NULL (sets to NULL referencing element inside the foreign array) * support for array_replace and array_remove functions as required by the above actions As previously said, we preferred to keep this patch simple for 9.2 and forbid EACH CASCADE and EACH SET NULL on multi-column foreign keys. After all, majority of use cases is represented by EACH foreign key column constraints (single-column foreign key arrays), and more complicated use cases can be discussed for 9.3 - should this patch make it. :) We can use multi-dimensional arrays as well as referencing columns. In that case though, ON DELETE EACH CASCADE will behave like ON DELETE EACH SET NULL. This is a safe way of implementing the action. We have some ideas on how to implement this, but we feel it is better to limit the behaviour for now. As far as documentation is concerned, we: * added actions and constraint info in the catalog * added an entire section on "EACH foreign key constraints" in the data definition language chapter (we've simplified the second example, greatly following Noah's advice - let us know if this is ok with you) * added array_remove (currently limited to single-dimensional arrays) and array_replace in the array functions chapter * modified REFERENCES/FOREIGN KEY section in the CREATE TABLE command's documentation and added a special section on the EACH REFERENCES clause (using square braces as suggested) Here follows a short list of notes for Noah: * You proposed these changes: ARRAY CASCADE -> EACH CASCADE and ARRAY SET NULL -> EACH SET NULL. We stack with EACH CASCADE and decided to prepend the "EACH" keyword to standard's CASCADE and SET NULL. Grammar is simpler and the emphasis is on the EACH keyword. * Multi-dimensional arrays: ON DELETE EACH CASCADE -> ON DELETE EACH SET NULL. We cannot determine the array's number of dimensions at definition time as it depends on the actual values. As anticipated above, we have some ideas on multi-dimensional element removal, but not for this patch for the aforementioned reasons. * Support of EACH CASCADE/SET NULL in ConvertTriggerToFK(): we decided to leave it. Regards, Marco -- Marco Nenciarini - 2ndQuadrant Italy PostgreSQL Training, Services and Support marco.nenciarini@2ndQuadrant.it | www.2ndQuadrant.it --=-4cTT5asKgPrSCduLFvsz Content-Type: application/x-bzip; name="EACH-foreign-key-constraints-aka-foreign-key-arrays.v3.patch.bz2" Content-Disposition: attachment; filename*0=EACH-foreign-key-constraints-aka-foreign-key-arrays.v3.patch.; filename*1=bz2 Content-Transfer-Encoding: base64 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 3JFOFCQuiDpHQA== --=-4cTT5asKgPrSCduLFvsz--