Received: from maia.hub.org (maia-5.hub.org [200.46.204.29]) by mail.postgresql.org (Postfix) with ESMTP id 8E14D1336FA7 for ; Mon, 24 Jan 2011 16:07:13 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.29]) (amavisd-maia, port 10024) with ESMTP id 07655-08 for ; Mon, 24 Jan 2011 20:07:05 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from momjian.us (momjian.us [70.90.9.53]) by mail.postgresql.org (Postfix) with ESMTP id 8BC641336B42 for ; Mon, 24 Jan 2011 16:07:04 -0400 (AST) Received: (from bruce@localhost) by momjian.us (8.11.6/8.11.6) id p0OK72X22102 for pgsql-docs@postgresql.org; Mon, 24 Jan 2011 15:07:02 -0500 (EST) From: Bruce Momjian Message-Id: <201101242007.p0OK72X22102@momjian.us> Subject: Doc reference of contrib modules To: PostgreSQL-documentation Date: Mon, 24 Jan 2011 15:07:02 -0500 (EST) X-Mailer: ELM [version 2.4ME+ PL124 (25)] MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="ELM1295899622-3098-0_" Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-1.91 tagged_above=-5 required=5 tests=BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01 X-Spam-Level: X-Archive-Number: 201101/25 X-Sequence-Number: 6317 --ELM1295899622-3098-0_ Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="US-ASCII" Now that our /contrib documentation is in our SGML manual, I want to update our docs to link to the actual contrib module documentation, rather than just referencing contrib/module_name. We used to have to do that when we only had READMEs, but now we can do better. Patch attached, and I have a github branch of this too: https://github.com/bmomjian/postgres/compare/master...contrib_links -- Bruce Momjian http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + --ELM1295899622-3098-0_ Content-Transfer-Encoding: 7bit Content-Type: text/x-diff Content-Disposition: inline; filename="/rtmp/contrib.diff" diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index f994eac..2d053ee 100644 *** /tmp/pgdiff.21665/EgdqAa_datatype.sgml Mon Jan 24 15:04:28 2011 --- /tmp/pgdiff.21665/GzEpPa_datatype.sgml Mon Jan 24 15:04:28 2011 *************** a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11 *** 3917,3925 **** PostgreSQL provides storage and comparison functions for UUIDs, but the core database does not include any function for generating UUIDs, because no single algorithm is well ! suited for every application. The contrib module ! contrib/uuid-ossp provides functions that implement ! several standard algorithms. Alternatively, UUIDs could be generated by client applications or other libraries invoked through a server-side function. --- 3917,3925 ---- PostgreSQL provides storage and comparison functions for UUIDs, but the core database does not include any function for generating UUIDs, because no single algorithm is well ! suited for every application. The module ! uuid-ossp ! provides functions that implement several standard algorithms. Alternatively, UUIDs could be generated by client applications or other libraries invoked through a server-side function. diff --git a/doc/src/sgml/diskusage.sgml b/doc/src/sgml/diskusage.sgml index 0f390f3..006a98f 100644 *** /tmp/pgdiff.21665/4PWjMc_diskusage.sgml Mon Jan 24 15:04:28 2011 --- /tmp/pgdiff.21665/s8xDFc_diskusage.sgml Mon Jan 24 15:04:28 2011 *************** *** 31,40 **** You can monitor disk space in three ways: using the SQL functions listed in , ! using the tools in contrib/oid2name, or using manual inspection of the system catalogs. The SQL functions are the easiest to use and are generally recommended. - contrib/oid2name is described in . The remainder of this section shows how to do it by inspection of the system catalogs. --- 31,39 ---- You can monitor disk space in three ways: using the SQL functions listed in , ! using the oid2name module, or using manual inspection of the system catalogs. The SQL functions are the easiest to use and are generally recommended. The remainder of this section shows how to do it by inspection of the system catalogs. diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml index d884122..c672266 100644 *** /tmp/pgdiff.21665/Y2ePnb_high-availability.sgml Mon Jan 24 15:04:28 2011 --- /tmp/pgdiff.21665/e9NdPb_high-availability.sgml Mon Jan 24 15:04:28 2011 *************** primary_conninfo = 'host=192.168.1.50 po *** 967,973 **** This was the only option available in versions 8.4 and below. In this setup, set standby_mode off, because you are implementing the polling required for standby operation yourself. See ! contrib/pg_standby () for a reference implementation of this. --- 967,973 ---- This was the only option available in versions 8.4 and below. In this setup, set standby_mode off, because you are implementing the polling required for standby operation yourself. See ! pg_standby for a reference implementation of this. *************** if (!triggered) *** 1027,1033 **** A working example of a waiting restore_command is provided ! as a contrib module named pg_standby. It should be used as a reference on how to correctly implement the logic described above. It can also be extended as needed to support specific configurations and environments. --- 1027,1033 ---- A working example of a waiting restore_command is provided ! in pg_standby. It should be used as a reference on how to correctly implement the logic described above. It can also be extended as needed to support specific configurations and environments. *************** if (!triggered) *** 1542,1548 **** primary server and keep a query active for as long as needed to run queries on the standby. This prevents VACUUM from removing recently-dead rows and so cleanup conflicts do not occur. ! This could be done using contrib/dblink and pg_sleep(), or via other mechanisms. If you do this, you should note that this will delay cleanup of dead rows on the primary, which may result in undesirable table bloat. However, the cleanup --- 1542,1548 ---- primary server and keep a query active for as long as needed to run queries on the standby. This prevents VACUUM from removing recently-dead rows and so cleanup conflicts do not occur. ! This could be done using dblink and pg_sleep(), or via other mechanisms. If you do this, you should note that this will delay cleanup of dead rows on the primary, which may result in undesirable table bloat. However, the cleanup diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index a480a8d..df732ed 100644 *** /tmp/pgdiff.21665/kiDmXd_installation.sgml Mon Jan 24 15:04:28 2011 --- /tmp/pgdiff.21665/wCiCGd_installation.sgml Mon Jan 24 15:04:28 2011 *************** su - postgres *** 1007,1014 **** Use the OSSP UUID ! library when building contrib/uuid-ossp. ! The library provides functions to generate UUIDs.UUID --- 1007,1014 ---- Use the OSSP UUID ! library when building the uuid-ossp ! module. The library provides functions to generate UUIDs.UUID *************** su - postgres *** 1041,1049 **** ! Use libxslt when building contrib/xml2. ! contrib/xml2 relies on this library to perform ! XSL transformations of XML. --- 1041,1049 ---- ! Use libxslt when building the xml2 ! module. xml2 relies on this library ! to perform XSL transformations of XML. diff --git a/doc/src/sgml/lo.sgml b/doc/src/sgml/lo.sgml index ab43a53..5f2e8cb 100644 *** /tmp/pgdiff.21665/UATEod_lo.sgml Mon Jan 24 15:04:28 2011 --- /tmp/pgdiff.21665/aHUtqd_lo.sgml Mon Jan 24 15:04:28 2011 *************** CREATE TRIGGER t_raster BEFORE UPDATE OR *** 99,105 **** If you already have, or suspect you have, orphaned large objects, see the ! contrib/vacuumlo module () to help you clean them up. It's a good idea to run vacuumlo occasionally as a back-stop to the lo_manage trigger. --- 99,105 ---- If you already have, or suspect you have, orphaned large objects, see the ! vacuumlo module to help you clean them up. It's a good idea to run vacuumlo occasionally as a back-stop to the lo_manage trigger. diff --git a/doc/src/sgml/queries.sgml b/doc/src/sgml/queries.sgml index 693fce5..3227b09 100644 *** /tmp/pgdiff.21665/VG4oyb_queries.sgml Mon Jan 24 15:04:28 2011 --- /tmp/pgdiff.21665/9Zanlb_queries.sgml Mon Jan 24 15:04:29 2011 *************** SELECT * *** 686,693 **** AS t1(proname name, prosrc text) WHERE proname LIKE 'bytea%'; ! The dblink function executes a remote query (see ! contrib/dblink). It is declared to return record since it might be used for any kind of query. The actual column set must be specified in the calling query so that the parser knows, for example, what * should --- 686,693 ---- AS t1(proname name, prosrc text) WHERE proname LIKE 'bytea%'; ! The dblink function executes ! a remote query. It is declared to return record since it might be used for any kind of query. The actual column set must be specified in the calling query so that the parser knows, for example, what * should diff --git a/doc/src/sgml/recovery-config.sgml b/doc/src/sgml/recovery-config.sgml index bd9dfd1..5653ac9 100644 *** /tmp/pgdiff.21665/DLfzwa_recovery-config.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/z5SHZa_recovery-config.sgml Mon Jan 24 15:04:29 2011 *************** restore_command = 'copy "C:\\server\\arc *** 92,100 **** may be safely removed. This information can be used to truncate the archive to just the minimum required to support restart from the current restore. ! The pg_archivecleanup utility provided in ! contrib (see ) serves as a ! convenient target for archive_cleanup_command in typical single-standby configurations, for example: archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r' Note however that if multiple standby servers are restoring from the --- 92,99 ---- may be safely removed. This information can be used to truncate the archive to just the minimum required to support restart from the current restore. ! The pg_archivecleanup module ! is often used in archive_cleanup_command for single-standby configurations, for example: archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r' Note however that if multiple standby servers are restoring from the diff --git a/doc/src/sgml/ref/create_opclass.sgml b/doc/src/sgml/ref/create_opclass.sgml index eff5854..9bf81ed 100644 *** /tmp/pgdiff.21665/HBR3ke_create_opclass.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/NKWkpe_create_opclass.sgml Mon Jan 24 15:04:29 2011 *************** CREATE OPERATOR CLASS The following example command defines a GiST index operator class ! for the data type _int4 (array of int4). See ! contrib/intarray/ for the complete example. --- 276,283 ---- The following example command defines a GiST index operator class ! for the data type _int4 (array of int4). See the ! intarray module for the complete example. diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 9b92bec..bd25f3e 100644 *** /tmp/pgdiff.21665/ZaVwod_runtime.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/TlmVvb_runtime.sgml Mon Jan 24 15:04:29 2011 *************** $ kill -INT `head -1 /usr/loc *** 1502,1510 **** ! The contrib function library ! pgcrypto ! allows certain fields to be stored encrypted. This is useful if only some of the data is sensitive. The client supplies the decryption key and the data is decrypted on the server and then sent to the client. --- 1502,1509 ---- ! The pgcrypto ! module allows certain fields to be stored encrypted. This is useful if only some of the data is sensitive. The client supplies the decryption key and the data is decrypted on the server and then sent to the client. diff --git a/doc/src/sgml/spi.sgml b/doc/src/sgml/spi.sgml index 1ca9308..592c16d 100644 *** /tmp/pgdiff.21665/jFDoZa_spi.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/NqidRa_spi.sgml Mon Jan 24 15:04:29 2011 *************** INSERT INTO a SELECT * FROM a; *** 3939,3946 **** using SPI_exec and returns the number of rows that were processed by the command. You can find more complex examples for SPI in the source tree in ! src/test/regress/regress.c and in ! contrib/spi. --- 3939,3946 ---- using SPI_exec and returns the number of rows that were processed by the command. You can find more complex examples for SPI in the source tree in ! src/test/regress/regress.c and in the ! contrib/spi module. diff --git a/doc/src/sgml/storage.sgml b/doc/src/sgml/storage.sgml index ad9fba2..90cb629 100644 *** /tmp/pgdiff.21665/PN12Kc_storage.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/ZWZYFc_storage.sgml Mon Jan 24 15:04:29 2011 *************** at the root. *** 455,462 **** See src/backend/storage/freespace/README for more details on how the FSM is structured, and how it's updated and searched. ! The contrib/pg_freespacemap module can be used to examine the ! information stored in free space maps (see ). --- 455,462 ---- See src/backend/storage/freespace/README for more details on how the FSM is structured, and how it's updated and searched. ! The pg_freespacemap module ! can be used to examine the information stored in free space maps. diff --git a/doc/src/sgml/textsearch.sgml b/doc/src/sgml/textsearch.sgml index b3e4b8e..d7e4fac 100644 *** /tmp/pgdiff.21665/HjSSKb_textsearch.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/1bZ00b_textsearch.sgml Mon Jan 24 15:04:29 2011 *************** ALTER TEXT SEARCH CONFIGURATION astro_en *** 2133,2140 **** normalize words to simplify the task of later dictionaries. For example, a filtering dictionary could be used to remove accents from accented letters, as is done by the ! contrib/unaccent ! extension module. --- 2133,2140 ---- normalize words to simplify the task of later dictionaries. For example, a filtering dictionary could be used to remove accents from accented letters, as is done by the ! unaccent ! module. *************** CREATE INDEX namecontrib/dblink ! extension module. The latter is possible because ranking functions use only local information. --- 3367,3374 ---- allows the implementation of very fast searches with online update. Partitioning can be done at the database level using table inheritance, or by distributing documents over ! servers and collecting search results using the dblink ! module. The latter is possible because ranking functions use only local information. *************** Parser: "pg_catalog.default" *** 3616,3623 **** Migration from Pre-8.3 Text Search ! Applications that used the contrib/tsearch2 add-on module ! for text searching will need some adjustments to work with the built-in features: --- 3616,3624 ---- Migration from Pre-8.3 Text Search ! Applications that use the tsearch2 ! module for text searching will need some adjustments to work ! with the built-in features: *************** Parser: "pg_catalog.default" *** 3628,3634 **** argument lists, and all of them are now in the pg_catalog schema, whereas in a previous installation they would have been in public or another non-system schema. There is a new ! version of contrib/tsearch2 (see ) that provides a compatibility layer to solve most problems in this area. --- 3629,3635 ---- argument lists, and all of them are now in the pg_catalog schema, whereas in a previous installation they would have been in public or another non-system schema. There is a new ! version of tsearch2 that provides a compatibility layer to solve most problems in this area. *************** Parser: "pg_catalog.default" *** 3636,3646 **** ! The old contrib/tsearch2 functions and other objects must be suppressed when loading pg_dump output from a pre-8.3 database. While many of them won't load anyway, a few will and then cause problems. One simple way to deal with this ! is to load the new contrib/tsearch2 module before restoring the dump; then it will block the old objects from being loaded. --- 3637,3647 ---- ! The old tsearch2 functions and other objects must be suppressed when loading pg_dump output from a pre-8.3 database. While many of them won't load anyway, a few will and then cause problems. One simple way to deal with this ! is to load the new tsearch2 module before restoring the dump; then it will block the old objects from being loaded. diff --git a/doc/src/sgml/trigger.sgml b/doc/src/sgml/trigger.sgml index 38979cd..fa4cd32 100644 *** /tmp/pgdiff.21665/nHdbde_trigger.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/LrLBee_trigger.sgml Mon Jan 24 15:04:29 2011 *************** DELETE 2 *** 832,838 **** There are more complex examples in src/test/regress/regress.c and ! in contrib/spi. --- 832,838 ---- There are more complex examples in src/test/regress/regress.c and ! in spi. diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml index e7a5a91..5351eca 100644 *** /tmp/pgdiff.21665/tqjtkd_wal.sgml Mon Jan 24 15:04:29 2011 --- /tmp/pgdiff.21665/1bDJfd_wal.sgml Mon Jan 24 15:04:29 2011 *************** *** 129,136 **** file systems behave suboptimally when combined with battery-backup unit (BBU) disk controllers. In such setups, the synchronize command forces all data from the controller cache to the disks, ! eliminating much of the benefit of the BBU. You can run the utility ! contrib/pg_test_fsync in the PostgreSQL source tree to see if you are affected. If you are affected, the performance benefits of the BBU can be regained by turning off write barriers in the file system or reconfiguring the disk controller, if that is --- 129,136 ---- file systems behave suboptimally when combined with battery-backup unit (BBU) disk controllers. In such setups, the synchronize command forces all data from the controller cache to the disks, ! eliminating much of the benefit of the BBU. You can run the module ! pg_test_fsync to see if you are affected. If you are affected, the performance benefits of the BBU can be regained by turning off write barriers in the file system or reconfiguring the disk controller, if that is *************** *** 571,578 **** the exception of fsync_writethrough, which can sometimes force a flush of the disk cache even when other options do not do so. However, it's quite platform-specific which one will be the fastest; ! you can test option speeds using the utility contrib/pg_test_fsync ! in the PostgreSQL source tree. Note that this parameter is irrelevant if fsync has been turned off. --- 571,578 ---- the exception of fsync_writethrough, which can sometimes force a flush of the disk cache even when other options do not do so. However, it's quite platform-specific which one will be the fastest; ! you can test option speeds using the module pg_test_fsync. Note that this parameter is irrelevant if fsync has been turned off. --ELM1295899622-3098-0_--