]> granicus.if.org Git - postgresql/commit
Rethink behavior of CREATE OR REPLACE during CREATE EXTENSION.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Jul 2011 20:59:39 +0000 (16:59 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Jul 2011 20:59:39 +0000 (16:59 -0400)
commit988cccc620dd8c16d77f88ede167b22056176324
treedfbe1be00080bf91976341ce55a5624c2403b796
parent6f1be5a67a758499beab0082b6e63b3040913268
Rethink behavior of CREATE OR REPLACE during CREATE EXTENSION.

The original implementation simply did nothing when replacing an existing
object during CREATE EXTENSION.  The folly of this was exposed by a report
from Marc Munro: if the existing object belongs to another extension, we
are left in an inconsistent state.  We should insist that the object does
not belong to another extension, and then add it to the current extension
if not already a member.
14 files changed:
src/backend/catalog/heap.c
src/backend/catalog/pg_collation.c
src/backend/catalog/pg_conversion.c
src/backend/catalog/pg_depend.c
src/backend/catalog/pg_namespace.c
src/backend/catalog/pg_operator.c
src/backend/catalog/pg_proc.c
src/backend/catalog/pg_type.c
src/backend/commands/foreigncmds.c
src/backend/commands/functioncmds.c
src/backend/commands/opclasscmds.c
src/backend/commands/proclang.c
src/backend/commands/tsearchcmds.c
src/include/catalog/dependency.h