? GNUmakefile
? config.log
? config.status
? contrib/pg_standby/pg_standby
? contrib/pgbench/pgbench
? doc/src/sgml/HTML.index
? doc/src/sgml/HTML.index.start
? doc/src/sgml/LEGALNOTICE.html
? doc/src/sgml/acronyms.html
? doc/src/sgml/admin.html
? doc/src/sgml/adminpack.html
? doc/src/sgml/anoncvs.html
? doc/src/sgml/app-clusterdb.html
? doc/src/sgml/app-createdb.html
? doc/src/sgml/app-createlang.html
? doc/src/sgml/app-createuser.html
? doc/src/sgml/app-dropdb.html
? doc/src/sgml/app-droplang.html
? doc/src/sgml/app-dropuser.html
? doc/src/sgml/app-ecpg.html
? doc/src/sgml/app-initdb.html
? doc/src/sgml/app-pg-ctl.html
? doc/src/sgml/app-pg-dumpall.html
? doc/src/sgml/app-pgconfig.html
? doc/src/sgml/app-pgcontroldata.html
? doc/src/sgml/app-pgdump.html
? doc/src/sgml/app-pgresetxlog.html
? doc/src/sgml/app-pgrestore.html
? doc/src/sgml/app-postgres.html
? doc/src/sgml/app-postmaster.html
? doc/src/sgml/app-psql.html
? doc/src/sgml/app-reindexdb.html
? doc/src/sgml/app-vacuumdb.html
? doc/src/sgml/appendixes.html
? doc/src/sgml/applevel-consistency.html
? doc/src/sgml/arrays.html
? doc/src/sgml/auth-methods.html
? doc/src/sgml/auth-pg-hba-conf.html
? doc/src/sgml/auth-username-maps.html
? doc/src/sgml/auto-explain.html
? doc/src/sgml/backup-dump.html
? doc/src/sgml/backup-file.html
? doc/src/sgml/backup.html
? doc/src/sgml/biblio.html
? doc/src/sgml/bki-commands.html
? doc/src/sgml/bki-example.html
? doc/src/sgml/bki-format.html
? doc/src/sgml/bki-structure.html
? doc/src/sgml/bki.html
? doc/src/sgml/bookindex.html
? doc/src/sgml/bookindex.sgml
? doc/src/sgml/btree-gin.html
? doc/src/sgml/btree-gist.html
? doc/src/sgml/bug-reporting.html
? doc/src/sgml/catalog-pg-aggregate.html
? doc/src/sgml/catalog-pg-am.html
? doc/src/sgml/catalog-pg-amop.html
? doc/src/sgml/catalog-pg-amproc.html
? doc/src/sgml/catalog-pg-attrdef.html
? doc/src/sgml/catalog-pg-attribute.html
? doc/src/sgml/catalog-pg-auth-members.html
? doc/src/sgml/catalog-pg-authid.html
? doc/src/sgml/catalog-pg-cast.html
? doc/src/sgml/catalog-pg-class.html
? doc/src/sgml/catalog-pg-constraint.html
? doc/src/sgml/catalog-pg-conversion.html
? doc/src/sgml/catalog-pg-database.html
? doc/src/sgml/catalog-pg-depend.html
? doc/src/sgml/catalog-pg-description.html
? doc/src/sgml/catalog-pg-enum.html
? doc/src/sgml/catalog-pg-foreign-data-wrapper.html
? doc/src/sgml/catalog-pg-foreign-server.html
? doc/src/sgml/catalog-pg-index.html
? doc/src/sgml/catalog-pg-inherits.html
? doc/src/sgml/catalog-pg-language.html
? doc/src/sgml/catalog-pg-largeobject.html
? doc/src/sgml/catalog-pg-listener.html
? doc/src/sgml/catalog-pg-namespace.html
? doc/src/sgml/catalog-pg-opclass.html
? doc/src/sgml/catalog-pg-operator.html
? doc/src/sgml/catalog-pg-opfamily.html
? doc/src/sgml/catalog-pg-pltemplate.html
? doc/src/sgml/catalog-pg-proc.html
? doc/src/sgml/catalog-pg-rewrite.html
? doc/src/sgml/catalog-pg-shdepend.html
? doc/src/sgml/catalog-pg-shdescription.html
? doc/src/sgml/catalog-pg-statistic.html
? doc/src/sgml/catalog-pg-tablespace.html
? doc/src/sgml/catalog-pg-trigger.html
? doc/src/sgml/catalog-pg-ts-config-map.html
? doc/src/sgml/catalog-pg-ts-config.html
? doc/src/sgml/catalog-pg-ts-dict.html
? doc/src/sgml/catalog-pg-ts-parser.html
? doc/src/sgml/catalog-pg-ts-template.html
? doc/src/sgml/catalog-pg-type.html
? doc/src/sgml/catalog-pg-user-mapping.html
? doc/src/sgml/catalogs-overview.html
? doc/src/sgml/catalogs.html
? doc/src/sgml/charset.html
? doc/src/sgml/chkpass.html
? doc/src/sgml/citext.html
? doc/src/sgml/client-authentication-problems.html
? doc/src/sgml/client-authentication.html
? doc/src/sgml/client-interfaces.html
? doc/src/sgml/config-setting.html
? doc/src/sgml/connect-estab.html
? doc/src/sgml/continuous-archiving.html
? doc/src/sgml/contrib-dblink-build-sql-delete.html
? doc/src/sgml/contrib-dblink-build-sql-insert.html
? doc/src/sgml/contrib-dblink-build-sql-update.html
? doc/src/sgml/contrib-dblink-cancel-query.html
? doc/src/sgml/contrib-dblink-close.html
? doc/src/sgml/contrib-dblink-connect-u.html
? doc/src/sgml/contrib-dblink-connect.html
? doc/src/sgml/contrib-dblink-disconnect.html
? doc/src/sgml/contrib-dblink-error-message.html
? doc/src/sgml/contrib-dblink-exec.html
? doc/src/sgml/contrib-dblink-fetch.html
? doc/src/sgml/contrib-dblink-get-connections.html
? doc/src/sgml/contrib-dblink-get-pkey.html
? doc/src/sgml/contrib-dblink-get-result.html
? doc/src/sgml/contrib-dblink-is-busy.html
? doc/src/sgml/contrib-dblink-open.html
? doc/src/sgml/contrib-dblink-send-query.html
? doc/src/sgml/contrib-dblink.html
? doc/src/sgml/contrib-spi.html
? doc/src/sgml/contrib.html
? doc/src/sgml/creating-cluster.html
? doc/src/sgml/cube.html
? doc/src/sgml/cvs-tree.html
? doc/src/sgml/cvs.html
? doc/src/sgml/cvsup.html
? doc/src/sgml/database-roles.html
? doc/src/sgml/datatype-binary.html
? doc/src/sgml/datatype-bit.html
? doc/src/sgml/datatype-boolean.html
? doc/src/sgml/datatype-character.html
? doc/src/sgml/datatype-datetime.html
? doc/src/sgml/datatype-enum.html
? doc/src/sgml/datatype-geometric.html
? doc/src/sgml/datatype-money.html
? doc/src/sgml/datatype-net-types.html
? doc/src/sgml/datatype-numeric.html
? doc/src/sgml/datatype-oid.html
? doc/src/sgml/datatype-pseudo.html
? doc/src/sgml/datatype-textsearch.html
? doc/src/sgml/datatype-uuid.html
? doc/src/sgml/datatype-xml.html
? doc/src/sgml/datatype.html
? doc/src/sgml/datetime-appendix.html
? doc/src/sgml/datetime-config-files.html
? doc/src/sgml/datetime-input-rules.html
? doc/src/sgml/datetime-keywords.html
? doc/src/sgml/datetime-units-history.html
? doc/src/sgml/dblink.html
? doc/src/sgml/ddl-alter.html
? doc/src/sgml/ddl-basics.html
? doc/src/sgml/ddl-constraints.html
? doc/src/sgml/ddl-default.html
? doc/src/sgml/ddl-depend.html
? doc/src/sgml/ddl-inherit.html
? doc/src/sgml/ddl-others.html
? doc/src/sgml/ddl-partitioning.html
? doc/src/sgml/ddl-priv.html
? doc/src/sgml/ddl-schemas.html
? doc/src/sgml/ddl-system-columns.html
? doc/src/sgml/ddl.html
? doc/src/sgml/dict-int.html
? doc/src/sgml/dict-xsyn.html
? doc/src/sgml/disk-full.html
? doc/src/sgml/disk-usage.html
? doc/src/sgml/diskusage.html
? doc/src/sgml/dml-delete.html
? doc/src/sgml/dml-insert.html
? doc/src/sgml/dml-update.html
? doc/src/sgml/dml.html
? doc/src/sgml/docguide-authoring.html
? doc/src/sgml/docguide-build.html
? doc/src/sgml/docguide-docbook.html
? doc/src/sgml/docguide-style.html
? doc/src/sgml/docguide-toolsets.html
? doc/src/sgml/docguide.html
? doc/src/sgml/dynamic-trace.html
? doc/src/sgml/earthdistance.html
? doc/src/sgml/ecpg-commands.html
? doc/src/sgml/ecpg-concept.html
? doc/src/sgml/ecpg-connect.html
? doc/src/sgml/ecpg-descriptors.html
? doc/src/sgml/ecpg-develop.html
? doc/src/sgml/ecpg-disconnect.html
? doc/src/sgml/ecpg-dynamic.html
? doc/src/sgml/ecpg-errors.html
? doc/src/sgml/ecpg-informix-compat.html
? doc/src/sgml/ecpg-library.html
? doc/src/sgml/ecpg-pgtypes.html
? doc/src/sgml/ecpg-preproc.html
? doc/src/sgml/ecpg-process.html
? doc/src/sgml/ecpg-set-connection.html
? doc/src/sgml/ecpg-variables.html
? doc/src/sgml/ecpg.html
? doc/src/sgml/encryption-options.html
? doc/src/sgml/errcodes-appendix.html
? doc/src/sgml/error-message-reporting.html
? doc/src/sgml/error-style-guide.html
? doc/src/sgml/executor.html
? doc/src/sgml/explicit-joins.html
? doc/src/sgml/explicit-locking.html
? doc/src/sgml/extend-how.html
? doc/src/sgml/extend-type-system.html
? doc/src/sgml/extend.html
? doc/src/sgml/external-extensions.html
? doc/src/sgml/external-interfaces.html
? doc/src/sgml/external-pl.html
? doc/src/sgml/external-projects.html
? doc/src/sgml/features-sql-standard.html
? doc/src/sgml/features-supported.sgml
? doc/src/sgml/features-unsupported.sgml
? doc/src/sgml/features.html
? doc/src/sgml/functions-admin.html
? doc/src/sgml/functions-aggregate.html
? doc/src/sgml/functions-array.html
? doc/src/sgml/functions-binarystring.html
? doc/src/sgml/functions-bitstring.html
? doc/src/sgml/functions-comparison.html
? doc/src/sgml/functions-comparisons.html
? doc/src/sgml/functions-conditional.html
? doc/src/sgml/functions-datetime.html
? doc/src/sgml/functions-enum.html
? doc/src/sgml/functions-formatting.html
? doc/src/sgml/functions-geometry.html
? doc/src/sgml/functions-info.html
? doc/src/sgml/functions-logical.html
? doc/src/sgml/functions-matching.html
? doc/src/sgml/functions-math.html
? doc/src/sgml/functions-net.html
? doc/src/sgml/functions-sequence.html
? doc/src/sgml/functions-srf.html
? doc/src/sgml/functions-string.html
? doc/src/sgml/functions-subquery.html
? doc/src/sgml/functions-textsearch.html
? doc/src/sgml/functions-trigger.html
? doc/src/sgml/functions-window.html
? doc/src/sgml/functions-xml.html
? doc/src/sgml/functions.html
? doc/src/sgml/fuzzystrmatch.html
? doc/src/sgml/geqo-biblio.html
? doc/src/sgml/geqo-intro.html
? doc/src/sgml/geqo-intro2.html
? doc/src/sgml/geqo-pg-intro.html
? doc/src/sgml/geqo.html
? doc/src/sgml/gin-examples.html
? doc/src/sgml/gin-extensibility.html
? doc/src/sgml/gin-implementation.html
? doc/src/sgml/gin-intro.html
? doc/src/sgml/gin-limit.html
? doc/src/sgml/gin-tips.html
? doc/src/sgml/gin.html
? doc/src/sgml/gist-examples.html
? doc/src/sgml/gist-extensibility.html
? doc/src/sgml/gist-implementation.html
? doc/src/sgml/gist-intro.html
? doc/src/sgml/gist-recovery.html
? doc/src/sgml/gist.html
? doc/src/sgml/high-availability.html
? doc/src/sgml/history.html
? doc/src/sgml/hstore.html
? doc/src/sgml/index-catalog.html
? doc/src/sgml/index-cost-estimation.html
? doc/src/sgml/index-functions.html
? doc/src/sgml/index-locking.html
? doc/src/sgml/index-scanning.html
? doc/src/sgml/index-unique-checks.html
? doc/src/sgml/index.html
? doc/src/sgml/indexam.html
? doc/src/sgml/indexes-bitmap-scans.html
? doc/src/sgml/indexes-examine.html
? doc/src/sgml/indexes-expressional.html
? doc/src/sgml/indexes-intro.html
? doc/src/sgml/indexes-multicolumn.html
? doc/src/sgml/indexes-opclass.html
? doc/src/sgml/indexes-ordering.html
? doc/src/sgml/indexes-partial.html
? doc/src/sgml/indexes-types.html
? doc/src/sgml/indexes-unique.html
? doc/src/sgml/indexes.html
? doc/src/sgml/information-schema.html
? doc/src/sgml/infoschema-administrable-role-authorizations.html
? doc/src/sgml/infoschema-applicable-roles.html
? doc/src/sgml/infoschema-attributes.html
? doc/src/sgml/infoschema-check-constraint-routine-usage.html
? doc/src/sgml/infoschema-check-constraints.html
? doc/src/sgml/infoschema-column-domain-usage.html
? doc/src/sgml/infoschema-column-privileges.html
? doc/src/sgml/infoschema-column-udt-usage.html
? doc/src/sgml/infoschema-columns.html
? doc/src/sgml/infoschema-constraint-column-usage.html
? doc/src/sgml/infoschema-constraint-table-usage.html
? doc/src/sgml/infoschema-data-type-privileges.html
? doc/src/sgml/infoschema-datatypes.html
? doc/src/sgml/infoschema-domain-constraints.html
? doc/src/sgml/infoschema-domain-udt-usage.html
? doc/src/sgml/infoschema-domains.html
? doc/src/sgml/infoschema-element-types.html
? doc/src/sgml/infoschema-enabled-roles.html
? doc/src/sgml/infoschema-foreign-data-wrapper-options.html
? doc/src/sgml/infoschema-foreign-data-wrappers.html
? doc/src/sgml/infoschema-foreign-server-options.html
? doc/src/sgml/infoschema-foreign-servers.html
? doc/src/sgml/infoschema-information-schema-catalog-name.html
? doc/src/sgml/infoschema-key-column-usage.html
? doc/src/sgml/infoschema-parameters.html
? doc/src/sgml/infoschema-referential-constraints.html
? doc/src/sgml/infoschema-role-column-grants.html
? doc/src/sgml/infoschema-role-routine-grants.html
? doc/src/sgml/infoschema-role-table-grants.html
? doc/src/sgml/infoschema-role-usage-grants.html
? doc/src/sgml/infoschema-routine-privileges.html
? doc/src/sgml/infoschema-routines.html
? doc/src/sgml/infoschema-schema.html
? doc/src/sgml/infoschema-schemata.html
? doc/src/sgml/infoschema-sequences.html
? doc/src/sgml/infoschema-sql-features.html
? doc/src/sgml/infoschema-sql-implementation-info.html
? doc/src/sgml/infoschema-sql-languages.html
? doc/src/sgml/infoschema-sql-packages.html
? doc/src/sgml/infoschema-sql-parts.html
? doc/src/sgml/infoschema-sql-sizing-profiles.html
? doc/src/sgml/infoschema-sql-sizing.html
? doc/src/sgml/infoschema-table-constraints.html
? doc/src/sgml/infoschema-table-privileges.html
? doc/src/sgml/infoschema-tables.html
? doc/src/sgml/infoschema-triggers.html
? doc/src/sgml/infoschema-usage-privileges.html
? doc/src/sgml/infoschema-user-mapping-options.html
? doc/src/sgml/infoschema-user-mappings.html
? doc/src/sgml/infoschema-view-column-usage.html
? doc/src/sgml/infoschema-view-routine-usage.html
? doc/src/sgml/infoschema-view-table-usage.html
? doc/src/sgml/infoschema-views.html
? doc/src/sgml/install-getsource.html
? doc/src/sgml/install-post.html
? doc/src/sgml/install-procedure.html
? doc/src/sgml/install-requirements.html
? doc/src/sgml/install-short.html
? doc/src/sgml/install-upgrading.html
? doc/src/sgml/install-win32-full.html
? doc/src/sgml/install-win32-libpq.html
? doc/src/sgml/install-win32.html
? doc/src/sgml/installation-platform-notes.html
? doc/src/sgml/installation.html
? doc/src/sgml/intagg.html
? doc/src/sgml/intarray.html
? doc/src/sgml/internals.html
? doc/src/sgml/intro-whatis.html
? doc/src/sgml/isn.html
? doc/src/sgml/kernel-resources.html
? doc/src/sgml/largeobjects.html
? doc/src/sgml/libpq-async.html
? doc/src/sgml/libpq-build.html
? doc/src/sgml/libpq-cancel.html
? doc/src/sgml/libpq-connect.html
? doc/src/sgml/libpq-control.html
? doc/src/sgml/libpq-copy.html
? doc/src/sgml/libpq-envars.html
? doc/src/sgml/libpq-events.html
? doc/src/sgml/libpq-example.html
? doc/src/sgml/libpq-exec.html
? doc/src/sgml/libpq-fastpath.html
? doc/src/sgml/libpq-ldap.html
? doc/src/sgml/libpq-misc.html
? doc/src/sgml/libpq-notice-processing.html
? doc/src/sgml/libpq-notify.html
? doc/src/sgml/libpq-pgpass.html
? doc/src/sgml/libpq-pgservice.html
? doc/src/sgml/libpq-ssl.html
? doc/src/sgml/libpq-status.html
? doc/src/sgml/libpq-threading.html
? doc/src/sgml/libpq.html
? doc/src/sgml/lo-examplesect.html
? doc/src/sgml/lo-funcs.html
? doc/src/sgml/lo-implementation.html
? doc/src/sgml/lo-interfaces.html
? doc/src/sgml/lo-intro.html
? doc/src/sgml/lo.html
? doc/src/sgml/locale.html
? doc/src/sgml/locking-indexes.html
? doc/src/sgml/logfile-maintenance.html
? doc/src/sgml/ltree.html
? doc/src/sgml/maintenance.html
? doc/src/sgml/manage-ag-config.html
? doc/src/sgml/manage-ag-createdb.html
? doc/src/sgml/manage-ag-dropdb.html
? doc/src/sgml/manage-ag-overview.html
? doc/src/sgml/manage-ag-tablespaces.html
? doc/src/sgml/manage-ag-templatedbs.html
? doc/src/sgml/managing-databases.html
? doc/src/sgml/migration.html
? doc/src/sgml/monitoring-locks.html
? doc/src/sgml/monitoring-ps.html
? doc/src/sgml/monitoring-stats.html
? doc/src/sgml/monitoring.html
? doc/src/sgml/multibyte.html
? doc/src/sgml/mvcc-intro.html
? doc/src/sgml/mvcc.html
? doc/src/sgml/nls-programmer.html
? doc/src/sgml/nls-translator.html
? doc/src/sgml/nls.html
? doc/src/sgml/notation.html
? doc/src/sgml/oid2name.html
? doc/src/sgml/overview.html
? doc/src/sgml/pageinspect.html
? doc/src/sgml/parser-stage.html
? doc/src/sgml/performance-tips.html
? doc/src/sgml/perm-functions.html
? doc/src/sgml/pgbench.html
? doc/src/sgml/pgbuffercache.html
? doc/src/sgml/pgcrypto.html
? doc/src/sgml/pgfreespacemap.html
? doc/src/sgml/pgrowlocks.html
? doc/src/sgml/pgstandby.html
? doc/src/sgml/pgstatstatements.html
? doc/src/sgml/pgstattuple.html
? doc/src/sgml/pgtrgm.html
? doc/src/sgml/planner-optimizer.html
? doc/src/sgml/planner-stats-details.html
? doc/src/sgml/planner-stats.html
? doc/src/sgml/plhandler.html
? doc/src/sgml/plperl-data.html
? doc/src/sgml/plperl-database.html
? doc/src/sgml/plperl-funcs.html
? doc/src/sgml/plperl-global.html
? doc/src/sgml/plperl-missing.html
? doc/src/sgml/plperl-triggers.html
? doc/src/sgml/plperl-trusted.html
? doc/src/sgml/plperl.html
? doc/src/sgml/plpgsql-control-structures.html
? doc/src/sgml/plpgsql-cursors.html
? doc/src/sgml/plpgsql-declarations.html
? doc/src/sgml/plpgsql-development-tips.html
? doc/src/sgml/plpgsql-errors-and-messages.html
? doc/src/sgml/plpgsql-expressions.html
? doc/src/sgml/plpgsql-implementation.html
? doc/src/sgml/plpgsql-overview.html
? doc/src/sgml/plpgsql-porting.html
? doc/src/sgml/plpgsql-statements.html
? doc/src/sgml/plpgsql-structure.html
? doc/src/sgml/plpgsql-trigger.html
? doc/src/sgml/plpgsql.html
? doc/src/sgml/plpython-database.html
? doc/src/sgml/plpython-funcs.html
? doc/src/sgml/plpython-trigger.html
? doc/src/sgml/plpython.html
? doc/src/sgml/pltcl-data.html
? doc/src/sgml/pltcl-dbaccess.html
? doc/src/sgml/pltcl-functions.html
? doc/src/sgml/pltcl-global.html
? doc/src/sgml/pltcl-overview.html
? doc/src/sgml/pltcl-procnames.html
? doc/src/sgml/pltcl-trigger.html
? doc/src/sgml/pltcl-unknown.html
? doc/src/sgml/pltcl.html
? doc/src/sgml/populate.html
? doc/src/sgml/postgres-user.html
? doc/src/sgml/preface.html
? doc/src/sgml/preventing-server-spoofing.html
? doc/src/sgml/privileges.html
? doc/src/sgml/protocol-changes.html
? doc/src/sgml/protocol-error-fields.html
? doc/src/sgml/protocol-flow.html
? doc/src/sgml/protocol-message-formats.html
? doc/src/sgml/protocol-message-types.html
? doc/src/sgml/protocol-overview.html
? doc/src/sgml/protocol.html
? doc/src/sgml/queries-limit.html
? doc/src/sgml/queries-order.html
? doc/src/sgml/queries-overview.html
? doc/src/sgml/queries-select-lists.html
? doc/src/sgml/queries-table-expressions.html
? doc/src/sgml/queries-union.html
? doc/src/sgml/queries-values.html
? doc/src/sgml/queries-with.html
? doc/src/sgml/queries.html
? doc/src/sgml/query-path.html
? doc/src/sgml/querytree.html
? doc/src/sgml/reference-client.html
? doc/src/sgml/reference-server.html
? doc/src/sgml/reference.html
? doc/src/sgml/regress-coverage.html
? doc/src/sgml/regress-evaluation.html
? doc/src/sgml/regress-run.html
? doc/src/sgml/regress-variant.html
? doc/src/sgml/regress.html
? doc/src/sgml/release-0-01.html
? doc/src/sgml/release-0-02.html
? doc/src/sgml/release-0-03.html
? doc/src/sgml/release-1-0.html
? doc/src/sgml/release-1-01.html
? doc/src/sgml/release-1-02.html
? doc/src/sgml/release-1-09.html
? doc/src/sgml/release-6-0.html
? doc/src/sgml/release-6-1-1.html
? doc/src/sgml/release-6-1.html
? doc/src/sgml/release-6-2-1.html
? doc/src/sgml/release-6-2.html
? doc/src/sgml/release-6-3-1.html
? doc/src/sgml/release-6-3-2.html
? doc/src/sgml/release-6-3.html
? doc/src/sgml/release-6-4-1.html
? doc/src/sgml/release-6-4-2.html
? doc/src/sgml/release-6-4.html
? doc/src/sgml/release-6-5-1.html
? doc/src/sgml/release-6-5-2.html
? doc/src/sgml/release-6-5-3.html
? doc/src/sgml/release-6-5.html
? doc/src/sgml/release-7-0-1.html
? doc/src/sgml/release-7-0-2.html
? doc/src/sgml/release-7-0-3.html
? doc/src/sgml/release-7-0.html
? doc/src/sgml/release-7-1-1.html
? doc/src/sgml/release-7-1-2.html
? doc/src/sgml/release-7-1-3.html
? doc/src/sgml/release-7-1.html
? doc/src/sgml/release-7-2-1.html
? doc/src/sgml/release-7-2-2.html
? doc/src/sgml/release-7-2-3.html
? doc/src/sgml/release-7-2-4.html
? doc/src/sgml/release-7-2-5.html
? doc/src/sgml/release-7-2-6.html
? doc/src/sgml/release-7-2-7.html
? doc/src/sgml/release-7-2-8.html
? doc/src/sgml/release-7-2.html
? doc/src/sgml/release-7-3-1.html
? doc/src/sgml/release-7-3-10.html
? doc/src/sgml/release-7-3-11.html
? doc/src/sgml/release-7-3-12.html
? doc/src/sgml/release-7-3-13.html
? doc/src/sgml/release-7-3-14.html
? doc/src/sgml/release-7-3-15.html
? doc/src/sgml/release-7-3-16.html
? doc/src/sgml/release-7-3-17.html
? doc/src/sgml/release-7-3-18.html
? doc/src/sgml/release-7-3-19.html
? doc/src/sgml/release-7-3-2.html
? doc/src/sgml/release-7-3-20.html
? doc/src/sgml/release-7-3-21.html
? doc/src/sgml/release-7-3-3.html
? doc/src/sgml/release-7-3-4.html
? doc/src/sgml/release-7-3-5.html
? doc/src/sgml/release-7-3-6.html
? doc/src/sgml/release-7-3-7.html
? doc/src/sgml/release-7-3-8.html
? doc/src/sgml/release-7-3-9.html
? doc/src/sgml/release-7-3.html
? doc/src/sgml/release-7-4-1.html
? doc/src/sgml/release-7-4-10.html
? doc/src/sgml/release-7-4-11.html
? doc/src/sgml/release-7-4-12.html
? doc/src/sgml/release-7-4-13.html
? doc/src/sgml/release-7-4-14.html
? doc/src/sgml/release-7-4-15.html
? doc/src/sgml/release-7-4-16.html
? doc/src/sgml/release-7-4-17.html
? doc/src/sgml/release-7-4-18.html
? doc/src/sgml/release-7-4-19.html
? doc/src/sgml/release-7-4-2.html
? doc/src/sgml/release-7-4-20.html
? doc/src/sgml/release-7-4-21.html
? doc/src/sgml/release-7-4-22.html
? doc/src/sgml/release-7-4-23.html
? doc/src/sgml/release-7-4-24.html
? doc/src/sgml/release-7-4-25.html
? doc/src/sgml/release-7-4-3.html
? doc/src/sgml/release-7-4-4.html
? doc/src/sgml/release-7-4-5.html
? doc/src/sgml/release-7-4-6.html
? doc/src/sgml/release-7-4-7.html
? doc/src/sgml/release-7-4-8.html
? doc/src/sgml/release-7-4-9.html
? doc/src/sgml/release-7-4.html
? doc/src/sgml/release-8-0-1.html
? doc/src/sgml/release-8-0-10.html
? doc/src/sgml/release-8-0-11.html
? doc/src/sgml/release-8-0-12.html
? doc/src/sgml/release-8-0-13.html
? doc/src/sgml/release-8-0-14.html
? doc/src/sgml/release-8-0-15.html
? doc/src/sgml/release-8-0-16.html
? doc/src/sgml/release-8-0-17.html
? doc/src/sgml/release-8-0-18.html
? doc/src/sgml/release-8-0-19.html
? doc/src/sgml/release-8-0-2.html
? doc/src/sgml/release-8-0-20.html
? doc/src/sgml/release-8-0-21.html
? doc/src/sgml/release-8-0-3.html
? doc/src/sgml/release-8-0-4.html
? doc/src/sgml/release-8-0-5.html
? doc/src/sgml/release-8-0-6.html
? doc/src/sgml/release-8-0-7.html
? doc/src/sgml/release-8-0-8.html
? doc/src/sgml/release-8-0-9.html
? doc/src/sgml/release-8-0.html
? doc/src/sgml/release-8-1-1.html
? doc/src/sgml/release-8-1-10.html
? doc/src/sgml/release-8-1-11.html
? doc/src/sgml/release-8-1-12.html
? doc/src/sgml/release-8-1-13.html
? doc/src/sgml/release-8-1-14.html
? doc/src/sgml/release-8-1-15.html
? doc/src/sgml/release-8-1-16.html
? doc/src/sgml/release-8-1-17.html
? doc/src/sgml/release-8-1-2.html
? doc/src/sgml/release-8-1-3.html
? doc/src/sgml/release-8-1-4.html
? doc/src/sgml/release-8-1-5.html
? doc/src/sgml/release-8-1-6.html
? doc/src/sgml/release-8-1-7.html
? doc/src/sgml/release-8-1-8.html
? doc/src/sgml/release-8-1-9.html
? doc/src/sgml/release-8-1.html
? doc/src/sgml/release-8-2-1.html
? doc/src/sgml/release-8-2-10.html
? doc/src/sgml/release-8-2-11.html
? doc/src/sgml/release-8-2-12.html
? doc/src/sgml/release-8-2-13.html
? doc/src/sgml/release-8-2-2.html
? doc/src/sgml/release-8-2-3.html
? doc/src/sgml/release-8-2-4.html
? doc/src/sgml/release-8-2-5.html
? doc/src/sgml/release-8-2-6.html
? doc/src/sgml/release-8-2-7.html
? doc/src/sgml/release-8-2-8.html
? doc/src/sgml/release-8-2-9.html
? doc/src/sgml/release-8-2.html
? doc/src/sgml/release-8-3-1.html
? doc/src/sgml/release-8-3-2.html
? doc/src/sgml/release-8-3-3.html
? doc/src/sgml/release-8-3-4.html
? doc/src/sgml/release-8-3-5.html
? doc/src/sgml/release-8-3-6.html
? doc/src/sgml/release-8-3-7.html
? doc/src/sgml/release-8-3.html
? doc/src/sgml/release-8-4.html
? doc/src/sgml/release.html
? doc/src/sgml/resources.html
? doc/src/sgml/role-attributes.html
? doc/src/sgml/role-membership.html
? doc/src/sgml/routine-reindex.html
? doc/src/sgml/routine-vacuuming.html
? doc/src/sgml/row-estimation-examples.html
? doc/src/sgml/rowtypes.html
? doc/src/sgml/rsync.html
? doc/src/sgml/rule-system.html
? doc/src/sgml/rules-privileges.html
? doc/src/sgml/rules-status.html
? doc/src/sgml/rules-triggers.html
? doc/src/sgml/rules-update.html
? doc/src/sgml/rules-views.html
? doc/src/sgml/rules.html
? doc/src/sgml/runtime-config-autovacuum.html
? doc/src/sgml/runtime-config-client.html
? doc/src/sgml/runtime-config-compatible.html
? doc/src/sgml/runtime-config-connection.html
? doc/src/sgml/runtime-config-custom.html
? doc/src/sgml/runtime-config-developer.html
? doc/src/sgml/runtime-config-file-locations.html
? doc/src/sgml/runtime-config-locks.html
? doc/src/sgml/runtime-config-logging.html
? doc/src/sgml/runtime-config-preset.html
? doc/src/sgml/runtime-config-query.html
? doc/src/sgml/runtime-config-resource.html
? doc/src/sgml/runtime-config-short.html
? doc/src/sgml/runtime-config-statistics.html
? doc/src/sgml/runtime-config-wal.html
? doc/src/sgml/runtime-config.html
? doc/src/sgml/runtime.html
? doc/src/sgml/seg.html
? doc/src/sgml/server-programming.html
? doc/src/sgml/server-shutdown.html
? doc/src/sgml/server-start.html
? doc/src/sgml/source-format.html
? doc/src/sgml/source.html
? doc/src/sgml/spi-examples.html
? doc/src/sgml/spi-interface-support.html
? doc/src/sgml/spi-interface.html
? doc/src/sgml/spi-memory.html
? doc/src/sgml/spi-realloc.html
? doc/src/sgml/spi-spi-connect.html
? doc/src/sgml/spi-spi-copytuple.html
? doc/src/sgml/spi-spi-cursor-close.html
? doc/src/sgml/spi-spi-cursor-fetch.html
? doc/src/sgml/spi-spi-cursor-find.html
? doc/src/sgml/spi-spi-cursor-move.html
? doc/src/sgml/spi-spi-cursor-open-with-args.html
? doc/src/sgml/spi-spi-cursor-open.html
? doc/src/sgml/spi-spi-exec.html
? doc/src/sgml/spi-spi-execp.html
? doc/src/sgml/spi-spi-execute-plan.html
? doc/src/sgml/spi-spi-execute-with-args.html
? doc/src/sgml/spi-spi-execute.html
? doc/src/sgml/spi-spi-finish.html
? doc/src/sgml/spi-spi-fname.html
? doc/src/sgml/spi-spi-fnumber.html
? doc/src/sgml/spi-spi-freeplan.html
? doc/src/sgml/spi-spi-freetuple.html
? doc/src/sgml/spi-spi-freetupletable.html
? doc/src/sgml/spi-spi-getargcount.html
? doc/src/sgml/spi-spi-getargtypeid.html
? doc/src/sgml/spi-spi-getbinval.html
? doc/src/sgml/spi-spi-getnspname.html
? doc/src/sgml/spi-spi-getrelname.html
? doc/src/sgml/spi-spi-gettype.html
? doc/src/sgml/spi-spi-gettypeid.html
? doc/src/sgml/spi-spi-getvalue.html
? doc/src/sgml/spi-spi-is-cursor-plan.html
? doc/src/sgml/spi-spi-modifytuple.html
? doc/src/sgml/spi-spi-palloc.html
? doc/src/sgml/spi-spi-pfree.html
? doc/src/sgml/spi-spi-pop.html
? doc/src/sgml/spi-spi-prepare-cursor.html
? doc/src/sgml/spi-spi-prepare.html
? doc/src/sgml/spi-spi-push.html
? doc/src/sgml/spi-spi-returntuple.html
? doc/src/sgml/spi-spi-saveplan.html
? doc/src/sgml/spi-spi-scroll-cursor-fetch.html
? doc/src/sgml/spi-spi-scroll-cursor-move.html
? doc/src/sgml/spi-visibility.html
? doc/src/sgml/spi.html
? doc/src/sgml/sql-abort.html
? doc/src/sgml/sql-alteraggregate.html
? doc/src/sgml/sql-alterconversion.html
? doc/src/sgml/sql-alterdatabase.html
? doc/src/sgml/sql-alterdomain.html
? doc/src/sgml/sql-alterforeigndatawrapper.html
? doc/src/sgml/sql-alterfunction.html
? doc/src/sgml/sql-altergroup.html
? doc/src/sgml/sql-alterindex.html
? doc/src/sgml/sql-alterlanguage.html
? doc/src/sgml/sql-alteropclass.html
? doc/src/sgml/sql-alteroperator.html
? doc/src/sgml/sql-alteropfamily.html
? doc/src/sgml/sql-alterrole.html
? doc/src/sgml/sql-alterschema.html
? doc/src/sgml/sql-altersequence.html
? doc/src/sgml/sql-alterserver.html
? doc/src/sgml/sql-altertable.html
? doc/src/sgml/sql-altertablespace.html
? doc/src/sgml/sql-altertrigger.html
? doc/src/sgml/sql-altertsconfig.html
? doc/src/sgml/sql-altertsdictionary.html
? doc/src/sgml/sql-altertsparser.html
? doc/src/sgml/sql-altertstemplate.html
? doc/src/sgml/sql-altertype.html
? doc/src/sgml/sql-alteruser.html
? doc/src/sgml/sql-alterusermapping.html
? doc/src/sgml/sql-alterview.html
? doc/src/sgml/sql-analyze.html
? doc/src/sgml/sql-begin.html
? doc/src/sgml/sql-checkpoint.html
? doc/src/sgml/sql-close.html
? doc/src/sgml/sql-cluster.html
? doc/src/sgml/sql-commands.html
? doc/src/sgml/sql-comment.html
? doc/src/sgml/sql-commit-prepared.html
? doc/src/sgml/sql-commit.html
? doc/src/sgml/sql-copy.html
? doc/src/sgml/sql-createaggregate.html
? doc/src/sgml/sql-createcast.html
? doc/src/sgml/sql-createconstraint.html
? doc/src/sgml/sql-createconversion.html
? doc/src/sgml/sql-createdatabase.html
? doc/src/sgml/sql-createdomain.html
? doc/src/sgml/sql-createforeigndatawrapper.html
? doc/src/sgml/sql-createfunction.html
? doc/src/sgml/sql-creategroup.html
? doc/src/sgml/sql-createindex.html
? doc/src/sgml/sql-createlanguage.html
? doc/src/sgml/sql-createopclass.html
? doc/src/sgml/sql-createoperator.html
? doc/src/sgml/sql-createopfamily.html
? doc/src/sgml/sql-createrole.html
? doc/src/sgml/sql-createrule.html
? doc/src/sgml/sql-createschema.html
? doc/src/sgml/sql-createsequence.html
? doc/src/sgml/sql-createserver.html
? doc/src/sgml/sql-createtable.html
? doc/src/sgml/sql-createtableas.html
? doc/src/sgml/sql-createtablespace.html
? doc/src/sgml/sql-createtrigger.html
? doc/src/sgml/sql-createtsconfig.html
? doc/src/sgml/sql-createtsdictionary.html
? doc/src/sgml/sql-createtsparser.html
? doc/src/sgml/sql-createtstemplate.html
? doc/src/sgml/sql-createtype.html
? doc/src/sgml/sql-createuser.html
? doc/src/sgml/sql-createusermapping.html
? doc/src/sgml/sql-createview.html
? doc/src/sgml/sql-deallocate.html
? doc/src/sgml/sql-declare.html
? doc/src/sgml/sql-delete.html
? doc/src/sgml/sql-discard.html
? doc/src/sgml/sql-drop-owned.html
? doc/src/sgml/sql-dropaggregate.html
? doc/src/sgml/sql-dropcast.html
? doc/src/sgml/sql-dropconversion.html
? doc/src/sgml/sql-dropdatabase.html
? doc/src/sgml/sql-dropdomain.html
? doc/src/sgml/sql-dropforeigndatawrapper.html
? doc/src/sgml/sql-dropfunction.html
? doc/src/sgml/sql-dropgroup.html
? doc/src/sgml/sql-dropindex.html
? doc/src/sgml/sql-droplanguage.html
? doc/src/sgml/sql-dropopclass.html
? doc/src/sgml/sql-dropoperator.html
? doc/src/sgml/sql-dropopfamily.html
? doc/src/sgml/sql-droprole.html
? doc/src/sgml/sql-droprule.html
? doc/src/sgml/sql-dropschema.html
? doc/src/sgml/sql-dropsequence.html
? doc/src/sgml/sql-dropserver.html
? doc/src/sgml/sql-droptable.html
? doc/src/sgml/sql-droptablespace.html
? doc/src/sgml/sql-droptrigger.html
? doc/src/sgml/sql-droptsconfig.html
? doc/src/sgml/sql-droptsdictionary.html
? doc/src/sgml/sql-droptsparser.html
? doc/src/sgml/sql-droptstemplate.html
? doc/src/sgml/sql-droptype.html
? doc/src/sgml/sql-dropuser.html
? doc/src/sgml/sql-dropusermapping.html
? doc/src/sgml/sql-dropview.html
? doc/src/sgml/sql-end.html
? doc/src/sgml/sql-execute.html
? doc/src/sgml/sql-explain.html
? doc/src/sgml/sql-expressions.html
? doc/src/sgml/sql-fetch.html
? doc/src/sgml/sql-grant.html
? doc/src/sgml/sql-insert.html
? doc/src/sgml/sql-keywords-appendix.html
? doc/src/sgml/sql-listen.html
? doc/src/sgml/sql-load.html
? doc/src/sgml/sql-lock.html
? doc/src/sgml/sql-move.html
? doc/src/sgml/sql-notify.html
? doc/src/sgml/sql-prepare-transaction.html
? doc/src/sgml/sql-prepare.html
? doc/src/sgml/sql-reassign-owned.html
? doc/src/sgml/sql-reindex.html
? doc/src/sgml/sql-release-savepoint.html
? doc/src/sgml/sql-reset.html
? doc/src/sgml/sql-revoke.html
? doc/src/sgml/sql-rollback-prepared.html
? doc/src/sgml/sql-rollback-to.html
? doc/src/sgml/sql-rollback.html
? doc/src/sgml/sql-savepoint.html
? doc/src/sgml/sql-select.html
? doc/src/sgml/sql-selectinto.html
? doc/src/sgml/sql-set-constraints.html
? doc/src/sgml/sql-set-role.html
? doc/src/sgml/sql-set-session-authorization.html
? doc/src/sgml/sql-set-transaction.html
? doc/src/sgml/sql-set.html
? doc/src/sgml/sql-show.html
? doc/src/sgml/sql-start-transaction.html
? doc/src/sgml/sql-syntax-lexical.html
? doc/src/sgml/sql-syntax.html
? doc/src/sgml/sql-truncate.html
? doc/src/sgml/sql-unlisten.html
? doc/src/sgml/sql-update.html
? doc/src/sgml/sql-vacuum.html
? doc/src/sgml/sql-values.html
? doc/src/sgml/sql.html
? doc/src/sgml/ssh-tunnels.html
? doc/src/sgml/ssl-tcp.html
? doc/src/sgml/sslinfo.html
? doc/src/sgml/storage-file-layout.html
? doc/src/sgml/storage-fsm.html
? doc/src/sgml/storage-page-layout.html
? doc/src/sgml/storage-toast.html
? doc/src/sgml/storage.html
? doc/src/sgml/supported-platforms.html
? doc/src/sgml/tablefunc.html
? doc/src/sgml/test-parser.html
? doc/src/sgml/textsearch-configuration.html
? doc/src/sgml/textsearch-controls.html
? doc/src/sgml/textsearch-debugging.html
? doc/src/sgml/textsearch-dictionaries.html
? doc/src/sgml/textsearch-features.html
? doc/src/sgml/textsearch-indexes.html
? doc/src/sgml/textsearch-intro.html
? doc/src/sgml/textsearch-limitations.html
? doc/src/sgml/textsearch-migration.html
? doc/src/sgml/textsearch-parsers.html
? doc/src/sgml/textsearch-psql.html
? doc/src/sgml/textsearch-tables.html
? doc/src/sgml/textsearch.html
? doc/src/sgml/transaction-iso.html
? doc/src/sgml/trigger-datachanges.html
? doc/src/sgml/trigger-definition.html
? doc/src/sgml/trigger-example.html
? doc/src/sgml/trigger-interface.html
? doc/src/sgml/triggers.html
? doc/src/sgml/tsearch2.html
? doc/src/sgml/tutorial-accessdb.html
? doc/src/sgml/tutorial-advanced-intro.html
? doc/src/sgml/tutorial-advanced.html
? doc/src/sgml/tutorial-agg.html
? doc/src/sgml/tutorial-arch.html
? doc/src/sgml/tutorial-concepts.html
? doc/src/sgml/tutorial-conclusion.html
? doc/src/sgml/tutorial-createdb.html
? doc/src/sgml/tutorial-delete.html
? doc/src/sgml/tutorial-fk.html
? doc/src/sgml/tutorial-inheritance.html
? doc/src/sgml/tutorial-install.html
? doc/src/sgml/tutorial-join.html
? doc/src/sgml/tutorial-populate.html
? doc/src/sgml/tutorial-select.html
? doc/src/sgml/tutorial-sql-intro.html
? doc/src/sgml/tutorial-sql.html
? doc/src/sgml/tutorial-start.html
? doc/src/sgml/tutorial-table.html
? doc/src/sgml/tutorial-transactions.html
? doc/src/sgml/tutorial-update.html
? doc/src/sgml/tutorial-views.html
? doc/src/sgml/tutorial-window.html
? doc/src/sgml/tutorial.html
? doc/src/sgml/typeconv-func.html
? doc/src/sgml/typeconv-oper.html
? doc/src/sgml/typeconv-overview.html
? doc/src/sgml/typeconv-query.html
? doc/src/sgml/typeconv-union-case.html
? doc/src/sgml/typeconv.html
? doc/src/sgml/unsupported-features-sql-standard.html
? doc/src/sgml/user-manag.html
? doc/src/sgml/using-explain.html
? doc/src/sgml/uuid-ossp.html
? doc/src/sgml/vacuumlo.html
? doc/src/sgml/version.sgml
? doc/src/sgml/view-pg-cursors.html
? doc/src/sgml/view-pg-group.html
? doc/src/sgml/view-pg-indexes.html
? doc/src/sgml/view-pg-locks.html
? doc/src/sgml/view-pg-prepared-statements.html
? doc/src/sgml/view-pg-prepared-xacts.html
? doc/src/sgml/view-pg-roles.html
? doc/src/sgml/view-pg-rules.html
? doc/src/sgml/view-pg-settings.html
? doc/src/sgml/view-pg-shadow.html
? doc/src/sgml/view-pg-stats.html
? doc/src/sgml/view-pg-tables.html
? doc/src/sgml/view-pg-timezone-abbrevs.html
? doc/src/sgml/view-pg-timezone-names.html
? doc/src/sgml/view-pg-user-mappings.html
? doc/src/sgml/view-pg-user.html
? doc/src/sgml/view-pg-views.html
? doc/src/sgml/views-overview.html
? doc/src/sgml/wal-async-commit.html
? doc/src/sgml/wal-configuration.html
? doc/src/sgml/wal-internals.html
? doc/src/sgml/wal-intro.html
? doc/src/sgml/wal-reliability.html
? doc/src/sgml/wal.html
? doc/src/sgml/warm-standby.html
? doc/src/sgml/xaggr.html
? doc/src/sgml/xfunc-c.html
? doc/src/sgml/xfunc-internal.html
? doc/src/sgml/xfunc-overload.html
? doc/src/sgml/xfunc-pl.html
? doc/src/sgml/xfunc-sql.html
? doc/src/sgml/xfunc-volatility.html
? doc/src/sgml/xfunc.html
? doc/src/sgml/xindex.html
? doc/src/sgml/xml2.html
? doc/src/sgml/xoper-optimization.html
? doc/src/sgml/xoper.html
? doc/src/sgml/xplang-install.html
? doc/src/sgml/xplang.html
? doc/src/sgml/xtypes.html
? src/Makefile.global
? src/backend/postgres
? src/backend/catalog/postgres.bki
? src/backend/catalog/postgres.description
? src/backend/catalog/postgres.shdescription
? src/backend/snowball/snowball_create.sql
? src/backend/utils/probes.h
? src/backend/utils/mb/conversion_procs/conversion_create.sql
? src/bin/initdb/initdb
? src/bin/pg_config/pg_config
? src/bin/pg_controldata/pg_controldata
? src/bin/pg_ctl/pg_ctl
? src/bin/pg_dump/pg_dump
? src/bin/pg_dump/pg_dumpall
? src/bin/pg_dump/pg_restore
? src/bin/pg_resetxlog/pg_resetxlog
? src/bin/psql/psql
? src/bin/scripts/clusterdb
? src/bin/scripts/createdb
? src/bin/scripts/createlang
? src/bin/scripts/createuser
? src/bin/scripts/dropdb
? src/bin/scripts/droplang
? src/bin/scripts/dropuser
? src/bin/scripts/reindexdb
? src/bin/scripts/vacuumdb
? src/include/pg_config.h
? src/include/stamp-h
? src/interfaces/ecpg/compatlib/exports.list
? src/interfaces/ecpg/compatlib/libecpg_compat.so.3.1
? src/interfaces/ecpg/ecpglib/exports.list
? src/interfaces/ecpg/ecpglib/libecpg.so.6.1
? src/interfaces/ecpg/include/ecpg_config.h
? src/interfaces/ecpg/include/stamp-h
? src/interfaces/ecpg/pgtypeslib/exports.list
? src/interfaces/ecpg/pgtypeslib/libpgtypes.so.3.1
? src/interfaces/ecpg/preproc/ecpg
? src/interfaces/libpq/exports.list
? src/interfaces/libpq/libpq.so.5.2
? src/port/pg_config_paths.h
? src/test/regress/pg_regress
? src/test/regress/testtablespace
? src/timezone/zic
Index: contrib/pg_standby/pg_standby.c
===================================================================
RCS file: /projects/cvsroot/pgsql/contrib/pg_standby/pg_standby.c,v
retrieving revision 1.21
diff -c -r1.21 pg_standby.c
*** contrib/pg_standby/pg_standby.c	26 Mar 2009 22:29:13 -0000	1.21
--- contrib/pg_standby/pg_standby.c	8 Apr 2009 01:07:36 -0000
***************
*** 52,58 ****
  int			keepfiles = 0;		/* number of WAL files to keep, 0 keep all */
  int			maxretries = 3;		/* number of retries on restore command */
  bool		debug = false;		/* are we debugging? */
