Received: from makus.postgresql.org (makus.postgresql.org [98.129.198.125]) by mail.postgresql.org (Postfix) with ESMTP id A11B4C7DB12 for ; Mon, 19 Mar 2012 14:41:58 -0300 (ADT) Received: from delta01.pnet.xcon.it ([62.48.53.16]) by makus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1S9gah-00048i-8b for pgsql-hackers@postgresql.org; Mon, 19 Mar 2012 17:41:57 +0000 Received: from localhost (localhost [127.0.0.1]) by delta01.pnet.xcon.it (Postfix) with ESMTP id 503AE103E4138; Mon, 19 Mar 2012 18:41: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 Kc4ht0S4UVI5; Mon, 19 Mar 2012 18:41: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 A530710354519; Mon, 19 Mar 2012 18:41:39 +0100 (CET) Message-ID: <1332178899.2278.4.camel@greygoo.devise-it.lan> Subject: Re: [PATCH] Support for foreign keys with arrays From: Marco Nenciarini To: pgsql-hackers@postgresql.org Cc: Noah Misch Date: Mon, 19 Mar 2012 18:41:39 +0100 In-Reply-To: <20120317033312.GB19556@tornado.leadboat.com> References: <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> <1328551482.3354.64.camel@greygoo.devise-it.lan> <20120225020135.GA27204@tornado.leadboat.com> <1331748188.6744.15.camel@greygoo.devise-it.lan> <20120317033312.GB19556@tornado.leadboat.com> Organization: 2ndQuadrant Ltd. Content-Type: multipart/mixed; boundary="=-1OR2TtTZTAMA2Nqchdq+" X-Mailer: Evolution 3.2.2-1 Mime-Version: 1.0 X-Pg-Spam-Score: -2.6 (--) X-Archive-Number: 201203/1229 X-Sequence-Number: 205111 --=-1OR2TtTZTAMA2Nqchdq+ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi Noah, thank you again for your thorough review, which is much appreciated. > I think the patch has reached the stage where a committer can review > it without wasting much time on things that might change radically. > So, I'm marking it Ready for Committer. Please still submit an update > correcting the above; I'm sure your committer will appreciate it. Attached is v5, which should address all the remaining issues. Regards, Marco -- Marco Nenciarini - 2ndQuadrant Italy PostgreSQL Training, Services and Support marco.nenciarini@2ndQuadrant.it | www.2ndQuadrant.it On Fri, Mar 16, 2012 at 11:33:12PM -0400, Noah Misch wrote: > I recommend removing the new block of code in RI_FKey_eachcascade_del() and > letting array_remove() throw the error. If you find a way to throw a nicer > error without an extra scan, by all means submit that to a future CF as an > improvement. I don't think it's important enough to justify cycles at this > late hour of the current CF. It makes sense; we have removed the block of code and updated the error message following your suggestion. Now the error is thrown by array_remove() itself. We'll keep an eye on this for further improvements in the future. > > > pg_constraint.confeach needs documentation. > > > > Most of pg_constraint columns, including all the boolean ones, are > > documented only in the "description" column of > > > > http://www.postgresql.org/docs/9.1/static/catalog-pg-constraint.html#AEN85760 > > > > it seems that confiseach should not be an exception, since it just > > indicates whether the constraint is of a certain kind or not. > > Your patch adds two columns to pg_constraint, confiseach and confeach, but it > only mentions confiseach in documentation. Just add a similar minimal mention > of confeach. Sorry, our mistake; a mention for confeach has now been added, and both entries have been reordered to reflect the column position in pg_constraint). > That is to say, they start with a capital letter and end with a period. Your > old text was fine apart from the lack of a period. (Your new text also lacks > a period.) Fixed, it should be fine now (another misunderstanding on our side, apologies). > If the cost doesn't exceed O(F log P), where F is the size of the FK table and > P is the size of the PK table, I'm not worried. If it can be O(F^2), we would > have a problem to be documented, if not fixed. We have rewritten the old query in a simpler way; now its cost is O(F log P). Here F must represent the size of the "flattened" table, that is, the total number of values that must be checked, which seems a reasonable assumption in any case. > Your change to array_replace() made me look at array_remove() again and > realize that it needs the same treatment. This command yields a segfault: > SELECT array_remove('{a,null}'::text[], null); Fixed. > > This latest version introduces two calls to get_element_type(), both of which > should be get_base_element_type(). Fixed. > Patch "Avoid FK validations for no-rewrite ALTER TABLE ALTER TYPE", committed > between v3b and v4 of this patch, added code to ATAddForeignKeyConstraint() > requiring an update in this patch. Run this in the regression DB: > [local] regression=# alter table fktableforeachfk alter ftest1 type int[]; > ERROR: could not find cast from 1007 to 23 Thanks for pointing it out. We have added a regression test and then fixed the issue. > > RI_PLAN_EACHCASCADE_DEL_DOUPDATE should be RI_PLAN_EACHCASCADE_DEL_DODELETE. Fixed. --=-1OR2TtTZTAMA2Nqchdq+ Content-Type: application/x-bzip; name="EACH-foreign-key.v5.patch.bz2" Content-Disposition: attachment; filename="EACH-foreign-key.v5.patch.bz2" Content-Transfer-Encoding: base64 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 KaKbNrJpC4cjCBoGuPjJ/+LuSKcKEhKGFSfA --=-1OR2TtTZTAMA2Nqchdq+--