pgsql: Check the relevant index element in ON CONFLICT unique index inf

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Check the relevant index element in ON CONFLICT unique index inf
Date: 2015-07-26 16:21:11
Message-ID: E1ZJOfn-0005VF-Bl@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Check the relevant index element in ON CONFLICT unique index inference.

ON CONFLICT unique index inference had a thinko that could affect cases
where the user-supplied inference clause required that an attribute
match a particular (user specified) collation and/or opclass.

infer_collation_opclass_match() has to check for opclass and/or
collation matches and that the attribute is in the list of attributes or
expressions known to be in the definition of the index under
consideration. The bug was that these two conditions weren't necessarily
evaluated for the same index attribute.

Author: Peter Geoghegan
Discussion: CAM3SWZR4uug=WvmGk7UgsqHn2MkEzy9YU-+8jKGO4JPhesyeWg(at)mail(dot)gmail(dot)com
Backpatch: 9.5, where ON CONFLICT was introduced

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/13d0053f98390ad17e373cefb95e27273c0c345c

Modified Files
--------------
src/backend/optimizer/util/plancat.c | 46 ++++++++++++++++---------
src/test/regress/expected/insert_conflict.out | 18 ++++++++++
src/test/regress/sql/insert_conflict.sql | 12 +++++++
3 files changed, 60 insertions(+), 16 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2015-07-26 20:19:28 pgsql: Make entirely-dummy appendrels get marked as such in set_append_
Previous Message Andres Freund 2015-07-26 16:21:09 pgsql: Check the relevant index element in ON CONFLICT unique index inf