- bool		triggered = false;	/* have we been triggered? */
  bool		need_cleanup = false;		/* do we need to remove files from
  										 * archive? */
  
--- 52,57 ----
***************
*** 69,74 ****
--- 68,99 ----
  char		exclusiveCleanupFileName[MAXPGPATH];		/* the file we need to
  														 * get from archive */
  
+ /*
+  * Two types of failover are supported (smart and fast failover).
+  *
+  * The content of the trigger file determines the type of failover.
+  * If the trigger file containing "smart" exists, smart failover is chosen;
+  * pg_standby acts as cp or ln command itself, and recovery waits to
+  * finish until all the available WAL files are applied. It's
+  * guaranteed that no "available" commit transactions are lost. But
+  * it might take some times before finishing recovery.
+  *
+  * On the other hand, the existence of the trigger file with "fast"
+  * causes recovery to end immediately even if the available WAL files
+  * remain. So, some transactions might be lost.
+  *
+  * An empty trigger file performs smart failover.
+  *
+  * Fast failover is triggered by the signal (SIGUSR1 or SIGINT).
+  *
+  * A timeout causes smart failover.
+  */
+ #define NoFailover		0
+ #define SmartFailover	1
+ #define FastFailover	2
+ 
+ static int Failover = NoFailover;
+ 
  #define RESTORE_COMMAND_COPY 0
  #define RESTORE_COMMAND_LINK 1
  int			restoreCommandType;
