Merge ~sergiodj/ubuntu/+source/postgresql-10:update-10.21-bionic into ubuntu/+source/postgresql-10:ubuntu/bionic-devel

Proposed by Sergio Durigan Junior
Status: Merged
Merge reported by: Sergio Durigan Junior
Merged at revision: 70841e8932ad8aefbdc5c9be724a63df9e4c6581
Proposed branch: ~sergiodj/ubuntu/+source/postgresql-10:update-10.21-bionic
Merge into: ubuntu/+source/postgresql-10:ubuntu/bionic-devel
Diff against target: 141389 lines (+40545/-36795)
1555 files modified
.gitrevision (+1/-1)
configure (+24/-21)
configure.in (+5/-2)
contrib/amcheck/expected/check_btree.out (+23/-0)
contrib/amcheck/sql/check_btree.sql (+21/-0)
contrib/amcheck/verify_nbtree.c (+28/-0)
contrib/bloom/t/001_wal.pl (+12/-1)
contrib/cube/cubeparse.c (+362/-490)
contrib/pageinspect/brinfuncs.c (+53/-23)
contrib/pageinspect/btreefuncs.c (+33/-15)
contrib/pageinspect/expected/brin.out (+39/-0)
contrib/pageinspect/expected/btree.out (+37/-2)
contrib/pageinspect/expected/gin.out (+33/-0)
contrib/pageinspect/expected/hash.out (+39/-0)
contrib/pageinspect/expected/page.out (+31/-0)
contrib/pageinspect/fsmfuncs.c (+7/-1)
contrib/pageinspect/ginfuncs.c (+31/-3)
contrib/pageinspect/hashfuncs.c (+11/-6)
contrib/pageinspect/rawpage.c (+5/-25)
contrib/pageinspect/sql/brin.sql (+19/-0)
contrib/pageinspect/sql/btree.sql (+29/-2)
contrib/pageinspect/sql/gin.sql (+20/-0)
contrib/pageinspect/sql/hash.sql (+26/-0)
contrib/pageinspect/sql/page.sql (+15/-0)
contrib/pgcrypto/px.c (+1/-1)
contrib/postgres_fdw/deparse.c (+114/-44)
contrib/postgres_fdw/expected/postgres_fdw.out (+23/-0)
contrib/postgres_fdw/postgres_fdw.c (+30/-28)
contrib/postgres_fdw/postgres_fdw.h (+6/-1)
contrib/postgres_fdw/sql/postgres_fdw.sql (+8/-0)
contrib/seg/segparse.c (+359/-490)
contrib/test_decoding/expected/toast.out (+1/-1)
debian/changelog (+29/-0)
doc/bug.template (+1/-1)
doc/src/sgml/html/acronyms.html (+3/-3)
doc/src/sgml/html/admin.html (+2/-2)
doc/src/sgml/html/adminpack.html (+2/-2)
doc/src/sgml/html/amcheck.html (+2/-2)
doc/src/sgml/html/app-clusterdb.html (+2/-2)
doc/src/sgml/html/app-createdb.html (+2/-2)
doc/src/sgml/html/app-createuser.html (+2/-2)
doc/src/sgml/html/app-dropdb.html (+2/-2)
doc/src/sgml/html/app-dropuser.html (+2/-2)
doc/src/sgml/html/app-ecpg.html (+2/-2)
doc/src/sgml/html/app-initdb.html (+2/-2)
doc/src/sgml/html/app-pg-ctl.html (+2/-2)
doc/src/sgml/html/app-pg-dumpall.html (+2/-2)
doc/src/sgml/html/app-pg-isready.html (+2/-2)
doc/src/sgml/html/app-pgbasebackup.html (+2/-2)
doc/src/sgml/html/app-pgconfig.html (+2/-2)
doc/src/sgml/html/app-pgcontroldata.html (+2/-2)
doc/src/sgml/html/app-pgdump.html (+2/-2)
doc/src/sgml/html/app-pgreceivewal.html (+2/-2)
doc/src/sgml/html/app-pgreceivexlog.html (+3/-3)
doc/src/sgml/html/app-pgrecvlogical.html (+2/-2)
doc/src/sgml/html/app-pgresetwal.html (+2/-2)
doc/src/sgml/html/app-pgresetxlog.html (+3/-3)
doc/src/sgml/html/app-pgrestore.html (+2/-2)
doc/src/sgml/html/app-pgrewind.html (+2/-2)
doc/src/sgml/html/app-postgres.html (+2/-2)
doc/src/sgml/html/app-postmaster.html (+2/-2)
doc/src/sgml/html/app-psql.html (+3/-3)
doc/src/sgml/html/app-reindexdb.html (+2/-2)
doc/src/sgml/html/app-vacuumdb.html (+2/-2)
doc/src/sgml/html/appendix-obsolete.html (+2/-2)
doc/src/sgml/html/appendixes.html (+1/-1)
doc/src/sgml/html/applevel-consistency.html (+2/-2)
doc/src/sgml/html/archive-recovery-settings.html (+2/-2)
doc/src/sgml/html/arrays.html (+2/-2)
doc/src/sgml/html/auth-delay.html (+2/-2)
doc/src/sgml/html/auth-methods.html (+2/-2)
doc/src/sgml/html/auth-pg-hba-conf.html (+2/-2)
doc/src/sgml/html/auth-username-maps.html (+2/-2)
doc/src/sgml/html/auto-explain.html (+2/-2)
doc/src/sgml/html/backup-dump.html (+2/-2)
doc/src/sgml/html/backup-file.html (+2/-2)
doc/src/sgml/html/backup.html (+2/-2)
doc/src/sgml/html/bgworker.html (+2/-2)
doc/src/sgml/html/biblio.html (+2/-2)
doc/src/sgml/html/bki-commands.html (+2/-2)
doc/src/sgml/html/bki-example.html (+2/-2)
doc/src/sgml/html/bki-format.html (+2/-2)
doc/src/sgml/html/bki-structure.html (+2/-2)
doc/src/sgml/html/bki.html (+2/-2)
doc/src/sgml/html/bloom.html (+2/-2)
doc/src/sgml/html/bookindex.html (+6/-6)
doc/src/sgml/html/brin-builtin-opclasses.html (+2/-2)
doc/src/sgml/html/brin-extensibility.html (+2/-2)
doc/src/sgml/html/brin-intro.html (+2/-2)
doc/src/sgml/html/brin.html (+1/-1)
doc/src/sgml/html/btree-gin.html (+2/-2)
doc/src/sgml/html/btree-gist.html (+2/-2)
doc/src/sgml/html/bug-reporting.html (+3/-3)
doc/src/sgml/html/catalog-pg-aggregate.html (+2/-2)
doc/src/sgml/html/catalog-pg-am.html (+2/-2)
doc/src/sgml/html/catalog-pg-amop.html (+2/-2)
doc/src/sgml/html/catalog-pg-amproc.html (+2/-2)
doc/src/sgml/html/catalog-pg-attrdef.html (+2/-2)
doc/src/sgml/html/catalog-pg-attribute.html (+2/-2)
doc/src/sgml/html/catalog-pg-auth-members.html (+2/-2)
doc/src/sgml/html/catalog-pg-authid.html (+2/-2)
doc/src/sgml/html/catalog-pg-cast.html (+2/-2)
doc/src/sgml/html/catalog-pg-class.html (+2/-2)
doc/src/sgml/html/catalog-pg-collation.html (+2/-2)
doc/src/sgml/html/catalog-pg-constraint.html (+2/-2)
doc/src/sgml/html/catalog-pg-conversion.html (+2/-2)
doc/src/sgml/html/catalog-pg-database.html (+2/-2)
doc/src/sgml/html/catalog-pg-db-role-setting.html (+2/-2)
doc/src/sgml/html/catalog-pg-default-acl.html (+2/-2)
doc/src/sgml/html/catalog-pg-depend.html (+2/-2)
doc/src/sgml/html/catalog-pg-description.html (+2/-2)
doc/src/sgml/html/catalog-pg-enum.html (+2/-2)
doc/src/sgml/html/catalog-pg-event-trigger.html (+2/-2)
doc/src/sgml/html/catalog-pg-extension.html (+2/-2)
doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html (+2/-2)
doc/src/sgml/html/catalog-pg-foreign-server.html (+2/-2)
doc/src/sgml/html/catalog-pg-foreign-table.html (+2/-2)
doc/src/sgml/html/catalog-pg-index.html (+2/-2)
doc/src/sgml/html/catalog-pg-inherits.html (+2/-2)
doc/src/sgml/html/catalog-pg-init-privs.html (+2/-2)
doc/src/sgml/html/catalog-pg-language.html (+2/-2)
doc/src/sgml/html/catalog-pg-largeobject-metadata.html (+2/-2)
doc/src/sgml/html/catalog-pg-largeobject.html (+2/-2)
doc/src/sgml/html/catalog-pg-namespace.html (+2/-2)
doc/src/sgml/html/catalog-pg-opclass.html (+2/-2)
doc/src/sgml/html/catalog-pg-operator.html (+2/-2)
doc/src/sgml/html/catalog-pg-opfamily.html (+2/-2)
doc/src/sgml/html/catalog-pg-partitioned-table.html (+2/-2)
doc/src/sgml/html/catalog-pg-pltemplate.html (+2/-2)
doc/src/sgml/html/catalog-pg-policy.html (+2/-2)
doc/src/sgml/html/catalog-pg-proc.html (+2/-2)
doc/src/sgml/html/catalog-pg-publication-rel.html (+2/-2)
doc/src/sgml/html/catalog-pg-publication.html (+2/-2)
doc/src/sgml/html/catalog-pg-range.html (+2/-2)
doc/src/sgml/html/catalog-pg-replication-origin.html (+2/-2)
doc/src/sgml/html/catalog-pg-rewrite.html (+2/-2)
doc/src/sgml/html/catalog-pg-seclabel.html (+2/-2)
doc/src/sgml/html/catalog-pg-sequence.html (+2/-2)
doc/src/sgml/html/catalog-pg-shdepend.html (+2/-2)
doc/src/sgml/html/catalog-pg-shdescription.html (+2/-2)
doc/src/sgml/html/catalog-pg-shseclabel.html (+2/-2)
doc/src/sgml/html/catalog-pg-statistic-ext.html (+2/-2)
doc/src/sgml/html/catalog-pg-statistic.html (+2/-2)
doc/src/sgml/html/catalog-pg-subscription-rel.html (+2/-2)
doc/src/sgml/html/catalog-pg-subscription.html (+2/-2)
doc/src/sgml/html/catalog-pg-tablespace.html (+2/-2)
doc/src/sgml/html/catalog-pg-transform.html (+2/-2)
doc/src/sgml/html/catalog-pg-trigger.html (+2/-2)
doc/src/sgml/html/catalog-pg-ts-config-map.html (+2/-2)
doc/src/sgml/html/catalog-pg-ts-config.html (+2/-2)
doc/src/sgml/html/catalog-pg-ts-dict.html (+2/-2)
doc/src/sgml/html/catalog-pg-ts-parser.html (+2/-2)
doc/src/sgml/html/catalog-pg-ts-template.html (+2/-2)
doc/src/sgml/html/catalog-pg-type.html (+2/-2)
doc/src/sgml/html/catalog-pg-user-mapping.html (+2/-2)
doc/src/sgml/html/catalogs-overview.html (+2/-2)
doc/src/sgml/html/catalogs.html (+2/-2)
doc/src/sgml/html/charset.html (+2/-2)
doc/src/sgml/html/chkpass.html (+2/-2)
doc/src/sgml/html/citext.html (+2/-2)
doc/src/sgml/html/client-authentication-problems.html (+2/-2)
doc/src/sgml/html/client-authentication.html (+2/-2)
doc/src/sgml/html/client-interfaces.html (+2/-2)
doc/src/sgml/html/collation.html (+2/-2)
doc/src/sgml/html/config-setting.html (+2/-2)
doc/src/sgml/html/connect-estab.html (+2/-2)
doc/src/sgml/html/continuous-archiving.html (+2/-2)
doc/src/sgml/html/contrib-dblink-build-sql-delete.html (+2/-2)
doc/src/sgml/html/contrib-dblink-build-sql-insert.html (+2/-2)
doc/src/sgml/html/contrib-dblink-build-sql-update.html (+2/-2)
doc/src/sgml/html/contrib-dblink-cancel-query.html (+2/-2)
doc/src/sgml/html/contrib-dblink-close.html (+2/-2)
doc/src/sgml/html/contrib-dblink-connect-u.html (+2/-2)
doc/src/sgml/html/contrib-dblink-connect.html (+2/-2)
doc/src/sgml/html/contrib-dblink-disconnect.html (+2/-2)
doc/src/sgml/html/contrib-dblink-error-message.html (+2/-2)
doc/src/sgml/html/contrib-dblink-exec.html (+2/-2)
doc/src/sgml/html/contrib-dblink-fetch.html (+2/-2)
doc/src/sgml/html/contrib-dblink-function.html (+2/-2)
doc/src/sgml/html/contrib-dblink-get-connections.html (+2/-2)
doc/src/sgml/html/contrib-dblink-get-notify.html (+2/-2)
doc/src/sgml/html/contrib-dblink-get-pkey.html (+2/-2)
doc/src/sgml/html/contrib-dblink-get-result.html (+2/-2)
doc/src/sgml/html/contrib-dblink-is-busy.html (+2/-2)
doc/src/sgml/html/contrib-dblink-open.html (+2/-2)
doc/src/sgml/html/contrib-dblink-send-query.html (+2/-2)
doc/src/sgml/html/contrib-prog-client.html (+2/-2)
doc/src/sgml/html/contrib-prog-server.html (+2/-2)
doc/src/sgml/html/contrib-prog.html (+2/-2)
doc/src/sgml/html/contrib-spi.html (+2/-2)
doc/src/sgml/html/contrib.html (+2/-2)
doc/src/sgml/html/creating-cluster.html (+2/-2)
doc/src/sgml/html/cube.html (+2/-2)
doc/src/sgml/html/custom-scan-execution.html (+2/-2)
doc/src/sgml/html/custom-scan-path.html (+2/-2)
doc/src/sgml/html/custom-scan-plan.html (+2/-2)
doc/src/sgml/html/custom-scan.html (+2/-2)
doc/src/sgml/html/database-roles.html (+2/-2)
doc/src/sgml/html/datatype-binary.html (+2/-2)
doc/src/sgml/html/datatype-bit.html (+2/-2)
doc/src/sgml/html/datatype-boolean.html (+2/-2)
doc/src/sgml/html/datatype-character.html (+2/-2)
doc/src/sgml/html/datatype-datetime.html (+2/-2)
doc/src/sgml/html/datatype-enum.html (+2/-2)
doc/src/sgml/html/datatype-geometric.html (+2/-2)
doc/src/sgml/html/datatype-json.html (+2/-2)
doc/src/sgml/html/datatype-money.html (+2/-2)
doc/src/sgml/html/datatype-net-types.html (+2/-2)
doc/src/sgml/html/datatype-numeric.html (+2/-2)
doc/src/sgml/html/datatype-oid.html (+2/-2)
doc/src/sgml/html/datatype-pg-lsn.html (+2/-2)
doc/src/sgml/html/datatype-pseudo.html (+2/-2)
doc/src/sgml/html/datatype-textsearch.html (+2/-2)
doc/src/sgml/html/datatype-uuid.html (+2/-2)
doc/src/sgml/html/datatype-xml.html (+2/-2)
doc/src/sgml/html/datatype.html (+2/-2)
doc/src/sgml/html/datetime-appendix.html (+2/-2)
doc/src/sgml/html/datetime-config-files.html (+2/-2)
doc/src/sgml/html/datetime-input-rules.html (+2/-2)
doc/src/sgml/html/datetime-invalid-input.html (+2/-2)
doc/src/sgml/html/datetime-julian-dates.html (+2/-2)
doc/src/sgml/html/datetime-keywords.html (+2/-2)
doc/src/sgml/html/datetime-posix-timezone-specs.html (+2/-2)
doc/src/sgml/html/datetime-units-history.html (+2/-2)
doc/src/sgml/html/dblink.html (+2/-2)
doc/src/sgml/html/ddl-alter.html (+2/-2)
doc/src/sgml/html/ddl-basics.html (+2/-2)
doc/src/sgml/html/ddl-constraints.html (+2/-2)
doc/src/sgml/html/ddl-default.html (+2/-2)
doc/src/sgml/html/ddl-depend.html (+2/-2)
doc/src/sgml/html/ddl-foreign-data.html (+2/-2)
doc/src/sgml/html/ddl-inherit.html (+2/-2)
doc/src/sgml/html/ddl-others.html (+2/-2)
doc/src/sgml/html/ddl-partitioning.html (+2/-2)
doc/src/sgml/html/ddl-priv.html (+2/-2)
doc/src/sgml/html/ddl-rowsecurity.html (+2/-2)
doc/src/sgml/html/ddl-schemas.html (+2/-2)
doc/src/sgml/html/ddl-system-columns.html (+2/-2)
doc/src/sgml/html/ddl.html (+2/-2)
doc/src/sgml/html/default-roles.html (+2/-2)
doc/src/sgml/html/dict-int.html (+2/-2)
doc/src/sgml/html/dict-xsyn.html (+2/-2)
doc/src/sgml/html/different-replication-solutions.html (+2/-2)
doc/src/sgml/html/disk-full.html (+2/-2)
doc/src/sgml/html/disk-usage.html (+2/-2)
doc/src/sgml/html/diskusage.html (+2/-2)
doc/src/sgml/html/dml-delete.html (+2/-2)
doc/src/sgml/html/dml-insert.html (+2/-2)
doc/src/sgml/html/dml-returning.html (+2/-2)
doc/src/sgml/html/dml-update.html (+2/-2)
doc/src/sgml/html/dml.html (+2/-2)
doc/src/sgml/html/docguide-authoring.html (+2/-2)
doc/src/sgml/html/docguide-build.html (+2/-2)
doc/src/sgml/html/docguide-docbook.html (+2/-2)
doc/src/sgml/html/docguide-style.html (+2/-2)
doc/src/sgml/html/docguide-toolsets.html (+2/-2)
doc/src/sgml/html/docguide.html (+2/-2)
doc/src/sgml/html/dynamic-trace.html (+2/-2)
doc/src/sgml/html/earthdistance.html (+2/-2)
doc/src/sgml/html/ecpg-commands.html (+2/-2)
doc/src/sgml/html/ecpg-concept.html (+2/-2)
doc/src/sgml/html/ecpg-connect.html (+2/-2)
doc/src/sgml/html/ecpg-cpp.html (+2/-2)
doc/src/sgml/html/ecpg-descriptors.html (+2/-2)
doc/src/sgml/html/ecpg-develop.html (+2/-2)
doc/src/sgml/html/ecpg-dynamic.html (+2/-2)
doc/src/sgml/html/ecpg-errors.html (+2/-2)
doc/src/sgml/html/ecpg-informix-compat.html (+2/-2)
doc/src/sgml/html/ecpg-library.html (+2/-2)
doc/src/sgml/html/ecpg-lo.html (+2/-2)
doc/src/sgml/html/ecpg-pgtypes.html (+2/-2)
doc/src/sgml/html/ecpg-preproc.html (+2/-2)
doc/src/sgml/html/ecpg-process.html (+2/-2)
doc/src/sgml/html/ecpg-sql-allocate-descriptor.html (+2/-2)
doc/src/sgml/html/ecpg-sql-commands.html (+2/-2)
doc/src/sgml/html/ecpg-sql-connect.html (+2/-2)
doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html (+2/-2)
doc/src/sgml/html/ecpg-sql-declare.html (+2/-2)
doc/src/sgml/html/ecpg-sql-describe.html (+2/-2)
doc/src/sgml/html/ecpg-sql-disconnect.html (+2/-2)
doc/src/sgml/html/ecpg-sql-execute-immediate.html (+2/-2)
doc/src/sgml/html/ecpg-sql-get-descriptor.html (+2/-2)
doc/src/sgml/html/ecpg-sql-open.html (+2/-2)
doc/src/sgml/html/ecpg-sql-prepare.html (+2/-2)
doc/src/sgml/html/ecpg-sql-set-autocommit.html (+2/-2)
doc/src/sgml/html/ecpg-sql-set-connection.html (+2/-2)
doc/src/sgml/html/ecpg-sql-set-descriptor.html (+2/-2)
doc/src/sgml/html/ecpg-sql-type.html (+2/-2)
doc/src/sgml/html/ecpg-sql-var.html (+2/-2)
doc/src/sgml/html/ecpg-sql-whenever.html (+2/-2)
doc/src/sgml/html/ecpg-variables.html (+2/-2)
doc/src/sgml/html/ecpg.html (+2/-2)
doc/src/sgml/html/encryption-options.html (+2/-2)
doc/src/sgml/html/errcodes-appendix.html (+3/-3)
doc/src/sgml/html/error-message-reporting.html (+2/-2)
doc/src/sgml/html/error-style-guide.html (+2/-2)
doc/src/sgml/html/event-log-registration.html (+2/-2)
doc/src/sgml/html/event-trigger-definition.html (+2/-2)
doc/src/sgml/html/event-trigger-example.html (+2/-2)
doc/src/sgml/html/event-trigger-interface.html (+2/-2)
doc/src/sgml/html/event-trigger-matrix.html (+2/-2)
doc/src/sgml/html/event-trigger-table-rewrite-example.html (+2/-2)
doc/src/sgml/html/event-triggers.html (+2/-2)
doc/src/sgml/html/executor.html (+2/-2)
doc/src/sgml/html/explicit-joins.html (+2/-2)
doc/src/sgml/html/explicit-locking.html (+2/-2)
doc/src/sgml/html/extend-extensions.html (+2/-2)
doc/src/sgml/html/extend-how.html (+2/-2)
doc/src/sgml/html/extend-pgxs.html (+2/-2)
doc/src/sgml/html/extend-type-system.html (+2/-2)
doc/src/sgml/html/extend.html (+2/-2)
doc/src/sgml/html/external-admin-tools.html (+2/-2)
doc/src/sgml/html/external-extensions.html (+2/-2)
doc/src/sgml/html/external-interfaces.html (+2/-2)
doc/src/sgml/html/external-pl.html (+2/-2)
doc/src/sgml/html/external-projects.html (+2/-2)
doc/src/sgml/html/fdw-callbacks.html (+2/-2)
doc/src/sgml/html/fdw-functions.html (+2/-2)
doc/src/sgml/html/fdw-helpers.html (+2/-2)
doc/src/sgml/html/fdw-planning.html (+2/-2)
doc/src/sgml/html/fdw-row-locking.html (+2/-2)
doc/src/sgml/html/fdwhandler.html (+2/-2)
doc/src/sgml/html/features-sql-standard.html (+2/-2)
doc/src/sgml/html/features.html (+2/-2)
doc/src/sgml/html/file-fdw.html (+2/-2)
doc/src/sgml/html/functions-admin.html (+2/-2)
doc/src/sgml/html/functions-aggregate.html (+2/-2)
doc/src/sgml/html/functions-array.html (+2/-2)
doc/src/sgml/html/functions-binarystring.html (+2/-2)
doc/src/sgml/html/functions-bitstring.html (+2/-2)
doc/src/sgml/html/functions-comparison.html (+2/-2)
doc/src/sgml/html/functions-comparisons.html (+2/-2)
doc/src/sgml/html/functions-conditional.html (+2/-2)
doc/src/sgml/html/functions-datetime.html (+2/-2)
doc/src/sgml/html/functions-enum.html (+2/-2)
doc/src/sgml/html/functions-event-triggers.html (+2/-2)
doc/src/sgml/html/functions-formatting.html (+2/-2)
doc/src/sgml/html/functions-geometry.html (+2/-2)
doc/src/sgml/html/functions-info.html (+2/-2)
doc/src/sgml/html/functions-json.html (+2/-2)
doc/src/sgml/html/functions-logical.html (+2/-2)
doc/src/sgml/html/functions-matching.html (+2/-2)
doc/src/sgml/html/functions-math.html (+2/-2)
doc/src/sgml/html/functions-net.html (+2/-2)
doc/src/sgml/html/functions-range.html (+2/-2)
doc/src/sgml/html/functions-sequence.html (+2/-2)
doc/src/sgml/html/functions-srf.html (+2/-2)
doc/src/sgml/html/functions-string.html (+2/-2)
doc/src/sgml/html/functions-subquery.html (+2/-2)
doc/src/sgml/html/functions-textsearch.html (+2/-2)
doc/src/sgml/html/functions-trigger.html (+2/-2)
doc/src/sgml/html/functions-window.html (+2/-2)
doc/src/sgml/html/functions-xml.html (+2/-2)
doc/src/sgml/html/functions.html (+2/-2)
doc/src/sgml/html/fuzzystrmatch.html (+2/-2)
doc/src/sgml/html/generic-wal.html (+2/-2)
doc/src/sgml/html/geqo-biblio.html (+2/-2)
doc/src/sgml/html/geqo-intro.html (+2/-2)
doc/src/sgml/html/geqo-intro2.html (+2/-2)
doc/src/sgml/html/geqo-pg-intro.html (+2/-2)
doc/src/sgml/html/geqo.html (+2/-2)
doc/src/sgml/html/gin-builtin-opclasses.html (+2/-2)
doc/src/sgml/html/gin-examples.html (+2/-2)
doc/src/sgml/html/gin-extensibility.html (+2/-2)
doc/src/sgml/html/gin-implementation.html (+2/-2)
doc/src/sgml/html/gin-intro.html (+2/-2)
doc/src/sgml/html/gin-limit.html (+2/-2)
doc/src/sgml/html/gin-tips.html (+2/-2)
doc/src/sgml/html/gin.html (+1/-1)
doc/src/sgml/html/gist-builtin-opclasses.html (+2/-2)
doc/src/sgml/html/gist-examples.html (+2/-2)
doc/src/sgml/html/gist-extensibility.html (+2/-2)
doc/src/sgml/html/gist-implementation.html (+2/-2)
doc/src/sgml/html/gist-intro.html (+2/-2)
doc/src/sgml/html/gist.html (+1/-1)
doc/src/sgml/html/git.html (+2/-2)
doc/src/sgml/html/hash-implementation.html (+2/-2)
doc/src/sgml/html/hash-index.html (+1/-1)
doc/src/sgml/html/hash-intro.html (+2/-2)
doc/src/sgml/html/high-availability.html (+2/-2)
doc/src/sgml/html/history.html (+2/-2)
doc/src/sgml/html/hot-standby.html (+2/-2)
doc/src/sgml/html/how-parallel-query-works.html (+2/-2)
doc/src/sgml/html/hstore.html (+2/-2)
doc/src/sgml/html/index-api.html (+2/-2)
doc/src/sgml/html/index-cost-estimation.html (+2/-2)
doc/src/sgml/html/index-functions.html (+2/-2)
doc/src/sgml/html/index-locking.html (+2/-2)
doc/src/sgml/html/index-scanning.html (+2/-2)
doc/src/sgml/html/index-unique-checks.html (+2/-2)
doc/src/sgml/html/index.html (+1/-1)
doc/src/sgml/html/indexam.html (+2/-2)
doc/src/sgml/html/indexes-bitmap-scans.html (+2/-2)
doc/src/sgml/html/indexes-collations.html (+2/-2)
doc/src/sgml/html/indexes-examine.html (+2/-2)
doc/src/sgml/html/indexes-expressional.html (+2/-2)
doc/src/sgml/html/indexes-index-only-scans.html (+2/-2)
doc/src/sgml/html/indexes-intro.html (+2/-2)
doc/src/sgml/html/indexes-multicolumn.html (+2/-2)
doc/src/sgml/html/indexes-opclass.html (+2/-2)
doc/src/sgml/html/indexes-ordering.html (+2/-2)
doc/src/sgml/html/indexes-partial.html (+2/-2)
doc/src/sgml/html/indexes-types.html (+2/-2)
doc/src/sgml/html/indexes-unique.html (+2/-2)
doc/src/sgml/html/indexes.html (+2/-2)
doc/src/sgml/html/information-schema.html (+2/-2)
doc/src/sgml/html/infoschema-administrable-role-authorizations.html (+2/-2)
doc/src/sgml/html/infoschema-applicable-roles.html (+2/-2)
doc/src/sgml/html/infoschema-attributes.html (+2/-2)
doc/src/sgml/html/infoschema-character-sets.html (+2/-2)
doc/src/sgml/html/infoschema-check-constraint-routine-usage.html (+2/-2)
doc/src/sgml/html/infoschema-check-constraints.html (+2/-2)
doc/src/sgml/html/infoschema-collation-character-set-applicab.html (+2/-2)
doc/src/sgml/html/infoschema-collations.html (+2/-2)
doc/src/sgml/html/infoschema-column-domain-usage.html (+2/-2)
doc/src/sgml/html/infoschema-column-options.html (+2/-2)
doc/src/sgml/html/infoschema-column-privileges.html (+2/-2)
doc/src/sgml/html/infoschema-column-udt-usage.html (+2/-2)
doc/src/sgml/html/infoschema-columns.html (+2/-2)
doc/src/sgml/html/infoschema-constraint-column-usage.html (+2/-2)
doc/src/sgml/html/infoschema-constraint-table-usage.html (+2/-2)
doc/src/sgml/html/infoschema-data-type-privileges.html (+2/-2)
doc/src/sgml/html/infoschema-datatypes.html (+2/-2)
doc/src/sgml/html/infoschema-domain-constraints.html (+2/-2)
doc/src/sgml/html/infoschema-domain-udt-usage.html (+2/-2)
doc/src/sgml/html/infoschema-domains.html (+2/-2)
doc/src/sgml/html/infoschema-element-types.html (+2/-2)
doc/src/sgml/html/infoschema-enabled-roles.html (+2/-2)
doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html (+2/-2)
doc/src/sgml/html/infoschema-foreign-data-wrappers.html (+2/-2)
doc/src/sgml/html/infoschema-foreign-server-options.html (+2/-2)
doc/src/sgml/html/infoschema-foreign-servers.html (+2/-2)
doc/src/sgml/html/infoschema-foreign-table-options.html (+2/-2)
doc/src/sgml/html/infoschema-foreign-tables.html (+2/-2)
doc/src/sgml/html/infoschema-information-schema-catalog-name.html (+2/-2)
doc/src/sgml/html/infoschema-key-column-usage.html (+2/-2)
doc/src/sgml/html/infoschema-parameters.html (+2/-2)
doc/src/sgml/html/infoschema-referential-constraints.html (+2/-2)
doc/src/sgml/html/infoschema-role-column-grants.html (+2/-2)
doc/src/sgml/html/infoschema-role-routine-grants.html (+2/-2)
doc/src/sgml/html/infoschema-role-table-grants.html (+2/-2)
doc/src/sgml/html/infoschema-role-udt-grants.html (+2/-2)
doc/src/sgml/html/infoschema-role-usage-grants.html (+2/-2)
doc/src/sgml/html/infoschema-routine-privileges.html (+2/-2)
doc/src/sgml/html/infoschema-routines.html (+2/-2)
doc/src/sgml/html/infoschema-schema.html (+2/-2)
doc/src/sgml/html/infoschema-schemata.html (+2/-2)
doc/src/sgml/html/infoschema-sequences.html (+2/-2)
doc/src/sgml/html/infoschema-sql-features.html (+2/-2)
doc/src/sgml/html/infoschema-sql-implementation-info.html (+2/-2)
doc/src/sgml/html/infoschema-sql-languages.html (+2/-2)
doc/src/sgml/html/infoschema-sql-packages.html (+2/-2)
doc/src/sgml/html/infoschema-sql-parts.html (+2/-2)
doc/src/sgml/html/infoschema-sql-sizing-profiles.html (+2/-2)
doc/src/sgml/html/infoschema-sql-sizing.html (+2/-2)
doc/src/sgml/html/infoschema-table-constraints.html (+2/-2)
doc/src/sgml/html/infoschema-table-privileges.html (+2/-2)
doc/src/sgml/html/infoschema-tables.html (+2/-2)
doc/src/sgml/html/infoschema-transforms.html (+2/-2)
doc/src/sgml/html/infoschema-triggered-update-columns.html (+2/-2)
doc/src/sgml/html/infoschema-triggers.html (+2/-2)
doc/src/sgml/html/infoschema-udt-privileges.html (+2/-2)
doc/src/sgml/html/infoschema-usage-privileges.html (+2/-2)
doc/src/sgml/html/infoschema-user-defined-types.html (+2/-2)
doc/src/sgml/html/infoschema-user-mapping-options.html (+2/-2)
doc/src/sgml/html/infoschema-user-mappings.html (+2/-2)
doc/src/sgml/html/infoschema-view-column-usage.html (+2/-2)
doc/src/sgml/html/infoschema-view-routine-usage.html (+2/-2)
doc/src/sgml/html/infoschema-view-table-usage.html (+2/-2)
doc/src/sgml/html/infoschema-views.html (+2/-2)
doc/src/sgml/html/install-getsource.html (+7/-7)
doc/src/sgml/html/install-post.html (+2/-2)
doc/src/sgml/html/install-procedure.html (+2/-2)
doc/src/sgml/html/install-requirements.html (+2/-2)
doc/src/sgml/html/install-short.html (+2/-2)
doc/src/sgml/html/install-windows-full.html (+3/-3)
doc/src/sgml/html/install-windows.html (+2/-2)
doc/src/sgml/html/installation-platform-notes.html (+2/-2)
doc/src/sgml/html/installation.html (+2/-2)
doc/src/sgml/html/intagg.html (+2/-2)
doc/src/sgml/html/intarray.html (+2/-2)
doc/src/sgml/html/internals.html (+2/-2)
doc/src/sgml/html/intro-whatis.html (+2/-2)
doc/src/sgml/html/isn.html (+2/-2)
doc/src/sgml/html/kernel-resources.html (+2/-2)
doc/src/sgml/html/largeobjects.html (+2/-2)
doc/src/sgml/html/legalnotice.html (+1/-1)
doc/src/sgml/html/libpq-async.html (+2/-2)
doc/src/sgml/html/libpq-build.html (+2/-2)
doc/src/sgml/html/libpq-cancel.html (+2/-2)
doc/src/sgml/html/libpq-connect.html (+2/-2)
doc/src/sgml/html/libpq-control.html (+2/-2)
doc/src/sgml/html/libpq-copy.html (+2/-2)
doc/src/sgml/html/libpq-envars.html (+2/-2)
doc/src/sgml/html/libpq-events.html (+2/-2)
doc/src/sgml/html/libpq-example.html (+2/-2)
doc/src/sgml/html/libpq-exec.html (+2/-2)
doc/src/sgml/html/libpq-fastpath.html (+2/-2)
doc/src/sgml/html/libpq-ldap.html (+2/-2)
doc/src/sgml/html/libpq-misc.html (+2/-2)
doc/src/sgml/html/libpq-notice-processing.html (+2/-2)
doc/src/sgml/html/libpq-notify.html (+2/-2)
doc/src/sgml/html/libpq-pgpass.html (+2/-2)
doc/src/sgml/html/libpq-pgservice.html (+2/-2)
doc/src/sgml/html/libpq-single-row-mode.html (+2/-2)
doc/src/sgml/html/libpq-ssl.html (+18/-9)
doc/src/sgml/html/libpq-status.html (+2/-2)
doc/src/sgml/html/libpq-threading.html (+2/-2)
doc/src/sgml/html/libpq.html (+2/-2)
doc/src/sgml/html/lo-examplesect.html (+2/-2)
doc/src/sgml/html/lo-funcs.html (+2/-2)
doc/src/sgml/html/lo-implementation.html (+2/-2)
doc/src/sgml/html/lo-interfaces.html (+2/-2)
doc/src/sgml/html/lo-intro.html (+2/-2)
doc/src/sgml/html/lo.html (+2/-2)
doc/src/sgml/html/locale.html (+2/-2)
doc/src/sgml/html/locking-indexes.html (+2/-2)
doc/src/sgml/html/log-shipping-alternative.html (+2/-2)
doc/src/sgml/html/logfile-maintenance.html (+2/-2)
doc/src/sgml/html/logical-replication-architecture.html (+2/-2)
doc/src/sgml/html/logical-replication-config.html (+2/-2)
doc/src/sgml/html/logical-replication-conflicts.html (+2/-2)
doc/src/sgml/html/logical-replication-monitoring.html (+2/-2)
doc/src/sgml/html/logical-replication-publication.html (+2/-2)
doc/src/sgml/html/logical-replication-quick-setup.html (+2/-2)
doc/src/sgml/html/logical-replication-restrictions.html (+2/-2)
doc/src/sgml/html/logical-replication-security.html (+2/-2)
doc/src/sgml/html/logical-replication-subscription.html (+2/-2)
doc/src/sgml/html/logical-replication.html (+2/-2)
doc/src/sgml/html/logicaldecoding-catalogs.html (+2/-2)
doc/src/sgml/html/logicaldecoding-example.html (+2/-2)
doc/src/sgml/html/logicaldecoding-explanation.html (+2/-2)
doc/src/sgml/html/logicaldecoding-output-plugin.html (+2/-2)
doc/src/sgml/html/logicaldecoding-sql.html (+2/-2)
doc/src/sgml/html/logicaldecoding-synchronous.html (+2/-2)
doc/src/sgml/html/logicaldecoding-walsender.html (+2/-2)
doc/src/sgml/html/logicaldecoding-writer.html (+2/-2)
doc/src/sgml/html/logicaldecoding.html (+2/-2)
doc/src/sgml/html/ltree.html (+2/-2)
doc/src/sgml/html/maintenance.html (+2/-2)
doc/src/sgml/html/manage-ag-config.html (+2/-2)
doc/src/sgml/html/manage-ag-createdb.html (+2/-2)
doc/src/sgml/html/manage-ag-dropdb.html (+2/-2)
doc/src/sgml/html/manage-ag-overview.html (+2/-2)
doc/src/sgml/html/manage-ag-tablespaces.html (+2/-2)
doc/src/sgml/html/manage-ag-templatedbs.html (+2/-2)
doc/src/sgml/html/managing-databases.html (+2/-2)
doc/src/sgml/html/monitoring-locks.html (+2/-2)
doc/src/sgml/html/monitoring-ps.html (+2/-2)
doc/src/sgml/html/monitoring-stats.html (+2/-2)
doc/src/sgml/html/monitoring.html (+2/-2)
doc/src/sgml/html/multibyte.html (+2/-2)
doc/src/sgml/html/multivariate-statistics-examples.html (+2/-2)
doc/src/sgml/html/mvcc-caveats.html (+2/-2)
doc/src/sgml/html/mvcc-intro.html (+2/-2)
doc/src/sgml/html/mvcc.html (+2/-2)
doc/src/sgml/html/nls-programmer.html (+2/-2)
doc/src/sgml/html/nls-translator.html (+2/-2)
doc/src/sgml/html/nls.html (+1/-1)
doc/src/sgml/html/non-durability.html (+2/-2)
doc/src/sgml/html/notation.html (+2/-2)
doc/src/sgml/html/oid2name.html (+2/-2)
doc/src/sgml/html/overview.html (+2/-2)
doc/src/sgml/html/pageinspect.html (+2/-2)
doc/src/sgml/html/parallel-plans.html (+2/-2)
doc/src/sgml/html/parallel-query.html (+2/-2)
doc/src/sgml/html/parallel-safety.html (+2/-2)
doc/src/sgml/html/parser-stage.html (+2/-2)
doc/src/sgml/html/passwordcheck.html (+2/-2)
doc/src/sgml/html/performance-tips.html (+2/-2)
doc/src/sgml/html/perm-functions.html (+2/-2)
doc/src/sgml/html/pgarchivecleanup.html (+2/-2)
doc/src/sgml/html/pgbench.html (+2/-2)
doc/src/sgml/html/pgbuffercache.html (+2/-2)
doc/src/sgml/html/pgcrypto.html (+2/-2)
doc/src/sgml/html/pgfreespacemap.html (+2/-2)
doc/src/sgml/html/pgprewarm.html (+2/-2)
doc/src/sgml/html/pgrowlocks.html (+2/-2)
doc/src/sgml/html/pgstandby.html (+2/-2)
doc/src/sgml/html/pgstatstatements.html (+2/-2)
doc/src/sgml/html/pgstattuple.html (+2/-2)
doc/src/sgml/html/pgtestfsync.html (+2/-2)
doc/src/sgml/html/pgtesttiming.html (+2/-2)
doc/src/sgml/html/pgtrgm.html (+2/-2)
doc/src/sgml/html/pgupgrade.html (+2/-2)
doc/src/sgml/html/pgvisibility.html (+2/-2)
doc/src/sgml/html/pgwaldump.html (+2/-2)
doc/src/sgml/html/pgxlogdump.html (+3/-3)
doc/src/sgml/html/planner-optimizer.html (+2/-2)
doc/src/sgml/html/planner-stats-details.html (+2/-2)
doc/src/sgml/html/planner-stats-security.html (+2/-2)
doc/src/sgml/html/planner-stats.html (+2/-2)
doc/src/sgml/html/plhandler.html (+2/-2)
doc/src/sgml/html/plperl-builtins.html (+2/-2)
doc/src/sgml/html/plperl-data.html (+2/-2)
doc/src/sgml/html/plperl-event-triggers.html (+2/-2)
doc/src/sgml/html/plperl-funcs.html (+2/-2)
doc/src/sgml/html/plperl-global.html (+2/-2)
doc/src/sgml/html/plperl-triggers.html (+2/-2)
doc/src/sgml/html/plperl-trusted.html (+2/-2)
doc/src/sgml/html/plperl-under-the-hood.html (+2/-2)
doc/src/sgml/html/plperl.html (+2/-2)
doc/src/sgml/html/plpgsql-control-structures.html (+2/-2)
doc/src/sgml/html/plpgsql-cursors.html (+2/-2)
doc/src/sgml/html/plpgsql-declarations.html (+2/-2)
doc/src/sgml/html/plpgsql-development-tips.html (+2/-2)
doc/src/sgml/html/plpgsql-errors-and-messages.html (+2/-2)
doc/src/sgml/html/plpgsql-expressions.html (+2/-2)
doc/src/sgml/html/plpgsql-implementation.html (+2/-2)
doc/src/sgml/html/plpgsql-overview.html (+2/-2)
doc/src/sgml/html/plpgsql-porting.html (+2/-2)
doc/src/sgml/html/plpgsql-statements.html (+2/-2)
doc/src/sgml/html/plpgsql-structure.html (+2/-2)
doc/src/sgml/html/plpgsql-trigger.html (+2/-2)
doc/src/sgml/html/plpgsql.html (+1/-1)
doc/src/sgml/html/plpython-data.html (+2/-2)
doc/src/sgml/html/plpython-database.html (+2/-2)
doc/src/sgml/html/plpython-do.html (+2/-2)
doc/src/sgml/html/plpython-envar.html (+2/-2)
doc/src/sgml/html/plpython-funcs.html (+2/-2)
doc/src/sgml/html/plpython-python23.html (+2/-2)
doc/src/sgml/html/plpython-sharing.html (+2/-2)
doc/src/sgml/html/plpython-subtransaction.html (+2/-2)
doc/src/sgml/html/plpython-trigger.html (+2/-2)
doc/src/sgml/html/plpython-util.html (+2/-2)
doc/src/sgml/html/plpython.html (+2/-2)
doc/src/sgml/html/pltcl-config.html (+2/-2)
doc/src/sgml/html/pltcl-data.html (+2/-2)
doc/src/sgml/html/pltcl-dbaccess.html (+2/-2)
doc/src/sgml/html/pltcl-error-handling.html (+2/-2)
doc/src/sgml/html/pltcl-event-trigger.html (+2/-2)
doc/src/sgml/html/pltcl-functions.html (+2/-2)
doc/src/sgml/html/pltcl-global.html (+2/-2)
doc/src/sgml/html/pltcl-overview.html (+2/-2)
doc/src/sgml/html/pltcl-procnames.html (+2/-2)
doc/src/sgml/html/pltcl-subtransactions.html (+2/-2)
doc/src/sgml/html/pltcl-trigger.html (+2/-2)
doc/src/sgml/html/pltcl.html (+2/-2)
doc/src/sgml/html/populate.html (+2/-2)
doc/src/sgml/html/postgres-fdw.html (+2/-2)
doc/src/sgml/html/postgres-user.html (+2/-2)
doc/src/sgml/html/preface.html (+2/-2)
doc/src/sgml/html/preventing-server-spoofing.html (+2/-2)
doc/src/sgml/html/progress-reporting.html (+2/-2)
doc/src/sgml/html/protocol-changes.html (+2/-2)
doc/src/sgml/html/protocol-error-fields.html (+2/-2)
doc/src/sgml/html/protocol-flow.html (+2/-2)
doc/src/sgml/html/protocol-logical-replication.html (+2/-2)
doc/src/sgml/html/protocol-logicalrep-message-formats.html (+2/-2)
doc/src/sgml/html/protocol-message-formats.html (+2/-2)
doc/src/sgml/html/protocol-message-types.html (+2/-2)
doc/src/sgml/html/protocol-overview.html (+2/-2)
doc/src/sgml/html/protocol-replication.html (+2/-2)
doc/src/sgml/html/protocol.html (+2/-2)
doc/src/sgml/html/queries-limit.html (+2/-2)
doc/src/sgml/html/queries-order.html (+2/-2)
doc/src/sgml/html/queries-overview.html (+2/-2)
doc/src/sgml/html/queries-select-lists.html (+2/-2)
doc/src/sgml/html/queries-table-expressions.html (+2/-2)
doc/src/sgml/html/queries-union.html (+2/-2)
doc/src/sgml/html/queries-values.html (+2/-2)
doc/src/sgml/html/queries-with.html (+2/-2)
doc/src/sgml/html/queries.html (+2/-2)
doc/src/sgml/html/query-path.html (+2/-2)
doc/src/sgml/html/querytree.html (+2/-2)
doc/src/sgml/html/rangetypes.html (+2/-2)
doc/src/sgml/html/recovery-config.html (+2/-2)
doc/src/sgml/html/recovery-target-settings.html (+2/-2)
doc/src/sgml/html/reference-client.html (+2/-2)
doc/src/sgml/html/reference-server.html (+2/-2)
doc/src/sgml/html/reference.html (+2/-2)
doc/src/sgml/html/regress-coverage.html (+2/-2)
doc/src/sgml/html/regress-evaluation.html (+2/-2)
doc/src/sgml/html/regress-run.html (+2/-2)
doc/src/sgml/html/regress-tap.html (+2/-2)
doc/src/sgml/html/regress-variant.html (+2/-2)
doc/src/sgml/html/regress.html (+2/-2)
doc/src/sgml/html/release-10-1.html (+5/-5)
doc/src/sgml/html/release-10-10.html (+6/-6)
doc/src/sgml/html/release-10-11.html (+6/-6)
doc/src/sgml/html/release-10-12.html (+6/-6)
doc/src/sgml/html/release-10-13.html (+6/-6)
doc/src/sgml/html/release-10-14.html (+6/-6)
doc/src/sgml/html/release-10-15.html (+6/-6)
doc/src/sgml/html/release-10-16.html (+6/-6)
doc/src/sgml/html/release-10-17.html (+6/-6)
doc/src/sgml/html/release-10-18.html (+6/-6)
doc/src/sgml/html/release-10-19.html (+6/-6)
doc/src/sgml/html/release-10-2.html (+6/-6)
doc/src/sgml/html/release-10-20.html (+6/-6)
doc/src/sgml/html/release-10-21.html (+186/-0)
doc/src/sgml/html/release-10-3.html (+6/-6)
doc/src/sgml/html/release-10-4.html (+6/-6)
doc/src/sgml/html/release-10-5.html (+6/-6)
doc/src/sgml/html/release-10-6.html (+6/-6)
doc/src/sgml/html/release-10-7.html (+6/-6)
doc/src/sgml/html/release-10-8.html (+6/-6)
doc/src/sgml/html/release-10-9.html (+6/-6)
doc/src/sgml/html/release-10.html (+33/-33)
doc/src/sgml/html/release-prior.html (+2/-2)
doc/src/sgml/html/release.html (+2/-2)
doc/src/sgml/html/replication-origins.html (+2/-2)
doc/src/sgml/html/resources.html (+2/-2)
doc/src/sgml/html/role-attributes.html (+2/-2)
doc/src/sgml/html/role-membership.html (+2/-2)
doc/src/sgml/html/role-removal.html (+2/-2)
doc/src/sgml/html/routine-reindex.html (+2/-2)
doc/src/sgml/html/routine-vacuuming.html (+19/-2)
doc/src/sgml/html/row-estimation-examples.html (+2/-2)
doc/src/sgml/html/rowtypes.html (+2/-2)
doc/src/sgml/html/rule-system.html (+2/-2)
doc/src/sgml/html/rules-materializedviews.html (+2/-2)
doc/src/sgml/html/rules-privileges.html (+2/-2)
doc/src/sgml/html/rules-status.html (+2/-2)
doc/src/sgml/html/rules-triggers.html (+2/-2)
doc/src/sgml/html/rules-update.html (+2/-2)
doc/src/sgml/html/rules-views.html (+2/-2)
doc/src/sgml/html/rules.html (+2/-2)
doc/src/sgml/html/runtime-config-autovacuum.html (+2/-2)
doc/src/sgml/html/runtime-config-client.html (+2/-2)
doc/src/sgml/html/runtime-config-compatible.html (+2/-2)
doc/src/sgml/html/runtime-config-connection.html (+2/-2)
doc/src/sgml/html/runtime-config-custom.html (+2/-2)
doc/src/sgml/html/runtime-config-developer.html (+2/-2)
doc/src/sgml/html/runtime-config-error-handling.html (+2/-2)
doc/src/sgml/html/runtime-config-file-locations.html (+2/-2)
doc/src/sgml/html/runtime-config-locks.html (+2/-2)
doc/src/sgml/html/runtime-config-logging.html (+2/-2)
doc/src/sgml/html/runtime-config-preset.html (+2/-2)
doc/src/sgml/html/runtime-config-query.html (+2/-2)
doc/src/sgml/html/runtime-config-replication.html (+2/-2)
doc/src/sgml/html/runtime-config-resource.html (+2/-2)
doc/src/sgml/html/runtime-config-short.html (+2/-2)
doc/src/sgml/html/runtime-config-statistics.html (+2/-2)
doc/src/sgml/html/runtime-config-wal.html (+2/-2)
doc/src/sgml/html/runtime-config.html (+2/-2)
doc/src/sgml/html/runtime.html (+2/-2)
doc/src/sgml/html/sasl-authentication.html (+2/-2)
doc/src/sgml/html/seg.html (+2/-2)
doc/src/sgml/html/sepgsql.html (+2/-2)
doc/src/sgml/html/server-programming.html (+2/-2)
doc/src/sgml/html/server-shutdown.html (+2/-2)
doc/src/sgml/html/server-start.html (+6/-6)
doc/src/sgml/html/source-conventions.html (+2/-2)
doc/src/sgml/html/source-format.html (+2/-2)
doc/src/sgml/html/source.html (+1/-1)
doc/src/sgml/html/sourcerepo.html (+2/-2)
doc/src/sgml/html/spgist-builtin-opclasses.html (+2/-2)
doc/src/sgml/html/spgist-examples.html (+2/-2)
doc/src/sgml/html/spgist-extensibility.html (+2/-2)
doc/src/sgml/html/spgist-implementation.html (+2/-2)
doc/src/sgml/html/spgist-intro.html (+2/-2)
doc/src/sgml/html/spgist.html (+1/-1)
doc/src/sgml/html/spi-examples.html (+2/-2)
doc/src/sgml/html/spi-interface-support.html (+2/-2)
doc/src/sgml/html/spi-interface.html (+2/-2)
doc/src/sgml/html/spi-memory.html (+2/-2)
doc/src/sgml/html/spi-realloc.html (+2/-2)
doc/src/sgml/html/spi-spi-connect.html (+2/-2)
doc/src/sgml/html/spi-spi-copytuple.html (+2/-2)
doc/src/sgml/html/spi-spi-cursor-close.html (+2/-2)
doc/src/sgml/html/spi-spi-cursor-fetch.html (+2/-2)
doc/src/sgml/html/spi-spi-cursor-find.html (+2/-2)
doc/src/sgml/html/spi-spi-cursor-move.html (+2/-2)
doc/src/sgml/html/spi-spi-cursor-open-with-args.html (+2/-2)
doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html (+2/-2)
doc/src/sgml/html/spi-spi-cursor-open.html (+2/-2)
doc/src/sgml/html/spi-spi-exec.html (+2/-2)
doc/src/sgml/html/spi-spi-execp.html (+2/-2)
doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html (+2/-2)
doc/src/sgml/html/spi-spi-execute-plan.html (+2/-2)
doc/src/sgml/html/spi-spi-execute-with-args.html (+2/-2)
doc/src/sgml/html/spi-spi-execute.html (+2/-2)
doc/src/sgml/html/spi-spi-finish.html (+2/-2)
doc/src/sgml/html/spi-spi-fname.html (+2/-2)
doc/src/sgml/html/spi-spi-fnumber.html (+2/-2)
doc/src/sgml/html/spi-spi-freeplan.html (+2/-2)
doc/src/sgml/html/spi-spi-freetuple.html (+2/-2)
doc/src/sgml/html/spi-spi-freetupletable.html (+2/-2)
doc/src/sgml/html/spi-spi-getargcount.html (+2/-2)
doc/src/sgml/html/spi-spi-getargtypeid.html (+2/-2)
doc/src/sgml/html/spi-spi-getbinval.html (+2/-2)
doc/src/sgml/html/spi-spi-getnspname.html (+2/-2)
doc/src/sgml/html/spi-spi-getrelname.html (+2/-2)
doc/src/sgml/html/spi-spi-gettype.html (+2/-2)
doc/src/sgml/html/spi-spi-gettypeid.html (+2/-2)
doc/src/sgml/html/spi-spi-getvalue.html (+2/-2)
doc/src/sgml/html/spi-spi-is-cursor-plan.html (+2/-2)
doc/src/sgml/html/spi-spi-keepplan.html (+2/-2)
doc/src/sgml/html/spi-spi-modifytuple.html (+2/-2)
doc/src/sgml/html/spi-spi-palloc.html (+2/-2)
doc/src/sgml/html/spi-spi-pfree.html (+2/-2)
doc/src/sgml/html/spi-spi-prepare-cursor.html (+2/-2)
doc/src/sgml/html/spi-spi-prepare-params.html (+2/-2)
doc/src/sgml/html/spi-spi-prepare.html (+2/-2)
doc/src/sgml/html/spi-spi-register-relation.html (+2/-2)
doc/src/sgml/html/spi-spi-register-trigger-data.html (+2/-2)
doc/src/sgml/html/spi-spi-returntuple.html (+2/-2)
doc/src/sgml/html/spi-spi-saveplan.html (+2/-2)
doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html (+2/-2)
doc/src/sgml/html/spi-spi-scroll-cursor-move.html (+2/-2)
doc/src/sgml/html/spi-spi-unregister-relation.html (+2/-2)
doc/src/sgml/html/spi-visibility.html (+2/-2)
doc/src/sgml/html/spi.html (+2/-2)
doc/src/sgml/html/sql-abort.html (+2/-2)
doc/src/sgml/html/sql-alteraggregate.html (+2/-2)
doc/src/sgml/html/sql-altercollation.html (+2/-2)
doc/src/sgml/html/sql-alterconversion.html (+2/-2)
doc/src/sgml/html/sql-alterdatabase.html (+2/-2)
doc/src/sgml/html/sql-alterdefaultprivileges.html (+2/-2)
doc/src/sgml/html/sql-alterdomain.html (+2/-2)
doc/src/sgml/html/sql-altereventtrigger.html (+2/-2)
doc/src/sgml/html/sql-alterextension.html (+2/-2)
doc/src/sgml/html/sql-alterforeigndatawrapper.html (+2/-2)
doc/src/sgml/html/sql-alterforeigntable.html (+2/-2)
doc/src/sgml/html/sql-alterfunction.html (+2/-2)
doc/src/sgml/html/sql-altergroup.html (+2/-2)
doc/src/sgml/html/sql-alterindex.html (+2/-2)
doc/src/sgml/html/sql-alterlanguage.html (+2/-2)
doc/src/sgml/html/sql-alterlargeobject.html (+2/-2)
doc/src/sgml/html/sql-altermaterializedview.html (+3/-2)
doc/src/sgml/html/sql-alteropclass.html (+2/-2)
doc/src/sgml/html/sql-alteroperator.html (+2/-2)
doc/src/sgml/html/sql-alteropfamily.html (+2/-2)
doc/src/sgml/html/sql-alterpolicy.html (+2/-2)
doc/src/sgml/html/sql-alterpublication.html (+2/-2)
doc/src/sgml/html/sql-alterrole.html (+2/-2)
doc/src/sgml/html/sql-alterrule.html (+2/-2)
doc/src/sgml/html/sql-alterschema.html (+2/-2)
doc/src/sgml/html/sql-altersequence.html (+2/-2)
doc/src/sgml/html/sql-alterserver.html (+2/-2)
doc/src/sgml/html/sql-alterstatistics.html (+2/-2)
doc/src/sgml/html/sql-altersubscription.html (+2/-2)
doc/src/sgml/html/sql-altersystem.html (+2/-2)
doc/src/sgml/html/sql-altertable.html (+7/-6)
doc/src/sgml/html/sql-altertablespace.html (+2/-2)
doc/src/sgml/html/sql-altertrigger.html (+2/-2)
doc/src/sgml/html/sql-altertsconfig.html (+2/-2)
doc/src/sgml/html/sql-altertsdictionary.html (+2/-2)
doc/src/sgml/html/sql-altertsparser.html (+2/-2)
doc/src/sgml/html/sql-altertstemplate.html (+2/-2)
doc/src/sgml/html/sql-altertype.html (+2/-2)
doc/src/sgml/html/sql-alteruser.html (+2/-2)
doc/src/sgml/html/sql-alterusermapping.html (+2/-2)
doc/src/sgml/html/sql-alterview.html (+2/-2)
doc/src/sgml/html/sql-analyze.html (+22/-5)
doc/src/sgml/html/sql-begin.html (+2/-2)
doc/src/sgml/html/sql-checkpoint.html (+2/-2)
doc/src/sgml/html/sql-close.html (+2/-2)
doc/src/sgml/html/sql-cluster.html (+2/-2)
doc/src/sgml/html/sql-commands.html (+2/-2)
doc/src/sgml/html/sql-comment.html (+2/-2)
doc/src/sgml/html/sql-commit-prepared.html (+2/-2)
doc/src/sgml/html/sql-commit.html (+2/-2)
doc/src/sgml/html/sql-copy.html (+2/-2)
doc/src/sgml/html/sql-create-access-method.html (+2/-2)
doc/src/sgml/html/sql-createaggregate.html (+2/-2)
doc/src/sgml/html/sql-createcast.html (+2/-2)
doc/src/sgml/html/sql-createcollation.html (+2/-2)
doc/src/sgml/html/sql-createconversion.html (+2/-2)
doc/src/sgml/html/sql-createdatabase.html (+2/-2)
doc/src/sgml/html/sql-createdomain.html (+2/-2)
doc/src/sgml/html/sql-createeventtrigger.html (+2/-2)
doc/src/sgml/html/sql-createextension.html (+2/-2)
doc/src/sgml/html/sql-createforeigndatawrapper.html (+2/-2)
doc/src/sgml/html/sql-createforeigntable.html (+2/-2)
doc/src/sgml/html/sql-createfunction.html (+2/-2)
doc/src/sgml/html/sql-creategroup.html (+2/-2)
doc/src/sgml/html/sql-createindex.html (+2/-2)
doc/src/sgml/html/sql-createlanguage.html (+2/-2)
doc/src/sgml/html/sql-creatematerializedview.html (+2/-2)
doc/src/sgml/html/sql-createopclass.html (+2/-2)
doc/src/sgml/html/sql-createoperator.html (+2/-2)
doc/src/sgml/html/sql-createopfamily.html (+2/-2)
doc/src/sgml/html/sql-createpolicy.html (+2/-2)
doc/src/sgml/html/sql-createpublication.html (+2/-2)
doc/src/sgml/html/sql-createrole.html (+2/-2)
doc/src/sgml/html/sql-createrule.html (+2/-2)
doc/src/sgml/html/sql-createschema.html (+2/-2)
doc/src/sgml/html/sql-createsequence.html (+2/-2)
doc/src/sgml/html/sql-createserver.html (+2/-2)
doc/src/sgml/html/sql-createstatistics.html (+2/-2)
doc/src/sgml/html/sql-createsubscription.html (+2/-2)
doc/src/sgml/html/sql-createtable.html (+2/-2)
doc/src/sgml/html/sql-createtableas.html (+2/-2)
doc/src/sgml/html/sql-createtablespace.html (+2/-2)
doc/src/sgml/html/sql-createtransform.html (+2/-2)
doc/src/sgml/html/sql-createtrigger.html (+2/-2)
doc/src/sgml/html/sql-createtsconfig.html (+2/-2)
doc/src/sgml/html/sql-createtsdictionary.html (+2/-2)
doc/src/sgml/html/sql-createtsparser.html (+2/-2)
doc/src/sgml/html/sql-createtstemplate.html (+2/-2)
doc/src/sgml/html/sql-createtype.html (+2/-2)
doc/src/sgml/html/sql-createuser.html (+2/-2)
doc/src/sgml/html/sql-createusermapping.html (+2/-2)
doc/src/sgml/html/sql-createview.html (+2/-2)
doc/src/sgml/html/sql-deallocate.html (+2/-2)
doc/src/sgml/html/sql-declare.html (+2/-2)
doc/src/sgml/html/sql-delete.html (+2/-2)
doc/src/sgml/html/sql-discard.html (+2/-2)
doc/src/sgml/html/sql-do.html (+2/-2)
doc/src/sgml/html/sql-drop-access-method.html (+2/-2)
doc/src/sgml/html/sql-drop-owned.html (+2/-2)
doc/src/sgml/html/sql-dropaggregate.html (+2/-2)
doc/src/sgml/html/sql-dropcast.html (+2/-2)
doc/src/sgml/html/sql-dropcollation.html (+2/-2)
doc/src/sgml/html/sql-dropconversion.html (+2/-2)
doc/src/sgml/html/sql-dropdatabase.html (+2/-2)
doc/src/sgml/html/sql-dropdomain.html (+2/-2)
doc/src/sgml/html/sql-dropeventtrigger.html (+2/-2)
doc/src/sgml/html/sql-dropextension.html (+2/-2)
doc/src/sgml/html/sql-dropforeigndatawrapper.html (+2/-2)
doc/src/sgml/html/sql-dropforeigntable.html (+2/-2)
doc/src/sgml/html/sql-dropfunction.html (+2/-2)
doc/src/sgml/html/sql-dropgroup.html (+2/-2)
doc/src/sgml/html/sql-dropindex.html (+2/-2)
doc/src/sgml/html/sql-droplanguage.html (+2/-2)
doc/src/sgml/html/sql-dropmaterializedview.html (+2/-2)
doc/src/sgml/html/sql-dropopclass.html (+2/-2)
doc/src/sgml/html/sql-dropoperator.html (+2/-2)
doc/src/sgml/html/sql-dropopfamily.html (+2/-2)
doc/src/sgml/html/sql-droppolicy.html (+2/-2)
doc/src/sgml/html/sql-droppublication.html (+2/-2)
doc/src/sgml/html/sql-droprole.html (+2/-2)
doc/src/sgml/html/sql-droprule.html (+2/-2)
doc/src/sgml/html/sql-dropschema.html (+2/-2)
doc/src/sgml/html/sql-dropsequence.html (+2/-2)
doc/src/sgml/html/sql-dropserver.html (+2/-2)
doc/src/sgml/html/sql-dropstatistics.html (+2/-2)
doc/src/sgml/html/sql-dropsubscription.html (+2/-2)
doc/src/sgml/html/sql-droptable.html (+2/-2)
doc/src/sgml/html/sql-droptablespace.html (+2/-2)
doc/src/sgml/html/sql-droptransform.html (+2/-2)
doc/src/sgml/html/sql-droptrigger.html (+2/-2)
doc/src/sgml/html/sql-droptsconfig.html (+2/-2)
doc/src/sgml/html/sql-droptsdictionary.html (+2/-2)
doc/src/sgml/html/sql-droptsparser.html (+2/-2)
doc/src/sgml/html/sql-droptstemplate.html (+2/-2)
doc/src/sgml/html/sql-droptype.html (+2/-2)
doc/src/sgml/html/sql-dropuser.html (+2/-2)
doc/src/sgml/html/sql-dropusermapping.html (+2/-2)
doc/src/sgml/html/sql-dropview.html (+2/-2)
doc/src/sgml/html/sql-end.html (+2/-2)
doc/src/sgml/html/sql-execute.html (+2/-2)
doc/src/sgml/html/sql-explain.html (+2/-2)
doc/src/sgml/html/sql-expressions.html (+2/-2)
doc/src/sgml/html/sql-fetch.html (+2/-2)
doc/src/sgml/html/sql-grant.html (+2/-2)
doc/src/sgml/html/sql-importforeignschema.html (+2/-2)
doc/src/sgml/html/sql-insert.html (+2/-2)
doc/src/sgml/html/sql-keywords-appendix.html (+3/-3)
doc/src/sgml/html/sql-listen.html (+2/-2)
doc/src/sgml/html/sql-load.html (+2/-2)
doc/src/sgml/html/sql-lock.html (+2/-2)
doc/src/sgml/html/sql-move.html (+2/-2)
doc/src/sgml/html/sql-notify.html (+2/-2)
doc/src/sgml/html/sql-prepare-transaction.html (+2/-2)
doc/src/sgml/html/sql-prepare.html (+2/-2)
doc/src/sgml/html/sql-reassign-owned.html (+2/-2)
doc/src/sgml/html/sql-refreshmaterializedview.html (+2/-2)
doc/src/sgml/html/sql-reindex.html (+2/-2)
doc/src/sgml/html/sql-release-savepoint.html (+2/-2)
doc/src/sgml/html/sql-reset.html (+2/-2)
doc/src/sgml/html/sql-revoke.html (+2/-2)
doc/src/sgml/html/sql-rollback-prepared.html (+2/-2)
doc/src/sgml/html/sql-rollback-to.html (+2/-2)
doc/src/sgml/html/sql-rollback.html (+2/-2)
doc/src/sgml/html/sql-savepoint.html (+2/-2)
doc/src/sgml/html/sql-security-label.html (+2/-2)
doc/src/sgml/html/sql-select.html (+2/-2)
doc/src/sgml/html/sql-selectinto.html (+2/-2)
doc/src/sgml/html/sql-set-constraints.html (+2/-2)
doc/src/sgml/html/sql-set-role.html (+2/-2)
doc/src/sgml/html/sql-set-session-authorization.html (+2/-2)
doc/src/sgml/html/sql-set-transaction.html (+2/-2)
doc/src/sgml/html/sql-set.html (+2/-2)
doc/src/sgml/html/sql-show.html (+2/-2)
doc/src/sgml/html/sql-start-transaction.html (+2/-2)
doc/src/sgml/html/sql-syntax-calling-funcs.html (+2/-2)
doc/src/sgml/html/sql-syntax-lexical.html (+2/-2)
doc/src/sgml/html/sql-syntax.html (+2/-2)
doc/src/sgml/html/sql-truncate.html (+2/-2)
doc/src/sgml/html/sql-unlisten.html (+2/-2)
doc/src/sgml/html/sql-update.html (+2/-2)
doc/src/sgml/html/sql-vacuum.html (+2/-2)
doc/src/sgml/html/sql-values.html (+2/-2)
doc/src/sgml/html/sql.html (+2/-2)
doc/src/sgml/html/ssh-tunnels.html (+2/-2)
doc/src/sgml/html/ssl-tcp.html (+2/-2)
doc/src/sgml/html/sslinfo.html (+2/-2)
doc/src/sgml/html/standby-settings.html (+2/-2)
doc/src/sgml/html/storage-file-layout.html (+2/-2)
doc/src/sgml/html/storage-fsm.html (+2/-2)
doc/src/sgml/html/storage-init.html (+2/-2)
doc/src/sgml/html/storage-page-layout.html (+2/-2)
doc/src/sgml/html/storage-toast.html (+2/-2)
doc/src/sgml/html/storage-vm.html (+2/-2)
doc/src/sgml/html/storage.html (+2/-2)
doc/src/sgml/html/supported-platforms.html (+2/-2)
doc/src/sgml/html/tablefunc.html (+2/-2)
doc/src/sgml/html/tablesample-method.html (+2/-2)
doc/src/sgml/html/tablesample-support-functions.html (+2/-2)
doc/src/sgml/html/tcn.html (+2/-2)
doc/src/sgml/html/test-decoding.html (+2/-2)
doc/src/sgml/html/textsearch-configuration.html (+2/-2)
doc/src/sgml/html/textsearch-controls.html (+2/-2)
doc/src/sgml/html/textsearch-debugging.html (+2/-2)
doc/src/sgml/html/textsearch-dictionaries.html (+2/-2)
doc/src/sgml/html/textsearch-features.html (+2/-2)
doc/src/sgml/html/textsearch-indexes.html (+8/-5)
doc/src/sgml/html/textsearch-intro.html (+3/-3)
doc/src/sgml/html/textsearch-limitations.html (+2/-2)
doc/src/sgml/html/textsearch-parsers.html (+2/-2)
doc/src/sgml/html/textsearch-psql.html (+2/-2)
doc/src/sgml/html/textsearch-tables.html (+4/-4)
doc/src/sgml/html/textsearch.html (+1/-1)
doc/src/sgml/html/transaction-iso.html (+2/-2)
doc/src/sgml/html/trigger-datachanges.html (+2/-2)
doc/src/sgml/html/trigger-definition.html (+2/-2)
doc/src/sgml/html/trigger-example.html (+2/-2)
doc/src/sgml/html/trigger-interface.html (+2/-2)
doc/src/sgml/html/triggers.html (+2/-2)
doc/src/sgml/html/tsm-system-rows.html (+2/-2)
doc/src/sgml/html/tsm-system-time.html (+2/-2)
doc/src/sgml/html/tutorial-accessdb.html (+4/-4)
doc/src/sgml/html/tutorial-advanced-intro.html (+2/-2)
doc/src/sgml/html/tutorial-advanced.html (+1/-1)
doc/src/sgml/html/tutorial-agg.html (+2/-2)
doc/src/sgml/html/tutorial-arch.html (+2/-2)
doc/src/sgml/html/tutorial-concepts.html (+2/-2)
doc/src/sgml/html/tutorial-conclusion.html (+2/-2)
doc/src/sgml/html/tutorial-createdb.html (+2/-2)
doc/src/sgml/html/tutorial-delete.html (+2/-2)
doc/src/sgml/html/tutorial-fk.html (+2/-2)
doc/src/sgml/html/tutorial-inheritance.html (+2/-2)
doc/src/sgml/html/tutorial-install.html (+2/-2)
doc/src/sgml/html/tutorial-join.html (+2/-2)
doc/src/sgml/html/tutorial-populate.html (+2/-2)
doc/src/sgml/html/tutorial-select.html (+2/-2)
doc/src/sgml/html/tutorial-sql-intro.html (+2/-2)
doc/src/sgml/html/tutorial-sql.html (+1/-1)
doc/src/sgml/html/tutorial-start.html (+1/-1)
doc/src/sgml/html/tutorial-table.html (+2/-2)
doc/src/sgml/html/tutorial-transactions.html (+2/-2)
doc/src/sgml/html/tutorial-update.html (+2/-2)
doc/src/sgml/html/tutorial-views.html (+2/-2)
doc/src/sgml/html/tutorial-window.html (+2/-2)
doc/src/sgml/html/tutorial.html (+2/-2)
doc/src/sgml/html/typeconv-func.html (+2/-2)
doc/src/sgml/html/typeconv-oper.html (+2/-2)
doc/src/sgml/html/typeconv-overview.html (+2/-2)
doc/src/sgml/html/typeconv-query.html (+2/-2)
doc/src/sgml/html/typeconv-select.html (+2/-2)
doc/src/sgml/html/typeconv-union-case.html (+2/-2)
doc/src/sgml/html/typeconv.html (+2/-2)
doc/src/sgml/html/unaccent.html (+2/-2)
doc/src/sgml/html/unsupported-features-sql-standard.html (+2/-2)
doc/src/sgml/html/upgrading.html (+3/-3)
doc/src/sgml/html/user-manag.html (+2/-2)
doc/src/sgml/html/using-explain.html (+2/-2)
doc/src/sgml/html/uuid-ossp.html (+2/-2)
doc/src/sgml/html/vacuumlo.html (+2/-2)
doc/src/sgml/html/view-pg-available-extension-versions.html (+2/-2)
doc/src/sgml/html/view-pg-available-extensions.html (+2/-2)
doc/src/sgml/html/view-pg-config.html (+2/-2)
doc/src/sgml/html/view-pg-cursors.html (+2/-2)
doc/src/sgml/html/view-pg-file-settings.html (+2/-2)
doc/src/sgml/html/view-pg-group.html (+2/-2)
doc/src/sgml/html/view-pg-hba-file-rules.html (+2/-2)
doc/src/sgml/html/view-pg-indexes.html (+2/-2)
doc/src/sgml/html/view-pg-locks.html (+2/-2)
doc/src/sgml/html/view-pg-matviews.html (+2/-2)
doc/src/sgml/html/view-pg-policies.html (+2/-2)
doc/src/sgml/html/view-pg-prepared-statements.html (+2/-2)
doc/src/sgml/html/view-pg-prepared-xacts.html (+2/-2)
doc/src/sgml/html/view-pg-publication-tables.html (+2/-2)
doc/src/sgml/html/view-pg-replication-origin-status.html (+2/-2)
doc/src/sgml/html/view-pg-replication-slots.html (+2/-2)
doc/src/sgml/html/view-pg-roles.html (+2/-2)
doc/src/sgml/html/view-pg-rules.html (+2/-2)
doc/src/sgml/html/view-pg-seclabels.html (+2/-2)
doc/src/sgml/html/view-pg-sequences.html (+2/-2)
doc/src/sgml/html/view-pg-settings.html (+2/-2)
doc/src/sgml/html/view-pg-shadow.html (+2/-2)
doc/src/sgml/html/view-pg-stats.html (+2/-2)
doc/src/sgml/html/view-pg-tables.html (+2/-2)
doc/src/sgml/html/view-pg-timezone-abbrevs.html (+2/-2)
doc/src/sgml/html/view-pg-timezone-names.html (+2/-2)
doc/src/sgml/html/view-pg-user-mappings.html (+2/-2)
doc/src/sgml/html/view-pg-user.html (+2/-2)
doc/src/sgml/html/view-pg-views.html (+2/-2)
doc/src/sgml/html/views-overview.html (+2/-2)
doc/src/sgml/html/wal-async-commit.html (+2/-2)
doc/src/sgml/html/wal-configuration.html (+2/-2)
doc/src/sgml/html/wal-internals.html (+2/-2)
doc/src/sgml/html/wal-intro.html (+2/-2)
doc/src/sgml/html/wal-reliability.html (+2/-2)
doc/src/sgml/html/wal.html (+2/-2)
doc/src/sgml/html/warm-standby-failover.html (+2/-2)
doc/src/sgml/html/warm-standby.html (+2/-2)
doc/src/sgml/html/when-can-parallel-query-be-used.html (+2/-2)
doc/src/sgml/html/xaggr.html (+2/-2)
doc/src/sgml/html/xfunc-c.html (+2/-2)
doc/src/sgml/html/xfunc-internal.html (+2/-2)
doc/src/sgml/html/xfunc-overload.html (+2/-2)
doc/src/sgml/html/xfunc-pl.html (+2/-2)
doc/src/sgml/html/xfunc-sql.html (+2/-2)
doc/src/sgml/html/xfunc-volatility.html (+2/-2)
doc/src/sgml/html/xfunc.html (+2/-2)
doc/src/sgml/html/xindex.html (+2/-2)
doc/src/sgml/html/xml-limits-conformance.html (+2/-2)
doc/src/sgml/html/xml2.html (+2/-2)
doc/src/sgml/html/xoper-optimization.html (+3/-3)
doc/src/sgml/html/xoper.html (+2/-2)
doc/src/sgml/html/xplang-install.html (+2/-2)
doc/src/sgml/html/xplang.html (+2/-2)
doc/src/sgml/html/xtypes.html (+2/-2)
doc/src/sgml/libpq.sgml (+22/-10)
doc/src/sgml/maintenance.sgml (+29/-0)
doc/src/sgml/man1/clusterdb.1 (+4/-4)
doc/src/sgml/man1/createdb.1 (+4/-4)
doc/src/sgml/man1/createuser.1 (+4/-4)
doc/src/sgml/man1/dropdb.1 (+4/-4)
doc/src/sgml/man1/dropuser.1 (+4/-4)
doc/src/sgml/man1/ecpg.1 (+4/-4)
doc/src/sgml/man1/initdb.1 (+4/-4)
doc/src/sgml/man1/oid2name.1 (+4/-4)
doc/src/sgml/man1/pg_archivecleanup.1 (+4/-4)
doc/src/sgml/man1/pg_basebackup.1 (+4/-4)
doc/src/sgml/man1/pg_config.1 (+4/-4)
doc/src/sgml/man1/pg_controldata.1 (+4/-4)
doc/src/sgml/man1/pg_ctl.1 (+4/-4)
doc/src/sgml/man1/pg_dump.1 (+4/-4)
doc/src/sgml/man1/pg_dumpall.1 (+4/-4)
doc/src/sgml/man1/pg_isready.1 (+4/-4)
doc/src/sgml/man1/pg_receivewal.1 (+4/-4)
doc/src/sgml/man1/pg_recvlogical.1 (+4/-4)
doc/src/sgml/man1/pg_resetwal.1 (+4/-4)
doc/src/sgml/man1/pg_restore.1 (+4/-4)
doc/src/sgml/man1/pg_rewind.1 (+4/-4)
doc/src/sgml/man1/pg_standby.1 (+4/-4)
doc/src/sgml/man1/pg_test_fsync.1 (+4/-4)
doc/src/sgml/man1/pg_test_timing.1 (+4/-4)
doc/src/sgml/man1/pg_upgrade.1 (+4/-4)
doc/src/sgml/man1/pg_waldump.1 (+4/-4)
doc/src/sgml/man1/pgbench.1 (+4/-4)
doc/src/sgml/man1/postgres.1 (+4/-4)
doc/src/sgml/man1/postmaster.1 (+4/-4)
doc/src/sgml/man1/psql.1 (+5/-5)
doc/src/sgml/man1/reindexdb.1 (+4/-4)
doc/src/sgml/man1/vacuumdb.1 (+4/-4)
doc/src/sgml/man1/vacuumlo.1 (+4/-4)
doc/src/sgml/man3/SPI_connect.3 (+4/-4)
doc/src/sgml/man3/SPI_copytuple.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_close.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_fetch.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_find.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_move.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_open.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_open_with_args.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 (+4/-4)
doc/src/sgml/man3/SPI_exec.3 (+4/-4)
doc/src/sgml/man3/SPI_execp.3 (+4/-4)
doc/src/sgml/man3/SPI_execute.3 (+4/-4)
doc/src/sgml/man3/SPI_execute_plan.3 (+4/-4)
doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 (+4/-4)
doc/src/sgml/man3/SPI_execute_with_args.3 (+4/-4)
doc/src/sgml/man3/SPI_finish.3 (+4/-4)
doc/src/sgml/man3/SPI_fname.3 (+4/-4)
doc/src/sgml/man3/SPI_fnumber.3 (+4/-4)
doc/src/sgml/man3/SPI_freeplan.3 (+4/-4)
doc/src/sgml/man3/SPI_freetuple.3 (+4/-4)
doc/src/sgml/man3/SPI_freetuptable.3 (+4/-4)
doc/src/sgml/man3/SPI_getargcount.3 (+4/-4)
doc/src/sgml/man3/SPI_getargtypeid.3 (+4/-4)
doc/src/sgml/man3/SPI_getbinval.3 (+4/-4)
doc/src/sgml/man3/SPI_getnspname.3 (+4/-4)
doc/src/sgml/man3/SPI_getrelname.3 (+4/-4)
doc/src/sgml/man3/SPI_gettype.3 (+4/-4)
doc/src/sgml/man3/SPI_gettypeid.3 (+4/-4)
doc/src/sgml/man3/SPI_getvalue.3 (+4/-4)
doc/src/sgml/man3/SPI_is_cursor_plan.3 (+4/-4)
doc/src/sgml/man3/SPI_keepplan.3 (+4/-4)
doc/src/sgml/man3/SPI_modifytuple.3 (+4/-4)
doc/src/sgml/man3/SPI_palloc.3 (+4/-4)
doc/src/sgml/man3/SPI_pfree.3 (+4/-4)
doc/src/sgml/man3/SPI_prepare.3 (+4/-4)
doc/src/sgml/man3/SPI_prepare_cursor.3 (+4/-4)
doc/src/sgml/man3/SPI_prepare_params.3 (+4/-4)
doc/src/sgml/man3/SPI_register_relation.3 (+4/-4)
doc/src/sgml/man3/SPI_register_trigger_data.3 (+4/-4)
doc/src/sgml/man3/SPI_repalloc.3 (+4/-4)
doc/src/sgml/man3/SPI_returntuple.3 (+4/-4)
doc/src/sgml/man3/SPI_saveplan.3 (+4/-4)
doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 (+4/-4)
doc/src/sgml/man3/SPI_scroll_cursor_move.3 (+4/-4)
doc/src/sgml/man3/SPI_unregister_relation.3 (+4/-4)
doc/src/sgml/man3/dblink.3 (+4/-4)
doc/src/sgml/man3/dblink_build_sql_delete.3 (+4/-4)
doc/src/sgml/man3/dblink_build_sql_insert.3 (+4/-4)
doc/src/sgml/man3/dblink_build_sql_update.3 (+4/-4)
doc/src/sgml/man3/dblink_cancel_query.3 (+4/-4)
doc/src/sgml/man3/dblink_close.3 (+4/-4)
doc/src/sgml/man3/dblink_connect.3 (+4/-4)
doc/src/sgml/man3/dblink_connect_u.3 (+4/-4)
doc/src/sgml/man3/dblink_disconnect.3 (+4/-4)
doc/src/sgml/man3/dblink_error_message.3 (+4/-4)
doc/src/sgml/man3/dblink_exec.3 (+4/-4)
doc/src/sgml/man3/dblink_fetch.3 (+4/-4)
doc/src/sgml/man3/dblink_get_connections.3 (+4/-4)
doc/src/sgml/man3/dblink_get_notify.3 (+4/-4)
doc/src/sgml/man3/dblink_get_pkey.3 (+4/-4)
doc/src/sgml/man3/dblink_get_result.3 (+4/-4)
doc/src/sgml/man3/dblink_is_busy.3 (+4/-4)
doc/src/sgml/man3/dblink_open.3 (+4/-4)
doc/src/sgml/man3/dblink_send_query.3 (+4/-4)
doc/src/sgml/man7/ABORT.7 (+4/-4)
doc/src/sgml/man7/ALTER_AGGREGATE.7 (+4/-4)
doc/src/sgml/man7/ALTER_COLLATION.7 (+4/-4)
doc/src/sgml/man7/ALTER_CONVERSION.7 (+4/-4)
doc/src/sgml/man7/ALTER_DATABASE.7 (+4/-4)
doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 (+4/-4)
doc/src/sgml/man7/ALTER_DOMAIN.7 (+4/-4)
doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/ALTER_EXTENSION.7 (+4/-4)
doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 (+4/-4)
doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 (+4/-4)
doc/src/sgml/man7/ALTER_FUNCTION.7 (+4/-4)
doc/src/sgml/man7/ALTER_GROUP.7 (+4/-4)
doc/src/sgml/man7/ALTER_INDEX.7 (+4/-4)
doc/src/sgml/man7/ALTER_LANGUAGE.7 (+4/-4)
doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 (+4/-4)
doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 (+5/-4)
doc/src/sgml/man7/ALTER_OPERATOR.7 (+4/-4)
doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 (+4/-4)
doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 (+4/-4)
doc/src/sgml/man7/ALTER_POLICY.7 (+4/-4)
doc/src/sgml/man7/ALTER_PUBLICATION.7 (+4/-4)
doc/src/sgml/man7/ALTER_ROLE.7 (+4/-4)
doc/src/sgml/man7/ALTER_RULE.7 (+4/-4)
doc/src/sgml/man7/ALTER_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/ALTER_SEQUENCE.7 (+4/-4)
doc/src/sgml/man7/ALTER_SERVER.7 (+4/-4)
doc/src/sgml/man7/ALTER_STATISTICS.7 (+4/-4)
doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 (+4/-4)
doc/src/sgml/man7/ALTER_SYSTEM.7 (+4/-4)
doc/src/sgml/man7/ALTER_TABLE.7 (+5/-5)
doc/src/sgml/man7/ALTER_TABLESPACE.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 (+4/-4)
doc/src/sgml/man7/ALTER_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/ALTER_TYPE.7 (+4/-4)
doc/src/sgml/man7/ALTER_USER.7 (+4/-4)
doc/src/sgml/man7/ALTER_USER_MAPPING.7 (+4/-4)
doc/src/sgml/man7/ALTER_VIEW.7 (+4/-4)
doc/src/sgml/man7/ANALYZE.7 (+18/-6)
doc/src/sgml/man7/BEGIN.7 (+4/-4)
doc/src/sgml/man7/CHECKPOINT.7 (+4/-4)
doc/src/sgml/man7/CLOSE.7 (+4/-4)
doc/src/sgml/man7/CLUSTER.7 (+4/-4)
doc/src/sgml/man7/COMMENT.7 (+4/-4)
doc/src/sgml/man7/COMMIT.7 (+4/-4)
doc/src/sgml/man7/COMMIT_PREPARED.7 (+4/-4)
doc/src/sgml/man7/COPY.7 (+4/-4)
doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 (+4/-4)
doc/src/sgml/man7/CREATE_AGGREGATE.7 (+4/-4)
doc/src/sgml/man7/CREATE_CAST.7 (+4/-4)
doc/src/sgml/man7/CREATE_COLLATION.7 (+4/-4)
doc/src/sgml/man7/CREATE_CONVERSION.7 (+4/-4)
doc/src/sgml/man7/CREATE_DATABASE.7 (+4/-4)
doc/src/sgml/man7/CREATE_DOMAIN.7 (+4/-4)
doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/CREATE_EXTENSION.7 (+4/-4)
doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 (+4/-4)
doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 (+4/-4)
doc/src/sgml/man7/CREATE_FUNCTION.7 (+4/-4)
doc/src/sgml/man7/CREATE_GROUP.7 (+4/-4)
doc/src/sgml/man7/CREATE_INDEX.7 (+4/-4)
doc/src/sgml/man7/CREATE_LANGUAGE.7 (+4/-4)
doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 (+4/-4)
doc/src/sgml/man7/CREATE_OPERATOR.7 (+4/-4)
doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 (+4/-4)
doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 (+4/-4)
doc/src/sgml/man7/CREATE_POLICY.7 (+4/-4)
doc/src/sgml/man7/CREATE_PUBLICATION.7 (+4/-4)
doc/src/sgml/man7/CREATE_ROLE.7 (+4/-4)
doc/src/sgml/man7/CREATE_RULE.7 (+4/-4)
doc/src/sgml/man7/CREATE_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/CREATE_SEQUENCE.7 (+4/-4)
doc/src/sgml/man7/CREATE_SERVER.7 (+4/-4)
doc/src/sgml/man7/CREATE_STATISTICS.7 (+4/-4)
doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 (+4/-4)
doc/src/sgml/man7/CREATE_TABLE.7 (+4/-4)
doc/src/sgml/man7/CREATE_TABLESPACE.7 (+4/-4)
doc/src/sgml/man7/CREATE_TABLE_AS.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 (+4/-4)
doc/src/sgml/man7/CREATE_TRANSFORM.7 (+4/-4)
doc/src/sgml/man7/CREATE_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/CREATE_TYPE.7 (+4/-4)
doc/src/sgml/man7/CREATE_USER.7 (+4/-4)
doc/src/sgml/man7/CREATE_USER_MAPPING.7 (+4/-4)
doc/src/sgml/man7/CREATE_VIEW.7 (+4/-4)
doc/src/sgml/man7/DEALLOCATE.7 (+4/-4)
doc/src/sgml/man7/DECLARE.7 (+4/-4)
doc/src/sgml/man7/DELETE.7 (+4/-4)
doc/src/sgml/man7/DISCARD.7 (+4/-4)
doc/src/sgml/man7/DO.7 (+4/-4)
doc/src/sgml/man7/DROP_ACCESS_METHOD.7 (+4/-4)
doc/src/sgml/man7/DROP_AGGREGATE.7 (+4/-4)
doc/src/sgml/man7/DROP_CAST.7 (+4/-4)
doc/src/sgml/man7/DROP_COLLATION.7 (+4/-4)
doc/src/sgml/man7/DROP_CONVERSION.7 (+4/-4)
doc/src/sgml/man7/DROP_DATABASE.7 (+4/-4)
doc/src/sgml/man7/DROP_DOMAIN.7 (+4/-4)
doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/DROP_EXTENSION.7 (+4/-4)
doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 (+4/-4)
doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 (+4/-4)
doc/src/sgml/man7/DROP_FUNCTION.7 (+4/-4)
doc/src/sgml/man7/DROP_GROUP.7 (+4/-4)
doc/src/sgml/man7/DROP_INDEX.7 (+4/-4)
doc/src/sgml/man7/DROP_LANGUAGE.7 (+4/-4)
doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 (+4/-4)
doc/src/sgml/man7/DROP_OPERATOR.7 (+4/-4)
doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 (+4/-4)
doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 (+4/-4)
doc/src/sgml/man7/DROP_OWNED.7 (+4/-4)
doc/src/sgml/man7/DROP_POLICY.7 (+4/-4)
doc/src/sgml/man7/DROP_PUBLICATION.7 (+4/-4)
doc/src/sgml/man7/DROP_ROLE.7 (+4/-4)
doc/src/sgml/man7/DROP_RULE.7 (+4/-4)
doc/src/sgml/man7/DROP_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/DROP_SEQUENCE.7 (+4/-4)
doc/src/sgml/man7/DROP_SERVER.7 (+4/-4)
doc/src/sgml/man7/DROP_STATISTICS.7 (+4/-4)
doc/src/sgml/man7/DROP_SUBSCRIPTION.7 (+4/-4)
doc/src/sgml/man7/DROP_TABLE.7 (+4/-4)
doc/src/sgml/man7/DROP_TABLESPACE.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 (+4/-4)
doc/src/sgml/man7/DROP_TRANSFORM.7 (+4/-4)
doc/src/sgml/man7/DROP_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/DROP_TYPE.7 (+4/-4)
doc/src/sgml/man7/DROP_USER.7 (+4/-4)
doc/src/sgml/man7/DROP_USER_MAPPING.7 (+4/-4)
doc/src/sgml/man7/DROP_VIEW.7 (+4/-4)
doc/src/sgml/man7/END.7 (+4/-4)
doc/src/sgml/man7/EXECUTE.7 (+4/-4)
doc/src/sgml/man7/EXPLAIN.7 (+4/-4)
doc/src/sgml/man7/FETCH.7 (+4/-4)
doc/src/sgml/man7/GRANT.7 (+4/-4)
doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/INSERT.7 (+4/-4)
doc/src/sgml/man7/LISTEN.7 (+4/-4)
doc/src/sgml/man7/LOAD.7 (+4/-4)
doc/src/sgml/man7/LOCK.7 (+4/-4)
doc/src/sgml/man7/MOVE.7 (+4/-4)
doc/src/sgml/man7/NOTIFY.7 (+4/-4)
doc/src/sgml/man7/PREPARE.7 (+4/-4)
doc/src/sgml/man7/PREPARE_TRANSACTION.7 (+4/-4)
doc/src/sgml/man7/REASSIGN_OWNED.7 (+4/-4)
doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 (+4/-4)
doc/src/sgml/man7/REINDEX.7 (+4/-4)
doc/src/sgml/man7/RELEASE_SAVEPOINT.7 (+4/-4)
doc/src/sgml/man7/RESET.7 (+4/-4)
doc/src/sgml/man7/REVOKE.7 (+4/-4)
doc/src/sgml/man7/ROLLBACK.7 (+4/-4)
doc/src/sgml/man7/ROLLBACK_PREPARED.7 (+4/-4)
doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 (+4/-4)
doc/src/sgml/man7/SAVEPOINT.7 (+4/-4)
doc/src/sgml/man7/SECURITY_LABEL.7 (+4/-4)
doc/src/sgml/man7/SELECT.7 (+4/-4)
doc/src/sgml/man7/SELECT_INTO.7 (+4/-4)
doc/src/sgml/man7/SET.7 (+4/-4)
doc/src/sgml/man7/SET_CONSTRAINTS.7 (+4/-4)
doc/src/sgml/man7/SET_ROLE.7 (+4/-4)
doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 (+4/-4)
doc/src/sgml/man7/SET_TRANSACTION.7 (+4/-4)
doc/src/sgml/man7/SHOW.7 (+4/-4)
doc/src/sgml/man7/START_TRANSACTION.7 (+4/-4)
doc/src/sgml/man7/TRUNCATE.7 (+4/-4)
doc/src/sgml/man7/UNLISTEN.7 (+4/-4)
doc/src/sgml/man7/UPDATE.7 (+4/-4)
doc/src/sgml/man7/VACUUM.7 (+4/-4)
doc/src/sgml/man7/VALUES.7 (+4/-4)
doc/src/sgml/ref/alter_materialized_view.sgml (+1/-0)
doc/src/sgml/ref/alter_table.sgml (+5/-4)
doc/src/sgml/ref/analyze.sgml (+29/-3)
doc/src/sgml/release-10.sgml (+774/-0)
doc/src/sgml/runtime.sgml (+4/-4)
doc/src/sgml/textsearch.sgml (+8/-2)
src/backend/access/brin/brin.c (+29/-1)
src/backend/access/heap/heapam.c (+117/-61)
src/backend/access/transam/twophase.c (+3/-0)
src/backend/access/transam/xact.c (+4/-2)
src/backend/access/transam/xlog.c (+22/-7)
src/backend/bootstrap/bootparse.c (+535/-617)
src/backend/catalog/index.c (+30/-11)
src/backend/catalog/namespace.c (+3/-0)
src/backend/catalog/storage.c (+25/-1)
src/backend/commands/cluster.c (+28/-7)
src/backend/commands/copy.c (+1/-1)
src/backend/commands/functioncmds.c (+3/-2)
src/backend/commands/indexcmds.c (+51/-2)
src/backend/commands/matview.c (+11/-19)
src/backend/executor/execExpr.c (+4/-4)
src/backend/executor/execExprInterp.c (+32/-34)
src/backend/executor/execTuples.c (+13/-24)
src/backend/executor/nodeIndexscan.c (+5/-1)
src/backend/libpq/be-secure-openssl.c (+13/-15)
src/backend/nodes/copyfuncs.c (+17/-29)
src/backend/nodes/nodeFuncs.c (+2/-0)
src/backend/optimizer/path/costsize.c (+6/-0)
src/backend/optimizer/plan/createplan.c (+16/-0)
src/backend/optimizer/plan/subselect.c (+19/-11)
src/backend/parser/analyze.c (+7/-14)
src/backend/parser/gram.c (+9837/-9402)
src/backend/parser/gram.h (+466/-461)
src/backend/parser/parse_utilcmd.c (+1/-1)
src/backend/po/de.po (+312/-297)
src/backend/po/fr.po (+350/-335)
src/backend/po/ru.po (+315/-299)
src/backend/po/sv.po (+578/-558)
src/backend/replication/logical/launcher.c (+4/-4)
src/backend/replication/logical/tablesync.c (+17/-4)
src/backend/replication/repl_gram.c (+573/-653)
src/backend/replication/syncrep_gram.c (+370/-496)
src/backend/storage/buffer/bufmgr.c (+3/-1)
src/backend/storage/ipc/latch.c (+1/-1)
src/backend/storage/ipc/procarray.c (+84/-18)
src/backend/storage/ipc/shm_mq.c (+5/-2)
src/backend/storage/ipc/standby.c (+12/-10)
src/backend/storage/lmgr/proc.c (+2/-2)
src/backend/storage/smgr/md.c (+13/-1)
src/backend/utils/adt/numeric.c (+8/-0)
src/backend/utils/adt/ruleutils.c (+7/-3)
src/backend/utils/adt/xml.c (+2/-2)
src/backend/utils/cache/inval.c (+1/-1)
src/backend/utils/cache/relcache.c (+1/-1)
src/backend/utils/init/miscinit.c (+15/-9)
src/backend/utils/sort/tuplesort.c (+3/-1)
src/backend/utils/time/snapmgr.c (+6/-4)
src/backend/utils/time/tqual.c (+2/-2)
src/bin/initdb/po/ru.po (+8/-8)
src/bin/initdb/po/sv.po (+1/-1)
src/bin/pg_archivecleanup/po/sv.po (+1/-1)
src/bin/pg_basebackup/po/sv.po (+49/-49)
src/bin/pg_config/po/ru.po (+8/-8)
src/bin/pg_config/po/sv.po (+1/-1)
src/bin/pg_controldata/po/sv.po (+1/-1)
src/bin/pg_ctl/pg_ctl.c (+80/-48)
src/bin/pg_ctl/po/ru.po (+136/-136)
src/bin/pg_ctl/po/sv.po (+129/-129)
src/bin/pg_ctl/t/001_start_stop.pl (+1/-10)
src/bin/pg_dump/Makefile (+1/-1)
src/bin/pg_dump/po/ru.po (+8/-8)
src/bin/pg_dump/po/sv.po (+11/-11)
src/bin/pg_dump/t/002_pg_dump.pl (+2/-1)
src/bin/pg_resetwal/po/sv.po (+1/-1)
src/bin/pg_rewind/parsexlog.c (+5/-1)
src/bin/pg_rewind/po/de.po (+77/-72)
src/bin/pg_rewind/po/fr.po (+82/-77)
src/bin/pg_rewind/po/ru.po (+18/-12)
src/bin/pg_rewind/po/sv.po (+17/-12)
src/bin/pg_rewind/t/RewindTest.pm (+0/-1)
src/bin/pg_test_fsync/po/sv.po (+1/-1)
src/bin/pg_test_timing/po/sv.po (+1/-1)
src/bin/pg_upgrade/po/sv.po (+1/-1)
src/bin/pg_waldump/po/sv.po (+1/-1)
src/bin/pgbench/exprparse.c (+410/-528)
src/bin/pgbench/t/022_cic.pl (+3/-2)
src/bin/pgbench/t/023_cic_2pc.pl (+11/-8)
src/bin/psql/po/ru.po (+710/-709)
src/bin/psql/po/sv.po (+1/-1)
src/bin/psql/sql_help.c (+3/-1)
src/bin/scripts/po/ru.po (+5/-5)
src/bin/scripts/po/sv.po (+11/-21)
src/bin/scripts/t/080_pg_isready.pl (+3/-2)
src/common/exec.c (+5/-0)
src/fe_utils/print.c (+2/-1)
src/include/pg_config.h.win32 (+4/-4)
src/include/storage/block.h (+1/-1)
src/include/storage/proc.h (+14/-2)
src/include/storage/procarray.h (+5/-1)
src/include/utils/relptr.h (+15/-2)
src/interfaces/ecpg/Makefile (+1/-0)
src/interfaces/ecpg/ecpglib/po/sv.po (+1/-1)
src/interfaces/ecpg/preproc/po/sv.po (+1/-1)
src/interfaces/ecpg/preproc/preproc.c (+14142/-13535)
src/interfaces/ecpg/preproc/preproc.h (+542/-537)
src/interfaces/libpq/fe-secure-openssl.c (+37/-3)
src/interfaces/libpq/libpq-dist.rc (+4/-4)
src/interfaces/libpq/libpq.rc.in (+4/-4)
src/interfaces/libpq/po/de.po (+23/-13)
src/interfaces/libpq/po/fr.po (+67/-53)
src/interfaces/libpq/po/ru.po (+32/-17)
src/interfaces/libpq/po/sv.po (+61/-51)
src/pl/plperl/GNUmakefile (+1/-1)
src/pl/plperl/plperl.c (+27/-2)
src/pl/plperl/po/ru.po (+44/-44)
src/pl/plperl/po/sv.po (+44/-44)
src/pl/plperl/ppport.h (+8/-0)
src/pl/plpgsql/src/pl_gram.c (+1163/-1317)
src/pl/plpgsql/src/pl_gram.h (+133/-128)
src/pl/plpgsql/src/po/sv.po (+1/-1)
src/pl/plpython/Makefile (+1/-1)
src/pl/plpython/po/sv.po (+1/-1)
src/pl/tcl/Makefile (+1/-1)
src/pl/tcl/po/sv.po (+1/-1)
src/port/win32ver.rc (+2/-2)
src/test/isolation/expected/temp-schema-cleanup.out (+115/-0)
src/test/isolation/isolation_schedule (+1/-0)
src/test/isolation/specparse.c (+472/-580)
src/test/isolation/specs/temp-schema-cleanup.spec (+85/-0)
src/test/perl/PostgreSQL/Test/Cluster.pm (+16/-0)
src/test/perl/PostgreSQL/Test/Utils.pm (+41/-0)
src/test/perl/PostgresNode.pm (+59/-21)
src/test/perl/TestLib.pm (+72/-33)
src/test/recovery/t/006_logical_decoding.pl (+2/-2)
src/test/recovery/t/010_logical_decoding_timelines.pl (+2/-2)
src/test/recovery/t/017_shm.pl (+7/-6)
src/test/recovery/t/025_stuck_on_old_timeline.pl (+1/-1)
src/test/recovery/t/026_overwrite_contrecord.pl (+4/-1)
src/test/recovery/t/031_recovery_conflict.pl (+377/-0)
src/test/recovery/t/cp_history_files (+0/-7)
src/test/regress/expected/cluster.out (+121/-0)
src/test/regress/expected/create_index.out (+27/-0)
src/test/regress/expected/gist.out (+16/-0)
src/test/regress/expected/groupingsets.out (+49/-0)
src/test/regress/expected/privileges.out (+79/-0)
src/test/regress/expected/rowtypes.out (+2/-21)
src/test/regress/expected/select.out (+7/-0)
src/test/regress/expected/timestamp.out (+60/-0)
src/test/regress/expected/timestamptz.out (+60/-0)
src/test/regress/expected/xmlmap.out (+496/-432)
src/test/regress/expected/xmlmap_1.out (+8/-2)
src/test/regress/sql/cluster.sql (+43/-0)
src/test/regress/sql/create_index.sql (+4/-0)
src/test/regress/sql/gist.sql (+5/-0)
src/test/regress/sql/groupingsets.sql (+9/-0)
src/test/regress/sql/privileges.sql (+64/-0)
src/test/regress/sql/rowtypes.sql (+2/-4)
src/test/regress/sql/select.sql (+5/-0)
src/test/regress/sql/timestamp.sql (+14/-0)
src/test/regress/sql/timestamptz.sql (+14/-0)
src/test/regress/sql/xmlmap.sql (+8/-2)
src/test/ssl/t/001_ssltests.pl (+14/-9)
src/timezone/data/tzdata.zi (+18/-16)
Reviewer Review Type Date Requested Status
Athos Ribeiro (community) Approve
Canonical Server packageset reviewers Pending
Canonical Server Pending
Review via email: mp+422793@code.launchpad.net

Description of the change

This is the MRE for postgresql-10 on Bionic (bug #1973627).

I've created a bileto ticket for this change; you can find it here:

https://bileto.ubuntu.com/#/ticket/4847

and the corresponding PPA is here:

https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/4847/+packages

The builds are still being published, and I'm not sure if bileto is triggering the dep8 tests or not (last time it wasn't), but I'm creating this MP now to get the review out of the way. If there are any dep8 failures I will address them later.

This update contains a CVE fix, which means that it will be uploaded to the security pocket.

To post a comment you must log in.
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

The changes LGTM!

Let's keep an eye on test re-triggers and verify the failures now. In special, the tests for postgresql-multicorn are failing in all architectures.

review: Approve
Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

None of the failures present in the related bileto ticket are regressions. We are clear to proceed here.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.gitrevision b/.gitrevision
2index 74eb6bf..8113666 100644
3--- a/.gitrevision
4+++ b/.gitrevision
5@@ -1 +1 @@
6-fa362d2b3bde0f99ba8a22486205de11b2e00e14
7+6979736b4bcdc57e4699eadcca44b699fd1afd29
8diff --git a/configure b/configure
9index d0d7796..547d05c 100755
10--- a/configure
11+++ b/configure
12@@ -1,6 +1,6 @@
13 #! /bin/sh
14 # Guess values for system-dependent variables and create Makefiles.
15-# Generated by GNU Autoconf 2.69 for PostgreSQL 10.20.
16+# Generated by GNU Autoconf 2.69 for PostgreSQL 10.21.
17 #
18 # Report bugs to <pgsql-bugs@postgresql.org>.
19 #
20@@ -582,8 +582,8 @@ MAKEFLAGS=
21 # Identity of this package.
22 PACKAGE_NAME='PostgreSQL'
23 PACKAGE_TARNAME='postgresql'
24-PACKAGE_VERSION='10.20'
25-PACKAGE_STRING='PostgreSQL 10.20'
26+PACKAGE_VERSION='10.21'
27+PACKAGE_STRING='PostgreSQL 10.21'
28 PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org'
29 PACKAGE_URL=''
30
31@@ -1417,7 +1417,7 @@ if test "$ac_init_help" = "long"; then
32 # Omit some internal or obsolete options to make the list less imposing.
33 # This message is too long to be a string in the A/UX 3.1 sh.
34 cat <<_ACEOF
35-\`configure' configures PostgreSQL 10.20 to adapt to many kinds of systems.
36+\`configure' configures PostgreSQL 10.21 to adapt to many kinds of systems.
37
38 Usage: $0 [OPTION]... [VAR=VALUE]...
39
40@@ -1482,7 +1482,7 @@ fi
41
42 if test -n "$ac_init_help"; then
43 case $ac_init_help in
44- short | recursive ) echo "Configuration of PostgreSQL 10.20:";;
45+ short | recursive ) echo "Configuration of PostgreSQL 10.21:";;
46 esac
47 cat <<\_ACEOF
48
49@@ -1644,7 +1644,7 @@ fi
50 test -n "$ac_init_help" && exit $ac_status
51 if $ac_init_version; then
52 cat <<\_ACEOF
53-PostgreSQL configure 10.20
54+PostgreSQL configure 10.21
55 generated by GNU Autoconf 2.69
56
57 Copyright (C) 2012 Free Software Foundation, Inc.
58@@ -2359,7 +2359,7 @@ cat >config.log <<_ACEOF
59 This file contains any messages produced by compilers while
60 running configure, to aid debugging if configure makes a mistake.
61
62-It was created by PostgreSQL $as_me 10.20, which was
63+It was created by PostgreSQL $as_me 10.21, which was
64 generated by GNU Autoconf 2.69. Invocation command line was
65
66 $ $0 $@
67@@ -9274,9 +9274,12 @@ if test "$ac_res" != no; then :
68
69 fi
70
71-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
72-$as_echo_n "checking for library containing dlopen... " >&6; }
73-if ${ac_cv_search_dlopen+:} false; then :
74+# gcc/clang's sanitizer helper library provides dlopen but not dlsym, thus
75+# when enabling asan the dlopen check doesn't notice that -ldl is actually
76+# required. Just checking for dlsym() ought to suffice.
77+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5
78+$as_echo_n "checking for library containing dlsym... " >&6; }
79+if ${ac_cv_search_dlsym+:} false; then :
80 $as_echo_n "(cached) " >&6
81 else
82 ac_func_search_save_LIBS=$LIBS
83@@ -9289,11 +9292,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
84 #ifdef __cplusplus
85 extern "C"
86 #endif
87-char dlopen ();
88+char dlsym ();
89 int
90 main ()
91 {
92-return dlopen ();
93+return dlsym ();
94 ;
95 return 0;
96 }
97@@ -9306,25 +9309,25 @@ for ac_lib in '' dl; do
98 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
99 fi
100 if ac_fn_c_try_link "$LINENO"; then :
101- ac_cv_search_dlopen=$ac_res
102+ ac_cv_search_dlsym=$ac_res
103 fi
104 rm -f core conftest.err conftest.$ac_objext \
105 conftest$ac_exeext
106- if ${ac_cv_search_dlopen+:} false; then :
107+ if ${ac_cv_search_dlsym+:} false; then :
108 break
109 fi
110 done
111-if ${ac_cv_search_dlopen+:} false; then :
112+if ${ac_cv_search_dlsym+:} false; then :
113
114 else
115- ac_cv_search_dlopen=no
116+ ac_cv_search_dlsym=no
117 fi
118 rm conftest.$ac_ext
119 LIBS=$ac_func_search_save_LIBS
120 fi
121-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
122-$as_echo "$ac_cv_search_dlopen" >&6; }
123-ac_res=$ac_cv_search_dlopen
124+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5
125+$as_echo "$ac_cv_search_dlsym" >&6; }
126+ac_res=$ac_cv_search_dlsym
127 if test "$ac_res" != no; then :
128 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
129
130@@ -17766,7 +17769,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
131 # report actual input values of CONFIG_FILES etc. instead of their
132 # values after options handling.
133 ac_log="
134-This file was extended by PostgreSQL $as_me 10.20, which was
135+This file was extended by PostgreSQL $as_me 10.21, which was
136 generated by GNU Autoconf 2.69. Invocation command line was
137
138 CONFIG_FILES = $CONFIG_FILES
139@@ -17836,7 +17839,7 @@ _ACEOF
140 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
141 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
142 ac_cs_version="\\
143-PostgreSQL config.status 10.20
144+PostgreSQL config.status 10.21
145 configured by $0, generated by GNU Autoconf 2.69,
146 with options \\"\$ac_cs_config\\"
147
148diff --git a/configure.in b/configure.in
149index f8babe7..0866691 100644
150--- a/configure.in
151+++ b/configure.in
152@@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details.
153 dnl
154 m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
155
156-AC_INIT([PostgreSQL], [10.20], [pgsql-bugs@postgresql.org])
157+AC_INIT([PostgreSQL], [10.21], [pgsql-bugs@postgresql.org])
158
159 m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
160 Untested combinations of 'autoconf' and PostgreSQL versions are not
161@@ -1091,7 +1091,10 @@ AC_SUBST(PTHREAD_LIBS)
162
163 AC_CHECK_LIB(m, main)
164 AC_SEARCH_LIBS(setproctitle, util)
165-AC_SEARCH_LIBS(dlopen, dl)
166+# gcc/clang's sanitizer helper library provides dlopen but not dlsym, thus
167+# when enabling asan the dlopen check doesn't notice that -ldl is actually
168+# required. Just checking for dlsym() ought to suffice.
169+AC_SEARCH_LIBS(dlsym, dl)
170 AC_SEARCH_LIBS(socket, [socket ws2_32])
171 AC_SEARCH_LIBS(shl_load, dld)
172 # We only use libld in port/dynloader/aix.c
173diff --git a/contrib/amcheck/expected/check_btree.out b/contrib/amcheck/expected/check_btree.out
174index 4cd2ddd..95c7f84 100644
175--- a/contrib/amcheck/expected/check_btree.out
176+++ b/contrib/amcheck/expected/check_btree.out
177@@ -85,8 +85,31 @@ WHERE relation = ANY(ARRAY['bttest_a', 'bttest_a_idx', 'bttest_b', 'bttest_b_idx
178 (0 rows)
179
180 COMMIT;
181+--
182+-- Check that index expressions and predicates are run as the table's owner
183+--
184+TRUNCATE bttest_a;
185+INSERT INTO bttest_a SELECT * FROM generate_series(1, 1000);
186+ALTER TABLE bttest_a OWNER TO regress_bttest_role;
187+-- A dummy index function checking current_user
188+CREATE FUNCTION ifun(int8) RETURNS int8 AS $$
189+BEGIN
190+ ASSERT current_user = 'regress_bttest_role',
191+ format('ifun(%s) called by %s', $1, current_user);
192+ RETURN $1;
193+END;
194+$$ LANGUAGE plpgsql IMMUTABLE;
195+CREATE INDEX bttest_a_expr_idx ON bttest_a ((ifun(id) + ifun(0)))
196+ WHERE ifun(id + 10) > ifun(10);
197+SELECT bt_index_check('bttest_a_expr_idx');
198+ bt_index_check
199+----------------
200+
201+(1 row)
202+
203 -- cleanup
204 DROP TABLE bttest_a;
205 DROP TABLE bttest_b;
206+DROP FUNCTION ifun(int8);
207 DROP OWNED BY regress_bttest_role; -- permissions
208 DROP ROLE regress_bttest_role;
209diff --git a/contrib/amcheck/sql/check_btree.sql b/contrib/amcheck/sql/check_btree.sql
210index 019e0b7..91b77eb 100644
211--- a/contrib/amcheck/sql/check_btree.sql
212+++ b/contrib/amcheck/sql/check_btree.sql
213@@ -54,8 +54,29 @@ WHERE relation = ANY(ARRAY['bttest_a', 'bttest_a_idx', 'bttest_b', 'bttest_b_idx
214 AND pid = pg_backend_pid();
215 COMMIT;
216
217+--
218+-- Check that index expressions and predicates are run as the table's owner
219+--
220+TRUNCATE bttest_a;
221+INSERT INTO bttest_a SELECT * FROM generate_series(1, 1000);
222+ALTER TABLE bttest_a OWNER TO regress_bttest_role;
223+-- A dummy index function checking current_user
224+CREATE FUNCTION ifun(int8) RETURNS int8 AS $$
225+BEGIN
226+ ASSERT current_user = 'regress_bttest_role',
227+ format('ifun(%s) called by %s', $1, current_user);
228+ RETURN $1;
229+END;
230+$$ LANGUAGE plpgsql IMMUTABLE;
231+
232+CREATE INDEX bttest_a_expr_idx ON bttest_a ((ifun(id) + ifun(0)))
233+ WHERE ifun(id + 10) > ifun(10);
234+
235+SELECT bt_index_check('bttest_a_expr_idx');
236+
237 -- cleanup
238 DROP TABLE bttest_a;
239 DROP TABLE bttest_b;
240+DROP FUNCTION ifun(int8);
241 DROP OWNED BY regress_bttest_role; -- permissions
242 DROP ROLE regress_bttest_role;
243diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c
244index 6c496c5..29b4170 100644
245--- a/contrib/amcheck/verify_nbtree.c
246+++ b/contrib/amcheck/verify_nbtree.c
247@@ -26,6 +26,7 @@
248 #include "miscadmin.h"
249 #include "storage/lmgr.h"
250 #include "storage/smgr.h"
251+#include "utils/guc.h"
252 #include "utils/memutils.h"
253 #include "utils/snapmgr.h"
254
255@@ -163,6 +164,9 @@ bt_index_check_internal(Oid indrelid, bool parentcheck)
256 Relation indrel;
257 Relation heaprel;
258 LOCKMODE lockmode;
259+ Oid save_userid;
260+ int save_sec_context;
261+ int save_nestlevel;
262
263 if (parentcheck)
264 lockmode = ShareLock;
265@@ -179,9 +183,27 @@ bt_index_check_internal(Oid indrelid, bool parentcheck)
266 */
267 heapid = IndexGetRelation(indrelid, true);
268 if (OidIsValid(heapid))
269+ {
270 heaprel = heap_open(heapid, lockmode);
271+
272+ /*
273+ * Switch to the table owner's userid, so that any index functions are
274+ * run as that user. Also lock down security-restricted operations
275+ * and arrange to make GUC variable changes local to this command.
276+ */
277+ GetUserIdAndSecContext(&save_userid, &save_sec_context);
278+ SetUserIdAndSecContext(heaprel->rd_rel->relowner,
279+ save_sec_context | SECURITY_RESTRICTED_OPERATION);
280+ save_nestlevel = NewGUCNestLevel();
281+ }
282 else
283+ {
284 heaprel = NULL;
285+ /* for "gcc -Og" https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78394 */
286+ save_userid = InvalidOid;
287+ save_sec_context = -1;
288+ save_nestlevel = -1;
289+ }
290
291 /*
292 * Open the target index relations separately (like relation_openrv(), but
293@@ -219,6 +241,12 @@ bt_index_check_internal(Oid indrelid, bool parentcheck)
294 bt_check_every_level(indrel, parentcheck);
295 }
296
297+ /* Roll back any GUC changes executed by index functions */
298+ AtEOXact_GUC(false, save_nestlevel);
299+
300+ /* Restore userid and security context */
301+ SetUserIdAndSecContext(save_userid, save_sec_context);
302+
303 /*
304 * Release locks early. That's ok here because nothing in the called
305 * routines will trigger shared cache invalidations to be sent, so we can
306diff --git a/contrib/bloom/t/001_wal.pl b/contrib/bloom/t/001_wal.pl
307index 1b319c9..2953d08 100644
308--- a/contrib/bloom/t/001_wal.pl
309+++ b/contrib/bloom/t/001_wal.pl
310@@ -3,7 +3,18 @@ use strict;
311 use warnings;
312 use PostgresNode;
313 use TestLib;
314-use Test::More tests => 31;
315+use Test::More;
316+
317+if (TestLib::has_wal_read_bug)
318+{
319+ # We'd prefer to use Test::More->builder->todo_start, but the bug causes
320+ # this test file to die(), not merely to fail.
321+ plan skip_all => 'filesystem bug';
322+}
323+else
324+{
325+ plan tests => 31;
326+}
327
328 my $node_master;
329 my $node_standby;
330diff --git a/contrib/cube/cubeparse.c b/contrib/cube/cubeparse.c
331index ac9a1f9..f766310 100644
332--- a/contrib/cube/cubeparse.c
333+++ b/contrib/cube/cubeparse.c
334@@ -1,8 +1,8 @@
335-/* A Bison parser, made by GNU Bison 3.3.2. */
336+/* A Bison parser, made by GNU Bison 3.7.5. */
337
338 /* Bison implementation for Yacc-like parsers in C
339
340- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
341+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
342 Inc.
343
344 This program is free software: you can redistribute it and/or modify
345@@ -34,6 +34,10 @@
346 /* C LALR(1) parser skeleton written by Richard Stallman, by
347 simplifying the original so-called "semantic" parser. */
348
349+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
350+ especially those whose name start with YY_ or yy_. They are
351+ private implementation details that can be changed or removed. */
352+
353 /* All symbols defined below should begin with yy or YY, to avoid
354 infringing on user name space. This should be done even for local
355 variables, as they might otherwise be expanded by user macros.
356@@ -41,14 +45,11 @@
357 define necessary library symbols; they are noted "INFRINGES ON
358 USER NAME SPACE" below. */
359
360-/* Undocumented macros, especially those whose name start with YY_,
361- are private implementation details. Do not rely on them. */
362-
363-/* Identify Bison output. */
364-#define YYBISON 1
365+/* Identify Bison output, and Bison version. */
366+#define YYBISON 30705
367
368-/* Bison version. */
369-#define YYBISON_VERSION "3.3.2"
370+/* Bison version string. */
371+#define YYBISON_VERSION "3.7.5"
372
373 /* Skeleton name. */
374 #define YYSKELETON_NAME "yacc.c"
375@@ -69,12 +70,11 @@
376 #define yyerror cube_yyerror
377 #define yydebug cube_yydebug
378 #define yynerrs cube_yynerrs
379-
380 #define yylval cube_yylval
381 #define yychar cube_yychar
382
383 /* First part of user prologue. */
384-#line 1 "cubeparse.y" /* yacc.c:337 */
385+#line 1 "cubeparse.y"
386
387 /* contrib/cube/cubeparse.y */
388
389@@ -108,7 +108,17 @@ static NDBOX *write_box(int dim, char *str1, char *str2);
390 static NDBOX *write_point_as_box(int dim, char *str);
391
392
393-#line 112 "cubeparse.c" /* yacc.c:337 */
394+#line 112 "cubeparse.c"
395+
396+# ifndef YY_CAST
397+# ifdef __cplusplus
398+# define YY_CAST(Type, Val) static_cast<Type> (Val)
399+# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
400+# else
401+# define YY_CAST(Type, Val) ((Type) (Val))
402+# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
403+# endif
404+# endif
405 # ifndef YY_NULLPTR
406 # if defined __cplusplus
407 # if 201103L <= __cplusplus
408@@ -121,14 +131,6 @@ static NDBOX *write_point_as_box(int dim, char *str);
409 # endif
410 # endif
411
412-/* Enabling verbose error messages. */
413-#ifdef YYERROR_VERBOSE
414-# undef YYERROR_VERBOSE
415-# define YYERROR_VERBOSE 1
416-#else
417-# define YYERROR_VERBOSE 0
418-#endif
419-
420
421 /* Debug traces. */
422 #ifndef YYDEBUG
423@@ -138,18 +140,23 @@ static NDBOX *write_point_as_box(int dim, char *str);
424 extern int cube_yydebug;
425 #endif
426
427-/* Token type. */
428+/* Token kinds. */
429 #ifndef YYTOKENTYPE
430 # define YYTOKENTYPE
431 enum yytokentype
432 {
433- CUBEFLOAT = 258,
434- O_PAREN = 259,
435- C_PAREN = 260,
436- O_BRACKET = 261,
437- C_BRACKET = 262,
438- COMMA = 263
439+ YYEMPTY = -2,
440+ YYEOF = 0, /* "end of file" */
441+ YYerror = 256, /* error */
442+ YYUNDEF = 257, /* "invalid token" */
443+ CUBEFLOAT = 258, /* CUBEFLOAT */
444+ O_PAREN = 259, /* O_PAREN */
445+ C_PAREN = 260, /* C_PAREN */
446+ O_BRACKET = 261, /* O_BRACKET */
447+ C_BRACKET = 262, /* C_BRACKET */
448+ COMMA = 263 /* COMMA */
449 };
450+ typedef enum yytokentype yytoken_kind_t;
451 #endif
452
453 /* Value type. */
454@@ -165,6 +172,26 @@ extern YYSTYPE cube_yylval;
455 int cube_yyparse (NDBOX **result);
456
457
458+/* Symbol kind. */
459+enum yysymbol_kind_t
460+{
461+ YYSYMBOL_YYEMPTY = -2,
462+ YYSYMBOL_YYEOF = 0, /* "end of file" */
463+ YYSYMBOL_YYerror = 1, /* error */
464+ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
465+ YYSYMBOL_CUBEFLOAT = 3, /* CUBEFLOAT */
466+ YYSYMBOL_O_PAREN = 4, /* O_PAREN */
467+ YYSYMBOL_C_PAREN = 5, /* C_PAREN */
468+ YYSYMBOL_O_BRACKET = 6, /* O_BRACKET */
469+ YYSYMBOL_C_BRACKET = 7, /* C_BRACKET */
470+ YYSYMBOL_COMMA = 8, /* COMMA */
471+ YYSYMBOL_YYACCEPT = 9, /* $accept */
472+ YYSYMBOL_box = 10, /* box */
473+ YYSYMBOL_paren_list = 11, /* paren_list */
474+ YYSYMBOL_list = 12 /* list */
475+};
476+typedef enum yysymbol_kind_t yysymbol_kind_t;
477+
478
479
480
481@@ -172,28 +199,87 @@ int cube_yyparse (NDBOX **result);
482 # undef short
483 #endif
484
485-#ifdef YYTYPE_UINT8
486-typedef YYTYPE_UINT8 yytype_uint8;
487-#else
488-typedef unsigned char yytype_uint8;
489+/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
490+ <limits.h> and (if available) <stdint.h> are included
491+ so that the code can choose integer types of a good width. */
492+
493+#ifndef __PTRDIFF_MAX__
494+# include <limits.h> /* INFRINGES ON USER NAME SPACE */
495+# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
496+# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
497+# define YY_STDINT_H
498+# endif
499 #endif
500
501-#ifdef YYTYPE_INT8
502-typedef YYTYPE_INT8 yytype_int8;
503+/* Narrow types that promote to a signed type and that can represent a
504+ signed or unsigned integer of at least N bits. In tables they can
505+ save space and decrease cache pressure. Promoting to a signed type
506+ helps avoid bugs in integer arithmetic. */
507+
508+#ifdef __INT_LEAST8_MAX__
509+typedef __INT_LEAST8_TYPE__ yytype_int8;
510+#elif defined YY_STDINT_H
511+typedef int_least8_t yytype_int8;
512 #else
513 typedef signed char yytype_int8;
514 #endif
515
516-#ifdef YYTYPE_UINT16
517-typedef YYTYPE_UINT16 yytype_uint16;
518+#ifdef __INT_LEAST16_MAX__
519+typedef __INT_LEAST16_TYPE__ yytype_int16;
520+#elif defined YY_STDINT_H
521+typedef int_least16_t yytype_int16;
522 #else
523-typedef unsigned short yytype_uint16;
524+typedef short yytype_int16;
525 #endif
526
527-#ifdef YYTYPE_INT16
528-typedef YYTYPE_INT16 yytype_int16;
529+/* Work around bug in HP-UX 11.23, which defines these macros
530+ incorrectly for preprocessor constants. This workaround can likely
531+ be removed in 2023, as HPE has promised support for HP-UX 11.23
532+ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
533+ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
534+#ifdef __hpux
535+# undef UINT_LEAST8_MAX
536+# undef UINT_LEAST16_MAX
537+# define UINT_LEAST8_MAX 255
538+# define UINT_LEAST16_MAX 65535
539+#endif
540+
541+#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
542+typedef __UINT_LEAST8_TYPE__ yytype_uint8;
543+#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
544+ && UINT_LEAST8_MAX <= INT_MAX)
545+typedef uint_least8_t yytype_uint8;
546+#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
547+typedef unsigned char yytype_uint8;
548 #else
549-typedef short yytype_int16;
550+typedef short yytype_uint8;
551+#endif
552+
553+#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
554+typedef __UINT_LEAST16_TYPE__ yytype_uint16;
555+#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
556+ && UINT_LEAST16_MAX <= INT_MAX)
557+typedef uint_least16_t yytype_uint16;
558+#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
559+typedef unsigned short yytype_uint16;
560+#else
561+typedef int yytype_uint16;
562+#endif
563+
564+#ifndef YYPTRDIFF_T
565+# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
566+# define YYPTRDIFF_T __PTRDIFF_TYPE__
567+# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
568+# elif defined PTRDIFF_MAX
569+# ifndef ptrdiff_t
570+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
571+# endif
572+# define YYPTRDIFF_T ptrdiff_t
573+# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
574+# else
575+# define YYPTRDIFF_T long
576+# define YYPTRDIFF_MAXIMUM LONG_MAX
577+# endif
578 #endif
579
580 #ifndef YYSIZE_T
581@@ -201,7 +287,7 @@ typedef short yytype_int16;
582 # define YYSIZE_T __SIZE_TYPE__
583 # elif defined size_t
584 # define YYSIZE_T size_t
585-# elif ! defined YYSIZE_T
586+# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
587 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
588 # define YYSIZE_T size_t
589 # else
590@@ -209,7 +295,20 @@ typedef short yytype_int16;
591 # endif
592 #endif
593
594-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
595+#define YYSIZE_MAXIMUM \
596+ YY_CAST (YYPTRDIFF_T, \
597+ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
598+ ? YYPTRDIFF_MAXIMUM \
599+ : YY_CAST (YYSIZE_T, -1)))
600+
601+#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
602+
603+
604+/* Stored state numbers (used for stacks). */
605+typedef yytype_int8 yy_state_t;
606+
607+/* State numbers in computations. */
608+typedef int yy_state_fast_t;
609
610 #ifndef YY_
611 # if defined YYENABLE_NLS && YYENABLE_NLS
612@@ -223,38 +322,37 @@ typedef short yytype_int16;
613 # endif
614 #endif
615
616-#ifndef YY_ATTRIBUTE
617-# if (defined __GNUC__ \
618- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
619- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
620-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
621-# else
622-# define YY_ATTRIBUTE(Spec) /* empty */
623-# endif
624-#endif
625
626 #ifndef YY_ATTRIBUTE_PURE
627-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
628+# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
629+# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
630+# else
631+# define YY_ATTRIBUTE_PURE
632+# endif
633 #endif
634
635 #ifndef YY_ATTRIBUTE_UNUSED
636-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
637+# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
638+# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
639+# else
640+# define YY_ATTRIBUTE_UNUSED
641+# endif
642 #endif
643
644 /* Suppress unused-variable warnings by "using" E. */
645 #if ! defined lint || defined __GNUC__
646-# define YYUSE(E) ((void) (E))
647+# define YY_USE(E) ((void) (E))
648 #else
649-# define YYUSE(E) /* empty */
650+# define YY_USE(E) /* empty */
651 #endif
652
653 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
654 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
655-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
656- _Pragma ("GCC diagnostic push") \
657- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
658+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
659+ _Pragma ("GCC diagnostic push") \
660+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
661 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
662-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
663+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
664 _Pragma ("GCC diagnostic pop")
665 #else
666 # define YY_INITIAL_VALUE(Value) Value
667@@ -267,8 +365,22 @@ typedef short yytype_int16;
668 # define YY_INITIAL_VALUE(Value) /* Nothing. */
669 #endif
670
671+#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
672+# define YY_IGNORE_USELESS_CAST_BEGIN \
673+ _Pragma ("GCC diagnostic push") \
674+ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
675+# define YY_IGNORE_USELESS_CAST_END \
676+ _Pragma ("GCC diagnostic pop")
677+#endif
678+#ifndef YY_IGNORE_USELESS_CAST_BEGIN
679+# define YY_IGNORE_USELESS_CAST_BEGIN
680+# define YY_IGNORE_USELESS_CAST_END
681+#endif
682
683-#if ! defined yyoverflow || YYERROR_VERBOSE
684+
685+#define YY_ASSERT(E) ((void) (0 && (E)))
686+
687+#if !defined yyoverflow
688
689 /* The parser invokes alloca or malloc; define the necessary symbols. */
690
691@@ -333,8 +445,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
692 # endif
693 # endif
694 # endif
695-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
696-
697+#endif /* !defined yyoverflow */
698
699 #if (! defined yyoverflow \
700 && (! defined __cplusplus \
701@@ -343,17 +454,17 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
702 /* A type that is properly aligned for any stack member. */
703 union yyalloc
704 {
705- yytype_int16 yyss_alloc;
706+ yy_state_t yyss_alloc;
707 YYSTYPE yyvs_alloc;
708 };
709
710 /* The size of the maximum gap between one aligned stack and the next. */
711-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
712+# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
713
714 /* The size of an array large to enough to hold all stacks, each with
715 N elements. */
716 # define YYSTACK_BYTES(N) \
717- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
718+ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
719 + YYSTACK_GAP_MAXIMUM)
720
721 # define YYCOPY_NEEDED 1
722@@ -366,11 +477,11 @@ union yyalloc
723 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
724 do \
725 { \
726- YYSIZE_T yynewbytes; \
727+ YYPTRDIFF_T yynewbytes; \
728 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
729 Stack = &yyptr->Stack_alloc; \
730- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
731- yyptr += yynewbytes / sizeof (*yyptr); \
732+ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
733+ yyptr += yynewbytes / YYSIZEOF (*yyptr); \
734 } \
735 while (0)
736
737@@ -382,12 +493,12 @@ union yyalloc
738 # ifndef YYCOPY
739 # if defined __GNUC__ && 1 < __GNUC__
740 # define YYCOPY(Dst, Src, Count) \
741- __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
742+ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
743 # else
744 # define YYCOPY(Dst, Src, Count) \
745 do \
746 { \
747- YYSIZE_T yyi; \
748+ YYPTRDIFF_T yyi; \
749 for (yyi = 0; yyi < (Count); yyi++) \
750 (Dst)[yyi] = (Src)[yyi]; \
751 } \
752@@ -410,17 +521,20 @@ union yyalloc
753 /* YYNSTATES -- Number of states. */
754 #define YYNSTATES 19
755
756-#define YYUNDEFTOK 2
757+/* YYMAXUTOK -- Last valid token kind. */
758 #define YYMAXUTOK 263
759
760+
761 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
762 as returned by yylex, with out-of-bounds checking. */
763-#define YYTRANSLATE(YYX) \
764- ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
765+#define YYTRANSLATE(YYX) \
766+ (0 <= (YYX) && (YYX) <= YYMAXUTOK \
767+ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
768+ : YYSYMBOL_YYUNDEF)
769
770 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
771 as returned by yylex. */
772-static const yytype_uint8 yytranslate[] =
773+static const yytype_int8 yytranslate[] =
774 {
775 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
776 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
777@@ -459,34 +573,47 @@ static const yytype_uint8 yyrline[] =
778 };
779 #endif
780
781-#if YYDEBUG || YYERROR_VERBOSE || 0
782+/** Accessing symbol of state STATE. */
783+#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
784+
785+#if YYDEBUG || 0
786+/* The user-facing name of the symbol whose (internal) number is
787+ YYSYMBOL. No bounds checking. */
788+static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
789+
790 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
791 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
792 static const char *const yytname[] =
793 {
794- "$end", "error", "$undefined", "CUBEFLOAT", "O_PAREN", "C_PAREN",
795- "O_BRACKET", "C_BRACKET", "COMMA", "$accept", "box", "paren_list",
796- "list", YY_NULLPTR
797+ "\"end of file\"", "error", "\"invalid token\"", "CUBEFLOAT", "O_PAREN",
798+ "C_PAREN", "O_BRACKET", "C_BRACKET", "COMMA", "$accept", "box",
799+ "paren_list", "list", YY_NULLPTR
800 };
801+
802+static const char *
803+yysymbol_name (yysymbol_kind_t yysymbol)
804+{
805+ return yytname[yysymbol];
806+}
807 #endif
808
809-# ifdef YYPRINT
810+#ifdef YYPRINT
811 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
812 (internal) symbol number NUM (which must be that of a token). */
813-static const yytype_uint16 yytoknum[] =
814+static const yytype_int16 yytoknum[] =
815 {
816 0, 256, 257, 258, 259, 260, 261, 262, 263
817 };
818-# endif
819+#endif
820
821-#define YYPACT_NINF -4
822+#define YYPACT_NINF (-4)
823
824-#define yypact_value_is_default(Yystate) \
825- (!!((Yystate) == (-4)))
826+#define yypact_value_is_default(Yyn) \
827+ ((Yyn) == YYPACT_NINF)
828
829-#define YYTABLE_NINF -1
830+#define YYTABLE_NINF (-1)
831
832-#define yytable_value_is_error(Yytable_value) \
833+#define yytable_value_is_error(Yyn) \
834 0
835
836 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
837@@ -500,7 +627,7 @@ static const yytype_int8 yypact[] =
838 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
839 Performed when YYTABLE does not specify something else to do. Zero
840 means the default is an error. */
841-static const yytype_uint8 yydefact[] =
842+static const yytype_int8 yydefact[] =
843 {
844 0, 8, 0, 0, 0, 4, 5, 7, 0, 0,
845 1, 0, 0, 6, 0, 3, 9, 0, 2
846@@ -515,19 +642,19 @@ static const yytype_int8 yypgoto[] =
847 /* YYDEFGOTO[NTERM-NUM]. */
848 static const yytype_int8 yydefgoto[] =
849 {
850- -1, 4, 5, 6
851+ 0, 4, 5, 6
852 };
853
854 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
855 positive, shift that token. If negative, reduce the rule whose
856 number is the opposite. If YYTABLE_NINF, syntax error. */
857-static const yytype_uint8 yytable[] =
858+static const yytype_int8 yytable[] =
859 {
860 9, 1, 2, 1, 3, 7, 13, 2, 15, 12,
861 10, 17, 11, 12, 14, 16, 18, 8
862 };
863
864-static const yytype_uint8 yycheck[] =
865+static const yytype_int8 yycheck[] =
866 {
867 3, 3, 4, 3, 6, 5, 5, 4, 11, 8,
868 0, 14, 8, 8, 8, 3, 7, 2
869@@ -535,29 +662,29 @@ static const yytype_uint8 yycheck[] =
870
871 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
872 symbol of state STATE-NUM. */
873-static const yytype_uint8 yystos[] =
874+static const yytype_int8 yystos[] =
875 {
876 0, 3, 4, 6, 10, 11, 12, 5, 12, 11,
877 0, 8, 8, 5, 8, 11, 3, 11, 7
878 };
879
880 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
881-static const yytype_uint8 yyr1[] =
882+static const yytype_int8 yyr1[] =
883 {
884 0, 9, 10, 10, 10, 10, 11, 11, 12, 12
885 };
886
887 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
888-static const yytype_uint8 yyr2[] =
889+static const yytype_int8 yyr2[] =
890 {
891 0, 2, 5, 3, 1, 1, 3, 2, 1, 3
892 };
893
894
895+enum { YYENOMEM = -2 };
896+
897 #define yyerrok (yyerrstatus = 0)
898 #define yyclearin (yychar = YYEMPTY)
899-#define YYEMPTY (-2)
900-#define YYEOF 0
901
902 #define YYACCEPT goto yyacceptlab
903 #define YYABORT goto yyabortlab
904@@ -583,10 +710,9 @@ static const yytype_uint8 yyr2[] =
905 } \
906 while (0)
907
908-/* Error token number */
909-#define YYTERROR 1
910-#define YYERRCODE 256
911-
912+/* Backward compatibility with an undocumented macro.
913+ Use YYerror or YYUNDEF. */
914+#define YYERRCODE YYUNDEF
915
916
917 /* Enable debugging if requested. */
918@@ -604,18 +730,18 @@ do { \
919 } while (0)
920
921 /* This macro is provided for backward compatibility. */
922-#ifndef YY_LOCATION_PRINT
923-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
924-#endif
925+# ifndef YY_LOCATION_PRINT
926+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
927+# endif
928
929
930-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
931+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
932 do { \
933 if (yydebug) \
934 { \
935 YYFPRINTF (stderr, "%s ", Title); \
936 yy_symbol_print (stderr, \
937- Type, Value, result); \
938+ Kind, Value, result); \
939 YYFPRINTF (stderr, "\n"); \
940 } \
941 } while (0)
942@@ -626,18 +752,21 @@ do { \
943 `-----------------------------------*/
944
945 static void
946-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result)
947+yy_symbol_value_print (FILE *yyo,
948+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, NDBOX **result)
949 {
950 FILE *yyoutput = yyo;
951- YYUSE (yyoutput);
952- YYUSE (result);
953+ YY_USE (yyoutput);
954+ YY_USE (result);
955 if (!yyvaluep)
956 return;
957 # ifdef YYPRINT
958- if (yytype < YYNTOKENS)
959- YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
960+ if (yykind < YYNTOKENS)
961+ YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
962 # endif
963- YYUSE (yytype);
964+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
965+ YY_USE (yykind);
966+ YY_IGNORE_MAYBE_UNINITIALIZED_END
967 }
968
969
970@@ -646,12 +775,13 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, ND
971 `---------------------------*/
972
973 static void
974-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result)
975+yy_symbol_print (FILE *yyo,
976+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, NDBOX **result)
977 {
978 YYFPRINTF (yyo, "%s %s (",
979- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
980+ yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
981
982- yy_symbol_value_print (yyo, yytype, yyvaluep, result);
983+ yy_symbol_value_print (yyo, yykind, yyvaluep, result);
984 YYFPRINTF (yyo, ")");
985 }
986
987@@ -661,7 +791,7 @@ yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **
988 `------------------------------------------------------------------*/
989
990 static void
991-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
992+yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
993 {
994 YYFPRINTF (stderr, "Stack now");
995 for (; yybottom <= yytop; yybottom++)
996@@ -684,21 +814,21 @@ do { \
997 `------------------------------------------------*/
998
999 static void
1000-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, NDBOX **result)
1001+yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
1002+ int yyrule, NDBOX **result)
1003 {
1004- unsigned long yylno = yyrline[yyrule];
1005+ int yylno = yyrline[yyrule];
1006 int yynrhs = yyr2[yyrule];
1007 int yyi;
1008- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1009+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1010 yyrule - 1, yylno);
1011 /* The symbols being reduced. */
1012 for (yyi = 0; yyi < yynrhs; yyi++)
1013 {
1014 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1015 yy_symbol_print (stderr,
1016- yystos[yyssp[yyi + 1 - yynrhs]],
1017- &yyvsp[(yyi + 1) - (yynrhs)]
1018- , result);
1019+ YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
1020+ &yyvsp[(yyi + 1) - (yynrhs)], result);
1021 YYFPRINTF (stderr, "\n");
1022 }
1023 }
1024@@ -713,8 +843,8 @@ do { \
1025 multiple parsers can coexist. */
1026 int yydebug;
1027 #else /* !YYDEBUG */
1028-# define YYDPRINTF(Args)
1029-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1030+# define YYDPRINTF(Args) ((void) 0)
1031+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1032 # define YY_STACK_PRINT(Bottom, Top)
1033 # define YY_REDUCE_PRINT(Rule)
1034 #endif /* !YYDEBUG */
1035@@ -737,255 +867,31 @@ int yydebug;
1036 #endif
1037
1038
1039-#if YYERROR_VERBOSE
1040-
1041-# ifndef yystrlen
1042-# if defined __GLIBC__ && defined _STRING_H
1043-# define yystrlen strlen
1044-# else
1045-/* Return the length of YYSTR. */
1046-static YYSIZE_T
1047-yystrlen (const char *yystr)
1048-{
1049- YYSIZE_T yylen;
1050- for (yylen = 0; yystr[yylen]; yylen++)
1051- continue;
1052- return yylen;
1053-}
1054-# endif
1055-# endif
1056-
1057-# ifndef yystpcpy
1058-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1059-# define yystpcpy stpcpy
1060-# else
1061-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1062- YYDEST. */
1063-static char *
1064-yystpcpy (char *yydest, const char *yysrc)
1065-{
1066- char *yyd = yydest;
1067- const char *yys = yysrc;
1068-
1069- while ((*yyd++ = *yys++) != '\0')
1070- continue;
1071
1072- return yyd - 1;
1073-}
1074-# endif
1075-# endif
1076
1077-# ifndef yytnamerr
1078-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1079- quotes and backslashes, so that it's suitable for yyerror. The
1080- heuristic is that double-quoting is unnecessary unless the string
1081- contains an apostrophe, a comma, or backslash (other than
1082- backslash-backslash). YYSTR is taken from yytname. If YYRES is
1083- null, do not copy; instead, return the length of what the result
1084- would have been. */
1085-static YYSIZE_T
1086-yytnamerr (char *yyres, const char *yystr)
1087-{
1088- if (*yystr == '"')
1089- {
1090- YYSIZE_T yyn = 0;
1091- char const *yyp = yystr;
1092-
1093- for (;;)
1094- switch (*++yyp)
1095- {
1096- case '\'':
1097- case ',':
1098- goto do_not_strip_quotes;
1099-
1100- case '\\':
1101- if (*++yyp != '\\')
1102- goto do_not_strip_quotes;
1103- else
1104- goto append;
1105-
1106- append:
1107- default:
1108- if (yyres)
1109- yyres[yyn] = *yyp;
1110- yyn++;
1111- break;
1112-
1113- case '"':
1114- if (yyres)
1115- yyres[yyn] = '\0';
1116- return yyn;
1117- }
1118- do_not_strip_quotes: ;
1119- }
1120
1121- if (! yyres)
1122- return yystrlen (yystr);
1123-
1124- return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
1125-}
1126-# endif
1127-
1128-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1129- about the unexpected token YYTOKEN for the state stack whose top is
1130- YYSSP.
1131-
1132- Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1133- not large enough to hold the message. In that case, also set
1134- *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1135- required number of bytes is too large to store. */
1136-static int
1137-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1138- yytype_int16 *yyssp, int yytoken)
1139-{
1140- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1141- YYSIZE_T yysize = yysize0;
1142- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1143- /* Internationalized format string. */
1144- const char *yyformat = YY_NULLPTR;
1145- /* Arguments of yyformat. */
1146- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1147- /* Number of reported tokens (one for the "unexpected", one per
1148- "expected"). */
1149- int yycount = 0;
1150-
1151- /* There are many possibilities here to consider:
1152- - If this state is a consistent state with a default action, then
1153- the only way this function was invoked is if the default action
1154- is an error action. In that case, don't check for expected
1155- tokens because there are none.
1156- - The only way there can be no lookahead present (in yychar) is if
1157- this state is a consistent state with a default action. Thus,
1158- detecting the absence of a lookahead is sufficient to determine
1159- that there is no unexpected or expected token to report. In that
1160- case, just report a simple "syntax error".
1161- - Don't assume there isn't a lookahead just because this state is a
1162- consistent state with a default action. There might have been a
1163- previous inconsistent state, consistent state with a non-default
1164- action, or user semantic action that manipulated yychar.
1165- - Of course, the expected token list depends on states to have
1166- correct lookahead information, and it depends on the parser not
1167- to perform extra reductions after fetching a lookahead from the
1168- scanner and before detecting a syntax error. Thus, state merging
1169- (from LALR or IELR) and default reductions corrupt the expected
1170- token list. However, the list is correct for canonical LR with
1171- one exception: it will still contain any token that will not be
1172- accepted due to an error action in a later state.
1173- */
1174- if (yytoken != YYEMPTY)
1175- {
1176- int yyn = yypact[*yyssp];
1177- yyarg[yycount++] = yytname[yytoken];
1178- if (!yypact_value_is_default (yyn))
1179- {
1180- /* Start YYX at -YYN if negative to avoid negative indexes in
1181- YYCHECK. In other words, skip the first -YYN actions for
1182- this state because they are default actions. */
1183- int yyxbegin = yyn < 0 ? -yyn : 0;
1184- /* Stay within bounds of both yycheck and yytname. */
1185- int yychecklim = YYLAST - yyn + 1;
1186- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1187- int yyx;
1188-
1189- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1190- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1191- && !yytable_value_is_error (yytable[yyx + yyn]))
1192- {
1193- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1194- {
1195- yycount = 1;
1196- yysize = yysize0;
1197- break;
1198- }
1199- yyarg[yycount++] = yytname[yyx];
1200- {
1201- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1202- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1203- yysize = yysize1;
1204- else
1205- return 2;
1206- }
1207- }
1208- }
1209- }
1210-
1211- switch (yycount)
1212- {
1213-# define YYCASE_(N, S) \
1214- case N: \
1215- yyformat = S; \
1216- break
1217- default: /* Avoid compiler warnings. */
1218- YYCASE_(0, YY_("syntax error"));
1219- YYCASE_(1, YY_("syntax error, unexpected %s"));
1220- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1221- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1222- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1223- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1224-# undef YYCASE_
1225- }
1226-
1227- {
1228- YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1229- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1230- yysize = yysize1;
1231- else
1232- return 2;
1233- }
1234-
1235- if (*yymsg_alloc < yysize)
1236- {
1237- *yymsg_alloc = 2 * yysize;
1238- if (! (yysize <= *yymsg_alloc
1239- && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1240- *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1241- return 1;
1242- }
1243-
1244- /* Avoid sprintf, as that infringes on the user's name space.
1245- Don't have undefined behavior even if the translation
1246- produced a string with the wrong number of "%s"s. */
1247- {
1248- char *yyp = *yymsg;
1249- int yyi = 0;
1250- while ((*yyp = *yyformat) != '\0')
1251- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1252- {
1253- yyp += yytnamerr (yyp, yyarg[yyi++]);
1254- yyformat += 2;
1255- }
1256- else
1257- {
1258- yyp++;
1259- yyformat++;
1260- }
1261- }
1262- return 0;
1263-}
1264-#endif /* YYERROR_VERBOSE */
1265
1266 /*-----------------------------------------------.
1267 | Release the memory associated to this symbol. |
1268 `-----------------------------------------------*/
1269
1270 static void
1271-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, NDBOX **result)
1272+yydestruct (const char *yymsg,
1273+ yysymbol_kind_t yykind, YYSTYPE *yyvaluep, NDBOX **result)
1274 {
1275- YYUSE (yyvaluep);
1276- YYUSE (result);
1277+ YY_USE (yyvaluep);
1278+ YY_USE (result);
1279 if (!yymsg)
1280 yymsg = "Deleting";
1281- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1282+ YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1283
1284 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1285- YYUSE (yytype);
1286+ YY_USE (yykind);
1287 YY_IGNORE_MAYBE_UNINITIALIZED_END
1288 }
1289
1290
1291-
1292-
1293-/* The lookahead symbol. */
1294+/* Lookahead token kind. */
1295 int yychar;
1296
1297 /* The semantic value of the lookahead symbol. */
1298@@ -994,6 +900,8 @@ YYSTYPE yylval;
1299 int yynerrs;
1300
1301
1302+
1303+
1304 /*----------.
1305 | yyparse. |
1306 `----------*/
1307@@ -1001,43 +909,36 @@ int yynerrs;
1308 int
1309 yyparse (NDBOX **result)
1310 {
1311- int yystate;
1312+ yy_state_fast_t yystate = 0;
1313 /* Number of tokens to shift before error messages enabled. */
1314- int yyerrstatus;
1315-
1316- /* The stacks and their tools:
1317- 'yyss': related to states.
1318- 'yyvs': related to semantic values.
1319+ int yyerrstatus = 0;
1320
1321- Refer to the stacks through separate pointers, to allow yyoverflow
1322+ /* Refer to the stacks through separate pointers, to allow yyoverflow
1323 to reallocate them elsewhere. */
1324
1325- /* The state stack. */
1326- yytype_int16 yyssa[YYINITDEPTH];
1327- yytype_int16 *yyss;
1328- yytype_int16 *yyssp;
1329+ /* Their size. */
1330+ YYPTRDIFF_T yystacksize = YYINITDEPTH;
1331
1332- /* The semantic value stack. */
1333- YYSTYPE yyvsa[YYINITDEPTH];
1334- YYSTYPE *yyvs;
1335- YYSTYPE *yyvsp;
1336+ /* The state stack: array, bottom, top. */
1337+ yy_state_t yyssa[YYINITDEPTH];
1338+ yy_state_t *yyss = yyssa;
1339+ yy_state_t *yyssp = yyss;
1340
1341- YYSIZE_T yystacksize;
1342+ /* The semantic value stack: array, bottom, top. */
1343+ YYSTYPE yyvsa[YYINITDEPTH];
1344+ YYSTYPE *yyvs = yyvsa;
1345+ YYSTYPE *yyvsp = yyvs;
1346
1347 int yyn;
1348+ /* The return value of yyparse. */
1349 int yyresult;
1350- /* Lookahead token as an internal (translated) token number. */
1351- int yytoken = 0;
1352+ /* Lookahead symbol kind. */
1353+ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1354 /* The variables used to return semantic value and location from the
1355 action routines. */
1356 YYSTYPE yyval;
1357
1358-#if YYERROR_VERBOSE
1359- /* Buffer for error messages, and its allocated size. */
1360- char yymsgbuf[128];
1361- char *yymsg = yymsgbuf;
1362- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1363-#endif
1364+
1365
1366 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1367
1368@@ -1045,15 +946,8 @@ yyparse (NDBOX **result)
1369 Keep to zero when no symbol should be popped. */
1370 int yylen = 0;
1371
1372- yyssp = yyss = yyssa;
1373- yyvsp = yyvs = yyvsa;
1374- yystacksize = YYINITDEPTH;
1375-
1376 YYDPRINTF ((stderr, "Starting parse\n"));
1377
1378- yystate = 0;
1379- yyerrstatus = 0;
1380- yynerrs = 0;
1381 yychar = YYEMPTY; /* Cause a token to be read. */
1382 goto yysetstate;
1383
1384@@ -1068,10 +962,15 @@ yynewstate:
1385
1386
1387 /*--------------------------------------------------------------------.
1388-| yynewstate -- set current state (the top of the stack) to yystate. |
1389+| yysetstate -- set current state (the top of the stack) to yystate. |
1390 `--------------------------------------------------------------------*/
1391 yysetstate:
1392- *yyssp = (yytype_int16) yystate;
1393+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1394+ YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1395+ YY_IGNORE_USELESS_CAST_BEGIN
1396+ *yyssp = YY_CAST (yy_state_t, yystate);
1397+ YY_IGNORE_USELESS_CAST_END
1398+ YY_STACK_PRINT (yyss, yyssp);
1399
1400 if (yyss + yystacksize - 1 <= yyssp)
1401 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1402@@ -1079,23 +978,23 @@ yysetstate:
1403 #else
1404 {
1405 /* Get the current used size of the three stacks, in elements. */
1406- YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
1407+ YYPTRDIFF_T yysize = yyssp - yyss + 1;
1408
1409 # if defined yyoverflow
1410 {
1411 /* Give user a chance to reallocate the stack. Use copies of
1412 these so that the &'s don't force the real ones into
1413 memory. */
1414+ yy_state_t *yyss1 = yyss;
1415 YYSTYPE *yyvs1 = yyvs;
1416- yytype_int16 *yyss1 = yyss;
1417
1418 /* Each stack pointer address is followed by the size of the
1419 data in use in that stack, in bytes. This used to be a
1420 conditional around just the two extra args, but that might
1421 be undefined if yyoverflow is a macro. */
1422 yyoverflow (YY_("memory exhausted"),
1423- &yyss1, yysize * sizeof (*yyssp),
1424- &yyvs1, yysize * sizeof (*yyvsp),
1425+ &yyss1, yysize * YYSIZEOF (*yyssp),
1426+ &yyvs1, yysize * YYSIZEOF (*yyvsp),
1427 &yystacksize);
1428 yyss = yyss1;
1429 yyvs = yyvs1;
1430@@ -1109,14 +1008,15 @@ yysetstate:
1431 yystacksize = YYMAXDEPTH;
1432
1433 {
1434- yytype_int16 *yyss1 = yyss;
1435+ yy_state_t *yyss1 = yyss;
1436 union yyalloc *yyptr =
1437- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1438+ YY_CAST (union yyalloc *,
1439+ YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1440 if (! yyptr)
1441 goto yyexhaustedlab;
1442 YYSTACK_RELOCATE (yyss_alloc, yyss);
1443 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1444-# undef YYSTACK_RELOCATE
1445+# undef YYSTACK_RELOCATE
1446 if (yyss1 != yyssa)
1447 YYSTACK_FREE (yyss1);
1448 }
1449@@ -1125,16 +1025,16 @@ yysetstate:
1450 yyssp = yyss + yysize - 1;
1451 yyvsp = yyvs + yysize - 1;
1452
1453- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1454- (unsigned long) yystacksize));
1455+ YY_IGNORE_USELESS_CAST_BEGIN
1456+ YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1457+ YY_CAST (long, yystacksize)));
1458+ YY_IGNORE_USELESS_CAST_END
1459
1460 if (yyss + yystacksize - 1 <= yyssp)
1461 YYABORT;
1462 }
1463 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1464
1465- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1466-
1467 if (yystate == YYFINAL)
1468 YYACCEPT;
1469
1470@@ -1155,18 +1055,29 @@ yybackup:
1471
1472 /* Not known => get a lookahead token if don't already have one. */
1473
1474- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1475+ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
1476 if (yychar == YYEMPTY)
1477 {
1478- YYDPRINTF ((stderr, "Reading a token: "));
1479+ YYDPRINTF ((stderr, "Reading a token\n"));
1480 yychar = yylex ();
1481 }
1482
1483 if (yychar <= YYEOF)
1484 {
1485- yychar = yytoken = YYEOF;
1486+ yychar = YYEOF;
1487+ yytoken = YYSYMBOL_YYEOF;
1488 YYDPRINTF ((stderr, "Now at end of input.\n"));
1489 }
1490+ else if (yychar == YYerror)
1491+ {
1492+ /* The scanner already issued an error message, process directly
1493+ to error recovery. But do not keep the error token as
1494+ lookahead, it is too special and may lead us to an endless
1495+ loop in error recovery. */
1496+ yychar = YYUNDEF;
1497+ yytoken = YYSYMBOL_YYerror;
1498+ goto yyerrlab1;
1499+ }
1500 else
1501 {
1502 yytoken = YYTRANSLATE (yychar);
1503@@ -1194,15 +1105,13 @@ yybackup:
1504
1505 /* Shift the lookahead token. */
1506 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1507-
1508- /* Discard the shifted token. */
1509- yychar = YYEMPTY;
1510-
1511 yystate = yyn;
1512 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1513 *++yyvsp = yylval;
1514 YY_IGNORE_MAYBE_UNINITIALIZED_END
1515
1516+ /* Discard the shifted token. */
1517+ yychar = YYEMPTY;
1518 goto yynewstate;
1519
1520
1521@@ -1237,9 +1146,9 @@ yyreduce:
1522 YY_REDUCE_PRINT (yyn);
1523 switch (yyn)
1524 {
1525- case 2:
1526-#line 47 "cubeparse.y" /* yacc.c:1652 */
1527- {
1528+ case 2: /* box: O_BRACKET paren_list COMMA paren_list C_BRACKET */
1529+#line 47 "cubeparse.y"
1530+ {
1531 int dim;
1532
1533 dim = item_count(yyvsp[-3], ',');
1534@@ -1264,12 +1173,12 @@ yyreduce:
1535
1536 *result = write_box( dim, yyvsp[-3], yyvsp[-1] );
1537 }
1538-#line 1268 "cubeparse.c" /* yacc.c:1652 */
1539+#line 1177 "cubeparse.c"
1540 break;
1541
1542- case 3:
1543-#line 74 "cubeparse.y" /* yacc.c:1652 */
1544- {
1545+ case 3: /* box: paren_list COMMA paren_list */
1546+#line 74 "cubeparse.y"
1547+ {
1548 int dim;
1549
1550 dim = item_count(yyvsp[-2], ',');
1551@@ -1294,12 +1203,12 @@ yyreduce:
1552
1553 *result = write_box( dim, yyvsp[-2], yyvsp[0] );
1554 }
1555-#line 1298 "cubeparse.c" /* yacc.c:1652 */
1556+#line 1207 "cubeparse.c"
1557 break;
1558
1559- case 4:
1560-#line 101 "cubeparse.y" /* yacc.c:1652 */
1561- {
1562+ case 4: /* box: paren_list */
1563+#line 101 "cubeparse.y"
1564+ {
1565 int dim;
1566
1567 dim = item_count(yyvsp[0], ',');
1568@@ -1315,12 +1224,12 @@ yyreduce:
1569
1570 *result = write_point_as_box(dim, yyvsp[0]);
1571 }
1572-#line 1319 "cubeparse.c" /* yacc.c:1652 */
1573+#line 1228 "cubeparse.c"
1574 break;
1575
1576- case 5:
1577-#line 119 "cubeparse.y" /* yacc.c:1652 */
1578- {
1579+ case 5: /* box: list */
1580+#line 119 "cubeparse.y"
1581+ {
1582 int dim;
1583
1584 dim = item_count(yyvsp[0], ',');
1585@@ -1336,47 +1245,48 @@ yyreduce:
1586
1587 *result = write_point_as_box(dim, yyvsp[0]);
1588 }
1589-#line 1340 "cubeparse.c" /* yacc.c:1652 */
1590+#line 1249 "cubeparse.c"
1591 break;
1592
1593- case 6:
1594-#line 138 "cubeparse.y" /* yacc.c:1652 */
1595- {
1596+ case 6: /* paren_list: O_PAREN list C_PAREN */
1597+#line 138 "cubeparse.y"
1598+ {
1599 yyval = yyvsp[-1];
1600 }
1601-#line 1348 "cubeparse.c" /* yacc.c:1652 */
1602+#line 1257 "cubeparse.c"
1603 break;
1604
1605- case 7:
1606-#line 142 "cubeparse.y" /* yacc.c:1652 */
1607- {
1608+ case 7: /* paren_list: O_PAREN C_PAREN */
1609+#line 142 "cubeparse.y"
1610+ {
1611 yyval = pstrdup("");
1612 }
1613-#line 1356 "cubeparse.c" /* yacc.c:1652 */
1614+#line 1265 "cubeparse.c"
1615 break;
1616
1617- case 8:
1618-#line 148 "cubeparse.y" /* yacc.c:1652 */
1619- {
1620+ case 8: /* list: CUBEFLOAT */
1621+#line 148 "cubeparse.y"
1622+ {
1623 /* alloc enough space to be sure whole list will fit */
1624 yyval = palloc(scanbuflen + 1);
1625 strcpy(yyval, yyvsp[0]);
1626 }
1627-#line 1366 "cubeparse.c" /* yacc.c:1652 */
1628+#line 1275 "cubeparse.c"
1629 break;
1630
1631- case 9:
1632-#line 154 "cubeparse.y" /* yacc.c:1652 */
1633- {
1634+ case 9: /* list: list COMMA CUBEFLOAT */
1635+#line 154 "cubeparse.y"
1636+ {
1637 yyval = yyvsp[-2];
1638 strcat(yyval, ",");
1639 strcat(yyval, yyvsp[0]);
1640 }
1641-#line 1376 "cubeparse.c" /* yacc.c:1652 */
1642+#line 1285 "cubeparse.c"
1643 break;
1644
1645
1646-#line 1380 "cubeparse.c" /* yacc.c:1652 */
1647+#line 1289 "cubeparse.c"
1648+
1649 default: break;
1650 }
1651 /* User semantic actions sometimes alter yychar, and that requires
1652@@ -1390,11 +1300,10 @@ yyreduce:
1653 case of YYERROR or YYBACKUP, subsequent parser actions might lead
1654 to an incorrect destructor call or verbose syntax error message
1655 before the lookahead is translated. */
1656- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
1657+ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1658
1659 YYPOPSTACK (yylen);
1660 yylen = 0;
1661- YY_STACK_PRINT (yyss, yyssp);
1662
1663 *++yyvsp = yyval;
1664
1665@@ -1418,50 +1327,14 @@ yyreduce:
1666 yyerrlab:
1667 /* Make sure we have latest lookahead translation. See comments at
1668 user semantic actions for why this is necessary. */
1669- yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
1670-
1671+ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1672 /* If not already recovering from an error, report this error. */
1673 if (!yyerrstatus)
1674 {
1675 ++yynerrs;
1676-#if ! YYERROR_VERBOSE
1677 yyerror (result, YY_("syntax error"));
1678-#else
1679-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
1680- yyssp, yytoken)
1681- {
1682- char const *yymsgp = YY_("syntax error");
1683- int yysyntax_error_status;
1684- yysyntax_error_status = YYSYNTAX_ERROR;
1685- if (yysyntax_error_status == 0)
1686- yymsgp = yymsg;
1687- else if (yysyntax_error_status == 1)
1688- {
1689- if (yymsg != yymsgbuf)
1690- YYSTACK_FREE (yymsg);
1691- yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
1692- if (!yymsg)
1693- {
1694- yymsg = yymsgbuf;
1695- yymsg_alloc = sizeof yymsgbuf;
1696- yysyntax_error_status = 2;
1697- }
1698- else
1699- {
1700- yysyntax_error_status = YYSYNTAX_ERROR;
1701- yymsgp = yymsg;
1702- }
1703- }
1704- yyerror (result, yymsgp);
1705- if (yysyntax_error_status == 2)
1706- goto yyexhaustedlab;
1707- }
1708-# undef YYSYNTAX_ERROR
1709-#endif
1710 }
1711
1712-
1713-
1714 if (yyerrstatus == 3)
1715 {
1716 /* If just tried and failed to reuse lookahead token after an
1717@@ -1510,13 +1383,14 @@ yyerrorlab:
1718 yyerrlab1:
1719 yyerrstatus = 3; /* Each real token shifted decrements this. */
1720
1721+ /* Pop stack until we find a state that shifts the error token. */
1722 for (;;)
1723 {
1724 yyn = yypact[yystate];
1725 if (!yypact_value_is_default (yyn))
1726 {
1727- yyn += YYTERROR;
1728- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1729+ yyn += YYSYMBOL_YYerror;
1730+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1731 {
1732 yyn = yytable[yyn];
1733 if (0 < yyn)
1734@@ -1530,7 +1404,7 @@ yyerrlab1:
1735
1736
1737 yydestruct ("Error: popping",
1738- yystos[yystate], yyvsp, result);
1739+ YY_ACCESSING_SYMBOL (yystate), yyvsp, result);
1740 YYPOPSTACK (1);
1741 yystate = *yyssp;
1742 YY_STACK_PRINT (yyss, yyssp);
1743@@ -1542,7 +1416,7 @@ yyerrlab1:
1744
1745
1746 /* Shift the error token. */
1747- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
1748+ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
1749
1750 yystate = yyn;
1751 goto yynewstate;
1752@@ -1564,20 +1438,20 @@ yyabortlab:
1753 goto yyreturn;
1754
1755
1756-#if !defined yyoverflow || YYERROR_VERBOSE
1757+#if !defined yyoverflow
1758 /*-------------------------------------------------.
1759 | yyexhaustedlab -- memory exhaustion comes here. |
1760 `-------------------------------------------------*/
1761 yyexhaustedlab:
1762 yyerror (result, YY_("memory exhausted"));
1763 yyresult = 2;
1764- /* Fall through. */
1765+ goto yyreturn;
1766 #endif
1767
1768
1769-/*-----------------------------------------------------.
1770-| yyreturn -- parsing is finished, return the result. |
1771-`-----------------------------------------------------*/
1772+/*-------------------------------------------------------.
1773+| yyreturn -- parsing is finished, clean up and return. |
1774+`-------------------------------------------------------*/
1775 yyreturn:
1776 if (yychar != YYEMPTY)
1777 {
1778@@ -1594,20 +1468,18 @@ yyreturn:
1779 while (yyssp != yyss)
1780 {
1781 yydestruct ("Cleanup: popping",
1782- yystos[*yyssp], yyvsp, result);
1783+ YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, result);
1784 YYPOPSTACK (1);
1785 }
1786 #ifndef yyoverflow
1787 if (yyss != yyssa)
1788 YYSTACK_FREE (yyss);
1789 #endif
1790-#if YYERROR_VERBOSE
1791- if (yymsg != yymsgbuf)
1792- YYSTACK_FREE (yymsg);
1793-#endif
1794+
1795 return yyresult;
1796 }
1797-#line 161 "cubeparse.y" /* yacc.c:1918 */
1798+
1799+#line 161 "cubeparse.y"
1800
1801
1802 /* This assumes the string has been normalized by productions above */
1803diff --git a/contrib/pageinspect/brinfuncs.c b/contrib/pageinspect/brinfuncs.c
1804index 13da761..dc0e039 100644
1805--- a/contrib/pageinspect/brinfuncs.c
1806+++ b/contrib/pageinspect/brinfuncs.c
1807@@ -18,6 +18,7 @@
1808 #include "access/brin_revmap.h"
1809 #include "access/brin_tuple.h"
1810 #include "catalog/index.h"
1811+#include "catalog/pg_am.h"
1812 #include "catalog/pg_type.h"
1813 #include "funcapi.h"
1814 #include "lib/stringinfo.h"
1815@@ -33,6 +34,8 @@ PG_FUNCTION_INFO_V1(brin_page_items);
1816 PG_FUNCTION_INFO_V1(brin_metapage_info);
1817 PG_FUNCTION_INFO_V1(brin_revmap_data);
1818
1819+#define IS_BRIN(r) ((r)->rd_rel->relam == BRIN_AM_OID)
1820+
1821 typedef struct brin_column_state
1822 {
1823 int nstored;
1824@@ -47,8 +50,7 @@ Datum
1825 brin_page_type(PG_FUNCTION_ARGS)
1826 {
1827 bytea *raw_page = PG_GETARG_BYTEA_P(0);
1828- Page page = VARDATA(raw_page);
1829- int raw_page_size;
1830+ Page page;
1831 char *type;
1832
1833 if (!superuser())
1834@@ -56,14 +58,19 @@ brin_page_type(PG_FUNCTION_ARGS)
1835 (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
1836 (errmsg("must be superuser to use raw page functions"))));
1837
1838- raw_page_size = VARSIZE(raw_page) - VARHDRSZ;
1839+ page = get_page_from_raw(raw_page);
1840
1841- if (raw_page_size != BLCKSZ)
1842- ereport(ERROR,
1843- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
1844- errmsg("input page too small"),
1845- errdetail("Expected size %d, got %d",
1846- BLCKSZ, raw_page_size)));
1847+ if (PageIsNew(page))
1848+ PG_RETURN_NULL();
1849+
1850+ /* verify the special space has the expected size */
1851+ if (PageGetSpecialSize(page) != MAXALIGN(sizeof(BrinSpecialSpace)))
1852+ ereport(ERROR,
1853+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
1854+ errmsg("input page is not a valid %s page", "BRIN"),
1855+ errdetail("Expected special size %d, got %d.",
1856+ (int) MAXALIGN(sizeof(BrinSpecialSpace)),
1857+ (int) PageGetSpecialSize(page))));
1858
1859 switch (BrinPageType(page))
1860 {
1861@@ -91,19 +98,19 @@ brin_page_type(PG_FUNCTION_ARGS)
1862 static Page
1863 verify_brin_page(bytea *raw_page, uint16 type, const char *strtype)
1864 {
1865- Page page;
1866- int raw_page_size;
1867+ Page page = get_page_from_raw(raw_page);
1868
1869- raw_page_size = VARSIZE(raw_page) - VARHDRSZ;
1870+ if (PageIsNew(page))
1871+ return page;
1872
1873- if (raw_page_size != BLCKSZ)
1874- ereport(ERROR,
1875- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
1876- errmsg("input page too small"),
1877- errdetail("Expected size %d, got %d",
1878- BLCKSZ, raw_page_size)));
1879-
1880- page = VARDATA(raw_page);
1881+ /* verify the special space has the expected size */
1882+ if (PageGetSpecialSize(page) != MAXALIGN(sizeof(BrinSpecialSpace)))
1883+ ereport(ERROR,
1884+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
1885+ errmsg("input page is not a valid %s page", "BRIN"),
1886+ errdetail("Expected special size %d, got %d.",
1887+ (int) MAXALIGN(sizeof(BrinSpecialSpace)),
1888+ (int) PageGetSpecialSize(page))));
1889
1890 /* verify the special space says this page is what we want */
1891 if (BrinPageType(page) != type)
1892@@ -171,11 +178,25 @@ brin_page_items(PG_FUNCTION_ARGS)
1893 MemoryContextSwitchTo(oldcontext);
1894
1895 indexRel = index_open(indexRelid, AccessShareLock);
1896+
1897+ if (!IS_BRIN(indexRel))
1898+ ereport(ERROR,
1899+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
1900+ errmsg("\"%s\" is not a %s index",
1901+ RelationGetRelationName(indexRel), "BRIN")));
1902+
1903 bdesc = brin_build_desc(indexRel);
1904
1905 /* minimally verify the page we got */
1906 page = verify_brin_page(raw_page, BRIN_PAGETYPE_REGULAR, "regular");
1907
1908+ if (PageIsNew(page))
1909+ {
1910+ brin_free_desc(bdesc);
1911+ index_close(indexRel, AccessShareLock);
1912+ PG_RETURN_NULL();
1913+ }
1914+
1915 /*
1916 * Initialize output functions for all indexed datatypes; simplifies
1917 * calling them later.
1918@@ -342,6 +363,9 @@ brin_metapage_info(PG_FUNCTION_ARGS)
1919
1920 page = verify_brin_page(raw_page, BRIN_PAGETYPE_META, "metapage");
1921
1922+ if (PageIsNew(page))
1923+ PG_RETURN_NULL();
1924+
1925 /* Build a tuple descriptor for our result type */
1926 if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
1927 elog(ERROR, "return type must be a row type");
1928@@ -384,15 +408,21 @@ brin_revmap_data(PG_FUNCTION_ARGS)
1929 MemoryContext mctx;
1930 Page page;
1931
1932- /* minimally verify the page we got */
1933- page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap");
1934-
1935 /* create a function context for cross-call persistence */
1936 fctx = SRF_FIRSTCALL_INIT();
1937
1938 /* switch to memory context appropriate for multiple function calls */
1939 mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx);
1940
1941+ /* minimally verify the page we got */
1942+ page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap");
1943+
1944+ if (PageIsNew(page))
1945+ {
1946+ MemoryContextSwitchTo(mctx);
1947+ PG_RETURN_NULL();
1948+ }
1949+
1950 state = palloc(sizeof(*state));
1951 state->tids = ((RevmapContents *) PageGetContents(page))->rm_tids;
1952 state->idx = 0;
1953diff --git a/contrib/pageinspect/btreefuncs.c b/contrib/pageinspect/btreefuncs.c
1954index 4f83467..1f5a333 100644
1955--- a/contrib/pageinspect/btreefuncs.c
1956+++ b/contrib/pageinspect/btreefuncs.c
1957@@ -181,8 +181,10 @@ bt_page_stats(PG_FUNCTION_ARGS)
1958 rel = relation_openrv(relrv, AccessShareLock);
1959
1960 if (!IS_INDEX(rel) || !IS_BTREE(rel))
1961- elog(ERROR, "relation \"%s\" is not a btree index",
1962- RelationGetRelationName(rel));
1963+ ereport(ERROR,
1964+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
1965+ errmsg("\"%s\" is not a %s index",
1966+ RelationGetRelationName(rel), "btree")));
1967
1968 /*
1969 * Reject attempts to read non-local temporary relations; we would be
1970@@ -335,8 +337,10 @@ bt_page_items(PG_FUNCTION_ARGS)
1971 rel = relation_openrv(relrv, AccessShareLock);
1972
1973 if (!IS_INDEX(rel) || !IS_BTREE(rel))
1974- elog(ERROR, "relation \"%s\" is not a btree index",
1975- RelationGetRelationName(rel));
1976+ ereport(ERROR,
1977+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
1978+ errmsg("\"%s\" is not a %s index",
1979+ RelationGetRelationName(rel), "btree")));
1980
1981 /*
1982 * Reject attempts to read non-local temporary relations; we would be
1983@@ -424,7 +428,6 @@ bt_page_items_bytea(PG_FUNCTION_ARGS)
1984 Datum result;
1985 FuncCallContext *fctx;
1986 struct user_args *uargs;
1987- int raw_page_size;
1988
1989 if (!superuser())
1990 ereport(ERROR,
1991@@ -437,22 +440,30 @@ bt_page_items_bytea(PG_FUNCTION_ARGS)
1992 MemoryContext mctx;
1993 TupleDesc tupleDesc;
1994
1995- raw_page_size = VARSIZE(raw_page) - VARHDRSZ;
1996-
1997- if (raw_page_size < SizeOfPageHeaderData)
1998- ereport(ERROR,
1999- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2000- errmsg("input page too small (%d bytes)", raw_page_size)));
2001-
2002 fctx = SRF_FIRSTCALL_INIT();
2003 mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx);
2004
2005 uargs = palloc(sizeof(struct user_args));
2006
2007- uargs->page = VARDATA(raw_page);
2008+ uargs->page = get_page_from_raw(raw_page);
2009+
2010+ if (PageIsNew(uargs->page))
2011+ {
2012+ MemoryContextSwitchTo(mctx);
2013+ PG_RETURN_NULL();
2014+ }
2015
2016 uargs->offset = FirstOffsetNumber;
2017
2018+ /* verify the special space has the expected size */
2019+ if (PageGetSpecialSize(uargs->page) != MAXALIGN(sizeof(BTPageOpaqueData)))
2020+ ereport(ERROR,
2021+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2022+ errmsg("input page is not a valid %s page", "btree"),
2023+ errdetail("Expected special size %d, got %d.",
2024+ (int) MAXALIGN(sizeof(BTPageOpaqueData)),
2025+ (int) PageGetSpecialSize(uargs->page))));
2026+
2027 opaque = (BTPageOpaque) PageGetSpecialPointer(uargs->page);
2028
2029 if (P_ISMETA(opaque))
2030@@ -460,6 +471,11 @@ bt_page_items_bytea(PG_FUNCTION_ARGS)
2031 (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2032 errmsg("block is a meta page")));
2033
2034+ if (P_ISLEAF(opaque) && opaque->btpo.level != 0)
2035+ ereport(ERROR,
2036+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2037+ errmsg("block is not a valid btree leaf page")));
2038+
2039 if (P_ISDELETED(opaque))
2040 elog(NOTICE, "page is deleted");
2041
2042@@ -525,8 +541,10 @@ bt_metap(PG_FUNCTION_ARGS)
2043 rel = relation_openrv(relrv, AccessShareLock);
2044
2045 if (!IS_INDEX(rel) || !IS_BTREE(rel))
2046- elog(ERROR, "relation \"%s\" is not a btree index",
2047- RelationGetRelationName(rel));
2048+ ereport(ERROR,
2049+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
2050+ errmsg("\"%s\" is not a %s index",
2051+ RelationGetRelationName(rel), "btree")));
2052
2053 /*
2054 * Reject attempts to read non-local temporary relations; we would be
2055diff --git a/contrib/pageinspect/expected/brin.out b/contrib/pageinspect/expected/brin.out
2056index 71eb190..d19cdc3 100644
2057--- a/contrib/pageinspect/expected/brin.out
2058+++ b/contrib/pageinspect/expected/brin.out
2059@@ -48,4 +48,43 @@ SELECT * FROM brin_page_items(get_raw_page('test1_a_idx', 2), 'test1_a_idx')
2060 1 | 0 | 1 | f | f | f | {1 .. 1}
2061 (1 row)
2062
2063+-- Failure for non-BRIN index.
2064+CREATE INDEX test1_a_btree ON test1 (a);
2065+SELECT brin_page_items(get_raw_page('test1_a_btree', 0), 'test1_a_btree');
2066+ERROR: "test1_a_btree" is not a BRIN index
2067+-- Mask DETAIL messages as these are not portable across architectures.
2068+\set VERBOSITY terse
2069+-- Invalid special area size
2070+SELECT brin_page_type(get_raw_page('test1', 0));
2071+ERROR: input page is not a valid BRIN page
2072+SELECT * FROM brin_metapage_info(get_raw_page('test1', 0));
2073+ERROR: input page is not a valid BRIN page
2074+SELECT * FROM brin_revmap_data(get_raw_page('test1', 0));
2075+ERROR: input page is not a valid BRIN page
2076+\set VERBOSITY default
2077+-- Tests with all-zero pages.
2078+SHOW block_size \gset
2079+SELECT brin_page_type(decode(repeat('00', :block_size), 'hex'));
2080+ brin_page_type
2081+----------------
2082+
2083+(1 row)
2084+
2085+SELECT brin_page_items(decode(repeat('00', :block_size), 'hex'), 'test1_a_idx');
2086+ brin_page_items
2087+-----------------
2088+(0 rows)
2089+
2090+SELECT brin_metapage_info(decode(repeat('00', :block_size), 'hex'));
2091+ brin_metapage_info
2092+--------------------
2093+
2094+(1 row)
2095+
2096+SELECT brin_revmap_data(decode(repeat('00', :block_size), 'hex'));
2097+ brin_revmap_data
2098+------------------
2099+
2100+(1 row)
2101+
2102 DROP TABLE test1;
2103diff --git a/contrib/pageinspect/expected/btree.out b/contrib/pageinspect/expected/btree.out
2104index 67b103a..4015dad 100644
2105--- a/contrib/pageinspect/expected/btree.out
2106+++ b/contrib/pageinspect/expected/btree.out
2107@@ -1,5 +1,5 @@
2108-CREATE TABLE test1 (a int8, b text);
2109-INSERT INTO test1 VALUES (72057594037927937, 'text');
2110+CREATE TABLE test1 (a int8, b int4range);
2111+INSERT INTO test1 VALUES (72057594037927937, '[0,1)');
2112 CREATE INDEX test1_a_idx ON test1 USING btree (a);
2113 \x
2114 SELECT * FROM bt_metap('test1_a_idx');
2115@@ -55,4 +55,39 @@ data | 01 00 00 00 00 00 00 01
2116
2117 SELECT * FROM bt_page_items(get_raw_page('test1_a_idx', 2));
2118 ERROR: block number 2 is out of range for relation "test1_a_idx"
2119+-- Failure when using a non-btree index.
2120+CREATE INDEX test1_a_hash ON test1 USING hash(a);
2121+SELECT bt_metap('test1_a_hash');
2122+ERROR: "test1_a_hash" is not a btree index
2123+SELECT bt_page_stats('test1_a_hash', 0);
2124+ERROR: "test1_a_hash" is not a btree index
2125+SELECT bt_page_items('test1_a_hash', 0);
2126+ERROR: "test1_a_hash" is not a btree index
2127+SELECT bt_page_items(get_raw_page('test1_a_hash', 0));
2128+ERROR: block is a meta page
2129+CREATE INDEX test1_b_gist ON test1 USING gist(b);
2130+-- Special area of GiST is the same as btree, this complains about inconsistent
2131+-- leaf data on the page.
2132+SELECT bt_page_items(get_raw_page('test1_b_gist', 0));
2133+ERROR: block is not a valid btree leaf page
2134+-- Several failure modes.
2135+-- Suppress the DETAIL message, to allow the tests to work across various
2136+-- page sizes and architectures.
2137+\set VERBOSITY terse
2138+-- invalid page size
2139+SELECT bt_page_items('aaa'::bytea);
2140+ERROR: invalid page size
2141+-- invalid special area size
2142+CREATE INDEX test1_a_brin ON test1 USING brin(a);
2143+SELECT bt_page_items(get_raw_page('test1', 0));
2144+ERROR: input page is not a valid btree page
2145+SELECT bt_page_items(get_raw_page('test1_a_brin', 0));
2146+ERROR: input page is not a valid btree page
2147+\set VERBOSITY default
2148+-- Tests with all-zero pages.
2149+SHOW block_size \gset
2150+SELECT bt_page_items(decode(repeat('00', :block_size), 'hex'));
2151+-[ RECORD 1 ]-+-
2152+bt_page_items |
2153+
2154 DROP TABLE test1;
2155diff --git a/contrib/pageinspect/expected/gin.out b/contrib/pageinspect/expected/gin.out
2156index 82f63b2..5f49ff5 100644
2157--- a/contrib/pageinspect/expected/gin.out
2158+++ b/contrib/pageinspect/expected/gin.out
2159@@ -35,3 +35,36 @@ FROM gin_leafpage_items(get_raw_page('test1_y_idx',
2160 -[ RECORD 1 ]
2161 ?column? | t
2162
2163+-- Failure with various modes.
2164+-- Suppress the DETAIL message, to allow the tests to work across various
2165+-- page sizes and architectures.
2166+\set VERBOSITY terse
2167+-- invalid page size
2168+SELECT gin_leafpage_items('aaa'::bytea);
2169+ERROR: invalid page size
2170+SELECT gin_metapage_info('bbb'::bytea);
2171+ERROR: invalid page size
2172+SELECT gin_page_opaque_info('ccc'::bytea);
2173+ERROR: invalid page size
2174+-- invalid special area size
2175+SELECT * FROM gin_metapage_info(get_raw_page('test1', 0));
2176+ERROR: input page is not a valid GIN metapage
2177+SELECT * FROM gin_page_opaque_info(get_raw_page('test1', 0));
2178+ERROR: input page is not a valid GIN data leaf page
2179+SELECT * FROM gin_leafpage_items(get_raw_page('test1', 0));
2180+ERROR: input page is not a valid GIN data leaf page
2181+\set VERBOSITY default
2182+-- Tests with all-zero pages.
2183+SHOW block_size \gset
2184+SELECT gin_leafpage_items(decode(repeat('00', :block_size), 'hex'));
2185+-[ RECORD 1 ]------+-
2186+gin_leafpage_items |
2187+
2188+SELECT gin_metapage_info(decode(repeat('00', :block_size), 'hex'));
2189+-[ RECORD 1 ]-----+-
2190+gin_metapage_info |
2191+
2192+SELECT gin_page_opaque_info(decode(repeat('00', :block_size), 'hex'));
2193+-[ RECORD 1 ]--------+-
2194+gin_page_opaque_info |
2195+
2196diff --git a/contrib/pageinspect/expected/hash.out b/contrib/pageinspect/expected/hash.out
2197index 75d7bcf..82f1875 100644
2198--- a/contrib/pageinspect/expected/hash.out
2199+++ b/contrib/pageinspect/expected/hash.out
2200@@ -159,4 +159,43 @@ SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 4));
2201
2202 SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 5));
2203 ERROR: page is not a hash bucket or overflow page
2204+-- Failure with non-hash index
2205+CREATE INDEX test_hash_a_btree ON test_hash USING btree (a);
2206+SELECT hash_bitmap_info('test_hash_a_btree', 0);
2207+ERROR: "test_hash_a_btree" is not a hash index
2208+-- Failure with various modes.
2209+-- Suppress the DETAIL message, to allow the tests to work across various
2210+-- page sizes and architectures.
2211+\set VERBOSITY terse
2212+-- invalid page size
2213+SELECT hash_metapage_info('aaa'::bytea);
2214+ERROR: invalid page size
2215+SELECT hash_page_items('bbb'::bytea);
2216+ERROR: invalid page size
2217+SELECT hash_page_stats('ccc'::bytea);
2218+ERROR: invalid page size
2219+SELECT hash_page_type('ddd'::bytea);
2220+ERROR: invalid page size
2221+-- invalid special area size
2222+SELECT hash_metapage_info(get_raw_page('test_hash', 0));
2223+ERROR: input page is not a valid hash page
2224+SELECT hash_page_items(get_raw_page('test_hash', 0));
2225+ERROR: input page is not a valid hash page
2226+SELECT hash_page_stats(get_raw_page('test_hash', 0));
2227+ERROR: input page is not a valid hash page
2228+SELECT hash_page_type(get_raw_page('test_hash', 0));
2229+ERROR: input page is not a valid hash page
2230+\set VERBOSITY default
2231+-- Tests with all-zero pages.
2232+SHOW block_size \gset
2233+SELECT hash_metapage_info(decode(repeat('00', :block_size), 'hex'));
2234+ERROR: page is not a hash meta page
2235+SELECT hash_page_items(decode(repeat('00', :block_size), 'hex'));
2236+ERROR: page is not a hash bucket or overflow page
2237+SELECT hash_page_stats(decode(repeat('00', :block_size), 'hex'));
2238+ERROR: page is not a hash bucket or overflow page
2239+SELECT hash_page_type(decode(repeat('00', :block_size), 'hex'));
2240+-[ RECORD 1 ]--+-------
2241+hash_page_type | unused
2242+
2243 DROP TABLE test_hash;
2244diff --git a/contrib/pageinspect/expected/page.out b/contrib/pageinspect/expected/page.out
2245index 8e0300a..4666d6c 100644
2246--- a/contrib/pageinspect/expected/page.out
2247+++ b/contrib/pageinspect/expected/page.out
2248@@ -109,3 +109,34 @@ select tuple_data_split('test8'::regclass, t_data, t_infomask, t_infomask2, t_bi
2249 (1 row)
2250
2251 drop table test8;
2252+-- Failure with incorrect page size
2253+-- Suppress the DETAIL message, to allow the tests to work across various
2254+-- page sizes.
2255+\set VERBOSITY terse
2256+SELECT fsm_page_contents('aaa'::bytea);
2257+ERROR: invalid page size
2258+SELECT page_checksum('bbb'::bytea, 0);
2259+ERROR: invalid page size
2260+SELECT page_header('ccc'::bytea);
2261+ERROR: invalid page size
2262+\set VERBOSITY default
2263+-- Tests with all-zero pages.
2264+SHOW block_size \gset
2265+SELECT fsm_page_contents(decode(repeat('00', :block_size), 'hex'));
2266+ fsm_page_contents
2267+-------------------
2268+
2269+(1 row)
2270+
2271+SELECT page_header(decode(repeat('00', :block_size), 'hex'));
2272+ page_header
2273+-----------------------
2274+ (0/0,0,0,0,0,0,0,0,0)
2275+(1 row)
2276+
2277+SELECT page_checksum(decode(repeat('00', :block_size), 'hex'), 1);
2278+ page_checksum
2279+---------------
2280+
2281+(1 row)
2282+
2283diff --git a/contrib/pageinspect/fsmfuncs.c b/contrib/pageinspect/fsmfuncs.c
2284index 615dab8..4db3be4 100644
2285--- a/contrib/pageinspect/fsmfuncs.c
2286+++ b/contrib/pageinspect/fsmfuncs.c
2287@@ -37,6 +37,7 @@ fsm_page_contents(PG_FUNCTION_ARGS)
2288 {
2289 bytea *raw_page = PG_GETARG_BYTEA_P(0);
2290 StringInfoData sinfo;
2291+ Page page;
2292 FSMPage fsmpage;
2293 int i;
2294
2295@@ -45,7 +46,12 @@ fsm_page_contents(PG_FUNCTION_ARGS)
2296 (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
2297 (errmsg("must be superuser to use raw page functions"))));
2298
2299- fsmpage = (FSMPage) PageGetContents(VARDATA(raw_page));
2300+ page = get_page_from_raw(raw_page);
2301+
2302+ if (PageIsNew(page))
2303+ PG_RETURN_NULL();
2304+
2305+ fsmpage = (FSMPage) PageGetContents(page);
2306
2307 initStringInfo(&sinfo);
2308
2309diff --git a/contrib/pageinspect/ginfuncs.c b/contrib/pageinspect/ginfuncs.c
2310index f774495..f6de807 100644
2311--- a/contrib/pageinspect/ginfuncs.c
2312+++ b/contrib/pageinspect/ginfuncs.c
2313@@ -50,6 +50,17 @@ gin_metapage_info(PG_FUNCTION_ARGS)
2314
2315 page = get_page_from_raw(raw_page);
2316
2317+ if (PageIsNew(page))
2318+ PG_RETURN_NULL();
2319+
2320+ if (PageGetSpecialSize(page) != MAXALIGN(sizeof(GinPageOpaqueData)))
2321+ ereport(ERROR,
2322+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2323+ errmsg("input page is not a valid GIN metapage"),
2324+ errdetail("Expected special size %d, got %d.",
2325+ (int) MAXALIGN(sizeof(GinPageOpaqueData)),
2326+ (int) PageGetSpecialSize(page))));
2327+
2328 opaq = (GinPageOpaque) PageGetSpecialPointer(page);
2329 if (opaq->flags != GIN_META)
2330 ereport(ERROR,
2331@@ -108,6 +119,17 @@ gin_page_opaque_info(PG_FUNCTION_ARGS)
2332
2333 page = get_page_from_raw(raw_page);
2334
2335+ if (PageIsNew(page))
2336+ PG_RETURN_NULL();
2337+
2338+ if (PageGetSpecialSize(page) != MAXALIGN(sizeof(GinPageOpaqueData)))
2339+ ereport(ERROR,
2340+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2341+ errmsg("input page is not a valid GIN data leaf page"),
2342+ errdetail("Expected special size %d, got %d.",
2343+ (int) MAXALIGN(sizeof(GinPageOpaqueData)),
2344+ (int) PageGetSpecialSize(page))));
2345+
2346 opaq = (GinPageOpaque) PageGetSpecialPointer(page);
2347
2348 /* Build a tuple descriptor for our result type */
2349@@ -184,13 +206,19 @@ gin_leafpage_items(PG_FUNCTION_ARGS)
2350
2351 page = get_page_from_raw(raw_page);
2352
2353+ if (PageIsNew(page))
2354+ {
2355+ MemoryContextSwitchTo(mctx);
2356+ PG_RETURN_NULL();
2357+ }
2358+
2359 if (PageGetSpecialSize(page) != MAXALIGN(sizeof(GinPageOpaqueData)))
2360 ereport(ERROR,
2361 (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2362 errmsg("input page is not a valid GIN data leaf page"),
2363- errdetail("Special size %d, expected %d",
2364- (int) PageGetSpecialSize(page),
2365- (int) MAXALIGN(sizeof(GinPageOpaqueData)))));
2366+ errdetail("Expected special size %d, got %d.",
2367+ (int) MAXALIGN(sizeof(GinPageOpaqueData)),
2368+ (int) PageGetSpecialSize(page))));
2369
2370 opaq = (GinPageOpaque) PageGetSpecialPointer(page);
2371 if (opaq->flags != (GIN_DATA | GIN_LEAF | GIN_COMPRESSED))
2372diff --git a/contrib/pageinspect/hashfuncs.c b/contrib/pageinspect/hashfuncs.c
2373index 778e15d..50b0bc2 100644
2374--- a/contrib/pageinspect/hashfuncs.c
2375+++ b/contrib/pageinspect/hashfuncs.c
2376@@ -65,14 +65,17 @@ verify_hash_page(bytea *raw_page, int flags)
2377
2378 if (PageGetSpecialSize(page) != MAXALIGN(sizeof(HashPageOpaqueData)))
2379 ereport(ERROR,
2380- (errcode(ERRCODE_INDEX_CORRUPTED),
2381- errmsg("index table contains corrupted page")));
2382+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2383+ errmsg("input page is not a valid %s page", "hash"),
2384+ errdetail("Expected special size %d, got %d.",
2385+ (int) MAXALIGN(sizeof(HashPageOpaqueData)),
2386+ (int) PageGetSpecialSize(page))));
2387
2388 pageopaque = (HashPageOpaque) PageGetSpecialPointer(page);
2389 if (pageopaque->hasho_page_id != HASHO_PAGE_ID)
2390 ereport(ERROR,
2391 (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2392- errmsg("page is not a hash page"),
2393+ errmsg("input page is not a valid %s page", "hash"),
2394 errdetail("Expected %08x, got %08x.",
2395 HASHO_PAGE_ID, pageopaque->hasho_page_id)));
2396
2397@@ -129,7 +132,7 @@ verify_hash_page(bytea *raw_page, int flags)
2398 ereport(ERROR,
2399 (errcode(ERRCODE_INDEX_CORRUPTED),
2400 errmsg("invalid version for metadata"),
2401- errdetail("Expected %d, got %d",
2402+ errdetail("Expected %d, got %d.",
2403 HASH_VERSION, metap->hashm_version)));
2404 }
2405
2406@@ -415,8 +418,10 @@ hash_bitmap_info(PG_FUNCTION_ARGS)
2407 indexRel = index_open(indexRelid, AccessShareLock);
2408
2409 if (!IS_HASH(indexRel))
2410- elog(ERROR, "relation \"%s\" is not a hash index",
2411- RelationGetRelationName(indexRel));
2412+ ereport(ERROR,
2413+ (errcode(ERRCODE_WRONG_OBJECT_TYPE),
2414+ errmsg("\"%s\" is not a %s index",
2415+ RelationGetRelationName(indexRel), "hash")));
2416
2417 if (RELATION_IS_OTHER_TEMP(indexRel))
2418 ereport(ERROR,
2419diff --git a/contrib/pageinspect/rawpage.c b/contrib/pageinspect/rawpage.c
2420index e9d3131..c70cf61 100644
2421--- a/contrib/pageinspect/rawpage.c
2422+++ b/contrib/pageinspect/rawpage.c
2423@@ -214,7 +214,6 @@ Datum
2424 page_header(PG_FUNCTION_ARGS)
2425 {
2426 bytea *raw_page = PG_GETARG_BYTEA_P(0);
2427- int raw_page_size;
2428
2429 TupleDesc tupdesc;
2430
2431@@ -231,18 +230,7 @@ page_header(PG_FUNCTION_ARGS)
2432 (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
2433 (errmsg("must be superuser to use raw page functions"))));
2434
2435- raw_page_size = VARSIZE(raw_page) - VARHDRSZ;
2436-
2437- /*
2438- * Check that enough data was supplied, so that we don't try to access
2439- * fields outside the supplied buffer.
2440- */
2441- if (raw_page_size < SizeOfPageHeaderData)
2442- ereport(ERROR,
2443- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2444- errmsg("input page too small (%d bytes)", raw_page_size)));
2445-
2446- page = (PageHeader) VARDATA(raw_page);
2447+ page = (PageHeader) get_page_from_raw(raw_page);
2448
2449 /* Build a tuple descriptor for our result type */
2450 if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
2451@@ -295,25 +283,17 @@ page_checksum(PG_FUNCTION_ARGS)
2452 {
2453 bytea *raw_page = PG_GETARG_BYTEA_P(0);
2454 uint32 blkno = PG_GETARG_INT32(1);
2455- int raw_page_size;
2456- PageHeader page;
2457+ Page page;
2458
2459 if (!superuser())
2460 ereport(ERROR,
2461 (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
2462 (errmsg("must be superuser to use raw page functions"))));
2463
2464- raw_page_size = VARSIZE(raw_page) - VARHDRSZ;
2465-
2466- /*
2467- * Check that the supplied page is of the right size.
2468- */
2469- if (raw_page_size != BLCKSZ)
2470- ereport(ERROR,
2471- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2472- errmsg("incorrect size of input page (%d bytes)", raw_page_size)));
2473+ page = get_page_from_raw(raw_page);
2474
2475- page = (PageHeader) VARDATA(raw_page);
2476+ if (PageIsNew(page))
2477+ PG_RETURN_NULL();
2478
2479 PG_RETURN_INT16(pg_checksum_page((char *) page, blkno));
2480 }
2481diff --git a/contrib/pageinspect/sql/brin.sql b/contrib/pageinspect/sql/brin.sql
2482index 735bc3b..45098c1 100644
2483--- a/contrib/pageinspect/sql/brin.sql
2484+++ b/contrib/pageinspect/sql/brin.sql
2485@@ -15,4 +15,23 @@ SELECT * FROM brin_revmap_data(get_raw_page('test1_a_idx', 1)) LIMIT 5;
2486 SELECT * FROM brin_page_items(get_raw_page('test1_a_idx', 2), 'test1_a_idx')
2487 ORDER BY blknum, attnum LIMIT 5;
2488
2489+-- Failure for non-BRIN index.
2490+CREATE INDEX test1_a_btree ON test1 (a);
2491+SELECT brin_page_items(get_raw_page('test1_a_btree', 0), 'test1_a_btree');
2492+
2493+-- Mask DETAIL messages as these are not portable across architectures.
2494+\set VERBOSITY terse
2495+-- Invalid special area size
2496+SELECT brin_page_type(get_raw_page('test1', 0));
2497+SELECT * FROM brin_metapage_info(get_raw_page('test1', 0));
2498+SELECT * FROM brin_revmap_data(get_raw_page('test1', 0));
2499+\set VERBOSITY default
2500+
2501+-- Tests with all-zero pages.
2502+SHOW block_size \gset
2503+SELECT brin_page_type(decode(repeat('00', :block_size), 'hex'));
2504+SELECT brin_page_items(decode(repeat('00', :block_size), 'hex'), 'test1_a_idx');
2505+SELECT brin_metapage_info(decode(repeat('00', :block_size), 'hex'));
2506+SELECT brin_revmap_data(decode(repeat('00', :block_size), 'hex'));
2507+
2508 DROP TABLE test1;
2509diff --git a/contrib/pageinspect/sql/btree.sql b/contrib/pageinspect/sql/btree.sql
2510index 8eac64c..75587c1 100644
2511--- a/contrib/pageinspect/sql/btree.sql
2512+++ b/contrib/pageinspect/sql/btree.sql
2513@@ -1,5 +1,5 @@
2514-CREATE TABLE test1 (a int8, b text);
2515-INSERT INTO test1 VALUES (72057594037927937, 'text');
2516+CREATE TABLE test1 (a int8, b int4range);
2517+INSERT INTO test1 VALUES (72057594037927937, '[0,1)');
2518 CREATE INDEX test1_a_idx ON test1 USING btree (a);
2519
2520 \x
2521@@ -18,4 +18,31 @@ SELECT * FROM bt_page_items(get_raw_page('test1_a_idx', 0));
2522 SELECT * FROM bt_page_items(get_raw_page('test1_a_idx', 1));
2523 SELECT * FROM bt_page_items(get_raw_page('test1_a_idx', 2));
2524
2525+-- Failure when using a non-btree index.
2526+CREATE INDEX test1_a_hash ON test1 USING hash(a);
2527+SELECT bt_metap('test1_a_hash');
2528+SELECT bt_page_stats('test1_a_hash', 0);
2529+SELECT bt_page_items('test1_a_hash', 0);
2530+SELECT bt_page_items(get_raw_page('test1_a_hash', 0));
2531+CREATE INDEX test1_b_gist ON test1 USING gist(b);
2532+-- Special area of GiST is the same as btree, this complains about inconsistent
2533+-- leaf data on the page.
2534+SELECT bt_page_items(get_raw_page('test1_b_gist', 0));
2535+
2536+-- Several failure modes.
2537+-- Suppress the DETAIL message, to allow the tests to work across various
2538+-- page sizes and architectures.
2539+\set VERBOSITY terse
2540+-- invalid page size
2541+SELECT bt_page_items('aaa'::bytea);
2542+-- invalid special area size
2543+CREATE INDEX test1_a_brin ON test1 USING brin(a);
2544+SELECT bt_page_items(get_raw_page('test1', 0));
2545+SELECT bt_page_items(get_raw_page('test1_a_brin', 0));
2546+\set VERBOSITY default
2547+
2548+-- Tests with all-zero pages.
2549+SHOW block_size \gset
2550+SELECT bt_page_items(decode(repeat('00', :block_size), 'hex'));
2551+
2552 DROP TABLE test1;
2553diff --git a/contrib/pageinspect/sql/gin.sql b/contrib/pageinspect/sql/gin.sql
2554index d516ed3..b0c20c0 100644
2555--- a/contrib/pageinspect/sql/gin.sql
2556+++ b/contrib/pageinspect/sql/gin.sql
2557@@ -17,3 +17,23 @@ SELECT COUNT(*) > 0
2558 FROM gin_leafpage_items(get_raw_page('test1_y_idx',
2559 (pg_relation_size('test1_y_idx') /
2560 current_setting('block_size')::bigint)::int - 1));
2561+
2562+-- Failure with various modes.
2563+-- Suppress the DETAIL message, to allow the tests to work across various
2564+-- page sizes and architectures.
2565+\set VERBOSITY terse
2566+-- invalid page size
2567+SELECT gin_leafpage_items('aaa'::bytea);
2568+SELECT gin_metapage_info('bbb'::bytea);
2569+SELECT gin_page_opaque_info('ccc'::bytea);
2570+-- invalid special area size
2571+SELECT * FROM gin_metapage_info(get_raw_page('test1', 0));
2572+SELECT * FROM gin_page_opaque_info(get_raw_page('test1', 0));
2573+SELECT * FROM gin_leafpage_items(get_raw_page('test1', 0));
2574+\set VERBOSITY default
2575+
2576+-- Tests with all-zero pages.
2577+SHOW block_size \gset
2578+SELECT gin_leafpage_items(decode(repeat('00', :block_size), 'hex'));
2579+SELECT gin_metapage_info(decode(repeat('00', :block_size), 'hex'));
2580+SELECT gin_page_opaque_info(decode(repeat('00', :block_size), 'hex'));
2581diff --git a/contrib/pageinspect/sql/hash.sql b/contrib/pageinspect/sql/hash.sql
2582index 87ee549..3acdc7d 100644
2583--- a/contrib/pageinspect/sql/hash.sql
2584+++ b/contrib/pageinspect/sql/hash.sql
2585@@ -76,5 +76,31 @@ SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 3));
2586 SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 4));
2587 SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 5));
2588
2589+-- Failure with non-hash index
2590+CREATE INDEX test_hash_a_btree ON test_hash USING btree (a);
2591+SELECT hash_bitmap_info('test_hash_a_btree', 0);
2592+
2593+-- Failure with various modes.
2594+-- Suppress the DETAIL message, to allow the tests to work across various
2595+-- page sizes and architectures.
2596+\set VERBOSITY terse
2597+-- invalid page size
2598+SELECT hash_metapage_info('aaa'::bytea);
2599+SELECT hash_page_items('bbb'::bytea);
2600+SELECT hash_page_stats('ccc'::bytea);
2601+SELECT hash_page_type('ddd'::bytea);
2602+-- invalid special area size
2603+SELECT hash_metapage_info(get_raw_page('test_hash', 0));
2604+SELECT hash_page_items(get_raw_page('test_hash', 0));
2605+SELECT hash_page_stats(get_raw_page('test_hash', 0));
2606+SELECT hash_page_type(get_raw_page('test_hash', 0));
2607+\set VERBOSITY default
2608+
2609+-- Tests with all-zero pages.
2610+SHOW block_size \gset
2611+SELECT hash_metapage_info(decode(repeat('00', :block_size), 'hex'));
2612+SELECT hash_page_items(decode(repeat('00', :block_size), 'hex'));
2613+SELECT hash_page_stats(decode(repeat('00', :block_size), 'hex'));
2614+SELECT hash_page_type(decode(repeat('00', :block_size), 'hex'));
2615
2616 DROP TABLE test_hash;
2617diff --git a/contrib/pageinspect/sql/page.sql b/contrib/pageinspect/sql/page.sql
2618index eb50e65..7ded5ef 100644
2619--- a/contrib/pageinspect/sql/page.sql
2620+++ b/contrib/pageinspect/sql/page.sql
2621@@ -49,3 +49,18 @@ select t_bits, t_data from heap_page_items(get_raw_page('test8', 0));
2622 select tuple_data_split('test8'::regclass, t_data, t_infomask, t_infomask2, t_bits)
2623 from heap_page_items(get_raw_page('test8', 0));
2624 drop table test8;
2625+
2626+-- Failure with incorrect page size
2627+-- Suppress the DETAIL message, to allow the tests to work across various
2628+-- page sizes.
2629+\set VERBOSITY terse
2630+SELECT fsm_page_contents('aaa'::bytea);
2631+SELECT page_checksum('bbb'::bytea, 0);
2632+SELECT page_header('ccc'::bytea);
2633+\set VERBOSITY default
2634+
2635+-- Tests with all-zero pages.
2636+SHOW block_size \gset
2637+SELECT fsm_page_contents(decode(repeat('00', :block_size), 'hex'));
2638+SELECT page_header(decode(repeat('00', :block_size), 'hex'));
2639+SELECT page_checksum(decode(repeat('00', :block_size), 'hex'), 1);
2640diff --git a/contrib/pgcrypto/px.c b/contrib/pgcrypto/px.c
2641index 0b2d890..a7c25c3 100644
2642--- a/contrib/pgcrypto/px.c
2643+++ b/contrib/pgcrypto/px.c
2644@@ -208,7 +208,7 @@ combo_init(PX_Combo *cx, const uint8 *key, unsigned klen,
2645 memset(ivbuf, 0, ivs);
2646 if (ivlen > ivs)
2647 memcpy(ivbuf, iv, ivs);
2648- else
2649+ else if (ivlen > 0)
2650 memcpy(ivbuf, iv, ivlen);
2651 }
2652
2653diff --git a/contrib/postgres_fdw/deparse.c b/contrib/postgres_fdw/deparse.c
2654index 52c18be..ccd6937 100644
2655--- a/contrib/postgres_fdw/deparse.c
2656+++ b/contrib/postgres_fdw/deparse.c
2657@@ -42,6 +42,7 @@
2658 #include "catalog/pg_collation.h"
2659 #include "catalog/pg_namespace.h"
2660 #include "catalog/pg_operator.h"
2661+#include "catalog/pg_opfamily.h"
2662 #include "catalog/pg_proc.h"
2663 #include "catalog/pg_type.h"
2664 #include "commands/defrem.h"
2665@@ -175,6 +176,8 @@ static void deparseRangeTblRef(StringInfo buf, PlannerInfo *root,
2666 List **params_list);
2667 static void deparseAggref(Aggref *node, deparse_expr_cxt *context);
2668 static void appendGroupByClause(List *tlist, deparse_expr_cxt *context);
2669+static void appendOrderBySuffix(Oid sortop, Oid sortcoltype, bool nulls_first,
2670+ deparse_expr_cxt *context);
2671 static void appendAggOrderBy(List *orderList, List *targetList,
2672 deparse_expr_cxt *context);
2673 static void appendFunctionName(Oid funcid, deparse_expr_cxt *context);
2674@@ -902,6 +905,33 @@ is_foreign_param(PlannerInfo *root,
2675 }
2676
2677 /*
2678+ * Returns true if it's safe to push down the sort expression described by
2679+ * 'pathkey' to the foreign server.
2680+ */
2681+bool
2682+is_foreign_pathkey(PlannerInfo *root,
2683+ RelOptInfo *baserel,
2684+ PathKey *pathkey)
2685+{
2686+ EquivalenceClass *pathkey_ec = pathkey->pk_eclass;
2687+ PgFdwRelationInfo *fpinfo = (PgFdwRelationInfo *) baserel->fdw_private;
2688+
2689+ /*
2690+ * is_foreign_expr would detect volatile expressions as well, but checking
2691+ * ec_has_volatile here saves some cycles.
2692+ */
2693+ if (pathkey_ec->ec_has_volatile)
2694+ return false;
2695+
2696+ /* can't push down the sort if the pathkey's opfamily is not shippable */
2697+ if (!is_shippable(pathkey->pk_opfamily, OperatorFamilyRelationId, fpinfo))
2698+ return false;
2699+
2700+ /* can push if a suitable EC member exists */
2701+ return (find_em_for_rel(root, pathkey_ec, baserel) != NULL);
2702+}
2703+
2704+/*
2705 * Convert type OID + typmod info into a type name we can ship to the remote
2706 * server. Someplace else had better have verified that this type name is
2707 * expected to be known on the remote end.
2708@@ -2910,44 +2940,59 @@ appendAggOrderBy(List *orderList, List *targetList, deparse_expr_cxt *context)
2709 {
2710 SortGroupClause *srt = (SortGroupClause *) lfirst(lc);
2711 Node *sortexpr;
2712- Oid sortcoltype;
2713- TypeCacheEntry *typentry;
2714
2715 if (!first)
2716 appendStringInfoString(buf, ", ");
2717 first = false;
2718
2719+ /* Deparse the sort expression proper. */
2720 sortexpr = deparseSortGroupClause(srt->tleSortGroupRef, targetList,
2721 false, context);
2722- sortcoltype = exprType(sortexpr);
2723- /* See whether operator is default < or > for datatype */
2724- typentry = lookup_type_cache(sortcoltype,
2725- TYPECACHE_LT_OPR | TYPECACHE_GT_OPR);
2726- if (srt->sortop == typentry->lt_opr)
2727- appendStringInfoString(buf, " ASC");
2728- else if (srt->sortop == typentry->gt_opr)
2729- appendStringInfoString(buf, " DESC");
2730- else
2731- {
2732- HeapTuple opertup;
2733- Form_pg_operator operform;
2734-
2735- appendStringInfoString(buf, " USING ");
2736-
2737- /* Append operator name. */
2738- opertup = SearchSysCache1(OPEROID, ObjectIdGetDatum(srt->sortop));
2739- if (!HeapTupleIsValid(opertup))
2740- elog(ERROR, "cache lookup failed for operator %u", srt->sortop);
2741- operform = (Form_pg_operator) GETSTRUCT(opertup);
2742- deparseOperatorName(buf, operform);
2743- ReleaseSysCache(opertup);
2744- }
2745+ /* Add decoration as needed. */
2746+ appendOrderBySuffix(srt->sortop, exprType(sortexpr), srt->nulls_first,
2747+ context);
2748+ }
2749+}
2750
2751- if (srt->nulls_first)
2752- appendStringInfoString(buf, " NULLS FIRST");
2753- else
2754- appendStringInfoString(buf, " NULLS LAST");
2755+/*
2756+ * Append the ASC, DESC, USING <OPERATOR> and NULLS FIRST / NULLS LAST parts
2757+ * of an ORDER BY clause.
2758+ */
2759+static void
2760+appendOrderBySuffix(Oid sortop, Oid sortcoltype, bool nulls_first,
2761+ deparse_expr_cxt *context)
2762+{
2763+ StringInfo buf = context->buf;
2764+ TypeCacheEntry *typentry;
2765+
2766+ /* See whether operator is default < or > for sort expr's datatype. */
2767+ typentry = lookup_type_cache(sortcoltype,
2768+ TYPECACHE_LT_OPR | TYPECACHE_GT_OPR);
2769+
2770+ if (sortop == typentry->lt_opr)
2771+ appendStringInfoString(buf, " ASC");
2772+ else if (sortop == typentry->gt_opr)
2773+ appendStringInfoString(buf, " DESC");
2774+ else
2775+ {
2776+ HeapTuple opertup;
2777+ Form_pg_operator operform;
2778+
2779+ appendStringInfoString(buf, " USING ");
2780+
2781+ /* Append operator name. */
2782+ opertup = SearchSysCache1(OPEROID, ObjectIdGetDatum(sortop));
2783+ if (!HeapTupleIsValid(opertup))
2784+ elog(ERROR, "cache lookup failed for operator %u", sortop);
2785+ operform = (Form_pg_operator) GETSTRUCT(opertup);
2786+ deparseOperatorName(buf, operform);
2787+ ReleaseSysCache(opertup);
2788 }
2789+
2790+ if (nulls_first)
2791+ appendStringInfoString(buf, " NULLS FIRST");
2792+ else
2793+ appendStringInfoString(buf, " NULLS LAST");
2794 }
2795
2796 /*
2797@@ -3030,17 +3075,17 @@ appendGroupByClause(List *tlist, deparse_expr_cxt *context)
2798 }
2799
2800 /*
2801- * Deparse ORDER BY clause according to the given pathkeys for given base
2802- * relation. From given pathkeys expressions belonging entirely to the given
2803- * base relation are obtained and deparsed.
2804+ * Deparse ORDER BY clause defined by the given pathkeys.
2805+ *
2806+ * We find a suitable pathkey expression (some earlier step
2807+ * should have verified that there is one) and deparse it.
2808 */
2809 static void
2810 appendOrderByClause(List *pathkeys, deparse_expr_cxt *context)
2811 {
2812 ListCell *lcell;
2813 int nestlevel;
2814- char *delim = " ";
2815- RelOptInfo *baserel = context->scanrel;
2816+ const char *delim = " ";
2817 StringInfo buf = context->buf;
2818
2819 /* Make sure any constants in the exprs are printed portably */
2820@@ -3050,22 +3095,47 @@ appendOrderByClause(List *pathkeys, deparse_expr_cxt *context)
2821 foreach(lcell, pathkeys)
2822 {
2823 PathKey *pathkey = lfirst(lcell);
2824+ EquivalenceMember *em;
2825 Expr *em_expr;
2826+ Oid oprid;
2827
2828- em_expr = find_em_expr_for_rel(pathkey->pk_eclass, baserel);
2829- Assert(em_expr != NULL);
2830+ em = find_em_for_rel(context->root,
2831+ pathkey->pk_eclass,
2832+ context->scanrel);
2833+
2834+ /*
2835+ * We don't expect any error here; it would mean that shippability
2836+ * wasn't verified earlier. For the same reason, we don't recheck
2837+ * shippability of the sort operator.
2838+ */
2839+ if (em == NULL)
2840+ elog(ERROR, "could not find pathkey item to sort");
2841+
2842+ em_expr = em->em_expr;
2843+
2844+ /*
2845+ * Lookup the operator corresponding to the strategy in the opclass.
2846+ * The datatype used by the opfamily is not necessarily the same as
2847+ * the expression type (for array types for example).
2848+ */
2849+ oprid = get_opfamily_member(pathkey->pk_opfamily,
2850+ em->em_datatype,
2851+ em->em_datatype,
2852+ pathkey->pk_strategy);
2853+ if (!OidIsValid(oprid))
2854+ elog(ERROR, "missing operator %d(%u,%u) in opfamily %u",
2855+ pathkey->pk_strategy, em->em_datatype, em->em_datatype,
2856+ pathkey->pk_opfamily);
2857
2858 appendStringInfoString(buf, delim);
2859 deparseExpr(em_expr, context);
2860- if (pathkey->pk_strategy == BTLessStrategyNumber)
2861- appendStringInfoString(buf, " ASC");
2862- else
2863- appendStringInfoString(buf, " DESC");
2864
2865- if (pathkey->pk_nulls_first)
2866- appendStringInfoString(buf, " NULLS FIRST");
2867- else
2868- appendStringInfoString(buf, " NULLS LAST");
2869+ /*
2870+ * Here we need to use the expression's actual type to discover
2871+ * whether the desired operator will be the default or not.
2872+ */
2873+ appendOrderBySuffix(oprid, exprType((Node *) em_expr),
2874+ pathkey->pk_nulls_first, context);
2875
2876 delim = ", ";
2877 }
2878diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out
2879index a65b3d7..ff1786c 100644
2880--- a/contrib/postgres_fdw/expected/postgres_fdw.out
2881+++ b/contrib/postgres_fdw/expected/postgres_fdw.out
2882@@ -3252,6 +3252,19 @@ select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6
2883 Remote SQL: SELECT "C 1", c2 FROM "S 1"."T 1" WHERE (("C 1" < 100)) AND ((c2 = 6))
2884 (6 rows)
2885
2886+-- This should not be pushed either.
2887+explain (verbose, costs off)
2888+select * from ft2 order by c1 using operator(public.<^);
2889+ QUERY PLAN
2890+-------------------------------------------------------------------------------
2891+ Sort
2892+ Output: c1, c2, c3, c4, c5, c6, c7, c8
2893+ Sort Key: ft2.c1 USING <^
2894+ -> Foreign Scan on public.ft2
2895+ Output: c1, c2, c3, c4, c5, c6, c7, c8
2896+ Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1"
2897+(6 rows)
2898+
2899 -- Add into extension
2900 alter extension postgres_fdw add operator class my_op_class using btree;
2901 alter extension postgres_fdw add function my_op_cmp(a int, b int);
2902@@ -3277,6 +3290,16 @@ select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6
2903 {6,16,26,36,46,56,66,76,86,96}
2904 (1 row)
2905
2906+-- This should be pushed too.
2907+explain (verbose, costs off)
2908+select * from ft2 order by c1 using operator(public.<^);
2909+ QUERY PLAN
2910+-----------------------------------------------------------------------------------------------------------------------------
2911+ Foreign Scan on public.ft2
2912+ Output: c1, c2, c3, c4, c5, c6, c7, c8
2913+ Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" ORDER BY "C 1" USING OPERATOR(public.<^) NULLS LAST
2914+(3 rows)
2915+
2916 -- Remove from extension
2917 alter extension postgres_fdw drop operator class my_op_class using btree;
2918 alter extension postgres_fdw drop function my_op_cmp(a int, b int);
2919diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c
2920index d37530c..632ec42 100644
2921--- a/contrib/postgres_fdw/postgres_fdw.c
2922+++ b/contrib/postgres_fdw/postgres_fdw.c
2923@@ -17,6 +17,7 @@
2924 #include "access/htup_details.h"
2925 #include "access/sysattr.h"
2926 #include "catalog/pg_class.h"
2927+#include "catalog/pg_opfamily.h"
2928 #include "commands/defrem.h"
2929 #include "commands/explain.h"
2930 #include "commands/vacuum.h"
2931@@ -788,8 +789,6 @@ get_useful_pathkeys_for_relation(PlannerInfo *root, RelOptInfo *rel)
2932 foreach(lc, root->query_pathkeys)
2933 {
2934 PathKey *pathkey = (PathKey *) lfirst(lc);
2935- EquivalenceClass *pathkey_ec = pathkey->pk_eclass;
2936- Expr *em_expr;
2937
2938 /*
2939 * The planner and executor don't have any clever strategy for
2940@@ -797,13 +796,8 @@ get_useful_pathkeys_for_relation(PlannerInfo *root, RelOptInfo *rel)
2941 * getting it to be sorted by all of those pathkeys. We'll just
2942 * end up resorting the entire data set. So, unless we can push
2943 * down all of the query pathkeys, forget it.
2944- *
2945- * is_foreign_expr would detect volatile expressions as well, but
2946- * checking ec_has_volatile here saves some cycles.
2947 */
2948- if (pathkey_ec->ec_has_volatile ||
2949- !(em_expr = find_em_expr_for_rel(pathkey_ec, rel)) ||
2950- !is_foreign_expr(root, rel, em_expr))
2951+ if (!is_foreign_pathkey(root, rel, pathkey))
2952 {
2953 query_pathkeys_ok = false;
2954 break;
2955@@ -847,16 +841,19 @@ get_useful_pathkeys_for_relation(PlannerInfo *root, RelOptInfo *rel)
2956 foreach(lc, useful_eclass_list)
2957 {
2958 EquivalenceClass *cur_ec = lfirst(lc);
2959- Expr *em_expr;
2960 PathKey *pathkey;
2961
2962 /* If redundant with what we did above, skip it. */
2963 if (cur_ec == query_ec)
2964 continue;
2965
2966+ /* Can't push down the sort if the EC's opfamily is not shippable. */
2967+ if (!is_shippable(linitial_oid(cur_ec->ec_opfamilies),
2968+ OperatorFamilyRelationId, fpinfo))
2969+ continue;
2970+
2971 /* If no pushable expression for this rel, skip it. */
2972- em_expr = find_em_expr_for_rel(cur_ec, rel);
2973- if (em_expr == NULL || !is_foreign_expr(root, rel, em_expr))
2974+ if (find_em_for_rel(root, cur_ec, rel) == NULL)
2975 continue;
2976
2977 /* Looks like we can generate a pathkey, so let's do it. */
2978@@ -5247,30 +5244,35 @@ conversion_error_callback(void *arg)
2979 }
2980
2981 /*
2982- * Find an equivalence class member expression, all of whose Vars, come from
2983- * the indicated relation.
2984+ * Given an EquivalenceClass and a foreign relation, find an EC member
2985+ * that can be used to sort the relation remotely according to a pathkey
2986+ * using this EC.
2987+ *
2988+ * If there is more than one suitable candidate, return an arbitrary
2989+ * one of them. If there is none, return NULL.
2990+ *
2991+ * This checks that the EC member expression uses only Vars from the given
2992+ * rel and is shippable. Caller must separately verify that the pathkey's
2993+ * ordering operator is shippable.
2994 */
2995-extern Expr *
2996-find_em_expr_for_rel(EquivalenceClass *ec, RelOptInfo *rel)
2997+EquivalenceMember *
2998+find_em_for_rel(PlannerInfo *root, EquivalenceClass *ec, RelOptInfo *rel)
2999 {
3000- ListCell *lc_em;
3001+ ListCell *lc;
3002
3003- foreach(lc_em, ec->ec_members)
3004+ foreach(lc, ec->ec_members)
3005 {
3006- EquivalenceMember *em = lfirst(lc_em);
3007+ EquivalenceMember *em = (EquivalenceMember *) lfirst(lc);
3008
3009+ /*
3010+ * Note we require !bms_is_empty, else we'd accept constant
3011+ * expressions which are not suitable for the purpose.
3012+ */
3013 if (bms_is_subset(em->em_relids, rel->relids) &&
3014- !bms_is_empty(em->em_relids))
3015- {
3016- /*
3017- * If there is more than one equivalence member whose Vars are
3018- * taken entirely from this relation, we'll be content to choose
3019- * any one of those.
3020- */
3021- return em->em_expr;
3022- }
3023+ !bms_is_empty(em->em_relids) &&
3024+ is_foreign_expr(root, rel, em->em_expr))
3025+ return em;
3026 }
3027
3028- /* We didn't find any suitable equivalence class expression */
3029 return NULL;
3030 }
3031diff --git a/contrib/postgres_fdw/postgres_fdw.h b/contrib/postgres_fdw/postgres_fdw.h
3032index 9f7f307..ecca7bc 100644
3033--- a/contrib/postgres_fdw/postgres_fdw.h
3034+++ b/contrib/postgres_fdw/postgres_fdw.h
3035@@ -143,6 +143,9 @@ extern bool is_foreign_expr(PlannerInfo *root,
3036 extern bool is_foreign_param(PlannerInfo *root,
3037 RelOptInfo *baserel,
3038 Expr *expr);
3039+extern bool is_foreign_pathkey(PlannerInfo *root,
3040+ RelOptInfo *baserel,
3041+ PathKey *pathkey);
3042 extern void deparseInsertSql(StringInfo buf, PlannerInfo *root,
3043 Index rtindex, Relation rel,
3044 List *targetAttrs, bool doNothing, List *returningList,
3045@@ -173,7 +176,9 @@ extern void deparseAnalyzeSizeSql(StringInfo buf, Relation rel);
3046 extern void deparseAnalyzeSql(StringInfo buf, Relation rel,
3047 List **retrieved_attrs);
3048 extern void deparseStringLiteral(StringInfo buf, const char *val);
3049-extern Expr *find_em_expr_for_rel(EquivalenceClass *ec, RelOptInfo *rel);
3050+extern EquivalenceMember *find_em_for_rel(PlannerInfo *root,
3051+ EquivalenceClass *ec,
3052+ RelOptInfo *rel);
3053 extern List *build_tlist_to_deparse(RelOptInfo *foreignrel);
3054 extern void deparseSelectStmtForRel(StringInfo buf, PlannerInfo *root,
3055 RelOptInfo *foreignrel, List *tlist,
3056diff --git a/contrib/postgres_fdw/sql/postgres_fdw.sql b/contrib/postgres_fdw/sql/postgres_fdw.sql
3057index bf8cc66..d14720a 100644
3058--- a/contrib/postgres_fdw/sql/postgres_fdw.sql
3059+++ b/contrib/postgres_fdw/sql/postgres_fdw.sql
3060@@ -819,6 +819,10 @@ create operator class my_op_class for type int using btree family my_op_family a
3061 explain (verbose, costs off)
3062 select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6 and c1 < 100 group by c2;
3063
3064+-- This should not be pushed either.
3065+explain (verbose, costs off)
3066+select * from ft2 order by c1 using operator(public.<^);
3067+
3068 -- Add into extension
3069 alter extension postgres_fdw add operator class my_op_class using btree;
3070 alter extension postgres_fdw add function my_op_cmp(a int, b int);
3071@@ -833,6 +837,10 @@ explain (verbose, costs off)
3072 select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6 and c1 < 100 group by c2;
3073 select array_agg(c1 order by c1 using operator(public.<^)) from ft2 where c2 = 6 and c1 < 100 group by c2;
3074
3075+-- This should be pushed too.
3076+explain (verbose, costs off)
3077+select * from ft2 order by c1 using operator(public.<^);
3078+
3079 -- Remove from extension
3080 alter extension postgres_fdw drop operator class my_op_class using btree;
3081 alter extension postgres_fdw drop function my_op_cmp(a int, b int);
3082diff --git a/contrib/seg/segparse.c b/contrib/seg/segparse.c
3083index 4805572..43f4681 100644
3084--- a/contrib/seg/segparse.c
3085+++ b/contrib/seg/segparse.c
3086@@ -1,8 +1,8 @@
3087-/* A Bison parser, made by GNU Bison 3.3.2. */
3088+/* A Bison parser, made by GNU Bison 3.7.5. */
3089
3090 /* Bison implementation for Yacc-like parsers in C
3091
3092- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
3093+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
3094 Inc.
3095
3096 This program is free software: you can redistribute it and/or modify
3097@@ -34,6 +34,10 @@
3098 /* C LALR(1) parser skeleton written by Richard Stallman, by
3099 simplifying the original so-called "semantic" parser. */
3100
3101+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
3102+ especially those whose name start with YY_ or yy_. They are
3103+ private implementation details that can be changed or removed. */
3104+
3105 /* All symbols defined below should begin with yy or YY, to avoid
3106 infringing on user name space. This should be done even for local
3107 variables, as they might otherwise be expanded by user macros.
3108@@ -41,14 +45,11 @@
3109 define necessary library symbols; they are noted "INFRINGES ON
3110 USER NAME SPACE" below. */
3111
3112-/* Undocumented macros, especially those whose name start with YY_,
3113- are private implementation details. Do not rely on them. */
3114-
3115-/* Identify Bison output. */
3116-#define YYBISON 1
3117+/* Identify Bison output, and Bison version. */
3118+#define YYBISON 30705
3119
3120-/* Bison version. */
3121-#define YYBISON_VERSION "3.3.2"
3122+/* Bison version string. */
3123+#define YYBISON_VERSION "3.7.5"
3124
3125 /* Skeleton name. */
3126 #define YYSKELETON_NAME "yacc.c"
3127@@ -69,12 +70,11 @@
3128 #define yyerror seg_yyerror
3129 #define yydebug seg_yydebug
3130 #define yynerrs seg_yynerrs
3131-
3132 #define yylval seg_yylval
3133 #define yychar seg_yychar
3134
3135 /* First part of user prologue. */
3136-#line 1 "segparse.y" /* yacc.c:337 */
3137+#line 1 "segparse.y"
3138
3139 /* contrib/seg/segparse.y */
3140
3141@@ -109,7 +109,17 @@ static char strbuf[25] = {
3142 };
3143
3144
3145-#line 113 "segparse.c" /* yacc.c:337 */
3146+#line 113 "segparse.c"
3147+
3148+# ifndef YY_CAST
3149+# ifdef __cplusplus
3150+# define YY_CAST(Type, Val) static_cast<Type> (Val)
3151+# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
3152+# else
3153+# define YY_CAST(Type, Val) ((Type) (Val))
3154+# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
3155+# endif
3156+# endif
3157 # ifndef YY_NULLPTR
3158 # if defined __cplusplus
3159 # if 201103L <= __cplusplus
3160@@ -122,14 +132,6 @@ static char strbuf[25] = {
3161 # endif
3162 # endif
3163
3164-/* Enabling verbose error messages. */
3165-#ifdef YYERROR_VERBOSE
3166-# undef YYERROR_VERBOSE
3167-# define YYERROR_VERBOSE 1
3168-#else
3169-# define YYERROR_VERBOSE 0
3170-#endif
3171-
3172
3173 /* Debug traces. */
3174 #ifndef YYDEBUG
3175@@ -139,24 +141,28 @@ static char strbuf[25] = {
3176 extern int seg_yydebug;
3177 #endif
3178
3179-/* Token type. */
3180+/* Token kinds. */
3181 #ifndef YYTOKENTYPE
3182 # define YYTOKENTYPE
3183 enum yytokentype
3184 {
3185- SEGFLOAT = 258,
3186- RANGE = 259,
3187- PLUMIN = 260,
3188- EXTENSION = 261
3189+ YYEMPTY = -2,
3190+ YYEOF = 0, /* "end of file" */
3191+ YYerror = 256, /* error */
3192+ YYUNDEF = 257, /* "invalid token" */
3193+ SEGFLOAT = 258, /* SEGFLOAT */
3194+ RANGE = 259, /* RANGE */
3195+ PLUMIN = 260, /* PLUMIN */
3196+ EXTENSION = 261 /* EXTENSION */
3197 };
3198+ typedef enum yytokentype yytoken_kind_t;
3199 #endif
3200
3201 /* Value type. */
3202 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
3203-
3204 union YYSTYPE
3205 {
3206-#line 41 "segparse.y" /* yacc.c:352 */
3207+#line 41 "segparse.y"
3208
3209 struct BND {
3210 float val;
3211@@ -165,9 +171,9 @@ union YYSTYPE
3212 } bnd;
3213 char * text;
3214
3215-#line 169 "segparse.c" /* yacc.c:352 */
3216-};
3217+#line 175 "segparse.c"
3218
3219+};
3220 typedef union YYSTYPE YYSTYPE;
3221 # define YYSTYPE_IS_TRIVIAL 1
3222 # define YYSTYPE_IS_DECLARED 1
3223@@ -179,6 +185,24 @@ extern YYSTYPE seg_yylval;
3224 int seg_yyparse (SEG *result);
3225
3226
3227+/* Symbol kind. */
3228+enum yysymbol_kind_t
3229+{
3230+ YYSYMBOL_YYEMPTY = -2,
3231+ YYSYMBOL_YYEOF = 0, /* "end of file" */
3232+ YYSYMBOL_YYerror = 1, /* error */
3233+ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
3234+ YYSYMBOL_SEGFLOAT = 3, /* SEGFLOAT */
3235+ YYSYMBOL_RANGE = 4, /* RANGE */
3236+ YYSYMBOL_PLUMIN = 5, /* PLUMIN */
3237+ YYSYMBOL_EXTENSION = 6, /* EXTENSION */
3238+ YYSYMBOL_YYACCEPT = 7, /* $accept */
3239+ YYSYMBOL_range = 8, /* range */
3240+ YYSYMBOL_boundary = 9, /* boundary */
3241+ YYSYMBOL_deviation = 10 /* deviation */
3242+};
3243+typedef enum yysymbol_kind_t yysymbol_kind_t;
3244+
3245
3246
3247
3248@@ -186,28 +210,87 @@ int seg_yyparse (SEG *result);
3249 # undef short
3250 #endif
3251
3252-#ifdef YYTYPE_UINT8
3253-typedef YYTYPE_UINT8 yytype_uint8;
3254-#else
3255-typedef unsigned char yytype_uint8;
3256+/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
3257+ <limits.h> and (if available) <stdint.h> are included
3258+ so that the code can choose integer types of a good width. */
3259+
3260+#ifndef __PTRDIFF_MAX__
3261+# include <limits.h> /* INFRINGES ON USER NAME SPACE */
3262+# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
3263+# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
3264+# define YY_STDINT_H
3265+# endif
3266 #endif
3267
3268-#ifdef YYTYPE_INT8
3269-typedef YYTYPE_INT8 yytype_int8;
3270+/* Narrow types that promote to a signed type and that can represent a
3271+ signed or unsigned integer of at least N bits. In tables they can
3272+ save space and decrease cache pressure. Promoting to a signed type
3273+ helps avoid bugs in integer arithmetic. */
3274+
3275+#ifdef __INT_LEAST8_MAX__
3276+typedef __INT_LEAST8_TYPE__ yytype_int8;
3277+#elif defined YY_STDINT_H
3278+typedef int_least8_t yytype_int8;
3279 #else
3280 typedef signed char yytype_int8;
3281 #endif
3282
3283-#ifdef YYTYPE_UINT16
3284-typedef YYTYPE_UINT16 yytype_uint16;
3285+#ifdef __INT_LEAST16_MAX__
3286+typedef __INT_LEAST16_TYPE__ yytype_int16;
3287+#elif defined YY_STDINT_H
3288+typedef int_least16_t yytype_int16;
3289 #else
3290-typedef unsigned short yytype_uint16;
3291+typedef short yytype_int16;
3292+#endif
3293+
3294+/* Work around bug in HP-UX 11.23, which defines these macros
3295+ incorrectly for preprocessor constants. This workaround can likely
3296+ be removed in 2023, as HPE has promised support for HP-UX 11.23
3297+ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
3298+ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
3299+#ifdef __hpux
3300+# undef UINT_LEAST8_MAX
3301+# undef UINT_LEAST16_MAX
3302+# define UINT_LEAST8_MAX 255
3303+# define UINT_LEAST16_MAX 65535
3304+#endif
3305+
3306+#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
3307+typedef __UINT_LEAST8_TYPE__ yytype_uint8;
3308+#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
3309+ && UINT_LEAST8_MAX <= INT_MAX)
3310+typedef uint_least8_t yytype_uint8;
3311+#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
3312+typedef unsigned char yytype_uint8;
3313+#else
3314+typedef short yytype_uint8;
3315 #endif
3316
3317-#ifdef YYTYPE_INT16
3318-typedef YYTYPE_INT16 yytype_int16;
3319+#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
3320+typedef __UINT_LEAST16_TYPE__ yytype_uint16;
3321+#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
3322+ && UINT_LEAST16_MAX <= INT_MAX)
3323+typedef uint_least16_t yytype_uint16;
3324+#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
3325+typedef unsigned short yytype_uint16;
3326 #else
3327-typedef short yytype_int16;
3328+typedef int yytype_uint16;
3329+#endif
3330+
3331+#ifndef YYPTRDIFF_T
3332+# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
3333+# define YYPTRDIFF_T __PTRDIFF_TYPE__
3334+# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
3335+# elif defined PTRDIFF_MAX
3336+# ifndef ptrdiff_t
3337+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
3338+# endif
3339+# define YYPTRDIFF_T ptrdiff_t
3340+# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
3341+# else
3342+# define YYPTRDIFF_T long
3343+# define YYPTRDIFF_MAXIMUM LONG_MAX
3344+# endif
3345 #endif
3346
3347 #ifndef YYSIZE_T
3348@@ -215,7 +298,7 @@ typedef short yytype_int16;
3349 # define YYSIZE_T __SIZE_TYPE__
3350 # elif defined size_t
3351 # define YYSIZE_T size_t
3352-# elif ! defined YYSIZE_T
3353+# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
3354 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
3355 # define YYSIZE_T size_t
3356 # else
3357@@ -223,7 +306,20 @@ typedef short yytype_int16;
3358 # endif
3359 #endif
3360
3361-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
3362+#define YYSIZE_MAXIMUM \
3363+ YY_CAST (YYPTRDIFF_T, \
3364+ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
3365+ ? YYPTRDIFF_MAXIMUM \
3366+ : YY_CAST (YYSIZE_T, -1)))
3367+
3368+#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
3369+
3370+
3371+/* Stored state numbers (used for stacks). */
3372+typedef yytype_int8 yy_state_t;
3373+
3374+/* State numbers in computations. */
3375+typedef int yy_state_fast_t;
3376
3377 #ifndef YY_
3378 # if defined YYENABLE_NLS && YYENABLE_NLS
3379@@ -237,38 +333,37 @@ typedef short yytype_int16;
3380 # endif
3381 #endif
3382
3383-#ifndef YY_ATTRIBUTE
3384-# if (defined __GNUC__ \
3385- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
3386- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
3387-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
3388-# else
3389-# define YY_ATTRIBUTE(Spec) /* empty */
3390-# endif
3391-#endif
3392
3393 #ifndef YY_ATTRIBUTE_PURE
3394-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
3395+# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
3396+# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
3397+# else
3398+# define YY_ATTRIBUTE_PURE
3399+# endif
3400 #endif
3401
3402 #ifndef YY_ATTRIBUTE_UNUSED
3403-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
3404+# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
3405+# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
3406+# else
3407+# define YY_ATTRIBUTE_UNUSED
3408+# endif
3409 #endif
3410
3411 /* Suppress unused-variable warnings by "using" E. */
3412 #if ! defined lint || defined __GNUC__
3413-# define YYUSE(E) ((void) (E))
3414+# define YY_USE(E) ((void) (E))
3415 #else
3416-# define YYUSE(E) /* empty */
3417+# define YY_USE(E) /* empty */
3418 #endif
3419
3420 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
3421 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
3422-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
3423- _Pragma ("GCC diagnostic push") \
3424- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
3425+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
3426+ _Pragma ("GCC diagnostic push") \
3427+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
3428 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
3429-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
3430+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
3431 _Pragma ("GCC diagnostic pop")
3432 #else
3433 # define YY_INITIAL_VALUE(Value) Value
3434@@ -281,8 +376,22 @@ typedef short yytype_int16;
3435 # define YY_INITIAL_VALUE(Value) /* Nothing. */
3436 #endif
3437
3438+#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
3439+# define YY_IGNORE_USELESS_CAST_BEGIN \
3440+ _Pragma ("GCC diagnostic push") \
3441+ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
3442+# define YY_IGNORE_USELESS_CAST_END \
3443+ _Pragma ("GCC diagnostic pop")
3444+#endif
3445+#ifndef YY_IGNORE_USELESS_CAST_BEGIN
3446+# define YY_IGNORE_USELESS_CAST_BEGIN
3447+# define YY_IGNORE_USELESS_CAST_END
3448+#endif
3449+
3450+
3451+#define YY_ASSERT(E) ((void) (0 && (E)))
3452
3453-#if ! defined yyoverflow || YYERROR_VERBOSE
3454+#if !defined yyoverflow
3455
3456 /* The parser invokes alloca or malloc; define the necessary symbols. */
3457
3458@@ -347,8 +456,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
3459 # endif
3460 # endif
3461 # endif
3462-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
3463-
3464+#endif /* !defined yyoverflow */
3465
3466 #if (! defined yyoverflow \
3467 && (! defined __cplusplus \
3468@@ -357,17 +465,17 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
3469 /* A type that is properly aligned for any stack member. */
3470 union yyalloc
3471 {
3472- yytype_int16 yyss_alloc;
3473+ yy_state_t yyss_alloc;
3474 YYSTYPE yyvs_alloc;
3475 };
3476
3477 /* The size of the maximum gap between one aligned stack and the next. */
3478-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
3479+# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
3480
3481 /* The size of an array large to enough to hold all stacks, each with
3482 N elements. */
3483 # define YYSTACK_BYTES(N) \
3484- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
3485+ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
3486 + YYSTACK_GAP_MAXIMUM)
3487
3488 # define YYCOPY_NEEDED 1
3489@@ -380,11 +488,11 @@ union yyalloc
3490 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
3491 do \
3492 { \
3493- YYSIZE_T yynewbytes; \
3494+ YYPTRDIFF_T yynewbytes; \
3495 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
3496 Stack = &yyptr->Stack_alloc; \
3497- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
3498- yyptr += yynewbytes / sizeof (*yyptr); \
3499+ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
3500+ yyptr += yynewbytes / YYSIZEOF (*yyptr); \
3501 } \
3502 while (0)
3503
3504@@ -396,12 +504,12 @@ union yyalloc
3505 # ifndef YYCOPY
3506 # if defined __GNUC__ && 1 < __GNUC__
3507 # define YYCOPY(Dst, Src, Count) \
3508- __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
3509+ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
3510 # else
3511 # define YYCOPY(Dst, Src, Count) \
3512 do \
3513 { \
3514- YYSIZE_T yyi; \
3515+ YYPTRDIFF_T yyi; \
3516 for (yyi = 0; yyi < (Count); yyi++) \
3517 (Dst)[yyi] = (Src)[yyi]; \
3518 } \
3519@@ -424,17 +532,20 @@ union yyalloc
3520 /* YYNSTATES -- Number of states. */
3521 #define YYNSTATES 14
3522
3523-#define YYUNDEFTOK 2
3524+/* YYMAXUTOK -- Last valid token kind. */
3525 #define YYMAXUTOK 261
3526
3527+
3528 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
3529 as returned by yylex, with out-of-bounds checking. */
3530-#define YYTRANSLATE(YYX) \
3531- ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
3532+#define YYTRANSLATE(YYX) \
3533+ (0 <= (YYX) && (YYX) <= YYMAXUTOK \
3534+ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
3535+ : YYSYMBOL_YYUNDEF)
3536
3537 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
3538 as returned by yylex. */
3539-static const yytype_uint8 yytranslate[] =
3540+static const yytype_int8 yytranslate[] =
3541 {
3542 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3543 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3544@@ -473,33 +584,46 @@ static const yytype_uint8 yyrline[] =
3545 };
3546 #endif
3547
3548-#if YYDEBUG || YYERROR_VERBOSE || 0
3549+/** Accessing symbol of state STATE. */
3550+#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
3551+
3552+#if YYDEBUG || 0
3553+/* The user-facing name of the symbol whose (internal) number is
3554+ YYSYMBOL. No bounds checking. */
3555+static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
3556+
3557 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
3558 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
3559 static const char *const yytname[] =
3560 {
3561- "$end", "error", "$undefined", "SEGFLOAT", "RANGE", "PLUMIN",
3562- "EXTENSION", "$accept", "range", "boundary", "deviation", YY_NULLPTR
3563+ "\"end of file\"", "error", "\"invalid token\"", "SEGFLOAT", "RANGE",
3564+ "PLUMIN", "EXTENSION", "$accept", "range", "boundary", "deviation", YY_NULLPTR
3565 };
3566+
3567+static const char *
3568+yysymbol_name (yysymbol_kind_t yysymbol)
3569+{
3570+ return yytname[yysymbol];
3571+}
3572 #endif
3573
3574-# ifdef YYPRINT
3575+#ifdef YYPRINT
3576 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
3577 (internal) symbol number NUM (which must be that of a token). */
3578-static const yytype_uint16 yytoknum[] =
3579+static const yytype_int16 yytoknum[] =
3580 {
3581 0, 256, 257, 258, 259, 260, 261
3582 };
3583-# endif
3584+#endif
3585
3586-#define YYPACT_NINF -3
3587+#define YYPACT_NINF (-3)
3588
3589-#define yypact_value_is_default(Yystate) \
3590- (!!((Yystate) == (-3)))
3591+#define yypact_value_is_default(Yyn) \
3592+ ((Yyn) == YYPACT_NINF)
3593
3594-#define YYTABLE_NINF -1
3595+#define YYTABLE_NINF (-1)
3596
3597-#define yytable_value_is_error(Yytable_value) \
3598+#define yytable_value_is_error(Yyn) \
3599 0
3600
3601 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
3602@@ -513,7 +637,7 @@ static const yytype_int8 yypact[] =
3603 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
3604 Performed when YYTABLE does not specify something else to do. Zero
3605 means the default is an error. */
3606-static const yytype_uint8 yydefact[] =
3607+static const yytype_int8 yydefact[] =
3608 {
3609 0, 7, 0, 0, 0, 6, 5, 8, 1, 4,
3610 0, 3, 9, 2
3611@@ -528,13 +652,13 @@ static const yytype_int8 yypgoto[] =
3612 /* YYDEFGOTO[NTERM-NUM]. */
3613 static const yytype_int8 yydefgoto[] =
3614 {
3615- -1, 4, 5, 13
3616+ 0, 4, 5, 13
3617 };
3618
3619 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
3620 positive, shift that token. If negative, reduce the rule whose
3621 number is the opposite. If YYTABLE_NINF, syntax error. */
3622-static const yytype_uint8 yytable[] =
3623+static const yytype_int8 yytable[] =
3624 {
3625 6, 0, 1, 2, 7, 3, 1, 11, 8, 3,
3626 9, 10, 12
3627@@ -548,29 +672,29 @@ static const yytype_int8 yycheck[] =
3628
3629 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3630 symbol of state STATE-NUM. */
3631-static const yytype_uint8 yystos[] =
3632+static const yytype_int8 yystos[] =
3633 {
3634 0, 3, 4, 6, 8, 9, 9, 3, 0, 4,
3635 5, 9, 3, 10
3636 };
3637
3638 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
3639-static const yytype_uint8 yyr1[] =
3640+static const yytype_int8 yyr1[] =
3641 {
3642 0, 7, 8, 8, 8, 8, 8, 9, 9, 10
3643 };
3644
3645 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
3646-static const yytype_uint8 yyr2[] =
3647+static const yytype_int8 yyr2[] =
3648 {
3649 0, 2, 3, 3, 2, 2, 1, 1, 2, 1
3650 };
3651
3652
3653+enum { YYENOMEM = -2 };
3654+
3655 #define yyerrok (yyerrstatus = 0)
3656 #define yyclearin (yychar = YYEMPTY)
3657-#define YYEMPTY (-2)
3658-#define YYEOF 0
3659
3660 #define YYACCEPT goto yyacceptlab
3661 #define YYABORT goto yyabortlab
3662@@ -596,10 +720,9 @@ static const yytype_uint8 yyr2[] =
3663 } \
3664 while (0)
3665
3666-/* Error token number */
3667-#define YYTERROR 1
3668-#define YYERRCODE 256
3669-
3670+/* Backward compatibility with an undocumented macro.
3671+ Use YYerror or YYUNDEF. */
3672+#define YYERRCODE YYUNDEF
3673
3674
3675 /* Enable debugging if requested. */
3676@@ -617,18 +740,18 @@ do { \
3677 } while (0)
3678
3679 /* This macro is provided for backward compatibility. */
3680-#ifndef YY_LOCATION_PRINT
3681-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3682-#endif
3683+# ifndef YY_LOCATION_PRINT
3684+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3685+# endif
3686
3687
3688-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3689+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
3690 do { \
3691 if (yydebug) \
3692 { \
3693 YYFPRINTF (stderr, "%s ", Title); \
3694 yy_symbol_print (stderr, \
3695- Type, Value, result); \
3696+ Kind, Value, result); \
3697 YYFPRINTF (stderr, "\n"); \
3698 } \
3699 } while (0)
3700@@ -639,18 +762,21 @@ do { \
3701 `-----------------------------------*/
3702
3703 static void
3704-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result)
3705+yy_symbol_value_print (FILE *yyo,
3706+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, SEG *result)
3707 {
3708 FILE *yyoutput = yyo;
3709- YYUSE (yyoutput);
3710- YYUSE (result);
3711+ YY_USE (yyoutput);
3712+ YY_USE (result);
3713 if (!yyvaluep)
3714 return;
3715 # ifdef YYPRINT
3716- if (yytype < YYNTOKENS)
3717- YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
3718+ if (yykind < YYNTOKENS)
3719+ YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
3720 # endif
3721- YYUSE (yytype);
3722+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3723+ YY_USE (yykind);
3724+ YY_IGNORE_MAYBE_UNINITIALIZED_END
3725 }
3726
3727
3728@@ -659,12 +785,13 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SE
3729 `---------------------------*/
3730
3731 static void
3732-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result)
3733+yy_symbol_print (FILE *yyo,
3734+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, SEG *result)
3735 {
3736 YYFPRINTF (yyo, "%s %s (",
3737- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3738+ yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
3739
3740- yy_symbol_value_print (yyo, yytype, yyvaluep, result);
3741+ yy_symbol_value_print (yyo, yykind, yyvaluep, result);
3742 YYFPRINTF (yyo, ")");
3743 }
3744
3745@@ -674,7 +801,7 @@ yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *res
3746 `------------------------------------------------------------------*/
3747
3748 static void
3749-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3750+yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
3751 {
3752 YYFPRINTF (stderr, "Stack now");
3753 for (; yybottom <= yytop; yybottom++)
3754@@ -697,21 +824,21 @@ do { \
3755 `------------------------------------------------*/
3756
3757 static void
3758-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, SEG *result)
3759+yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
3760+ int yyrule, SEG *result)
3761 {
3762- unsigned long yylno = yyrline[yyrule];
3763+ int yylno = yyrline[yyrule];
3764 int yynrhs = yyr2[yyrule];
3765 int yyi;
3766- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3767+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
3768 yyrule - 1, yylno);
3769 /* The symbols being reduced. */
3770 for (yyi = 0; yyi < yynrhs; yyi++)
3771 {
3772 YYFPRINTF (stderr, " $%d = ", yyi + 1);
3773 yy_symbol_print (stderr,
3774- yystos[yyssp[yyi + 1 - yynrhs]],
3775- &yyvsp[(yyi + 1) - (yynrhs)]
3776- , result);
3777+ YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
3778+ &yyvsp[(yyi + 1) - (yynrhs)], result);
3779 YYFPRINTF (stderr, "\n");
3780 }
3781 }
3782@@ -726,8 +853,8 @@ do { \
3783 multiple parsers can coexist. */
3784 int yydebug;
3785 #else /* !YYDEBUG */
3786-# define YYDPRINTF(Args)
3787-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3788+# define YYDPRINTF(Args) ((void) 0)
3789+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
3790 # define YY_STACK_PRINT(Bottom, Top)
3791 # define YY_REDUCE_PRINT(Rule)
3792 #endif /* !YYDEBUG */
3793@@ -750,255 +877,31 @@ int yydebug;
3794 #endif
3795
3796
3797-#if YYERROR_VERBOSE
3798-
3799-# ifndef yystrlen
3800-# if defined __GLIBC__ && defined _STRING_H
3801-# define yystrlen strlen
3802-# else
3803-/* Return the length of YYSTR. */
3804-static YYSIZE_T
3805-yystrlen (const char *yystr)
3806-{
3807- YYSIZE_T yylen;
3808- for (yylen = 0; yystr[yylen]; yylen++)
3809- continue;
3810- return yylen;
3811-}
3812-# endif
3813-# endif
3814-
3815-# ifndef yystpcpy
3816-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3817-# define yystpcpy stpcpy
3818-# else
3819-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3820- YYDEST. */
3821-static char *
3822-yystpcpy (char *yydest, const char *yysrc)
3823-{
3824- char *yyd = yydest;
3825- const char *yys = yysrc;
3826-
3827- while ((*yyd++ = *yys++) != '\0')
3828- continue;
3829-
3830- return yyd - 1;
3831-}
3832-# endif
3833-# endif
3834-
3835-# ifndef yytnamerr
3836-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3837- quotes and backslashes, so that it's suitable for yyerror. The
3838- heuristic is that double-quoting is unnecessary unless the string
3839- contains an apostrophe, a comma, or backslash (other than
3840- backslash-backslash). YYSTR is taken from yytname. If YYRES is
3841- null, do not copy; instead, return the length of what the result
3842- would have been. */
3843-static YYSIZE_T
3844-yytnamerr (char *yyres, const char *yystr)
3845-{
3846- if (*yystr == '"')
3847- {
3848- YYSIZE_T yyn = 0;
3849- char const *yyp = yystr;
3850-
3851- for (;;)
3852- switch (*++yyp)
3853- {
3854- case '\'':
3855- case ',':
3856- goto do_not_strip_quotes;
3857-
3858- case '\\':
3859- if (*++yyp != '\\')
3860- goto do_not_strip_quotes;
3861- else
3862- goto append;
3863-
3864- append:
3865- default:
3866- if (yyres)
3867- yyres[yyn] = *yyp;
3868- yyn++;
3869- break;
3870-
3871- case '"':
3872- if (yyres)
3873- yyres[yyn] = '\0';
3874- return yyn;
3875- }
3876- do_not_strip_quotes: ;
3877- }
3878-
3879- if (! yyres)
3880- return yystrlen (yystr);
3881
3882- return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
3883-}
3884-# endif
3885
3886-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3887- about the unexpected token YYTOKEN for the state stack whose top is
3888- YYSSP.
3889-
3890- Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3891- not large enough to hold the message. In that case, also set
3892- *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3893- required number of bytes is too large to store. */
3894-static int
3895-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3896- yytype_int16 *yyssp, int yytoken)
3897-{
3898- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3899- YYSIZE_T yysize = yysize0;
3900- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3901- /* Internationalized format string. */
3902- const char *yyformat = YY_NULLPTR;
3903- /* Arguments of yyformat. */
3904- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3905- /* Number of reported tokens (one for the "unexpected", one per
3906- "expected"). */
3907- int yycount = 0;
3908-
3909- /* There are many possibilities here to consider:
3910- - If this state is a consistent state with a default action, then
3911- the only way this function was invoked is if the default action
3912- is an error action. In that case, don't check for expected
3913- tokens because there are none.
3914- - The only way there can be no lookahead present (in yychar) is if
3915- this state is a consistent state with a default action. Thus,
3916- detecting the absence of a lookahead is sufficient to determine
3917- that there is no unexpected or expected token to report. In that
3918- case, just report a simple "syntax error".
3919- - Don't assume there isn't a lookahead just because this state is a
3920- consistent state with a default action. There might have been a
3921- previous inconsistent state, consistent state with a non-default
3922- action, or user semantic action that manipulated yychar.
3923- - Of course, the expected token list depends on states to have
3924- correct lookahead information, and it depends on the parser not
3925- to perform extra reductions after fetching a lookahead from the
3926- scanner and before detecting a syntax error. Thus, state merging
3927- (from LALR or IELR) and default reductions corrupt the expected
3928- token list. However, the list is correct for canonical LR with
3929- one exception: it will still contain any token that will not be
3930- accepted due to an error action in a later state.
3931- */
3932- if (yytoken != YYEMPTY)
3933- {
3934- int yyn = yypact[*yyssp];
3935- yyarg[yycount++] = yytname[yytoken];
3936- if (!yypact_value_is_default (yyn))
3937- {
3938- /* Start YYX at -YYN if negative to avoid negative indexes in
3939- YYCHECK. In other words, skip the first -YYN actions for
3940- this state because they are default actions. */
3941- int yyxbegin = yyn < 0 ? -yyn : 0;
3942- /* Stay within bounds of both yycheck and yytname. */
3943- int yychecklim = YYLAST - yyn + 1;
3944- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3945- int yyx;
3946-
3947- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3948- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3949- && !yytable_value_is_error (yytable[yyx + yyn]))
3950- {
3951- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3952- {
3953- yycount = 1;
3954- yysize = yysize0;
3955- break;
3956- }
3957- yyarg[yycount++] = yytname[yyx];
3958- {
3959- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3960- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3961- yysize = yysize1;
3962- else
3963- return 2;
3964- }
3965- }
3966- }
3967- }
3968-
3969- switch (yycount)
3970- {
3971-# define YYCASE_(N, S) \
3972- case N: \
3973- yyformat = S; \
3974- break
3975- default: /* Avoid compiler warnings. */
3976- YYCASE_(0, YY_("syntax error"));
3977- YYCASE_(1, YY_("syntax error, unexpected %s"));
3978- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3979- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3980- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3981- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3982-# undef YYCASE_
3983- }
3984
3985- {
3986- YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3987- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3988- yysize = yysize1;
3989- else
3990- return 2;
3991- }
3992-
3993- if (*yymsg_alloc < yysize)
3994- {
3995- *yymsg_alloc = 2 * yysize;
3996- if (! (yysize <= *yymsg_alloc
3997- && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3998- *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3999- return 1;
4000- }
4001-
4002- /* Avoid sprintf, as that infringes on the user's name space.
4003- Don't have undefined behavior even if the translation
4004- produced a string with the wrong number of "%s"s. */
4005- {
4006- char *yyp = *yymsg;
4007- int yyi = 0;
4008- while ((*yyp = *yyformat) != '\0')
4009- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
4010- {
4011- yyp += yytnamerr (yyp, yyarg[yyi++]);
4012- yyformat += 2;
4013- }
4014- else
4015- {
4016- yyp++;
4017- yyformat++;
4018- }
4019- }
4020- return 0;
4021-}
4022-#endif /* YYERROR_VERBOSE */
4023
4024 /*-----------------------------------------------.
4025 | Release the memory associated to this symbol. |
4026 `-----------------------------------------------*/
4027
4028 static void
4029-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, SEG *result)
4030+yydestruct (const char *yymsg,
4031+ yysymbol_kind_t yykind, YYSTYPE *yyvaluep, SEG *result)
4032 {
4033- YYUSE (yyvaluep);
4034- YYUSE (result);
4035+ YY_USE (yyvaluep);
4036+ YY_USE (result);
4037 if (!yymsg)
4038 yymsg = "Deleting";
4039- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
4040+ YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
4041
4042 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4043- YYUSE (yytype);
4044+ YY_USE (yykind);
4045 YY_IGNORE_MAYBE_UNINITIALIZED_END
4046 }
4047
4048
4049-
4050-
4051-/* The lookahead symbol. */
4052+/* Lookahead token kind. */
4053 int yychar;
4054
4055 /* The semantic value of the lookahead symbol. */
4056@@ -1007,6 +910,8 @@ YYSTYPE yylval;
4057 int yynerrs;
4058
4059
4060+
4061+
4062 /*----------.
4063 | yyparse. |
4064 `----------*/
4065@@ -1014,43 +919,36 @@ int yynerrs;
4066 int
4067 yyparse (SEG *result)
4068 {
4069- int yystate;
4070+ yy_state_fast_t yystate = 0;
4071 /* Number of tokens to shift before error messages enabled. */
4072- int yyerrstatus;
4073+ int yyerrstatus = 0;
4074
4075- /* The stacks and their tools:
4076- 'yyss': related to states.
4077- 'yyvs': related to semantic values.
4078-
4079- Refer to the stacks through separate pointers, to allow yyoverflow
4080+ /* Refer to the stacks through separate pointers, to allow yyoverflow
4081 to reallocate them elsewhere. */
4082
4083- /* The state stack. */
4084- yytype_int16 yyssa[YYINITDEPTH];
4085- yytype_int16 *yyss;
4086- yytype_int16 *yyssp;
4087+ /* Their size. */
4088+ YYPTRDIFF_T yystacksize = YYINITDEPTH;
4089
4090- /* The semantic value stack. */
4091- YYSTYPE yyvsa[YYINITDEPTH];
4092- YYSTYPE *yyvs;
4093- YYSTYPE *yyvsp;
4094+ /* The state stack: array, bottom, top. */
4095+ yy_state_t yyssa[YYINITDEPTH];
4096+ yy_state_t *yyss = yyssa;
4097+ yy_state_t *yyssp = yyss;
4098
4099- YYSIZE_T yystacksize;
4100+ /* The semantic value stack: array, bottom, top. */
4101+ YYSTYPE yyvsa[YYINITDEPTH];
4102+ YYSTYPE *yyvs = yyvsa;
4103+ YYSTYPE *yyvsp = yyvs;
4104
4105 int yyn;
4106+ /* The return value of yyparse. */
4107 int yyresult;
4108- /* Lookahead token as an internal (translated) token number. */
4109- int yytoken = 0;
4110+ /* Lookahead symbol kind. */
4111+ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
4112 /* The variables used to return semantic value and location from the
4113 action routines. */
4114 YYSTYPE yyval;
4115
4116-#if YYERROR_VERBOSE
4117- /* Buffer for error messages, and its allocated size. */
4118- char yymsgbuf[128];
4119- char *yymsg = yymsgbuf;
4120- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4121-#endif
4122+
4123
4124 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4125
4126@@ -1058,15 +956,8 @@ yyparse (SEG *result)
4127 Keep to zero when no symbol should be popped. */
4128 int yylen = 0;
4129
4130- yyssp = yyss = yyssa;
4131- yyvsp = yyvs = yyvsa;
4132- yystacksize = YYINITDEPTH;
4133-
4134 YYDPRINTF ((stderr, "Starting parse\n"));
4135
4136- yystate = 0;
4137- yyerrstatus = 0;
4138- yynerrs = 0;
4139 yychar = YYEMPTY; /* Cause a token to be read. */
4140 goto yysetstate;
4141
4142@@ -1081,10 +972,15 @@ yynewstate:
4143
4144
4145 /*--------------------------------------------------------------------.
4146-| yynewstate -- set current state (the top of the stack) to yystate. |
4147+| yysetstate -- set current state (the top of the stack) to yystate. |
4148 `--------------------------------------------------------------------*/
4149 yysetstate:
4150- *yyssp = (yytype_int16) yystate;
4151+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4152+ YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
4153+ YY_IGNORE_USELESS_CAST_BEGIN
4154+ *yyssp = YY_CAST (yy_state_t, yystate);
4155+ YY_IGNORE_USELESS_CAST_END
4156+ YY_STACK_PRINT (yyss, yyssp);
4157
4158 if (yyss + yystacksize - 1 <= yyssp)
4159 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
4160@@ -1092,23 +988,23 @@ yysetstate:
4161 #else
4162 {
4163 /* Get the current used size of the three stacks, in elements. */
4164- YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
4165+ YYPTRDIFF_T yysize = yyssp - yyss + 1;
4166
4167 # if defined yyoverflow
4168 {
4169 /* Give user a chance to reallocate the stack. Use copies of
4170 these so that the &'s don't force the real ones into
4171 memory. */
4172+ yy_state_t *yyss1 = yyss;
4173 YYSTYPE *yyvs1 = yyvs;
4174- yytype_int16 *yyss1 = yyss;
4175
4176 /* Each stack pointer address is followed by the size of the
4177 data in use in that stack, in bytes. This used to be a
4178 conditional around just the two extra args, but that might
4179 be undefined if yyoverflow is a macro. */
4180 yyoverflow (YY_("memory exhausted"),
4181- &yyss1, yysize * sizeof (*yyssp),
4182- &yyvs1, yysize * sizeof (*yyvsp),
4183+ &yyss1, yysize * YYSIZEOF (*yyssp),
4184+ &yyvs1, yysize * YYSIZEOF (*yyvsp),
4185 &yystacksize);
4186 yyss = yyss1;
4187 yyvs = yyvs1;
4188@@ -1122,14 +1018,15 @@ yysetstate:
4189 yystacksize = YYMAXDEPTH;
4190
4191 {
4192- yytype_int16 *yyss1 = yyss;
4193+ yy_state_t *yyss1 = yyss;
4194 union yyalloc *yyptr =
4195- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4196+ YY_CAST (union yyalloc *,
4197+ YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
4198 if (! yyptr)
4199 goto yyexhaustedlab;
4200 YYSTACK_RELOCATE (yyss_alloc, yyss);
4201 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4202-# undef YYSTACK_RELOCATE
4203+# undef YYSTACK_RELOCATE
4204 if (yyss1 != yyssa)
4205 YYSTACK_FREE (yyss1);
4206 }
4207@@ -1138,16 +1035,16 @@ yysetstate:
4208 yyssp = yyss + yysize - 1;
4209 yyvsp = yyvs + yysize - 1;
4210
4211- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4212- (unsigned long) yystacksize));
4213+ YY_IGNORE_USELESS_CAST_BEGIN
4214+ YYDPRINTF ((stderr, "Stack size increased to %ld\n",
4215+ YY_CAST (long, yystacksize)));
4216+ YY_IGNORE_USELESS_CAST_END
4217
4218 if (yyss + yystacksize - 1 <= yyssp)
4219 YYABORT;
4220 }
4221 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
4222
4223- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4224-
4225 if (yystate == YYFINAL)
4226 YYACCEPT;
4227
4228@@ -1168,18 +1065,29 @@ yybackup:
4229
4230 /* Not known => get a lookahead token if don't already have one. */
4231
4232- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
4233+ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
4234 if (yychar == YYEMPTY)
4235 {
4236- YYDPRINTF ((stderr, "Reading a token: "));
4237+ YYDPRINTF ((stderr, "Reading a token\n"));
4238 yychar = yylex ();
4239 }
4240
4241 if (yychar <= YYEOF)
4242 {
4243- yychar = yytoken = YYEOF;
4244+ yychar = YYEOF;
4245+ yytoken = YYSYMBOL_YYEOF;
4246 YYDPRINTF ((stderr, "Now at end of input.\n"));
4247 }
4248+ else if (yychar == YYerror)
4249+ {
4250+ /* The scanner already issued an error message, process directly
4251+ to error recovery. But do not keep the error token as
4252+ lookahead, it is too special and may lead us to an endless
4253+ loop in error recovery. */
4254+ yychar = YYUNDEF;
4255+ yytoken = YYSYMBOL_YYerror;
4256+ goto yyerrlab1;
4257+ }
4258 else
4259 {
4260 yytoken = YYTRANSLATE (yychar);
4261@@ -1207,15 +1115,13 @@ yybackup:
4262
4263 /* Shift the lookahead token. */
4264 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4265-
4266- /* Discard the shifted token. */
4267- yychar = YYEMPTY;
4268-
4269 yystate = yyn;
4270 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4271 *++yyvsp = yylval;
4272 YY_IGNORE_MAYBE_UNINITIALIZED_END
4273
4274+ /* Discard the shifted token. */
4275+ yychar = YYEMPTY;
4276 goto yynewstate;
4277
4278
4279@@ -1250,9 +1156,9 @@ yyreduce:
4280 YY_REDUCE_PRINT (yyn);
4281 switch (yyn)
4282 {
4283- case 2:
4284-#line 62 "segparse.y" /* yacc.c:1652 */
4285- {
4286+ case 2: /* range: boundary PLUMIN deviation */
4287+#line 62 "segparse.y"
4288+ {
4289 result->lower = (yyvsp[-2].bnd).val - (yyvsp[0].bnd).val;
4290 result->upper = (yyvsp[-2].bnd).val + (yyvsp[0].bnd).val;
4291 sprintf(strbuf, "%g", result->lower);
4292@@ -1262,12 +1168,12 @@ yyreduce:
4293 result->l_ext = '\0';
4294 result->u_ext = '\0';
4295 }
4296-#line 1266 "segparse.c" /* yacc.c:1652 */
4297+#line 1172 "segparse.c"
4298 break;
4299
4300- case 3:
4301-#line 74 "segparse.y" /* yacc.c:1652 */
4302- {
4303+ case 3: /* range: boundary RANGE boundary */
4304+#line 74 "segparse.y"
4305+ {
4306 result->lower = (yyvsp[-2].bnd).val;
4307 result->upper = (yyvsp[0].bnd).val;
4308 if ( result->lower > result->upper ) {
4309@@ -1283,12 +1189,12 @@ yyreduce:
4310 result->l_ext = ( (yyvsp[-2].bnd).ext ? (yyvsp[-2].bnd).ext : '\0' );
4311 result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' );
4312 }
4313-#line 1287 "segparse.c" /* yacc.c:1652 */
4314+#line 1193 "segparse.c"
4315 break;
4316
4317- case 4:
4318-#line 92 "segparse.y" /* yacc.c:1652 */
4319- {
4320+ case 4: /* range: boundary RANGE */
4321+#line 92 "segparse.y"
4322+ {
4323 result->lower = (yyvsp[-1].bnd).val;
4324 result->upper = HUGE_VAL;
4325 result->l_sigd = (yyvsp[-1].bnd).sigd;
4326@@ -1296,12 +1202,12 @@ yyreduce:
4327 result->l_ext = ( (yyvsp[-1].bnd).ext ? (yyvsp[-1].bnd).ext : '\0' );
4328 result->u_ext = '-';
4329 }
4330-#line 1300 "segparse.c" /* yacc.c:1652 */
4331+#line 1206 "segparse.c"
4332 break;
4333
4334- case 5:
4335-#line 102 "segparse.y" /* yacc.c:1652 */
4336- {
4337+ case 5: /* range: RANGE boundary */
4338+#line 102 "segparse.y"
4339+ {
4340 result->lower = -HUGE_VAL;
4341 result->upper = (yyvsp[0].bnd).val;
4342 result->l_sigd = 0;
4343@@ -1309,22 +1215,22 @@ yyreduce:
4344 result->l_ext = '-';
4345 result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' );
4346 }
4347-#line 1313 "segparse.c" /* yacc.c:1652 */
4348+#line 1219 "segparse.c"
4349 break;
4350
4351- case 6:
4352-#line 112 "segparse.y" /* yacc.c:1652 */
4353- {
4354+ case 6: /* range: boundary */
4355+#line 112 "segparse.y"
4356+ {
4357 result->lower = result->upper = (yyvsp[0].bnd).val;
4358 result->l_sigd = result->u_sigd = (yyvsp[0].bnd).sigd;
4359 result->l_ext = result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' );
4360 }
4361-#line 1323 "segparse.c" /* yacc.c:1652 */
4362+#line 1229 "segparse.c"
4363 break;
4364
4365- case 7:
4366-#line 120 "segparse.y" /* yacc.c:1652 */
4367- {
4368+ case 7: /* boundary: SEGFLOAT */
4369+#line 120 "segparse.y"
4370+ {
4371 /* temp variable avoids a gcc 3.3.x bug on Sparc64 */
4372 float val = seg_atof((yyvsp[0].text));
4373
4374@@ -1332,12 +1238,12 @@ yyreduce:
4375 (yyval.bnd).sigd = significant_digits((yyvsp[0].text));
4376 (yyval.bnd).val = val;
4377 }
4378-#line 1336 "segparse.c" /* yacc.c:1652 */
4379+#line 1242 "segparse.c"
4380 break;
4381
4382- case 8:
4383-#line 129 "segparse.y" /* yacc.c:1652 */
4384- {
4385+ case 8: /* boundary: EXTENSION SEGFLOAT */
4386+#line 129 "segparse.y"
4387+ {
4388 /* temp variable avoids a gcc 3.3.x bug on Sparc64 */
4389 float val = seg_atof((yyvsp[0].text));
4390
4391@@ -1345,12 +1251,12 @@ yyreduce:
4392 (yyval.bnd).sigd = significant_digits((yyvsp[0].text));
4393 (yyval.bnd).val = val;
4394 }
4395-#line 1349 "segparse.c" /* yacc.c:1652 */
4396+#line 1255 "segparse.c"
4397 break;
4398
4399- case 9:
4400-#line 140 "segparse.y" /* yacc.c:1652 */
4401- {
4402+ case 9: /* deviation: SEGFLOAT */
4403+#line 140 "segparse.y"
4404+ {
4405 /* temp variable avoids a gcc 3.3.x bug on Sparc64 */
4406 float val = seg_atof((yyvsp[0].text));
4407
4408@@ -1358,11 +1264,12 @@ yyreduce:
4409 (yyval.bnd).sigd = significant_digits((yyvsp[0].text));
4410 (yyval.bnd).val = val;
4411 }
4412-#line 1362 "segparse.c" /* yacc.c:1652 */
4413+#line 1268 "segparse.c"
4414 break;
4415
4416
4417-#line 1366 "segparse.c" /* yacc.c:1652 */
4418+#line 1272 "segparse.c"
4419+
4420 default: break;
4421 }
4422 /* User semantic actions sometimes alter yychar, and that requires
4423@@ -1376,11 +1283,10 @@ yyreduce:
4424 case of YYERROR or YYBACKUP, subsequent parser actions might lead
4425 to an incorrect destructor call or verbose syntax error message
4426 before the lookahead is translated. */
4427- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4428+ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
4429
4430 YYPOPSTACK (yylen);
4431 yylen = 0;
4432- YY_STACK_PRINT (yyss, yyssp);
4433
4434 *++yyvsp = yyval;
4435
4436@@ -1404,50 +1310,14 @@ yyreduce:
4437 yyerrlab:
4438 /* Make sure we have latest lookahead translation. See comments at
4439 user semantic actions for why this is necessary. */
4440- yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
4441-
4442+ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
4443 /* If not already recovering from an error, report this error. */
4444 if (!yyerrstatus)
4445 {
4446 ++yynerrs;
4447-#if ! YYERROR_VERBOSE
4448 yyerror (result, YY_("syntax error"));
4449-#else
4450-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4451- yyssp, yytoken)
4452- {
4453- char const *yymsgp = YY_("syntax error");
4454- int yysyntax_error_status;
4455- yysyntax_error_status = YYSYNTAX_ERROR;
4456- if (yysyntax_error_status == 0)
4457- yymsgp = yymsg;
4458- else if (yysyntax_error_status == 1)
4459- {
4460- if (yymsg != yymsgbuf)
4461- YYSTACK_FREE (yymsg);
4462- yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
4463- if (!yymsg)
4464- {
4465- yymsg = yymsgbuf;
4466- yymsg_alloc = sizeof yymsgbuf;
4467- yysyntax_error_status = 2;
4468- }
4469- else
4470- {
4471- yysyntax_error_status = YYSYNTAX_ERROR;
4472- yymsgp = yymsg;
4473- }
4474- }
4475- yyerror (result, yymsgp);
4476- if (yysyntax_error_status == 2)
4477- goto yyexhaustedlab;
4478- }
4479-# undef YYSYNTAX_ERROR
4480-#endif
4481 }
4482
4483-
4484-
4485 if (yyerrstatus == 3)
4486 {
4487 /* If just tried and failed to reuse lookahead token after an
4488@@ -1496,13 +1366,14 @@ yyerrorlab:
4489 yyerrlab1:
4490 yyerrstatus = 3; /* Each real token shifted decrements this. */
4491
4492+ /* Pop stack until we find a state that shifts the error token. */
4493 for (;;)
4494 {
4495 yyn = yypact[yystate];
4496 if (!yypact_value_is_default (yyn))
4497 {
4498- yyn += YYTERROR;
4499- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4500+ yyn += YYSYMBOL_YYerror;
4501+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
4502 {
4503 yyn = yytable[yyn];
4504 if (0 < yyn)
4505@@ -1516,7 +1387,7 @@ yyerrlab1:
4506
4507
4508 yydestruct ("Error: popping",
4509- yystos[yystate], yyvsp, result);
4510+ YY_ACCESSING_SYMBOL (yystate), yyvsp, result);
4511 YYPOPSTACK (1);
4512 yystate = *yyssp;
4513 YY_STACK_PRINT (yyss, yyssp);
4514@@ -1528,7 +1399,7 @@ yyerrlab1:
4515
4516
4517 /* Shift the error token. */
4518- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4519+ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
4520
4521 yystate = yyn;
4522 goto yynewstate;
4523@@ -1550,20 +1421,20 @@ yyabortlab:
4524 goto yyreturn;
4525
4526
4527-#if !defined yyoverflow || YYERROR_VERBOSE
4528+#if !defined yyoverflow
4529 /*-------------------------------------------------.
4530 | yyexhaustedlab -- memory exhaustion comes here. |
4531 `-------------------------------------------------*/
4532 yyexhaustedlab:
4533 yyerror (result, YY_("memory exhausted"));
4534 yyresult = 2;
4535- /* Fall through. */
4536+ goto yyreturn;
4537 #endif
4538
4539
4540-/*-----------------------------------------------------.
4541-| yyreturn -- parsing is finished, return the result. |
4542-`-----------------------------------------------------*/
4543+/*-------------------------------------------------------.
4544+| yyreturn -- parsing is finished, clean up and return. |
4545+`-------------------------------------------------------*/
4546 yyreturn:
4547 if (yychar != YYEMPTY)
4548 {
4549@@ -1580,20 +1451,18 @@ yyreturn:
4550 while (yyssp != yyss)
4551 {
4552 yydestruct ("Cleanup: popping",
4553- yystos[*yyssp], yyvsp, result);
4554+ YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, result);
4555 YYPOPSTACK (1);
4556 }
4557 #ifndef yyoverflow
4558 if (yyss != yyssa)
4559 YYSTACK_FREE (yyss);
4560 #endif
4561-#if YYERROR_VERBOSE
4562- if (yymsg != yymsgbuf)
4563- YYSTACK_FREE (yymsg);
4564-#endif
4565+
4566 return yyresult;
4567 }
4568-#line 150 "segparse.y" /* yacc.c:1918 */
4569+
4570+#line 150 "segparse.y"
4571
4572
4573
4574diff --git a/contrib/test_decoding/expected/toast.out b/contrib/test_decoding/expected/toast.out
4575index 91a9a1e..a8e3676 100644
4576--- a/contrib/test_decoding/expected/toast.out
4577+++ b/contrib/test_decoding/expected/toast.out
4578@@ -77,7 +77,7 @@ SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot',
4579 table public.toasted_key: INSERT: id[integer]:1 toasted_key[text]:'1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
4580 COMMIT
4581 BEGIN
4582- table public.toasted_key: UPDATE: id[integer]:1 toasted_key[text]:unchanged-toast-datum toasted_col1[text]:unchanged-toast-datum toasted_col2[text]:'987654321098765432109876543210987654321098765432109
4583+ table public.toasted_key: UPDATE: old-key: toasted_key[text]:'123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
4584 COMMIT
4585 BEGIN
4586 table public.toasted_key: UPDATE: old-key: toasted_key[text]:'123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
4587diff --git a/debian/changelog b/debian/changelog
4588index 52b7d77..9dd96e5 100644
4589--- a/debian/changelog
4590+++ b/debian/changelog
4591@@ -1,3 +1,32 @@
4592+postgresql-10 (10.21-0ubuntu0.18.04.1) bionic; urgency=medium
4593+
4594+ * New upstream version (LP: #1973627).
4595+
4596+ + A dump/restore is not required for those running 10.X.
4597+
4598+ + However, if you are upgrading from a version earlier than 10.19, see
4599+ those release notes as well please.
4600+
4601+ + Confine additional operations within "security restricted operation"
4602+ sandboxes (Sergey Shinderuk, Noah Misch).
4603+
4604+ Autovacuum, CLUSTER, CREATE INDEX, REINDEX, REFRESH MATERIALIZED VIEW,
4605+ and pg_amcheck activated the "security restricted operation" protection
4606+ mechanism too late, or even not at all in some code paths. A user having
4607+ permission to create non-temporary objects within a database could
4608+ define an object that would execute arbitrary SQL code with superuser
4609+ permissions the next time that autovacuum processed the object, or that
4610+ some superuser ran one of the affected commands against it.
4611+
4612+ The PostgreSQL Project thanks Alexander Lakhin for reporting this
4613+ problem.
4614+ (CVE-2022-1552)
4615+
4616+ + Details about these and many further changes can be found at:
4617+ https://www.postgresql.org/docs/10/release-10-21.html
4618+
4619+ -- Sergio Durigan Junior <sergio.durigan@canonical.com> Tue, 17 May 2022 21:58:23 -0400
4620+
4621 postgresql-10 (10.20-0ubuntu0.18.04.1) bionic; urgency=medium
4622
4623 * New upstream version (LP: #1961127).
4624diff --git a/doc/bug.template b/doc/bug.template
4625index 0223829..7df4c5e 100644
4626--- a/doc/bug.template
4627+++ b/doc/bug.template
4628@@ -27,7 +27,7 @@ System Configuration:
4629
4630 Operating System (example: Linux 2.4.18) :
4631
4632- PostgreSQL version (example: PostgreSQL 10.20): PostgreSQL 10.20
4633+ PostgreSQL version (example: PostgreSQL 10.21): PostgreSQL 10.21
4634
4635 Compiler used (example: gcc 3.3.5) :
4636
4637diff --git a/doc/src/sgml/html/acronyms.html b/doc/src/sgml/html/acronyms.html
4638index 799fc63..575c912 100644
4639--- a/doc/src/sgml/html/acronyms.html
4640+++ b/doc/src/sgml/html/acronyms.html
4641@@ -1,5 +1,5 @@
4642 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4643-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix K. Acronyms</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="docguide-style.html" title="J.5. Style Guide" /><link rel="next" href="appendix-obsolete.html" title="Appendix L. Obsolete or Renamed Features" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">Appendix K. Acronyms</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="docguide-style.html" title="J.5. Style Guide">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="appendixes.html" title="Part VIII. Appendixes">Up</a></td><th width="60%" align="center">Part VIII. Appendixes</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="appendix-obsolete.html" title="Appendix L. Obsolete or Renamed Features">Next</a></td></tr></table><hr></hr></div><div class="appendix" id="ACRONYMS"><div class="titlepage"><div><div><h2 class="title">Appendix K. Acronyms</h2></div></div></div><p> This is a list of acronyms commonly used in the <span class="productname">PostgreSQL</span>
4644+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix K. Acronyms</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="docguide-style.html" title="J.5. Style Guide" /><link rel="next" href="appendix-obsolete.html" title="Appendix L. Obsolete or Renamed Features" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">Appendix K. Acronyms</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="docguide-style.html" title="J.5. Style Guide">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="appendixes.html" title="Part VIII. Appendixes">Up</a></td><th width="60%" align="center">Part VIII. Appendixes</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="appendix-obsolete.html" title="Appendix L. Obsolete or Renamed Features">Next</a></td></tr></table><hr></hr></div><div class="appendix" id="ACRONYMS"><div class="titlepage"><div><div><h2 class="title">Appendix K. Acronyms</h2></div></div></div><p> This is a list of acronyms commonly used in the <span class="productname">PostgreSQL</span>
4645 documentation and in discussions about <span class="productname">PostgreSQL</span>.
4646
4647 </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><acronym class="acronym">ANSI</acronym></span></dt><dd><p> <a class="ulink" href="http://en.wikipedia.org/wiki/American_National_Standards_Institute" target="_top"> American National Standards Institute</a>
4648@@ -80,7 +80,7 @@
4649 Database Management System</a>
4650 </p></dd><dt><span class="term"><acronym class="acronym">PAM</acronym></span></dt><dd><p> <a class="ulink" href="http://en.wikipedia.org/wiki/Pluggable_Authentication_Modules" target="_top">Pluggable
4651 Authentication Modules</a>
4652- </p></dd><dt><span class="term"><acronym class="acronym">PGSQL</acronym></span></dt><dd><p> <a class="link" href="index.html" title="PostgreSQL 10.20 Documentation"><span class="productname">PostgreSQL</span></a>
4653+ </p></dd><dt><span class="term"><acronym class="acronym">PGSQL</acronym></span></dt><dd><p> <a class="link" href="index.html" title="PostgreSQL 10.21 Documentation"><span class="productname">PostgreSQL</span></a>
4654 </p></dd><dt><span class="term"><acronym class="acronym">PGXS</acronym></span></dt><dd><p> <a class="link" href="extend-pgxs.html" title="37.16. Extension Building Infrastructure"><span class="productname">PostgreSQL</span> Extension System</a>
4655 </p></dd><dt><span class="term"><acronym class="acronym">PID</acronym></span></dt><dd><p> <a class="ulink" href="http://en.wikipedia.org/wiki/Process_identifier" target="_top">Process Identifier</a>
4656 </p></dd><dt><span class="term"><acronym class="acronym">PITR</acronym></span></dt><dd><p> <a class="link" href="continuous-archiving.html" title="25.3. Continuous Archiving and Point-in-Time Recovery (PITR)">Point-In-Time
4657@@ -125,4 +125,4 @@
4658 </p></dd><dt><span class="term"><acronym class="acronym">XML</acronym></span></dt><dd><p> <a class="ulink" href="http://en.wikipedia.org/wiki/XML" target="_top">Extensible Markup
4659 Language</a>
4660 </p></dd></dl></div><p>
4661- </p></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="docguide-style.html" title="J.5. Style Guide">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendixes.html" title="Part VIII. Appendixes">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendix-obsolete.html" title="Appendix L. Obsolete or Renamed Features">Next</a></td></tr><tr><td width="40%" align="left" valign="top">J.5. Style Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> Appendix L. Obsolete or Renamed Features</td></tr></table></div></body></html>
4662\ No newline at end of file
4663+ </p></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="docguide-style.html" title="J.5. Style Guide">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendixes.html" title="Part VIII. Appendixes">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendix-obsolete.html" title="Appendix L. Obsolete or Renamed Features">Next</a></td></tr><tr><td width="40%" align="left" valign="top">J.5. Style Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> Appendix L. Obsolete or Renamed Features</td></tr></table></div></body></html>
4664\ No newline at end of file
4665diff --git a/doc/src/sgml/html/admin.html b/doc/src/sgml/html/admin.html
4666index 6cae99c..d37b5cc 100644
4667--- a/doc/src/sgml/html/admin.html
4668+++ b/doc/src/sgml/html/admin.html
4669@@ -1,5 +1,5 @@
4670 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4671-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Server Administration</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="parallel-safety.html" title="15.4. Parallel Safety" /><link rel="next" href="installation.html" title="Chapter 16.  Installation from Source Code" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">Part III. Server Administration</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="parallel-safety.html" title="15.4. Parallel Safety">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="index.html" title="PostgreSQL 10.20 Documentation">Up</a></td><th width="60%" align="center">PostgreSQL 10.20 Documentation</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="installation.html" title="Chapter 16.  Installation from Source Code">Next</a></td></tr></table><hr></hr></div><div class="part" id="ADMIN"><div class="titlepage"><div><div><h1 class="title">Part III. Server Administration</h1></div></div></div><div class="partintro" id="id-1.6.2"><div></div><p> This part covers topics that are of interest to a
4672+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Server Administration</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="parallel-safety.html" title="15.4. Parallel Safety" /><link rel="next" href="installation.html" title="Chapter 16.  Installation from Source Code" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">Part III. Server Administration</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="parallel-safety.html" title="15.4. Parallel Safety">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="index.html" title="PostgreSQL 10.21 Documentation">Up</a></td><th width="60%" align="center">PostgreSQL 10.21 Documentation</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="installation.html" title="Chapter 16.  Installation from Source Code">Next</a></td></tr></table><hr></hr></div><div class="part" id="ADMIN"><div class="titlepage"><div><div><h1 class="title">Part III. Server Administration</h1></div></div></div><div class="partintro" id="id-1.6.2"><div></div><p> This part covers topics that are of interest to a
4673 <span class="productname">PostgreSQL</span> database administrator. This includes
4674 installation of the software, set up and configuration of the
4675 server, management of users and databases, and maintenance tasks.
4676@@ -20,4 +20,4 @@
4677 the <span class="productname">PostgreSQL</span> database system. Readers are
4678 encouraged to look at <a class="xref" href="tutorial.html" title="Part I. Tutorial">Part I</a> and <a class="xref" href="sql.html" title="Part II. The SQL Language">Part II</a> for additional information.
4679 </p><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="installation.html">16. Installation from Source Code</a></span></dt><dd><dl><dt><span class="sect1"><a href="install-short.html">16.1. Short Version</a></span></dt><dt><span class="sect1"><a href="install-requirements.html">16.2. Requirements</a></span></dt><dt><span class="sect1"><a href="install-getsource.html">16.3. Getting The Source</a></span></dt><dt><span class="sect1"><a href="install-procedure.html">16.4. Installation Procedure</a></span></dt><dt><span class="sect1"><a href="install-post.html">16.5. Post-Installation Setup</a></span></dt><dt><span class="sect1"><a href="supported-platforms.html">16.6. Supported Platforms</a></span></dt><dt><span class="sect1"><a href="installation-platform-notes.html">16.7. Platform-specific Notes</a></span></dt></dl></dd><dt><span class="chapter"><a href="install-windows.html">17. Installation from Source Code on <span class="productname">Windows</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="install-windows-full.html">17.1. Building with <span class="productname">Visual C++</span> or the
4680- <span class="productname">Microsoft Windows SDK</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="runtime.html">18. Server Setup and Operation</a></span></dt><dd><dl><dt><span class="sect1"><a href="postgres-user.html">18.1. The <span class="productname">PostgreSQL</span> User Account</a></span></dt><dt><span class="sect1"><a href="creating-cluster.html">18.2. Creating a Database Cluster</a></span></dt><dt><span class="sect1"><a href="server-start.html">18.3. Starting the Database Server</a></span></dt><dt><span class="sect1"><a href="kernel-resources.html">18.4. Managing Kernel Resources</a></span></dt><dt><span class="sect1"><a href="server-shutdown.html">18.5. Shutting Down the Server</a></span></dt><dt><span class="sect1"><a href="upgrading.html">18.6. Upgrading a <span class="productname">PostgreSQL</span> Cluster</a></span></dt><dt><span class="sect1"><a href="preventing-server-spoofing.html">18.7. Preventing Server Spoofing</a></span></dt><dt><span class="sect1"><a href="encryption-options.html">18.8. Encryption Options</a></span></dt><dt><span class="sect1"><a href="ssl-tcp.html">18.9. Secure TCP/IP Connections with SSL</a></span></dt><dt><span class="sect1"><a href="ssh-tunnels.html">18.10. Secure TCP/IP Connections with <span class="application">SSH</span> Tunnels</a></span></dt><dt><span class="sect1"><a href="event-log-registration.html">18.11. Registering <span class="application">Event Log</span> on <span class="systemitem">Windows</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="runtime-config.html">19. Server Configuration</a></span></dt><dd><dl><dt><span class="sect1"><a href="config-setting.html">19.1. Setting Parameters</a></span></dt><dt><span class="sect1"><a href="runtime-config-file-locations.html">19.2. File Locations</a></span></dt><dt><span class="sect1"><a href="runtime-config-connection.html">19.3. Connections and Authentication</a></span></dt><dt><span class="sect1"><a href="runtime-config-resource.html">19.4. Resource Consumption</a></span></dt><dt><span class="sect1"><a href="runtime-config-wal.html">19.5. Write Ahead Log</a></span></dt><dt><span class="sect1"><a href="runtime-config-replication.html">19.6. Replication</a></span></dt><dt><span class="sect1"><a href="runtime-config-query.html">19.7. Query Planning</a></span></dt><dt><span class="sect1"><a href="runtime-config-logging.html">19.8. Error Reporting and Logging</a></span></dt><dt><span class="sect1"><a href="runtime-config-statistics.html">19.9. Run-time Statistics</a></span></dt><dt><span class="sect1"><a href="runtime-config-autovacuum.html">19.10. Automatic Vacuuming</a></span></dt><dt><span class="sect1"><a href="runtime-config-client.html">19.11. Client Connection Defaults</a></span></dt><dt><span class="sect1"><a href="runtime-config-locks.html">19.12. Lock Management</a></span></dt><dt><span class="sect1"><a href="runtime-config-compatible.html">19.13. Version and Platform Compatibility</a></span></dt><dt><span class="sect1"><a href="runtime-config-error-handling.html">19.14. Error Handling</a></span></dt><dt><span class="sect1"><a href="runtime-config-preset.html">19.15. Preset Options</a></span></dt><dt><span class="sect1"><a href="runtime-config-custom.html">19.16. Customized Options</a></span></dt><dt><span class="sect1"><a href="runtime-config-developer.html">19.17. Developer Options</a></span></dt><dt><span class="sect1"><a href="runtime-config-short.html">19.18. Short Options</a></span></dt></dl></dd><dt><span class="chapter"><a href="client-authentication.html">20. Client Authentication</a></span></dt><dd><dl><dt><span class="sect1"><a href="auth-pg-hba-conf.html">20.1. The <code class="filename">pg_hba.conf</code> File</a></span></dt><dt><span class="sect1"><a href="auth-username-maps.html">20.2. User Name Maps</a></span></dt><dt><span class="sect1"><a href="auth-methods.html">20.3. Authentication Methods</a></span></dt><dt><span class="sect1"><a href="client-authentication-problems.html">20.4. Authentication Problems</a></span></dt></dl></dd><dt><span class="chapter"><a href="user-manag.html">21. Database Roles</a></span></dt><dd><dl><dt><span class="sect1"><a href="database-roles.html">21.1. Database Roles</a></span></dt><dt><span class="sect1"><a href="role-attributes.html">21.2. Role Attributes</a></span></dt><dt><span class="sect1"><a href="role-membership.html">21.3. Role Membership</a></span></dt><dt><span class="sect1"><a href="role-removal.html">21.4. Dropping Roles</a></span></dt><dt><span class="sect1"><a href="default-roles.html">21.5. Default Roles</a></span></dt><dt><span class="sect1"><a href="perm-functions.html">21.6. Function Security</a></span></dt></dl></dd><dt><span class="chapter"><a href="managing-databases.html">22. Managing Databases</a></span></dt><dd><dl><dt><span class="sect1"><a href="manage-ag-overview.html">22.1. Overview</a></span></dt><dt><span class="sect1"><a href="manage-ag-createdb.html">22.2. Creating a Database</a></span></dt><dt><span class="sect1"><a href="manage-ag-templatedbs.html">22.3. Template Databases</a></span></dt><dt><span class="sect1"><a href="manage-ag-config.html">22.4. Database Configuration</a></span></dt><dt><span class="sect1"><a href="manage-ag-dropdb.html">22.5. Destroying a Database</a></span></dt><dt><span class="sect1"><a href="manage-ag-tablespaces.html">22.6. Tablespaces</a></span></dt></dl></dd><dt><span class="chapter"><a href="charset.html">23. Localization</a></span></dt><dd><dl><dt><span class="sect1"><a href="locale.html">23.1. Locale Support</a></span></dt><dt><span class="sect1"><a href="collation.html">23.2. Collation Support</a></span></dt><dt><span class="sect1"><a href="multibyte.html">23.3. Character Set Support</a></span></dt></dl></dd><dt><span class="chapter"><a href="maintenance.html">24. Routine Database Maintenance Tasks</a></span></dt><dd><dl><dt><span class="sect1"><a href="routine-vacuuming.html">24.1. Routine Vacuuming</a></span></dt><dt><span class="sect1"><a href="routine-reindex.html">24.2. Routine Reindexing</a></span></dt><dt><span class="sect1"><a href="logfile-maintenance.html">24.3. Log File Maintenance</a></span></dt></dl></dd><dt><span class="chapter"><a href="backup.html">25. Backup and Restore</a></span></dt><dd><dl><dt><span class="sect1"><a href="backup-dump.html">25.1. <acronym class="acronym">SQL</acronym> Dump</a></span></dt><dt><span class="sect1"><a href="backup-file.html">25.2. File System Level Backup</a></span></dt><dt><span class="sect1"><a href="continuous-archiving.html">25.3. Continuous Archiving and Point-in-Time Recovery (PITR)</a></span></dt></dl></dd><dt><span class="chapter"><a href="high-availability.html">26. High Availability, Load Balancing, and Replication</a></span></dt><dd><dl><dt><span class="sect1"><a href="different-replication-solutions.html">26.1. Comparison of Different Solutions</a></span></dt><dt><span class="sect1"><a href="warm-standby.html">26.2. Log-Shipping Standby Servers</a></span></dt><dt><span class="sect1"><a href="warm-standby-failover.html">26.3. Failover</a></span></dt><dt><span class="sect1"><a href="log-shipping-alternative.html">26.4. Alternative Method for Log Shipping</a></span></dt><dt><span class="sect1"><a href="hot-standby.html">26.5. Hot Standby</a></span></dt></dl></dd><dt><span class="chapter"><a href="recovery-config.html">27. Recovery Configuration</a></span></dt><dd><dl><dt><span class="sect1"><a href="archive-recovery-settings.html">27.1. Archive Recovery Settings</a></span></dt><dt><span class="sect1"><a href="recovery-target-settings.html">27.2. Recovery Target Settings</a></span></dt><dt><span class="sect1"><a href="standby-settings.html">27.3. Standby Server Settings</a></span></dt></dl></dd><dt><span class="chapter"><a href="monitoring.html">28. Monitoring Database Activity</a></span></dt><dd><dl><dt><span class="sect1"><a href="monitoring-ps.html">28.1. Standard Unix Tools</a></span></dt><dt><span class="sect1"><a href="monitoring-stats.html">28.2. The Statistics Collector</a></span></dt><dt><span class="sect1"><a href="monitoring-locks.html">28.3. Viewing Locks</a></span></dt><dt><span class="sect1"><a href="progress-reporting.html">28.4. Progress Reporting</a></span></dt><dt><span class="sect1"><a href="dynamic-trace.html">28.5. Dynamic Tracing</a></span></dt></dl></dd><dt><span class="chapter"><a href="diskusage.html">29. Monitoring Disk Usage</a></span></dt><dd><dl><dt><span class="sect1"><a href="disk-usage.html">29.1. Determining Disk Usage</a></span></dt><dt><span class="sect1"><a href="disk-full.html">29.2. Disk Full Failure</a></span></dt></dl></dd><dt><span class="chapter"><a href="wal.html">30. Reliability and the Write-Ahead Log</a></span></dt><dd><dl><dt><span class="sect1"><a href="wal-reliability.html">30.1. Reliability</a></span></dt><dt><span class="sect1"><a href="wal-intro.html">30.2. Write-Ahead Logging (<acronym class="acronym">WAL</acronym>)</a></span></dt><dt><span class="sect1"><a href="wal-async-commit.html">30.3. Asynchronous Commit</a></span></dt><dt><span class="sect1"><a href="wal-configuration.html">30.4. <acronym class="acronym">WAL</acronym> Configuration</a></span></dt><dt><span class="sect1"><a href="wal-internals.html">30.5. WAL Internals</a></span></dt></dl></dd><dt><span class="chapter"><a href="logical-replication.html">31. Logical Replication</a></span></dt><dd><dl><dt><span class="sect1"><a href="logical-replication-publication.html">31.1. Publication</a></span></dt><dt><span class="sect1"><a href="logical-replication-subscription.html">31.2. Subscription</a></span></dt><dt><span class="sect1"><a href="logical-replication-conflicts.html">31.3. Conflicts</a></span></dt><dt><span class="sect1"><a href="logical-replication-restrictions.html">31.4. Restrictions</a></span></dt><dt><span class="sect1"><a href="logical-replication-architecture.html">31.5. Architecture</a></span></dt><dt><span class="sect1"><a href="logical-replication-monitoring.html">31.6. Monitoring</a></span></dt><dt><span class="sect1"><a href="logical-replication-security.html">31.7. Security</a></span></dt><dt><span class="sect1"><a href="logical-replication-config.html">31.8. Configuration Settings</a></span></dt><dt><span class="sect1"><a href="logical-replication-quick-setup.html">31.9. Quick Setup</a></span></dt></dl></dd><dt><span class="chapter"><a href="regress.html">32. Regression Tests</a></span></dt><dd><dl><dt><span class="sect1"><a href="regress-run.html">32.1. Running the Tests</a></span></dt><dt><span class="sect1"><a href="regress-evaluation.html">32.2. Test Evaluation</a></span></dt><dt><span class="sect1"><a href="regress-variant.html">32.3. Variant Comparison Files</a></span></dt><dt><span class="sect1"><a href="regress-tap.html">32.4. TAP Tests</a></span></dt><dt><span class="sect1"><a href="regress-coverage.html">32.5. Test Coverage Examination</a></span></dt></dl></dd></dl></div></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parallel-safety.html" title="15.4. Parallel Safety">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html" title="PostgreSQL 10.20 Documentation">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="installation.html" title="Chapter 16.  Installation from Source Code">Next</a></td></tr><tr><td width="40%" align="left" valign="top">15.4. Parallel Safety </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16.  Installation from Source Code</td></tr></table></div></body></html>
4681\ No newline at end of file
4682+ <span class="productname">Microsoft Windows SDK</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="runtime.html">18. Server Setup and Operation</a></span></dt><dd><dl><dt><span class="sect1"><a href="postgres-user.html">18.1. The <span class="productname">PostgreSQL</span> User Account</a></span></dt><dt><span class="sect1"><a href="creating-cluster.html">18.2. Creating a Database Cluster</a></span></dt><dt><span class="sect1"><a href="server-start.html">18.3. Starting the Database Server</a></span></dt><dt><span class="sect1"><a href="kernel-resources.html">18.4. Managing Kernel Resources</a></span></dt><dt><span class="sect1"><a href="server-shutdown.html">18.5. Shutting Down the Server</a></span></dt><dt><span class="sect1"><a href="upgrading.html">18.6. Upgrading a <span class="productname">PostgreSQL</span> Cluster</a></span></dt><dt><span class="sect1"><a href="preventing-server-spoofing.html">18.7. Preventing Server Spoofing</a></span></dt><dt><span class="sect1"><a href="encryption-options.html">18.8. Encryption Options</a></span></dt><dt><span class="sect1"><a href="ssl-tcp.html">18.9. Secure TCP/IP Connections with SSL</a></span></dt><dt><span class="sect1"><a href="ssh-tunnels.html">18.10. Secure TCP/IP Connections with <span class="application">SSH</span> Tunnels</a></span></dt><dt><span class="sect1"><a href="event-log-registration.html">18.11. Registering <span class="application">Event Log</span> on <span class="systemitem">Windows</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="runtime-config.html">19. Server Configuration</a></span></dt><dd><dl><dt><span class="sect1"><a href="config-setting.html">19.1. Setting Parameters</a></span></dt><dt><span class="sect1"><a href="runtime-config-file-locations.html">19.2. File Locations</a></span></dt><dt><span class="sect1"><a href="runtime-config-connection.html">19.3. Connections and Authentication</a></span></dt><dt><span class="sect1"><a href="runtime-config-resource.html">19.4. Resource Consumption</a></span></dt><dt><span class="sect1"><a href="runtime-config-wal.html">19.5. Write Ahead Log</a></span></dt><dt><span class="sect1"><a href="runtime-config-replication.html">19.6. Replication</a></span></dt><dt><span class="sect1"><a href="runtime-config-query.html">19.7. Query Planning</a></span></dt><dt><span class="sect1"><a href="runtime-config-logging.html">19.8. Error Reporting and Logging</a></span></dt><dt><span class="sect1"><a href="runtime-config-statistics.html">19.9. Run-time Statistics</a></span></dt><dt><span class="sect1"><a href="runtime-config-autovacuum.html">19.10. Automatic Vacuuming</a></span></dt><dt><span class="sect1"><a href="runtime-config-client.html">19.11. Client Connection Defaults</a></span></dt><dt><span class="sect1"><a href="runtime-config-locks.html">19.12. Lock Management</a></span></dt><dt><span class="sect1"><a href="runtime-config-compatible.html">19.13. Version and Platform Compatibility</a></span></dt><dt><span class="sect1"><a href="runtime-config-error-handling.html">19.14. Error Handling</a></span></dt><dt><span class="sect1"><a href="runtime-config-preset.html">19.15. Preset Options</a></span></dt><dt><span class="sect1"><a href="runtime-config-custom.html">19.16. Customized Options</a></span></dt><dt><span class="sect1"><a href="runtime-config-developer.html">19.17. Developer Options</a></span></dt><dt><span class="sect1"><a href="runtime-config-short.html">19.18. Short Options</a></span></dt></dl></dd><dt><span class="chapter"><a href="client-authentication.html">20. Client Authentication</a></span></dt><dd><dl><dt><span class="sect1"><a href="auth-pg-hba-conf.html">20.1. The <code class="filename">pg_hba.conf</code> File</a></span></dt><dt><span class="sect1"><a href="auth-username-maps.html">20.2. User Name Maps</a></span></dt><dt><span class="sect1"><a href="auth-methods.html">20.3. Authentication Methods</a></span></dt><dt><span class="sect1"><a href="client-authentication-problems.html">20.4. Authentication Problems</a></span></dt></dl></dd><dt><span class="chapter"><a href="user-manag.html">21. Database Roles</a></span></dt><dd><dl><dt><span class="sect1"><a href="database-roles.html">21.1. Database Roles</a></span></dt><dt><span class="sect1"><a href="role-attributes.html">21.2. Role Attributes</a></span></dt><dt><span class="sect1"><a href="role-membership.html">21.3. Role Membership</a></span></dt><dt><span class="sect1"><a href="role-removal.html">21.4. Dropping Roles</a></span></dt><dt><span class="sect1"><a href="default-roles.html">21.5. Default Roles</a></span></dt><dt><span class="sect1"><a href="perm-functions.html">21.6. Function Security</a></span></dt></dl></dd><dt><span class="chapter"><a href="managing-databases.html">22. Managing Databases</a></span></dt><dd><dl><dt><span class="sect1"><a href="manage-ag-overview.html">22.1. Overview</a></span></dt><dt><span class="sect1"><a href="manage-ag-createdb.html">22.2. Creating a Database</a></span></dt><dt><span class="sect1"><a href="manage-ag-templatedbs.html">22.3. Template Databases</a></span></dt><dt><span class="sect1"><a href="manage-ag-config.html">22.4. Database Configuration</a></span></dt><dt><span class="sect1"><a href="manage-ag-dropdb.html">22.5. Destroying a Database</a></span></dt><dt><span class="sect1"><a href="manage-ag-tablespaces.html">22.6. Tablespaces</a></span></dt></dl></dd><dt><span class="chapter"><a href="charset.html">23. Localization</a></span></dt><dd><dl><dt><span class="sect1"><a href="locale.html">23.1. Locale Support</a></span></dt><dt><span class="sect1"><a href="collation.html">23.2. Collation Support</a></span></dt><dt><span class="sect1"><a href="multibyte.html">23.3. Character Set Support</a></span></dt></dl></dd><dt><span class="chapter"><a href="maintenance.html">24. Routine Database Maintenance Tasks</a></span></dt><dd><dl><dt><span class="sect1"><a href="routine-vacuuming.html">24.1. Routine Vacuuming</a></span></dt><dt><span class="sect1"><a href="routine-reindex.html">24.2. Routine Reindexing</a></span></dt><dt><span class="sect1"><a href="logfile-maintenance.html">24.3. Log File Maintenance</a></span></dt></dl></dd><dt><span class="chapter"><a href="backup.html">25. Backup and Restore</a></span></dt><dd><dl><dt><span class="sect1"><a href="backup-dump.html">25.1. <acronym class="acronym">SQL</acronym> Dump</a></span></dt><dt><span class="sect1"><a href="backup-file.html">25.2. File System Level Backup</a></span></dt><dt><span class="sect1"><a href="continuous-archiving.html">25.3. Continuous Archiving and Point-in-Time Recovery (PITR)</a></span></dt></dl></dd><dt><span class="chapter"><a href="high-availability.html">26. High Availability, Load Balancing, and Replication</a></span></dt><dd><dl><dt><span class="sect1"><a href="different-replication-solutions.html">26.1. Comparison of Different Solutions</a></span></dt><dt><span class="sect1"><a href="warm-standby.html">26.2. Log-Shipping Standby Servers</a></span></dt><dt><span class="sect1"><a href="warm-standby-failover.html">26.3. Failover</a></span></dt><dt><span class="sect1"><a href="log-shipping-alternative.html">26.4. Alternative Method for Log Shipping</a></span></dt><dt><span class="sect1"><a href="hot-standby.html">26.5. Hot Standby</a></span></dt></dl></dd><dt><span class="chapter"><a href="recovery-config.html">27. Recovery Configuration</a></span></dt><dd><dl><dt><span class="sect1"><a href="archive-recovery-settings.html">27.1. Archive Recovery Settings</a></span></dt><dt><span class="sect1"><a href="recovery-target-settings.html">27.2. Recovery Target Settings</a></span></dt><dt><span class="sect1"><a href="standby-settings.html">27.3. Standby Server Settings</a></span></dt></dl></dd><dt><span class="chapter"><a href="monitoring.html">28. Monitoring Database Activity</a></span></dt><dd><dl><dt><span class="sect1"><a href="monitoring-ps.html">28.1. Standard Unix Tools</a></span></dt><dt><span class="sect1"><a href="monitoring-stats.html">28.2. The Statistics Collector</a></span></dt><dt><span class="sect1"><a href="monitoring-locks.html">28.3. Viewing Locks</a></span></dt><dt><span class="sect1"><a href="progress-reporting.html">28.4. Progress Reporting</a></span></dt><dt><span class="sect1"><a href="dynamic-trace.html">28.5. Dynamic Tracing</a></span></dt></dl></dd><dt><span class="chapter"><a href="diskusage.html">29. Monitoring Disk Usage</a></span></dt><dd><dl><dt><span class="sect1"><a href="disk-usage.html">29.1. Determining Disk Usage</a></span></dt><dt><span class="sect1"><a href="disk-full.html">29.2. Disk Full Failure</a></span></dt></dl></dd><dt><span class="chapter"><a href="wal.html">30. Reliability and the Write-Ahead Log</a></span></dt><dd><dl><dt><span class="sect1"><a href="wal-reliability.html">30.1. Reliability</a></span></dt><dt><span class="sect1"><a href="wal-intro.html">30.2. Write-Ahead Logging (<acronym class="acronym">WAL</acronym>)</a></span></dt><dt><span class="sect1"><a href="wal-async-commit.html">30.3. Asynchronous Commit</a></span></dt><dt><span class="sect1"><a href="wal-configuration.html">30.4. <acronym class="acronym">WAL</acronym> Configuration</a></span></dt><dt><span class="sect1"><a href="wal-internals.html">30.5. WAL Internals</a></span></dt></dl></dd><dt><span class="chapter"><a href="logical-replication.html">31. Logical Replication</a></span></dt><dd><dl><dt><span class="sect1"><a href="logical-replication-publication.html">31.1. Publication</a></span></dt><dt><span class="sect1"><a href="logical-replication-subscription.html">31.2. Subscription</a></span></dt><dt><span class="sect1"><a href="logical-replication-conflicts.html">31.3. Conflicts</a></span></dt><dt><span class="sect1"><a href="logical-replication-restrictions.html">31.4. Restrictions</a></span></dt><dt><span class="sect1"><a href="logical-replication-architecture.html">31.5. Architecture</a></span></dt><dt><span class="sect1"><a href="logical-replication-monitoring.html">31.6. Monitoring</a></span></dt><dt><span class="sect1"><a href="logical-replication-security.html">31.7. Security</a></span></dt><dt><span class="sect1"><a href="logical-replication-config.html">31.8. Configuration Settings</a></span></dt><dt><span class="sect1"><a href="logical-replication-quick-setup.html">31.9. Quick Setup</a></span></dt></dl></dd><dt><span class="chapter"><a href="regress.html">32. Regression Tests</a></span></dt><dd><dl><dt><span class="sect1"><a href="regress-run.html">32.1. Running the Tests</a></span></dt><dt><span class="sect1"><a href="regress-evaluation.html">32.2. Test Evaluation</a></span></dt><dt><span class="sect1"><a href="regress-variant.html">32.3. Variant Comparison Files</a></span></dt><dt><span class="sect1"><a href="regress-tap.html">32.4. TAP Tests</a></span></dt><dt><span class="sect1"><a href="regress-coverage.html">32.5. Test Coverage Examination</a></span></dt></dl></dd></dl></div></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parallel-safety.html" title="15.4. Parallel Safety">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html" title="PostgreSQL 10.21 Documentation">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="installation.html" title="Chapter 16.  Installation from Source Code">Next</a></td></tr><tr><td width="40%" align="left" valign="top">15.4. Parallel Safety </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16.  Installation from Source Code</td></tr></table></div></body></html>
4683\ No newline at end of file
4684diff --git a/doc/src/sgml/html/adminpack.html b/doc/src/sgml/html/adminpack.html
4685index 1cd9a5c..caddb7f 100644
4686--- a/doc/src/sgml/html/adminpack.html
4687+++ b/doc/src/sgml/html/adminpack.html
4688@@ -1,5 +1,5 @@
4689 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4690-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>F.1. adminpack</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="contrib.html" title="Appendix F. Additional Supplied Modules" /><link rel="next" href="amcheck.html" title="F.2. amcheck" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">F.1. adminpack</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="contrib.html" title="Appendix F. Additional Supplied Modules">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><th width="60%" align="center">Appendix F. Additional Supplied Modules</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="amcheck.html" title="F.2. amcheck">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="ADMINPACK"><div class="titlepage"><div><div><h2 class="title" style="clear: both">F.1. adminpack</h2></div></div></div><a id="id-1.11.7.10.2" class="indexterm"></a><p> <code class="filename">adminpack</code> provides a number of support functions which
4691+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>F.1. adminpack</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="contrib.html" title="Appendix F. Additional Supplied Modules" /><link rel="next" href="amcheck.html" title="F.2. amcheck" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">F.1. adminpack</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="contrib.html" title="Appendix F. Additional Supplied Modules">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><th width="60%" align="center">Appendix F. Additional Supplied Modules</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="amcheck.html" title="F.2. amcheck">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="ADMINPACK"><div class="titlepage"><div><div><h2 class="title" style="clear: both">F.1. adminpack</h2></div></div></div><a id="id-1.11.7.10.2" class="indexterm"></a><p> <code class="filename">adminpack</code> provides a number of support functions which
4692 <span class="application">pgAdmin</span> and other administration and management tools can
4693 use to provide additional functionality, such as remote management
4694 of server log files.
4695@@ -50,4 +50,4 @@
4696 by <code class="function">pg_stat_file()</code>
4697 </td></tr><tr><td><code class="function">pg_catalog.pg_logfile_rotate()</code></td><td><code class="type">integer</code></td><td> Alternate name for <code class="function">pg_rotate_logfile()</code>, but note that it
4698 returns integer 0 or 1 rather than <code class="type">boolean</code>
4699- </td></tr></tbody></table></div></div><br class="table-break" /></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="contrib.html" title="Appendix F. Additional Supplied Modules">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="amcheck.html" title="F.2. amcheck">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix F. Additional Supplied Modules </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> F.2. amcheck</td></tr></table></div></body></html>
4700\ No newline at end of file
4701+ </td></tr></tbody></table></div></div><br class="table-break" /></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="contrib.html" title="Appendix F. Additional Supplied Modules">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="amcheck.html" title="F.2. amcheck">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix F. Additional Supplied Modules </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> F.2. amcheck</td></tr></table></div></body></html>
4702\ No newline at end of file
4703diff --git a/doc/src/sgml/html/amcheck.html b/doc/src/sgml/html/amcheck.html
4704index 2427489..b062a70 100644
4705--- a/doc/src/sgml/html/amcheck.html
4706+++ b/doc/src/sgml/html/amcheck.html
4707@@ -1,5 +1,5 @@
4708 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4709-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>F.2. amcheck</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="adminpack.html" title="F.1. adminpack" /><link rel="next" href="auth-delay.html" title="F.3. auth_delay" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">F.2. amcheck</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="adminpack.html" title="F.1. adminpack">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><th width="60%" align="center">Appendix F. Additional Supplied Modules</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="auth-delay.html" title="F.3. auth_delay">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="AMCHECK"><div class="titlepage"><div><div><h2 class="title" style="clear: both">F.2. amcheck</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="amcheck.html#id-1.11.7.11.7">F.2.1. Functions</a></span></dt><dt><span class="sect2"><a href="amcheck.html#id-1.11.7.11.8">F.2.2. Using <code class="filename">amcheck</code> effectively</a></span></dt><dt><span class="sect2"><a href="amcheck.html#id-1.11.7.11.9">F.2.3. Repairing corruption</a></span></dt></dl></div><a id="id-1.11.7.11.2" class="indexterm"></a><p> The <code class="filename">amcheck</code> module provides functions that allow you to
4710+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>F.2. amcheck</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="adminpack.html" title="F.1. adminpack" /><link rel="next" href="auth-delay.html" title="F.3. auth_delay" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">F.2. amcheck</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="adminpack.html" title="F.1. adminpack">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><th width="60%" align="center">Appendix F. Additional Supplied Modules</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="auth-delay.html" title="F.3. auth_delay">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="AMCHECK"><div class="titlepage"><div><div><h2 class="title" style="clear: both">F.2. amcheck</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="amcheck.html#id-1.11.7.11.7">F.2.1. Functions</a></span></dt><dt><span class="sect2"><a href="amcheck.html#id-1.11.7.11.8">F.2.2. Using <code class="filename">amcheck</code> effectively</a></span></dt><dt><span class="sect2"><a href="amcheck.html#id-1.11.7.11.9">F.2.3. Repairing corruption</a></span></dt></dl></div><a id="id-1.11.7.11.2" class="indexterm"></a><p> The <code class="filename">amcheck</code> module provides functions that allow you to
4711 verify the logical consistency of the structure of indexes. If the
4712 structure appears to be valid, no error is raised.
4713 </p><p> The functions verify various <span class="emphasis"><em>invariants</em></span> in the
4714@@ -165,4 +165,4 @@ ORDER BY c.relpages DESC LIMIT 10;
4715 an invariant violation should be sought. <a class="xref" href="pageinspect.html" title="F.23. pageinspect">pageinspect</a> may play a useful role in diagnosing
4716 corruption that <code class="filename">amcheck</code> detects. A <code class="command">REINDEX</code>
4717 may not be effective in repairing corruption.
4718- </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="adminpack.html" title="F.1. adminpack">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="auth-delay.html" title="F.3. auth_delay">Next</a></td></tr><tr><td width="40%" align="left" valign="top">F.1. adminpack </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> F.3. auth_delay</td></tr></table></div></body></html>
4719\ No newline at end of file
4720+ </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="adminpack.html" title="F.1. adminpack">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="auth-delay.html" title="F.3. auth_delay">Next</a></td></tr><tr><td width="40%" align="left" valign="top">F.1. adminpack </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> F.3. auth_delay</td></tr></table></div></body></html>
4721\ No newline at end of file
4722diff --git a/doc/src/sgml/html/app-clusterdb.html b/doc/src/sgml/html/app-clusterdb.html
4723index 90d69c5..377f368 100644
4724--- a/doc/src/sgml/html/app-clusterdb.html
4725+++ b/doc/src/sgml/html/app-clusterdb.html
4726@@ -1,5 +1,5 @@
4727 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4728-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>clusterdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="reference-client.html" title="PostgreSQL Client Applications" /><link rel="next" href="app-createdb.html" title="createdb" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">clusterdb</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="reference-client.html" title="PostgreSQL Client Applications">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-createdb.html" title="createdb">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-CLUSTERDB"><div class="titlepage"></div><a id="id-1.9.4.3.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">clusterdb</span></span></h2><p>clusterdb — cluster a <span class="productname">PostgreSQL</span> database</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.3.4.1"><code class="command">clusterdb</code> [<em class="replaceable"><code>connection-option</code></em>...] [ <code class="option">--verbose</code> | <code class="option">-v</code> ] [ <code class="option">--table</code> | <code class="option">-t</code>
4729+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>clusterdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="reference-client.html" title="PostgreSQL Client Applications" /><link rel="next" href="app-createdb.html" title="createdb" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">clusterdb</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="reference-client.html" title="PostgreSQL Client Applications">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-createdb.html" title="createdb">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-CLUSTERDB"><div class="titlepage"></div><a id="id-1.9.4.3.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">clusterdb</span></span></h2><p>clusterdb — cluster a <span class="productname">PostgreSQL</span> database</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.3.4.1"><code class="command">clusterdb</code> [<em class="replaceable"><code>connection-option</code></em>...] [ <code class="option">--verbose</code> | <code class="option">-v</code> ] [ <code class="option">--table</code> | <code class="option">-t</code>
4730 <em class="replaceable"><code>table</code></em>
4731 ]
4732 ... [<em class="replaceable"><code>dbname</code></em>]</p></div><div class="cmdsynopsis"><p id="id-1.9.4.3.4.2"><code class="command">clusterdb</code> [<em class="replaceable"><code>connection-option</code></em>...] [ <code class="option">--verbose</code> | <code class="option">-v</code> ] <code class="option">--all</code> | <code class="option">-a</code> </p></div></div><div class="refsect1" id="id-1.9.4.3.5"><h2>Description</h2><p> <span class="application">clusterdb</span> is a utility for reclustering tables
4733@@ -85,4 +85,4 @@
4734 </p><p> To cluster a single table
4735 <code class="literal">foo</code> in a database named
4736 <code class="literal">xyzzy</code>:
4737-</p><pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>clusterdb --table=foo xyzzy</code></strong></pre></div><div class="refsect1" id="id-1.9.4.3.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="sql-cluster.html" title="CLUSTER"><span class="refentrytitle">CLUSTER</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="reference-client.html" title="PostgreSQL Client Applications">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-createdb.html" title="createdb">Next</a></td></tr><tr><td width="40%" align="left" valign="top">PostgreSQL Client Applications </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">createdb</span></td></tr></table></div></body></html>
4738\ No newline at end of file
4739+</p><pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>clusterdb --table=foo xyzzy</code></strong></pre></div><div class="refsect1" id="id-1.9.4.3.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="sql-cluster.html" title="CLUSTER"><span class="refentrytitle">CLUSTER</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="reference-client.html" title="PostgreSQL Client Applications">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-createdb.html" title="createdb">Next</a></td></tr><tr><td width="40%" align="left" valign="top">PostgreSQL Client Applications </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">createdb</span></td></tr></table></div></body></html>
4740\ No newline at end of file
4741diff --git a/doc/src/sgml/html/app-createdb.html b/doc/src/sgml/html/app-createdb.html
4742index 564b318..a533bcb 100644
4743--- a/doc/src/sgml/html/app-createdb.html
4744+++ b/doc/src/sgml/html/app-createdb.html
4745@@ -1,5 +1,5 @@
4746 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4747-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>createdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-clusterdb.html" title="clusterdb" /><link rel="next" href="app-createuser.html" title="createuser" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createdb</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-clusterdb.html" title="clusterdb">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-createuser.html" title="createuser">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-CREATEDB"><div class="titlepage"></div><a id="id-1.9.4.4.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">createdb</span></span></h2><p>createdb — create a new <span class="productname">PostgreSQL</span> database</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.4.4.1"><code class="command">createdb</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] [<em class="replaceable"><code>dbname</code></em>
4748+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>createdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-clusterdb.html" title="clusterdb" /><link rel="next" href="app-createuser.html" title="createuser" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createdb</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-clusterdb.html" title="clusterdb">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-createuser.html" title="createuser">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-CREATEDB"><div class="titlepage"></div><a id="id-1.9.4.4.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">createdb</span></span></h2><p>createdb — create a new <span class="productname">PostgreSQL</span> database</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.4.4.1"><code class="command">createdb</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] [<em class="replaceable"><code>dbname</code></em>
4749 [<em class="replaceable"><code>description</code></em>]]</p></div></div><div class="refsect1" id="R1-APP-CREATEDB-1"><h2> Description
4750 </h2><p> <span class="application">createdb</span> creates a new <span class="productname">PostgreSQL</span>
4751 database.
4752@@ -100,4 +100,4 @@
4753 <code class="literal">template0</code> template database, here is the
4754 command-line command and the underlying SQL command:
4755 </p><pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>createdb -p 5000 -h eden -T template0 -e demo</code></strong>
4756-<code class="computeroutput">CREATE DATABASE demo TEMPLATE template0;</code></pre></div><div class="refsect1" id="id-1.9.4.4.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-dropdb.html" title="dropdb"><span class="refentrytitle"><span class="application">dropdb</span></span></a>, <a class="xref" href="sql-createdatabase.html" title="CREATE DATABASE"><span class="refentrytitle">CREATE DATABASE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-clusterdb.html" title="clusterdb">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-createuser.html" title="createuser">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">clusterdb</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">createuser</span></td></tr></table></div></body></html>
4757\ No newline at end of file
4758+<code class="computeroutput">CREATE DATABASE demo TEMPLATE template0;</code></pre></div><div class="refsect1" id="id-1.9.4.4.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-dropdb.html" title="dropdb"><span class="refentrytitle"><span class="application">dropdb</span></span></a>, <a class="xref" href="sql-createdatabase.html" title="CREATE DATABASE"><span class="refentrytitle">CREATE DATABASE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-clusterdb.html" title="clusterdb">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-createuser.html" title="createuser">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">clusterdb</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">createuser</span></td></tr></table></div></body></html>
4759\ No newline at end of file
4760diff --git a/doc/src/sgml/html/app-createuser.html b/doc/src/sgml/html/app-createuser.html
4761index 9438b8f..9b3e2ce 100644
4762--- a/doc/src/sgml/html/app-createuser.html
4763+++ b/doc/src/sgml/html/app-createuser.html
4764@@ -1,5 +1,5 @@
4765 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4766-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>createuser</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-createdb.html" title="createdb" /><link rel="next" href="app-dropdb.html" title="dropdb" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createuser</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-createdb.html" title="createdb">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-dropdb.html" title="dropdb">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-CREATEUSER"><div class="titlepage"></div><a id="id-1.9.4.5.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">createuser</span></span></h2><p>createuser — define a new <span class="productname">PostgreSQL</span> user account</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.5.4.1"><code class="command">createuser</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] [<em class="replaceable"><code>username</code></em>]</p></div></div><div class="refsect1" id="id-1.9.4.5.5"><h2>Description</h2><p> <span class="application">createuser</span> creates a
4767+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>createuser</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-createdb.html" title="createdb" /><link rel="next" href="app-dropdb.html" title="dropdb" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createuser</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-createdb.html" title="createdb">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-dropdb.html" title="dropdb">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-CREATEUSER"><div class="titlepage"></div><a id="id-1.9.4.5.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">createuser</span></span></h2><p>createuser — define a new <span class="productname">PostgreSQL</span> user account</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.5.4.1"><code class="command">createuser</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] [<em class="replaceable"><code>username</code></em>]</p></div></div><div class="refsect1" id="id-1.9.4.5.5"><h2>Description</h2><p> <span class="application">createuser</span> creates a
4768 new <span class="productname">PostgreSQL</span> user (or more precisely, a role).
4769 Only superusers and users with <code class="literal">CREATEROLE</code> privilege can create
4770 new users, so <span class="application">createuser</span> must be
4771@@ -128,4 +128,4 @@
4772 In the above example, the new password isn't actually echoed when typed,
4773 but we show what was typed for clarity. As you see, the password is
4774 encrypted before it is sent to the client.
4775- </p></div><div class="refsect1" id="id-1.9.4.5.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-dropuser.html" title="dropuser"><span class="refentrytitle"><span class="application">dropuser</span></span></a>, <a class="xref" href="sql-createrole.html" title="CREATE ROLE"><span class="refentrytitle">CREATE ROLE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-createdb.html" title="createdb">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-dropdb.html" title="dropdb">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createdb</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">dropdb</span></td></tr></table></div></body></html>
4776\ No newline at end of file
4777+ </p></div><div class="refsect1" id="id-1.9.4.5.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-dropuser.html" title="dropuser"><span class="refentrytitle"><span class="application">dropuser</span></span></a>, <a class="xref" href="sql-createrole.html" title="CREATE ROLE"><span class="refentrytitle">CREATE ROLE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-createdb.html" title="createdb">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-dropdb.html" title="dropdb">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createdb</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">dropdb</span></td></tr></table></div></body></html>
4778\ No newline at end of file
4779diff --git a/doc/src/sgml/html/app-dropdb.html b/doc/src/sgml/html/app-dropdb.html
4780index 452fff5..cfd0742 100644
4781--- a/doc/src/sgml/html/app-dropdb.html
4782+++ b/doc/src/sgml/html/app-dropdb.html
4783@@ -1,5 +1,5 @@
4784 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4785-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>dropdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-createuser.html" title="createuser" /><link rel="next" href="app-dropuser.html" title="dropuser" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropdb</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-createuser.html" title="createuser">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-dropuser.html" title="dropuser">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-DROPDB"><div class="titlepage"></div><a id="id-1.9.4.6.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">dropdb</span></span></h2><p>dropdb — remove a <span class="productname">PostgreSQL</span> database</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.6.4.1"><code class="command">dropdb</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] <em class="replaceable"><code>dbname</code></em> </p></div></div><div class="refsect1" id="id-1.9.4.6.5"><h2>Description</h2><p> <span class="application">dropdb</span> destroys an existing
4786+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>dropdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-createuser.html" title="createuser" /><link rel="next" href="app-dropuser.html" title="dropuser" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropdb</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-createuser.html" title="createuser">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-dropuser.html" title="dropuser">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-DROPDB"><div class="titlepage"></div><a id="id-1.9.4.6.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">dropdb</span></span></h2><p>dropdb — remove a <span class="productname">PostgreSQL</span> database</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.6.4.1"><code class="command">dropdb</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] <em class="replaceable"><code>dbname</code></em> </p></div></div><div class="refsect1" id="id-1.9.4.6.5"><h2>Description</h2><p> <span class="application">dropdb</span> destroys an existing
4787 <span class="productname">PostgreSQL</span> database.
4788 The user who executes this command must be a database
4789 superuser or the owner of the database.
4790@@ -74,4 +74,4 @@
4791 </p><pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>dropdb -p 5000 -h eden -i -e demo</code></strong>
4792 <code class="computeroutput">Database "demo" will be permanently deleted.
4793 Are you sure? (y/n) </code><strong class="userinput"><code>y</code></strong>
4794-<code class="computeroutput">DROP DATABASE demo;</code></pre></div><div class="refsect1" id="id-1.9.4.6.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-createdb.html" title="createdb"><span class="refentrytitle"><span class="application">createdb</span></span></a>, <a class="xref" href="sql-dropdatabase.html" title="DROP DATABASE"><span class="refentrytitle">DROP DATABASE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-createuser.html" title="createuser">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-dropuser.html" title="dropuser">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createuser</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">dropuser</span></td></tr></table></div></body></html>
4795\ No newline at end of file
4796+<code class="computeroutput">DROP DATABASE demo;</code></pre></div><div class="refsect1" id="id-1.9.4.6.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-createdb.html" title="createdb"><span class="refentrytitle"><span class="application">createdb</span></span></a>, <a class="xref" href="sql-dropdatabase.html" title="DROP DATABASE"><span class="refentrytitle">DROP DATABASE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-createuser.html" title="createuser">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-dropuser.html" title="dropuser">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">createuser</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">dropuser</span></td></tr></table></div></body></html>
4797\ No newline at end of file
4798diff --git a/doc/src/sgml/html/app-dropuser.html b/doc/src/sgml/html/app-dropuser.html
4799index ebb6f19..45d9d56 100644
4800--- a/doc/src/sgml/html/app-dropuser.html
4801+++ b/doc/src/sgml/html/app-dropuser.html
4802@@ -1,5 +1,5 @@
4803 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4804-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>dropuser</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-dropdb.html" title="dropdb" /><link rel="next" href="app-ecpg.html" title="ecpg" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropuser</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-dropdb.html" title="dropdb">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-ecpg.html" title="ecpg">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-DROPUSER"><div class="titlepage"></div><a id="id-1.9.4.7.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">dropuser</span></span></h2><p>dropuser — remove a <span class="productname">PostgreSQL</span> user account</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.7.4.1"><code class="command">dropuser</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] [<em class="replaceable"><code>username</code></em>]</p></div></div><div class="refsect1" id="id-1.9.4.7.5"><h2>Description</h2><p> <span class="application">dropuser</span> removes an existing
4805+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>dropuser</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-dropdb.html" title="dropdb" /><link rel="next" href="app-ecpg.html" title="ecpg" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropuser</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-dropdb.html" title="dropdb">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-ecpg.html" title="ecpg">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-DROPUSER"><div class="titlepage"></div><a id="id-1.9.4.7.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">dropuser</span></span></h2><p>dropuser — remove a <span class="productname">PostgreSQL</span> user account</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.7.4.1"><code class="command">dropuser</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] [<em class="replaceable"><code>username</code></em>]</p></div></div><div class="refsect1" id="id-1.9.4.7.5"><h2>Description</h2><p> <span class="application">dropuser</span> removes an existing
4806 <span class="productname">PostgreSQL</span> user.
4807 Only superusers and users with the <code class="literal">CREATEROLE</code> privilege can
4808 remove <span class="productname">PostgreSQL</span> users. (To remove a
4809@@ -71,4 +71,4 @@
4810 </p><pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>dropuser -p 5000 -h eden -i -e joe</code></strong>
4811 <code class="computeroutput">Role "joe" will be permanently removed.
4812 Are you sure? (y/n) </code><strong class="userinput"><code>y</code></strong>
4813-<code class="computeroutput">DROP ROLE joe;</code></pre></div><div class="refsect1" id="id-1.9.4.7.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-createuser.html" title="createuser"><span class="refentrytitle"><span class="application">createuser</span></span></a>, <a class="xref" href="sql-droprole.html" title="DROP ROLE"><span class="refentrytitle">DROP ROLE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-dropdb.html" title="dropdb">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-ecpg.html" title="ecpg">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropdb</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">ecpg</span></td></tr></table></div></body></html>
4814\ No newline at end of file
4815+<code class="computeroutput">DROP ROLE joe;</code></pre></div><div class="refsect1" id="id-1.9.4.7.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-createuser.html" title="createuser"><span class="refentrytitle"><span class="application">createuser</span></span></a>, <a class="xref" href="sql-droprole.html" title="DROP ROLE"><span class="refentrytitle">DROP ROLE</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-dropdb.html" title="dropdb">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-ecpg.html" title="ecpg">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropdb</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">ecpg</span></td></tr></table></div></body></html>
4816\ No newline at end of file
4817diff --git a/doc/src/sgml/html/app-ecpg.html b/doc/src/sgml/html/app-ecpg.html
4818index c4b7488..4082187 100644
4819--- a/doc/src/sgml/html/app-ecpg.html
4820+++ b/doc/src/sgml/html/app-ecpg.html
4821@@ -1,5 +1,5 @@
4822 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4823-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ecpg</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-dropuser.html" title="dropuser" /><link rel="next" href="app-pgbasebackup.html" title="pg_basebackup" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">ecpg</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-dropuser.html" title="dropuser">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgbasebackup.html" title="pg_basebackup">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-ECPG"><div class="titlepage"></div><a id="id-1.9.4.8.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">ecpg</span></span></h2><p><span class="application">ecpg</span> — embedded SQL C preprocessor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.8.4.1"><code class="command">ecpg</code> [<em class="replaceable"><code>option</code></em>...] <em class="replaceable"><code>file</code></em>... </p></div></div><div class="refsect1" id="APP-ECPG-DESCRIPTION"><h2>Description</h2><p> <code class="command">ecpg</code> is the embedded SQL preprocessor for C
4824+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ecpg</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-dropuser.html" title="dropuser" /><link rel="next" href="app-pgbasebackup.html" title="pg_basebackup" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">ecpg</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-dropuser.html" title="dropuser">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgbasebackup.html" title="pg_basebackup">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-ECPG"><div class="titlepage"></div><a id="id-1.9.4.8.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">ecpg</span></span></h2><p><span class="application">ecpg</span> — embedded SQL C preprocessor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.8.4.1"><code class="command">ecpg</code> [<em class="replaceable"><code>option</code></em>...] <em class="replaceable"><code>file</code></em>... </p></div></div><div class="refsect1" id="APP-ECPG-DESCRIPTION"><h2>Description</h2><p> <code class="command">ecpg</code> is the embedded SQL preprocessor for C
4825 programs. It converts C programs with embedded SQL statements to
4826 normal C code by replacing the SQL invocations with special
4827 function calls. The output files can then be processed with any C
4828@@ -77,4 +77,4 @@
4829 program using the following sequence of commands:
4830 </p><pre class="programlisting">ecpg prog1.pgc
4831 cc -I/usr/local/pgsql/include -c prog1.c
4832-cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg</pre></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-dropuser.html" title="dropuser">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgbasebackup.html" title="pg_basebackup">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropuser</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> pg_basebackup</td></tr></table></div></body></html>
4833\ No newline at end of file
4834+cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg</pre></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-dropuser.html" title="dropuser">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgbasebackup.html" title="pg_basebackup">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">dropuser</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> pg_basebackup</td></tr></table></div></body></html>
4835\ No newline at end of file
4836diff --git a/doc/src/sgml/html/app-initdb.html b/doc/src/sgml/html/app-initdb.html
4837index a20d8a9..45aec6e 100644
4838--- a/doc/src/sgml/html/app-initdb.html
4839+++ b/doc/src/sgml/html/app-initdb.html
4840@@ -1,5 +1,5 @@
4841 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4842-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>initdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="reference-server.html" title="PostgreSQL Server Applications" /><link rel="next" href="pgarchivecleanup.html" title="pg_archivecleanup" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">initdb</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="reference-server.html" title="PostgreSQL Server Applications">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><th width="60%" align="center">PostgreSQL Server Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="pgarchivecleanup.html" title="pg_archivecleanup">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-INITDB"><div class="titlepage"></div><a id="id-1.9.5.3.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">initdb</span></h2><p>initdb — create a new <span class="productname">PostgreSQL</span> database cluster</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.5.3.4.1"><code class="command">initdb</code> [<em class="replaceable"><code>option</code></em>...] [ <code class="option">--pgdata</code> | <code class="option">-D</code> ]<em class="replaceable"><code> directory</code></em> </p></div></div><div class="refsect1" id="R1-APP-INITDB-1"><h2> Description
4843+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>initdb</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="reference-server.html" title="PostgreSQL Server Applications" /><link rel="next" href="pgarchivecleanup.html" title="pg_archivecleanup" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">initdb</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="reference-server.html" title="PostgreSQL Server Applications">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><th width="60%" align="center">PostgreSQL Server Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="pgarchivecleanup.html" title="pg_archivecleanup">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-INITDB"><div class="titlepage"></div><a id="id-1.9.5.3.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">initdb</span></h2><p>initdb — create a new <span class="productname">PostgreSQL</span> database cluster</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.5.3.4.1"><code class="command">initdb</code> [<em class="replaceable"><code>option</code></em>...] [ <code class="option">--pgdata</code> | <code class="option">-D</code> ]<em class="replaceable"><code> directory</code></em> </p></div></div><div class="refsect1" id="R1-APP-INITDB-1"><h2> Description
4844 </h2><p> <code class="command">initdb</code> creates a new
4845 <span class="productname">PostgreSQL</span> database cluster. A database
4846 cluster is a collection of databases that are managed by a single
4847@@ -145,4 +145,4 @@
4848 (see <a class="xref" href="libpq-envars.html" title="33.14. Environment Variables">Section 33.14</a>).
4849 </p></div><div class="refsect1" id="id-1.9.5.3.8"><h2>Notes</h2><p> <code class="command">initdb</code> can also be invoked via
4850 <code class="command">pg_ctl initdb</code>.
4851- </p></div><div class="refsect1" id="id-1.9.5.3.9"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-pg-ctl.html" title="pg_ctl"><span class="refentrytitle"><span class="application">pg_ctl</span></span></a>, <a class="xref" href="app-postgres.html" title="postgres"><span class="refentrytitle"><span class="application">postgres</span></span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="reference-server.html" title="PostgreSQL Server Applications">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="pgarchivecleanup.html" title="pg_archivecleanup">Next</a></td></tr><tr><td width="40%" align="left" valign="top">PostgreSQL Server Applications </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_archivecleanup</span></td></tr></table></div></body></html>
4852\ No newline at end of file
4853+ </p></div><div class="refsect1" id="id-1.9.5.3.9"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-pg-ctl.html" title="pg_ctl"><span class="refentrytitle"><span class="application">pg_ctl</span></span></a>, <a class="xref" href="app-postgres.html" title="postgres"><span class="refentrytitle"><span class="application">postgres</span></span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="reference-server.html" title="PostgreSQL Server Applications">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="pgarchivecleanup.html" title="pg_archivecleanup">Next</a></td></tr><tr><td width="40%" align="left" valign="top">PostgreSQL Server Applications </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_archivecleanup</span></td></tr></table></div></body></html>
4854\ No newline at end of file
4855diff --git a/doc/src/sgml/html/app-pg-ctl.html b/doc/src/sgml/html/app-pg-ctl.html
4856index 4ddc497..151c298 100644
4857--- a/doc/src/sgml/html/app-pg-ctl.html
4858+++ b/doc/src/sgml/html/app-pg-ctl.html
4859@@ -1,5 +1,5 @@
4860 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4861-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_ctl</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-pgcontroldata.html" title="pg_controldata" /><link rel="next" href="app-pgresetwal.html" title="pg_resetwal" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_ctl</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pgcontroldata.html" title="pg_controldata">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><th width="60%" align="center">PostgreSQL Server Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgresetwal.html" title="pg_resetwal">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PG-CTL"><div class="titlepage"></div><a id="id-1.9.5.6.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_ctl</span></span></h2><p>pg_ctl — initialize, start, stop, or control a <span class="productname">PostgreSQL</span> server</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.5.6.4.1"><code class="command">pg_ctl</code> <code class="option">init[db]</code> [<code class="option">-D</code> <em class="replaceable"><code>datadir</code></em>] [<code class="option">-s</code>] [<code class="option">-o</code> <em class="replaceable"><code>initdb-options</code></em>]</p></div><div class="cmdsynopsis"><p id="id-1.9.5.6.4.2"><code class="command">pg_ctl</code> <code class="option">start</code> [<code class="option">-D</code> <em class="replaceable"><code>datadir</code></em>] [<code class="option">-l</code> <em class="replaceable"><code>filename</code></em>] [<code class="option">-W</code>] [<code class="option">-t</code> <em class="replaceable"><code>seconds</code></em>] [<code class="option">-s</code>] [<code class="option">-o</code> <em class="replaceable"><code>options</code></em>] [<code class="option">-p</code> <em class="replaceable"><code>path</code></em>] [<code class="option">-c</code>]</p></div><div class="cmdsynopsis"><p id="id-1.9.5.6.4.3"><code class="command">pg_ctl</code> <code class="option">stop</code> [<code class="option">-D</code> <em class="replaceable"><code>datadir</code></em>] [<code class="option">-m</code>
4862+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_ctl</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-pgcontroldata.html" title="pg_controldata" /><link rel="next" href="app-pgresetwal.html" title="pg_resetwal" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_ctl</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pgcontroldata.html" title="pg_controldata">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><th width="60%" align="center">PostgreSQL Server Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgresetwal.html" title="pg_resetwal">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PG-CTL"><div class="titlepage"></div><a id="id-1.9.5.6.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_ctl</span></span></h2><p>pg_ctl — initialize, start, stop, or control a <span class="productname">PostgreSQL</span> server</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.5.6.4.1"><code class="command">pg_ctl</code> <code class="option">init[db]</code> [<code class="option">-D</code> <em class="replaceable"><code>datadir</code></em>] [<code class="option">-s</code>] [<code class="option">-o</code> <em class="replaceable"><code>initdb-options</code></em>]</p></div><div class="cmdsynopsis"><p id="id-1.9.5.6.4.2"><code class="command">pg_ctl</code> <code class="option">start</code> [<code class="option">-D</code> <em class="replaceable"><code>datadir</code></em>] [<code class="option">-l</code> <em class="replaceable"><code>filename</code></em>] [<code class="option">-W</code>] [<code class="option">-t</code> <em class="replaceable"><code>seconds</code></em>] [<code class="option">-s</code>] [<code class="option">-o</code> <em class="replaceable"><code>options</code></em>] [<code class="option">-p</code> <em class="replaceable"><code>path</code></em>] [<code class="option">-c</code>]</p></div><div class="cmdsynopsis"><p id="id-1.9.5.6.4.3"><code class="command">pg_ctl</code> <code class="option">stop</code> [<code class="option">-D</code> <em class="replaceable"><code>datadir</code></em>] [<code class="option">-m</code>
4863 <code class="option">s[mart]</code> | <code class="option">f[ast]</code> | <code class="option">i[mmediate]</code>
4864 ] [<code class="option">-W</code>] [<code class="option">-t</code> <em class="replaceable"><code>seconds</code></em>] [<code class="option">-s</code>]</p></div><div class="cmdsynopsis"><p id="id-1.9.5.6.4.4"><code class="command">pg_ctl</code> <code class="option">restart</code> [<code class="option">-D</code> <em class="replaceable"><code>datadir</code></em>] [<code class="option">-m</code>
4865 <code class="option">s[mart]</code> | <code class="option">f[ast]</code> | <code class="option">i[mmediate]</code>
4866@@ -217,4 +217,4 @@
4867 <code class="computeroutput">pg_ctl: server is running (PID: 13718)
4868 /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"</code></pre><p>
4869 The second line is the command that would be invoked in restart mode.
4870- </p></div></div><div class="refsect1" id="id-1.9.5.6.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-initdb.html" title="initdb"><span class="refentrytitle">initdb</span></a>, <a class="xref" href="app-postgres.html" title="postgres"><span class="refentrytitle"><span class="application">postgres</span></span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pgcontroldata.html" title="pg_controldata">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgresetwal.html" title="pg_resetwal">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_controldata</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_resetwal</span></td></tr></table></div></body></html>
4871\ No newline at end of file
4872+ </p></div></div><div class="refsect1" id="id-1.9.5.6.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-initdb.html" title="initdb"><span class="refentrytitle">initdb</span></a>, <a class="xref" href="app-postgres.html" title="postgres"><span class="refentrytitle"><span class="application">postgres</span></span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pgcontroldata.html" title="pg_controldata">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgresetwal.html" title="pg_resetwal">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_controldata</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_resetwal</span></td></tr></table></div></body></html>
4873\ No newline at end of file
4874diff --git a/doc/src/sgml/html/app-pg-dumpall.html b/doc/src/sgml/html/app-pg-dumpall.html
4875index 89e5eaf..a584cfe 100644
4876--- a/doc/src/sgml/html/app-pg-dumpall.html
4877+++ b/doc/src/sgml/html/app-pg-dumpall.html
4878@@ -1,5 +1,5 @@
4879 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4880-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_dumpall</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-pgdump.html" title="pg_dump" /><link rel="next" href="app-pg-isready.html" title="pg_isready" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_dumpall</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pgdump.html" title="pg_dump">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pg-isready.html" title="pg_isready">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PG-DUMPALL"><div class="titlepage"></div><a id="id-1.9.4.13.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_dumpall</span></span></h2><p>pg_dumpall — extract a <span class="productname">PostgreSQL</span> database cluster into a script file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.13.4.1"><code class="command">pg_dumpall</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="APP-PG-DUMPALL-DESCRIPTION"><h2>Description</h2><p> <span class="application">pg_dumpall</span> is a utility for writing out
4881+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_dumpall</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-pgdump.html" title="pg_dump" /><link rel="next" href="app-pg-isready.html" title="pg_isready" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_dumpall</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pgdump.html" title="pg_dump">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pg-isready.html" title="pg_isready">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PG-DUMPALL"><div class="titlepage"></div><a id="id-1.9.4.13.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_dumpall</span></span></h2><p>pg_dumpall — extract a <span class="productname">PostgreSQL</span> database cluster into a script file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.13.4.1"><code class="command">pg_dumpall</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="APP-PG-DUMPALL-DESCRIPTION"><h2>Description</h2><p> <span class="application">pg_dumpall</span> is a utility for writing out
4882 (<span class="quote">“<span class="quote">dumping</span>”</span>) all <span class="productname">PostgreSQL</span> databases
4883 of a cluster into one script file. The script file contains
4884 <acronym class="acronym">SQL</acronym> commands that can be used as input to <a class="xref" href="app-psql.html" title="psql"><span class="refentrytitle"><span class="application">psql</span></span></a> to restore the databases. It does this by
4885@@ -223,4 +223,4 @@
4886 databases.)
4887 </p></div><div class="refsect1" id="id-1.9.4.13.10"><h2>See Also</h2><p> Check <a class="xref" href="app-pgdump.html" title="pg_dump"><span class="refentrytitle">pg_dump</span></a> for details on possible
4888 error conditions.
4889- </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pgdump.html" title="pg_dump">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pg-isready.html" title="pg_isready">Next</a></td></tr><tr><td width="40%" align="left" valign="top">pg_dump </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_isready</span></td></tr></table></div></body></html>
4890\ No newline at end of file
4891+ </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pgdump.html" title="pg_dump">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pg-isready.html" title="pg_isready">Next</a></td></tr><tr><td width="40%" align="left" valign="top">pg_dump </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_isready</span></td></tr></table></div></body></html>
4892\ No newline at end of file
4893diff --git a/doc/src/sgml/html/app-pg-isready.html b/doc/src/sgml/html/app-pg-isready.html
4894index f6ac055..736dabf 100644
4895--- a/doc/src/sgml/html/app-pg-isready.html
4896+++ b/doc/src/sgml/html/app-pg-isready.html
4897@@ -1,5 +1,5 @@
4898 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4899-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_isready</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-pg-dumpall.html" title="pg_dumpall" /><link rel="next" href="app-pgreceivewal.html" title="pg_receivewal" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_isready</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pg-dumpall.html" title="pg_dumpall">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgreceivewal.html" title="pg_receivewal">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PG-ISREADY"><div class="titlepage"></div><a id="id-1.9.4.14.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_isready</span></span></h2><p>pg_isready — check the connection status of a <span class="productname">PostgreSQL</span> server</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.14.4.1"><code class="command">pg_isready</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="APP-PG-ISREADY-DESCRIPTION"><h2>Description</h2><p> <span class="application">pg_isready</span> is a utility for checking the connection
4900+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_isready</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-pg-dumpall.html" title="pg_dumpall" /><link rel="next" href="app-pgreceivewal.html" title="pg_receivewal" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_isready</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pg-dumpall.html" title="pg_dumpall">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgreceivewal.html" title="pg_receivewal">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PG-ISREADY"><div class="titlepage"></div><a id="id-1.9.4.14.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_isready</span></span></h2><p>pg_isready — check the connection status of a <span class="productname">PostgreSQL</span> server</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.14.4.1"><code class="command">pg_isready</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="APP-PG-ISREADY-DESCRIPTION"><h2>Description</h2><p> <span class="application">pg_isready</span> is a utility for checking the connection
4901 status of a <span class="productname">PostgreSQL</span> database server. The exit
4902 status specifies the result of the connection check.
4903 </p></div><div class="refsect1" id="APP-PG-ISREADY-OPTIONS"><h2>Options</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">-d <em class="replaceable"><code>dbname</code></em></code><br /></span><span class="term"><code class="option">--dbname=<em class="replaceable"><code>dbname</code></em></code></span></dt><dd><p> Specifies the name of the database to connect to. The
4904@@ -50,4 +50,4 @@
4905 <code class="computeroutput">someremotehost:5432 - no response</code>
4906 <code class="prompt">$</code> <strong class="userinput"><code>echo $?</code></strong>
4907 <code class="computeroutput">2</code></pre><p>
4908- </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pg-dumpall.html" title="pg_dumpall">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgreceivewal.html" title="pg_receivewal">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_dumpall</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> pg_receivewal</td></tr></table></div></body></html>
4909\ No newline at end of file
4910+ </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pg-dumpall.html" title="pg_dumpall">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgreceivewal.html" title="pg_receivewal">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_dumpall</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> pg_receivewal</td></tr></table></div></body></html>
4911\ No newline at end of file
4912diff --git a/doc/src/sgml/html/app-pgbasebackup.html b/doc/src/sgml/html/app-pgbasebackup.html
4913index f33d170..d751bc9 100644
4914--- a/doc/src/sgml/html/app-pgbasebackup.html
4915+++ b/doc/src/sgml/html/app-pgbasebackup.html
4916@@ -1,5 +1,5 @@
4917 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4918-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_basebackup</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-ecpg.html" title="ecpg" /><link rel="next" href="pgbench.html" title="pgbench" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_basebackup</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-ecpg.html" title="ecpg">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="pgbench.html" title="pgbench">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGBASEBACKUP"><div class="titlepage"></div><a id="id-1.9.4.9.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_basebackup</span></h2><p>pg_basebackup — take a base backup of a <span class="productname">PostgreSQL</span> cluster</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.9.4.1"><code class="command">pg_basebackup</code> [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="id-1.9.4.9.5"><h2> Description
4919+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_basebackup</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-ecpg.html" title="ecpg" /><link rel="next" href="pgbench.html" title="pgbench" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_basebackup</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-ecpg.html" title="ecpg">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="pgbench.html" title="pgbench">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGBASEBACKUP"><div class="titlepage"></div><a id="id-1.9.4.9.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_basebackup</span></h2><p>pg_basebackup — take a base backup of a <span class="productname">PostgreSQL</span> cluster</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.9.4.1"><code class="command">pg_basebackup</code> [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="id-1.9.4.9.5"><h2> Description
4920 </h2><p> <span class="application">pg_basebackup</span> is used to take base backups of
4921 a running <span class="productname">PostgreSQL</span> database cluster. These
4922 are taken without affecting other clients to the database, and can be used
4923@@ -304,4 +304,4 @@
4924 <code class="filename">/opt/ts</code> is relocated
4925 to <code class="filename">./backup/ts</code>:
4926 </p><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pg_basebackup -D backup/data -T /opt/ts=$(pwd)/backup/ts</code></strong></pre><p>
4927- </p></div><div class="refsect1" id="id-1.9.4.9.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-pgdump.html" title="pg_dump"><span class="refentrytitle">pg_dump</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-ecpg.html" title="ecpg">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="pgbench.html" title="pgbench">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">ecpg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pgbench</span></td></tr></table></div></body></html>
4928\ No newline at end of file
4929+ </p></div><div class="refsect1" id="id-1.9.4.9.10"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-pgdump.html" title="pg_dump"><span class="refentrytitle">pg_dump</span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-ecpg.html" title="ecpg">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="pgbench.html" title="pgbench">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">ecpg</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pgbench</span></td></tr></table></div></body></html>
4930\ No newline at end of file
4931diff --git a/doc/src/sgml/html/app-pgconfig.html b/doc/src/sgml/html/app-pgconfig.html
4932index 64b3b61..edefd81 100644
4933--- a/doc/src/sgml/html/app-pgconfig.html
4934+++ b/doc/src/sgml/html/app-pgconfig.html
4935@@ -1,5 +1,5 @@
4936 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4937-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_config</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="pgbench.html" title="pgbench" /><link rel="next" href="app-pgdump.html" title="pg_dump" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_config</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="pgbench.html" title="pgbench">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgdump.html" title="pg_dump">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGCONFIG"><div class="titlepage"></div><a id="id-1.9.4.11.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_config</span></h2><p>pg_config — retrieve information about the installed version of <span class="productname">PostgreSQL</span></p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.11.4.1"><code class="command">pg_config</code> [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="id-1.9.4.11.5"><h2>Description</h2><p> The <span class="application">pg_config</span> utility prints configuration parameters
4938+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_config</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="pgbench.html" title="pgbench" /><link rel="next" href="app-pgdump.html" title="pg_dump" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_config</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="pgbench.html" title="pgbench">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgdump.html" title="pg_dump">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGCONFIG"><div class="titlepage"></div><a id="id-1.9.4.11.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_config</span></h2><p>pg_config — retrieve information about the installed version of <span class="productname">PostgreSQL</span></p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.11.4.1"><code class="command">pg_config</code> [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="id-1.9.4.11.5"><h2>Description</h2><p> The <span class="application">pg_config</span> utility prints configuration parameters
4939 of the currently installed version of <span class="productname">PostgreSQL</span>. It is
4940 intended, for example, to be used by software packages that want to interface
4941 to <span class="productname">PostgreSQL</span> to facilitate finding the required header files
4942@@ -77,4 +77,4 @@
4943 shell quotation marks so arguments with spaces are represented
4944 correctly. Therefore, using <code class="literal">eval</code> is required
4945 for proper results.
4946- </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pgbench.html" title="pgbench">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgdump.html" title="pg_dump">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pgbench</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> pg_dump</td></tr></table></div></body></html>
4947\ No newline at end of file
4948+ </p></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pgbench.html" title="pgbench">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pgdump.html" title="pg_dump">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pgbench</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> pg_dump</td></tr></table></div></body></html>
4949\ No newline at end of file
4950diff --git a/doc/src/sgml/html/app-pgcontroldata.html b/doc/src/sgml/html/app-pgcontroldata.html
4951index 184dd10..4c2a03e 100644
4952--- a/doc/src/sgml/html/app-pgcontroldata.html
4953+++ b/doc/src/sgml/html/app-pgcontroldata.html
4954@@ -1,5 +1,5 @@
4955 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4956-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_controldata</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="pgarchivecleanup.html" title="pg_archivecleanup" /><link rel="next" href="app-pg-ctl.html" title="pg_ctl" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_controldata</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="pgarchivecleanup.html" title="pg_archivecleanup">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><th width="60%" align="center">PostgreSQL Server Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pg-ctl.html" title="pg_ctl">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGCONTROLDATA"><div class="titlepage"></div><a id="id-1.9.5.5.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_controldata</span></span></h2><p>pg_controldata — display control information of a <span class="productname">PostgreSQL</span> database cluster</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.5.5.4.1"><code class="command">pg_controldata</code> [<em class="replaceable"><code>option</code></em>] [[<code class="option">-D</code>] <em class="replaceable"><code>datadir</code></em>]</p></div></div><div class="refsect1" id="R1-APP-PGCONTROLDATA-1"><h2>Description</h2><p> <code class="command">pg_controldata</code> prints information initialized during
4957+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_controldata</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="pgarchivecleanup.html" title="pg_archivecleanup" /><link rel="next" href="app-pg-ctl.html" title="pg_ctl" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_controldata</span></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="pgarchivecleanup.html" title="pg_archivecleanup">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><th width="60%" align="center">PostgreSQL Server Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pg-ctl.html" title="pg_ctl">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGCONTROLDATA"><div class="titlepage"></div><a id="id-1.9.5.5.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle"><span class="application">pg_controldata</span></span></h2><p>pg_controldata — display control information of a <span class="productname">PostgreSQL</span> database cluster</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.5.5.4.1"><code class="command">pg_controldata</code> [<em class="replaceable"><code>option</code></em>] [[<code class="option">-D</code>] <em class="replaceable"><code>datadir</code></em>]</p></div></div><div class="refsect1" id="R1-APP-PGCONTROLDATA-1"><h2>Description</h2><p> <code class="command">pg_controldata</code> prints information initialized during
4958 <code class="command">initdb</code>, such as the catalog version.
4959 It also shows information about write-ahead logging and checkpoint
4960 processing. This information is cluster-wide, and not specific to any one
4961@@ -13,4 +13,4 @@
4962 supports options <code class="option">-?</code> and <code class="option">--help</code>, which output the
4963 supported arguments.
4964 </p></div><div class="refsect1" id="id-1.9.5.5.6"><h2>Environment</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="envar">PGDATA</code></span></dt><dd><p> Default data directory location
4965- </p></dd></dl></div></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pgarchivecleanup.html" title="pg_archivecleanup">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pg-ctl.html" title="pg_ctl">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_archivecleanup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_ctl</span></td></tr></table></div></body></html>
4966\ No newline at end of file
4967+ </p></dd></dl></div></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pgarchivecleanup.html" title="pg_archivecleanup">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-server.html" title="PostgreSQL Server Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pg-ctl.html" title="pg_ctl">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_archivecleanup</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_ctl</span></td></tr></table></div></body></html>
4968\ No newline at end of file
4969diff --git a/doc/src/sgml/html/app-pgdump.html b/doc/src/sgml/html/app-pgdump.html
4970index 6195984..d2ae68c 100644
4971--- a/doc/src/sgml/html/app-pgdump.html
4972+++ b/doc/src/sgml/html/app-pgdump.html
4973@@ -1,5 +1,5 @@
4974 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4975-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_dump</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-pgconfig.html" title="pg_config" /><link rel="next" href="app-pg-dumpall.html" title="pg_dumpall" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_dump</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pgconfig.html" title="pg_config">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pg-dumpall.html" title="pg_dumpall">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGDUMP"><div class="titlepage"></div><a id="id-1.9.4.12.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_dump</span></h2><p>pg_dump — extract a <span class="productname">PostgreSQL</span> database into a script file or other archive file
4976+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_dump</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-pgconfig.html" title="pg_config" /><link rel="next" href="app-pg-dumpall.html" title="pg_dumpall" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_dump</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pgconfig.html" title="pg_config">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pg-dumpall.html" title="pg_dumpall">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGDUMP"><div class="titlepage"></div><a id="id-1.9.4.12.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_dump</span></h2><p>pg_dump — extract a <span class="productname">PostgreSQL</span> database into a script file or other archive file
4977 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.12.4.1"><code class="command">pg_dump</code> [<em class="replaceable"><code>connection-option</code></em>...] [<em class="replaceable"><code>option</code></em>...] [<em class="replaceable"><code>dbname</code></em>]</p></div></div><div class="refsect1" id="PG-DUMP-DESCRIPTION"><h2> Description
4978 </h2><p> <span class="application">pg_dump</span> is a utility for backing up a
4979 <span class="productname">PostgreSQL</span> database. It makes consistent
4980@@ -587,4 +587,4 @@
4981 Thus, to dump a single table with a mixed-case name, you need something
4982 like
4983
4984-</p><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pg_dump -t "\"MixedCaseName\"" mydb &gt; mytab.sql</code></strong></pre></div><div class="refsect1" id="id-1.9.4.12.11"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-pg-dumpall.html" title="pg_dumpall"><span class="refentrytitle"><span class="application">pg_dumpall</span></span></a>, <a class="xref" href="app-pgrestore.html" title="pg_restore"><span class="refentrytitle">pg_restore</span></a>, <a class="xref" href="app-psql.html" title="psql"><span class="refentrytitle"><span class="application">psql</span></span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pgconfig.html" title="pg_config">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pg-dumpall.html" title="pg_dumpall">Next</a></td></tr><tr><td width="40%" align="left" valign="top">pg_config </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_dumpall</span></td></tr></table></div></body></html>
4985\ No newline at end of file
4986+</p><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pg_dump -t "\"MixedCaseName\"" mydb &gt; mytab.sql</code></strong></pre></div><div class="refsect1" id="id-1.9.4.12.11"><h2>See Also</h2><span class="simplelist"><a class="xref" href="app-pg-dumpall.html" title="pg_dumpall"><span class="refentrytitle"><span class="application">pg_dumpall</span></span></a>, <a class="xref" href="app-pgrestore.html" title="pg_restore"><span class="refentrytitle">pg_restore</span></a>, <a class="xref" href="app-psql.html" title="psql"><span class="refentrytitle"><span class="application">psql</span></span></a></span></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="app-pgconfig.html" title="pg_config">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="app-pg-dumpall.html" title="pg_dumpall">Next</a></td></tr><tr><td width="40%" align="left" valign="top">pg_config </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="40%" align="right" valign="top"> <span xmlns="http://www.w3.org/1999/xhtml" class="application">pg_dumpall</span></td></tr></table></div></body></html>
4987\ No newline at end of file
4988diff --git a/doc/src/sgml/html/app-pgreceivewal.html b/doc/src/sgml/html/app-pgreceivewal.html
4989index 826d6e6..25d0325 100644
4990--- a/doc/src/sgml/html/app-pgreceivewal.html
4991+++ b/doc/src/sgml/html/app-pgreceivewal.html
4992@@ -1,5 +1,5 @@
4993 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
4994-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_receivewal</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="app-pg-isready.html" title="pg_isready" /><link rel="next" href="app-pgrecvlogical.html" title="pg_recvlogical" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_receivewal</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pg-isready.html" title="pg_isready">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.20 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgrecvlogical.html" title="pg_recvlogical">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGRECEIVEWAL"><div class="titlepage"></div><a id="id-1.9.4.15.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_receivewal</span></h2><p>pg_receivewal — stream write-ahead logs from a <span class="productname">PostgreSQL</span> server</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.15.4.1"><code class="command">pg_receivewal</code> [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="id-1.9.4.15.5"><h2> Description
4995+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>pg_receivewal</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="app-pg-isready.html" title="pg_isready" /><link rel="next" href="app-pgrecvlogical.html" title="pg_recvlogical" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">pg_receivewal</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="app-pg-isready.html" title="pg_isready">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="reference-client.html" title="PostgreSQL Client Applications">Up</a></td><th width="60%" align="center">PostgreSQL Client Applications</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.21 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="app-pgrecvlogical.html" title="pg_recvlogical">Next</a></td></tr></table><hr></hr></div><div class="refentry" id="APP-PGRECEIVEWAL"><div class="titlepage"></div><a id="id-1.9.4.15.1" class="indexterm"></a><div class="refnamediv"><h2><span class="refentrytitle">pg_receivewal</span></h2><p>pg_receivewal — stream write-ahead logs from a <span class="productname">PostgreSQL</span> server</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p id="id-1.9.4.15.4.1"><code class="command">pg_receivewal</code> [<em class="replaceable"><code>option</code></em>...]</p></div></div><div class="refsect1" id="id-1.9.4.15.5"><h2> Description
4996 </h2><p> <span class="application">pg_receivewal</span> is used to stream the write-ahead log
4997 from a running <span class="productname">PostgreSQL</span> cluster. The write-ahead
4998 log is streamed using the streaming replication protocol, and is written
4999@@ -148,4 +148,4 @@
5000 </p></div><div class="refsect1" id="id-1.9.4.15.9"><h2>Examples</h2><p> To stream the write-ahead log from the server at
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches