Received: from magus.postgresql.org (magus.postgresql.org [87.238.57.229]) by mail.postgresql.org (Postfix) with ESMTP id 24AA61B505F0 for ; Wed, 14 Mar 2012 15:03:27 -0300 (ADT) Received: from delta01.pnet.xcon.it ([62.48.53.16]) by magus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1S7sXj-00076T-2W for pgsql-hackers@postgresql.org; Wed, 14 Mar 2012 18:03:26 +0000 Received: from localhost (localhost [127.0.0.1]) by delta01.pnet.xcon.it (Postfix) with ESMTP id 22C011043AB08 for ; Wed, 14 Mar 2012 19:03:10 +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 44DThTLdRBYA for ; Wed, 14 Mar 2012 19:03:08 +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 6BFCE1043AB70 for ; Wed, 14 Mar 2012 19:03:08 +0100 (CET) Message-ID: <1331748188.6744.15.camel@greygoo.devise-it.lan> Subject: Re: [PATCH] Support for foreign keys with arrays From: Marco Nenciarini To: pgsql-hackers@postgresql.org Date: Wed, 14 Mar 2012 19:03:08 +0100 In-Reply-To: <20120225020135.GA27204@tornado.leadboat.com> 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> <1328551482.3354.64.camel@greygoo.devise-it.lan> <20120225020135.GA27204@tornado.leadboat.com> Organization: 2ndQuadrant Ltd. Content-Type: multipart/mixed; boundary="=-aAO59S9ASouagKqBPWTt" X-Mailer: Evolution 3.2.2-1 Mime-Version: 1.0 X-Pg-Spam-Score: -2.6 (--) X-Archive-Number: 201203/929 X-Sequence-Number: 204811 --=-aAO59S9ASouagKqBPWTt Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi, please find attached v4 of the EACH Foreign Key patch (formerly known also as Foreign Key Array). All the open issues have been fixed, including the crucial ones; see below for details. Regards, Marco -- Marco Nenciarini - 2ndQuadrant Italy PostgreSQL Training, Services and Support marco.nenciarini@2ndQuadrant.it | www.2ndQuadrant.it On Fri, Feb 24, 2012 at 09:01:35PM -0500, Noah Misch wrote: > You support, and have test cases for, constraints with multiple EACH columns. > The documentation and comments do not explain their semantics. On reviewing > the behavior and code, you have implemented it in terms of a Cartesian > product. That's logical, but when is such a constraint actually useful? If > someone can think of an application, great; let's document his example. > Otherwise, let's reject such constraints at DDL time. Now multiple EACH column are rejected. > > > 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. > > This still feels awfully unprincipled to me. How about just throwing an error > when we need to remove an element from a multidimensional array? Essentially, > have ON DELETE EACH CASCADE downgrade to ON DELETE RESTRICT when it encounters > a multidimensional array. That's strictly less code than what you have now, > and it keeps our options open. We can always change from error to set-null > later, but we can't so readily change from set-null to anything else. That seems reasonable to me. Implemented and documented. > As I pondered this patch again, I came upon formal hazards around non-default > operator classes. Today, ATAddForeignKeyConstraint() always chooses pfeqop, > ffeqop and ppeqop in the same operator family. If it neglected this, we would > get wrong behavior when one of the operators is sensitive to a change to which > another is insensitive. For EACH FK constraints, this patch sets ffeqop = > ARRAY_EQ_OP unconditionally. array_eq() uses the TYPECACHE_EQ_OPR (usually > from the default B-tree operator class). That operator may not exist at all, > let alone share an operator family with pfeqop. Shall we deal with this by > retrieving TYPECACHE_EQ_OPR in ATAddForeignKeyConstraint() and rejecting the > constraint creation if it does not share an operator family with pfeqop? The > same hazard affects ri_triggers.c use of array_remove() and array_replace(), > and the same change mitigates it. Check added. As a consequence of this stricter policy, certain previously allowed cases are now unacceptable (e.g pk FLOAT and fk INT[]). Regression tests have been added. > Let me say again how much I like the test coverage from this patch. It's > great to think of something worth verifying and find existing coverage for it > in the submitted test cases. > > > > *** a/doc/src/sgml/catalogs.sgml > > --- b/doc/src/sgml/catalogs.sgml > > > *************** > > *** 2102,2107 **** > > --- 2106,2118 ---- > > > > If a check constraint, a human-readable representation of the expression > > > > + > > + > > + confisarray > > Name is now confiseach. Fixed. > 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. > > > + bool > > + > > + If a foreign key, true if a EACH REFERENCE foreign key > > + > > > > > > > > *** a/doc/src/sgml/ddl.sgml > > --- b/doc/src/sgml/ddl.sgml > > > + > > + Another option you have with foreign keys is to use a > > + referencing column which is an array of elements with > > + the same type (or a compatible one) as the referenced > > + column in the related table. This feature, commonly known > > + as foreign key arrays, is implemented > > Is it indeed "commonly known" by that name? My web searching did not turn up > any independent use of the term. > > In any event, this should be the only place where we mention multiple names > for the feature. Pick one preferred term and use it for all other mentions. > The documentation, comments and messages currently have a mix of "each foreign > key", "EACH foreign key" and "foreign key array". In the end we uniformly adopted "EACH foreign key" as the unique name of this feature; documentation, comments and messages have been updated accordingly. > > + > > + Even though the most common use case for foreign key arrays > > + is on a single column key, you can define an each foreign > > + key constraint on a group of columns. As the following > > + contrived example shows, it needs to be written in table constraint form: > > + > > + CREATE TABLE t1 ( > > + a integer PRIMARY KEY, > > + b integer, > > + c integer[], > > + FOREIGN KEY (b, EACH c) REFERENCES other_table (c1, c2) > > + ); > > + > > Rather than merely showing an abstract syntax example, some words about the > semantics are in order. You might have a parent table with primary key > (category, value). Then your child table(s) have a category column and an > array of values. The constraint then ensures that all the entries in the > array exist in the parent table *and* belong to the proper category. That example has been replaced by a concrete one. > > *** a/src/backend/commands/tablecmds.c > > --- b/src/backend/commands/tablecmds.c > > > *************** > > *** 5736,5741 **** ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel, > > --- 5759,5807 ---- > > (errcode(ERRCODE_INVALID_FOREIGN_KEY), > > errmsg("number of referencing and referenced columns for foreign key disagree"))); > > > > + /* Enforce each foreign key restrictions */ > > + if (fkconstraint->fk_is_each) > > + { > > + /* > > + * ON UPDATE CASCADE action is not supported on EACH foreign keys > > + */ > > + if (fkconstraint->fk_upd_action == FKCONSTR_ACTION_CASCADE) > > + ereport(ERROR, > > + (errcode(ERRCODE_INVALID_FOREIGN_KEY), > > + errmsg("ON UPDATE CASCADE action is not supported on " > > + "EACH foreign keys"), > > + errhint("Use ON UPDATE EACH CASCADE, instead"))); > > Note from the Error Message Style Guide that errhint and errdetail messages > shall be complete sentences. Fixed. > > + > > + /* > > + * EACH CASCADE and EACH SET NULL actions are only available > > + * in single-column EACH foreign keys > > + */ > > + if (numpks > 1 && > > + (fkconstraint->fk_upd_action == FKCONSTR_ACTION_ARRCASCADE > > + || fkconstraint->fk_upd_action == FKCONSTR_ACTION_ARRSETNULL > > + || fkconstraint->fk_del_action == FKCONSTR_ACTION_ARRCASCADE > > + || fkconstraint->fk_del_action == FKCONSTR_ACTION_ARRSETNULL)) > > + ereport(ERROR, > > + (errcode(ERRCODE_INVALID_FOREIGN_KEY), > > + errmsg("EACH CASCADE and EACH SET NULL actions are only " > > + "available on single-column EACH foreign keys"))); > > + } > > + else > > + { > > + /* > > + * EACH CASCADE and EACH SET NULL actions are only available > > + * in EACH foreign keys > > + */ > > + if (fkconstraint->fk_upd_action == FKCONSTR_ACTION_ARRCASCADE > > + || fkconstraint->fk_upd_action == FKCONSTR_ACTION_ARRSETNULL > > + || fkconstraint->fk_del_action == FKCONSTR_ACTION_ARRCASCADE > > + || fkconstraint->fk_del_action == FKCONSTR_ACTION_ARRSETNULL) > > + ereport(ERROR, > > + (errcode(ERRCODE_INVALID_FOREIGN_KEY), > > + errmsg("EACH CASCADE and EACH SET NULL actions are only " > > + "available on EACH foreign keys"))); > > I would just reuse the previous error message. It will be fine, maybe even > better, for everyone to see the phrase "single-column". Fixed. > > *************** > > *** 5812,5823 **** ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel, > > Oid target_typeids[2]; > > > > input_typeids[0] = pktype; > > ! input_typeids[1] = fktype; > > target_typeids[0] = opcintype; > > target_typeids[1] = opcintype; > > if (can_coerce_type(2, input_typeids, target_typeids, > > COERCION_IMPLICIT)) > > ! pfeqop = ffeqop = ppeqop; > > } > > > > if (!(OidIsValid(pfeqop) && OidIsValid(ffeqop))) > > --- 5905,5925 ---- > > Oid target_typeids[2]; > > > > input_typeids[0] = pktype; > > ! input_typeids[1] = fktyped; > > By sending the base type instead of the domain type to can_coerce_type(), this > changes behavior ever so slightly for ordinary foreign keys. It would take > something fairly baroque to get a different result. Perhaps a polymorphic > opcintype and an FK column of a domain over an enum. Still, please don't > change that part of the logic. Fixed. > > target_typeids[0] = opcintype; > > target_typeids[1] = opcintype; > > if (can_coerce_type(2, input_typeids, target_typeids, > > COERCION_IMPLICIT)) > > ! { > > ! pfeqop = ppeqop; > > ! > > ! /* > > ! * In caso of an EACH FK the ffeqop must be left untouched > > Typo. Fixed. > > > *** a/src/backend/parser/gram.y > > --- b/src/backend/parser/gram.y > > > *************** > > *** 2900,2917 **** ConstraintElem: > > yyscanner); > > $$ = (Node *)n; > > } > > ! | FOREIGN KEY '(' columnList ')' REFERENCES qualified_name > > opt_column_list key_match key_actions ConstraintAttributeSpec > > { > > Constraint *n = makeNode(Constraint); > > n->contype = CONSTR_FOREIGN; > > n->location = @1; > > n->pktable = $7; > > ! n->fk_attrs = $4; > > n->pk_attrs = $8; > > n->fk_matchtype = $9; > > n->fk_upd_action = (char) ($10 >> 8); > > n->fk_del_action = (char) ($10 & 0xFF); > > processCASbits($11, @11, "FOREIGN KEY", > > &n->deferrable, &n->initdeferred, > > &n->skip_validation, > > --- 2918,2959 ---- > > yyscanner); > > $$ = (Node *)n; > > } > > ! | FOREIGN KEY '(' foreignKeyColumnList ')' REFERENCES qualified_name > > opt_column_list key_match key_actions ConstraintAttributeSpec > > { > > Constraint *n = makeNode(Constraint); > > n->contype = CONSTR_FOREIGN; > > n->location = @1; > > n->pktable = $7; > > ! n->fk_attrs = $4; > > n->pk_attrs = $8; > > n->fk_matchtype = $9; > > n->fk_upd_action = (char) ($10 >> 8); > > n->fk_del_action = (char) ($10 & 0xFF); > > + > > + /* > > + * Split the content of foreignKeyColumnList > > + * in two separate list. One lis of fileds > > Two typos. Fixed. > > + * and one list of boolean values. > > + */ > > + { > > + ListCell *i; > > + > > + n->fk_attrs = NIL; > > + n->fk_is_each = false; > > + n->fk_each_attrs = NIL; > > + foreach (i, $4) > > + { > > + ForeignKeyColumnElem *elem = > > + (ForeignKeyColumnElem *)lfirst(i); > > + > > + n->fk_attrs = lappend(n->fk_attrs, elem->name); > > + n->fk_is_each |= elem->each; > > + n->fk_each_attrs = lappend(n->fk_each_attrs, > > + makeString(elem->each?"t":"f")); > > + } > > + } > > This processing should happen in parse_utilcmd.c rather than gram.y. Magic > values "t" and "f" won't do. Make fk_attrs a list of ForeignKeyColumnElem or > else at least use an int list of true/false. Either way, you would no longer > need the decode loop in tablecmds.c. Fixed. We have removed the magic values and moved decoding of the ForeignKeyColumnElem list inside parse_utilcmd.c. > > *** a/src/backend/utils/adt/arrayfuncs.c > > --- b/src/backend/utils/adt/arrayfuncs.c > > > + Datum > > + array_replace(PG_FUNCTION_ARGS) > > + { > > > + for (i = 0; i < nitems; i++) > > + { > > + bool isNull; > > + bool oprresult; > > + > > + /* Get source element, checking for NULL */ > > + if (bitmap && (*bitmap & bitmask) == 0) > > + { > > + if (old_value_isnull) > > + { > > + values[i] = new_value; > > + isNull = false; > > + changed = true; > > + } > > + else > > + isNull = true; > > + } > > This does the wrong thing if old_value_isnull == new_value_isnull == true: > > [local] regression=# select array_replace('{4,null,5}'::int[], null, null); > array_replace > --------------- > {4,0,5} > > (With text[], that yields a crash.) Fixed. > > *** a/src/backend/utils/adt/ri_triggers.c > > --- b/src/backend/utils/adt/ri_triggers.c > > > ! Datum > > ! RI_FKey_eachcascade_upd(PG_FUNCTION_ARGS) > > { > > > ! /* ---------- > > ! * The query string built is > > ! * UPDATE ONLY > > ! * SET fkatt1 = array_replace(fkatt1, $n, $1) [, ...] > > ! * WHERE $n = fkatt1 [AND ...] > > ! * The type id's for the $ parameters are those of the > > ! * corresponding PK attributes. > > ! * ---------- > > ! */ > > ! initStringInfo(&querybuf); > > ! initStringInfo(&qualbuf); > > ! quoteRelationName(fkrelname, fk_rel); > > ! appendStringInfo(&querybuf, "UPDATE ONLY %s SET", fkrelname); > > ! querysep = ""; > > ! qualsep = "WHERE"; > > An elog(ERROR) when riinfo.nkeys != 1 would make sense here and for other > functions where we forbid multiple columns at creation time. If nothing else, > this needs a comment that the looping is vestigial and the function only > supports single-column constraints. Logic implemented and comment added. > > *************** > > *** 2678,2695 **** RI_Initial_Check(Trigger *trigger, Relation fk_rel, Relation pk_rel) > > * The query string built is: > > * SELECT fk.keycols FROM ONLY relname fk > > * LEFT OUTER JOIN ONLY pkrelname pk > > ! * ON (pk.pkkeycol1=fk.keycol1 [AND ...]) > > * WHERE pk.pkkeycol1 IS NULL AND > > * For MATCH unspecified: > > * (fk.keycol1 IS NOT NULL [AND ...]) > > * For MATCH FULL: > > * (fk.keycol1 IS NOT NULL [OR ...]) > > * > > * We attach COLLATE clauses to the operators when comparing columns > > * that have different collations. > > *---------- > > */ > > initStringInfo(&querybuf); > > appendStringInfo(&querybuf, "SELECT "); > > sep = ""; > > for (i = 0; i < riinfo.nkeys; i++) > > --- 3527,3557 ---- > > * The query string built is: > > * SELECT fk.keycols FROM ONLY relname fk > > * LEFT OUTER JOIN ONLY pkrelname pk > > ! * ON (pk.pkkeycol1=fk.keycol1 [AND ...] > > ! * [AND NOT EXISTS()]) > > * WHERE pk.pkkeycol1 IS NULL AND > > * For MATCH unspecified: > > * (fk.keycol1 IS NOT NULL [AND ...]) > > * For MATCH FULL: > > * (fk.keycol1 IS NOT NULL [OR ...]) > > * > > + * In case of an EACH foreign key, a recheck subquery is added to > > + * the join condition in order to check that every combination of keys > > + * is actually referenced. > > + * The RECHECK_SUBQUERY is > > + * SELECT 1 FROM > > + * unnest(fk.keycol1) x1(x1) [CROSS JOIN ...] > > + * LEFT OUTER JOIN ONLY pkrelname pk > > + * ON (pk.pkkeycol1=x1.x1 [AND ...]) > > + * WHERE pk.pkkeycol1 IS NULL AND > > + * (fk.keycol1 IS NOT NULL [AND ...]) > > What is a worst-case query plan for a constraint with n ordinary keys and m > EACH keys? The subquery complexity can be compared with the one of the main query. Anyway, it is a one-off cost, paid at constraint creation, which I believe is acceptable. The fact that we now implement only single-column EACH foreign keys might suggest that we postpone this discussion at a later time. > > > + * > > * We attach COLLATE clauses to the operators when comparing columns > > * that have different collations. > > *---------- > > */ > > > *** a/src/include/nodes/parsenodes.h > > --- b/src/include/nodes/parsenodes.h > > *************** > > *** 570,575 **** typedef struct DefElem > > --- 570,589 ---- > > } DefElem; > > > > /* > > + * ForeignKeyColumnElem - foreign key column (used in foreign key constaint) > > Typo. Fixed. > > > + * > > + * For a foreign key attribute, 'name' is the name of the table column to > > + * index, and each is true if it is an EACH fk. > > + */ > > + typedef struct ForeignKeyColumnElem > > + { > > + NodeTag type; > > + Node *name; /* name of the column, or NULL */ > > + bool each; /* true if an EACH foreign key */ > > + > > + } ForeignKeyColumnElem; > > + > > + /* > > * LockingClause - raw representation of FOR UPDATE/SHARE options > > * > > * Note: lockedRels == NIL means "all relations in query". Otherwise it > > *************** > > *** 1510,1515 **** typedef enum ConstrType /* types of constraints */ > > --- 1524,1531 ---- > > #define FKCONSTR_ACTION_CASCADE 'c' > > #define FKCONSTR_ACTION_SETNULL 'n' > > #define FKCONSTR_ACTION_SETDEFAULT 'd' > > + #define FKCONSTR_ACTION_ARRCASCADE 'C' > > + #define FKCONSTR_ACTION_ARRSETNULL 'N' > > These names need update for the array -> each terminology change. Fixed. > I consider these the core changes needed to reach Ready for Committer: > > - Fix crash in array_replace(arr, null, null). > - Don't look through the domain before calling can_coerce_type(). > - Compare operator family of pfeqop and TYPECACHE_EQ_OPR at creation. > - Move post-processing from gram.y and remove "t"/"f" magic values. All done. --=-aAO59S9ASouagKqBPWTt Content-Type: application/x-bzip; name="EACH-foreign-key.v4.patch.bz2" Content-Disposition: attachment; filename="EACH-foreign-key.v4.patch.bz2" Content-Transfer-Encoding: base64 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 4Dt5naRwOA/RHWcilPS2Wl39k6Ok8CnUpQo50ghYvrOoiHUi/gZ4eR6LfHaZB+obg8Psd5b9AUVF /aM5WYp5354wYQCElpOr8irFmJ+z8uTlI+h632P7CkTSUjUSPdJ7lVPv+j4hIcnHikcUqCymrFM1 FRKbauyXyQJVVVVVVVxjk2N9mRumzIxK9qkxSqkqmzJZ743I0mlK+DOa6EkkkkkkvWlNuux8Nb5w fiFiEkqSWSSpEhLzgai6a2pbDYmpsKpqSU2oiCapUxJTWiAlUZKVqa2iVtLUkqlUktjS2SSbbWoN slvl13JCSGxCwjoFXC+hNABmKWH9RsRpSuQUcoJ2Tp1kVRJNnI3KkqpHxTrCQzg++coD6Sohu5ch pSRQJTQTsCk8ScO0oXEBywFSbbL8gzMqi+dEBXoGlQmCkkdGzclyGTcKsziBgQwjof0WIynS/vnA +eL/Iw3Ok/rcT8kctRNo5KlP1OTlN56XmV+9GEiHriep9NSlFo2qU2aVtG1ayVKa1t7oD85kjfZE ed9h4xifq+YjqRNSGI2kQfzHcZERo2TP0LMJ9h3w7ZDu3cY/qxJ718CkiHObvlRpsh6vXpyDd874 YT9//M4B4rVBPJK7GpGB2v0be4/WV1xPFKliG3jJhPbDYYgjywMKopVQrSYxMKlOjckk0iJGzNow RvSzZGG6mLKs81RMJURUSJwZgU0SWSTCSEEJH2sGDAfYZIeSK/WRIEhBT2ifOqqYk/20/nfqa9qX g4WSylVRU+Um7ecFbk3+WEaV/g/3GI8Sv8euJjhBQfQaPfebQSsME/7dIek/z5/UKjwIeYj+ZDes Pa5lRz5ft33QvJFTmp4leHbILLbEfnoZUHlR4PYf8jCf9n9uYjH/CrUBD4zPWvwtteE++FINWK0G RCPwsUL8u8nRQHPnhMqNnSIyxPs58PKmRVjop1WJxe7Oywa2wGSH6BUV1I7PmEMQQJG+nD8BCue7 +FunILk0FPEZrBDSBrvdR3mDqYQB7S575xkIdEb2iyhRDKqR1K+D5LCR8IJzP2R1yQqp2feWMk+L CMLHHwkhJJYPSfaGtNCW86Gh2OtvaGnT54eJxLzp53d28I9e1XXt8twJCZFgdbAjBYwjDDWYXiFj EaapJWSZh1HOSHwKRHDY5nvk6sWSHWTcyTBG/I63Uc4wp/clScGyJ/bwOboQMxzUyf1bjYBJEImT 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 5/+LuSKcKEhdXR0tgA== --=-aAO59S9ASouagKqBPWTt--