pgsql: Fix dependency recording bug for partitioned PKs - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Fix dependency recording bug for partitioned PKs
Date
Msg-id E1h75QH-00029P-L1@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix dependency recording bug for partitioned PKs

When DefineIndex recurses to create constraints on partitions, it needs
to use the value returned by index_constraint_create to set up partition
dependencies.  However, in the course of fixing the DEPENDENCY_INTERNAL_AUTO
mess, commit 1d92a0c9f7dd introduced some code to that function that
clobbered the return value, causing the recorded OID to be of the wrong
object.  Close examination of pg_depend after creating the tables leads
to indescribable objects :-( My sin (in commit bdc3d7fa2376, while
preparing for DDL deparsing in event triggers) was to use a variable
name for the return value that's typically used for throwaway objects in
dependency-setting calls ("referenced").  Fix by changing the variable
names to match extended practice (the return value is "myself" rather
than "referenced".)

The pg_upgrade test notices the problem (in an indirect way: the pg_dump
outputs are in different order), but only if you create the objects in a
specific way that wasn't being used in the existing tests.  Add a stanza
to leave some objects around that shows the bug.

Catversion bump because preexisting databases might have bogus pg_depend
entries.

Discussion: https://postgr.es/m/20190318204235.GA30360@alvherre.pgsql

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/7e7c57bbb2ebed7e8acbd2e62fadca5a5fe5df5f

Modified Files
--------------
src/backend/catalog/index.c            | 19 +++++++------------
src/test/regress/expected/indexing.out | 18 ++++++++++++++++++
src/test/regress/sql/indexing.sql      | 19 +++++++++++++++++++
3 files changed, 44 insertions(+), 12 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Improve error reporting for DROPFUNCTION/PROCEDURE/AGGREGATE/RO
Next
From: Alvaro Herrera
Date:
Subject: pgsql: Catversion bump announced in previous commit but forgotten