Thread: pgsql: Avoid duplicates in ALTER ... DEPENDS ON EXTENSION

pgsql: Avoid duplicates in ALTER ... DEPENDS ON EXTENSION

From
Alvaro Herrera
Date:
Avoid duplicates in ALTER ... DEPENDS ON EXTENSION

If the command is attempted for an extension that the object already
depends on, silently do nothing.

In particular, this means that if a database containing multiple such
entries is dumped, the restore will silently do the right thing and
record just the first one.  (At least, in a world where pg_dump does
dump such entries -- which it doesn't currently, but it will.)

Backpatch to 9.6, where this kind of dependency was introduced.

Reviewed-by: Ibrar Ahmed, Tom Lane (offlist)
Discussion: https://postgr.es/m/20200217225333.GA30974@alvherre.pgsql

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/3dfd2d6cd28a125edc4761eaefaa1193f111459d

Modified Files
--------------
src/backend/catalog/pg_depend.c                    | 43 ++++++++++++++++++++++
src/backend/commands/alter.c                       |  7 +++-
src/include/catalog/dependency.h                   |  1 +
.../test_extensions/expected/test_extdepend.out    |  2 +
.../modules/test_extensions/sql/test_extdepend.sql |  2 +
5 files changed, 54 insertions(+), 1 deletion(-)