Core support for "extensions", which are packages of SQL objects.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: d9572c4e3b474031060189050e14ef384b94e001
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2011-02-08T21:13:22Z
Releases: 9.1.0
Core support for "extensions", which are packages of SQL objects.

This patch adds the server infrastructure to support extensions.
There is still one significant loose end, namely how to make it play nice
with pg_upgrade, so I am not yet committing the changes that would make
all the contrib modules depend on this feature.

In passing, fix a disturbingly large amount of breakage in
AlterObjectNamespace() and callers.

Dimitri Fontaine, reviewed by Anssi Kääriäinen,
Itagaki Takahiro, Tom Lane, and numerous others

Files

PathChange+/−
doc/src/sgml/acronyms.sgml modified +1 −1
doc/src/sgml/catalogs.sgml modified +195 −0
doc/src/sgml/extend.sgml modified +677 −38
doc/src/sgml/ref/allfiles.sgml modified +3 −0
doc/src/sgml/ref/alter_extension.sgml added +98 −0
doc/src/sgml/ref/comment.sgml modified +1 −0
doc/src/sgml/ref/create_extension.sgml added +118 −0
doc/src/sgml/ref/drop_extension.sgml added +121 −0
doc/src/sgml/reference.sgml modified +3 −0
doc/src/sgml/ref/psql-ref.sgml modified +13 −1
doc/src/sgml/release-9.0.sgml modified +2 −3
doc/src/sgml/xfunc.sgml modified +64 −267
src/backend/catalog/dependency.c modified +35 −10
src/backend/catalog/heap.c modified +4 −1
src/backend/catalog/Makefile modified +1 −1
src/backend/catalog/objectaddress.c modified +14 −0
src/backend/catalog/pg_conversion.c modified +3 −0
src/backend/catalog/pg_depend.c modified +87 −1
src/backend/catalog/pg_namespace.c modified +10 −1
src/backend/catalog/pg_operator.c modified +4 −1
src/backend/catalog/pg_proc.c modified +7 −2
src/backend/catalog/pg_type.c modified +7 −3
src/backend/catalog/system_views.sql modified +7 −0
src/backend/commands/alter.c modified +160 −36
src/backend/commands/cluster.c modified +4 −2
src/backend/commands/comment.c modified +6 −0
src/backend/commands/conversioncmds.c modified +27 −4
src/backend/commands/extension.c added +1401 −0
src/backend/commands/foreigncmds.c modified +19 −8
src/backend/commands/functioncmds.c modified +27 −15
src/backend/commands/Makefile modified +2 −1
src/backend/commands/opclasscmds.c modified +64 −18
src/backend/commands/operatorcmds.c modified +24 −4
src/backend/commands/proclang.c modified +7 −2
src/backend/commands/tablecmds.c modified +1 −0
src/backend/commands/tsearchcmds.c modified +112 −16
src/backend/commands/typecmds.c modified +17 −6
src/backend/nodes/copyfuncs.c modified +14 −0
src/backend/nodes/equalfuncs.c modified +12 −0
src/backend/parser/gram.y modified +50 −6
src/backend/rewrite/rewriteDefine.c modified +1 −1
src/backend/tcop/utility.c modified +24 −0
src/backend/utils/adt/genfile.c modified +45 −18
src/bin/pg_dump/common.c modified +7 −0
src/bin/pg_dump/pg_dump.c modified +259 −24
src/bin/pg_dump/pg_dump.h modified +10 −0
src/bin/pg_dump/pg_dump_sort.c modified +36 −29
src/bin/psql/command.c modified +6 −0
src/bin/psql/describe.c modified +163 −1
src/bin/psql/describe.h modified +6 −0
src/bin/psql/help.c modified +1 −0
src/bin/psql/tab-complete.c modified +33 −3
src/include/catalog/catversion.h modified +1 −1
src/include/catalog/dependency.h modified +14 −2
src/include/catalog/indexing.h modified +6 −0
src/include/catalog/pg_extension.h added +72 −0
src/include/catalog/pg_proc.h modified +6 −0
src/include/commands/alter.h modified +5 −5
src/include/commands/conversioncmds.h modified +1 −0
src/include/commands/defrem.h modified +8 −0
src/include/commands/extension.h added +40 −0
src/include/commands/typecmds.h modified +2 −1
src/include/nodes/nodes.h modified +1 −0
src/include/nodes/parsenodes.h modified +13 −0
src/include/parser/kwlist.h modified +1 −0
src/include/utils/builtins.h modified +6 −0
src/makefiles/pgxs.mk modified +12 −11
src/test/regress/expected/rules.out modified +2 −1
src/test/regress/expected/sanity_check.out modified +1 −0