***************
*** 108,114 ****
   *
   *	As an example, and probably the common case, we use either
   *	cp/ln commands on *nix, or copy/move command on Windows.
-  *
   */
  static void
  CustomizableInitialize(void)
--- 133,138 ----
***************
*** 357,363 ****
  static bool
  CheckForExternalTrigger(void)
  {
! 	int			rc;
  
  	/*
  	 * Look for a trigger file, if that option has been selected
--- 381,388 ----
  static bool
  CheckForExternalTrigger(void)
  {
! 	char	buf[32];
! 	FILE   *fd;
  
  	/*
  	 * Look for a trigger file, if that option has been selected
***************
*** 365,374 ****
  	 * We use stat() here because triggerPath is always a file rather than
  	 * potentially being in an archive
  	 */
! 	if (triggerPath && stat(triggerPath, &stat_buf) == 0)
  	{
! 		fprintf(stderr, "trigger file found\n");
  		fflush(stderr);
  
  		/*
  		 * If trigger file found, we *must* delete it. Here's why: When
--- 390,439 ----
  	 * We use stat() here because triggerPath is always a file rather than
  	 * potentially being in an archive
  	 */
! 	if (!triggerPath || stat(triggerPath, &stat_buf) != 0)
! 		return false;
! 
! 	/*
! 	 * An empty trigger file performs smart failover
! 	 */
! 	if (stat_buf.st_size == 0)
  	{
! 		Failover = SmartFailover;
! 		fprintf(stderr, "trigger file found: smart failover\n");
  		fflush(stderr);
+ 		return true;
+ 	}
+ 
+ 	if ((fd = fopen(triggerPath, "r")) == NULL)
+ 	{
+ 		fprintf(stderr, "WARNING: could not open \"%s\": %s\n",
+ 				triggerPath, strerror(errno));
+ 		fflush(stderr);
+ 		return false;
+ 	}
+ 	
+ 	if (fgets(buf, sizeof(buf), fd) == NULL)
+ 	{
+ 		fprintf(stderr, "WARNING: could not read \"%s\": %s\n",
+ 				triggerPath, strerror(errno));
+ 		fflush(stderr);
+ 		fclose(fd);
+ 		return false;
+ 	}
+ 	
+ 	fclose(fd);
+ 	
+ 	if (strspn(buf, "smart") == 5 && strncmp(buf, "smart", 5) == 0)
+ 	{
+ 		Failover = SmartFailover;
+ 		fprintf(stderr, "trigger file found: smart failover\n");
+ 		fflush(stderr);
+ 		return true;
+ 	}
+ 	
+ 	if (strspn(buf, "fast") == 4 && strncmp(buf, "fast", 4) == 0)
+ 	{
+ 		int	rc;
  
  		/*
  		 * If trigger file found, we *must* delete it. Here's why: When
***************
*** 379,391 ****
  		rc = unlink(triggerPath);
  		if (rc != 0)
  		{
! 			fprintf(stderr, "\n ERROR: could not remove \"%s\": %s", triggerPath, strerror(errno));
  			fflush(stderr);
  			exit(rc);
  		}
  		return true;
  	}
! 
  	return false;
  }
  
--- 444,464 ----
  		rc = unlink(triggerPath);
  		if (rc != 0)
  		{
! 			fprintf(stderr, "\n ERROR: could not remove \"%s\": %s",
! 					triggerPath, strerror(errno));
  			fflush(stderr);
  			exit(rc);
  		}
+ 		
+ 		Failover = FastFailover;
+ 		fprintf(stderr, "trigger file found: fast failover\n");
+ 		fflush(stderr);
  		return true;
  	}
! 	
! 	fprintf(stderr, "WARNING: invalid content in \"%s\"\n",
! 			triggerPath);
! 	fflush(stderr);
  	return false;
  }
  
***************
*** 552,559 ****
  				break;
  			case 't':			/* Trigger file */
  				triggerPath = optarg;
- 				if (CheckForExternalTrigger())
- 					exit(1);	/* Normal exit, with non-zero */
  				break;
  			case 'w':			/* Max wait time */
  				maxwaittime = atoi(optarg);
--- 625,630 ----
***************
*** 676,697 ****
  	/*
  	 * Main wait loop
  	 */
! 	while (!CustomizableNextWALFileReady() && !triggered)
  	{
  		if (sleeptime <= 60)
  			pg_usleep(sleeptime * 1000000L);
  
  		if (signaled)
  		{
! 			triggered = true;
  			if (debug)
  			{
! 				fprintf(stderr, "\nsignaled to exit\n");
  				fflush(stderr);
  			}
  		}
  		else
  		{
  
  			if (debug)
  			{
--- 747,781 ----
  	/*
  	 * Main wait loop
  	 */
! 	while (!CheckForExternalTrigger() && !CustomizableNextWALFileReady())
  	{
  		if (sleeptime <= 60)
  			pg_usleep(sleeptime * 1000000L);
  
  		if (signaled)
  		{
! 			Failover = FastFailover;
  			if (debug)
  			{
! 				fprintf(stderr, "\nsignaled to exit: fast failover\n");
  				fflush(stderr);
  			}
+ 			break;
  		}
  		else
  		{
+ 			waittime += sleeptime;
+ 			if (waittime >= maxwaittime && maxwaittime > 0)
+ 			{
+ 				Failover = FastFailover;
+ 				if (debug)
+ 				{
+ 					fprintf(stderr, "\nTimed out after %d seconds: fast failover\n",
+ 							waittime);
+ 					fflush(stderr);
+ 				}
+ 				break;
+ 			}
  
  			if (debug)
  			{
***************
*** 700,722 ****
  					fprintf(stderr, " Checking for trigger file...");
  				fflush(stderr);
  			}
- 
- 			waittime += sleeptime;
- 
- 			if (!triggered && (CheckForExternalTrigger() || (waittime >= maxwaittime && maxwaittime > 0)))
- 			{
- 				triggered = true;
- 				if (debug && waittime >= maxwaittime && maxwaittime > 0)
- 					fprintf(stderr, "\nTimed out after %d seconds\n", waittime);
- 			}
  		}
  	}
  
  	/*
  	 * Action on exit
  	 */
! 	if (triggered)
! 		exit(1);				/* Normal exit, with non-zero */
  
  	/*
  	 * Once we have restored this file successfully we can remove some prior
--- 784,797 ----
  					fprintf(stderr, " Checking for trigger file...");
  				fflush(stderr);
  			}
  		}
  	}
  
  	/*
  	 * Action on exit
  	 */
! 	if (Failover == FastFailover)
! 		exit(1);
  
  	/*
  	 * Once we have restored this file successfully we can remove some prior
Index: doc/src/sgml/pgstandby.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/pgstandby.sgml,v
retrieving revision 2.7
diff -c -r2.7 pgstandby.sgml
*** doc/src/sgml/pgstandby.sgml	27 Feb 2009 09:30:21 -0000	2.7
--- doc/src/sgml/pgstandby.sgml	8 Apr 2009 01:07:36 -0000
***************
*** 92,97 ****
--- 92,138 ----
     is specified,
     the <replaceable>archivelocation</> directory must be writable too.
    </para>
+   <para>
+    There are two ways to fail over a <quote>warm standby</> database server.
+    You control the type of failover by creating different trigger files
+    (if <literal>-t</> has been specified).
+ 
+    <variablelist>
+     <varlistentry>
+      <term>Smart Failover</term>
+      <listitem>
+       <para>
+        If the trigger file containing <literal>smart</> exists,
+        <application>pg_standby</application> acts as
+        <literal>cp</> or <literal>ln</> command itself,
+        and recovery waits to finish until all the available
+        WAL files are applied. It's guaranteed that no
+        <emphasis>available</> transactions are lost.
+        But it might take some times before finishing failover.
+       </para>
+       <para>
+        An empty trigger file also smartly performs failover.
+       </para>
+       <para>
+        Note that the trigger file remains even after failover.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>Fast Failover</term>
+      <listitem>
+       <para>
+        The existence of the trigger file containing <literal>fast</>
+        causes recovery to end immediately even if the available
+        WAL files remain. So, some transactions might be lost.
+       </para>
+       <para>
+        Note that the trigger file is removed at failover.
+       </para>
+      </listitem>
+     </varlistentry>
+    </variablelist>
+   </para>
  
    <table>
     <title><application>pg_standby</> options</title>
***************
*** 177,184 ****
        <entry><literal>-t</> <replaceable>triggerfile</></entry>
        <entry>none</entry>
        <entry>
!        Specify a trigger file whose presence should cause recovery to end
!        whether or not the next WAL file is available.
         It is recommended that you use a structured filename to
         avoid confusion as to which server is being triggered
         when multiple servers exist on the same system; for example
--- 218,224 ----
        <entry><literal>-t</> <replaceable>triggerfile</></entry>
        <entry>none</entry>
        <entry>
!        Specify a trigger file whose presence should perform failover.
         It is recommended that you use a structured filename to
         avoid confusion as to which server is being triggered
         when multiple servers exist on the same system; for example
***************
*** 190,196 ****
        <entry>0</entry>
        <entry>
         Set the maximum number of seconds to wait for the next WAL file,
!        after which recovery will end and the standby will come up.
         A setting of zero (the default) means wait forever.
         The default setting is not necessarily recommended;
         consult <xref linkend="warm-standby"> for discussion.
--- 230,237 ----
        <entry>0</entry>
        <entry>
         Set the maximum number of seconds to wait for the next WAL file,
!        after which recovery will end and the standby will come up
!        (Fast Failover).
         A setting of zero (the default) means wait forever.
         The default setting is not necessarily recommended;
         consult <xref linkend="warm-standby"> for discussion.
***************
*** 236,242 ****
     <listitem>
      <para>
       stop waiting only when a trigger file called
!      <filename>/tmp/pgsql.trigger.5442</> appears
      </para>
     </listitem>
     <listitem>
--- 277,284 ----
     <listitem>
      <para>
       stop waiting only when a trigger file called
!      <filename>/tmp/pgsql.trigger.5442</> appears,
!      and perform failover according to its content
      </para>
     </listitem>
     <listitem>
***************
*** 277,283 ****
     <listitem>
      <para>
       stop waiting only when a trigger file called
!      <filename>C:\pgsql.trigger.5442</> appears
      </para>
     </listitem>
     <listitem>
--- 319,326 ----
     <listitem>
      <para>
       stop waiting only when a trigger file called
!      <filename>C:\pgsql.trigger.5442</> appears,
!      and perform failover according to its content
      </para>
     </listitem>
     <listitem>
