]> 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:49 +0000 (16:59 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Jul 2011 20:59:49 +0000 (16:59 -0400)
commiteb15f26d577a11319b9429fb84f752a0135918db
tree16f778f011e70136f8c8ec039daab0d2b48619b7
parent16a6a70ea37be76b7c3757503defbbd05d2acdf1
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