diff --git a/doc/src/sgml/contrib-spi.sgml b/doc/src/sgml/contrib-spi.sgml
index 85980f6e551..55e5ce26492 100644
--- a/doc/src/sgml/contrib-spi.sgml
+++ b/doc/src/sgml/contrib-spi.sgml
@@ -17,8 +17,13 @@
below) while creating a trigger.
+
+ Each of the groups of functions described below is provided as a
+ separately-installable extension.
+
+
- refint.c — Functions for Implementing Referential Integrity
+ refint — Functions for Implementing Referential Integrity
check_primary_key()> and
@@ -59,7 +64,7 @@
- timetravel.c — Functions for Implementing Time Travel
+ timetravel — Functions for Implementing Time Travel
Long ago, PostgreSQL> had a built-in time travel feature
@@ -152,7 +157,7 @@ CREATE TABLE mytab (
- autoinc.c — Functions for Autoincrementing Fields
+ autoinc — Functions for Autoincrementing Fields
autoinc()> is a trigger that stores the next value of
@@ -179,7 +184,7 @@ CREATE TABLE mytab (
- insert_username.c — Functions for Tracking Who Changed a Table
+ insert_username — Functions for Tracking Who Changed a Table
insert_username()> is a trigger that stores the current
@@ -200,7 +205,7 @@ CREATE TABLE mytab (
- moddatetime.c — Functions for Tracking Last Modification Time
+ moddatetime — Functions for Tracking Last Modification Time
moddatetime()> is a trigger that stores the current
diff --git a/doc/src/sgml/contrib.sgml b/doc/src/sgml/contrib.sgml
index 75d08d5f695..4504ab1749d 100644
--- a/doc/src/sgml/contrib.sgml
+++ b/doc/src/sgml/contrib.sgml
@@ -46,38 +46,45 @@
Many modules supply new user-defined functions, operators, or types.
To make use of one of these modules, after you have installed the code
- you need to register the new objects in the database
- system by running the SQL commands in the .sql> file
- supplied by the module. For example,
+ you need to register the new SQL objects in the database system.
+ In PostgreSQL> 9.1 and later, this is done by executing
+ a command. In a fresh database,
+ you can simply do
-psql -d dbname -f SHAREDIR>/contrib/module>.sql
+CREATE EXTENSION module_name>;
- Here, SHAREDIR> means the installation's share>
- directory (pg_config --sharedir> will tell you what this is).
- In most cases the script must be run by a database superuser.
-
-
-
- You need to run the .sql> file in each database that you want
+ This command must be run by a database superuser. This registers the
+ new SQL objects in the current database only, so you need to run this
+ command in each database that you want
the module's facilities to be available in. Alternatively, run it in
- database template1> so that the module will be copied into
+ database template1> so that the extension will be copied into
subsequently-created databases by default.
- You can modify the first command in the .sql> file to determine
- which schema within the database the module's objects will be created in.
- By default, they will be placed in public>.
+ Many modules allow you to install their objects in a schema of your
+ choice. To do that, add SCHEMA
+ schema_name> to the CREATE EXTENSION>
+ command. By default, the objects will be placed in your current creation
+ target schema, typically public>.
- After a major-version upgrade of PostgreSQL>, run the
- installation script again, even though the module's objects might have
- been brought forward from the old installation by dump and restore.
- This ensures that any new functions will be available and any needed
- corrections will be applied.
+ If your database was brought forward by dump and reload from a pre-9.1
+ version of PostgreSQL>, and you had been using the pre-9.1
+ version of the module in it, you should instead do
+
+
+CREATE EXTENSION module_name> FROM unpackaged;
+
+
+ This will update the pre-9.1 objects of the module into a proper
+ extension> object. Future updates to the module will be
+ managed by .
+ For more information about extension updates, see
+ .
&adminpack;
diff --git a/doc/src/sgml/dict-int.sgml b/doc/src/sgml/dict-int.sgml
index b1d69e1a4c8..17f98c05fa7 100644
--- a/doc/src/sgml/dict-int.sgml
+++ b/doc/src/sgml/dict-int.sgml
@@ -47,8 +47,8 @@
Usage
- Running the installation script creates a text search template
- intdict_template> and a dictionary intdict>
+ Installing the dict_int> extension creates a text search
+ template intdict_template> and a dictionary intdict>
based on it, with the default parameters. You can alter the
parameters, for example
diff --git a/doc/src/sgml/dict-xsyn.sgml b/doc/src/sgml/dict-xsyn.sgml
index e77889e388e..23c5d983c1f 100644
--- a/doc/src/sgml/dict-xsyn.sgml
+++ b/doc/src/sgml/dict-xsyn.sgml
@@ -87,8 +87,8 @@ word syn1 syn2 syn3
Usage
- Running the installation script creates a text search template
- xsyn_template> and a dictionary xsyn>
+ Installing the dict_xsyn> extension creates a text search
+ template xsyn_template> and a dictionary xsyn>
based on it, with default parameters. You can alter the
parameters, for example
diff --git a/doc/src/sgml/earthdistance.sgml b/doc/src/sgml/earthdistance.sgml
index b43907615a8..5b50da0510b 100644
--- a/doc/src/sgml/earthdistance.sgml
+++ b/doc/src/sgml/earthdistance.sgml
@@ -10,7 +10,7 @@
The earthdistance> module provides two different approaches to
calculating great circle distances on the surface of the Earth. The one
- described first depends on the cube> package (which
+ described first depends on the cube> module (which
must> be installed before earthdistance> can be
installed). The second one is based on the built-in point> data type,
using longitude and latitude for the coordinates.
diff --git a/doc/src/sgml/hstore.sgml b/doc/src/sgml/hstore.sgml
index 6ccc9d664bc..f00b06aa7aa 100644
--- a/doc/src/sgml/hstore.sgml
+++ b/doc/src/sgml/hstore.sgml
@@ -553,12 +553,6 @@ SELECT key, count(*) FROM
Compatibility
-
- When upgrading from older versions, always load the new
- version of this module into the database before restoring a dump.
- Otherwise, many new features will be unavailable.
-
-
As of PostgreSQL 9.0, hstore> uses a different internal
representation than previous versions. This presents no obstacle for
diff --git a/doc/src/sgml/pgstatstatements.sgml b/doc/src/sgml/pgstatstatements.sgml
index 58b37d243cd..8cff1020bb3 100644
--- a/doc/src/sgml/pgstatstatements.sgml
+++ b/doc/src/sgml/pgstatstatements.sgml
@@ -148,7 +148,7 @@
This view, and the function pg_stat_statements_reset>,
are available only in databases they have been specifically installed into
- by running the pg_stat_statements.sql> install script.
+ by installing the pg_stat_statements> extension.
However, statistics are tracked across all databases of the server
whenever the pg_stat_statements module is loaded
into the server, regardless of presence of the view.
diff --git a/doc/src/sgml/tablefunc.sgml b/doc/src/sgml/tablefunc.sgml
index 65917f7d308..dfb932f501a 100644
--- a/doc/src/sgml/tablefunc.sgml
+++ b/doc/src/sgml/tablefunc.sgml
@@ -345,7 +345,9 @@ FROM crosstab3(
Create a composite type describing the desired output columns,
- similar to the examples in the installation script. Then define a
+ similar to the examples in
+ contrib/tablefunc/tablefunc--1.0.sql>.
+ Then define a
unique function name accepting one text> parameter and returning
setof your_type_name>, but linking to the same underlying
crosstab> C function. For example, if your source data
diff --git a/doc/src/sgml/test-parser.sgml b/doc/src/sgml/test-parser.sgml
index 0c53a3a4133..0f2008cbe6b 100644
--- a/doc/src/sgml/test-parser.sgml
+++ b/doc/src/sgml/test-parser.sgml
@@ -35,8 +35,8 @@ mydb=# SELECT * FROM ts_token_type('testparser');
Usage
- Running the installation script creates a text search parser
- testparser>. It has no user-configurable parameters.
+ Installing the test_parser> extension creates a text search
+ parser testparser>. It has no user-configurable parameters.
diff --git a/doc/src/sgml/tsearch2.sgml b/doc/src/sgml/tsearch2.sgml
index 1933e2b966b..8321c1efb4f 100644
--- a/doc/src/sgml/tsearch2.sgml
+++ b/doc/src/sgml/tsearch2.sgml
@@ -152,7 +152,7 @@
before> loading the dump data! If your old installation
had the tsearch2> objects in a schema other
than public>, be sure to adjust the
- tsearch2 installation script so that the replacement
+ CREATE EXTENSION> command so that the replacement
objects are created in that same schema.
diff --git a/doc/src/sgml/unaccent.sgml b/doc/src/sgml/unaccent.sgml
index 2ad66f7ee13..9c34c0bbd2e 100644
--- a/doc/src/sgml/unaccent.sgml
+++ b/doc/src/sgml/unaccent.sgml
@@ -73,7 +73,7 @@
Usage
- Running the installation script unaccent.sql> creates a text
+ Installing the unaccent> extension creates a text
search template unaccent> and a dictionary unaccent>
based on it. The unaccent> dictionary has the default
parameter setting RULES='unaccent'>, which makes it immediately