postgresql/contrib
Robert Haas 7f7485a0cd Allow background workers to be started dynamically.
There is a new API, RegisterDynamicBackgroundWorker, which allows
an ordinary user backend to register a new background writer during
normal running.  This means that it's no longer necessary for all
background workers to be registered during processing of
shared_preload_libraries, although the option of registering workers
at that time remains available.

When a background worker exits and will not be restarted, the
slot previously used by that background worker is automatically
released and becomes available for reuse.  Slots used by background
workers that are configured for automatic restart can't (yet) be
released without shutting down the system.

This commit adds a new source file, bgworker.c, and moves some
of the existing control logic for background workers there.
Previously, there was little enough logic that it made sense to
keep everything in postmaster.c, but not any more.

This commit also makes the worker_spi contrib module into an
extension and adds a new function, worker_spi_launch, which can
be used to demonstrate the new facility.
2013-07-16 13:02:15 -04:00
..
adminpack Update copyrights for 2013 2013-01-01 17:15:01 -05:00
auth_delay Limit values of archive_timeout, post_auth_delay, auth_delay.milliseconds. 2012-11-18 17:15:06 -05:00
auto_explain Update copyrights for 2013 2013-01-01 17:15:01 -05:00
btree_gin Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
btree_gist pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
chkpass Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
citext Reduce messages about implicit indexes and sequences to DEBUG1. 2012-07-04 20:35:29 -04:00
cube Remove prototype for cube(text) function that doesn't exist anymore. 2013-04-23 13:49:06 +03:00
dblink Use an MVCC snapshot, rather than SnapshotNow, for catalog scans. 2013-07-02 09:47:01 -04:00
dict_int Update copyrights for 2013 2013-01-01 17:15:01 -05:00
dict_xsyn Update copyrights for 2013 2013-01-01 17:15:01 -05:00
dummy_seclabel Update copyrights for 2013 2013-01-01 17:15:01 -05:00
earthdistance Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
file_fdw pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
fuzzystrmatch Update copyrights for 2013 2013-01-01 17:15:01 -05:00
hstore Post-pgindent cleanup 2013-06-01 09:38:15 -04:00
intagg Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
intarray Remove unreachable code 2012-07-16 22:15:03 +03:00
isn Update copyrights for 2013 2013-01-01 17:15:01 -05:00
lo Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
ltree Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
oid2name pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pageinspect Remove pageinspect--1.0.sql 2013-05-24 08:11:44 -04:00
passwordcheck Update copyrights for 2013 2013-01-01 17:15:01 -05:00
pg_archivecleanup pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pg_buffercache Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
pg_freespacemap Throw a useful error message if an extension script file is fed to psql. 2011-10-12 15:45:03 -04:00
pg_standby pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pg_stat_statements Editorialize a bit on new ProcessUtility() API. 2013-04-28 00:18:45 -04:00
pg_test_fsync Fix pg_test_fsync, broken by xloginsert scaling patch. 2013-07-08 13:04:07 +03:00
pg_test_timing Remove undocumented -h (help) option 2013-07-01 12:40:33 -04:00
pg_trgm pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pg_upgrade Get rid of pg_class.reltoastidxid. 2013-07-04 03:24:09 +09:00
pg_upgrade_support Update copyrights for 2013 2013-01-01 17:15:01 -05:00
pg_xlogdump Fix off-by-one in pg_xlogdump -r option. 2013-06-04 18:51:43 +03:00
pgbench pgbench: Silence compiler warning 2013-07-07 07:27:22 -04:00
pgcrypto pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pgrowlocks pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
pgstattuple pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
postgres_fdw Improve updatability checking for views and foreign tables. 2013-06-12 17:53:33 -04:00
seg Add noreturn attributes to some error reporting functions 2013-02-12 07:13:22 -05:00
sepgsql Use an MVCC snapshot, rather than SnapshotNow, for catalog scans. 2013-07-02 09:47:01 -04:00
spi Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
sslinfo Lots of doc corrections. 2012-04-23 22:43:09 -04:00
start-scripts Revert "pg_ctl: Add idempotent option" 2013-04-29 21:55:12 -04:00
tablefunc Update copyrights for 2013 2013-01-01 17:15:01 -05:00
tcn Update copyrights for 2013 2013-01-01 17:15:01 -05:00
test_parser Update copyrights for 2013 2013-01-01 17:15:01 -05:00
tsearch2 Update copyrights for 2013 2013-01-01 17:15:01 -05:00
unaccent pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
uuid-ossp Update copyrights for 2013 2013-01-01 17:15:01 -05:00
vacuumlo vacuumlo: Use a cursor to limit client-side memory usage. 2013-07-15 10:51:27 -04:00
worker_spi Allow background workers to be started dynamically. 2013-07-16 13:02:15 -04:00
xml2 Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
contrib-global.mk Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
Makefile contrib/Makefile also needs updated 2013-02-22 18:56:42 -03:00
README Update contrib/README 2012-04-14 09:29:54 +03:00

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "gmake all" and "gmake
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories 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 SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.